diff --git a/.all-contributorsrc b/.all-contributorsrc index 3cf5e765c..c57826d68 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -737,6 +737,42 @@ "contributions": [ "translation" ] + }, + { + "login": "Eclipseop", + "name": "Mackenzie", + "avatar_url": "https://avatars.githubusercontent.com/u/5846213?v=4", + "profile": "https://github.com/Eclipseop", + "contributions": [ + "code" + ] + }, + { + "login": "s0up4200", + "name": "soup", + "avatar_url": "https://avatars.githubusercontent.com/u/18177310?v=4", + "profile": "https://github.com/s0up4200", + "contributions": [ + "doc" + ] + }, + { + "login": "ceptonit", + "name": "ceptonit", + "avatar_url": "https://avatars.githubusercontent.com/u/12678743?v=4", + "profile": "https://github.com/ceptonit", + "contributions": [ + "doc" + ] + }, + { + "login": "aedelbro", + "name": "aedelbro", + "avatar_url": "https://avatars.githubusercontent.com/u/36162221?v=4", + "profile": "https://github.com/aedelbro", + "contributions": [ + "code" + ] } ], "badgeTemplate": "\"All-orange.svg\"/>", @@ -745,5 +781,6 @@ "projectOwner": "sct", "repoType": "github", "repoHost": "https://github.com", - "skipCi": false + "skipCi": false, + "commitConvention": "angular" } diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..759bad474 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,7 @@ +# Global code ownership + +- @Fallenbagel + +# i18n locale files + +src/i18n/locale/ @Fallenbagel diff --git a/.github/holopin.yml b/.github/holopin.yml new file mode 100644 index 000000000..ee4edc81b --- /dev/null +++ b/.github/holopin.yml @@ -0,0 +1,5 @@ +organization: overseerr +defaultSticker: clcyagj1j329008l468ya8pu2 +stickers: + - id: clcyagj1j329008l468ya8pu2 + alias: overseerr-contributor diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2026ee71..b4c88ba9c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -91,9 +91,9 @@ jobs: run: | failures=(neutral, skipped, timed_out, action_required) if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure + echo "status=failure" >> $GITHUB_OUTPUT else - echo ::set-output name=status::$WORKFLOW_CONCLUSION + echo "status=$WORKFLOW_CONCLUSION" >> $GITHUB_OUTPUT fi - name: Post Status to Discord uses: sarisia/actions-status-discord@v1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..10926bbd9 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,41 @@ +name: 'CodeQL' + +on: + push: + branches: ['develop'] + pull_request: + branches: ['develop'] + schedule: + - cron: '50 7 * * 5' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [javascript] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + queries: +security-and-quality + + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: '/language:${{ matrix.language }}' diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 35ae768b7..3797936af 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -14,7 +14,7 @@ jobs: uses: actions/checkout@v3 - name: Get the version id: get_version - run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8890dcae3..94ba679b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,8 +51,8 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - - name: Switch to master branch - run: git checkout master + - name: Switch to main branch + run: git checkout main - name: Pull latest changes run: git pull - name: Prepare @@ -60,9 +60,9 @@ jobs: run: | git fetch --prune --tags if [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then - echo ::set-output name=RELEASE::stable + echo "RELEASE=stable" >> $GITHUB_OUTPUT else - echo ::set-output name=RELEASE::edge + echo "RELEASE=edge" >> $GITHUB_OUTPUT fi - name: Set Up QEMU uses: docker/setup-qemu-action@v1 @@ -76,7 +76,7 @@ jobs: - name: Upload Snap Package uses: actions/upload-artifact@v2 with: - name: overseerr-snap-package-${{ matrix.architecture }} + name: jellyseerr-snap-package-${{ matrix.architecture }} path: ${{ steps.build.outputs.snap }} - name: Review Snap Package uses: diddlesnaps/snapcraft-review-tools-action@v1 @@ -84,8 +84,9 @@ jobs: snap: ${{ steps.build.outputs.snap }} - name: Publish Snap Package uses: snapcore/action-publish@v1 + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_LOGIN }} with: - store_login: ${{ secrets.SNAP_LOGIN }} snap: ${{ steps.build.outputs.snap }} release: ${{ steps.prepare.outputs.RELEASE }} @@ -93,7 +94,7 @@ jobs: name: Send Discord Notification needs: semantic-release if: always() - runs-on: self-hosted + runs-on: ubuntu-20.04 steps: - name: Get Build Job Status uses: technote-space/workflow-conclusion-action@v3 @@ -102,9 +103,9 @@ jobs: run: | failures=(neutral, skipped, timed_out, action_required) if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure + echo "status=failure" >> $GITHUB_OUTPUT else - echo ::set-output name=status::$WORKFLOW_CONCLUSION + echo "status=$WORKFLOW_CONCLUSION" >> $GITHUB_OUTPUT fi - name: Post Status to Discord uses: sarisia/actions-status-discord@v1 diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml index bf00e04d7..4039c58e2 100644 --- a/.github/workflows/snap.yaml +++ b/.github/workflows/snap.yaml @@ -35,9 +35,9 @@ jobs: run: | git fetch --prune --unshallow --tags if [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then - echo ::set-output name=RELEASE::stable + echo "RELEASE=stable" >> $GITHUB_OUTPUT else - echo ::set-output name=RELEASE::edge + echo "RELEASE=edge" >> $GITHUB_OUTPUT fi - name: Set Up QEMU uses: docker/setup-qemu-action@v2 @@ -49,7 +49,7 @@ jobs: - name: Upload Snap Package uses: actions/upload-artifact@v3 with: - name: overseerr-snap-package-${{ matrix.architecture }} + name: jellyseerr-snap-package-${{ matrix.architecture }} path: ${{ steps.build.outputs.snap }} - name: Review Snap Package uses: diddlesnaps/snapcraft-review-tools-action@v1 @@ -57,8 +57,9 @@ jobs: snap: ${{ steps.build.outputs.snap }} - name: Publish Snap Package uses: snapcore/action-publish@v1 + env: + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_LOGIN }} with: - store_login: ${{ secrets.SNAP_LOGIN }} snap: ${{ steps.build.outputs.snap }} release: ${{ steps.prepare.outputs.RELEASE }} @@ -75,9 +76,9 @@ jobs: run: | failures=(neutral, skipped, timed_out, action_required) if [[ ${array[@]} =~ $WORKFLOW_CONCLUSION ]]; then - echo ::set-output name=status::failure + echo "status=failure" >> $GITHUB_OUTPUT else - echo ::set-output name=status::$WORKFLOW_CONCLUSION + echo "status=$WORKFLOW_CONCLUSION" >> $GITHUB_OUTPUT fi - name: Post Status to Discord uses: sarisia/actions-status-discord@v1 diff --git a/.gitignore b/.gitignore index 70a5d6f2f..9a8925ab0 100644 --- a/.gitignore +++ b/.gitignore @@ -67,3 +67,6 @@ tsconfig.tsbuildinfo # Webstorm .idea + +# Config Cache Directory +config/cache diff --git a/.prettierignore b/.prettierignore index 6e9428063..bab2d699e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,7 @@ .next/ dist/ config/ +CHANGELOG.md # assets src/assets/ diff --git a/CHANGELOG.md b/CHANGELOG.md index d7e9d1cb4..4245c764b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,22 @@ +# [1.3.0](https://github.com/fallenbagel/jellyseerr/compare/v1.2.1...v1.3.0) (2023-01-02) + +### Bug Fixes + +- added deep links to issues and status badges ([#3065](https://github.com/fallenbagel/jellyseerr/issues/3065)) ([bfe56c3](https://github.com/fallenbagel/jellyseerr/commit/bfe56c347073001795b1c3e917eb7a5afcc4462c)) +- **api:** handle auth for accounts where the plex id may have been set to null ([#3125](https://github.com/fallenbagel/jellyseerr/issues/3125)) ([15e2469](https://github.com/fallenbagel/jellyseerr/commit/15e246929bdbc2b7b5bdab7a84bd7882b79d5cb1)) +- **api:** ignore Music,Books,Photos,MusicVideo libraries ([d9ca3c6](https://github.com/fallenbagel/jellyseerr/commit/d9ca3c6e52c118698ca71021217f6ca409e71974)) +- count combined episodes ([64339e5](https://github.com/fallenbagel/jellyseerr/commit/64339e5f0374f8490e685e5c086e088bb7fd737e)) +- improved PTR scrolling performance ([#3095](https://github.com/fallenbagel/jellyseerr/issues/3095)) ([07ec3ef](https://github.com/fallenbagel/jellyseerr/commit/07ec3efbcaf669de7ccde4421c1112bfd23675d6)) +- **locale:** fix the duplicated wording in the Clear Media Warning message ([7e20c7c](https://github.com/fallenbagel/jellyseerr/commit/7e20c7cb78a44c32ab8a5f21203e285f23f402ab)) +- **ui:** adds mediaServerName to statusBadge and manageSlideOver ([d0cdce9](https://github.com/fallenbagel/jellyseerr/commit/d0cdce9e90fba642d2bf934a4266e1421424bc73)), closes [#254](https://github.com/fallenbagel/jellyseerr/issues/254) +- update API docs to allow 'all' seasons value ([#3073](https://github.com/fallenbagel/jellyseerr/issues/3073)) ([1dfa943](https://github.com/fallenbagel/jellyseerr/commit/1dfa9431a95e7e2a1843746c2473d8a06f03e184)) + +### Features + +- **api:** adds support for Mixed Libraries ([ba82ece](https://github.com/fallenbagel/jellyseerr/commit/ba82ecec5c994e79d7c9b658372041522b58a120)), closes [#95](https://github.com/fallenbagel/jellyseerr/issues/95) +- custom image proxy ([#3056](https://github.com/fallenbagel/jellyseerr/issues/3056)) ([500cd1f](https://github.com/fallenbagel/jellyseerr/commit/500cd1f872942923d2b9c3b835e6329e335d4a3f)) +- **lang:** add Croatian display language ([#3041](https://github.com/fallenbagel/jellyseerr/issues/3041)) ([64aab6d](https://github.com/fallenbagel/jellyseerr/commit/64aab6dd8240e191026512733b34cc046b6e508a)) + ## [1.29.1](https://github.com/sct/overseerr/compare/v1.29.0...v1.29.1) (2022-04-06) ### Bug Fixes diff --git a/README.md b/README.md index 614dcadb5..5f0d9da78 100644 --- a/README.md +++ b/README.md @@ -13,37 +13,105 @@ _The original Overseerr team have been busy and Jellyfin/Emby support aren't on ## Current Features -- Jellyfin Support -- Emby Support - - (Upcoming Features include: Multiple Server Instances, Music Support, Ability to change email address and much more!) - -Along with all the existing Overseerr features: - -- Full Plex integration. Authenticate and manage user access with Plex! +- Full Jellyfin/Emby/Plex integration. Authenticate and manage user access with Jellyfin/Emby/Plex! +- Supports Movies, Shows, Mixed Libraries! +- Ability to change email addresses for smtp purposes +- Ability to import all jellyfin/emby users - Easy integration with your existing services. Currently, Jellyseerr supports Sonarr and Radarr. More to come! -- Plex library scan, to keep track of the titles which are already available. +- Jellyfin/Emby/Plex library scan, to keep track of the titles which are already available. - Customizable request system, which allows users to request individual seasons or movies in a friendly, easy-to-use interface. - Incredibly simple request management UI. Don't dig through the app to simply approve recent requests! - Granular permission system. - Support for various notification agents. - Mobile-friendly design, for when you need to approve requests on the go! + (Upcoming Features include: Multiple Server Instances, Music Support, and much more!) + With more features on the way! Check out our [issue tracker](https://github.com/fallenbagel/jellyseerr/issues) to see the features which have already been requested. ## Getting Started +#### Pre-requisite (Important) + +_*On Jellyfin/Emby, ensure the `settings > Home > Automatically group content from the following folders into views such as 'Movies', 'Music' and 'TV'` is turned off*_ + +### Launching Jellyseerr using Docker + Check out our dockerhub for instructions on how to install and run Jellyseerr: https://hub.docker.com/r/fallenbagel/jellyseerr ### Launching Jellyseerr manually: +#### Windows + +Pre-requisites: + +- Nodejs (atleast LTS version) +- Yarn +- Download the source code from the github (Either develop branch or main for stable) + ```bash +npm i -g win-node-env yarn install yarn run build yarn start ``` +#### Linux + +Pre-requisites: + +- Nodejs (atleast LTS version) +- Yarn +- Git + +```bash +git clone https://github.com/Fallenbagel/jellyseerr.git && cd jellyseerr +git checkout main #if you want to run stable instead of develop +yarn install +yarn run build +yarn start +``` + +_Systemd-service:_ + +- assuming jellyseerr was cloned to `/opt/` + and the environmentfile is located at `/etc/jellyseerr` + +service: + +``` +[Unit] +Description=Jellyseerr Service +Wants=network-online.target +After=network-online.target + +[Service] +EnvironmentFile=/etc/jellyseerr/jellyseerr.conf +Environment=NODE_ENV=production +Type=exec +Restart=on-failure +WorkingDirectory=/opt/jellyseerr +ExecStart=/root/.nvm/versions/node/v18.7.0/bin/node dist/index.js + +[Install] +WantedBy=multi-user.target +``` + +Environmentfile: + +``` +# Jellyseerr's default port is 5055, if you want to use both, change this. +# specify on which port to listen +PORT=5055 + +# specify on which interface to listen, by default jellyseerr listens on all interfaces +#HOST=127.0.0.1 + +# Uncomment if your media server is emby instead of jellyfin. +# JELLYFIN_TYPE=emby +``` + ### Packages: Archlinux: [AUR](https://aur.archlinux.org/packages/jellyseerr) diff --git a/cypress.config.ts b/cypress.config.ts index 07b0c8b1d..457aa3262 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'cypress'; export default defineConfig({ - projectId: 'onnqy3', + projectId: 'xkm1b4', e2e: { baseUrl: 'http://localhost:5055', experimentalSessionAndOrigin: true, diff --git a/cypress/e2e/discover.cy.ts b/cypress/e2e/discover.cy.ts index 3489061b0..545f25658 100644 --- a/cypress/e2e/discover.cy.ts +++ b/cypress/e2e/discover.cy.ts @@ -36,7 +36,9 @@ describe('Discover', () => { }); it('loads upcoming movies', () => { - cy.intercept('/api/v1/discover/movies/upcoming*').as('getUpcomingMovies'); + cy.intercept('/api/v1/discover/movies?page=1&primaryReleaseDateGte*').as( + 'getUpcomingMovies' + ); cy.visit('/'); cy.wait('@getUpcomingMovies'); clickFirstTitleCardInSlider('Upcoming Movies'); @@ -50,7 +52,9 @@ describe('Discover', () => { }); it('loads upcoming series', () => { - cy.intercept('/api/v1/discover/tv/upcoming*').as('getUpcomingSeries'); + cy.intercept('/api/v1/discover/tv?page=1&firstAirDateGte=*').as( + 'getUpcomingSeries' + ); cy.visit('/'); cy.wait('@getUpcomingSeries'); clickFirstTitleCardInSlider('Upcoming Series'); diff --git a/cypress/e2e/settings/discover-customization.cy.ts b/cypress/e2e/settings/discover-customization.cy.ts new file mode 100644 index 000000000..a0756ae21 --- /dev/null +++ b/cypress/e2e/settings/discover-customization.cy.ts @@ -0,0 +1,163 @@ +describe('Discover Customization', () => { + beforeEach(() => { + cy.loginAsAdmin(); + cy.intercept('/api/v1/settings/discover').as('getDiscoverSliders'); + }); + + it('show the discover customization settings', () => { + cy.visit('/'); + + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=create-slider-header') + .should('contain', 'Create New Slider') + .scrollIntoView(); + + // There should be some built in options + cy.get('[data-testid=discover-slider-edit-mode]').should( + 'contain', + 'Recently Added' + ); + cy.get('[data-testid=discover-slider-edit-mode]').should( + 'contain', + 'Recent Requests' + ); + }); + + it('can drag to re-order elements and save to persist the changes', () => { + let dataTransfer = new DataTransfer(); + cy.visit('/'); + + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .trigger('dragstart', { dataTransfer }); + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .trigger('drop', { dataTransfer }); + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .trigger('dragend', { dataTransfer }); + + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .should('contain', 'Recently Added'); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + + cy.reload(); + + cy.get('[data-testid=discover-start-editing]').click(); + + dataTransfer = new DataTransfer(); + + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .should('contain', 'Recently Added'); + + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .trigger('dragstart', { dataTransfer }); + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .trigger('drop', { dataTransfer }); + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .trigger('dragend', { dataTransfer }); + + cy.get('[data-testid=discover-slider-edit-mode]') + .eq(1) + .should('contain', 'Recent Requests'); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + }); + + it('can create a new discover option and remove it', () => { + cy.visit('/'); + cy.intercept('/api/v1/settings/discover/*').as('discoverSlider'); + cy.intercept('/api/v1/search/keyword*').as('searchKeyword'); + + cy.get('[data-testid=discover-start-editing]').click(); + + const sliderTitle = 'Custom Keyword Slider'; + + cy.get('#sliderType').select('TMDB Movie Keyword'); + + cy.get('#title').type(sliderTitle); + // First confirm that an invalid keyword doesn't allow us to submit anything + cy.get('#data').type('invalidkeyword{enter}', { delay: 100 }); + cy.wait('@searchKeyword'); + + cy.get('[data-testid=create-discover-option-form]') + .find('button') + .should('be.disabled'); + + cy.get('#data').clear(); + cy.get('#data').type('time travel{enter}', { delay: 100 }); + + // Confirming we have some results + cy.contains('.slider-header', sliderTitle) + .next('[data-testid=media-slider]') + .find('[data-testid=title-card]'); + + cy.get('[data-testid=create-discover-option-form]').submit(); + + cy.wait('@discoverSlider'); + cy.wait('@getDiscoverSliders'); + cy.wait(1000); + + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .should('contain', sliderTitle); + + // Make sure its still there even if we reload + cy.reload(); + + cy.get('[data-testid=discover-start-editing]').click(); + + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .should('contain', sliderTitle); + + // Verify it's not rendering on our discover page (its still disabled!) + cy.visit('/'); + + cy.get('.slider-header').should('not.contain', sliderTitle); + + cy.get('[data-testid=discover-start-editing]').click(); + + // Enable it, and check again + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .find('[role="checkbox"]') + .click(); + + cy.get('[data-testid=discover-customize-submit').click(); + cy.wait('@getDiscoverSliders'); + + cy.visit('/'); + + cy.contains('.slider-header', sliderTitle) + .next('[data-testid=media-slider]') + .find('[data-testid=title-card]'); + + cy.get('[data-testid=discover-start-editing]').click(); + + // let's delete it and confirm its deleted. + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .find('[data-testid=discover-slider-remove-button]') + .click(); + + cy.wait('@discoverSlider'); + cy.wait('@getDiscoverSliders'); + cy.wait(1000); + + cy.get('[data-testid=discover-slider-edit-mode]') + .first() + .should('not.contain', sliderTitle); + }); +}); diff --git a/cypress/e2e/settings/general-settings.cy.ts b/cypress/e2e/settings/general-settings.cy.ts index 3717f65b0..bcfce1a32 100644 --- a/cypress/e2e/settings/general-settings.cy.ts +++ b/cypress/e2e/settings/general-settings.cy.ts @@ -16,7 +16,7 @@ describe('General Settings', () => { cy.visit('/settings'); cy.get('#trustProxy').click(); - cy.get('form').submit(); + cy.get('[data-testid=settings-main-form]').submit(); cy.get('[data-testid=modal-title]').should( 'contain', 'Server Restart Required' @@ -26,7 +26,7 @@ describe('General Settings', () => { cy.get('[data-testid=modal-title]').should('not.exist'); cy.get('[type=checkbox]#trustProxy').click(); - cy.get('form').submit(); + cy.get('[data-testid=settings-main-form]').submit(); cy.get('[data-testid=modal-title]').should('not.exist'); }); }); diff --git a/docs/extending-overseerr/fail2ban.md b/docs/extending-overseerr/fail2ban.md index 1cf9131f0..4f2b1c594 100644 --- a/docs/extending-overseerr/fail2ban.md +++ b/docs/extending-overseerr/fail2ban.md @@ -11,4 +11,4 @@ To use Fail2ban with Overseerr, create a new file named `overseerr.local` in you failregex = .*\[warn\]\[API\]\: Failed sign-in attempt.*"ip":"" ``` -You can then add a jail using this filter in `jail.local`. Please see the [Fail2ban documetation](https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Jails) for details on how to configure the jail. +You can then add a jail using this filter in `jail.local`. Please see the [Fail2ban documentation](https://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Jails) for details on how to configure the jail. diff --git a/docs/extending-overseerr/reverse-proxy.md b/docs/extending-overseerr/reverse-proxy.md index 5aa6fd462..84752f7c2 100644 --- a/docs/extending-overseerr/reverse-proxy.md +++ b/docs/extending-overseerr/reverse-proxy.md @@ -138,6 +138,7 @@ location ^~ /overseerr { sub_filter 'href="/"' 'href="/$app"'; sub_filter 'href="/login"' 'href="/$app/login"'; sub_filter 'href:"/"' 'href:"/$app"'; + sub_filter '\/_next' '\/$app\/_next'; sub_filter '/_next' '/$app/_next'; sub_filter '/api/v1' '/$app/api/v1'; sub_filter '/login/plex/loading' '/$app/login/plex/loading'; diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 957c9a51b..2b2ba3438 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -28,6 +28,7 @@ docker run -d \ --name overseerr \ -e LOG_LEVEL=debug \ -e TZ=Asia/Tokyo \ + -e PORT=5055 `#optional` \ -p 5055:5055 \ -v /path/to/appdata/config:/app/config \ --restart unless-stopped \ @@ -81,6 +82,7 @@ services: environment: - LOG_LEVEL=debug - TZ=Asia/Tokyo + - PORT=5055 #optional ports: - 5055:5055 volumes: @@ -88,7 +90,7 @@ services: restart: unless-stopped ``` -Then, start all services defined in the your Compose file: +Then, start all services defined in the Compose file: ```bash docker-compose up -d @@ -146,8 +148,6 @@ Then, create and start the Overseerr container: docker run -d --name overseerr -e LOG_LEVEL=debug -e TZ=Asia/Tokyo -p 5055:5055 -v "overseerr-data:/app/config" --restart unless-stopped fallenbagel/jellyseerr:latest ``` -If using a named volume like above, you can safely ignore the warning about the `/app/config` folder being incorrectly mounted on the setup page. - To access the files inside the volume created above, navigate to `\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes\overseerr-data\_data` using File Explorer. {% hint style="info" %} @@ -155,7 +155,7 @@ Docker on Windows works differently than it does on Linux; it runs Docker inside **If you must run Docker on Windows, you should put the `/app/config` directory mount inside the VM and not on the Windows host.** (This also applies to other containers with SQLite databases.) -Named volumes, like in the example commands above, are automatically mounted inside the VM. +Named volumes, like in the example commands above, are automatically mounted inside the VM. Therefore the warning on the setup about the `/app/config` folder being incorrectly mounted page should be ignored. {% endhint %} ## Linux diff --git a/docs/using-overseerr/settings/README.md b/docs/using-overseerr/settings/README.md index 820430736..477129fc9 100644 --- a/docs/using-overseerr/settings/README.md +++ b/docs/using-overseerr/settings/README.md @@ -40,6 +40,14 @@ If you enable this setting and find yourself unable to access Overseerr, you can This setting is **disabled** by default. +### Enable Image Caching + +When enabled, Overseerr will proxy and cache images from pre-configured sources (such as TMDB). This can use a significant amount of disk space. + +Images are saved in the `config/cache/images` and stale images are cleared out every 24 hours. + +You should enable this if you are having issues with loading images directly from TMDB in your browser. + ### Display Language Set the default display language for Overseerr. Users can override this setting in their user settings. diff --git a/overseerr-api.yml b/overseerr-api.yml index 02f65274e..1f78cbdac 100644 --- a/overseerr-api.yml +++ b/overseerr-api.yml @@ -26,6 +26,8 @@ tags: description: Endpoints related to retrieving movies and their details. - name: tv description: Endpoints related to retrieving TV series and their details. + - name: other + description: Endpoints related to other TMDB data - name: person description: Endpoints related to retrieving person details. - name: media @@ -648,6 +650,17 @@ components: name: type: string example: Adventure + Company: + type: object + properties: + id: + type: number + example: 1 + logo_path: + type: string + nullable: true + name: + type: string ProductionCompany: type: object properties: @@ -1087,6 +1100,8 @@ components: nullable: true status: type: number + example: 0 + description: Availability of the media. 1 = `UNKNOWN`, 2 = `PENDING`, 3 = `PROCESSING`, 4 = `PARTIALLY_AVAILABLE`, 5 = `AVAILABLE` requests: type: array readOnly: true @@ -1828,6 +1843,40 @@ components: message: type: string example: A comment + DiscoverSlider: + type: object + properties: + id: + type: number + example: 1 + type: + type: number + example: 1 + title: + type: string + nullable: true + isBuiltIn: + type: boolean + enabled: + type: boolean + data: + type: string + example: '1234' + nullable: true + required: + - type + - enabled + - title + - data + WatchProviderRegion: + type: object + properties: + iso_3166_1: + type: string + english_name: + type: string + native_name: + type: string securitySchemes: cookieAuth: type: apiKey @@ -2667,29 +2716,44 @@ paths: content: application/json: schema: - type: array - items: - type: object - properties: - id: - type: string - example: cache-id - name: - type: string - example: cache name - stats: + type: object + properties: + imageCache: + type: object + properties: + tmdb: + type: object + properties: + size: + type: number + example: 123456 + imageCount: + type: number + example: 123 + apiCaches: + type: array + items: type: object properties: - hits: - type: number - misses: - type: number - keys: - type: number - ksize: - type: number - vsize: - type: number + id: + type: string + example: cache-id + name: + type: string + example: cache name + stats: + type: object + properties: + hits: + type: number + misses: + type: number + keys: + type: number + ksize: + type: number + vsize: + type: number /settings/cache/{cacheId}/flush: post: summary: Flush a specific cache @@ -3219,6 +3283,133 @@ paths: responses: '204': description: Test notification attempted + /settings/discover: + get: + summary: Get all discover sliders + description: Returns all discovery sliders. Built-in and custom made. + tags: + - settings + responses: + '200': + description: Returned all discovery sliders + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + post: + summary: Batch update all sliders. + description: | + Batch update all sliders at once. Should also be used for creation. Will only update sliders provided + and will not delete any sliders not present in the request. If a slider is missing a required field, + it will be ignored. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + responses: + '200': + description: Returned all newly updated discovery sliders + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/{sliderId}: + put: + summary: Update a single slider + description: | + Updates a single slider and return the newly updated slider. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + example: 'Slider Title' + type: + type: number + example: 1 + data: + type: string + example: '1' + responses: + '200': + description: Returns newly added discovery slider + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' + delete: + summary: Delete slider by ID + description: Deletes the slider with the provided sliderId. Requires the `ADMIN` permission. + tags: + - settings + parameters: + - in: path + name: sliderId + required: true + schema: + type: number + responses: + '200': + description: Slider successfully deleted + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/add: + post: + summary: Add a new slider + description: | + Add a single slider and return the newly created slider. Requires the `ADMIN` permission. + tags: + - settings + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + title: + type: string + example: 'New Slider' + type: + type: number + example: 1 + data: + type: string + example: '1' + responses: + '200': + description: Returns newly added discovery slider + content: + application/json: + schema: + $ref: '#/components/schemas/DiscoverSlider' + /settings/discover/reset: + get: + summary: Reset all discover sliders + description: Resets all discovery sliders to the default values. Requires the `ADMIN` permission. + tags: + - settings + responses: + '204': + description: All sliders reset to defaults /settings/about: get: summary: Get server stats @@ -4100,6 +4291,86 @@ paths: - $ref: '#/components/schemas/MovieResult' - $ref: '#/components/schemas/TvResult' - $ref: '#/components/schemas/PersonResult' + /search/keyword: + get: + summary: Search for keywords + description: Returns a list of TMDB keywords matching the search query + tags: + - search + parameters: + - in: query + name: query + required: true + schema: + type: string + example: 'christmas' + - in: query + name: page + schema: + type: number + example: 1 + default: 1 + responses: + '200': + description: Results + content: + application/json: + schema: + type: object + properties: + page: + type: number + example: 1 + totalPages: + type: number + example: 20 + totalResults: + type: number + example: 200 + results: + type: array + items: + $ref: '#/components/schemas/Keyword' + /search/company: + get: + summary: Search for companies + description: Returns a list of TMDB companies matching the search query. (Will not return origin country) + tags: + - search + parameters: + - in: query + name: query + required: true + schema: + type: string + example: 'Disney' + - in: query + name: page + schema: + type: number + example: 1 + default: 1 + responses: + '200': + description: Results + content: + application/json: + schema: + type: object + properties: + page: + type: number + example: 1 + totalPages: + type: number + example: 20 + totalResults: + type: number + example: 200 + results: + type: array + items: + $ref: '#/components/schemas/Company' /discover/movies: get: summary: Discover movies @@ -4121,13 +4392,63 @@ paths: - in: query name: genre schema: - type: number + type: string example: 18 - in: query name: studio schema: type: number example: 1 + - in: query + name: keywords + schema: + type: string + example: 1,2 + - in: query + name: sortBy + schema: + type: string + example: popularity.desc + - in: query + name: primaryReleaseDateGte + schema: + type: string + example: 2022-01-01 + - in: query + name: primaryReleaseDateLte + schema: + type: string + example: 2023-01-01 + - in: query + name: withRuntimeGte + schema: + type: number + example: 60 + - in: query + name: withRuntimeLte + schema: + type: number + example: 120 + - in: query + name: voteAverageGte + schema: + type: number + example: 7 + - in: query + name: voteAverageLte + schema: + type: number + example: 10 + - in: query + name: watchRegion + schema: + type: string + example: US + - in: query + name: watchProviders + schema: + type: string + example: 8|9 responses: '200': description: Results @@ -4350,13 +4671,63 @@ paths: - in: query name: genre schema: - type: number + type: string example: 18 - in: query name: network schema: type: number example: 1 + - in: query + name: keywords + schema: + type: string + example: 1,2 + - in: query + name: sortBy + schema: + type: string + example: popularity.desc + - in: query + name: firstAirDateGte + schema: + type: string + example: 2022-01-01 + - in: query + name: firstAirDateLte + schema: + type: string + example: 2023-01-01 + - in: query + name: withRuntimeGte + schema: + type: number + example: 60 + - in: query + name: withRuntimeLte + schema: + type: number + example: 120 + - in: query + name: voteAverageGte + schema: + type: number + example: 7 + - in: query + name: voteAverageLte + schema: + type: number + example: 10 + - in: query + name: watchRegion + schema: + type: string + example: US + - in: query + name: watchProviders + schema: + type: string + example: 8|9 responses: '200': description: Results @@ -4838,9 +5209,13 @@ paths: type: number example: 123 seasons: - type: array - items: - type: number + oneOf: + - type: array + items: + type: number + minimum: 1 + - type: string + enum: [all] is4k: type: boolean example: false @@ -4919,7 +5294,7 @@ paths: $ref: '#/components/schemas/MediaRequest' put: summary: Update MediaRequest - description: Updates a specific media request and returns the request in a JSON object.. Requires the `MANAGE_REQUESTS` permission. + description: Updates a specific media request and returns the request in a JSON object. Requires the `MANAGE_REQUESTS` permission. tags: - request parameters: @@ -4930,6 +5305,37 @@ paths: example: '1' schema: type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + mediaType: + type: string + enum: [movie, tv] + seasons: + type: array + items: + type: number + minimum: 1 + is4k: + type: boolean + example: false + serverId: + type: number + profileId: + type: number + rootFolder: + type: string + languageProfileId: + type: number + userId: + type: number + nullable: true + required: + - mediaType responses: '200': description: Succesfully updated request @@ -5000,7 +5406,7 @@ paths: required: true schema: type: string - enum: [pending, approve, decline, available] + enum: [approve, decline] responses: '200': description: Request status changed @@ -6137,6 +6543,89 @@ paths: application/json: schema: $ref: '#/components/schemas/Issue' + /keyword/{keywordId}: + get: + summary: Get keyword + description: | + Returns a single keyword in JSON format. + tags: + - other + parameters: + - in: path + name: keywordId + required: true + schema: + type: number + example: 1 + responses: + '200': + description: Keyword returned + content: + application/json: + schema: + $ref: '#/components/schemas/Keyword' + /watchproviders/regions: + get: + summary: Get watch provider regions + description: | + Returns a list of all available watch provider regions. + tags: + - other + responses: + '200': + description: Watch provider regions returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderRegion' + /watchproviders/movies: + get: + summary: Get watch provider movies + description: | + Returns a list of all available watch providers for movies. + tags: + - other + parameters: + - in: query + name: watchRegion + required: true + schema: + type: string + example: US + responses: + '200': + description: Watch providers for movies returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderDetails' + /watchproviders/tv: + get: + summary: Get watch provider series + description: | + Returns a list of all available watch providers for series. + tags: + - other + parameters: + - in: query + name: watchRegion + required: true + schema: + type: string + example: US + responses: + '200': + description: Watch providers for series returned + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/WatchProviderDetails' security: - cookieAuth: [] - apiKey: [] diff --git a/package.json b/package.json index 333fdfcef..f1f2de39e 100644 --- a/package.json +++ b/package.json @@ -29,145 +29,149 @@ }, "license": "MIT", "dependencies": { - "@formatjs/intl-displaynames": "6.0.3", - "@formatjs/intl-locale": "3.0.3", - "@formatjs/intl-pluralrules": "5.0.3", + "@formatjs/intl-displaynames": "6.2.3", + "@formatjs/intl-locale": "3.0.11", + "@formatjs/intl-pluralrules": "5.1.8", "@formatjs/intl-utils": "3.8.4", - "@headlessui/react": "0.0.0-insiders.b301f04", - "@heroicons/react": "1.0.6", + "@headlessui/react": "1.7.7", + "@heroicons/react": "2.0.13", "@supercharge/request-ip": "1.2.0", - "@svgr/webpack": "6.3.1", - "@tanem/react-nprogress": "5.0.11", - "ace-builds": "1.9.6", - "axios": "0.27.2", + "@svgr/webpack": "6.5.1", + "@tanem/react-nprogress": "5.0.22", + "ace-builds": "1.14.0", + "axios": "1.2.2", "axios-rate-limit": "1.3.0", - "bcrypt": "5.0.1", + "bcrypt": "5.1.0", "bowser": "2.11.0", "connect-typeorm": "1.1.4", "cookie-parser": "1.4.6", - "copy-to-clipboard": "3.3.2", + "copy-to-clipboard": "3.3.3", "country-flag-icons": "1.5.5", - "cronstrue": "2.11.0", + "cronstrue": "2.21.0", "csurf": "1.11.0", - "date-fns": "2.29.1", + "date-fns": "2.29.3", + "dayjs": "1.11.7", "email-templates": "9.0.0", "email-validator": "2.0.4", - "express": "4.18.1", + "express": "4.18.2", "express-openapi-validator": "4.13.8", - "express-rate-limit": "6.5.1", + "express-rate-limit": "6.7.0", "express-session": "1.17.3", "formik": "2.2.9", "gravatar-url": "3.1.0", "intl": "1.2.5", "lodash": "4.17.21", - "next": "12.2.5", + "next": "12.3.4", "node-cache": "5.1.2", - "node-gyp": "9.1.0", + "node-gyp": "9.3.1", "node-schedule": "2.1.0", - "nodemailer": "6.7.8", - "openpgp": "5.4.0", + "nodemailer": "6.8.0", + "openpgp": "5.5.0", "plex-api": "5.3.2", "pug": "3.0.2", "pulltorefreshjs": "0.1.22", "react": "18.2.0", "react-ace": "10.1.0", "react-animate-height": "2.1.2", + "react-aria": "3.22.0", "react-dom": "18.2.0", - "react-intersection-observer": "9.4.0", - "react-intl": "6.0.5", - "react-markdown": "8.0.3", + "react-intersection-observer": "9.4.1", + "react-intl": "6.2.5", + "react-markdown": "8.0.4", "react-popper-tooltip": "4.4.2", - "react-select": "5.4.0", - "react-spring": "9.5.2", + "react-select": "5.7.0", + "react-spring": "9.6.1", + "react-tailwindcss-datepicker-sct": "1.3.4", "react-toast-notifications": "2.5.1", "react-truncate-markup": "5.1.2", - "react-use-clipboard": "1.0.8", + "react-use-clipboard": "1.0.9", "reflect-metadata": "0.1.13", "secure-random-password": "0.2.3", - "semver": "7.3.7", - "sqlite3": "5.0.11", - "swagger-ui-express": "4.5.0", - "swr": "1.3.0", - "typeorm": "0.3.7", + "semver": "7.3.8", + "sqlite3": "5.1.4", + "swagger-ui-express": "4.6.0", + "swr": "2.0.0", + "typeorm": "0.3.11", "web-push": "3.5.0", - "winston": "3.8.1", + "winston": "3.8.2", "winston-daily-rotate-file": "4.7.1", "xml2js": "0.4.23", "yamljs": "0.3.0", - "yup": "0.32.11" + "yup": "0.32.11", + "zod": "3.20.2" }, "devDependencies": { - "@babel/cli": "7.18.10", - "@commitlint/cli": "17.0.3", - "@commitlint/config-conventional": "17.0.3", - "@semantic-release/changelog": "6.0.1", + "@babel/cli": "7.20.7", + "@commitlint/cli": "17.4.0", + "@commitlint/config-conventional": "17.4.0", + "@semantic-release/changelog": "6.0.2", "@semantic-release/commit-analyzer": "9.0.2", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", - "@tailwindcss/aspect-ratio": "0.4.0", - "@tailwindcss/forms": "0.5.2", - "@tailwindcss/typography": "0.5.4", + "@tailwindcss/aspect-ratio": "0.4.2", + "@tailwindcss/forms": "0.5.3", + "@tailwindcss/typography": "0.5.8", "@types/bcrypt": "5.0.0", "@types/cookie-parser": "1.4.3", "@types/country-flag-icons": "1.2.0", "@types/csurf": "1.11.2", "@types/email-templates": "8.0.4", - "@types/express": "4.17.13", - "@types/express-session": "1.17.4", - "@types/lodash": "4.14.183", + "@types/express": "4.17.15", + "@types/express-session": "1.17.5", + "@types/lodash": "4.14.191", "@types/node": "17.0.36", "@types/node-schedule": "2.1.0", - "@types/nodemailer": "6.4.5", + "@types/nodemailer": "6.4.7", "@types/pulltorefreshjs": "0.1.5", - "@types/react": "18.0.17", - "@types/react-dom": "18.0.6", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10", "@types/react-transition-group": "4.4.5", "@types/secure-random-password": "0.2.1", - "@types/semver": "7.3.12", + "@types/semver": "7.3.13", "@types/swagger-ui-express": "4.1.3", "@types/web-push": "3.3.2", "@types/xml2js": "0.4.11", "@types/yamljs": "0.2.31", "@types/yup": "0.29.14", - "@typescript-eslint/eslint-plugin": "5.33.1", - "@typescript-eslint/parser": "5.33.1", - "autoprefixer": "10.4.8", + "@typescript-eslint/eslint-plugin": "5.48.0", + "@typescript-eslint/parser": "5.48.0", + "autoprefixer": "10.4.13", "babel-plugin-react-intl": "8.2.25", "babel-plugin-react-intl-auto": "3.3.0", - "commitizen": "4.2.5", + "commitizen": "4.2.6", "copyfiles": "2.4.1", "cy-mobile-commands": "0.3.0", - "cypress": "10.6.0", + "cypress": "12.3.0", "cz-conventional-changelog": "3.3.0", - "eslint": "8.22.0", - "eslint-config-next": "12.2.5", - "eslint-config-prettier": "8.5.0", - "eslint-plugin-formatjs": "4.1.0", + "eslint": "8.31.0", + "eslint-config-next": "12.3.4", + "eslint-config-prettier": "8.6.0", + "eslint-plugin-formatjs": "4.3.9", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-no-relative-import-paths": "1.4.0", + "eslint-plugin-no-relative-import-paths": "1.5.2", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-react": "7.30.1", + "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", "extract-react-intl-messages": "4.1.1", - "husky": "8.0.1", - "lint-staged": "12.4.3", - "nodemon": "2.0.19", - "postcss": "8.4.16", - "prettier": "2.7.1", - "prettier-plugin-organize-imports": "3.1.0", - "prettier-plugin-tailwindcss": "0.1.13", - "semantic-release": "19.0.3", + "husky": "8.0.3", + "lint-staged": "13.1.0", + "nodemon": "2.0.20", + "postcss": "8.4.20", + "prettier": "2.8.1", + "prettier-plugin-organize-imports": "3.2.1", + "prettier-plugin-tailwindcss": "0.2.1", + "semantic-release": "19.0.5", "semantic-release-docker-buildx": "1.0.1", - "tailwindcss": "3.1.8", + "tailwindcss": "3.2.4", "ts-node": "10.9.1", - "tsc-alias": "1.7.0", - "tsconfig-paths": "4.1.0", - "typescript": "4.7.4" + "tsc-alias": "1.8.2", + "tsconfig-paths": "4.1.2", + "typescript": "4.9.4" }, "resolutions": { "sqlite3/node-gyp": "8.4.1", - "@types/react": "18.0.17", - "@types/react-dom": "18.0.6" + "@types/react": "18.0.26", + "@types/react-dom": "18.0.10" }, "config": { "commitizen": { @@ -225,7 +229,7 @@ { "path": "semantic-release-docker-buildx", "buildArgs": { - "COMMIT_TAG": "$GITHUB_SHA" + "COMMIT_TAG": "$GIT_SHA" }, "imageNames": [ "fallenbagel/jellyseerr" diff --git a/server/api/externalapi.ts b/server/api/externalapi.ts index cc1e429ff..33e40e4d4 100644 --- a/server/api/externalapi.ts +++ b/server/api/externalapi.ts @@ -69,6 +69,30 @@ class ExternalAPI { return response.data; } + protected async post( + endpoint: string, + data: Record, + config?: AxiosRequestConfig, + ttl?: number + ): Promise { + const cacheKey = this.serializeCacheKey(endpoint, { + config: config?.params, + data, + }); + const cachedItem = this.cache?.get(cacheKey); + if (cachedItem) { + return cachedItem; + } + + const response = await this.axios.post(endpoint, data, config); + + if (this.cache) { + this.cache.set(cacheKey, response.data, ttl ?? DEFAULT_TTL); + } + + return response.data; + } + protected async getRolling( endpoint: string, config?: AxiosRequestConfig, diff --git a/server/api/jellyfin.ts b/server/api/jellyfin.ts index 79b0778a9..b126b55f1 100644 --- a/server/api/jellyfin.ts +++ b/server/api/jellyfin.ts @@ -38,6 +38,7 @@ export interface JellyfinLibraryItem { SeasonId?: string; SeasonName?: string; IndexNumber?: number; + IndexNumberEnd?: number; ParentIndexNumber?: number; MediaType: string; } @@ -178,8 +179,10 @@ class JellyfinAPI { (Item: any) => { return ( Item.Type === 'CollectionFolder' && - (Item.CollectionType === 'tvshows' || - Item.CollectionType === 'movies') + Item.CollectionType !== 'music' && + Item.CollectionType !== 'books' && + Item.CollectionType !== 'musicvideos' && + Item.CollectionType !== 'homevideos' ); } ).map((Item: any) => { @@ -204,7 +207,7 @@ class JellyfinAPI { public async getLibraryContents(id: string): Promise { try { const contents = await this.axios.get( - `/Users/${this.userId}/Items?SortBy=SortName&SortOrder=Ascending&IncludeItemTypes=Series,Movie&Recursive=true&StartIndex=0&ParentId=${id}` + `/Users/${this.userId}/Items?SortBy=SortName&SortOrder=Ascending&IncludeItemTypes=Series,Movie,Others&Recursive=true&StartIndex=0&ParentId=${id}` ); return contents.data.Items.filter( diff --git a/server/api/plexapi.ts b/server/api/plexapi.ts index 90aae4852..f6b8f3cb0 100644 --- a/server/api/plexapi.ts +++ b/server/api/plexapi.ts @@ -226,12 +226,17 @@ class PlexAPI { id: string, options: { addedAt: number } = { addedAt: Date.now() - 1000 * 60 * 60, - } + }, + mediaType: 'movie' | 'show' ): Promise { const response = await this.plexClient.query({ - uri: `/library/sections/${id}/all?sort=addedAt%3Adesc&addedAt>>=${Math.floor( - options.addedAt / 1000 - )}`, + uri: `/library/sections/${id}/all?type=${ + mediaType === 'show' ? '4' : '1' + }&sort=addedAt%3Adesc&addedAt>>=${Math.floor(options.addedAt / 1000)}`, + extraHeaders: { + 'X-Plex-Container-Start': `0`, + 'X-Plex-Container-Size': `500`, + }, }); return response.MediaContainer.Metadata; diff --git a/server/api/rottentomatoes.ts b/server/api/rottentomatoes.ts index e190b7b97..7695e3987 100644 --- a/server/api/rottentomatoes.ts +++ b/server/api/rottentomatoes.ts @@ -1,28 +1,40 @@ import cacheManager from '@server/lib/cache'; +import { getSettings } from '@server/lib/settings'; import ExternalAPI from './externalapi'; -interface RTSearchResult { - meterClass: 'certified_fresh' | 'fresh' | 'rotten'; - meterScore: number; - url: string; +interface RTAlgoliaSearchResponse { + results: { + hits: RTAlgoliaHit[]; + index: 'content_rt' | 'people_rt'; + }[]; } -interface RTTvSearchResult extends RTSearchResult { +interface RTAlgoliaHit { + emsId: string; + emsVersionId: string; + tmsId: string; + type: string; title: string; - startYear: number; - endYear: number; -} -interface RTMovieSearchResult extends RTSearchResult { - name: string; - url: string; - year: number; -} - -interface RTMultiSearchResponse { - tvCount: number; - tvSeries: RTTvSearchResult[]; - movieCount: number; - movies: RTMovieSearchResult[]; + titles: string[]; + description: string; + releaseYear: string; + rating: string; + genres: string[]; + updateDate: string; + isEmsSearchable: boolean; + rtId: number; + vanity: string; + aka: string[]; + posterImageUrl: string; + rottenTomatoes: { + audienceScore: number; + criticsIconUrl: string; + wantToSeeCount: number; + audienceIconUrl: string; + scoreSentiment: string; + certifiedFresh: boolean; + criticsScore: number; + }; } export interface RTRating { @@ -47,13 +59,20 @@ export interface RTRating { */ class RottenTomatoes extends ExternalAPI { constructor() { + const settings = getSettings(); super( - 'https://www.rottentomatoes.com/api/private', - {}, + 'https://79frdp12pn-dsn.algolia.net/1/indexes/*', + { + 'x-algolia-agent': + 'Algolia%20for%20JavaScript%20(4.14.3)%3B%20Browser%20(lite)', + 'x-algolia-api-key': '175588f6e5f8319b27702e4cc4013561', + 'x-algolia-application-id': '79FRDP12PN', + }, { headers: { 'Content-Type': 'application/json', Accept: 'application/json', + 'x-algolia-usertoken': settings.clientId, }, nodeCache: cacheManager.getCache('rt').data, } @@ -61,14 +80,11 @@ class RottenTomatoes extends ExternalAPI { } /** - * Search the 1.0 api for the movie title + * Search the RT algolia api for the movie title * * We compare the release date to make sure its the correct * match. But it's not guaranteed to have results. * - * We use the 1.0 API here because the 2.0 search api does - * not return audience ratings. - * * @param name Movie name * @param year Release Year */ @@ -77,30 +93,45 @@ class RottenTomatoes extends ExternalAPI { year: number ): Promise { try { - const data = await this.get('/v2.0/search/', { - params: { q: name, limit: 10 }, + const data = await this.post('/queries', { + requests: [ + { + indexName: 'content_rt', + query: name, + params: 'filters=isEmsSearchable%20%3D%201&hitsPerPage=20', + }, + ], }); + const contentResults = data.results.find((r) => r.index === 'content_rt'); + + if (!contentResults) { + return null; + } + // First, attempt to match exact name and year - let movie = data.movies.find( - (movie) => movie.year === year && movie.name === name + let movie = contentResults.hits.find( + (movie) => movie.releaseYear === year.toString() && movie.title === name ); // If we don't find a movie, try to match partial name and year if (!movie) { - movie = data.movies.find( - (movie) => movie.year === year && movie.name.includes(name) + movie = contentResults.hits.find( + (movie) => + movie.releaseYear === year.toString() && movie.title.includes(name) ); } // If we still dont find a movie, try to match just on year if (!movie) { - movie = data.movies.find((movie) => movie.year === year); + movie = contentResults.hits.find( + (movie) => movie.releaseYear === year.toString() + ); } // One last try, try exact name match only if (!movie) { - movie = data.movies.find((movie) => movie.name === name); + movie = contentResults.hits.find((movie) => movie.title === name); } if (!movie) { @@ -108,16 +139,15 @@ class RottenTomatoes extends ExternalAPI { } return { - title: movie.name, - url: `https://www.rottentomatoes.com${movie.url}`, - criticsRating: - movie.meterClass === 'certified_fresh' - ? 'Certified Fresh' - : movie.meterClass === 'fresh' - ? 'Fresh' - : 'Rotten', - criticsScore: movie.meterScore, - year: movie.year, + title: movie.title, + url: `https://www.rottentomatoes.com/m/${movie.vanity}`, + criticsRating: movie.rottenTomatoes.certifiedFresh + ? 'Certified Fresh' + : movie.rottenTomatoes.criticsScore >= 60 + ? 'Fresh' + : 'Rotten', + criticsScore: movie.rottenTomatoes.criticsScore, + year: Number(movie.releaseYear), }; } catch (e) { throw new Error( @@ -131,14 +161,28 @@ class RottenTomatoes extends ExternalAPI { year?: number ): Promise { try { - const data = await this.get('/v2.0/search/', { - params: { q: name, limit: 10 }, + const data = await this.post('/queries', { + requests: [ + { + indexName: 'content_rt', + query: name, + params: 'filters=isEmsSearchable%20%3D%201&hitsPerPage=20', + }, + ], }); - let tvshow: RTTvSearchResult | undefined = data.tvSeries[0]; + const contentResults = data.results.find((r) => r.index === 'content_rt'); + + if (!contentResults) { + return null; + } + + let tvshow: RTAlgoliaHit | undefined = contentResults.hits[0]; if (year) { - tvshow = data.tvSeries.find((series) => series.startYear === year); + tvshow = contentResults.hits.find( + (series) => series.releaseYear === year.toString() + ); } if (!tvshow) { @@ -147,10 +191,11 @@ class RottenTomatoes extends ExternalAPI { return { title: tvshow.title, - url: `https://www.rottentomatoes.com${tvshow.url}`, - criticsRating: tvshow.meterClass === 'fresh' ? 'Fresh' : 'Rotten', - criticsScore: tvshow.meterScore, - year: tvshow.startYear, + url: `https://www.rottentomatoes.com/tv/${tvshow.vanity}`, + criticsRating: + tvshow.rottenTomatoes.criticsScore >= 60 ? 'Fresh' : 'Rotten', + criticsScore: tvshow.rottenTomatoes.criticsScore, + year: Number(tvshow.releaseYear), }; } catch (e) { throw new Error(`[RT API] Failed to retrieve tv ratings: ${e.message}`); diff --git a/server/api/servarr/base.ts b/server/api/servarr/base.ts index 2b8ec4cb8..c004b4746 100644 --- a/server/api/servarr/base.ts +++ b/server/api/servarr/base.ts @@ -158,7 +158,12 @@ class ServarrBase extends ExternalAPI { public getQueue = async (): Promise<(QueueItem & QueueItemAppendT)[]> => { try { const response = await this.axios.get>( - `/queue` + `/queue`, + { + params: { + includeEpisode: true, + }, + } ); return response.data.records; diff --git a/server/api/servarr/sonarr.ts b/server/api/servarr/sonarr.ts index 891641011..6999c6ba4 100644 --- a/server/api/servarr/sonarr.ts +++ b/server/api/servarr/sonarr.ts @@ -13,6 +13,21 @@ interface SonarrSeason { percentOfEpisodes: number; }; } +interface EpisodeResult { + seriesId: number; + episodeFileId: number; + seasonNumber: number; + episodeNumber: number; + title: string; + airDate: string; + airDateUtc: string; + overview: string; + hasFile: boolean; + monitored: boolean; + absoluteEpisodeNumber: number; + unverifiedSceneNumbering: boolean; + id: number; +} export interface SonarrSeries { title: string; @@ -82,7 +97,11 @@ export interface LanguageProfile { name: string; } -class SonarrAPI extends ServarrBase<{ seriesId: number; episodeId: number }> { +class SonarrAPI extends ServarrBase<{ + seriesId: number; + episodeId: number; + episode: EpisodeResult; +}> { constructor({ url, apiKey }: { url: string; apiKey: string }) { super({ url, apiKey, apiName: 'Sonarr', cacheName: 'sonarr' }); } diff --git a/server/api/themoviedb/index.ts b/server/api/themoviedb/index.ts index ea05b8ab9..4c931ff97 100644 --- a/server/api/themoviedb/index.ts +++ b/server/api/themoviedb/index.ts @@ -3,9 +3,12 @@ import cacheManager from '@server/lib/cache'; import { sortBy } from 'lodash'; import type { TmdbCollection, + TmdbCompanySearchResponse, TmdbExternalIdResponse, TmdbGenre, TmdbGenresResult, + TmdbKeyword, + TmdbKeywordSearchResponse, TmdbLanguage, TmdbMovieDetails, TmdbNetwork, @@ -19,6 +22,8 @@ import type { TmdbSeasonWithEpisodes, TmdbTvDetails, TmdbUpcomingMoviesResponse, + TmdbWatchProviderDetails, + TmdbWatchProviderRegion, } from './interfaces'; interface SearchOptions { @@ -32,30 +37,41 @@ interface SingleSearchOptions extends SearchOptions { year?: number; } +export type SortOptions = + | 'popularity.asc' + | 'popularity.desc' + | 'release_date.asc' + | 'release_date.desc' + | 'revenue.asc' + | 'revenue.desc' + | 'primary_release_date.asc' + | 'primary_release_date.desc' + | 'original_title.asc' + | 'original_title.desc' + | 'vote_average.asc' + | 'vote_average.desc' + | 'vote_count.asc' + | 'vote_count.desc' + | 'first_air_date.asc' + | 'first_air_date.desc'; + interface DiscoverMovieOptions { page?: number; includeAdult?: boolean; language?: string; primaryReleaseDateGte?: string; primaryReleaseDateLte?: string; + withRuntimeGte?: string; + withRuntimeLte?: string; + voteAverageGte?: string; + voteAverageLte?: string; originalLanguage?: string; - genre?: number; - studio?: number; - sortBy?: - | 'popularity.asc' - | 'popularity.desc' - | 'release_date.asc' - | 'release_date.desc' - | 'revenue.asc' - | 'revenue.desc' - | 'primary_release_date.asc' - | 'primary_release_date.desc' - | 'original_title.asc' - | 'original_title.desc' - | 'vote_average.asc' - | 'vote_average.desc' - | 'vote_count.asc' - | 'vote_count.desc'; + genre?: string; + studio?: string; + keywords?: string; + sortBy?: SortOptions; + watchRegion?: string; + watchProviders?: string; } interface DiscoverTvOptions { @@ -63,19 +79,18 @@ interface DiscoverTvOptions { language?: string; firstAirDateGte?: string; firstAirDateLte?: string; + withRuntimeGte?: string; + withRuntimeLte?: string; + voteAverageGte?: string; + voteAverageLte?: string; includeEmptyReleaseDate?: boolean; originalLanguage?: string; - genre?: number; + genre?: string; network?: number; - sortBy?: - | 'popularity.asc' - | 'popularity.desc' - | 'vote_average.asc' - | 'vote_average.desc' - | 'vote_count.asc' - | 'vote_count.desc' - | 'first_air_date.asc' - | 'first_air_date.desc'; + keywords?: string; + sortBy?: SortOptions; + watchRegion?: string; + watchProviders?: string; } class TheMovieDb extends ExternalAPI { @@ -237,7 +252,7 @@ class TheMovieDb extends ExternalAPI { params: { language, append_to_response: - 'credits,external_ids,videos,release_dates,watch/providers', + 'credits,external_ids,videos,keywords,release_dates,watch/providers', }, }, 43200 @@ -440,8 +455,25 @@ class TheMovieDb extends ExternalAPI { originalLanguage, genre, studio, + keywords, + withRuntimeGte, + withRuntimeLte, + voteAverageGte, + voteAverageLte, + watchProviders, + watchRegion, }: DiscoverMovieOptions = {}): Promise => { try { + const defaultFutureDate = new Date( + Date.now() + 1000 * 60 * 60 * 24 * (365 * 1.5) + ) + .toISOString() + .split('T')[0]; + + const defaultPastDate = new Date('1900-01-01') + .toISOString() + .split('T')[0]; + const data = await this.get('/discover/movie', { params: { sort_by: sortBy, @@ -449,11 +481,31 @@ class TheMovieDb extends ExternalAPI { include_adult: includeAdult, language, region: this.region, - with_original_language: originalLanguage ?? this.originalLanguage, - 'primary_release_date.gte': primaryReleaseDateGte, - 'primary_release_date.lte': primaryReleaseDateLte, + with_original_language: + originalLanguage && originalLanguage !== 'all' + ? originalLanguage + : originalLanguage === 'all' + ? undefined + : this.originalLanguage, + // Set our release date values, but check if one is set and not the other, + // so we can force a past date or a future date. TMDB Requires both values if one is set! + 'primary_release_date.gte': + !primaryReleaseDateGte && primaryReleaseDateLte + ? defaultPastDate + : primaryReleaseDateGte, + 'primary_release_date.lte': + !primaryReleaseDateLte && primaryReleaseDateGte + ? defaultFutureDate + : primaryReleaseDateLte, with_genres: genre, with_companies: studio, + with_keywords: keywords, + 'with_runtime.gte': withRuntimeGte, + 'with_runtime.lte': withRuntimeLte, + 'vote_average.gte': voteAverageGte, + 'vote_average.lte': voteAverageLte, + watch_region: watchRegion, + with_watch_providers: watchProviders, }, }); @@ -473,20 +525,57 @@ class TheMovieDb extends ExternalAPI { originalLanguage, genre, network, + keywords, + withRuntimeGte, + withRuntimeLte, + voteAverageGte, + voteAverageLte, + watchProviders, + watchRegion, }: DiscoverTvOptions = {}): Promise => { try { + const defaultFutureDate = new Date( + Date.now() + 1000 * 60 * 60 * 24 * (365 * 1.5) + ) + .toISOString() + .split('T')[0]; + + const defaultPastDate = new Date('1900-01-01') + .toISOString() + .split('T')[0]; + const data = await this.get('/discover/tv', { params: { sort_by: sortBy, page, language, region: this.region, - 'first_air_date.gte': firstAirDateGte, - 'first_air_date.lte': firstAirDateLte, - with_original_language: originalLanguage ?? this.originalLanguage, + // Set our release date values, but check if one is set and not the other, + // so we can force a past date or a future date. TMDB Requires both values if one is set! + 'first_air_date.gte': + !firstAirDateGte && firstAirDateLte + ? defaultPastDate + : firstAirDateGte, + 'first_air_date.lte': + !firstAirDateLte && firstAirDateGte + ? defaultFutureDate + : firstAirDateLte, + with_original_language: + originalLanguage && originalLanguage !== 'all' + ? originalLanguage + : originalLanguage === 'all' + ? undefined + : this.originalLanguage, include_null_first_air_dates: includeEmptyReleaseDate, with_genres: genre, with_networks: network, + with_keywords: keywords, + 'with_runtime.gte': withRuntimeGte, + 'with_runtime.lte': withRuntimeLte, + 'vote_average.gte': voteAverageGte, + 'vote_average.lte': voteAverageLte, + with_watch_providers: watchProviders, + watch_region: watchRegion, }, }); @@ -874,6 +963,152 @@ class TheMovieDb extends ExternalAPI { throw new Error(`[TMDB] Failed to fetch TV genres: ${e.message}`); } } + + public async getKeywordDetails({ + keywordId, + }: { + keywordId: number; + }): Promise { + try { + const data = await this.get( + `/keyword/${keywordId}`, + undefined, + 604800 // 7 days + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to fetch keyword: ${e.message}`); + } + } + + public async searchKeyword({ + query, + page = 1, + }: { + query: string; + page?: number; + }): Promise { + try { + const data = await this.get( + '/search/keyword', + { + params: { + query, + page, + }, + }, + 86400 // 24 hours + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to search keyword: ${e.message}`); + } + } + + public async searchCompany({ + query, + page = 1, + }: { + query: string; + page?: number; + }): Promise { + try { + const data = await this.get( + '/search/company', + { + params: { + query, + page, + }, + }, + 86400 // 24 hours + ); + + return data; + } catch (e) { + throw new Error(`[TMDB] Failed to search companies: ${e.message}`); + } + } + + public async getAvailableWatchProviderRegions({ + language, + }: { + language?: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderRegion[] }>( + '/watch/providers/regions', + { + params: { + language: language ?? this.originalLanguage, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch available watch regions: ${e.message}` + ); + } + } + + public async getMovieWatchProviders({ + language, + watchRegion, + }: { + language?: string; + watchRegion: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderDetails[] }>( + '/watch/providers/movie', + { + params: { + language: language ?? this.originalLanguage, + watch_region: watchRegion, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch movie watch providers: ${e.message}` + ); + } + } + + public async getTvWatchProviders({ + language, + watchRegion, + }: { + language?: string; + watchRegion: string; + }) { + try { + const data = await this.get<{ results: TmdbWatchProviderDetails[] }>( + '/watch/providers/tv', + { + params: { + language: language ?? this.originalLanguage, + watch_region: watchRegion, + }, + }, + 86400 // 24 hours + ); + + return data.results; + } catch (e) { + throw new Error( + `[TMDB] Failed to fetch TV watch providers: ${e.message}` + ); + } + } } export default TheMovieDb; diff --git a/server/api/themoviedb/interfaces.ts b/server/api/themoviedb/interfaces.ts index 2282fe052..955e1b12e 100644 --- a/server/api/themoviedb/interfaces.ts +++ b/server/api/themoviedb/interfaces.ts @@ -171,6 +171,9 @@ export interface TmdbMovieDetails { id: number; results?: { [iso_3166_1: string]: TmdbWatchProviders }; }; + keywords: { + keywords: TmdbKeyword[]; + }; } export interface TmdbVideo { @@ -191,7 +194,7 @@ export interface TmdbVideo { export interface TmdbTvEpisodeResult { id: number; - air_date: string; + air_date: string | null; episode_number: number; name: string; overview: string; @@ -372,7 +375,8 @@ export interface TmdbPersonCombinedCredits { crew: TmdbPersonCreditCrew[]; } -export interface TmdbSeasonWithEpisodes extends TmdbTvSeasonResult { +export interface TmdbSeasonWithEpisodes + extends Omit { episodes: TmdbTvEpisodeResult[]; external_ids: TmdbExternalIds; } @@ -427,3 +431,24 @@ export interface TmdbWatchProviderDetails { provider_id: number; provider_name: string; } + +export interface TmdbKeywordSearchResponse extends TmdbPaginatedResponse { + results: TmdbKeyword[]; +} + +// We have production companies, but the company search results return less data +export interface TmdbCompany { + id: number; + logo_path?: string; + name: string; +} + +export interface TmdbCompanySearchResponse extends TmdbPaginatedResponse { + results: TmdbCompany[]; +} + +export interface TmdbWatchProviderRegion { + iso_3166_1: string; + english_name: string; + native_name: string; +} diff --git a/server/constants/discover.ts b/server/constants/discover.ts new file mode 100644 index 000000000..a19f07422 --- /dev/null +++ b/server/constants/discover.ts @@ -0,0 +1,98 @@ +import type DiscoverSlider from '@server/entity/DiscoverSlider'; + +export enum DiscoverSliderType { + RECENTLY_ADDED = 1, + RECENT_REQUESTS, + PLEX_WATCHLIST, + TRENDING, + POPULAR_MOVIES, + MOVIE_GENRES, + UPCOMING_MOVIES, + STUDIOS, + POPULAR_TV, + TV_GENRES, + UPCOMING_TV, + NETWORKS, + TMDB_MOVIE_KEYWORD, + TMDB_MOVIE_GENRE, + TMDB_TV_KEYWORD, + TMDB_TV_GENRE, + TMDB_SEARCH, + TMDB_STUDIO, + TMDB_NETWORK, +} + +export const defaultSliders: Partial[] = [ + { + type: DiscoverSliderType.RECENTLY_ADDED, + enabled: true, + isBuiltIn: true, + order: 0, + }, + { + type: DiscoverSliderType.RECENT_REQUESTS, + enabled: true, + isBuiltIn: true, + order: 1, + }, + { + type: DiscoverSliderType.PLEX_WATCHLIST, + enabled: true, + isBuiltIn: true, + order: 2, + }, + { + type: DiscoverSliderType.TRENDING, + enabled: true, + isBuiltIn: true, + order: 3, + }, + { + type: DiscoverSliderType.POPULAR_MOVIES, + enabled: true, + isBuiltIn: true, + order: 4, + }, + { + type: DiscoverSliderType.MOVIE_GENRES, + enabled: true, + isBuiltIn: true, + order: 5, + }, + { + type: DiscoverSliderType.UPCOMING_MOVIES, + enabled: true, + isBuiltIn: true, + order: 6, + }, + { + type: DiscoverSliderType.STUDIOS, + enabled: true, + isBuiltIn: true, + order: 7, + }, + { + type: DiscoverSliderType.POPULAR_TV, + enabled: true, + isBuiltIn: true, + order: 8, + }, + { + type: DiscoverSliderType.TV_GENRES, + enabled: true, + isBuiltIn: true, + order: 9, + }, + { + type: DiscoverSliderType.UPCOMING_TV, + enabled: true, + isBuiltIn: true, + order: 10, + }, + { + type: DiscoverSliderType.NETWORKS, + enabled: true, + isBuiltIn: true, + order: 11, + }, +]; diff --git a/server/datasource.ts b/server/datasource.ts index a68392989..d4eadaa10 100644 --- a/server/datasource.ts +++ b/server/datasource.ts @@ -34,7 +34,7 @@ const dataSource = new DataSource( process.env.NODE_ENV !== 'production' ? devConfig : prodConfig ); -export const getRepository = ( +export const getRepository = ( target: EntityTarget ): Repository => { return dataSource.getRepository(target); diff --git a/server/entity/DiscoverSlider.ts b/server/entity/DiscoverSlider.ts new file mode 100644 index 000000000..261419a07 --- /dev/null +++ b/server/entity/DiscoverSlider.ts @@ -0,0 +1,69 @@ +import type { DiscoverSliderType } from '@server/constants/discover'; +import { defaultSliders } from '@server/constants/discover'; +import { getRepository } from '@server/datasource'; +import logger from '@server/logger'; +import { + Column, + CreateDateColumn, + Entity, + PrimaryGeneratedColumn, + UpdateDateColumn, +} from 'typeorm'; + +@Entity() +class DiscoverSlider { + public static async bootstrapSliders(): Promise { + const sliderRepository = getRepository(DiscoverSlider); + + for (const slider of defaultSliders) { + const existingSlider = await sliderRepository.findOne({ + where: { + type: slider.type, + }, + }); + + if (!existingSlider) { + logger.info('Creating built-in discovery slider', { + label: 'Discover Slider', + slider, + }); + await sliderRepository.save(new DiscoverSlider(slider)); + } + } + } + + @PrimaryGeneratedColumn() + public id: number; + + @Column({ type: 'int' }) + public type: DiscoverSliderType; + + @Column({ type: 'int' }) + public order: number; + + @Column({ default: false }) + public isBuiltIn: boolean; + + @Column({ default: true }) + public enabled: boolean; + + @Column({ nullable: true }) + // Title is not required for built in sliders because we will + // use translations for them. + public title?: string; + + @Column({ nullable: true }) + public data?: string; + + @CreateDateColumn() + public createdAt: Date; + + @UpdateDateColumn() + public updatedAt: Date; + + constructor(init?: Partial) { + Object.assign(this, init); + } +} + +export default DiscoverSlider; diff --git a/server/entity/Media.ts b/server/entity/Media.ts index ed8e588bf..12228200f 100644 --- a/server/entity/Media.ts +++ b/server/entity/Media.ts @@ -200,15 +200,20 @@ class Media { const pageName = process.env.JELLYFIN_TYPE === 'emby' ? 'item' : 'details'; const { serverId, hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + + jellyfinHost = jellyfinHost.endsWith('/') + ? jellyfinHost.slice(0, -1) + : jellyfinHost; + if (this.jellyfinMediaId) { this.mediaUrl = `${jellyfinHost}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId}&context=home&serverId=${serverId}`; } if (this.jellyfinMediaId4k) { - this.mediaUrl4k = `${jellyfinHost}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId4k}&context=home&serverId=${serverId}`; + this.mediaUrl4k = `${jellyfinHost}/web/index.html#!/${pageName}?id=${this.jellyfinMediaId}&context=home&serverId=${serverId}`; } } } diff --git a/server/entity/MediaRequest.ts b/server/entity/MediaRequest.ts index eefbc11f3..fad97ef6b 100644 --- a/server/entity/MediaRequest.ts +++ b/server/entity/MediaRequest.ts @@ -767,7 +767,16 @@ export class MediaRequest { if ( media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE ) { - throw new Error('Media already available'); + logger.warn('Media already exists, marking request as APPROVED', { + label: 'Media Request', + requestId: this.id, + mediaId: this.media.id, + }); + + const requestRepository = getRepository(MediaRequest); + this.status = MediaRequestStatus.APPROVED; + await requestRepository.save(this); + return; } const radarrMovieOptions: RadarrMovieOptions = { @@ -908,7 +917,16 @@ export class MediaRequest { if ( media[this.is4k ? 'status4k' : 'status'] === MediaStatus.AVAILABLE ) { - throw new Error('Media already available'); + logger.warn('Media already exists, marking request as APPROVED', { + label: 'Media Request', + requestId: this.id, + mediaId: this.media.id, + }); + + const requestRepository = getRepository(MediaRequest); + this.status = MediaRequestStatus.APPROVED; + await requestRepository.save(this); + return; } const tmdb = new TheMovieDb(); diff --git a/server/entity/User.ts b/server/entity/User.ts index b5f781109..8780e2d8a 100644 --- a/server/entity/User.ts +++ b/server/entity/User.ts @@ -39,7 +39,7 @@ export class User { return users.map((u) => u.filter(showFiltered)); } - static readonly filteredFields: string[] = ['email']; + static readonly filteredFields: string[] = ['email', 'plexId']; public displayName: string; @@ -76,7 +76,7 @@ export class User { @Column({ type: 'integer', default: UserType.PLEX }) public userType: UserType; - @Column({ nullable: true }) + @Column({ nullable: true, select: true }) public plexId?: number; @Column({ nullable: true }) diff --git a/server/index.ts b/server/index.ts index 615e789bf..24f93af8a 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,5 +1,6 @@ import PlexAPI from '@server/api/plexapi'; import dataSource, { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; import { Session } from '@server/entity/Session'; import { User } from '@server/entity/User'; import { startJobs } from '@server/job/schedule'; @@ -17,6 +18,7 @@ import WebPushAgent from '@server/lib/notifications/agents/webpush'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import routes from '@server/routes'; +import imageproxy from '@server/routes/imageproxy'; import { getAppVersion } from '@server/utils/appVersion'; import restartFlag from '@server/utils/restartFlag'; import { getClientIp } from '@supercharge/request-ip'; @@ -104,6 +106,9 @@ app ); } + // Bootstrap Discovery Sliders + await DiscoverSlider.bootstrapSliders(); + const server = express(); if (settings.main.trustProxy) { server.enable('trust proxy'); @@ -186,6 +191,9 @@ app next(); }); server.use('/api/v1', routes); + + server.use('/imageproxy', imageproxy); + server.get('*', (req, res) => handle(req, res)); server.use( ( diff --git a/server/interfaces/api/settingsInterfaces.ts b/server/interfaces/api/settingsInterfaces.ts index bafd15b1f..32ed6a542 100644 --- a/server/interfaces/api/settingsInterfaces.ts +++ b/server/interfaces/api/settingsInterfaces.ts @@ -54,6 +54,11 @@ export interface CacheItem { }; } +export interface CacheResponse { + apiCaches: CacheItem[]; + imageCache: Record<'tmdb', { size: number; imageCount: number }>; +} + export interface StatusResponse { version: string; commitTag: string; diff --git a/server/job/jellyfinsync/index.ts b/server/job/jellyfinsync/index.ts index 85c8dcc58..9863f0659 100644 --- a/server/job/jellyfinsync/index.ts +++ b/server/job/jellyfinsync/index.ts @@ -257,8 +257,19 @@ class JobJellyfinSync { //use for loop to make sure this loop _completes_ in full //before the next section for (const episode of episodes) { + let episodeCount = 1; + + // count number of combined episodes + if ( + episode.IndexNumber !== undefined && + episode.IndexNumberEnd !== undefined + ) { + episodeCount = + episode.IndexNumberEnd - episode.IndexNumber + 1; + } + if (!this.enable4kShow) { - totalStandard++; + totalStandard += episodeCount; } else { const ExtendedEpisodeData = await this.jfClient.getItemData( episode.Id @@ -268,10 +279,10 @@ class JobJellyfinSync { return MediaSource.MediaStreams.some((MediaStream) => { if (MediaStream.Type === 'Video') { if (MediaStream.Width ?? 0 < 2000) { - totalStandard++; + totalStandard += episodeCount; } } else { - total4k++; + total4k += episodeCount; } }); }); diff --git a/server/job/schedule.ts b/server/job/schedule.ts index e21908052..6d9600736 100644 --- a/server/job/schedule.ts +++ b/server/job/schedule.ts @@ -1,5 +1,6 @@ import { MediaServerType } from '@server/constants/server'; import downloadTracker from '@server/lib/downloadtracker'; +import ImageProxy from '@server/lib/imageproxy'; import { plexFullScanner, plexRecentScanner } from '@server/lib/scanners/plex'; import { radarrScanner } from '@server/lib/scanners/radarr'; import { sonarrScanner } from '@server/lib/scanners/sonarr'; @@ -111,7 +112,7 @@ export const startJobs = (): void => { id: 'plex-watchlist-sync', name: 'Plex Watchlist Sync', type: 'process', - interval: 'long', + interval: 'short', cronSchedule: jobs['plex-watchlist-sync'].schedule, job: schedule.scheduleJob(jobs['plex-watchlist-sync'].schedule, () => { logger.info('Starting scheduled job: Plex Watchlist Sync', { @@ -181,5 +182,21 @@ export const startJobs = (): void => { }), }); + // Run image cache cleanup every 5 minutes + scheduledJobs.push({ + id: 'image-cache-cleanup', + name: 'Image Cache Cleanup', + type: 'process', + interval: 'long', + cronSchedule: jobs['image-cache-cleanup'].schedule, + job: schedule.scheduleJob(jobs['image-cache-cleanup'].schedule, () => { + logger.info('Starting scheduled job: Image Cache Cleanup', { + label: 'Jobs', + }); + // Clean TMDB image cache + ImageProxy.clearCache('tmdb'); + }), + }); + logger.info('Scheduled jobs loaded', { label: 'Jobs' }); }; diff --git a/server/lib/downloadtracker.ts b/server/lib/downloadtracker.ts index 4aef968f1..cf29313e9 100644 --- a/server/lib/downloadtracker.ts +++ b/server/lib/downloadtracker.ts @@ -5,6 +5,12 @@ import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { uniqWith } from 'lodash'; +interface EpisodeNumberResult { + seasonNumber: number; + episodeNumber: number; + absoluteEpisodeNumber: number; + id: number; +} export interface DownloadingItem { mediaType: MediaType; externalId: number; @@ -14,6 +20,7 @@ export interface DownloadingItem { timeLeft: string; estimatedCompletionTime: Date; title: string; + episode?: EpisodeNumberResult; } class DownloadTracker { @@ -164,6 +171,7 @@ class DownloadTracker { status: item.status, timeLeft: item.timeleft, title: item.title, + episode: item.episode, })); if (queueItems.length > 0) { diff --git a/server/lib/imageproxy.ts b/server/lib/imageproxy.ts new file mode 100644 index 000000000..4ba6b97a7 --- /dev/null +++ b/server/lib/imageproxy.ts @@ -0,0 +1,270 @@ +import logger from '@server/logger'; +import axios from 'axios'; +import rateLimit, { type rateLimitOptions } from 'axios-rate-limit'; +import { createHash } from 'crypto'; +import { promises } from 'fs'; +import path, { join } from 'path'; + +type ImageResponse = { + meta: { + revalidateAfter: number; + curRevalidate: number; + isStale: boolean; + etag: string; + extension: string; + cacheKey: string; + cacheMiss: boolean; + }; + imageBuffer: Buffer; +}; + +class ImageProxy { + public static async clearCache(key: string) { + let deletedImages = 0; + const cacheDirectory = path.join( + __dirname, + '../../config/cache/images/', + key + ); + + const files = await promises.readdir(cacheDirectory); + + for (const file of files) { + const filePath = path.join(cacheDirectory, file); + const stat = await promises.lstat(filePath); + + if (stat.isDirectory()) { + const imageFiles = await promises.readdir(filePath); + + for (const imageFile of imageFiles) { + const [, expireAtSt] = imageFile.split('.'); + const expireAt = Number(expireAtSt); + const now = Date.now(); + + if (now > expireAt) { + await promises.rm(path.join(filePath, imageFile)); + deletedImages += 1; + } + } + } + } + + logger.info(`Cleared ${deletedImages} stale image(s) from cache`, { + label: 'Image Cache', + }); + } + + public static async getImageStats( + key: string + ): Promise<{ size: number; imageCount: number }> { + const cacheDirectory = path.join( + __dirname, + '../../config/cache/images/', + key + ); + + const imageTotalSize = await ImageProxy.getDirectorySize(cacheDirectory); + const imageCount = await ImageProxy.getImageCount(cacheDirectory); + + return { + size: imageTotalSize, + imageCount, + }; + } + + private static async getDirectorySize(dir: string): Promise { + const files = await promises.readdir(dir, { + withFileTypes: true, + }); + + const paths = files.map(async (file) => { + const path = join(dir, file.name); + + if (file.isDirectory()) return await ImageProxy.getDirectorySize(path); + + if (file.isFile()) { + const { size } = await promises.stat(path); + + return size; + } + + return 0; + }); + + return (await Promise.all(paths)) + .flat(Infinity) + .reduce((i, size) => i + size, 0); + } + + private static async getImageCount(dir: string) { + const files = await promises.readdir(dir); + + return files.length; + } + + private axios; + private cacheVersion; + private key; + + constructor( + key: string, + baseUrl: string, + options: { + cacheVersion?: number; + rateLimitOptions?: rateLimitOptions; + } = {} + ) { + this.cacheVersion = options.cacheVersion ?? 1; + this.key = key; + this.axios = axios.create({ + baseURL: baseUrl, + }); + + if (options.rateLimitOptions) { + this.axios = rateLimit(this.axios, options.rateLimitOptions); + } + } + + public async getImage(path: string): Promise { + const cacheKey = this.getCacheKey(path); + + const imageResponse = await this.get(cacheKey); + + if (!imageResponse) { + const newImage = await this.set(path, cacheKey); + + if (!newImage) { + throw new Error('Failed to load image'); + } + + return newImage; + } + + // If the image is stale, we will revalidate it in the background. + if (imageResponse.meta.isStale) { + this.set(path, cacheKey); + } + + return imageResponse; + } + + private async get(cacheKey: string): Promise { + try { + const directory = join(this.getCacheDirectory(), cacheKey); + const files = await promises.readdir(directory); + const now = Date.now(); + + for (const file of files) { + const [maxAgeSt, expireAtSt, etag, extension] = file.split('.'); + const buffer = await promises.readFile(join(directory, file)); + const expireAt = Number(expireAtSt); + const maxAge = Number(maxAgeSt); + + return { + meta: { + curRevalidate: maxAge, + revalidateAfter: maxAge * 1000 + now, + isStale: now > expireAt, + etag, + extension, + cacheKey, + cacheMiss: false, + }, + imageBuffer: buffer, + }; + } + } catch (e) { + // No files. Treat as empty cache. + } + + return null; + } + + private async set( + path: string, + cacheKey: string + ): Promise { + try { + const directory = join(this.getCacheDirectory(), cacheKey); + const response = await this.axios.get(path, { + responseType: 'arraybuffer', + }); + + const buffer = Buffer.from(response.data, 'binary'); + const extension = path.split('.').pop() ?? ''; + const maxAge = Number( + (response.headers['cache-control'] ?? '0').split('=')[1] + ); + const expireAt = Date.now() + maxAge * 1000; + const etag = (response.headers.etag ?? '').replace(/"/g, ''); + + await this.writeToCacheDir( + directory, + extension, + maxAge, + expireAt, + buffer, + etag + ); + + return { + meta: { + curRevalidate: maxAge, + revalidateAfter: expireAt, + isStale: false, + etag, + extension, + cacheKey, + cacheMiss: true, + }, + imageBuffer: buffer, + }; + } catch (e) { + logger.debug('Something went wrong caching image.', { + label: 'Image Cache', + errorMessage: e.message, + }); + return null; + } + } + + private async writeToCacheDir( + dir: string, + extension: string, + maxAge: number, + expireAt: number, + buffer: Buffer, + etag: string + ) { + const filename = join(dir, `${maxAge}.${expireAt}.${etag}.${extension}`); + + await promises.rm(dir, { force: true, recursive: true }).catch(() => { + // do nothing + }); + + await promises.mkdir(dir, { recursive: true }); + await promises.writeFile(filename, buffer); + } + + private getCacheKey(path: string) { + return this.getHash([this.key, this.cacheVersion, path]); + } + + private getHash(items: (string | number | Buffer)[]) { + const hash = createHash('sha256'); + for (const item of items) { + if (typeof item === 'number') hash.update(String(item)); + else { + hash.update(item); + } + } + // See https://en.wikipedia.org/wiki/Base64#Filenames + return hash.digest('base64').replace(/\//g, '-'); + } + + private getCacheDirectory() { + return path.join(__dirname, '../../config/cache/images/', this.key); + } +} + +export default ImageProxy; diff --git a/server/lib/scanners/plex/index.ts b/server/lib/scanners/plex/index.ts index 73e4d9b26..f074872bb 100644 --- a/server/lib/scanners/plex/index.ts +++ b/server/lib/scanners/plex/index.ts @@ -96,7 +96,8 @@ class PlexScanner // We remove 10 minutes from the last scan as a buffer addedAt: library.lastScan - 1000 * 60 * 10, } - : undefined + : undefined, + library.type ); // Bundle items up by rating keys diff --git a/server/lib/settings.ts b/server/lib/settings.ts index 29e2fcf13..930ca2804 100644 --- a/server/lib/settings.ts +++ b/server/lib/settings.ts @@ -38,7 +38,7 @@ export interface PlexSettings { export interface JellyfinSettings { name: string; - hostname?: string; + hostname: string; externalHostname?: string; libraries: Library[]; serverId: string; @@ -263,7 +263,8 @@ export type JobId = | 'download-sync' | 'download-sync-reset' | 'jellyfin-recently-added-sync' - | 'jellyfin-full-sync'; + | 'jellyfin-full-sync' + | 'image-cache-cleanup'; interface AllSettings { clientId: string; @@ -446,6 +447,9 @@ class Settings { 'jellyfin-full-sync': { schedule: '0 0 3 * * *', }, + 'image-cache-cleanup': { + schedule: '0 0 5 * * *', + }, }, }; if (initialSettings) { diff --git a/server/migration/1672041273674-AddDiscoverSlider.ts b/server/migration/1672041273674-AddDiscoverSlider.ts new file mode 100644 index 000000000..81cb14324 --- /dev/null +++ b/server/migration/1672041273674-AddDiscoverSlider.ts @@ -0,0 +1,15 @@ +import type { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddDiscoverSlider1672041273674 implements MigrationInterface { + name = 'AddDiscoverSlider1672041273674'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TABLE "discover_slider" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "type" integer NOT NULL, "order" integer NOT NULL, "isBuiltIn" boolean NOT NULL DEFAULT (0), "enabled" boolean NOT NULL DEFAULT (1), "title" varchar, "data" varchar, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "updatedAt" datetime NOT NULL DEFAULT (datetime('now')))` + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP TABLE "discover_slider"`); + } +} diff --git a/server/models/Movie.ts b/server/models/Movie.ts index a216b7437..0b627859f 100644 --- a/server/models/Movie.ts +++ b/server/models/Movie.ts @@ -9,6 +9,7 @@ import type { Crew, ExternalIds, Genre, + Keyword, ProductionCompany, WatchProviders, } from './common'; @@ -83,6 +84,7 @@ export interface MovieDetails { externalIds: ExternalIds; mediaUrl?: string; watchProviders?: WatchProviders[]; + keywords: Keyword[]; } export const mapProductionCompany = ( @@ -142,4 +144,8 @@ export const mapMovieDetails = ( externalIds: mapExternalIds(movie.external_ids), mediaInfo: media, watchProviders: mapWatchProviders(movie['watch/providers']?.results ?? {}), + keywords: movie.keywords.keywords.map((keyword) => ({ + id: keyword.id, + name: keyword.name, + })), }); diff --git a/server/models/Tv.ts b/server/models/Tv.ts index 7f809cbf4..24362b504 100644 --- a/server/models/Tv.ts +++ b/server/models/Tv.ts @@ -29,7 +29,7 @@ import type { Video } from './Movie'; interface Episode { id: number; name: string; - airDate: string; + airDate: string | null; episodeNumber: number; overview: string; productionCode: string; @@ -50,7 +50,7 @@ interface Season { seasonNumber: number; } -export interface SeasonWithEpisodes extends Season { +export interface SeasonWithEpisodes extends Omit { episodes: Episode[]; externalIds: ExternalIds; } @@ -141,7 +141,6 @@ export const mapSeasonWithEpisodes = ( season: TmdbSeasonWithEpisodes ): SeasonWithEpisodes => ({ airDate: season.air_date, - episodeCount: season.episode_count, episodes: season.episodes.map(mapEpisodeResult), externalIds: mapExternalIds(season.external_ids), id: season.id, diff --git a/server/routes/auth.ts b/server/routes/auth.ts index 4b22943e1..1dabcdf31 100644 --- a/server/routes/auth.ts +++ b/server/routes/auth.ts @@ -89,13 +89,28 @@ authRoutes.post('/plex', async (req, res, next) => { await userRepository.save(user); } else { const mainUser = await userRepository.findOneOrFail({ - select: { id: true, plexToken: true, plexId: true }, + select: { id: true, plexToken: true, plexId: true, email: true }, where: { id: 1 }, }); const mainPlexTv = new PlexTvAPI(mainUser.plexToken ?? ''); + if (!account.id) { + logger.error('Plex ID was missing from Plex.tv response', { + label: 'API', + ip: req.ip, + email: account.email, + plexUsername: account.username, + }); + + return next({ + status: 500, + message: 'Something went wrong. Try again.', + }); + } + if ( account.id === mainUser.plexId || + (account.email === mainUser.email && !mainUser.plexId) || (await mainPlexTv.checkUserAccess(account.id)) ) { if (user) { @@ -226,7 +241,7 @@ authRoutes.post('/jellyfin', async (req, res, next) => { const hostname = settings.jellyfin.hostname !== '' ? settings.jellyfin.hostname - : body.hostname; + : body.hostname ?? ''; const { externalHostname } = getSettings().jellyfin; // Try to find deviceId that corresponds to jellyfin user, else generate a new one @@ -244,11 +259,15 @@ authRoutes.post('/jellyfin', async (req, res, next) => { } // First we need to attempt to log the user in to jellyfin const jellyfinserver = new JellyfinAPI(hostname ?? '', undefined, deviceId); - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + jellyfinHost = jellyfinHost.endsWith('/') + ? jellyfinHost.slice(0, -1) + : jellyfinHost; + const account = await jellyfinserver.login(body.username, body.password); // Next let's see if the user already exists user = await userRepository.findOne({ diff --git a/server/routes/discover.ts b/server/routes/discover.ts index b39a83325..2c3c665f1 100644 --- a/server/routes/discover.ts +++ b/server/routes/discover.ts @@ -1,5 +1,7 @@ import PlexTvAPI from '@server/api/plextv'; +import type { SortOptions } from '@server/api/themoviedb'; import TheMovieDb from '@server/api/themoviedb'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; import { MediaType } from '@server/constants/media'; import { getRepository } from '@server/datasource'; import Media from '@server/entity/Media'; @@ -20,6 +22,7 @@ import { mapNetwork } from '@server/models/Tv'; import { isMovie, isPerson } from '@server/utils/typeHelpers'; import { Router } from 'express'; import { sortBy } from 'lodash'; +import { z } from 'zod'; export const createTmdbWithRegionLanguage = (user?: User): TheMovieDb => { const settings = getSettings(); @@ -46,25 +49,76 @@ export const createTmdbWithRegionLanguage = (user?: User): TheMovieDb => { const discoverRoutes = Router(); +const QueryFilterOptions = z.object({ + page: z.coerce.string().optional(), + sortBy: z.coerce.string().optional(), + primaryReleaseDateGte: z.coerce.string().optional(), + primaryReleaseDateLte: z.coerce.string().optional(), + firstAirDateGte: z.coerce.string().optional(), + firstAirDateLte: z.coerce.string().optional(), + studio: z.coerce.string().optional(), + genre: z.coerce.string().optional(), + keywords: z.coerce.string().optional(), + language: z.coerce.string().optional(), + withRuntimeGte: z.coerce.string().optional(), + withRuntimeLte: z.coerce.string().optional(), + voteAverageGte: z.coerce.string().optional(), + voteAverageLte: z.coerce.string().optional(), + network: z.coerce.string().optional(), + watchProviders: z.coerce.string().optional(), + watchRegion: z.coerce.string().optional(), +}); + +export type FilterOptions = z.infer; + discoverRoutes.get('/movies', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); try { + const query = QueryFilterOptions.parse(req.query); + const keywords = query.keywords; const data = await tmdb.getDiscoverMovies({ - page: Number(req.query.page), - language: req.locale ?? (req.query.language as string), - genre: req.query.genre ? Number(req.query.genre) : undefined, - studio: req.query.studio ? Number(req.query.studio) : undefined, + page: Number(query.page), + sortBy: query.sortBy as SortOptions, + language: req.locale ?? query.language, + originalLanguage: query.language, + genre: query.genre, + studio: query.studio, + primaryReleaseDateLte: query.primaryReleaseDateLte + ? new Date(query.primaryReleaseDateLte).toISOString().split('T')[0] + : undefined, + primaryReleaseDateGte: query.primaryReleaseDateGte + ? new Date(query.primaryReleaseDateGte).toISOString().split('T')[0] + : undefined, + keywords, + withRuntimeGte: query.withRuntimeGte, + withRuntimeLte: query.withRuntimeLte, + voteAverageGte: query.voteAverageGte, + voteAverageLte: query.voteAverageLte, + watchProviders: query.watchProviders, + watchRegion: query.watchRegion, }); const media = await Media.getRelatedMedia( data.results.map((result) => result.id) ); + let keywordData: TmdbKeyword[] = []; + if (keywords) { + const splitKeywords = keywords.split(','); + + keywordData = await Promise.all( + splitKeywords.map(async (keywordId) => { + return await tmdb.getKeywordDetails({ keywordId: Number(keywordId) }); + }) + ); + } + return res.status(200).json({ page: data.page, totalPages: data.total_pages, totalResults: data.total_results, + keywords: keywordData, results: data.results.map((result) => mapMovieResult( result, @@ -163,7 +217,7 @@ discoverRoutes.get<{ genreId: string }>( const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - genre: Number(req.params.genreId), + genre: req.params.genreId as string, }); const media = await Media.getRelatedMedia( @@ -210,7 +264,7 @@ discoverRoutes.get<{ studioId: string }>( const data = await tmdb.getDiscoverMovies({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - studio: Number(req.params.studioId), + studio: req.params.studioId as string, }); const media = await Media.getRelatedMedia( @@ -296,21 +350,50 @@ discoverRoutes.get('/tv', async (req, res, next) => { const tmdb = createTmdbWithRegionLanguage(req.user); try { + const query = QueryFilterOptions.parse(req.query); + const keywords = query.keywords; const data = await tmdb.getDiscoverTv({ - page: Number(req.query.page), - language: req.locale ?? (req.query.language as string), - genre: req.query.genre ? Number(req.query.genre) : undefined, - network: req.query.network ? Number(req.query.network) : undefined, + page: Number(query.page), + sortBy: query.sortBy as SortOptions, + language: req.locale ?? query.language, + genre: query.genre, + network: query.network ? Number(query.network) : undefined, + firstAirDateLte: query.firstAirDateLte + ? new Date(query.firstAirDateLte).toISOString().split('T')[0] + : undefined, + firstAirDateGte: query.firstAirDateGte + ? new Date(query.firstAirDateGte).toISOString().split('T')[0] + : undefined, + originalLanguage: query.language, + keywords, + withRuntimeGte: query.withRuntimeGte, + withRuntimeLte: query.withRuntimeLte, + voteAverageGte: query.voteAverageGte, + voteAverageLte: query.voteAverageLte, + watchProviders: query.watchProviders, + watchRegion: query.watchRegion, }); const media = await Media.getRelatedMedia( data.results.map((result) => result.id) ); + let keywordData: TmdbKeyword[] = []; + if (keywords) { + const splitKeywords = keywords.split(','); + + keywordData = await Promise.all( + splitKeywords.map(async (keywordId) => { + return await tmdb.getKeywordDetails({ keywordId: Number(keywordId) }); + }) + ); + } + return res.status(200).json({ page: data.page, totalPages: data.total_pages, totalResults: data.total_results, + keywords: keywordData, results: data.results.map((result) => mapTvResult( result, @@ -408,7 +491,7 @@ discoverRoutes.get<{ genreId: string }>( const data = await tmdb.getDiscoverTv({ page: Number(req.query.page), language: req.locale ?? (req.query.language as string), - genre: Number(req.params.genreId), + genre: req.params.genreId, }); const media = await Media.getRelatedMedia( @@ -643,7 +726,9 @@ discoverRoutes.get<{ language: string }, GenreSliderItem[]>( await Promise.all( genres.map(async (genre) => { - const genreData = await tmdb.getDiscoverMovies({ genre: genre.id }); + const genreData = await tmdb.getDiscoverMovies({ + genre: genre.id.toString(), + }); mappedGenres.push({ id: genre.id, @@ -685,7 +770,9 @@ discoverRoutes.get<{ language: string }, GenreSliderItem[]>( await Promise.all( genres.map(async (genre) => { - const genreData = await tmdb.getDiscoverTv({ genre: genre.id }); + const genreData = await tmdb.getDiscoverTv({ + genre: genre.id.toString(), + }); mappedGenres.push({ id: genre.id, diff --git a/server/routes/imageproxy.ts b/server/routes/imageproxy.ts new file mode 100644 index 000000000..6cf104f52 --- /dev/null +++ b/server/routes/imageproxy.ts @@ -0,0 +1,39 @@ +import ImageProxy from '@server/lib/imageproxy'; +import logger from '@server/logger'; +import { Router } from 'express'; + +const router = Router(); +const tmdbImageProxy = new ImageProxy('tmdb', 'https://image.tmdb.org', { + rateLimitOptions: { + maxRequests: 20, + maxRPS: 50, + }, +}); + +/** + * Image Proxy + */ +router.get('/*', async (req, res) => { + const imagePath = req.path.replace('/image', ''); + try { + const imageData = await tmdbImageProxy.getImage(imagePath); + + res.writeHead(200, { + 'Content-Type': `image/${imageData.meta.extension}`, + 'Content-Length': imageData.imageBuffer.length, + 'Cache-Control': `public, max-age=${imageData.meta.curRevalidate}`, + 'OS-Cache-Key': imageData.meta.cacheKey, + 'OS-Cache-Status': imageData.meta.cacheMiss ? 'MISS' : 'HIT', + }); + + res.end(imageData.imageBuffer); + } catch (e) { + logger.error('Failed to proxy image', { + imagePath, + errorMessage: e.message, + }); + res.status(500).send(); + } +}); + +export default router; diff --git a/server/routes/index.ts b/server/routes/index.ts index 9561e171b..f76f09fa0 100644 --- a/server/routes/index.ts +++ b/server/routes/index.ts @@ -4,11 +4,14 @@ import type { TmdbMovieResult, TmdbTvResult, } from '@server/api/themoviedb/interfaces'; +import { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; import type { StatusResponse } from '@server/interfaces/api/settingsInterfaces'; import { Permission } from '@server/lib/permissions'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { checkUser, isAuthenticated } from '@server/middleware/auth'; +import { mapWatchProviderDetails } from '@server/models/common'; import { mapProductionCompany } from '@server/models/Movie'; import { mapNetwork } from '@server/models/Tv'; import settingsRoutes from '@server/routes/settings'; @@ -102,6 +105,13 @@ router.get('/settings/public', async (req, res) => { return res.status(200).json(settings.fullPublicSettings); } }); +router.get('/settings/discover', isAuthenticated(), async (_req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const sliders = await sliderRepository.find({ order: { order: 'ASC' } }); + + return res.json(sliders); +}); router.use('/settings', isAuthenticated(Permission.ADMIN), settingsRoutes); router.use('/search', isAuthenticated(), searchRoutes); router.use('/discover', isAuthenticated(), discoverRoutes); @@ -269,6 +279,87 @@ router.get('/backdrops', async (req, res, next) => { } }); +router.get('/keyword/:keywordId', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getKeywordDetails({ + keywordId: Number(req.params.keywordId), + }); + + return res.status(200).json(result); + } catch (e) { + logger.debug('Something went wrong retrieving keyword data', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve keyword data.', + }); + } +}); + +router.get('/watchproviders/regions', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getAvailableWatchProviderRegions({}); + return res.status(200).json(result); + } catch (e) { + logger.debug('Something went wrong retrieving watch provider regions', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve watch provider regions.', + }); + } +}); + +router.get('/watchproviders/movies', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getMovieWatchProviders({ + watchRegion: req.query.watchRegion as string, + }); + + return res.status(200).json(mapWatchProviderDetails(result)); + } catch (e) { + logger.debug('Something went wrong retrieving movie watch providers', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve movie watch providers.', + }); + } +}); + +router.get('/watchproviders/tv', async (req, res, next) => { + const tmdb = createTmdbWithRegionLanguage(); + + try { + const result = await tmdb.getTvWatchProviders({ + watchRegion: req.query.watchRegion as string, + }); + + return res.status(200).json(mapWatchProviderDetails(result)); + } catch (e) { + logger.debug('Something went wrong retrieving tv watch providers', { + label: 'API', + errorMessage: e.message, + }); + return next({ + status: 500, + message: 'Unable to retrieve tv watch providers.', + }); + } +}); + router.get('/', (_req, res) => { return res.status(200).json({ api: 'Overseerr API', diff --git a/server/routes/issue.ts b/server/routes/issue.ts index 6349bb74a..953b37574 100644 --- a/server/routes/issue.ts +++ b/server/routes/issue.ts @@ -308,7 +308,9 @@ issueRoutes.post<{ issueId: string }, Issue, { message: string }>( issueRoutes.post<{ issueId: string; status: string }, Issue>( '/:issueId/:status', - isAuthenticated(Permission.MANAGE_ISSUES), + isAuthenticated([Permission.MANAGE_ISSUES, Permission.CREATE_ISSUES], { + type: 'or', + }), async (req, res, next) => { const issueRepository = getRepository(Issue); // Satisfy typescript here. User is set, we assure you! @@ -321,6 +323,16 @@ issueRoutes.post<{ issueId: string; status: string }, Issue>( where: { id: Number(req.params.issueId) }, }); + if ( + !req.user?.hasPermission(Permission.MANAGE_ISSUES) && + issue.createdBy.id !== req.user?.id + ) { + return next({ + status: 401, + message: 'You do not have permission to modify this issue.', + }); + } + let newStatus: IssueStatus | undefined; switch (req.params.status) { diff --git a/server/routes/request.ts b/server/routes/request.ts index 9c9d96a82..83c05b485 100644 --- a/server/routes/request.ts +++ b/server/routes/request.ts @@ -492,8 +492,10 @@ requestRoutes.post<{ relations: { requestedBy: true, modifiedBy: true }, }); - await request.updateParentStatus(); - await request.sendMedia(); + // this also triggers updating the parent media's status & sending to *arr + request.status = MediaRequestStatus.APPROVED; + await requestRepository.save(request); + return res.status(200).json(request); } catch (e) { logger.error('Error processing request retry', { diff --git a/server/routes/search.ts b/server/routes/search.ts index 1152bce31..b9254221a 100644 --- a/server/routes/search.ts +++ b/server/routes/search.ts @@ -56,4 +56,50 @@ searchRoutes.get('/', async (req, res, next) => { } }); +searchRoutes.get('/keyword', async (req, res, next) => { + const tmdb = new TheMovieDb(); + + try { + const results = await tmdb.searchKeyword({ + query: req.query.query as string, + page: Number(req.query.page), + }); + + return res.status(200).json(results); + } catch (e) { + logger.debug('Something went wrong retrieving keyword search results', { + label: 'API', + errorMessage: e.message, + query: req.query.query, + }); + return next({ + status: 500, + message: 'Unable to retrieve keyword search results.', + }); + } +}); + +searchRoutes.get('/company', async (req, res, next) => { + const tmdb = new TheMovieDb(); + + try { + const results = await tmdb.searchCompany({ + query: req.query.query as string, + page: Number(req.query.page), + }); + + return res.status(200).json(results); + } catch (e) { + logger.debug('Something went wrong retrieving company search results', { + label: 'API', + errorMessage: e.message, + query: req.query.query, + }); + return next({ + status: 500, + message: 'Unable to retrieve company search results.', + }); + } +}); + export default searchRoutes; diff --git a/server/routes/settings/discover.ts b/server/routes/settings/discover.ts new file mode 100644 index 000000000..344ce72be --- /dev/null +++ b/server/routes/settings/discover.ts @@ -0,0 +1,131 @@ +import { getRepository } from '@server/datasource'; +import DiscoverSlider from '@server/entity/DiscoverSlider'; +import logger from '@server/logger'; +import { Router } from 'express'; + +const discoverSettingRoutes = Router(); + +discoverSettingRoutes.post('/', async (req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const sliders = req.body as DiscoverSlider[]; + + if (!Array.isArray(sliders)) { + return res.status(400).json({ message: 'Invalid request body.' }); + } + + for (let x = 0; x < sliders.length; x++) { + const slider = sliders[x]; + const existingSlider = await sliderRepository.findOne({ + where: { + id: slider.id, + }, + }); + + if (existingSlider && slider.id) { + existingSlider.enabled = slider.enabled; + existingSlider.order = x; + + // Only allow changes to the following when the slider is not built in + if (!existingSlider.isBuiltIn) { + existingSlider.title = slider.title; + existingSlider.data = slider.data; + existingSlider.type = slider.type; + } + + await sliderRepository.save(existingSlider); + } else { + const newSlider = new DiscoverSlider({ + isBuiltIn: false, + data: slider.data, + title: slider.title, + enabled: slider.enabled, + order: x, + type: slider.type, + }); + await sliderRepository.save(newSlider); + } + } + + return res.json(sliders); +}); + +discoverSettingRoutes.post('/add', async (req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + const slider = req.body as DiscoverSlider; + + const newSlider = new DiscoverSlider({ + isBuiltIn: false, + data: slider.data, + title: slider.title, + enabled: false, + order: -1, + type: slider.type, + }); + await sliderRepository.save(newSlider); + + return res.json(newSlider); +}); + +discoverSettingRoutes.get('/reset', async (_req, res) => { + const sliderRepository = getRepository(DiscoverSlider); + + await sliderRepository.clear(); + await DiscoverSlider.bootstrapSliders(); + + return res.status(204).send(); +}); + +discoverSettingRoutes.put('/:sliderId', async (req, res, next) => { + const sliderRepository = getRepository(DiscoverSlider); + + const slider = req.body as DiscoverSlider; + + try { + const existingSlider = await sliderRepository.findOneOrFail({ + where: { + id: Number(req.params.sliderId), + }, + }); + + // Only allow changes to the following when the slider is not built in + if (!existingSlider.isBuiltIn) { + existingSlider.title = slider.title; + existingSlider.data = slider.data; + existingSlider.type = slider.type; + } + + await sliderRepository.save(existingSlider); + + return res.status(200).json(existingSlider); + } catch (e) { + logger.error('Something went wrong updating a slider.', { + label: 'API', + errorMessage: e.message, + }); + next({ status: 404, message: 'Slider not found or cannot be updated.' }); + } +}); + +discoverSettingRoutes.delete('/:sliderId', async (req, res, next) => { + const sliderRepository = getRepository(DiscoverSlider); + + try { + const slider = await sliderRepository.findOneOrFail({ + where: { id: Number(req.params.sliderId), isBuiltIn: false }, + }); + + await sliderRepository.remove(slider); + + return res.status(204).send(); + } catch (e) { + logger.error('Something went wrong deleting a slider.', { + label: 'API', + errorMessage: e.message, + }); + next({ status: 404, message: 'Slider not found or cannot be deleted.' }); + } +}); + +export default discoverSettingRoutes; diff --git a/server/routes/settings/index.ts b/server/routes/settings/index.ts index 3a7cb6dfc..d7c0f8398 100644 --- a/server/routes/settings/index.ts +++ b/server/routes/settings/index.ts @@ -16,12 +16,14 @@ import { jobJellyfinFullSync } from '@server/job/jellyfinsync'; import { scheduledJobs } from '@server/job/schedule'; import type { AvailableCacheIds } from '@server/lib/cache'; import cacheManager from '@server/lib/cache'; +import ImageProxy from '@server/lib/imageproxy'; import { Permission } from '@server/lib/permissions'; import { plexFullScanner } from '@server/lib/scanners/plex'; -import type { Library, MainSettings } from '@server/lib/settings'; +import type { JobId, Library, MainSettings } from '@server/lib/settings'; import { getSettings } from '@server/lib/settings'; import logger from '@server/logger'; import { isAuthenticated } from '@server/middleware/auth'; +import discoverSettingRoutes from '@server/routes/settings/discover'; import { appDataPath } from '@server/utils/appDataVolume'; import { getAppVersion } from '@server/utils/appVersion'; import { Router } from 'express'; @@ -41,6 +43,7 @@ const settingsRoutes = Router(); settingsRoutes.use('/notifications', notificationRoutes); settingsRoutes.use('/radarr', radarrRoutes); settingsRoutes.use('/sonarr', sonarrRoutes); +settingsRoutes.use('/discover', discoverSettingRoutes); const filteredMainSettings = ( user: User, @@ -307,11 +310,14 @@ settingsRoutes.get('/jellyfin/library', async (req, res) => { settingsRoutes.get('/jellyfin/users', async (req, res) => { const settings = getSettings(); const { hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + jellyfinHost = jellyfinHost.endsWith('/') + ? jellyfinHost.slice(0, -1) + : jellyfinHost; const userRepository = getRepository(User); const admin = await userRepository.findOneOrFail({ select: ['id', 'jellyfinAuthToken', 'jellyfinDeviceId', 'jellyfinUserId'], @@ -601,7 +607,7 @@ settingsRoutes.post<{ jobId: string }>('/jobs/:jobId/run', (req, res, next) => { }); }); -settingsRoutes.post<{ jobId: string }>( +settingsRoutes.post<{ jobId: JobId }>( '/jobs/:jobId/cancel', (req, res, next) => { const scheduledJob = scheduledJobs.find( @@ -628,7 +634,7 @@ settingsRoutes.post<{ jobId: string }>( } ); -settingsRoutes.post<{ jobId: string }>( +settingsRoutes.post<{ jobId: JobId }>( '/jobs/:jobId/schedule', (req, res, next) => { const scheduledJob = scheduledJobs.find( @@ -663,16 +669,23 @@ settingsRoutes.post<{ jobId: string }>( } ); -settingsRoutes.get('/cache', (req, res) => { - const caches = cacheManager.getAllCaches(); +settingsRoutes.get('/cache', async (_req, res) => { + const cacheManagerCaches = cacheManager.getAllCaches(); - return res.status(200).json( - Object.values(caches).map((cache) => ({ - id: cache.id, - name: cache.name, - stats: cache.getStats(), - })) - ); + const apiCaches = Object.values(cacheManagerCaches).map((cache) => ({ + id: cache.id, + name: cache.name, + stats: cache.getStats(), + })); + + const tmdbImageCache = await ImageProxy.getImageStats('tmdb'); + + return res.status(200).json({ + apiCaches, + imageCache: { + tmdb: tmdbImageCache, + }, + }); }); settingsRoutes.post<{ cacheId: AvailableCacheIds }>( diff --git a/server/routes/user/index.ts b/server/routes/user/index.ts index a875ca1fc..486ebc368 100644 --- a/server/routes/user/index.ts +++ b/server/routes/user/index.ts @@ -497,11 +497,14 @@ router.post( //const jellyfinUsersResponse = await jellyfinClient.getUsers(); const createdUsers: User[] = []; const { hostname, externalHostname } = getSettings().jellyfin; - const jellyfinHost = + let jellyfinHost = externalHostname && externalHostname.length > 0 ? externalHostname : hostname; + jellyfinHost = jellyfinHost.endsWith('/') + ? jellyfinHost.slice(0, -1) + : jellyfinHost; jellyfinClient.setUserId(admin.jellyfinUserId ?? ''); const jellyfinUsers = await jellyfinClient.getUsers(); diff --git a/server/subscriber/IssueCommentSubscriber.ts b/server/subscriber/IssueCommentSubscriber.ts index cb95ba008..71db981da 100644 --- a/server/subscriber/IssueCommentSubscriber.ts +++ b/server/subscriber/IssueCommentSubscriber.ts @@ -4,6 +4,7 @@ import { MediaType } from '@server/constants/media'; import { getRepository } from '@server/datasource'; import IssueComment from '@server/entity/IssueComment'; import Media from '@server/entity/Media'; +import { User } from '@server/entity/User'; import notificationManager, { Notification } from '@server/lib/notifications'; import { Permission } from '@server/lib/permissions'; import logger from '@server/logger'; @@ -32,6 +33,10 @@ export class IssueCommentSubscriber }) ).issue; + const createdBy = await getRepository(User).findOneOrFail({ + where: { id: issue.createdBy.id }, + }); + const media = await getRepository(Media).findOneOrFail({ where: { id: issue.media.id }, }); @@ -71,9 +76,9 @@ export class IssueCommentSubscriber notifyAdmin: true, notifySystem: true, notifyUser: - !issue.createdBy.hasPermission(Permission.MANAGE_ISSUES) && - issue.createdBy.id !== entity.user.id - ? issue.createdBy + !createdBy.hasPermission(Permission.MANAGE_ISSUES) && + createdBy.id !== entity.user.id + ? createdBy : undefined, }); } diff --git a/server/subscriber/IssueSubscriber.ts b/server/subscriber/IssueSubscriber.ts index eb4020415..d54523cf8 100644 --- a/server/subscriber/IssueSubscriber.ts +++ b/server/subscriber/IssueSubscriber.ts @@ -87,6 +87,7 @@ export class IssueSubscriber implements EntitySubscriberInterface { notifySystem: true, notifyUser: !entity.createdBy.hasPermission(Permission.MANAGE_ISSUES) && + entity.modifiedBy?.id !== entity.createdBy.id && (type === Notification.ISSUE_RESOLVED || type === Notification.ISSUE_REOPENED) ? entity.createdBy diff --git a/server/types/express-session.d.ts b/server/types/express-session.d.ts new file mode 100644 index 000000000..c4842b096 --- /dev/null +++ b/server/types/express-session.d.ts @@ -0,0 +1,9 @@ +import 'express-session'; + +// Declaration merging to apply our own types to SessionData +// See: (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-session/index.d.ts#L23) +declare module 'express-session' { + interface SessionData { + userId: number; + } +} diff --git a/server/types/express.d.ts b/server/types/express.d.ts index 7b82477ad..2fe842382 100644 --- a/server/types/express.d.ts +++ b/server/types/express.d.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ import type { User } from '@server/entity/User'; import type { NextFunction, Request, Response } from 'express'; +import 'express-session'; declare global { namespace Express { @@ -16,11 +17,3 @@ declare global { next: NextFunction ) => Promise | void | NextFunction; } - -// Declaration merging to apply our own types to SessionData -// See: (https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/express-session/index.d.ts#L23) -declare module 'express-session' { - export interface SessionData { - userId: number; - } -} diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 3b693643a..61db367ac 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,10 +1,11 @@ -name: overseerr -adopt-info: overseerr +name: jellyseerr +adopt-info: jellyseerr license: MIT -summary: Request management and media discovery tool for the Plex ecosystem. +summary: Request management and media discovery tool for media servers description: > - Overseerr is a free and open source software application for managing requests for your media library. - It integrates with your existing services such as Sonarr, Radarr and Plex! + Jellyseerr is a free and open source software application for managing requests for your media library. + It is a a fork of Overseerr built to bring support for & focusing mainly on Jellyfin & Emby media servers! + It integrates with your existing services such as Sonarr, Radarr, and Jellyfin/Emby/Plex. base: core18 confinement: strict @@ -14,7 +15,7 @@ architectures: - build-on: armhf parts: - overseerr: + jellyseerr: plugin: nodejs nodejs-version: '16.17.0' nodejs-package-manager: 'yarn' @@ -36,7 +37,7 @@ parts: override-pull: | snapcraftctl pull # Get information to determine snap grade and version - git config --global --add safe.directory /data/parts/overseerr/src + git config --global --add safe.directory /data/parts/jellyyseerr/src #setup yarn.rc echo "--install.frozen-lockfile\n--install.network-timeout 1000000" > .yarnrc BRANCH=$(git rev-parse --abbrev-ref HEAD) diff --git a/src/components/AirDateBadge/index.tsx b/src/components/AirDateBadge/index.tsx index fb9268f6c..c626aad97 100644 --- a/src/components/AirDateBadge/index.tsx +++ b/src/components/AirDateBadge/index.tsx @@ -37,6 +37,7 @@ const AirDateBadge = ({ airDate }: AirDateBadgeProps) => { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', })} {showRelative && ( diff --git a/src/components/CollectionDetails/index.tsx b/src/components/CollectionDetails/index.tsx index 52bd8a269..0136113a9 100644 --- a/src/components/CollectionDetails/index.tsx +++ b/src/components/CollectionDetails/index.tsx @@ -10,13 +10,13 @@ import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { DownloadIcon } from '@heroicons/react/outline'; +import { ArrowDownTrayIcon } from '@heroicons/react/24/outline'; import { MediaStatus } from '@server/constants/media'; import type { Collection } from '@server/models/Collection'; import { uniq } from 'lodash'; import Link from 'next/link'; import { useRouter } from 'next/router'; -import { useState } from 'react'; +import { useMemo, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import useSWR from 'swr'; @@ -51,6 +51,28 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { const { data: genres } = useSWR<{ id: number; name: string }[]>(`/api/v1/genres/movie`); + const [downloadStatus, downloadStatus4k] = useMemo(() => { + return [ + data?.parts.flatMap((item) => + item.mediaInfo?.downloadStatus ? item.mediaInfo?.downloadStatus : [] + ), + data?.parts.flatMap((item) => + item.mediaInfo?.downloadStatus4k ? item.mediaInfo?.downloadStatus4k : [] + ), + ]; + }, [data?.parts]); + + const [titles, titles4k] = useMemo(() => { + return [ + data?.parts + .filter((media) => (media.mediaInfo?.downloadStatus ?? []).length > 0) + .map((title) => title.title), + data?.parts + .filter((media) => (media.mediaInfo?.downloadStatus4k ?? []).length > 0) + .map((title) => title.title), + ]; + }, [data?.parts]); + if (!data && !error) { return ; } @@ -205,6 +227,8 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => {
(part.mediaInfo?.downloadStatus ?? []).length > 0 )} @@ -218,6 +242,8 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { ) && ( @@ -250,7 +276,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { }} text={ <> - + {intl.formatMessage( hasRequestable @@ -269,7 +295,7 @@ const CollectionDetails = ({ collection }: CollectionDetailsProps) => { setIs4k(true); }} > - + {intl.formatMessage(messages.requestcollection4k)} diff --git a/src/components/Common/Alert/index.tsx b/src/components/Common/Alert/index.tsx index 8ffb4a255..93ddd988f 100644 --- a/src/components/Common/Alert/index.tsx +++ b/src/components/Common/Alert/index.tsx @@ -1,8 +1,8 @@ import { - ExclamationIcon, + ExclamationTriangleIcon, InformationCircleIcon, XCircleIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; interface AlertProps { title?: React.ReactNode; @@ -16,7 +16,7 @@ const Alert = ({ title, children, type }: AlertProps) => { 'border border-yellow-500 backdrop-blur bg-yellow-400 bg-opacity-20', titleColor: 'text-yellow-100', textColor: 'text-yellow-300', - svg: , + svg: , }; switch (type) { diff --git a/src/components/Common/Button/index.tsx b/src/components/Common/Button/index.tsx index d3f96ae98..a4df31150 100644 --- a/src/components/Common/Button/index.tsx +++ b/src/components/Common/Button/index.tsx @@ -46,7 +46,7 @@ function Button

( ref?: React.Ref> ): JSX.Element { const buttonStyle = [ - 'inline-flex items-center justify-center border border-transparent leading-5 font-medium rounded-md focus:outline-none transition ease-in-out duration-150 cursor-pointer disabled:opacity-50 whitespace-nowrap', + 'inline-flex items-center justify-center border leading-5 font-medium rounded-md focus:outline-none transition ease-in-out duration-150 cursor-pointer disabled:opacity-50 whitespace-nowrap', ]; switch (buttonType) { case 'primary': @@ -61,7 +61,7 @@ function Button

( break; case 'warning': buttonStyle.push( - 'text-white border border-yellow-500 backdrop-blur bg-yellow-500 bg-opacity-80 hover:bg-opacity-100 hover:border-yellow-400 focus:border-yellow-700 focus:ring-yellow active:bg-opacity-100 active:border-yellow-700' + 'text-white border border-yellow-500 bg-yellow-500 bg-opacity-80 hover:bg-opacity-100 hover:border-yellow-400 focus:border-yellow-700 focus:ring-yellow active:bg-opacity-100 active:border-yellow-700' ); break; case 'success': @@ -71,7 +71,7 @@ function Button

( break; case 'ghost': buttonStyle.push( - 'text-white bg-transaprent border-gray-600 hover:border-gray-200 focus:border-gray-100 active:border-gray-100' + 'text-white bg-transparent border-gray-600 hover:border-gray-200 focus:border-gray-100 active:border-gray-100' ); break; default: diff --git a/src/components/Common/ButtonWithDropdown/index.tsx b/src/components/Common/ButtonWithDropdown/index.tsx index be6815b94..b5bc0cb64 100644 --- a/src/components/Common/ButtonWithDropdown/index.tsx +++ b/src/components/Common/ButtonWithDropdown/index.tsx @@ -1,7 +1,7 @@ import useClickOutside from '@app/hooks/useClickOutside'; import { withProperties } from '@app/utils/typeHelpers'; import { Transition } from '@headlessui/react'; -import { ChevronDownIcon } from '@heroicons/react/solid'; +import { ChevronDownIcon } from '@heroicons/react/24/solid'; import type { AnchorHTMLAttributes, ButtonHTMLAttributes } from 'react'; import { Fragment, useRef, useState } from 'react'; diff --git a/src/components/Common/CachedImage/index.tsx b/src/components/Common/CachedImage/index.tsx index b16959372..6dfb8ee75 100644 --- a/src/components/Common/CachedImage/index.tsx +++ b/src/components/Common/CachedImage/index.tsx @@ -1,18 +1,27 @@ import useSettings from '@app/hooks/useSettings'; -import type { ImageProps } from 'next/image'; +import type { ImageLoader, ImageProps } from 'next/image'; import Image from 'next/image'; +const imageLoader: ImageLoader = ({ src }) => src; + /** * The CachedImage component should be used wherever * we want to offer the option to locally cache images. - * - * It uses the `next/image` Image component but overrides - * the `unoptimized` prop based on the application setting `cacheImages`. **/ -const CachedImage = (props: ImageProps) => { +const CachedImage = ({ src, ...props }: ImageProps) => { const { currentSettings } = useSettings(); - return ; + let imageUrl = src; + + if (typeof imageUrl === 'string' && imageUrl.startsWith('http')) { + const parsedUrl = new URL(imageUrl); + + if (parsedUrl.host === 'image.tmdb.org' && currentSettings.cacheImages) { + imageUrl = imageUrl.replace('https://image.tmdb.org', '/imageproxy'); + } + } + + return ; }; export default CachedImage; diff --git a/src/components/Common/ConfirmButton/index.tsx b/src/components/Common/ConfirmButton/index.tsx index 1f5756cb9..4234da68a 100644 --- a/src/components/Common/ConfirmButton/index.tsx +++ b/src/components/Common/ConfirmButton/index.tsx @@ -1,6 +1,6 @@ import Button from '@app/components/Common/Button'; import useClickOutside from '@app/hooks/useClickOutside'; -import { useRef, useState } from 'react'; +import { forwardRef, useRef, useState } from 'react'; interface ConfirmButtonProps { onClick: () => void; @@ -9,50 +9,51 @@ interface ConfirmButtonProps { children: React.ReactNode; } -const ConfirmButton = ({ - onClick, - children, - confirmText, - className, -}: ConfirmButtonProps) => { - const ref = useRef(null); - useClickOutside(ref, () => setIsClicked(false)); - const [isClicked, setIsClicked] = useState(false); - return ( - - ); -}; +

+ {children} +
+
+ {confirmText} +
+ + ); + } +); + +ConfirmButton.displayName = 'ConfirmButton'; export default ConfirmButton; diff --git a/src/components/Common/MultiRangeSlider/index.tsx b/src/components/Common/MultiRangeSlider/index.tsx new file mode 100644 index 000000000..c3da2b577 --- /dev/null +++ b/src/components/Common/MultiRangeSlider/index.tsx @@ -0,0 +1,113 @@ +import Tooltip from '@app/components/Common/Tooltip'; +import useDebouncedState from '@app/hooks/useDebouncedState'; +import { useEffect, useRef } from 'react'; + +type MultiRangeSliderProps = { + min: number; + max: number; + defaultMinValue?: number; + defaultMaxValue?: number; + subText?: string; + onUpdateMin: (min: number) => void; + onUpdateMax: (max: number) => void; +}; + +const MultiRangeSlider = ({ + min, + max, + defaultMinValue, + defaultMaxValue, + subText, + onUpdateMin, + onUpdateMax, +}: MultiRangeSliderProps) => { + const touched = useRef(false); + const [valueMin, finalValueMin, setValueMin] = useDebouncedState( + defaultMinValue ?? min + ); + const [valueMax, finalValueMax, setValueMax] = useDebouncedState( + defaultMaxValue ?? max + ); + + const minThumb = ((valueMin - min) / (max - min)) * 100; + const maxThumb = ((valueMax - min) / (max - min)) * 100; + + useEffect(() => { + if (touched.current) { + onUpdateMin(finalValueMin); + } + }, [finalValueMin, onUpdateMin]); + + useEffect(() => { + if (touched.current) { + onUpdateMax(finalValueMax); + } + }, [finalValueMax, onUpdateMax]); + + useEffect(() => { + touched.current = false; + setValueMax(defaultMaxValue ?? max); + setValueMin(defaultMinValue ?? min); + }, [defaultMinValue, defaultMaxValue, setValueMax, setValueMin, min, max]); + + return ( +
+ + = valueMax && valueMin !== min ? 'z-30' : 'z-10' + }`} + onChange={(e) => { + const value = Number(e.target.value); + + if (value <= valueMax) { + touched.current = true; + setValueMin(value); + } + }} + /> + + + { + const value = Number(e.target.value); + + if (value >= valueMin) { + touched.current = true; + setValueMax(value); + } + }} + /> + +
+ {subText && ( +
+ {subText} +
+ )} +
+ ); +}; + +export default MultiRangeSlider; diff --git a/src/components/Common/SensitiveInput/index.tsx b/src/components/Common/SensitiveInput/index.tsx index 6652f5519..ae11b9517 100644 --- a/src/components/Common/SensitiveInput/index.tsx +++ b/src/components/Common/SensitiveInput/index.tsx @@ -1,4 +1,4 @@ -import { EyeIcon, EyeOffIcon } from '@heroicons/react/solid'; +import { EyeIcon, EyeSlashIcon } from '@heroicons/react/24/solid'; import { Field } from 'formik'; import { useState } from 'react'; @@ -43,7 +43,7 @@ const SensitiveInput = ({ as = 'input', ...props }: SensitiveInputProps) => { type="button" className="input-action" > - {isHidden ? : } + {isHidden ? : } ); diff --git a/src/components/Common/SlideCheckbox/index.tsx b/src/components/Common/SlideCheckbox/index.tsx new file mode 100644 index 000000000..a514d6c03 --- /dev/null +++ b/src/components/Common/SlideCheckbox/index.tsx @@ -0,0 +1,38 @@ +type SlideCheckboxProps = { + onClick: () => void; + checked?: boolean; +}; + +const SlideCheckbox = ({ onClick, checked = false }: SlideCheckboxProps) => { + return ( + { + onClick(); + }} + onKeyDown={(e) => { + if (e.key === 'Enter' || e.key === 'Space') { + onClick(); + } + }} + className={`relative inline-flex h-5 w-10 flex-shrink-0 cursor-pointer items-center justify-center pt-2 focus:outline-none`} + > + + + + ); +}; + +export default SlideCheckbox; diff --git a/src/components/Common/SlideOver/index.tsx b/src/components/Common/SlideOver/index.tsx index e7ccf7063..48c1f8549 100644 --- a/src/components/Common/SlideOver/index.tsx +++ b/src/components/Common/SlideOver/index.tsx @@ -1,7 +1,7 @@ /* eslint-disable jsx-a11y/click-events-have-key-events */ import { useLockBodyScroll } from '@app/hooks/useLockBodyScroll'; import { Transition } from '@headlessui/react'; -import { XIcon } from '@heroicons/react/outline'; +import { XMarkIcon } from '@heroicons/react/24/outline'; import { Fragment, useEffect, useRef, useState } from 'react'; import ReactDOM from 'react-dom'; @@ -67,11 +67,11 @@ const SlideOver = ({ > {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
e.stopPropagation()} > -
+

@@ -83,7 +83,7 @@ const SlideOver = ({ className="text-gray-200 transition duration-150 ease-in-out hover:text-white" onClick={() => onClose()} > - +

@@ -95,8 +95,10 @@ const SlideOver = ({
)} -
- {children} +
+
+ {children} +
diff --git a/src/components/Common/StatusBadgeMini/index.tsx b/src/components/Common/StatusBadgeMini/index.tsx new file mode 100644 index 000000000..a7e24a378 --- /dev/null +++ b/src/components/Common/StatusBadgeMini/index.tsx @@ -0,0 +1,71 @@ +import Spinner from '@app/assets/spinner.svg'; +import { CheckCircleIcon } from '@heroicons/react/20/solid'; +import { BellIcon, ClockIcon, MinusSmallIcon } from '@heroicons/react/24/solid'; +import { MediaStatus } from '@server/constants/media'; + +interface StatusBadgeMiniProps { + status: MediaStatus; + is4k?: boolean; + inProgress?: boolean; + // Should the badge shrink on mobile to a smaller size? (TitleCard) + shrink?: boolean; +} + +const StatusBadgeMini = ({ + status, + is4k = false, + inProgress = false, + shrink = false, +}: StatusBadgeMiniProps) => { + const badgeStyle = [ + `rounded-full bg-opacity-80 shadow-md ${ + shrink ? 'w-4 sm:w-5 border p-0' : 'w-5 ring-1 p-0.5' + }`, + ]; + + let indicatorIcon: React.ReactNode; + + switch (status) { + case MediaStatus.PROCESSING: + badgeStyle.push( + 'bg-indigo-500 border-indigo-400 ring-indigo-400 text-indigo-100' + ); + indicatorIcon = ; + break; + case MediaStatus.AVAILABLE: + badgeStyle.push( + 'bg-green-500 border-green-400 ring-green-400 text-green-100' + ); + indicatorIcon = ; + break; + case MediaStatus.PENDING: + badgeStyle.push( + 'bg-yellow-500 border-yellow-400 ring-yellow-400 text-yellow-100' + ); + indicatorIcon = ; + break; + case MediaStatus.PARTIALLY_AVAILABLE: + badgeStyle.push( + 'bg-green-500 border-green-400 ring-green-400 text-green-100' + ); + indicatorIcon = ; + break; + } + + if (inProgress) { + indicatorIcon = ; + } + + return ( +
+
{indicatorIcon}
+ {is4k && 4K} +
+ ); +}; + +export default StatusBadgeMini; diff --git a/src/components/Common/Tag/index.tsx b/src/components/Common/Tag/index.tsx new file mode 100644 index 000000000..dcb426d40 --- /dev/null +++ b/src/components/Common/Tag/index.tsx @@ -0,0 +1,24 @@ +import { TagIcon } from '@heroicons/react/24/outline'; +import React from 'react'; + +type TagProps = { + children: React.ReactNode; + iconSvg?: JSX.Element; +}; + +const Tag = ({ children, iconSvg }: TagProps) => { + return ( +
+ {iconSvg ? ( + React.cloneElement(iconSvg, { + className: 'mr-1 h-4 w-4', + }) + ) : ( + + )} + {children} +
+ ); +}; + +export default Tag; diff --git a/src/components/Common/Tooltip/index.tsx b/src/components/Common/Tooltip/index.tsx index b0c4fb2eb..e8574699e 100644 --- a/src/components/Common/Tooltip/index.tsx +++ b/src/components/Common/Tooltip/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import ReactDOM from 'react-dom'; import type { Config } from 'react-popper-tooltip'; import { usePopperTooltip } from 'react-popper-tooltip'; @@ -6,9 +7,15 @@ type TooltipProps = { content: React.ReactNode; children: React.ReactElement; tooltipConfig?: Partial; + className?: string; }; -const Tooltip = ({ children, content, tooltipConfig }: TooltipProps) => { +const Tooltip = ({ + children, + content, + tooltipConfig, + className, +}: TooltipProps) => { const { getTooltipProps, setTooltipRef, setTriggerRef, visible } = usePopperTooltip({ followCursor: true, @@ -17,20 +24,30 @@ const Tooltip = ({ children, content, tooltipConfig }: TooltipProps) => { ...tooltipConfig, }); + const tooltipStyle = [ + 'z-50 text-sm absolute font-normal bg-gray-800 px-2 py-1 rounded border border-gray-600 shadow text-gray-100', + ]; + + if (className) { + tooltipStyle.push(className); + } + return ( <> {React.cloneElement(children, { ref: setTriggerRef })} - {visible && ( -
- {content} -
- )} + {visible && + content && + ReactDOM.createPortal( +
+ {content} +
, + document.body + )} ); }; diff --git a/src/components/CompanyCard/index.tsx b/src/components/CompanyCard/index.tsx index 762d1a08b..13b92a333 100644 --- a/src/components/CompanyCard/index.tsx +++ b/src/components/CompanyCard/index.tsx @@ -1,3 +1,4 @@ +import CachedImage from '@app/components/Common/CachedImage'; import Link from 'next/link'; import { useState } from 'react'; @@ -30,11 +31,15 @@ const CompanyCard = ({ image, url, name }: CompanyCardProps) => { role="link" tabIndex={0} > - {name} +
+ +
{ + const { data, error } = useSWR( + `/api/v1/${type}/${companyId}` + ); + + if (!data && !error) { + return ( + + + + ); + } + + return }>{data?.name}; +}; + +export default CompanyTag; diff --git a/src/components/Discover/CreateSlider/index.tsx b/src/components/Discover/CreateSlider/index.tsx new file mode 100644 index 000000000..24b9d3fdc --- /dev/null +++ b/src/components/Discover/CreateSlider/index.tsx @@ -0,0 +1,506 @@ +import Button from '@app/components/Common/Button'; +import Tooltip from '@app/components/Common/Tooltip'; +import { sliderTitles } from '@app/components/Discover/constants'; +import MediaSlider from '@app/components/MediaSlider'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; +import type { + TmdbCompanySearchResponse, + TmdbGenre, + TmdbKeywordSearchResponse, +} from '@server/api/themoviedb/interfaces'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; +import type { Keyword, ProductionCompany } from '@server/models/common'; +import axios from 'axios'; +import { Field, Form, Formik } from 'formik'; +import { useCallback, useEffect, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import AsyncSelect from 'react-select/async'; +import { useToasts } from 'react-toast-notifications'; +import * as Yup from 'yup'; + +const messages = defineMessages({ + addSlider: 'Add Slider', + editSlider: 'Edit Slider', + slidernameplaceholder: 'Slider Name', + providetmdbkeywordid: 'Provide a TMDB Keyword ID', + providetmdbgenreid: 'Provide a TMDB Genre ID', + providetmdbsearch: 'Provide a search query', + providetmdbstudio: 'Provide TMDB Studio ID', + providetmdbnetwork: 'Provide TMDB Network ID', + addsuccess: 'Created new slider and saved discover customization settings.', + addfail: 'Failed to create new slider.', + editsuccess: 'Edited slider and saved discover customization settings.', + editfail: 'Failed to edit slider.', + needresults: 'You need to have at least 1 result.', + validationDatarequired: 'You must provide a data value.', + validationTitlerequired: 'You must provide a title.', + addcustomslider: 'Create Custom Slider', + searchKeywords: 'Search keywords…', + searchGenres: 'Search genres…', + searchStudios: 'Search studios…', + starttyping: 'Starting typing to search.', + nooptions: 'No results.', +}); + +type CreateSliderProps = { + onCreate: () => void; + slider?: Partial; +}; + +type CreateOption = { + type: DiscoverSliderType; + title: string; + dataUrl: string; + params?: string; + titlePlaceholderText: string; + dataPlaceholderText: string; +}; + +const CreateSlider = ({ onCreate, slider }: CreateSliderProps) => { + const intl = useIntl(); + const { addToast } = useToasts(); + const [resultCount, setResultCount] = useState(0); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + if (slider) { + const loadDefaultKeywords = async (): Promise => { + if (!slider.data) { + return; + } + + const keywords = await Promise.all( + slider.data.split(',').map(async (keywordId) => { + const keyword = await axios.get( + `/api/v1/keyword/${keywordId}` + ); + + return keyword.data; + }) + ); + + setDefaultDataValue( + keywords.map((keyword) => ({ + label: keyword.name, + value: keyword.id, + })) + ); + }; + + const loadDefaultGenre = async (): Promise => { + if (!slider.data) { + return; + } + + const response = await axios.get( + `/api/v1/genres/${ + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE ? 'movie' : 'tv' + }` + ); + + const genre = response.data.find( + (genre) => genre.id === Number(slider.data) + ); + + setDefaultDataValue([ + { + label: genre?.name ?? '', + value: genre?.id ?? 0, + }, + ]); + }; + + const loadDefaultCompany = async (): Promise => { + if (!slider.data) { + return; + } + + const response = await axios.get( + `/api/v1/studio/${slider.data}` + ); + + const studio = response.data; + + setDefaultDataValue([ + { + label: studio.name ?? '', + value: studio.id ?? 0, + }, + ]); + }; + + switch (slider.type) { + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + case DiscoverSliderType.TMDB_TV_KEYWORD: + loadDefaultKeywords(); + break; + case DiscoverSliderType.TMDB_MOVIE_GENRE: + case DiscoverSliderType.TMDB_TV_GENRE: + loadDefaultGenre(); + break; + case DiscoverSliderType.TMDB_STUDIO: + loadDefaultCompany(); + break; + } + } + }, [slider]); + + const CreateSliderSchema = Yup.object().shape({ + title: Yup.string().required( + intl.formatMessage(messages.validationTitlerequired) + ), + data: Yup.string().required( + intl.formatMessage(messages.validationDatarequired) + ), + }); + + const updateResultCount = useCallback( + (count: number) => { + setResultCount(count); + }, + [setResultCount] + ); + + const loadKeywordOptions = async (inputValue: string) => { + const results = await axios.get( + '/api/v1/search/keyword', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const loadCompanyOptions = async (inputValue: string) => { + if (inputValue === '') { + return []; + } + + const results = await axios.get( + '/api/v1/search/company', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const loadMovieGenreOptions = async () => { + const results = await axios.get( + '/api/v1/discover/genreslider/movie' + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const loadTvGenreOptions = async () => { + const results = await axios.get( + '/api/v1/discover/genreslider/tv' + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + const options: CreateOption[] = [ + { + type: DiscoverSliderType.TMDB_MOVIE_KEYWORD, + title: intl.formatMessage(sliderTitles.tmdbmoviekeyword), + dataUrl: '/api/v1/discover/movies', + params: 'keywords=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbkeywordid), + }, + { + type: DiscoverSliderType.TMDB_TV_KEYWORD, + title: intl.formatMessage(sliderTitles.tmdbtvkeyword), + dataUrl: '/api/v1/discover/tv', + params: 'keywords=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbkeywordid), + }, + { + type: DiscoverSliderType.TMDB_MOVIE_GENRE, + title: intl.formatMessage(sliderTitles.tmdbmoviegenre), + dataUrl: '/api/v1/discover/movies/genre/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbgenreid), + }, + { + type: DiscoverSliderType.TMDB_TV_GENRE, + title: intl.formatMessage(sliderTitles.tmdbtvgenre), + dataUrl: '/api/v1/discover/tv/genre/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbgenreid), + }, + { + type: DiscoverSliderType.TMDB_STUDIO, + title: intl.formatMessage(sliderTitles.tmdbstudio), + dataUrl: '/api/v1/discover/movies/studio/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbstudio), + }, + { + type: DiscoverSliderType.TMDB_NETWORK, + title: intl.formatMessage(sliderTitles.tmdbnetwork), + dataUrl: '/api/v1/discover/tv/network/$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbnetwork), + }, + { + type: DiscoverSliderType.TMDB_SEARCH, + title: intl.formatMessage(sliderTitles.tmdbsearch), + dataUrl: '/api/v1/search', + params: 'query=$value', + titlePlaceholderText: intl.formatMessage(messages.slidernameplaceholder), + dataPlaceholderText: intl.formatMessage(messages.providetmdbsearch), + }, + ]; + + return ( + { + try { + if (slider) { + await axios.put(`/api/v1/settings/discover/${slider.id}`, { + type: Number(values.sliderType), + title: values.title, + data: values.data, + }); + } else { + await axios.post('/api/v1/settings/discover/add', { + type: Number(values.sliderType), + title: values.title, + data: values.data, + }); + } + + addToast( + intl.formatMessage( + slider ? messages.editsuccess : messages.addsuccess + ), + { + appearance: 'success', + autoDismiss: true, + } + ); + onCreate(); + resetForm(); + } catch (e) { + addToast( + intl.formatMessage(slider ? messages.editfail : messages.addfail), + { + appearance: 'error', + autoDismiss: true, + } + ); + } + }} + > + {({ values, isValid, isSubmitting, errors, touched, setFieldValue }) => { + const activeOption = options.find( + (option) => option.type === Number(values.sliderType) + ); + + let dataInput: React.ReactNode; + + switch (activeOption?.type) { + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + case DiscoverSliderType.TMDB_TV_KEYWORD: + dataInput = ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + defaultValue={defaultDataValue} + loadOptions={loadKeywordOptions} + placeholder={intl.formatMessage(messages.searchKeywords)} + onChange={(value) => { + const keywords = value.map((item) => item.value).join(','); + + setFieldValue('data', keywords); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_MOVIE_GENRE: + dataInput = ( + { + setFieldValue('data', value?.value.toString()); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_TV_GENRE: + dataInput = ( + { + setFieldValue('data', value?.value.toString()); + }} + /> + ); + break; + case DiscoverSliderType.TMDB_STUDIO: + dataInput = ( + { + setFieldValue('data', value?.value.toString()); + }} + /> + ); + break; + default: + dataInput = ( + + ); + } + + return ( +
+
+ + {options.map((option) => ( + + ))} + + + {errors.title && + touched.title && + typeof errors.title === 'string' && ( +
{errors.title}
+ )} + {dataInput} + {errors.data && + touched.data && + typeof errors.data === 'string' && ( +
{errors.data}
+ )} +
+ {resultCount === 0 ? ( + +
+ +
+
+ ) : ( +
+ +
+ )} +
+ + {activeOption && values.title && values.data && ( +
+ +
+ )} +
+ ); + }} +
+ ); +}; + +export default CreateSlider; diff --git a/src/components/Discover/DiscoverMovies.tsx b/src/components/Discover/DiscoverMovieKeyword/index.tsx similarity index 52% rename from src/components/Discover/DiscoverMovies.tsx rename to src/components/Discover/DiscoverMovieKeyword/index.tsx index b9ec8dea8..7ae2e989f 100644 --- a/src/components/Discover/DiscoverMovies.tsx +++ b/src/components/Discover/DiscoverMovieKeyword/index.tsx @@ -1,16 +1,20 @@ import Header from '@app/components/Common/Header'; import ListView from '@app/components/Common/ListView'; import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; +import useDiscover, { encodeURIExtraParams } from '@app/hooks/useDiscover'; +import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; import type { MovieResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ - discovermovies: 'Popular Movies', + keywordMovies: '{keywordTitle} Movies', }); -const DiscoverMovies = () => { +const DiscoverMovieKeyword = () => { + const router = useRouter(); const intl = useIntl(); const { @@ -21,13 +25,25 @@ const DiscoverMovies = () => { titles, fetchMore, error, - } = useDiscover('/api/v1/discover/movies'); + firstResultData, + } = useDiscover( + `/api/v1/discover/movies`, + { + keywords: encodeURIExtraParams(router.query.keywords as string), + } + ); if (error) { return ; } - const title = intl.formatMessage(messages.discovermovies); + const title = isLoadingInitialData + ? intl.formatMessage(globalMessages.loading) + : intl.formatMessage(messages.keywordMovies, { + keywordTitle: firstResultData?.keywords + .map((k) => `${k.name[0].toUpperCase()}${k.name.substring(1)}`) + .join(', '), + }); return ( <> @@ -48,4 +64,4 @@ const DiscoverMovies = () => { ); }; -export default DiscoverMovies; +export default DiscoverMovieKeyword; diff --git a/src/components/Discover/DiscoverMovies/index.tsx b/src/components/Discover/DiscoverMovies/index.tsx new file mode 100644 index 000000000..2cc511770 --- /dev/null +++ b/src/components/Discover/DiscoverMovies/index.tsx @@ -0,0 +1,147 @@ +import Button from '@app/components/Common/Button'; +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { + countActiveFilters, + prepareFilterValues, +} from '@app/components/Discover/constants'; +import FilterSlideover from '@app/components/Discover/FilterSlideover'; +import useDiscover from '@app/hooks/useDiscover'; +import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; +import Error from '@app/pages/_error'; +import { BarsArrowDownIcon, FunnelIcon } from '@heroicons/react/24/solid'; +import type { SortOptions as TMDBSortOptions } from '@server/api/themoviedb'; +import type { MovieResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + discovermovies: 'Movies', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + sortPopularityAsc: 'Popularity Ascending', + sortPopularityDesc: 'Popularity Descending', + sortReleaseDateAsc: 'Release Date Ascending', + sortReleaseDateDesc: 'Release Date Descending', + sortTmdbRatingAsc: 'TMDB Rating Ascending', + sortTmdbRatingDesc: 'TMDB Rating Descending', + sortTitleAsc: 'Title (A-Z) Ascending', + sortTitleDesc: 'Title (Z-A) Descending', +}); + +const SortOptions: Record = { + PopularityAsc: 'popularity.asc', + PopularityDesc: 'popularity.desc', + ReleaseDateAsc: 'release_date.asc', + ReleaseDateDesc: 'release_date.desc', + TmdbRatingAsc: 'vote_average.asc', + TmdbRatingDesc: 'vote_average.desc', + TitleAsc: 'original_title.asc', + TitleDesc: 'original_title.desc', +} as const; + +const DiscoverMovies = () => { + const intl = useIntl(); + const router = useRouter(); + const updateQueryParams = useUpdateQueryParams({}); + + const preparedFilters = prepareFilterValues(router.query); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + } = useDiscover( + '/api/v1/discover/movies', + preparedFilters + ); + const [showFilters, setShowFilters] = useState(false); + + if (error) { + return ; + } + + const title = intl.formatMessage(messages.discovermovies); + + return ( + <> + +
+
{title}
+
+
+ + + + +
+ setShowFilters(false)} + show={showFilters} + /> +
+ +
+
+
+ 0) + } + isReachingEnd={isReachingEnd} + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverMovies; diff --git a/src/components/Discover/DiscoverSliderEdit/index.tsx b/src/components/Discover/DiscoverSliderEdit/index.tsx new file mode 100644 index 000000000..970a9887a --- /dev/null +++ b/src/components/Discover/DiscoverSliderEdit/index.tsx @@ -0,0 +1,334 @@ +import Button from '@app/components/Common/Button'; +import SlideCheckbox from '@app/components/Common/SlideCheckbox'; +import Tag from '@app/components/Common/Tag'; +import Tooltip from '@app/components/Common/Tooltip'; +import CompanyTag from '@app/components/CompanyTag'; +import { sliderTitles } from '@app/components/Discover/constants'; +import CreateSlider from '@app/components/Discover/CreateSlider'; +import GenreTag from '@app/components/GenreTag'; +import KeywordTag from '@app/components/KeywordTag'; +import globalMessages from '@app/i18n/globalMessages'; +import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; +import { + ArrowUturnLeftIcon, + Bars3Icon, + ChevronDownIcon, + ChevronUpIcon, + PencilIcon, + XMarkIcon, +} from '@heroicons/react/24/solid'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import axios from 'axios'; +import { useRef, useState } from 'react'; +import { useDrag, useDrop } from 'react-aria'; +import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; + +const messages = defineMessages({ + deletesuccess: 'Sucessfully deleted slider.', + deletefail: 'Failed to delete slider.', + remove: 'Remove', + enable: 'Toggle Visibility', +}); + +const Position = { + None: 'None', + Above: 'Above', + Below: 'Below', +} as const; + +type DiscoverSliderEditProps = { + slider: Partial; + onEnable: () => void; + onDelete: () => void; + onPositionUpdate: ( + updatedItemId: number, + position: keyof typeof Position, + isClickable: boolean + ) => void; + children: React.ReactNode; + disableUpButton: boolean; + disableDownButton: boolean; +}; + +const DiscoverSliderEdit = ({ + slider, + children, + onEnable, + onDelete, + onPositionUpdate, + disableUpButton, + disableDownButton, +}: DiscoverSliderEditProps) => { + const intl = useIntl(); + const { addToast } = useToasts(); + const [isEditing, setIsEditing] = useState(false); + const ref = useRef(null); + const [hoverPosition, setHoverPosition] = useState( + Position.None + ); + + const { dragProps, isDragging } = useDrag({ + getItems() { + return [{ id: (slider.id ?? -1).toString(), title: slider.title ?? '' }]; + }, + }); + + const deleteSlider = async () => { + try { + await axios.delete(`/api/v1/settings/discover/${slider.id}`); + addToast(intl.formatMessage(messages.deletesuccess), { + appearance: 'success', + autoDismiss: true, + }); + onDelete(); + } catch (e) { + addToast(intl.formatMessage(messages.deletefail), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const { dropProps } = useDrop({ + ref, + onDropMove: (e) => { + if (ref.current) { + const middlePoint = ref.current.offsetHeight / 2; + + if (e.y < middlePoint) { + setHoverPosition(Position.Above); + } else { + setHoverPosition(Position.Below); + } + } + }, + onDropExit: () => { + setHoverPosition(Position.None); + }, + onDrop: async (e) => { + const items = await Promise.all( + e.items + .filter((item) => item.kind === 'text' && item.types.has('id')) + .map(async (item) => { + if (item.kind === 'text') { + return item.getText('id'); + } + }) + ); + if (items?.[0]) { + const dropped = Number(items[0]); + onPositionUpdate(dropped, hoverPosition, false); + } + }, + }); + + const getSliderTitle = (slider: Partial): string => { + switch (slider.type) { + case DiscoverSliderType.RECENTLY_ADDED: + return intl.formatMessage(sliderTitles.recentlyAdded); + case DiscoverSliderType.RECENT_REQUESTS: + return intl.formatMessage(sliderTitles.recentrequests); + case DiscoverSliderType.PLEX_WATCHLIST: + return intl.formatMessage(sliderTitles.plexwatchlist); + case DiscoverSliderType.TRENDING: + return intl.formatMessage(sliderTitles.trending); + case DiscoverSliderType.POPULAR_MOVIES: + return intl.formatMessage(sliderTitles.popularmovies); + case DiscoverSliderType.MOVIE_GENRES: + return intl.formatMessage(sliderTitles.moviegenres); + case DiscoverSliderType.UPCOMING_MOVIES: + return intl.formatMessage(sliderTitles.upcoming); + case DiscoverSliderType.STUDIOS: + return intl.formatMessage(sliderTitles.studios); + case DiscoverSliderType.POPULAR_TV: + return intl.formatMessage(sliderTitles.populartv); + case DiscoverSliderType.TV_GENRES: + return intl.formatMessage(sliderTitles.tvgenres); + case DiscoverSliderType.UPCOMING_TV: + return intl.formatMessage(sliderTitles.upcomingtv); + case DiscoverSliderType.NETWORKS: + return intl.formatMessage(sliderTitles.networks); + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbmoviekeyword); + case DiscoverSliderType.TMDB_TV_KEYWORD: + return intl.formatMessage(sliderTitles.tmdbtvkeyword); + case DiscoverSliderType.TMDB_MOVIE_GENRE: + return intl.formatMessage(sliderTitles.tmdbmoviegenre); + case DiscoverSliderType.TMDB_TV_GENRE: + return intl.formatMessage(sliderTitles.tmdbtvgenre); + case DiscoverSliderType.TMDB_STUDIO: + return intl.formatMessage(sliderTitles.tmdbstudio); + case DiscoverSliderType.TMDB_NETWORK: + return intl.formatMessage(sliderTitles.tmdbnetwork); + case DiscoverSliderType.TMDB_SEARCH: + return intl.formatMessage(sliderTitles.tmdbsearch); + default: + return 'Unknown Slider'; + } + }; + + return ( +
+ {hoverPosition === Position.Above && ( +
+ )} + {hoverPosition === Position.Below && ( +
+ )} +
+
+ +
{getSliderTitle(slider)}
+
+
+ {(slider.type === DiscoverSliderType.TMDB_MOVIE_KEYWORD || + slider.type === DiscoverSliderType.TMDB_TV_KEYWORD) && ( +
+ {slider.data?.split(',').map((keywordId) => ( + + ))} +
+ )} + {(slider.type === DiscoverSliderType.TMDB_NETWORK || + slider.type === DiscoverSliderType.TMDB_STUDIO) && ( + + )} + {(slider.type === DiscoverSliderType.TMDB_TV_GENRE || + slider.type === DiscoverSliderType.TMDB_MOVIE_GENRE) && ( + + )} + {slider.type === DiscoverSliderType.TMDB_SEARCH && ( + }>{slider.data} + )} +
+
+ {!slider.isBuiltIn && ( + <> + {!isEditing ? ( + + ) : ( + + )} + + + )} +
+ + +
+
+ +
+ { + onEnable(); + }} + checked={slider.enabled} + /> +
+
+
+
+
+ {isEditing ? ( +
+ { + onDelete(); + setIsEditing(false); + }} + slider={slider} + /> +
+ ) : ( +
+ {children} +
+ )} +
+ ); +}; + +export default DiscoverSliderEdit; diff --git a/src/components/Discover/DiscoverTv/index.tsx b/src/components/Discover/DiscoverTv/index.tsx new file mode 100644 index 000000000..527393676 --- /dev/null +++ b/src/components/Discover/DiscoverTv/index.tsx @@ -0,0 +1,145 @@ +import Button from '@app/components/Common/Button'; +import Header from '@app/components/Common/Header'; +import ListView from '@app/components/Common/ListView'; +import PageTitle from '@app/components/Common/PageTitle'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { + countActiveFilters, + prepareFilterValues, +} from '@app/components/Discover/constants'; +import FilterSlideover from '@app/components/Discover/FilterSlideover'; +import useDiscover from '@app/hooks/useDiscover'; +import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; +import Error from '@app/pages/_error'; +import { BarsArrowDownIcon, FunnelIcon } from '@heroicons/react/24/solid'; +import type { SortOptions as TMDBSortOptions } from '@server/api/themoviedb'; +import type { TvResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; + +const messages = defineMessages({ + discovertv: 'Series', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + sortPopularityAsc: 'Popularity Ascending', + sortPopularityDesc: 'Popularity Descending', + sortFirstAirDateAsc: 'First Air Date Ascending', + sortFirstAirDateDesc: 'First Air Date Descending', + sortTmdbRatingAsc: 'TMDB Rating Ascending', + sortTmdbRatingDesc: 'TMDB Rating Descending', + sortTitleAsc: 'Title (A-Z) Ascending', + sortTitleDesc: 'Title (Z-A) Descending', +}); + +const SortOptions: Record = { + PopularityAsc: 'popularity.asc', + PopularityDesc: 'popularity.desc', + FirstAirDateAsc: 'first_air_date.asc', + FirstAirDateDesc: 'first_air_date.desc', + TmdbRatingAsc: 'vote_average.asc', + TmdbRatingDesc: 'vote_average.desc', + TitleAsc: 'original_title.asc', + TitleDesc: 'original_title.desc', +} as const; + +const DiscoverTv = () => { + const intl = useIntl(); + const router = useRouter(); + const [showFilters, setShowFilters] = useState(false); + const preparedFilters = prepareFilterValues(router.query); + const updateQueryParams = useUpdateQueryParams({}); + + const { + isLoadingInitialData, + isEmpty, + isLoadingMore, + isReachingEnd, + titles, + fetchMore, + error, + } = useDiscover('/api/v1/discover/tv', { + ...preparedFilters, + }); + + if (error) { + return ; + } + + const title = intl.formatMessage(messages.discovertv); + + return ( + <> + +
+
{title}
+
+
+ + + + +
+ setShowFilters(false)} + show={showFilters} + /> +
+ +
+
+
+ 0) + } + onScrollBottom={fetchMore} + /> + + ); +}; + +export default DiscoverTv; diff --git a/src/components/Discover/DiscoverTv.tsx b/src/components/Discover/DiscoverTvKeyword/index.tsx similarity index 52% rename from src/components/Discover/DiscoverTv.tsx rename to src/components/Discover/DiscoverTvKeyword/index.tsx index 404b1aa5b..0c0411386 100644 --- a/src/components/Discover/DiscoverTv.tsx +++ b/src/components/Discover/DiscoverTvKeyword/index.tsx @@ -1,16 +1,20 @@ import Header from '@app/components/Common/Header'; import ListView from '@app/components/Common/ListView'; import PageTitle from '@app/components/Common/PageTitle'; -import useDiscover from '@app/hooks/useDiscover'; +import useDiscover, { encodeURIExtraParams } from '@app/hooks/useDiscover'; +import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; +import type { TmdbKeyword } from '@server/api/themoviedb/interfaces'; import type { TvResult } from '@server/models/Search'; +import { useRouter } from 'next/router'; import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ - discovertv: 'Popular Series', + keywordSeries: '{keywordTitle} Series', }); -const DiscoverTv = () => { +const DiscoverTvKeyword = () => { + const router = useRouter(); const intl = useIntl(); const { @@ -21,13 +25,25 @@ const DiscoverTv = () => { titles, fetchMore, error, - } = useDiscover('/api/v1/discover/tv'); + firstResultData, + } = useDiscover( + `/api/v1/discover/tv`, + { + keywords: encodeURIExtraParams(router.query.keywords as string), + } + ); if (error) { return ; } - const title = intl.formatMessage(messages.discovertv); + const title = isLoadingInitialData + ? intl.formatMessage(globalMessages.loading) + : intl.formatMessage(messages.keywordSeries, { + keywordTitle: firstResultData?.keywords + .map((k) => `${k.name[0].toUpperCase()}${k.name.substring(1)}`) + .join(', '), + }); return ( <> @@ -38,14 +54,14 @@ const DiscoverTv = () => { 0) } + isReachingEnd={isReachingEnd} onScrollBottom={fetchMore} /> ); }; -export default DiscoverTv; +export default DiscoverTvKeyword; diff --git a/src/components/Discover/FilterSlideover/index.tsx b/src/components/Discover/FilterSlideover/index.tsx new file mode 100644 index 000000000..10ee0fea2 --- /dev/null +++ b/src/components/Discover/FilterSlideover/index.tsx @@ -0,0 +1,297 @@ +import Button from '@app/components/Common/Button'; +import MultiRangeSlider from '@app/components/Common/MultiRangeSlider'; +import SlideOver from '@app/components/Common/SlideOver'; +import type { FilterOptions } from '@app/components/Discover/constants'; +import { countActiveFilters } from '@app/components/Discover/constants'; +import LanguageSelector from '@app/components/LanguageSelector'; +import { + CompanySelector, + GenreSelector, + KeywordSelector, + WatchProviderSelector, +} from '@app/components/Selector'; +import useSettings from '@app/hooks/useSettings'; +import { + useBatchUpdateQueryParams, + useUpdateQueryParams, +} from '@app/hooks/useUpdateQueryParams'; +import { XCircleIcon } from '@heroicons/react/24/outline'; +import { defineMessages, useIntl } from 'react-intl'; +import Datepicker from 'react-tailwindcss-datepicker-sct'; + +const messages = defineMessages({ + filters: 'Filters', + activefilters: + '{count, plural, one {# Active Filter} other {# Active Filters}}', + releaseDate: 'Release Date', + firstAirDate: 'First Air Date', + from: 'From', + to: 'To', + studio: 'Studio', + genres: 'Genres', + keywords: 'Keywords', + originalLanguage: 'Original Language', + runtimeText: '{minValue}-{maxValue} minute runtime', + ratingText: 'Ratings between {minValue} and {maxValue}', + clearfilters: 'Clear Active Filters', + tmdbuserscore: 'TMDB User Score', + runtime: 'Runtime', + streamingservices: 'Streaming Services', +}); + +type FilterSlideoverProps = { + show: boolean; + onClose: () => void; + type: 'movie' | 'tv'; + currentFilters: FilterOptions; +}; + +const FilterSlideover = ({ + show, + onClose, + type, + currentFilters, +}: FilterSlideoverProps) => { + const intl = useIntl(); + const { currentSettings } = useSettings(); + const updateQueryParams = useUpdateQueryParams({}); + const batchUpdateQueryParams = useBatchUpdateQueryParams({}); + + const dateGte = + type === 'movie' ? 'primaryReleaseDateGte' : 'firstAirDateGte'; + const dateLte = + type === 'movie' ? 'primaryReleaseDateLte' : 'firstAirDateLte'; + + return ( + onClose()} + > +
+
+
+ {intl.formatMessage( + type === 'movie' ? messages.releaseDate : messages.firstAirDate + )} +
+
+
+
{intl.formatMessage(messages.from)}
+ { + updateQueryParams( + dateGte, + value?.startDate ? (value.startDate as string) : undefined + ); + }} + inputName="fromdate" + useRange={false} + asSingle + containerClassName="datepicker-wrapper" + inputClassName="pr-1 sm:pr-4 text-base leading-5" + /> +
+
+
{intl.formatMessage(messages.to)}
+ { + updateQueryParams( + dateLte, + value?.startDate ? (value.startDate as string) : undefined + ); + }} + inputName="todate" + useRange={false} + asSingle + containerClassName="datepicker-wrapper" + inputClassName="pr-1 sm:pr-4 text-base leading-5" + /> +
+
+
+ {type === 'movie' && ( + <> + + {intl.formatMessage(messages.studio)} + + { + updateQueryParams('studio', value?.value.toString()); + }} + /> + + )} + + {intl.formatMessage(messages.genres)} + + { + updateQueryParams('genre', value?.map((v) => v.value).join(',')); + }} + /> + + {intl.formatMessage(messages.keywords)} + + { + updateQueryParams('keywords', value?.map((v) => v.value).join(',')); + }} + /> + + {intl.formatMessage(messages.originalLanguage)} + + { + updateQueryParams('language', value); + }} + /> + + {intl.formatMessage(messages.runtime)} + +
+ { + updateQueryParams( + 'withRuntimeGte', + min !== 0 && Number(currentFilters.withRuntimeLte) !== 400 + ? min.toString() + : undefined + ); + }} + onUpdateMax={(max) => { + updateQueryParams( + 'withRuntimeLte', + max !== 400 && Number(currentFilters.withRuntimeGte) !== 0 + ? max.toString() + : undefined + ); + }} + defaultMaxValue={ + currentFilters.withRuntimeLte + ? Number(currentFilters.withRuntimeLte) + : undefined + } + defaultMinValue={ + currentFilters.withRuntimeGte + ? Number(currentFilters.withRuntimeGte) + : undefined + } + subText={intl.formatMessage(messages.runtimeText, { + minValue: currentFilters.withRuntimeGte ?? 0, + maxValue: currentFilters.withRuntimeLte ?? 400, + })} + /> +
+ + {intl.formatMessage(messages.tmdbuserscore)} + +
+ { + updateQueryParams( + 'voteAverageGte', + min !== 1 && Number(currentFilters.voteAverageLte) !== 10 + ? min.toString() + : undefined + ); + }} + onUpdateMax={(max) => { + updateQueryParams( + 'voteAverageLte', + max !== 10 && Number(currentFilters.voteAverageGte) !== 1 + ? max.toString() + : undefined + ); + }} + subText={intl.formatMessage(messages.ratingText, { + minValue: currentFilters.voteAverageGte ?? 1, + maxValue: currentFilters.voteAverageLte ?? 10, + })} + /> +
+ + {intl.formatMessage(messages.streamingservices)} + + Number(v)) ?? + [] + } + onChange={(region, providers) => { + if (providers.length) { + batchUpdateQueryParams({ + watchRegion: region, + watchProviders: providers.join('|'), + }); + } else { + batchUpdateQueryParams({ + watchRegion: undefined, + watchProviders: undefined, + }); + } + }} + /> +
+ +
+
+
+ ); +}; + +export default FilterSlideover; diff --git a/src/components/Discover/MovieGenreSlider/index.tsx b/src/components/Discover/MovieGenreSlider/index.tsx index 4899d3496..106d14a51 100644 --- a/src/components/Discover/MovieGenreSlider/index.tsx +++ b/src/components/Discover/MovieGenreSlider/index.tsx @@ -1,7 +1,7 @@ import { genreColorMap } from '@app/components/Discover/constants'; import GenreCard from '@app/components/GenreCard'; import Slider from '@app/components/Slider'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import React from 'react'; @@ -28,7 +28,7 @@ const MovieGenreSlider = () => { {intl.formatMessage(messages.moviegenres)} - +
@@ -43,7 +43,7 @@ const MovieGenreSlider = () => { image={`https://image.tmdb.org/t/p/w1280_filter(duotone,${ genreColorMap[genre.id] ?? genreColorMap[0] })${genre.backdrops[4]}`} - url={`/discover/movies/genre/${genre.id}`} + url={`/discover/movies?genre=${genre.id}`} /> ))} placeholder={} diff --git a/src/components/Discover/PlexWatchlistSlider/index.tsx b/src/components/Discover/PlexWatchlistSlider/index.tsx new file mode 100644 index 000000000..76fba57ca --- /dev/null +++ b/src/components/Discover/PlexWatchlistSlider/index.tsx @@ -0,0 +1,79 @@ +import Slider from '@app/components/Slider'; +import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; +import { UserType, useUser } from '@app/hooks/useUser'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; +import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; +import Link from 'next/link'; +import { defineMessages, useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const messages = defineMessages({ + plexwatchlist: 'Your Plex Watchlist', + emptywatchlist: + 'Media added to your Plex Watchlist will appear here.', +}); + +const PlexWatchlistSlider = () => { + const intl = useIntl(); + const { user } = useUser(); + + const { data: watchlistItems, error: watchlistError } = useSWR<{ + page: number; + totalPages: number; + totalResults: number; + results: WatchlistItem[]; + }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, { + revalidateOnMount: true, + }); + + if ( + user?.userType !== UserType.PLEX || + (watchlistItems && + watchlistItems.results.length === 0 && + !user?.settings?.watchlistSyncMovies && + !user?.settings?.watchlistSyncTv) || + watchlistError + ) { + return null; + } + + return ( + <> + + ( + + {msg} + + ), + })} + items={watchlistItems?.results.map((item) => ( + + ))} + /> + + ); +}; + +export default PlexWatchlistSlider; diff --git a/src/components/Discover/RecentRequestsSlider/index.tsx b/src/components/Discover/RecentRequestsSlider/index.tsx new file mode 100644 index 000000000..96309d613 --- /dev/null +++ b/src/components/Discover/RecentRequestsSlider/index.tsx @@ -0,0 +1,49 @@ +import { sliderTitles } from '@app/components/Discover/constants'; +import RequestCard from '@app/components/RequestCard'; +import Slider from '@app/components/Slider'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; +import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; +import Link from 'next/link'; +import { useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const RecentRequestsSlider = () => { + const intl = useIntl(); + const { data: requests, error: requestError } = + useSWR( + '/api/v1/request?filter=all&take=10&sort=modified&skip=0', + { + revalidateOnMount: true, + } + ); + + if (requests && requests.results.length === 0 && !requestError) { + return null; + } + + return ( + <> + + ( + + ))} + placeholder={} + /> + + ); +}; + +export default RecentRequestsSlider; diff --git a/src/components/Discover/RecentlyAddedSlider/index.tsx b/src/components/Discover/RecentlyAddedSlider/index.tsx new file mode 100644 index 000000000..078f86ba3 --- /dev/null +++ b/src/components/Discover/RecentlyAddedSlider/index.tsx @@ -0,0 +1,53 @@ +import Slider from '@app/components/Slider'; +import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; +import { Permission, useUser } from '@app/hooks/useUser'; +import type { MediaResultsResponse } from '@server/interfaces/api/mediaInterfaces'; +import { defineMessages, useIntl } from 'react-intl'; +import useSWR from 'swr'; + +const messages = defineMessages({ + recentlyAdded: 'Recently Added', +}); + +const RecentlyAddedSlider = () => { + const intl = useIntl(); + const { hasPermission } = useUser(); + const { data: media, error: mediaError } = useSWR( + '/api/v1/media?filter=allavailable&take=20&sort=mediaAdded', + { revalidateOnMount: true } + ); + + if ( + (media && !media.results.length && !mediaError) || + !hasPermission([Permission.MANAGE_REQUESTS, Permission.RECENT_VIEW], { + type: 'or', + }) + ) { + return null; + } + + return ( + <> +
+
+ {intl.formatMessage(messages.recentlyAdded)} +
+
+ ( + + ))} + /> + + ); +}; + +export default RecentlyAddedSlider; diff --git a/src/components/Discover/TvGenreSlider/index.tsx b/src/components/Discover/TvGenreSlider/index.tsx index 820012c32..34dfd1c74 100644 --- a/src/components/Discover/TvGenreSlider/index.tsx +++ b/src/components/Discover/TvGenreSlider/index.tsx @@ -1,7 +1,7 @@ import { genreColorMap } from '@app/components/Discover/constants'; import GenreCard from '@app/components/GenreCard'; import Slider from '@app/components/Slider'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; import Link from 'next/link'; import React from 'react'; @@ -28,7 +28,7 @@ const TvGenreSlider = () => { {intl.formatMessage(messages.tvgenres)} - +
@@ -43,7 +43,7 @@ const TvGenreSlider = () => { image={`https://image.tmdb.org/t/p/w1280_filter(duotone,${ genreColorMap[genre.id] ?? genreColorMap[0] })${genre.backdrops[4]}`} - url={`/discover/tv/genre/${genre.id}`} + url={`/discover/tv?genre=${genre.id}`} /> ))} placeholder={} diff --git a/src/components/Discover/constants.ts b/src/components/Discover/constants.ts index b53c42c12..6fcbe43cb 100644 --- a/src/components/Discover/constants.ts +++ b/src/components/Discover/constants.ts @@ -1,3 +1,7 @@ +import type { ParsedUrlQuery } from 'querystring'; +import { defineMessages } from 'react-intl'; +import { z } from 'zod'; + type AvailableColors = | 'black' | 'red' @@ -61,3 +65,142 @@ export const genreColorMap: Record = { 10767: colorTones.lightgreen, // Talk 10768: colorTones.darkred, // War & Politics }; + +export const sliderTitles = defineMessages({ + recentrequests: 'Recent Requests', + popularmovies: 'Popular Movies', + populartv: 'Popular Series', + upcomingtv: 'Upcoming Series', + recentlyAdded: 'Recently Added', + upcoming: 'Upcoming Movies', + trending: 'Trending', + plexwatchlist: 'Your Plex Watchlist', + moviegenres: 'Movie Genres', + tvgenres: 'Series Genres', + studios: 'Studios', + networks: 'Networks', + tmdbmoviekeyword: 'TMDB Movie Keyword', + tmdbtvkeyword: 'TMDB Series Keyword', + tmdbmoviegenre: 'TMDB Movie Genre', + tmdbtvgenre: 'TMDB Series Genre', + tmdbnetwork: 'TMDB Network', + tmdbstudio: 'TMDB Studio', + tmdbsearch: 'TMDB Search', +}); + +export const QueryFilterOptions = z.object({ + sortBy: z.string().optional(), + primaryReleaseDateGte: z.string().optional(), + primaryReleaseDateLte: z.string().optional(), + firstAirDateGte: z.string().optional(), + firstAirDateLte: z.string().optional(), + studio: z.string().optional(), + genre: z.string().optional(), + keywords: z.string().optional(), + language: z.string().optional(), + withRuntimeGte: z.string().optional(), + withRuntimeLte: z.string().optional(), + voteAverageGte: z.string().optional(), + voteAverageLte: z.string().optional(), + watchRegion: z.string().optional(), + watchProviders: z.string().optional(), +}); + +export type FilterOptions = z.infer; + +export const prepareFilterValues = ( + inputValues: ParsedUrlQuery +): FilterOptions => { + const filterValues: FilterOptions = {}; + + const values = QueryFilterOptions.parse(inputValues); + + if (values.sortBy) { + filterValues.sortBy = values.sortBy; + } + + if (values.primaryReleaseDateGte) { + filterValues.primaryReleaseDateGte = values.primaryReleaseDateGte; + } + + if (values.primaryReleaseDateLte) { + filterValues.primaryReleaseDateLte = values.primaryReleaseDateLte; + } + + if (values.firstAirDateGte) { + filterValues.firstAirDateGte = values.firstAirDateGte; + } + + if (values.firstAirDateLte) { + filterValues.firstAirDateLte = values.firstAirDateLte; + } + + if (values.studio) { + filterValues.studio = values.studio; + } + + if (values.genre) { + filterValues.genre = values.genre; + } + + if (values.keywords) { + filterValues.keywords = values.keywords; + } + + if (values.language) { + filterValues.language = values.language; + } + + if (values.withRuntimeGte) { + filterValues.withRuntimeGte = values.withRuntimeGte; + } + + if (values.withRuntimeLte) { + filterValues.withRuntimeLte = values.withRuntimeLte; + } + + if (values.voteAverageGte) { + filterValues.voteAverageGte = values.voteAverageGte; + } + + if (values.voteAverageLte) { + filterValues.voteAverageLte = values.voteAverageLte; + } + + if (values.watchProviders) { + filterValues.watchProviders = values.watchProviders; + } + + if (values.watchRegion) { + filterValues.watchRegion = values.watchRegion; + } + + return filterValues; +}; + +export const countActiveFilters = (filterValues: FilterOptions): number => { + let totalCount = 0; + const clonedFilters = Object.assign({}, filterValues); + + if (clonedFilters.voteAverageGte || filterValues.voteAverageLte) { + totalCount += 1; + delete clonedFilters.voteAverageGte; + delete clonedFilters.voteAverageLte; + } + + if (clonedFilters.withRuntimeGte || filterValues.withRuntimeLte) { + totalCount += 1; + delete clonedFilters.withRuntimeGte; + delete clonedFilters.withRuntimeLte; + } + + if (clonedFilters.watchProviders) { + totalCount += 1; + delete clonedFilters.watchProviders; + delete clonedFilters.watchRegion; + } + + totalCount += Object.keys(clonedFilters).length; + + return totalCount; +}; diff --git a/src/components/Discover/index.tsx b/src/components/Discover/index.tsx index 24dc6fea5..b9071b424 100644 --- a/src/components/Discover/index.tsx +++ b/src/components/Discover/index.tsx @@ -1,189 +1,430 @@ +import Button from '@app/components/Common/Button'; +import ConfirmButton from '@app/components/Common/ConfirmButton'; +import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import PageTitle from '@app/components/Common/PageTitle'; +import Tooltip from '@app/components/Common/Tooltip'; +import { sliderTitles } from '@app/components/Discover/constants'; +import CreateSlider from '@app/components/Discover/CreateSlider'; +import DiscoverSliderEdit from '@app/components/Discover/DiscoverSliderEdit'; import MovieGenreSlider from '@app/components/Discover/MovieGenreSlider'; import NetworkSlider from '@app/components/Discover/NetworkSlider'; +import PlexWatchlistSlider from '@app/components/Discover/PlexWatchlistSlider'; +import RecentlyAddedSlider from '@app/components/Discover/RecentlyAddedSlider'; +import RecentRequestsSlider from '@app/components/Discover/RecentRequestsSlider'; import StudioSlider from '@app/components/Discover/StudioSlider'; import TvGenreSlider from '@app/components/Discover/TvGenreSlider'; import MediaSlider from '@app/components/MediaSlider'; -import RequestCard from '@app/components/RequestCard'; -import Slider from '@app/components/Slider'; -import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; -import { Permission, UserType, useUser } from '@app/hooks/useUser'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; -import type { WatchlistItem } from '@server/interfaces/api/discoverInterfaces'; -import type { MediaResultsResponse } from '@server/interfaces/api/mediaInterfaces'; -import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; -import Link from 'next/link'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; +import { Permission, useUser } from '@app/hooks/useUser'; +import globalMessages from '@app/i18n/globalMessages'; +import { Transition } from '@headlessui/react'; +import { + ArrowDownOnSquareIcon, + ArrowPathIcon, + ArrowUturnLeftIcon, + PencilIcon, + PlusIcon, +} from '@heroicons/react/24/solid'; +import { DiscoverSliderType } from '@server/constants/discover'; +import type DiscoverSlider from '@server/entity/DiscoverSlider'; +import axios from 'axios'; +import { useEffect, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; +import { useToasts } from 'react-toast-notifications'; import useSWR from 'swr'; const messages = defineMessages({ discover: 'Discover', - recentrequests: 'Recent Requests', - popularmovies: 'Popular Movies', - populartv: 'Popular Series', - upcomingtv: 'Upcoming Series', - recentlyAdded: 'Recently Added', - upcoming: 'Upcoming Movies', - trending: 'Trending', - plexwatchlist: 'Your Plex Watchlist', emptywatchlist: 'Media added to your Plex Watchlist will appear here.', + resettodefault: 'Reset to Default', + resetwarning: + 'Reset all sliders to default. This will also delete any custom sliders!', + updatesuccess: 'Updated discover customization settings.', + updatefailed: + 'Something went wrong updating the discover customization settings.', + resetsuccess: 'Sucessfully reset discover customization settings.', + resetfailed: + 'Something went wrong resetting the discover customization settings.', + customizediscover: 'Customize Discover', + stopediting: 'Stop Editing', + createnewslider: 'Create New Slider', }); const Discover = () => { const intl = useIntl(); - const { user, hasPermission } = useUser(); + const { hasPermission } = useUser(); + const { addToast } = useToasts(); + const { + data: discoverData, + error: discoverError, + mutate, + } = useSWR('/api/v1/settings/discover'); + const [sliders, setSliders] = useState[]>([]); + const [isEditing, setIsEditing] = useState(false); - const { data: media, error: mediaError } = useSWR( - '/api/v1/media?filter=allavailable&take=20&sort=mediaAdded', - { revalidateOnMount: true } - ); + // We need to sync the state here so that we can modify the changes locally without commiting + // anything to the server until the user decides to save the changes + useEffect(() => { + if (discoverData && !isEditing) { + setSliders(discoverData); + } + }, [discoverData, isEditing]); - const { data: requests, error: requestError } = - useSWR( - '/api/v1/request?filter=all&take=10&sort=modified&skip=0', - { - revalidateOnMount: true, - } - ); + const hasChanged = () => !Object.is(discoverData, sliders); - const { data: watchlistItems, error: watchlistError } = useSWR<{ - page: number; - totalPages: number; - totalResults: number; - results: WatchlistItem[]; - }>(user?.userType === UserType.PLEX ? '/api/v1/discover/watchlist' : null, { - revalidateOnMount: true, - }); + const updateSliders = async () => { + try { + await axios.post('/api/v1/settings/discover', sliders); + + addToast(intl.formatMessage(messages.updatesuccess), { + appearance: 'success', + autoDismiss: true, + }); + setIsEditing(false); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.updatefailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const resetSliders = async () => { + try { + await axios.get('/api/v1/settings/discover/reset'); + + addToast(intl.formatMessage(messages.resetsuccess), { + appearance: 'success', + autoDismiss: true, + }); + setIsEditing(false); + mutate(); + } catch (e) { + addToast(intl.formatMessage(messages.resetfailed), { + appearance: 'error', + autoDismiss: true, + }); + } + }; + + const now = new Date(); + const offset = now.getTimezoneOffset(); + const upcomingDate = new Date(now.getTime() - offset * 60 * 1000) + .toISOString() + .split('T')[0]; + + if (!discoverData && !discoverError) { + return ; + } return ( <> - {(!media || !!media.results.length) && - !mediaError && - hasPermission([Permission.MANAGE_REQUESTS, Permission.RECENT_VIEW], { - type: 'or', - }) && ( - <> -
-
- {intl.formatMessage(messages.recentlyAdded)} + {hasPermission(Permission.ADMIN) && ( + <> + {isEditing && ( +
+
+ + + {intl.formatMessage(messages.createnewslider)} + +
+
+ { + const newSliders = await mutate(); + + if (newSliders) { + setSliders(newSliders); + } + }} + />
- ( - - ))} - /> - - )} - {(!requests || !!requests.results.length) && !requestError && ( - <> - - ( - - ))} - placeholder={} - /> + )} + + + + + + + resetSliders()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full sm:w-auto" + > + + {intl.formatMessage(messages.resettodefault)} + + + + )} - {user?.userType === UserType.PLEX && - (!watchlistItems || - !!watchlistItems.results.length || - user.settings?.watchlistSyncMovies || - user.settings?.watchlistSyncTv) && - !watchlistError && ( - <> - - ( - - {msg} - - ), - })} - items={watchlistItems?.results.map((item) => ( - - ))} - /> - - )} - - - - - - - - - + {(isEditing ? sliders : discoverData)?.map((slider, index) => { + let sliderComponent: React.ReactNode; + + switch (slider.type) { + case DiscoverSliderType.RECENTLY_ADDED: + sliderComponent = ; + break; + case DiscoverSliderType.RECENT_REQUESTS: + sliderComponent = ; + break; + case DiscoverSliderType.PLEX_WATCHLIST: + sliderComponent = ; + break; + case DiscoverSliderType.TRENDING: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.POPULAR_MOVIES: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.MOVIE_GENRES: + sliderComponent = ; + break; + case DiscoverSliderType.UPCOMING_MOVIES: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.STUDIOS: + sliderComponent = ; + break; + case DiscoverSliderType.POPULAR_TV: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TV_GENRES: + sliderComponent = ; + break; + case DiscoverSliderType.UPCOMING_TV: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.NETWORKS: + sliderComponent = ; + break; + case DiscoverSliderType.TMDB_MOVIE_KEYWORD: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_TV_KEYWORD: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_MOVIE_GENRE: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_TV_GENRE: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_STUDIO: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_NETWORK: + sliderComponent = ( + + ); + break; + case DiscoverSliderType.TMDB_SEARCH: + sliderComponent = ( + + ); + break; + } + + if (isEditing) { + return ( + { + const newSliders = await mutate(); + + if (newSliders) { + setSliders(newSliders); + } + }} + onEnable={() => { + const tempSliders = sliders.slice(); + tempSliders[index].enabled = !tempSliders[index].enabled; + setSliders(tempSliders); + }} + onPositionUpdate={(updatedItemId, position, hasClickedArrows) => { + const originalPosition = sliders.findIndex( + (item) => item.id === updatedItemId + ); + const originalItem = sliders[originalPosition]; + + const tempSliders = sliders.slice(); + + tempSliders.splice(originalPosition, 1); + hasClickedArrows + ? tempSliders.splice( + position === 'Above' ? index - 1 : index + 1, + 0, + originalItem + ) + : tempSliders.splice( + position === 'Above' && index > originalPosition + ? Math.max(index - 1, 0) + : index, + 0, + originalItem + ); + + setSliders(tempSliders); + }} + disableUpButton={index === 0} + disableDownButton={index === sliders.length - 1} + > + {sliderComponent} + + ); + } + + if (!slider.enabled) { + return null; + } + + return ( +
{sliderComponent}
+ ); + })} ); }; diff --git a/src/components/DownloadBlock/index.tsx b/src/components/DownloadBlock/index.tsx index 0597e3a6a..6bb04b54f 100644 --- a/src/components/DownloadBlock/index.tsx +++ b/src/components/DownloadBlock/index.tsx @@ -1,23 +1,39 @@ import Badge from '@app/components/Common/Badge'; +import { Permission, useUser } from '@app/hooks/useUser'; import type { DownloadingItem } from '@server/lib/downloadtracker'; import { defineMessages, FormattedRelativeTime, useIntl } from 'react-intl'; const messages = defineMessages({ estimatedtime: 'Estimated {time}', + formattedTitle: '{title}: Season {seasonNumber} Episode {episodeNumber}', }); interface DownloadBlockProps { downloadItem: DownloadingItem; is4k?: boolean; + title?: string; } -const DownloadBlock = ({ downloadItem, is4k = false }: DownloadBlockProps) => { +const DownloadBlock = ({ + downloadItem, + is4k = false, + title, +}: DownloadBlockProps) => { const intl = useIntl(); + const { hasPermission } = useUser(); return (
- {downloadItem.title} + {hasPermission(Permission.ADMIN) + ? downloadItem.title + : downloadItem.episode + ? intl.formatMessage(messages.formattedTitle, { + title, + seasonNumber: downloadItem?.episode?.seasonNumber, + episodeNumber: downloadItem?.episode?.episodeNumber, + }) + : title}
{ + const { data, error } = useSWR(`/api/v1/genres/${type}`); + + if (!data && !error) { + return ( + + + + ); + } + + const genre = data?.find((genre) => genre.id === genreId); + + return }>{genre?.name}; +}; + +export default GenreTag; diff --git a/src/components/IssueBlock/index.tsx b/src/components/IssueBlock/index.tsx index c337c721c..d4cb9d0e0 100644 --- a/src/components/IssueBlock/index.tsx +++ b/src/components/IssueBlock/index.tsx @@ -3,10 +3,10 @@ import { issueOptions } from '@app/components/IssueModal/constants'; import { useUser } from '@app/hooks/useUser'; import { CalendarIcon, - ExclamationIcon, + ExclamationTriangleIcon, EyeIcon, UserIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; import type Issue from '@server/entity/Issue'; import Link from 'next/link'; import { useIntl } from 'react-intl'; @@ -31,7 +31,7 @@ const IssueBlock = ({ issue }: IssueBlockProps) => {
- + {intl.formatMessage(issueOption.name)} diff --git a/src/components/IssueDetails/IssueComment/index.tsx b/src/components/IssueDetails/IssueComment/index.tsx index b941c9f31..e1e265b0e 100644 --- a/src/components/IssueDetails/IssueComment/index.tsx +++ b/src/components/IssueDetails/IssueComment/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import Modal from '@app/components/Common/Modal'; import { Permission, useUser } from '@app/hooks/useUser'; import { Menu, Transition } from '@headlessui/react'; -import { DotsVerticalIcon } from '@heroicons/react/solid'; +import { EllipsisVerticalIcon } from '@heroicons/react/24/solid'; import type { default as IssueCommentType } from '@server/entity/IssueComment'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -104,7 +104,7 @@ const IssueComment = ({
Open options -
+
); }; diff --git a/src/components/IssueList/IssueItem/index.tsx b/src/components/IssueList/IssueItem/index.tsx index 00e486316..8a20b46a3 100644 --- a/src/components/IssueList/IssueItem/index.tsx +++ b/src/components/IssueList/IssueItem/index.tsx @@ -4,7 +4,7 @@ import CachedImage from '@app/components/Common/CachedImage'; import { issueOptions } from '@app/components/IssueModal/constants'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { EyeIcon } from '@heroicons/react/solid'; +import { EyeIcon } from '@heroicons/react/24/solid'; import { IssueStatus } from '@server/constants/issue'; import { MediaType } from '@server/constants/media'; import type Issue from '@server/entity/Issue'; diff --git a/src/components/IssueList/index.tsx b/src/components/IssueList/index.tsx index 0c2ee3a9c..fe68ed660 100644 --- a/src/components/IssueList/index.tsx +++ b/src/components/IssueList/index.tsx @@ -6,11 +6,11 @@ import IssueItem from '@app/components/IssueList/IssueItem'; import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; import globalMessages from '@app/i18n/globalMessages'; import { + BarsArrowDownIcon, ChevronLeftIcon, ChevronRightIcon, - FilterIcon, - SortDescendingIcon, -} from '@heroicons/react/solid'; + FunnelIcon, +} from '@heroicons/react/24/solid'; import type { IssueResultsResponse } from '@server/interfaces/api/issueInterfaces'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; @@ -98,7 +98,7 @@ const IssueList = () => {
- + , diff --git a/src/components/KeywordTag/index.tsx b/src/components/KeywordTag/index.tsx new file mode 100644 index 000000000..8d5065bbd --- /dev/null +++ b/src/components/KeywordTag/index.tsx @@ -0,0 +1,24 @@ +import Spinner from '@app/assets/spinner.svg'; +import Tag from '@app/components/Common/Tag'; +import type { Keyword } from '@server/models/common'; +import useSWR from 'swr'; + +type KeywordTagProps = { + keywordId: number; +}; + +const KeywordTag = ({ keywordId }: KeywordTagProps) => { + const { data, error } = useSWR(`/api/v1/keyword/${keywordId}`); + + if (!data && !error) { + return ( + + + + ); + } + + return {data?.name}; +}; + +export default KeywordTag; diff --git a/src/components/Layout/LanguagePicker/index.tsx b/src/components/Layout/LanguagePicker/index.tsx index 0eec6b7d3..a8ebda5a7 100644 --- a/src/components/Layout/LanguagePicker/index.tsx +++ b/src/components/Layout/LanguagePicker/index.tsx @@ -3,7 +3,7 @@ import { availableLanguages } from '@app/context/LanguageContext'; import useClickOutside from '@app/hooks/useClickOutside'; import useLocale from '@app/hooks/useLocale'; import { Transition } from '@headlessui/react'; -import { TranslateIcon } from '@heroicons/react/solid'; +import { LanguageIcon } from '@heroicons/react/24/solid'; import { useRef, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; @@ -28,7 +28,7 @@ const LanguagePicker = () => { aria-label="Language Picker" onClick={() => setDropdownOpen(true)} > - +
{ + const ref = useRef(null); + const intl = useIntl(); + const [isOpen, setIsOpen] = useState(false); + const { hasPermission } = useUser(); + const router = useRouter(); + useClickOutside(ref, () => { + setTimeout(() => { + if (isOpen) { + setIsOpen(false); + } + }, 150); + }); + + const toggle = () => setIsOpen(!isOpen); + + const menuLinks: MenuLink[] = [ + { + href: '/', + content: intl.formatMessage(menuMessages.dashboard), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/(discover\/?)?$/, + }, + { + href: '/discover/movies', + content: intl.formatMessage(menuMessages.browsemovies), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/discover\/movies$/, + }, + { + href: '/discover/tv', + content: intl.formatMessage(menuMessages.browsetv), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/discover\/tv$/, + }, + { + href: '/requests', + content: intl.formatMessage(menuMessages.requests), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/requests/, + }, + { + href: '/issues', + content: intl.formatMessage(menuMessages.issues), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/issues/, + requiredPermission: [ + Permission.MANAGE_ISSUES, + Permission.CREATE_ISSUES, + Permission.VIEW_ISSUES, + ], + permissionType: 'or', + }, + { + href: '/users', + content: intl.formatMessage(menuMessages.users), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/users/, + requiredPermission: Permission.MANAGE_USERS, + dataTestId: 'sidebar-menu-users', + }, + { + href: '/settings', + content: intl.formatMessage(menuMessages.settings), + svgIcon: , + svgIconSelected: , + activeRegExp: /^\/settings/, + requiredPermission: Permission.ADMIN, + dataTestId: 'sidebar-menu-settings', + }, + ]; + + const filteredLinks = menuLinks.filter( + (link) => + !link.requiredPermission || + hasPermission(link.requiredPermission, { + type: link.permissionType ?? 'and', + }) + ); + + return ( +
+ + {filteredLinks.map((link) => { + const isActive = router.pathname.match(link.activeRegExp); + return ( + + { + if (e.key === 'Enter') { + setIsOpen(false); + } + }} + onClick={() => setIsOpen(false)} + role="button" + tabIndex={0} + > + {cloneElement(isActive ? link.svgIconSelected : link.svgIcon, { + className: 'h-5 w-5', + })} + {link.content} + + + ); + })} + +
+
+ {filteredLinks + .slice(0, filteredLinks.length === 5 ? 5 : 4) + .map((link) => { + const isActive = + router.pathname.match(link.activeRegExp) && !isOpen; + return ( + + + {cloneElement( + isActive ? link.svgIconSelected : link.svgIcon, + { + className: 'h-6 w-6', + } + )} + + + ); + })} + {filteredLinks.length > 4 && filteredLinks.length !== 5 && ( + + )} +
+
+
+ ); +}; + +export default MobileMenu; diff --git a/src/components/Layout/Notifications/index.tsx b/src/components/Layout/Notifications/index.tsx index eed2697eb..5a86ef437 100644 --- a/src/components/Layout/Notifications/index.tsx +++ b/src/components/Layout/Notifications/index.tsx @@ -1,4 +1,4 @@ -import { BellIcon } from '@heroicons/react/outline'; +import { BellIcon } from '@heroicons/react/24/outline'; const Notifications = () => { return ( diff --git a/src/components/Layout/SearchInput/index.tsx b/src/components/Layout/SearchInput/index.tsx index 3c971e37e..5c2dc1679 100644 --- a/src/components/Layout/SearchInput/index.tsx +++ b/src/components/Layout/SearchInput/index.tsx @@ -1,6 +1,6 @@ import useSearchInput from '@app/hooks/useSearchInput'; -import { XCircleIcon } from '@heroicons/react/outline'; -import { SearchIcon } from '@heroicons/react/solid'; +import { XCircleIcon } from '@heroicons/react/24/outline'; +import { MagnifyingGlassIcon } from '@heroicons/react/24/solid'; import { defineMessages, useIntl } from 'react-intl'; const messages = defineMessages({ @@ -18,7 +18,7 @@ const SearchInput = () => {
- +
, - activeRegExp: /^\/(discover\/?(movies|tv)?)?$/, + activeRegExp: /^\/(discover\/?)?$/, + }, + { + href: '/discover/movies', + messagesKey: 'browsemovies', + svgIcon: , + activeRegExp: /^\/discover\/movies$/, + }, + { + href: '/discover/tv', + messagesKey: 'browsetv', + svgIcon: , + activeRegExp: /^\/discover\/tv$/, }, { href: '/requests', @@ -57,7 +73,7 @@ const SidebarLinks: SidebarLinkProps[] = [ href: '/issues', messagesKey: 'issues', svgIcon: ( - + ), activeRegExp: /^\/issues/, requiredPermission: [ @@ -121,13 +137,13 @@ const Sidebar = ({ open, setClosed }: SidebarProps) => { > <>
-
+
{ > {sidebarLink.svgIcon} {intl.formatMessage( - messages[sidebarLink.messagesKey] + menuMessages[sidebarLink.messagesKey] )} @@ -242,7 +258,9 @@ const Sidebar = ({ open, setClosed }: SidebarProps) => { data-testid={sidebarLink.dataTestId} > {sidebarLink.svgIcon} - {intl.formatMessage(messages[sidebarLink.messagesKey])} + {intl.formatMessage( + menuMessages[sidebarLink.messagesKey] + )} ); diff --git a/src/components/Layout/UserDropdown/index.tsx b/src/components/Layout/UserDropdown/index.tsx index 57481b719..c21a9c506 100644 --- a/src/components/Layout/UserDropdown/index.tsx +++ b/src/components/Layout/UserDropdown/index.tsx @@ -1,8 +1,11 @@ import MiniQuotaDisplay from '@app/components/Layout/UserDropdown/MiniQuotaDisplay'; import { useUser } from '@app/hooks/useUser'; import { Menu, Transition } from '@headlessui/react'; -import { ClockIcon, LogoutIcon } from '@heroicons/react/outline'; -import { CogIcon, UserIcon } from '@heroicons/react/solid'; +import { + ArrowRightOnRectangleIcon, + ClockIcon, +} from '@heroicons/react/24/outline'; +import { CogIcon, UserIcon } from '@heroicons/react/24/solid'; import axios from 'axios'; import type { LinkProps } from 'next/link'; import Link from 'next/link'; @@ -147,7 +150,7 @@ const UserDropdown = () => { }`} onClick={() => logout()} > - + {intl.formatMessage(messages.signout)} )} diff --git a/src/components/Layout/UserWarnings/index.tsx b/src/components/Layout/UserWarnings/index.tsx index ec32ecc6b..592758c60 100644 --- a/src/components/Layout/UserWarnings/index.tsx +++ b/src/components/Layout/UserWarnings/index.tsx @@ -1,5 +1,5 @@ import { useUser } from '@app/hooks/useUser'; -import { ExclamationIcon } from '@heroicons/react/outline'; +import { ExclamationTriangleIcon } from '@heroicons/react/24/outline'; import Link from 'next/link'; import type React from 'react'; import { defineMessages, useIntl } from 'react-intl'; @@ -49,7 +49,7 @@ const UserWarnings: React.FC = ({ onClick }) => { tabIndex={0} className="mx-2 mb-2 flex items-center rounded-lg bg-yellow-500 p-2 text-xs text-white ring-1 ring-gray-700 transition duration-300 hover:bg-yellow-400" > - +
{warningTitle} {warningText} diff --git a/src/components/Layout/VersionStatus/index.tsx b/src/components/Layout/VersionStatus/index.tsx index 515ff20e9..e755750ea 100644 --- a/src/components/Layout/VersionStatus/index.tsx +++ b/src/components/Layout/VersionStatus/index.tsx @@ -1,9 +1,9 @@ import { - ArrowCircleUpIcon, + ArrowUpCircleIcon, BeakerIcon, - CodeIcon, + CodeBracketIcon, ServerIcon, -} from '@heroicons/react/outline'; +} from '@heroicons/react/24/outline'; import type { StatusResponse } from '@server/interfaces/api/settingsInterfaces'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -56,7 +56,7 @@ const VersionStatus = ({ onClick }: VersionStatusProps) => { }`} > {data.commitTag === 'local' ? ( - + ) : data.version.startsWith('develop-') ? ( ) : ( @@ -80,7 +80,7 @@ const VersionStatus = ({ onClick }: VersionStatusProps) => { )}
- {data.updateAvailable && } + {data.updateAvailable && } ); diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx index 2e63441ef..f18e879af 100644 --- a/src/components/Layout/index.tsx +++ b/src/components/Layout/index.tsx @@ -1,3 +1,4 @@ +import MobileMenu from '@app/components/Layout/MobileMenu'; import SearchInput from '@app/components/Layout/SearchInput'; import Sidebar from '@app/components/Layout/Sidebar'; import UserDropdown from '@app/components/Layout/UserDropdown'; @@ -6,8 +7,7 @@ import type { AvailableLocale } from '@app/context/LanguageContext'; import useLocale from '@app/hooks/useLocale'; import useSettings from '@app/hooks/useSettings'; import { useUser } from '@app/hooks/useUser'; -import { MenuAlt2Icon } from '@heroicons/react/outline'; -import { ArrowLeftIcon } from '@heroicons/react/solid'; +import { ArrowLeftIcon, Bars3BottomLeftIcon } from '@heroicons/react/24/solid'; import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; @@ -57,6 +57,9 @@ const Layout = ({ children }: LayoutProps) => {
setSidebarOpen(false)} /> +
+ +
@@ -69,17 +72,17 @@ const Layout = ({ children }: LayoutProps) => { WebkitBackdropFilter: isScrolled ? 'blur(5px)' : undefined, }} > - -
+
+
- +
{intl.formatMessage(messages.seemore)}
diff --git a/src/components/MediaSlider/index.tsx b/src/components/MediaSlider/index.tsx index 9a9bc054c..54b5cc801 100644 --- a/src/components/MediaSlider/index.tsx +++ b/src/components/MediaSlider/index.tsx @@ -3,7 +3,7 @@ import PersonCard from '@app/components/PersonCard'; import Slider from '@app/components/Slider'; import TitleCard from '@app/components/TitleCard'; import useSettings from '@app/hooks/useSettings'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import { MediaStatus } from '@server/constants/media'; import type { MovieResult, @@ -27,14 +27,18 @@ interface MediaSliderProps { linkUrl?: string; sliderKey: string; hideWhenEmpty?: boolean; + extraParams?: string; + onNewTitles?: (titleCount: number) => void; } const MediaSlider = ({ title, url, linkUrl, + extraParams, sliderKey, hideWhenEmpty = false, + onNewTitles, }: MediaSliderProps) => { const settings = useSettings(); const { data, error, setSize, size } = useSWRInfinite( @@ -43,7 +47,9 @@ const MediaSlider = ({ return null; } - return `${url}?page=${pageIndex + 1}`; + return `${url}?page=${pageIndex + 1}${ + extraParams ? `&${extraParams}` : '' + }`; }, { initialSize: 2, @@ -72,7 +78,13 @@ const MediaSlider = ({ ) { setSize(size + 1); } - }, [titles, setSize, size, data]); + + if (onNewTitles) { + // We aren't reporting all titles. We just want to know if there are any titles + // at all for our purposes. + onNewTitles(titles.length); + } + }, [titles, setSize, size, data, onNewTitles]); if (hideWhenEmpty && (data?.[0].results ?? []).length === 0) { return null; @@ -137,9 +149,9 @@ const MediaSlider = ({
{linkUrl ? ( - - {title} - + + {title} + ) : ( diff --git a/src/components/MovieDetails/index.tsx b/src/components/MovieDetails/index.tsx index d963585bc..235f5e905 100644 --- a/src/components/MovieDetails/index.tsx +++ b/src/components/MovieDetails/index.tsx @@ -9,6 +9,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import PageTitle from '@app/components/Common/PageTitle'; import type { PlayButtonLink } from '@app/components/Common/PlayButton'; import PlayButton from '@app/components/Common/PlayButton'; +import Tag from '@app/components/Common/Tag'; import Tooltip from '@app/components/Common/Tooltip'; import ExternalLinkBlock from '@app/components/ExternalLinkBlock'; import IssueModal from '@app/components/IssueModal'; @@ -18,6 +19,7 @@ import PersonCard from '@app/components/PersonCard'; import RequestButton from '@app/components/RequestButton'; import Slider from '@app/components/Slider'; import StatusBadge from '@app/components/StatusBadge'; +import useDeepLinks from '@app/hooks/useDeepLinks'; import useLocale from '@app/hooks/useLocale'; import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; @@ -25,18 +27,18 @@ import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; import { sortCrewPriority } from '@app/utils/creditHelpers'; import { - ArrowCircleRightIcon, + ArrowRightCircleIcon, CloudIcon, CogIcon, - ExclamationIcon, + ExclamationTriangleIcon, FilmIcon, PlayIcon, TicketIcon, -} from '@heroicons/react/outline'; +} from '@heroicons/react/24/outline'; import { ChevronDoubleDownIcon, ChevronDoubleUpIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; import type { RTRating } from '@server/api/rottentomatoes'; import { IssueStatus } from '@server/constants/issue'; import { MediaStatus } from '@server/constants/media'; @@ -129,31 +131,12 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { setShowManager(router.query.manage == '1' ? true : false); }, [router.query.manage]); - const [plexUrl, setPlexUrl] = useState(data?.mediaInfo?.mediaUrl); - const [plexUrl4k, setPlexUrl4k] = useState(data?.mediaInfo?.mediaUrl4k); - - useEffect(() => { - if (data) { - if ( - settings.currentSettings.mediaServerType === MediaServerType.PLEX && - (/iPad|iPhone|iPod/.test(navigator.userAgent) || - (navigator.userAgent === 'MacIntel' && navigator.maxTouchPoints > 1)) - ) { - setPlexUrl(data.mediaInfo?.iOSPlexUrl); - setPlexUrl4k(data.mediaInfo?.iOSPlexUrl4k); - } else { - setPlexUrl(data.mediaInfo?.mediaUrl); - setPlexUrl4k(data.mediaInfo?.mediaUrl4k); - } - } - }, [ - data, - data?.mediaInfo?.iOSPlexUrl, - data?.mediaInfo?.iOSPlexUrl4k, - data?.mediaInfo?.mediaUrl, - data?.mediaInfo?.mediaUrl4k, - settings.currentSettings.mediaServerType, - ]); + const { mediaUrl: plexUrl, mediaUrl4k: plexUrl4k } = useDeepLinks({ + mediaUrl: data?.mediaInfo?.mediaUrl, + mediaUrl4k: data?.mediaInfo?.mediaUrl4k, + iOSPlexUrl: data?.mediaInfo?.iOSPlexUrl, + iOSPlexUrl4k: data?.mediaInfo?.iOSPlexUrl4k, + }); if (!data && !error) { return ; @@ -246,7 +229,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { movieAttributes.push( data.genres .map((g) => ( - + {g.name} )) @@ -353,6 +336,8 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => {
0} tmdbId={data.mediaInfo?.tmdbId} mediaType="movie" @@ -372,13 +357,15 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { ) && ( 0 } tmdbId={data.mediaInfo?.tmdbId} mediaType="movie" - plexUrl={plexUrl} + plexUrl={plexUrl4k} serviceUrl={data.mediaInfo?.serviceUrl4k} /> )} @@ -433,7 +420,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { onClick={() => setShowIssueModal(true)} className="ml-2 first:ml-0" > - + )} @@ -491,12 +478,26 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { {intl.formatMessage(messages.viewfullcrew)} - +
)} + {data.keywords.length > 0 && ( +
+ {data.keywords.map((keyword) => ( + + + {keyword.name} + + + ))} +
+ )}
{data.collection && ( @@ -650,6 +651,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', })} @@ -669,6 +671,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', })}
@@ -831,7 +834,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { {intl.formatMessage(messages.cast)} - +
@@ -865,7 +868,7 @@ const MovieDetails = ({ movie }: MovieDetailsProps) => { linkUrl={`/movie/${data.id}/similar`} hideWhenEmpty /> -
+
); }; diff --git a/src/components/PersonCard/index.tsx b/src/components/PersonCard/index.tsx index c2b7b6422..3ca8c1798 100644 --- a/src/components/PersonCard/index.tsx +++ b/src/components/PersonCard/index.tsx @@ -1,5 +1,5 @@ import CachedImage from '@app/components/Common/CachedImage'; -import { UserCircleIcon } from '@heroicons/react/solid'; +import { UserCircleIcon } from '@heroicons/react/24/solid'; import Link from 'next/link'; import { useState } from 'react'; diff --git a/src/components/PersonDetails/index.tsx b/src/components/PersonDetails/index.tsx index 9c8173adc..f4d489d52 100644 --- a/src/components/PersonDetails/index.tsx +++ b/src/components/PersonDetails/index.tsx @@ -91,11 +91,13 @@ const PersonDetails = () => { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', }), deathdate: intl.formatDate(data.deathday, { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', }), }) ); @@ -106,6 +108,7 @@ const PersonDetails = () => { year: 'numeric', month: 'long', day: 'numeric', + timeZone: 'UTC', }), }) ); diff --git a/src/components/PlexLoginButton/index.tsx b/src/components/PlexLoginButton/index.tsx index c89f10213..363231733 100644 --- a/src/components/PlexLoginButton/index.tsx +++ b/src/components/PlexLoginButton/index.tsx @@ -1,6 +1,6 @@ import globalMessages from '@app/i18n/globalMessages'; import PlexOAuth from '@app/utils/plex'; -import { LoginIcon } from '@heroicons/react/outline'; +import { ArrowLeftOnRectangleIcon } from '@heroicons/react/24/outline'; import { useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; @@ -49,7 +49,7 @@ const PlexLoginButton = ({ disabled={loading || isProcessing} className="plex-button" > - + {loading ? intl.formatMessage(globalMessages.loading) diff --git a/src/components/PullToRefresh/index.tsx b/src/components/PullToRefresh/index.tsx index 14bdfbda4..68939c486 100644 --- a/src/components/PullToRefresh/index.tsx +++ b/src/components/PullToRefresh/index.tsx @@ -1,34 +1,43 @@ -import { RefreshIcon } from '@heroicons/react/outline'; -import Router from 'next/router'; +import { ArrowPathIcon } from '@heroicons/react/24/outline'; +import { useRouter } from 'next/router'; import PR from 'pulltorefreshjs'; import { useEffect } from 'react'; import ReactDOMServer from 'react-dom/server'; -const PullToRefresh: React.FC = () => { +const PullToRefresh = () => { + const router = useRouter(); + useEffect(() => { PR.init({ mainElement: '#pull-to-refresh', onRefresh() { - Router.reload(); + router.reload(); }, iconArrow: ReactDOMServer.renderToString( - +
+ +
), iconRefreshing: ReactDOMServer.renderToString( - + > + +
), instructionsPullToRefresh: ReactDOMServer.renderToString(
), instructionsReleaseToRefresh: ReactDOMServer.renderToString(
), instructionsRefreshing: ReactDOMServer.renderToString(
), - distReload: 55, + distReload: 60, + distIgnore: 15, + shouldPullToRefresh: () => + !window.scrollY && document.body.style.overflow !== 'hidden', }); return () => { PR.destroyAll(); }; - }, []); + }, [router]); return
; }; diff --git a/src/components/RegionSelector/index.tsx b/src/components/RegionSelector/index.tsx index 5a714c742..d0a0113eb 100644 --- a/src/components/RegionSelector/index.tsx +++ b/src/components/RegionSelector/index.tsx @@ -1,6 +1,6 @@ import useSettings from '@app/hooks/useSettings'; import { Listbox, Transition } from '@headlessui/react'; -import { CheckIcon, ChevronDownIcon } from '@heroicons/react/solid'; +import { CheckIcon, ChevronDownIcon } from '@heroicons/react/24/solid'; import type { Region } from '@server/lib/settings'; import { hasFlag } from 'country-flag-icons'; import 'country-flag-icons/3x2/flags.css'; @@ -18,6 +18,8 @@ interface RegionSelectorProps { value: string; name: string; isUserSetting?: boolean; + disableAll?: boolean; + watchProviders?: boolean; onChange?: (fieldName: string, region: string) => void; } @@ -25,11 +27,15 @@ const RegionSelector = ({ name, value, isUserSetting = false, + disableAll = false, + watchProviders = false, onChange, }: RegionSelectorProps) => { const { currentSettings } = useSettings(); const intl = useIntl(); - const { data: regions } = useSWR('/api/v1/regions'); + const { data: regions } = useSWR( + watchProviders ? '/api/v1/watchproviders/regions' : '/api/v1/regions' + ); const [selectedRegion, setSelectedRegion] = useState(null); const allRegion: Region = useMemo( @@ -70,8 +76,8 @@ const RegionSelector = ({ }, [value, regions, allRegion]); useEffect(() => { - if (onChange && regions) { - onChange(name, selectedRegion?.iso_3166_1 ?? ''); + if (onChange && regions && selectedRegion) { + onChange(name, selectedRegion.iso_3166_1); } }, [onChange, selectedRegion, name, regions]); @@ -166,32 +172,34 @@ const RegionSelector = ({ )} )} - - {({ selected, active }) => ( -
- + {({ selected, active }) => ( +
- {intl.formatMessage(messages.regionDefault)} - - {selected && ( - + {intl.formatMessage(messages.regionDefault)} - )} -
- )} - + {selected && ( + + + + )} +
+ )} +
+ )} {sortedRegions?.map((region) => ( {({ selected, active }) => ( diff --git a/src/components/RequestBlock/index.tsx b/src/components/RequestBlock/index.tsx index e6a0c02bb..ca8cb5fa6 100644 --- a/src/components/RequestBlock/index.tsx +++ b/src/components/RequestBlock/index.tsx @@ -12,8 +12,8 @@ import { PencilIcon, TrashIcon, UserIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import axios from 'axios'; @@ -149,7 +149,7 @@ const RequestBlock = ({ request, onUpdate }: RequestBlockProps) => { onClick={() => updateRequest('decline')} disabled={isUpdating} > - + diff --git a/src/components/RequestButton/index.tsx b/src/components/RequestButton/index.tsx index f71589448..56e91810b 100644 --- a/src/components/RequestButton/index.tsx +++ b/src/components/RequestButton/index.tsx @@ -3,12 +3,12 @@ import RequestModal from '@app/components/RequestModal'; import useSettings from '@app/hooks/useSettings'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { DownloadIcon } from '@heroicons/react/outline'; +import { ArrowDownTrayIcon } from '@heroicons/react/24/outline'; import { CheckIcon, InformationCircleIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus, MediaStatus } from '@server/constants/media'; import type Media from '@server/entity/Media'; import type { MediaRequest } from '@server/entity/MediaRequest'; @@ -158,7 +158,7 @@ const RequestButton = ({ action: () => { modifyRequest(activeRequest, 'decline'); }, - svg: , + svg: , } ); } else if ( @@ -186,7 +186,7 @@ const RequestButton = ({ action: () => { modifyRequests(activeRequests, 'decline'); }, - svg: , + svg: , } ); } @@ -228,7 +228,7 @@ const RequestButton = ({ action: () => { modifyRequest(active4kRequest, 'decline'); }, - svg: , + svg: , } ); } else if ( @@ -256,7 +256,7 @@ const RequestButton = ({ action: () => { modifyRequests(active4kRequests, 'decline'); }, - svg: , + svg: , } ); } @@ -282,7 +282,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequestModal(true); }, - svg: , + svg: , }); } else if ( mediaType === 'tv' && @@ -301,7 +301,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequestModal(true); }, - svg: , + svg: , }); } @@ -327,7 +327,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequest4kModal(true); }, - svg: , + svg: , }); } else if ( mediaType === 'tv' && @@ -347,7 +347,7 @@ const RequestButton = ({ setEditRequest(false); setShowRequest4kModal(true); }, - svg: , + svg: , }); } diff --git a/src/components/RequestCard/index.tsx b/src/components/RequestCard/index.tsx index e59f164f3..16fd8abe4 100644 --- a/src/components/RequestCard/index.tsx +++ b/src/components/RequestCard/index.tsx @@ -4,16 +4,17 @@ import CachedImage from '@app/components/Common/CachedImage'; import Tooltip from '@app/components/Common/Tooltip'; import RequestModal from '@app/components/RequestModal'; import StatusBadge from '@app/components/StatusBadge'; +import useDeepLinks from '@app/hooks/useDeepLinks'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { withProperties } from '@app/utils/typeHelpers'; import { + ArrowPathIcon, CheckIcon, PencilIcon, - RefreshIcon, TrashIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import type { MovieDetails } from '@server/models/Movie'; @@ -37,6 +38,7 @@ const messages = defineMessages({ editrequest: 'Edit Request', cancelrequest: 'Cancel Request', deleterequest: 'Delete Request', + unknowntitle: 'Unknown Title', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { @@ -61,6 +63,13 @@ const RequestCardError = ({ requestData }: RequestCardErrorProps) => { const { hasPermission } = useUser(); const intl = useIntl(); + const { mediaUrl: plexUrl, mediaUrl4k: plexUrl4k } = useDeepLinks({ + mediaUrl: requestData?.media?.mediaUrl, + mediaUrl4k: requestData?.media?.mediaUrl4k, + iOSPlexUrl: requestData?.media?.iOSPlexUrl, + iOSPlexUrl4k: requestData?.media?.iOSPlexUrl4k, + }); + const deleteRequest = async () => { await axios.delete(`/api/v1/media/${requestData?.media.id}`); mutate('/api/v1/media?filter=allavailable&take=20&sort=mediaAdded'); @@ -128,6 +137,14 @@ const RequestCardError = ({ requestData }: RequestCardErrorProps) => { requestData.is4k ? 'status4k' : 'status' ] } + downloadItem={ + requestData.media[ + requestData.is4k + ? 'downloadStatus4k' + : 'downloadStatus' + ] + } + title={intl.formatMessage(messages.unknowntitle)} inProgress={ ( requestData.media[ @@ -138,11 +155,8 @@ const RequestCardError = ({ requestData }: RequestCardErrorProps) => { ).length > 0 } is4k={requestData.is4k} - plexUrl={ - requestData.is4k - ? requestData.media.mediaUrl4k - : requestData.media.mediaUrl - } + mediaType={requestData.type} + plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k ? requestData.media.serviceUrl4k @@ -217,6 +231,13 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { fallbackData: request, }); + const { mediaUrl: plexUrl, mediaUrl4k: plexUrl4k } = useDeepLinks({ + mediaUrl: requestData?.media?.mediaUrl, + mediaUrl4k: requestData?.media?.mediaUrl4k, + iOSPlexUrl: requestData?.media?.iOSPlexUrl, + iOSPlexUrl4k: requestData?.media?.iOSPlexUrl4k, + }); + const modifyRequest = async (type: 'approve' | 'decline') => { const response = await axios.post(`/api/v1/request/${request.id}/${type}`); @@ -357,20 +378,13 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { : request.seasons.length, })} - {title.seasons.filter((season) => season.seasonNumber !== 0) - .length === request.seasons.length ? ( - - {intl.formatMessage(globalMessages.all)} - - ) : ( -
- {request.seasons.map((season) => ( - - {season.seasonNumber} - - ))} -
- )} +
+ {request.seasons.map((season) => ( + + {season.seasonNumber} + + ))} +
)}
@@ -393,6 +407,12 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { status={ requestData.media[requestData.is4k ? 'status4k' : 'status'] } + downloadItem={ + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] + } + title={isMovie(title) ? title.title : title.name} inProgress={ ( requestData.media[ @@ -403,11 +423,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { is4k={requestData.is4k} tmdbId={requestData.media.tmdbId} mediaType={requestData.type} - plexUrl={ - requestData.is4k - ? requestData.media.mediaUrl4k - : requestData.media.mediaUrl - } + plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k ? requestData.media.serviceUrl4k @@ -425,7 +441,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { disabled={isRetrying} onClick={() => retryRequest()} > - @@ -467,7 +483,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="hidden sm:block" onClick={() => modifyRequest('decline')} > - + {intl.formatMessage(globalMessages.decline)} { className="sm:hidden" onClick={() => modifyRequest('decline')} > - +
@@ -524,7 +540,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="hidden sm:block" onClick={() => deleteRequest()} > - + {intl.formatMessage(globalMessages.cancel)} @@ -534,7 +550,7 @@ const RequestCard = ({ request, onTitleData }: RequestCardProps) => { className="sm:hidden" onClick={() => deleteRequest()} > - +
diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index 877d85396..fffb68de2 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -4,15 +4,16 @@ import CachedImage from '@app/components/Common/CachedImage'; import ConfirmButton from '@app/components/Common/ConfirmButton'; import RequestModal from '@app/components/RequestModal'; import StatusBadge from '@app/components/StatusBadge'; +import useDeepLinks from '@app/hooks/useDeepLinks'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { + ArrowPathIcon, CheckIcon, PencilIcon, - RefreshIcon, TrashIcon, - XIcon, -} from '@heroicons/react/solid'; + XMarkIcon, +} from '@heroicons/react/24/solid'; import { MediaRequestStatus } from '@server/constants/media'; import type { MediaRequest } from '@server/entity/MediaRequest'; import type { MovieDetails } from '@server/models/Movie'; @@ -38,6 +39,7 @@ const messages = defineMessages({ cancelRequest: 'Cancel Request', tmdbid: 'TMDB ID', tvdbid: 'TheTVDB ID', + unknowntitle: 'Unknown Title', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { @@ -61,6 +63,13 @@ const RequestItemError = ({ revalidateList(); }; + const { mediaUrl: plexUrl, mediaUrl4k: plexUrl4k } = useDeepLinks({ + mediaUrl: requestData?.media?.mediaUrl, + mediaUrl4k: requestData?.media?.mediaUrl4k, + iOSPlexUrl: requestData?.media?.iOSPlexUrl, + iOSPlexUrl4k: requestData?.media?.iOSPlexUrl4k, + }); + return (
@@ -120,6 +129,12 @@ const RequestItemError = ({ requestData.is4k ? 'status4k' : 'status' ] } + downloadItem={ + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] + } + title={intl.formatMessage(messages.unknowntitle)} inProgress={ ( requestData.media[ @@ -130,11 +145,8 @@ const RequestItemError = ({ ).length > 0 } is4k={requestData.is4k} - plexUrl={ - requestData.is4k - ? requestData.media.mediaUrl4k - : requestData.media.mediaUrl - } + mediaType={requestData.type} + plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k ? requestData.media.serviceUrl4k @@ -316,6 +328,13 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { } }; + const { mediaUrl: plexUrl, mediaUrl4k: plexUrl4k } = useDeepLinks({ + mediaUrl: requestData?.media?.mediaUrl, + mediaUrl4k: requestData?.media?.mediaUrl4k, + iOSPlexUrl: requestData?.media?.iOSPlexUrl, + iOSPlexUrl4k: requestData?.media?.iOSPlexUrl4k, + }); + if (!title && !error) { return (
{ : request.seasons.length, })} - {title.seasons.filter((season) => season.seasonNumber !== 0) - .length === request.seasons.length ? ( - - {intl.formatMessage(globalMessages.all)} - - ) : ( -
- {request.seasons.map((season) => ( - - {season.seasonNumber} - - ))} -
- )} +
+ {request.seasons.map((season) => ( + + {season.seasonNumber} + + ))} +
)}
@@ -459,6 +471,12 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { status={ requestData.media[requestData.is4k ? 'status4k' : 'status'] } + downloadItem={ + requestData.media[ + requestData.is4k ? 'downloadStatus4k' : 'downloadStatus' + ] + } + title={isMovie(title) ? title.title : title.name} inProgress={ ( requestData.media[ @@ -469,11 +487,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { is4k={requestData.is4k} tmdbId={requestData.media.tmdbId} mediaType={requestData.type} - plexUrl={ - requestData.is4k - ? requestData.media.mediaUrl4k - : requestData.media.mediaUrl - } + plexUrl={requestData.is4k ? plexUrl4k : plexUrl} serviceUrl={ requestData.is4k ? requestData.media.serviceUrl4k @@ -587,7 +601,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { disabled={isRetrying} onClick={() => retryRequest()} > - @@ -628,7 +642,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { buttonType="danger" onClick={() => modifyRequest('decline')} > - + {intl.formatMessage(globalMessages.decline)} @@ -658,7 +672,7 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { confirmText={intl.formatMessage(globalMessages.areyousure)} className="w-full" > - + {intl.formatMessage(messages.cancelRequest)} )} diff --git a/src/components/RequestList/index.tsx b/src/components/RequestList/index.tsx index 0fa94d05d..bffd7c067 100644 --- a/src/components/RequestList/index.tsx +++ b/src/components/RequestList/index.tsx @@ -7,11 +7,11 @@ import { useUpdateQueryParams } from '@app/hooks/useUpdateQueryParams'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import { + BarsArrowDownIcon, ChevronLeftIcon, ChevronRightIcon, - FilterIcon, - SortDescendingIcon, -} from '@heroicons/react/solid'; + FunnelIcon, +} from '@heroicons/react/24/solid'; import type { RequestResultsResponse } from '@server/interfaces/api/requestInterfaces'; import Link from 'next/link'; import { useRouter } from 'next/router'; @@ -139,7 +139,7 @@ const RequestList = () => {
- + { return (data?.seasons ?? []) - .filter((season) => season.seasonNumber !== 0) + .filter( + (season) => season.seasonNumber !== 0 && season.episodeCount !== 0 + ) .map((season) => season.seasonNumber); }; @@ -555,7 +557,10 @@ const TvRequestModal = ({ {data?.seasons - .filter((season) => season.seasonNumber !== 0) + .filter( + (season) => + season.seasonNumber !== 0 && season.episodeCount !== 0 + ) .map((season) => { const seasonRequest = getSeasonRequest( season.seasonNumber diff --git a/src/components/ResetPassword/RequestResetLink.tsx b/src/components/ResetPassword/RequestResetLink.tsx index 28d854f1a..d5b7e8750 100644 --- a/src/components/ResetPassword/RequestResetLink.tsx +++ b/src/components/ResetPassword/RequestResetLink.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import ImageFader from '@app/components/Common/ImageFader'; import PageTitle from '@app/components/Common/PageTitle'; import LanguagePicker from '@app/components/Layout/LanguagePicker'; -import { ArrowLeftIcon, MailIcon } from '@heroicons/react/solid'; +import { ArrowLeftIcon, EnvelopeIcon } from '@heroicons/react/24/solid'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import Link from 'next/link'; @@ -128,7 +128,7 @@ const ResetPassword = () => { type="submit" disabled={isSubmitting || !isValid} > - + {intl.formatMessage(messages.emailresetlink)} diff --git a/src/components/ResetPassword/index.tsx b/src/components/ResetPassword/index.tsx index dd6446424..4c8bcfa3a 100644 --- a/src/components/ResetPassword/index.tsx +++ b/src/components/ResetPassword/index.tsx @@ -3,7 +3,7 @@ import ImageFader from '@app/components/Common/ImageFader'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import LanguagePicker from '@app/components/Layout/LanguagePicker'; import globalMessages from '@app/i18n/globalMessages'; -import { SupportIcon } from '@heroicons/react/outline'; +import { LifebuoyIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import Link from 'next/link'; @@ -168,7 +168,7 @@ const ResetPassword = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Selector/index.tsx b/src/components/Selector/index.tsx new file mode 100644 index 000000000..3b863fd72 --- /dev/null +++ b/src/components/Selector/index.tsx @@ -0,0 +1,457 @@ +import CachedImage from '@app/components/Common/CachedImage'; +import { SmallLoadingSpinner } from '@app/components/Common/LoadingSpinner'; +import Tooltip from '@app/components/Common/Tooltip'; +import RegionSelector from '@app/components/RegionSelector'; +import { encodeURIExtraParams } from '@app/hooks/useDiscover'; +import useSettings from '@app/hooks/useSettings'; +import { ArrowDownIcon, ArrowUpIcon } from '@heroicons/react/20/solid'; +import { CheckCircleIcon } from '@heroicons/react/24/solid'; +import type { + TmdbCompanySearchResponse, + TmdbGenre, + TmdbKeywordSearchResponse, +} from '@server/api/themoviedb/interfaces'; +import type { GenreSliderItem } from '@server/interfaces/api/discoverInterfaces'; +import type { + Keyword, + ProductionCompany, + WatchProviderDetails, +} from '@server/models/common'; +import axios from 'axios'; +import { orderBy } from 'lodash'; +import { useEffect, useMemo, useState } from 'react'; +import { defineMessages, useIntl } from 'react-intl'; +import type { MultiValue, SingleValue } from 'react-select'; +import AsyncSelect from 'react-select/async'; +import useSWR from 'swr'; + +const messages = defineMessages({ + searchKeywords: 'Search keywords…', + searchGenres: 'Select genres…', + searchStudios: 'Search studios…', + starttyping: 'Starting typing to search.', + nooptions: 'No results.', + showmore: 'Show More', + showless: 'Show Less', +}); + +type SingleVal = { + label: string; + value: number; +}; + +type BaseSelectorMultiProps = { + defaultValue?: string; + isMulti: true; + onChange: (value: MultiValue | null) => void; +}; + +type BaseSelectorSingleProps = { + defaultValue?: string; + isMulti?: false; + onChange: (value: SingleValue | null) => void; +}; + +export const CompanySelector = ({ + defaultValue, + isMulti, + onChange, +}: BaseSelectorSingleProps | BaseSelectorMultiProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultCompany = async (): Promise => { + if (!defaultValue) { + return; + } + + const response = await axios.get( + `/api/v1/studio/${defaultValue}` + ); + + const studio = response.data; + + setDefaultDataValue([ + { + label: studio.name ?? '', + value: studio.id ?? 0, + }, + ]); + }; + + loadDefaultCompany(); + }, [defaultValue]); + + const loadCompanyOptions = async (inputValue: string) => { + if (inputValue === '') { + return []; + } + + const results = await axios.get( + '/api/v1/search/company', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + loadOptions={loadCompanyOptions} + placeholder={intl.formatMessage(messages.searchStudios)} + onChange={(value) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; + +type GenreSelectorProps = (BaseSelectorMultiProps | BaseSelectorSingleProps) & { + type: 'movie' | 'tv'; +}; + +export const GenreSelector = ({ + isMulti, + defaultValue, + onChange, + type, +}: GenreSelectorProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultGenre = async (): Promise => { + if (!defaultValue) { + return; + } + + const genres = defaultValue.split(','); + + const response = await axios.get(`/api/v1/genres/${type}`); + + const genreData = genres + .filter((genre) => response.data.find((gd) => gd.id === Number(genre))) + .map((g) => response.data.find((gd) => gd.id === Number(g))) + .map((g) => ({ + label: g?.name ?? '', + value: g?.id ?? 0, + })); + + setDefaultDataValue(genreData); + }; + + loadDefaultGenre(); + }, [defaultValue, type]); + + const loadGenreOptions = async () => { + const results = await axios.get( + `/api/v1/discover/genreslider/${type}` + ); + + return results.data.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; + +export const KeywordSelector = ({ + isMulti, + defaultValue, + onChange, +}: BaseSelectorMultiProps | BaseSelectorSingleProps) => { + const intl = useIntl(); + const [defaultDataValue, setDefaultDataValue] = useState< + { label: string; value: number }[] | null + >(null); + + useEffect(() => { + const loadDefaultKeywords = async (): Promise => { + if (!defaultValue) { + return; + } + + const keywords = await Promise.all( + defaultValue.split(',').map(async (keywordId) => { + const keyword = await axios.get( + `/api/v1/keyword/${keywordId}` + ); + + return keyword.data; + }) + ); + + setDefaultDataValue( + keywords.map((keyword) => ({ + label: keyword.name, + value: keyword.id, + })) + ); + }; + + loadDefaultKeywords(); + }, [defaultValue]); + + const loadKeywordOptions = async (inputValue: string) => { + const results = await axios.get( + '/api/v1/search/keyword', + { + params: { + query: encodeURIExtraParams(inputValue), + }, + } + ); + + return results.data.results.map((result) => ({ + label: result.name, + value: result.id, + })); + }; + + return ( + + inputValue === '' + ? intl.formatMessage(messages.starttyping) + : intl.formatMessage(messages.nooptions) + } + defaultValue={defaultDataValue} + loadOptions={loadKeywordOptions} + placeholder={intl.formatMessage(messages.searchKeywords)} + onChange={(value) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange(value as any); + }} + /> + ); +}; + +type WatchProviderSelectorProps = { + type: 'movie' | 'tv'; + region?: string; + activeProviders?: number[]; + onChange: (region: string, value: number[]) => void; +}; + +export const WatchProviderSelector = ({ + type, + onChange, + region, + activeProviders, +}: WatchProviderSelectorProps) => { + const intl = useIntl(); + const { currentSettings } = useSettings(); + const [showMore, setShowMore] = useState(false); + const [watchRegion, setWatchRegion] = useState( + region ? region : currentSettings.region ? currentSettings.region : 'US' + ); + const [activeProvider, setActiveProvider] = useState( + activeProviders ?? [] + ); + const { data, isLoading } = useSWR( + `/api/v1/watchproviders/${ + type === 'movie' ? 'movies' : 'tv' + }?watchRegion=${watchRegion}` + ); + + useEffect(() => { + onChange(watchRegion, activeProvider); + }, [activeProvider, watchRegion, onChange]); + + const orderedData = useMemo(() => { + if (!data) { + return []; + } + + return orderBy(data, ['display_priority'], ['asc']); + }, [data]); + + const toggleProvider = (id: number) => { + if (activeProvider.includes(id)) { + setActiveProvider(activeProvider.filter((p) => p !== id)); + } else { + setActiveProvider([...activeProvider, id]); + } + }; + + const initialProviders = orderedData.slice(0, 24); + const otherProviders = orderedData.slice(24); + + return ( + <> + { + if (value !== watchRegion) { + setActiveProvider([]); + } + setWatchRegion(value); + }} + disableAll + watchProviders + /> + {isLoading ? ( + + ) : ( +
+
+ {initialProviders.map((provider) => { + const isActive = activeProvider.includes(provider.id); + return ( + +
toggleProvider(provider.id)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + toggleProvider(provider.id); + } + }} + role="button" + tabIndex={0} + > + + {isActive && ( +
+ +
+ )} +
+
+ ); + })} +
+ {showMore && otherProviders.length > 0 && ( +
+ {otherProviders.map((provider) => { + const isActive = activeProvider.includes(provider.id); + return ( + +
toggleProvider(provider.id)} + onKeyDown={(e) => { + if (e.key === 'Enter') { + toggleProvider(provider.id); + } + }} + role="button" + tabIndex={0} + > + + {isActive && ( +
+ +
+ )} +
+
+ ); + })} +
+ )} + {otherProviders.length > 0 && ( + + )} +
+ )} + + ); +}; diff --git a/src/components/Settings/CopyButton.tsx b/src/components/Settings/CopyButton.tsx index da48fe5db..c50213d3b 100644 --- a/src/components/Settings/CopyButton.tsx +++ b/src/components/Settings/CopyButton.tsx @@ -1,4 +1,4 @@ -import { ClipboardCopyIcon } from '@heroicons/react/solid'; +import { ClipboardDocumentIcon } from '@heroicons/react/24/solid'; import { useEffect } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { useToasts } from 'react-toast-notifications'; @@ -32,7 +32,7 @@ const CopyButton = ({ textToCopy }: { textToCopy: string }) => { }} className="input-action" > - + ); }; diff --git a/src/components/Settings/LibraryItem.tsx b/src/components/Settings/LibraryItem.tsx index eba0de403..29a1030b2 100644 --- a/src/components/Settings/LibraryItem.tsx +++ b/src/components/Settings/LibraryItem.tsx @@ -1,4 +1,4 @@ -import { CheckIcon, XIcon } from '@heroicons/react/solid'; +import { CheckIcon, XMarkIcon } from '@heroicons/react/24/solid'; interface LibraryItemProps { isEnabled?: boolean; @@ -41,7 +41,7 @@ const LibraryItem = ({ isEnabled, name, onToggle }: LibraryItemProps) => { : 'opacity-100 duration-200 ease-in' } absolute inset-0 flex h-full w-full items-center justify-center transition-opacity`} > - +
{ (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsEmail.tsx b/src/components/Settings/Notifications/NotificationsEmail.tsx index aa5bf2dcf..eb3a34d5e 100644 --- a/src/components/Settings/Notifications/NotificationsEmail.tsx +++ b/src/components/Settings/Notifications/NotificationsEmail.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import SettingsBadge from '@app/components/Settings/SettingsBadge'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -475,7 +475,7 @@ const NotificationsEmail = () => { type="submit" disabled={isSubmitting || !isValid || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsGotify/index.tsx b/src/components/Settings/Notifications/NotificationsGotify/index.tsx index 77fb21b8d..390d2ed94 100644 --- a/src/components/Settings/Notifications/NotificationsGotify/index.tsx +++ b/src/components/Settings/Notifications/NotificationsGotify/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/solid'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/solid'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -242,7 +242,7 @@ const NotificationsGotify = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx b/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx index 116363252..390cac3d2 100644 --- a/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx +++ b/src/components/Settings/Notifications/NotificationsLunaSea/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -247,7 +247,7 @@ const NotificationsLunaSea = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx b/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx index bf6a5956e..00cd179ae 100644 --- a/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx +++ b/src/components/Settings/Notifications/NotificationsPushbullet/index.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -239,7 +239,7 @@ const NotificationsPushbullet = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsPushover/index.tsx b/src/components/Settings/Notifications/NotificationsPushover/index.tsx index d2e90ac9c..93e4a285b 100644 --- a/src/components/Settings/Notifications/NotificationsPushover/index.tsx +++ b/src/components/Settings/Notifications/NotificationsPushover/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -272,7 +272,7 @@ const NotificationsPushover = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsSlack/index.tsx b/src/components/Settings/Notifications/NotificationsSlack/index.tsx index 09c634437..ac31d3c1a 100644 --- a/src/components/Settings/Notifications/NotificationsSlack/index.tsx +++ b/src/components/Settings/Notifications/NotificationsSlack/index.tsx @@ -2,7 +2,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -225,7 +225,7 @@ const NotificationsSlack = () => { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsTelegram.tsx b/src/components/Settings/Notifications/NotificationsTelegram.tsx index 1959604e3..690731e6e 100644 --- a/src/components/Settings/Notifications/NotificationsTelegram.tsx +++ b/src/components/Settings/Notifications/NotificationsTelegram.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import SensitiveInput from '@app/components/Common/SensitiveInput'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useState } from 'react'; @@ -321,7 +321,7 @@ const NotificationsTelegram = () => { type="submit" disabled={isSubmitting || !isValid || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsWebPush/index.tsx b/src/components/Settings/Notifications/NotificationsWebPush/index.tsx index 0f56c0c94..5ff7ebf5f 100644 --- a/src/components/Settings/Notifications/NotificationsWebPush/index.tsx +++ b/src/components/Settings/Notifications/NotificationsWebPush/index.tsx @@ -2,7 +2,7 @@ import Alert from '@app/components/Common/Alert'; import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import { useEffect, useState } from 'react'; @@ -149,7 +149,7 @@ const NotificationsWebPush = () => { type="submit" disabled={isSubmitting || isTesting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/Notifications/NotificationsWebhook/index.tsx b/src/components/Settings/Notifications/NotificationsWebhook/index.tsx index 375d869c8..14f1e672e 100644 --- a/src/components/Settings/Notifications/NotificationsWebhook/index.tsx +++ b/src/components/Settings/Notifications/NotificationsWebhook/index.tsx @@ -2,8 +2,11 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import globalMessages from '@app/i18n/globalMessages'; -import { BeakerIcon, SaveIcon } from '@heroicons/react/outline'; -import { QuestionMarkCircleIcon, RefreshIcon } from '@heroicons/react/solid'; +import { ArrowDownOnSquareIcon, BeakerIcon } from '@heroicons/react/24/outline'; +import { + ArrowPathIcon, + QuestionMarkCircleIcon, +} from '@heroicons/react/24/solid'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; import dynamic from 'next/dynamic'; @@ -291,7 +294,7 @@ const NotificationsWebhook = () => { }} className="mr-2" > - + {intl.formatMessage(messages.resetPayload)} { (values.enabled && !values.types) } > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/SettingsAbout/Releases/index.tsx b/src/components/Settings/SettingsAbout/Releases/index.tsx index 6fe567e0c..cbd2ff9bb 100644 --- a/src/components/Settings/SettingsAbout/Releases/index.tsx +++ b/src/components/Settings/SettingsAbout/Releases/index.tsx @@ -4,7 +4,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import Modal from '@app/components/Common/Modal'; import globalMessages from '@app/i18n/globalMessages'; import { Transition } from '@headlessui/react'; -import { DocumentTextIcon } from '@heroicons/react/outline'; +import { DocumentTextIcon } from '@heroicons/react/24/outline'; import dynamic from 'next/dynamic'; import { Fragment, useState } from 'react'; import { defineMessages, FormattedRelativeTime, useIntl } from 'react-intl'; diff --git a/src/components/Settings/SettingsAbout/index.tsx b/src/components/Settings/SettingsAbout/index.tsx index 6fd5d6bdc..b3df332b4 100644 --- a/src/components/Settings/SettingsAbout/index.tsx +++ b/src/components/Settings/SettingsAbout/index.tsx @@ -6,7 +6,7 @@ import PageTitle from '@app/components/Common/PageTitle'; import Releases from '@app/components/Settings/SettingsAbout/Releases'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { InformationCircleIcon } from '@heroicons/react/solid'; +import { InformationCircleIcon } from '@heroicons/react/24/solid'; import type { SettingsAboutResponse, StatusResponse, diff --git a/src/components/Settings/SettingsJellyfin.tsx b/src/components/Settings/SettingsJellyfin.tsx index bf6e18297..f4834582c 100644 --- a/src/components/Settings/SettingsJellyfin.tsx +++ b/src/components/Settings/SettingsJellyfin.tsx @@ -3,7 +3,7 @@ import Button from '@app/components/Common/Button'; import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import LibraryItem from '@app/components/Settings/LibraryItem'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { JellyfinSettings } from '@server/lib/settings'; import axios from 'axios'; import { Field, Formik } from 'formik'; @@ -417,7 +417,7 @@ const SettingsJellyfin: React.FC = ({ type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/Settings/SettingsJobsCache/index.tsx b/src/components/Settings/SettingsJobsCache/index.tsx index 7317c8e82..2f5c97b35 100644 --- a/src/components/Settings/SettingsJobsCache/index.tsx +++ b/src/components/Settings/SettingsJobsCache/index.tsx @@ -10,10 +10,13 @@ import useSettings from '@app/hooks/useSettings'; import globalMessages from '@app/i18n/globalMessages'; import { formatBytes } from '@app/utils/numberHelpers'; import { Transition } from '@headlessui/react'; -import { PlayIcon, StopIcon, TrashIcon } from '@heroicons/react/outline'; -import { PencilIcon } from '@heroicons/react/solid'; +import { PlayIcon, StopIcon, TrashIcon } from '@heroicons/react/24/outline'; +import { PencilIcon } from '@heroicons/react/24/solid'; import { MediaServerType } from '@server/constants/server'; -import type { CacheItem } from '@server/interfaces/api/settingsInterfaces'; +import type { + CacheItem, + CacheResponse, +} from '@server/interfaces/api/settingsInterfaces'; import type { JobId } from '@server/lib/settings'; import axios from 'axios'; import cronstrue from 'cronstrue/i18n'; @@ -58,6 +61,7 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({ 'sonarr-scan': 'Sonarr Scan', 'download-sync': 'Download Sync', 'download-sync-reset': 'Download Sync Reset', + 'image-cache-cleanup': 'Image Cache Cleanup', editJobSchedule: 'Modify Job', jobScheduleEditSaved: 'Job edited successfully!', jobScheduleEditFailed: 'Something went wrong while saving the job.', @@ -67,6 +71,11 @@ const messages: { [messageName: string]: MessageDescriptor } = defineMessages({ 'Every {jobScheduleHours, plural, one {hour} other {{jobScheduleHours} hours}}', editJobScheduleSelectorMinutes: 'Every {jobScheduleMinutes, plural, one {minute} other {{jobScheduleMinutes} minutes}}', + imagecache: 'Image Cache', + imagecacheDescription: + 'When enabled in settings, Overseerr will proxy and cache images from pre-configured external sources. Cached images are saved into your config folder. You can find the files in {appDataPath}/cache/images.', + imagecachecount: 'Images Cached', + imagecachesize: 'Total Cache Size', }); interface Job { @@ -132,7 +141,8 @@ const SettingsJobs = () => { } = useSWR('/api/v1/settings/jobs', { refreshInterval: 5000, }); - const { data: cacheData, mutate: cacheRevalidate } = useSWR( + const { data: appData } = useSWR('/api/v1/status/appdata'); + const { data: cacheData, mutate: cacheRevalidate } = useSWR( '/api/v1/settings/cache', { refreshInterval: 10000, @@ -435,7 +445,7 @@ const SettingsJobs = () => { - {cacheData + {cacheData?.apiCaches ?.filter( (cache) => !( @@ -465,6 +475,41 @@ const SettingsJobs = () => {
+
+

{intl.formatMessage(messages.imagecache)}

+

+ {intl.formatMessage(messages.imagecacheDescription, { + code: (msg: React.ReactNode) => ( + {msg} + ), + appDataPath: appData ? appData.appDataPath : '/app/config', + })} +

+
+
+ + + + {intl.formatMessage(messages.cachename)} + + {intl.formatMessage(messages.imagecachecount)} + + {intl.formatMessage(messages.imagecachesize)} + + + + + The Movie Database (tmdb) + + {intl.formatNumber(cacheData?.imageCache.tmdb.imageCount ?? 0)} + + + {formatBytes(cacheData?.imageCache.tmdb.size ?? 0)} + + + +
+
); }; diff --git a/src/components/Settings/SettingsLogs/index.tsx b/src/components/Settings/SettingsLogs/index.tsx index fbf5d5e03..4b559e621 100644 --- a/src/components/Settings/SettingsLogs/index.tsx +++ b/src/components/Settings/SettingsLogs/index.tsx @@ -13,13 +13,13 @@ import { Transition } from '@headlessui/react'; import { ChevronLeftIcon, ChevronRightIcon, - ClipboardCopyIcon, - DocumentSearchIcon, - FilterIcon, + ClipboardDocumentIcon, + DocumentMagnifyingGlassIcon, + FunnelIcon, + MagnifyingGlassIcon, PauseIcon, PlayIcon, - SearchIcon, -} from '@heroicons/react/solid'; +} from '@heroicons/react/24/solid'; import type { LogMessage, LogsResultsResponse, @@ -252,7 +252,7 @@ const SettingsLogs = () => {
- + {
- + { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx index 121018fcc..841e5f77f 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsDiscord.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -156,7 +156,7 @@ const UserNotificationsDiscord = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx index 942ea707d..137c7f65c 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsEmail.tsx @@ -8,7 +8,7 @@ import { OpenPgpLink } from '@app/components/Settings/Notifications/Notification import SettingsBadge from '@app/components/Settings/SettingsBadge'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Form, Formik } from 'formik'; @@ -151,7 +151,7 @@ const UserEmailSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx index 5f665fa60..94109713e 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsTelegram.tsx @@ -3,7 +3,7 @@ import LoadingSpinner from '@app/components/Common/LoadingSpinner'; import NotificationTypeSelector from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Field, Form, Formik } from 'formik'; @@ -185,7 +185,7 @@ const UserTelegramSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx index 80a0ec72b..2c940d292 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/UserNotificationsWebPush.tsx @@ -5,7 +5,7 @@ import NotificationTypeSelector, { } from '@app/components/NotificationTypeSelector'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import axios from 'axios'; import { Form, Formik } from 'formik'; @@ -103,7 +103,7 @@ const UserWebPushSettings = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx index 97f123699..b93c6da6c 100644 --- a/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx +++ b/src/components/UserProfile/UserSettings/UserNotificationSettings/index.tsx @@ -9,7 +9,7 @@ import SettingsTabs from '@app/components/Common/SettingsTabs'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { CloudIcon, MailIcon } from '@heroicons/react/solid'; +import { CloudIcon, EnvelopeIcon } from '@heroicons/react/24/solid'; import type { UserSettingsNotificationsResponse } from '@server/interfaces/api/userSettingsInterfaces'; import { useRouter } from 'next/router'; import { defineMessages, useIntl } from 'react-intl'; @@ -41,7 +41,7 @@ const UserNotificationSettings = ({ text: intl.formatMessage(messages.email), content: ( - + {intl.formatMessage(messages.email)} ), diff --git a/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx b/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx index aea79f72d..bf65e8440 100644 --- a/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx +++ b/src/components/UserProfile/UserSettings/UserPasswordChange/index.tsx @@ -6,7 +6,7 @@ import SensitiveInput from '@app/components/Common/SensitiveInput'; import { Permission, useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import { useRouter } from 'next/router'; @@ -233,7 +233,7 @@ const UserPasswordChange = () => { type="submit" disabled={isSubmitting || !isValid} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/UserSettings/UserPermissions/index.tsx b/src/components/UserProfile/UserSettings/UserPermissions/index.tsx index 84b671b5f..889edaf75 100644 --- a/src/components/UserProfile/UserSettings/UserPermissions/index.tsx +++ b/src/components/UserProfile/UserSettings/UserPermissions/index.tsx @@ -6,7 +6,7 @@ import PermissionEdit from '@app/components/PermissionEdit'; import { useUser } from '@app/hooks/useUser'; import globalMessages from '@app/i18n/globalMessages'; import Error from '@app/pages/_error'; -import { SaveIcon } from '@heroicons/react/outline'; +import { ArrowDownOnSquareIcon } from '@heroicons/react/24/outline'; import axios from 'axios'; import { Form, Formik } from 'formik'; import { useRouter } from 'next/router'; @@ -120,7 +120,7 @@ const UserPermissions = () => { type="submit" disabled={isSubmitting} > - + {isSubmitting ? intl.formatMessage(globalMessages.saving) diff --git a/src/components/UserProfile/index.tsx b/src/components/UserProfile/index.tsx index c8bf3b2a6..bb0f7504e 100644 --- a/src/components/UserProfile/index.tsx +++ b/src/components/UserProfile/index.tsx @@ -8,7 +8,7 @@ import TmdbTitleCard from '@app/components/TitleCard/TmdbTitleCard'; import ProfileHeader from '@app/components/UserProfile/ProfileHeader'; import { Permission, UserType, useUser } from '@app/hooks/useUser'; import Error from '@app/pages/_error'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { WatchlistResponse } from '@server/interfaces/api/discoverInterfaces'; import type { QuotaResponse, @@ -291,7 +291,7 @@ const UserProfile = () => { > {intl.formatMessage(messages.recentrequests)} - +
@@ -332,7 +332,7 @@ const UserProfile = () => { > {intl.formatMessage(messages.plexwatchlist)} - +
diff --git a/src/context/LanguageContext.tsx b/src/context/LanguageContext.tsx index 0cf4d7d79..9ede27070 100644 --- a/src/context/LanguageContext.tsx +++ b/src/context/LanguageContext.tsx @@ -10,6 +10,7 @@ export type AvailableLocale = | 'el' | 'es' | 'fr' + | 'hr' | 'hu' | 'it' | 'ja' @@ -23,6 +24,7 @@ export type AvailableLocale = | 'sq' | 'sr' | 'sv' + | 'ua' | 'zh-CN' | 'zh-TW'; @@ -60,6 +62,10 @@ export const availableLanguages: AvailableLanguageObject = { code: 'fr', display: 'Français', }, + hr: { + code: 'hr', + display: 'Hrvatski', + }, it: { code: 'it', display: 'Italiano', @@ -120,6 +126,10 @@ export const availableLanguages: AvailableLanguageObject = { code: 'ja', display: '日本語', }, + ua: { + code: 'ua', + display: 'українська', + }, 'zh-TW': { code: 'zh-TW', display: '繁體中文', diff --git a/src/hooks/useDeepLinks.ts b/src/hooks/useDeepLinks.ts new file mode 100644 index 000000000..983086591 --- /dev/null +++ b/src/hooks/useDeepLinks.ts @@ -0,0 +1,45 @@ +import useSettings from '@app/hooks/useSettings'; +import { MediaServerType } from '@server/constants/server'; +import { useEffect, useState } from 'react'; + +interface useDeepLinksProps { + mediaUrl?: string; + mediaUrl4k?: string; + iOSPlexUrl?: string; + iOSPlexUrl4k?: string; +} + +const useDeepLinks = ({ + mediaUrl, + mediaUrl4k, + iOSPlexUrl, + iOSPlexUrl4k, +}: useDeepLinksProps) => { + const [returnedMediaUrl, setReturnedMediaUrl] = useState(mediaUrl); + const [returnedMediaUrl4k, setReturnedMediaUrl4k] = useState(mediaUrl4k); + const settings = useSettings(); + + useEffect(() => { + if ( + settings.currentSettings.mediaServerType === MediaServerType.PLEX && + (/iPad|iPhone|iPod/.test(navigator.userAgent) || + (navigator.userAgent === 'MacIntel' && navigator.maxTouchPoints > 1)) + ) { + setReturnedMediaUrl(iOSPlexUrl); + setReturnedMediaUrl4k(iOSPlexUrl4k); + } else { + setReturnedMediaUrl(mediaUrl); + setReturnedMediaUrl4k(mediaUrl4k); + } + }, [ + iOSPlexUrl, + iOSPlexUrl4k, + mediaUrl, + mediaUrl4k, + settings.currentSettings.mediaServerType, + ]); + + return { mediaUrl: returnedMediaUrl, mediaUrl4k: returnedMediaUrl4k }; +}; + +export default useDeepLinks; diff --git a/src/hooks/useDiscover.ts b/src/hooks/useDiscover.ts index 96ea9cc71..f9aff8e29 100644 --- a/src/hooks/useDiscover.ts +++ b/src/hooks/useDiscover.ts @@ -27,9 +27,30 @@ interface DiscoverResult { firstResultData?: BaseSearchResult & S; } -const useDiscover = >( +const extraEncodes: [RegExp, string][] = [ + [/\(/g, '%28'], + [/\)/g, '%29'], + [/!/g, '%21'], + [/\*/g, '%2A'], +]; + +export const encodeURIExtraParams = (string: string): string => { + let finalString = encodeURIComponent(string); + + extraEncodes.forEach((encode) => { + finalString = finalString.replace(encode[0], encode[1]); + }); + + return finalString; +}; + +const useDiscover = < + T extends BaseMedia, + S = Record, + O = Record +>( endpoint: string, - options?: Record, + options?: O, { hideAvailable = true } = {} ): DiscoverResult => { const settings = useSettings(); @@ -47,7 +68,10 @@ const useDiscover = >( }; const finalQueryString = Object.keys(params) - .map((paramKey) => `${paramKey}=${params[paramKey]}`) + .map( + (paramKey) => + `${paramKey}=${encodeURIExtraParams(params[paramKey] as string)}` + ) .join('&'); return `${endpoint}?${finalQueryString}`; diff --git a/src/hooks/useSearchInput.ts b/src/hooks/useSearchInput.ts index 54876357f..a60b28c07 100644 --- a/src/hooks/useSearchInput.ts +++ b/src/hooks/useSearchInput.ts @@ -8,23 +8,6 @@ import useDebouncedState from './useDebouncedState'; type Url = string | UrlObject; -const extraEncodes: [RegExp, string][] = [ - [/\(/g, '%28'], - [/\)/g, '%29'], - [/!/g, '%21'], - [/\*/g, '%2A'], -]; - -const encodeURIExtraParams = (string: string): string => { - let finalString = encodeURIComponent(string); - - extraEncodes.forEach((encode) => { - finalString = finalString.replace(encode[0], encode[1]); - }); - - return finalString; -}; - interface SearchObject { searchValue: string; searchOpen: boolean; @@ -55,7 +38,7 @@ const useSearchInput = (): SearchObject => { pathname: router.pathname, query: { ...router.query, - query: encodeURIExtraParams(debouncedValue), + query: debouncedValue, }, }); } else { @@ -63,7 +46,7 @@ const useSearchInput = (): SearchObject => { router .push({ pathname: '/search', - query: { query: encodeURIExtraParams(debouncedValue) }, + query: { query: debouncedValue }, }) .then(() => window.scrollTo(0, 0)); } @@ -106,7 +89,7 @@ const useSearchInput = (): SearchObject => { * is on /search */ useEffect(() => { - if (router.query.query !== encodeURIExtraParams(debouncedValue)) { + if (router.query.query !== debouncedValue) { setSearchValue( router.query.query ? decodeURIComponent(router.query.query as string) diff --git a/src/hooks/useUpdateQueryParams.ts b/src/hooks/useUpdateQueryParams.ts index e2ef801de..7b991267f 100644 --- a/src/hooks/useUpdateQueryParams.ts +++ b/src/hooks/useUpdateQueryParams.ts @@ -132,3 +132,20 @@ export const useUpdateQueryParams = ( [filter, updateQueryParams] ); }; + +export const useBatchUpdateQueryParams = ( + filter: ParsedUrlQuery +): ((items: Record) => void) => { + const updateQueryParams = useQueryParams(); + + return useCallback( + (items: Record) => { + const query = { + ...filter, + ...items, + }; + updateQueryParams(query, 'replace'); + }, + [filter, updateQueryParams] + ); +}; diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts index b9d70887c..fa034437d 100644 --- a/src/hooks/useUser.ts +++ b/src/hooks/useUser.ts @@ -2,8 +2,8 @@ import { UserType } from '@server/constants/user'; import type { PermissionCheckOptions } from '@server/lib/permissions'; import { hasPermission, Permission } from '@server/lib/permissions'; import type { NotificationAgentKey } from '@server/lib/settings'; +import type { MutatorCallback } from 'swr'; import useSWR from 'swr'; -import type { MutatorCallback } from 'swr/dist/types'; export { Permission, UserType }; export type { PermissionCheckOptions }; diff --git a/src/i18n/locale/ar.json b/src/i18n/locale/ar.json index bba3d1710..b72cc6e89 100644 --- a/src/i18n/locale/ar.json +++ b/src/i18n/locale/ar.json @@ -37,7 +37,7 @@ "components.ManageSlideOver.alltime": "جميع الأوقات", "components.ManageSlideOver.downloadstatus": "التنزيلات", "components.ManageSlideOver.manageModalAdvanced": "متقدم", - "components.ManageSlideOver.manageModalClearMediaWarning": "* سيتم حذف جميع البيانات بشكل نهائي لـ {mediaType},متضمنا جميع الطلبات.إذا كان هذا المحتوى متوفر في مكتبة بليكس، سيتم إعادة تفاصيل المحتوى في عملية الفحص القادمة.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* سيتم حذف جميع البيانات بشكل نهائي لـ {mediaType},متضمنا جميع الطلبات.إذا كان هذا المحتوى متوفر في مكتبة {mediaServerName}، سيتم إعادة تفاصيل المحتوى في عملية الفحص القادمة.", "components.ManageSlideOver.manageModalRequests": "الطلبات", "components.ManageSlideOver.manageModalTitle": "إدارة {mediaType}", "components.ManageSlideOver.manageModalIssues": "المشاكل المفتوحة", @@ -69,8 +69,6 @@ "components.Discover.TvGenreList.seriesgenres": "نوع المسلسل", "components.Discover.TvGenreSlider.tvgenres": "نوع المسلسل", "components.Discover.discover": "إكتشف", - "components.Discover.discovermovies": "أفلام ذات شعبية", - "components.Discover.discovertv": "مسلسلات ذات شعبية", "components.Discover.popularmovies": "أفلام ذات شعبية", "components.Discover.populartv": "مسلسلات ذات شعبية", "components.Discover.recentlyAdded": "أضيف مؤخرا", @@ -669,8 +667,6 @@ "components.Settings.SonarrModal.selectRootFolder": "إختار مجلد الحفظ", "components.Settings.SonarrModal.selecttags": "إختار العلامات", "components.Settings.menuGeneralSettings": "عام", - "components.Settings.generalsettingsDescription": "ضبط الإعدادات الإفتراضية والأساسية لـ أوفرسيرر.", - "components.Settings.locale": "لغة العرض", "components.Settings.manualscanDescription": "عادةً٫ سيتم عمل هذا الفحص مرة واحدة كل 24 ساعة. أوفرسيرر سيفحص المحتوى المضاف مؤخرا في مكتبة بليكس بشكل مكثف. إذا كانت هذه المرة الأولى التي تقوم بها بإعداد بليكس يستحسن أن تقوم بعمل فحص يدوي كامل لمرة واحدة!", "components.Settings.menuAbout": "حول", "components.Settings.plex": "بليكس", @@ -678,14 +674,12 @@ "components.Settings.noDefaultServer": "على الأقل {serverType} سيرفر واحد يجب أن يكون معدا كإفتراضي لإتاحة تنفيذ طلبات الـ {mediaType}.", "components.Settings.plexsettings": "إعدادات بليكس", "components.Settings.serviceSettingsDescription": "قم بإعداد {serverType} سيرفراتك بالإسفل. تستطيع الاتصال بأكثر من سيرفر {serverType} ولكن إثنان فقط يمكن إعدادهما كإفتراضيين واحد لمحتوى الفور كي والاخر لغير الفور كي. الذين يملكون إذونات مسؤول بإمكانهم تجاوز السيرفر المخصص لتنفيذ الطلبات الجديدة قبل الموافقة.", - "components.Settings.regionTip": "تصفية المحتوى حسب توفره بالمنطقة", "components.Settings.serverpresetManualMessage": "ضبط يدوي", "components.Settings.sonarrsettings": "إعدادات سونار", "components.Settings.tautulliSettingsDescription": "بشكل إختياري أضبط إعدادات سيرفرك الخاص بـ Tautulli.أوفرسيرر سيقوم بجلب بيانات سجل المشاهدة لمحتوى بليكس من Tautulli.", "components.Settings.webhook": "ويب هوك Webhook", "components.Settings.webpush": "ويب بوش Web Push", "components.Setup.configureplex": "إعداد بليكس", - "components.Settings.trustProxyTip": "السماح لأوفرسيرر لتسجيل عناوين الأي بي خلف اتصال بروكسي (يجب إعادة تحميل الصفحة لتطبيق هذا الخيار)", "components.Settings.SonarrModal.server4k": "سيرفر الـ 4K", "components.Settings.SonarrModal.servername": "إسم السيرفر", "components.Settings.SonarrModal.ssl": "إستخدم SSL", @@ -712,16 +706,8 @@ "components.Settings.addradarr": "إضافة سيرفر رادار", "components.Settings.address": "العناوين", "components.Settings.addsonarr": "إضافة سيرفر سونار", - "components.Settings.apikey": "مفتاح API", - "components.Settings.applicationTitle": "عنوان التطبيق", - "components.Settings.applicationurl": "عنوان إرتباط التطبيق", - "components.Settings.cacheImages": "تفعيل التخزين المؤقت للصور", - "components.Settings.cacheImagesTip": "موازنة وتخزين كل الصور محليا ( يستهلك مساحة كبيرة من قرص التخزين )", "components.Settings.cancelscan": "إلغاء الفحص", "components.Settings.copied": "نسخ مفتاح الـ API.", - "components.Settings.csrfProtection": "تفعيل حماية CSRF", - "components.Settings.csrfProtectionHoverTip": "لا تقم بتفعيل هذا الخيار الا اذا كنت مدركا ومطلعا على ماتقوم به!", - "components.Settings.csrfProtectionTip": "إعداد مفتاح API خارجي لاعطاء تصريح الاطلاع ( قراءة فقط ) يتطلب إتصال HTTPS وافرسيرر يحتاج لإعاة تحميل الصفحة لتطبيق هذا التغيير", "components.Settings.currentlibrary": "المكتبة الحالية: {name}", "components.Settings.default": "الإفتراضي", "components.Settings.default4k": "فور كي الإفتراضي", @@ -729,9 +715,6 @@ "components.Settings.email": "البريد الإلكتروني", "components.Settings.enablessl": "إستخدم SSL", "components.Settings.externalUrl": "عنوان الإرتباط الخارجي", - "components.Settings.general": "عام", - "components.Settings.generalsettings": "الإعدادات العامة", - "components.Settings.hideAvailable": "إخفاء المحتوى المتوفّر", "components.Settings.hostname": "عنوان المضيف أو رقم الأي بي", "components.Settings.is4k": "فور كي", "components.Settings.librariesRemaining": "المكتبات المتبقية: {count}", @@ -750,14 +733,10 @@ "components.Settings.notifications": "التنبيهات", "components.Settings.notificationsettings": "اعدادات التنبيهات", "components.Settings.notrunning": "لا يعمل", - "components.Settings.originallanguage": "لغة العرض الخاصة بـ إكتشف المحتوى", - "components.Settings.originallanguageTip": "تصفية المحتوى بحسب اللغة الأصلية", - "components.Settings.partialRequestsEnabled": "السماح بطلب المسلسلات بشكل جزئي", "components.Settings.plexlibrariesDescription": "المكتبات التي سيقوم أوفرسيرر بفحصها. قم بإعداد وحفظ إعدادات الإتصال ببليكس ثم قم بالضغط على الزر بالإسفل اذا لم تظهر مكتبات بليكس بالقائمة.", "components.Settings.plexsettingsDescription": "ضبط إعدادات سيرفر بليكس. أوفرسيرر سيفحص مكتبات بليكس للتأكد من توفر المحتوى من عدمه.", "components.Settings.port": "المنفذ", "components.Settings.radarrsettings": "إعدادات رادار", - "components.Settings.region": "المنطقة الخاصة بـ إكتشاف محتوى جديد", "components.Settings.scan": "دمج المكتبات", "components.Settings.scanning": "جاري الدمج…", "components.Settings.serverLocal": "محلي", @@ -772,24 +751,16 @@ "components.Settings.startscan": "إبدأ الفحص", "components.Settings.tautulliApiKey": "مفتاح API", "components.Settings.tautulliSettings": "إعدادات Tautulli", - "components.Settings.toastApiKeyFailure": "حدث خطأ ما أثناء محاولة توريد مفتاح API جديد.", - "components.Settings.toastApiKeySuccess": "تم توريد مفتاح API جديد بنجاح!", "components.Settings.toastPlexConnecting": "جاري محاولة الإتصال ببليكس…", "components.Settings.toastPlexConnectingFailure": "فشل الإتصال ببليكس.", "components.Settings.toastPlexConnectingSuccess": "تم الإتصال ببليكس بنجاح!", "components.Settings.toastPlexRefresh": "جاري جلب قائمة السيرفرات من بليكس…", "components.Settings.toastPlexRefreshFailure": "فشل جلب قائمة السيرفرات.", "components.Settings.toastPlexRefreshSuccess": "تم جلب قائمة السيرفرات من بليكس بنجاح!", - "components.Settings.toastSettingsFailure": "حدث خطأ ما أثناء حفظ الإعدادات.", - "components.Settings.toastSettingsSuccess": "تم حفظ الإعدادات بنجاح!", "components.Settings.toastTautulliSettingsFailure": "حدث خطأ ما أثناء حفظ إعدادات Tautulli.", "components.Settings.toastTautulliSettingsSuccess": "تم حفظ إعدادات Tautulli بنجاح !", - "components.Settings.trustProxy": "تفعيل دعم البروكسي", "components.Settings.urlBase": "عنوان الإرتباط الأساسي", "components.Settings.validationApiKey": "يجب كتابة مفتاح API", - "components.Settings.validationApplicationTitle": "يجب كتابة عنوان التطبيق", - "components.Settings.validationApplicationUrl": "يجب كتابة عنوان إرتباط صحيح", - "components.Settings.validationApplicationUrlTrailingSlash": "يجب أن لا ينتهي عنوان الإرتباط بعلامة السلاش", "components.Settings.validationHostnameRequired": "يجب كتابة إسم مضيف أو رقم أي بي صحيح", "components.Settings.validationPortRequired": "يجب كتابة رقم منفذ صحيح", "components.Settings.validationUrl": "يجب كتابة عنوان ارتباط صحيح", diff --git a/src/i18n/locale/ca.json b/src/i18n/locale/ca.json index 98e5862a7..6312d35c8 100644 --- a/src/i18n/locale/ca.json +++ b/src/i18n/locale/ca.json @@ -187,8 +187,6 @@ "components.Discover.recentlyAdded": "Afegit recentment", "components.Discover.populartv": "Sèries populars", "components.Discover.popularmovies": "Pel·lícules populars", - "components.Discover.discovertv": "Sèries populars", - "components.Discover.discovermovies": "Pel·lícules populars", "components.Discover.discover": "Descobriu", "components.Discover.TvGenreSlider.tvgenres": "Gèneres de Sèries", "components.Discover.TvGenreList.seriesgenres": "Gèneres de Sèries", @@ -420,7 +418,6 @@ "components.Setup.finish": "Finalitza la configuració", "components.Setup.continue": "Continua", "components.Setup.configureservices": "Configureu els serveis", - "components.Settings.trustProxy": "Activeu l'assistència de servidor intermediari", "components.Settings.toastPlexRefresh": "S'està recuperant la llista de servidors de Plex…", "components.Setup.configureplex": "Configureu Plex", "components.Settings.webhook": "Webhook", @@ -437,8 +434,6 @@ "components.Settings.toastPlexConnectingSuccess": "La connexió amb Plex s'ha establert correctament!", "components.Settings.toastPlexConnectingFailure": "No s'ha pogut connectar amb Plex.", "components.Settings.toastPlexConnecting": "S'està intentant connectar amb Plex…", - "components.Settings.toastApiKeySuccess": "Nova clau d'API generada correctament!", - "components.Settings.toastApiKeyFailure": "S'ha produït un error en generar una nova clau API.", "components.Settings.startscan": "Inicia l'exploració", "components.Settings.ssl": "SSL", "components.Settings.sonarrsettings": "Configuració de Sonarr", @@ -452,8 +447,6 @@ "components.Settings.serverLocal": "local", "components.Settings.scanning": "S'està sincronitzant …", "components.Settings.scan": "Sincronitza les biblioteques", - "components.Settings.regionTip": "Filtra el contingut per disponibilitat regional", - "components.Settings.region": "Regió per a la secció \"Descobriu\"", "components.Settings.radarrsettings": "Configuració de Radarr", "components.Settings.port": "Port", "components.Settings.plexsettingsDescription": "Configureu la paràmetres del vostre servidor Plex. Jellyseerr explora les vostres biblioteques Plex per determinar la disponibilitat de continguts.", @@ -464,7 +457,7 @@ "components.Settings.partialRequestsEnabled": "Permet sol·licituds parcials de Sèries", "components.Settings.originallanguageTip": "Filtra el contingut per l'idioma original", "components.Settings.originallanguage": "Idioma per a la secció \"Descobriu\"", - "components.Settings.manualscanDescription": "Normalment, només s’executarà una vegada cada 24 hores. Jellyseerr comprovarà de forma més agressiva el contingut afegit recentment del seu servidor Plex. Si és la primera vegada que configureu Plex, es recomana fer una exploració manual completa de la biblioteca!", + "components.Settings.manualscanDescription": "Normalment, només s’executarà una vegada cada 24 hores. Overseerr comprovarà de forma més agressiva el contingut afegit recentment del seu servidor Plex. Si és la primera vegada que configureu Plex, es recomana fer una exploració manual completa de la biblioteca!", "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Exploració d'elements de Plex afegits recentment", "components.Settings.notrunning": "No s'està executant", "components.Settings.notificationsettings": "Configuració de les notificacions", @@ -483,26 +476,16 @@ "components.Settings.manualscan": "Exploració manual de la biblioteca", "components.Settings.librariesRemaining": "Biblioteques restants: {count}", "components.Settings.hostname": "Nom de l’amfitrió o adreça IP", - "components.Settings.generalsettings": "Configuració general", - "components.Settings.general": "General", "components.Settings.deleteserverconfirm": "Esteu segur que voleu suprimir aquest servidor?", "components.Settings.currentlibrary": "Biblioteca actual: {name}", "components.Settings.cancelscan": "Cancel·la l'exploració", - "components.Settings.cacheImagesTip": "Posa en memòria cau i carrega imatges optimitzades (requereix una quantitat important d'espai en disc)", - "components.Settings.applicationTitle": "Títol de l'aplicació", "components.Settings.addsonarr": "Afegeix un servidor Sonarr", "components.Settings.activeProfile": "Perfil actiu", "components.Settings.enablessl": "Utilitza SSL", "components.Settings.email": "Adreça electrònica", "components.Settings.default4k": "4K predeterminat", "components.Settings.default": "Predeterminat", - "components.Settings.csrfProtectionTip": "Estableix l'accés a l'API externa de només lectura (requereix HTTPS)", - "components.Settings.csrfProtectionHoverTip": "NO activeu aquesta configuració tret que entengueu el que esteu fent!", - "components.Settings.csrfProtection": "Activeu la protecció CSRF", "components.Settings.copied": "S'ha copiat la clau API al porta-retalls.", - "components.Settings.cacheImages": "Activa la memòria cau d'imatges", - "components.Settings.applicationurl": "URL de l'aplicació", - "components.Settings.apikey": "Clau API", "components.Settings.address": "Adreça", "components.Settings.addradarr": "Afegeix un servidor Radarr", "components.Settings.SonarrModal.validationRootFolderRequired": "Heu de seleccionar una carpeta arrel", @@ -762,7 +745,6 @@ "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Idioma de visualització", "components.Settings.webpush": "Web Push", "components.Settings.noDefault4kServer": "Cal marcar un servidor 4K de {serverType} com a predeterminat per permetre als usuaris enviar sol·licituds de {mediaType} en 4K.", - "components.Settings.locale": "Idioma de visualització", "components.Settings.is4k": "4K", "components.Settings.SettingsUsers.newPlexLoginTip": "Permetre als usuaris de {mediaServerName} iniciar la sessió sense haver-los importat prèviament", "components.Settings.SettingsUsers.newPlexLogin": "Activa nou inici de sessió de {mediaServerName}", @@ -887,7 +869,7 @@ "components.IssueModal.CreateIssueModal.whatswrong": "Què passa?", "components.IssueModal.issueAudio": "Àudio", "components.IssueModal.issueOther": "Altre", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Això eliminarà de manera irreversible totes les dades de {mediaType}, incloses les sol·licituds. Si aquest element existeix a la vostra biblioteca Plex, la informació dels continguts es recrearà durant la següent exploració.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Això eliminarà de manera irreversible totes les dades de {mediaType}, incloses les sol·licituds. Si aquest element existeix a la vostra biblioteca {mediaServerName}, la informació dels continguts es recrearà durant la següent exploració.", "components.ManageSlideOver.downloadstatus": "Descàrregues", "components.IssueDetails.toasteditdescriptionsuccess": "La descripció de l'incidència s'ha editat correctament!", "components.IssueList.IssueItem.issuetype": "Tipus", @@ -924,7 +906,7 @@ "components.NotificationTypeSelector.adminissuecommentDescription": "Notifica'm quan altres usuaris facin comentaris sobre incidències.", "components.ManageSlideOver.tvshow": "sèries", "components.Settings.SettingsJobsCache.editJobSchedule": "Modifica la tasca programada", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Freqüència", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Freqüència nova", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} hores}}", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minut} other {{jobScheduleMinutes} minuts}}", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registreu una aplicació per utilitzar-la amb {applicationTitle}", @@ -1104,7 +1086,7 @@ "components.RequestBlock.delete": "Suprimeix la sol·licitud", "components.RequestBlock.edit": "Edita la sol·licitud", "components.RequestBlock.lastmodifiedby": "Última modificació per", - "components.StatusBadge.playonplex": "Reprodueix a Plex", + "components.StatusBadge.playonplex": "Reprodueix a {mediaServerName}", "components.RequestCard.declinerequest": "Rebutja la sol·licitud", "components.StatusBadge.openinarr": "Obre a {arr}", "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Sincronització de la llista de seguiment de Plex", @@ -1121,5 +1103,12 @@ "components.RequestModal.requestcollectiontitle": "Sol·licitud de col·lecció", "components.RequestModal.requestmovie4ktitle": "Sol·licitud de pel·lícula en 4K", "components.RequestModal.requestmovietitle": "Sol·licitud de pel·lícula", - "components.RequestModal.requestseriestitle": "Sol·licitud de sèries" + "components.RequestModal.requestseriestitle": "Sol·licitud de sèries", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Freqüència actual", + "components.TvDetails.Season.noepisodes": "Llista d'episodis no disponible.", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Neteja de la memòria cau d'imatges", + "components.Settings.SettingsJobsCache.imagecache": "Memòria cau d'imatges", + "components.Settings.SettingsJobsCache.imagecachecount": "Imatges a la memòria cau", + "components.Settings.SettingsJobsCache.imagecachesize": "Mida total de la memòria cau", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Quan està activat a la configuració, Overseerr enviarà les imatges a la memòria cau de fonts externes preconfigurades. Les imatges emmagatzemades a la memòria cau es desen a la vostra carpeta de configuració. Podeu trobar els fitxers a {appDataPath}/cache/images." } diff --git a/src/i18n/locale/cs.json b/src/i18n/locale/cs.json index 817e12ed4..dedf8b15f 100644 --- a/src/i18n/locale/cs.json +++ b/src/i18n/locale/cs.json @@ -548,7 +548,7 @@ "components.ManageSlideOver.manageModalClearMedia": "Vyčistit data", "components.ManageSlideOver.alltime": "Pořád", "components.ManageSlideOver.manageModalAdvanced": "Pokročilý", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Tímto nenávratně odstraníte všechna data pro tento {mediaType}, včetně všech požadavků. Pokud tato položka existuje ve vaší knihovně Plex, informace o médiích budou znovu vytvořeny během příštího skenování.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Tímto nenávratně odstraníte všechna data pro tento {mediaType}, včetně všech požadavků. Pokud tato položka existuje ve vaší knihovně {mediaServerName}, informace o médiích budou znovu vytvořeny během příštího skenování.", "components.ManageSlideOver.manageModalMedia": "Média", "components.ManageSlideOver.manageModalMedia4k": "4K Média", "components.ManageSlideOver.markallseasonsavailable": "Označte všechny sezóny jako dostupné", @@ -1087,7 +1087,7 @@ "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist synchronizace", "components.StatusBadge.managemedia": "Spravovat {mediaType}", "components.StatusBadge.openinarr": "Otevřít v {arr}", - "components.StatusBadge.playonplex": "Přehrávání cez Plex", + "components.StatusBadge.playonplex": "Přehrávání cez {mediaServerName}", "components.TvDetails.manageseries": "Spravovat sérii", "components.RequestBlock.delete": "Smazat požadavek", "components.RequestBlock.edit": "Upravit požadavek", diff --git a/src/i18n/locale/da.json b/src/i18n/locale/da.json index cd6da0d2e..15da81181 100644 --- a/src/i18n/locale/da.json +++ b/src/i18n/locale/da.json @@ -201,7 +201,7 @@ "components.IssueModal.issueVideo": "Video", "components.Layout.Sidebar.issues": "Problemer", "components.ManageSlideOver.manageModalClearMedia": "Ryd Mediedata", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Dette vil slette alle data for denne {mediaType} uden mulighed for gendannelse, inklusiv alle forespørgsler. Hvis dette objekt findes i dit Plex bibliotek vil medieinformationen blive genskabt under næste skanning.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Dette vil slette alle data for denne {mediaType} uden mulighed for gendannelse, inklusiv alle forespørgsler. Hvis dette objekt findes i dit {mediaServerName} bibliotek vil medieinformationen blive genskabt under næste skanning.", "components.IssueModal.CreateIssueModal.whatswrong": "Hvad er galt?", "components.IssueModal.issueAudio": "Lyd", "components.IssueModal.issueOther": "Andet", diff --git a/src/i18n/locale/de.json b/src/i18n/locale/de.json index 61153d82c..88561b487 100644 --- a/src/i18n/locale/de.json +++ b/src/i18n/locale/de.json @@ -1,6 +1,31 @@ { + "components.AirDateBadge.airedrelative": "Ausgestrahlt {relativeTime}", + "components.AirDateBadge.airsrelative": "Ausstrahlung {relativeTime}", + "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", + "components.CollectionDetails.numberofmovies": "{count} Filme", + "components.CollectionDetails.overview": "Übersicht", + "components.CollectionDetails.requestcollection": "Sammlung anfragen", + "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", + "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} Filme", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", + "components.Discover.DiscoverNetwork.networkSeries": "{network} Serien", + "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} Serien", + "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Deine Plex Watchlist", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.MovieGenreList.moviegenres": "Filmgenres", + "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", + "components.Discover.NetworkSlider.networks": "Sender", + "components.Discover.StudioSlider.studios": "Filmstudio", + "components.Discover.TvGenreList.seriesgenres": "Seriengenres", + "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", + "components.Discover.discover": "Entdecken", "components.Discover.discovermovies": "Beliebte Filme", "components.Discover.discovertv": "Beliebte Serien", + "components.Discover.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.Discover.noRequests": "Keine Anfragen.", + "components.Discover.plexwatchlist": "Deine Plex Watchlist", "components.Discover.popularmovies": "Beliebte Filme", "components.Discover.populartv": "Beliebte Serien", "components.Discover.recentlyAdded": "Kürzlich hinzugefügt", @@ -8,874 +33,23 @@ "components.Discover.trending": "Trends", "components.Discover.upcoming": "Kommende Filme", "components.Discover.upcomingmovies": "Kommende Filme", - "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", - "components.Layout.Sidebar.dashboard": "Entdecken", - "components.Layout.Sidebar.requests": "Anfragen", - "components.Layout.Sidebar.settings": "Einstellungen", - "components.Layout.Sidebar.users": "Benutzer", - "components.Layout.UserDropdown.signout": "Abmelden", - "components.MovieDetails.budget": "Budget", - "components.MovieDetails.cast": "Besetzung", - "components.MovieDetails.originallanguage": "Originalsprache", - "components.MovieDetails.overview": "Übersicht", - "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.MovieDetails.recommendations": "Empfehlungen", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", - "components.MovieDetails.revenue": "Einnahmen", - "components.MovieDetails.runtime": "{minutes} Minuten", - "components.MovieDetails.similar": "Ähnliche Titel", - "components.PersonDetails.appearsin": "Auftritte", - "components.PersonDetails.ascharacter": "als {character}", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.RequestList.requests": "Anfragen", - "components.RequestModal.cancel": "Anfrage abbrechen", - "components.RequestModal.extras": "Extras", - "components.RequestModal.numberofepisodes": "Anzahl der Folgen", - "components.RequestModal.pendingrequest": "Ausstehende Anfrage", - "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", - "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", - "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", - "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", - "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", - "components.RequestModal.season": "Staffel", - "components.RequestModal.seasonnumber": "Staffel {number}", - "components.RequestModal.selectseason": "Staffel(n) Auswählen", - "components.Search.searchresults": "Suchergebnisse", - "components.Settings.Notifications.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.authPass": "SMTP-Passwort", - "components.Settings.Notifications.authUser": "SMTP-Benutzername", - "components.Settings.Notifications.emailsender": "Absenderadresse", - "components.Settings.Notifications.smtpHost": "SMTP-Host", - "components.Settings.Notifications.smtpPort": "SMTP-Port", - "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", - "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.Notifications.webhookUrl": "Webhook-URL", - "components.Settings.RadarrModal.add": "Server hinzufügen", - "components.Settings.RadarrModal.apiKey": "API-Schlüssel", - "components.Settings.RadarrModal.baseUrl": "Basis-URL", - "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", - "components.Settings.RadarrModal.defaultserver": "Standardserver", - "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", - "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", - "components.Settings.RadarrModal.port": "Port", - "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.RadarrModal.rootfolder": "Stammordner", - "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", - "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.RadarrModal.server4k": "4K-Server", - "components.Settings.RadarrModal.servername": "Servername", - "components.Settings.RadarrModal.ssl": "SSL aktivieren", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", - "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", - "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.SonarrModal.add": "Server hinzufügen", - "components.Settings.SonarrModal.apiKey": "API-Schlüssel", - "components.Settings.SonarrModal.baseUrl": "Basis-URL", - "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", - "components.Settings.SonarrModal.defaultserver": "Standardserver", - "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", - "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", - "components.Settings.SonarrModal.port": "Port", - "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", - "components.Settings.SonarrModal.rootfolder": "Stammordner", - "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", - "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", - "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", - "components.Settings.SonarrModal.server4k": "4K-Server", - "components.Settings.SonarrModal.servername": "Servername", - "components.Settings.SonarrModal.ssl": "SSL aktivieren", - "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", - "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", - "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", - "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", - "components.Settings.activeProfile": "Aktives Profil", - "components.Settings.addradarr": "Radarr-Server hinzufügen", - "components.Settings.address": "Adresse", - "components.Settings.addsonarr": "Sonarr-Server hinzufügen", - "components.Settings.apikey": "API-Schlüssel", - "components.Settings.applicationurl": "Anwendungs-URL", - "components.Settings.cancelscan": "Durchsuchung abbrechen", - "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", - "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", - "components.Settings.default": "Standardmäßig", - "components.Settings.default4k": "Standard-4K", - "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", - "components.Settings.generalsettings": "Allgemeine Einstellungen", - "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", - "components.Settings.hostname": "Hostname oder IP-Adresse", - "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", - "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", - "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", - "components.Settings.menuAbout": "Über", - "components.Settings.menuGeneralSettings": "Allgemein", - "components.Settings.menuJobs": "Aufgaben und Cache", - "components.Settings.menuLogs": "Protokolle", - "components.Settings.menuNotifications": "Benachrichtigungen", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuServices": "Dienste", - "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", - "components.Settings.notrunning": "Nicht aktiv", - "components.Settings.plexlibraries": "Plex-Bibliotheken", - "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", - "components.Settings.plexsettings": "Plex-Einstellungen", - "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", - "components.Settings.port": "Port", - "components.Settings.radarrsettings": "Radarr-Einstellungen", - "components.Settings.sonarrsettings": "Sonarr-Einstellungen", - "components.Settings.ssl": "SSL", - "components.Settings.startscan": "Durchsuchung starten", - "components.Setup.configureplex": "Plex konfigurieren", - "components.Setup.configureservices": "Dienste konfigurieren", - "components.Setup.continue": "Fortfahren", - "components.Setup.finish": "Konfiguration beenden", - "components.Setup.finishing": "Fertigstellung …", - "components.Setup.loginwithplex": "Mit Plex anmelden", - "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", - "components.Setup.welcome": "Willkommen bei Jellyseerr", - "components.TvDetails.cast": "Besetzung", - "components.TvDetails.originallanguage": "Originalsprache", - "components.TvDetails.overview": "Übersicht", - "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", - "components.TvDetails.recommendations": "Empfehlungen", - "components.TvDetails.similar": "Ähnliche Serien", - "components.UserList.admin": "Admin", - "components.UserList.created": "Beigetreten", - "components.UserList.plexuser": "Plex-Benutzer", - "components.UserList.role": "Rolle", - "components.UserList.totalrequests": "Anfragen", - "components.UserList.user": "Benutzer", - "components.UserList.userlist": "Benutzerliste", - "i18n.approve": "Genehmigen", - "i18n.approved": "Genehmigt", - "i18n.available": "Verfügbar", - "i18n.cancel": "Abbrechen", - "i18n.decline": "Ablehnen", - "i18n.declined": "Abgelehnt", - "i18n.delete": "Löschen", - "i18n.movies": "Filme", - "i18n.partiallyavailable": "Teilweise verfügbar", - "i18n.pending": "Ausstehend", - "i18n.processing": "Verarbeiten", - "i18n.tvshows": "Serien", - "i18n.unavailable": "Nicht verfügbar", - "pages.oops": "Hoppla", - "pages.returnHome": "Zur Startseite", - "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", - "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", - "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", - "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", - "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Settings.SettingsAbout.version": "Version", - "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", - "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", - "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", - "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", - "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", - "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", - "components.Setup.tip": "Tipp", - "i18n.deleting": "Löschen …", - "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", - "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", - "components.UserList.deleteuser": "Benutzer löschen", - "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", - "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", - "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", - "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", - "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", - "components.TvDetails.anime": "Anime", - "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", - "components.TvDetails.showtype": "Serientyp", - "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", - "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", - "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", - "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", - "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", - "i18n.close": "Schließen", - "components.Settings.SettingsAbout.timezone": "Zeitzone", - "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", - "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", - "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", - "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", - "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", - "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", - "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", - "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", - "components.UserList.importfromplex": "Plex-Benutzer importieren", - "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", - "components.PersonDetails.crewmember": "Crew", - "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", - "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", - "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", - "components.TvDetails.firstAirDate": "Erstausstrahlung", - "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", - "components.TvDetails.watchtrailer": "Trailer ansehen", - "components.MovieDetails.watchtrailer": "Trailer ansehen", - "components.CollectionDetails.requestcollection": "Sammlung anfragen", - "components.CollectionDetails.overview": "Übersicht", - "components.CollectionDetails.numberofmovies": "{count} Filme", - "i18n.requested": "Angefragt", - "i18n.retry": "Wiederholen", - "i18n.failed": "Fehlgeschlagen", - "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", - "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", - "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.senderName": "Absendername", - "components.Settings.Notifications.chatId": "Chat-ID", - "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", - "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", - "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", - "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", - "components.Settings.SettingsAbout.documentation": "Dokumentation", - "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", - "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", - "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", - "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", - "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", - "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", - "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", - "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", - "i18n.request": "Anfragen", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", - "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", - "components.RequestList.sortModified": "Zuletzt geändert", - "components.RequestList.sortAdded": "Zuletzt angefragt", - "components.RequestList.showallrequests": "Zeige alle Anfragen", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.StatusBadge.status4k": "4K {status}", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", - "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", - "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", - "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", - "components.RequestButton.viewrequest": "Anfrage anzeigen", - "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", - "components.RequestButton.requestmore": "Mehr anfragen", - "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", - "components.RequestButton.declinerequest": "Anfrage ablehnen", - "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", - "components.RequestButton.approverequest": "Anfrage genehmigen", - "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", - "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", - "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", - "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", - "components.UserList.creating": "Erstelle…", - "components.UserList.autogeneratepassword": "Passwort automatisch generieren", - "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", - "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", - "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", - "components.UserList.password": "Passwort", - "components.UserList.localuser": "Lokaler Benutzer", - "components.UserList.email": "E-Mail-Adresse", - "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", - "components.UserList.create": "Erstellen", - "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle}-Konto", - "components.Login.password": "Passwort", - "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", - "components.Login.email": "E-Mail-Adresse", - "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", - "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", - "i18n.edit": "Bearbeiten", - "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", - "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", - "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", - "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", - "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", - "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", - "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", - "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", - "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", - "components.RequestBlock.server": "Zielserver", - "components.RequestBlock.rootfolder": "Stammordner", - "components.RequestBlock.profilechanged": "Qualitätsprofil", - "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", - "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", - "components.RequestModal.autoapproval": "Automatische Genehmigung", - "i18n.experimental": "Experimentell", - "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", - "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", - "components.Login.signinwithplex": "Benutze dein Plex-Konto", - "components.Login.signinheader": "Anmelden um fortzufahren", - "components.Login.signingin": "Anmelden …", - "components.Login.signin": "Anmelden", - "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", - "components.PlexLoginButton.signinwithplex": "Anmelden", - "components.PlexLoginButton.signingin": "Anmeldung läuft …", - "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", - "components.PermissionEdit.autoapprove": "Automatische Genehmigung", - "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", - "components.PermissionEdit.managerequests": "Anfragen verwalten", - "components.PermissionEdit.request": "Anfrage", - "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", - "components.PermissionEdit.admin": "Admin", - "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", - "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", - "components.UserList.bulkedit": "Ausgewählte bearbeiten", - "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", - "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", - "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", - "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", - "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", - "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", - "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", - "components.Settings.serverpresetRefreshing": "Rufe Server ab …", - "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", - "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", - "components.Settings.serverpreset": "Server", - "components.Settings.serverRemote": "entfernt", - "components.Settings.serverLocal": "lokal", - "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", - "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", - "components.PermissionEdit.users": "Benutzer verwalten", - "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", - "components.PermissionEdit.settings": "Einstellungen verwalten", - "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", - "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", - "components.PermissionEdit.request4kTv": "4K Serien anfragen", - "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", - "components.PermissionEdit.request4kMovies": "4K Filme anfragen", - "components.PermissionEdit.request4k": "4K anfragen", - "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", - "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", - "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", - "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", - "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", - "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", - "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.SonarrModal.externalUrl": "Externe URL", - "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", - "components.Settings.RadarrModal.externalUrl": "Externe URL", - "components.TvDetails.playonplex": "Auf Plex abspielen", - "components.MovieDetails.playonplex": "Auf Plex abspielen", - "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", - "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", - "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", - "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", - "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", - "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", - "components.Settings.SettingsJobsCache.jobtype": "Art", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", - "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", - "components.Settings.SettingsJobsCache.jobs": "Aufgaben", - "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", - "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", - "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", - "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", - "components.Settings.SettingsJobsCache.cachename": "Cache Name", - "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", - "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", - "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", - "components.Settings.SettingsJobsCache.cachehits": "Treffer", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", - "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", - "components.Settings.SettingsJobsCache.cache": "Cache", - "components.MovieDetails.markavailable": "Als verfügbar markieren", - "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", - "i18n.advanced": "Erweitert", - "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.UserList.users": "Benutzer", - "components.TvDetails.nextAirDate": "Nächstes Sendedatum", - "components.Setup.setup": "Einrichtung", - "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", - "components.Search.search": "Suchen", - "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", - "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.ResetPassword.confirmpassword": "Passwort bestätigen", - "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", - "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", - "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", - "components.ResetPassword.resetpassword": "Passwort zurücksetzen", - "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", - "components.ResetPassword.password": "Passwort", - "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", - "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", - "components.ResetPassword.email": "E-Mail-Adresse", - "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", - "components.PermissionEdit.viewrequests": "Anfragen anzeigen", - "components.Login.forgotpassword": "Passwort vergessen?", - "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", - "components.Settings.SettingsJobsCache.command": "Befehl", - "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", - "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", - "components.Discover.discover": "Entdecken", - "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", - "components.Settings.applicationTitle": "Anwendungstitel", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", - "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", - "components.Settings.SonarrModal.languageprofile": "Sprachprofil", - "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", - "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", - "components.Settings.SettingsJobsCache.process": "Prozess", - "components.AppDataWarning.dockerVolumeMissingDescription": "Die {appDataPath} Volume Einbindung wurde nicht korrekt konfiguriert. Alle Daten werden gelöscht, wenn dieser Container gestoppt oder neugestartet wird.", - "components.Settings.Notifications.sendSilently": "Sende stumm", - "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", - "components.UserList.sortRequests": "Anzahl der Anfragen", - "components.UserList.sortDisplayName": "Anzeigename", - "components.UserList.sortCreated": "Beitrittsdatum", - "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", - "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", - "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", - "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", - "components.UserProfile.recentrequests": "Kürzliche Anfragen", - "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", - "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", - "components.UserProfile.UserSettings.menuChangePass": "Passwort", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", - "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", - "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", - "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", - "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", - "components.Layout.UserDropdown.settings": "Einstellungen", - "components.Layout.UserDropdown.myprofile": "Profil", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", - "components.CollectionDetails.requestcollection4k": "Sammlung in 4K anfragen", - "components.Settings.region": "Region Entdecken", - "components.Settings.originallanguage": "Sprache Entdecken", "components.Discover.upcomingtv": "Kommende Serien", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", - "components.Settings.webhook": "Webhook", - "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", - "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", - "components.Settings.email": "E-Mail", - "components.RegionSelector.regionDefault": "Alle Regionen", - "components.RegionSelector.regionServerDefault": "Standard ({region})", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", - "components.UserList.owner": "Besitzer", - "components.UserList.accounttype": "Art", - "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", - "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", - "i18n.loading": "Lade …", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", - "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", - "components.Settings.Notifications.botUsername": "Bot Benutzername", - "components.Discover.DiscoverTvGenre.genreSeries": "{genre}-Serien", - "components.Discover.DiscoverStudio.studioMovies": "{studio}-Filme", - "components.Discover.DiscoverNetwork.networkSeries": "{network}-Serien", - "components.Discover.DiscoverMovieGenre.genreMovies": "{genre}-Filme", - "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", - "components.Settings.scanning": "Synchronisieren…", - "components.Settings.scan": "Bibliotheken synchronisieren", - "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", - "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", - "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", - "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", - "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", - "components.RequestList.RequestItem.requested": "Angefragt", - "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", - "components.RequestList.RequestItem.modified": "Geändert", - "components.Discover.StudioSlider.studios": "Filmstudio", - "components.Discover.NetworkSlider.networks": "Sender", - "components.Discover.DiscoverTvLanguage.languageSeries": "Serien auf {language}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Filme auf {language}", - "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", - "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", - "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", - "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", - "components.Settings.menuUsers": "Benutzer", - "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", - "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", - "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", - "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", - "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", - "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Sie können Ihre eigenen Berechtigungen nicht ändern.", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", - "components.TvDetails.episodeRuntime": "Episodenlaufzeit", - "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", - "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", - "components.Settings.Notifications.pgpPassword": "PGP Passwort", - "components.RequestModal.alreadyrequested": "Bereits Angefragt", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", - "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", - "components.Discover.TvGenreSlider.tvgenres": "Seriengenres", - "components.Discover.TvGenreList.seriesgenres": "Seriengenres", - "components.Discover.MovieGenreSlider.moviegenres": "Filmgenres", - "components.Discover.MovieGenreList.moviegenres": "Filmgenres", - "pages.errormessagewithcode": "{statusCode} - {error}", - "pages.somethingwentwrong": "Etwas ist schief gelaufen", - "pages.serviceunavailable": "Dienst nicht verfügbar", - "pages.pagenotfound": "Seite nicht gefunden", - "pages.internalservererror": "Interner Serverfehler", - "i18n.usersettings": "Benutzereinstellungen", - "i18n.settings": "Einstellungen", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", - "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", - "components.Settings.services": "Dienstleistungen", - "components.Settings.plex": "Plex", - "components.Settings.notifications": "Benachrichtigungen", - "components.Settings.general": "Allgemein", - "components.Settings.enablessl": "SSL aktivieren", - "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", - "components.Settings.cacheImages": "Bild-Caching aktivieren", - "components.Settings.SettingsUsers.users": "Benutzer", - "components.Settings.SettingsLogs.time": "Zeitstempel", - "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", - "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", - "components.Settings.SettingsLogs.pauseLogs": "Pause", - "components.Settings.SettingsLogs.message": "Nachricht", - "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", - "components.Settings.SettingsLogs.logs": "Protokolle", - "components.Settings.SettingsLogs.logDetails": "Protokolldetails", - "components.Settings.SettingsLogs.level": "Schweregrad", - "components.Settings.SettingsLogs.label": "Bezeichnung", - "components.Settings.SettingsLogs.filterWarn": "Warnung", - "components.Settings.SettingsLogs.filterInfo": "Infos", - "components.Settings.SettingsLogs.filterError": "Fehler", - "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", - "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", - "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", - "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", - "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", - "components.Settings.SettingsAbout.about": "Über", - "components.ResetPassword.passwordreset": "Passwort zurücksetzen", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PersonDetails.birthdate": "Geboren am {birthdate}", - "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", - "i18n.delimitedlist": "{a}, {b}", - "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", - "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", - "i18n.view": "Anzeigen", - "i18n.tvshow": "Serien", - "i18n.testing": "Testen…", - "i18n.test": "Test", - "i18n.status": "Status", - "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", - "i18n.saving": "Speichern…", - "i18n.save": "Änderungen speichern", - "i18n.retrying": "Wiederholen…", - "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", - "i18n.requesting": "Anfordern…", - "i18n.request4k": "In 4K anfragen", - "i18n.previous": "Bisherige", - "i18n.notrequested": "Nicht Angefragt", - "i18n.noresults": "Keine Ergebnisse.", - "i18n.next": "Weiter", - "i18n.movie": "Film", - "i18n.canceling": "Abbrechen…", - "i18n.back": "Zurück", - "i18n.areyousure": "Bist du sicher?", - "i18n.all": "Alle", - "components.UserProfile.totalrequests": "Anfragen insgesamt", - "components.UserProfile.seriesrequest": "Serienanfragen", - "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", - "components.UserProfile.movierequests": "Filmanfragen", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", - "components.UserProfile.unlimited": "Unbegrenzt", - "components.UserProfile.requestsperdays": "{limit} verbleibend", - "components.UserProfile.limit": "{remaining} von {limit}", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", - "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", - "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", - "components.TvDetails.originaltitle": "Originaltitel", - "components.Settings.serverSecure": "Sicher", - "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", - "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", - "components.Settings.mediaTypeSeries": "Serie", - "components.Settings.mediaTypeMovie": "Film", - "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.SonarrModal.tags": "Tags", - "components.Settings.SonarrModal.selecttags": "Wähle Tags", - "components.Settings.SonarrModal.notagoptions": "Keine Tags.", - "components.Settings.SonarrModal.loadingTags": "Lade Tags…", - "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", - "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", - "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", - "components.Settings.SonarrModal.animeTags": "Anime Tags", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", - "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", - "components.Settings.SettingsAbout.outofdate": "Veraltet", - "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", - "components.Settings.RadarrModal.tags": "Tags", - "components.Settings.RadarrModal.selecttags": "Tags auswählen", - "components.Settings.RadarrModal.notagoptions": "Keine Tags.", - "components.Settings.RadarrModal.loadingTags": "Lade Tags…", - "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", - "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", - "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", - "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", - "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", - "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", - "components.RequestModal.edit": "Anfrage bearbeiten", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", - "components.RequestModal.QuotaDisplay.season": "Staffeln", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", - "components.RequestModal.QuotaDisplay.movie": "Filme", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", - "components.RequestModal.AdvancedRequester.tags": "Tags", - "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", - "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", - "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", - "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", - "components.RequestCard.deleterequest": "Anfrage löschen", - "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", - "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", - "components.QuotaSelector.unlimited": "Unbegrenzt", - "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", - "components.MovieDetails.originaltitle": "Originaltitel", - "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", - "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", - "components.Layout.VersionStatus.outofdate": "Veraltet", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", - "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", - "components.LanguageSelector.languageServerDefault": "Standard ({language})", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", - "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", - "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstellen Sie einen Token in Ihren Account Einstellungen", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Geben sie eine valide URL an", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", - "components.RequestList.RequestItem.requesteddate": "Angefordert", - "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", - "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", - "components.PermissionEdit.requestTv": "Serien anfragen", - "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", - "components.PermissionEdit.requestMovies": "Filme anfragen", - "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn Ihre Medienanfragen verfügbar sind.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn Ihre Medienanfrage angenommen wurde.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", - "components.DownloadBlock.estimatedtime": "Geschätzte {time}", - "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", - "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", - "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", - "components.Settings.webAppUrl": "Web App URL", - "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", - "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", - "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", - "components.UserList.displayName": "Anzeigename", - "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", - "components.Settings.locale": "Sprache darstellen", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", - "components.Settings.webpush": "Web Push", - "components.Settings.is4k": "4K", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", - "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", - "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", - "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", - "components.Settings.Notifications.encryptionNone": "None", - "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", - "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", - "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", - "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", - "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", - "components.Settings.webAppUrlTip": "Leiten Sie Benutzer optional zur Web-App auf Ihrem Server anstelle der \"gehosteten\" Web-App", - "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", - "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Ihre Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", - "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", - "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", - "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", - "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", - "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", - "components.MovieDetails.showless": "Weniger Anzeigen", - "components.MovieDetails.showmore": "Mehr Anzeigen", - "components.MovieDetails.streamingproviders": "Streamt derzeit auf", - "components.TvDetails.streamingproviders": "Streamt derzeit auf", - "components.StatusBadge.status": "{status}", - "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", - "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", - "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Episode", - "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", - "components.IssueModal.CreateIssueModal.providedetail": "Geben Sie eine detaillierte Erklärung des Problems an.", - "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", + "components.DownloadBlock.estimatedtime": "Geschätzt {time}", + "components.DownloadBlock.formattedTitle": "{title}: Staffel {seasonNumber} Folge {episodeNumber}", "components.IssueDetails.IssueComment.areyousuredelete": "Soll dieser Kommentar wirklich gelöscht werden?", "components.IssueDetails.IssueComment.delete": "Kommentar löschen", "components.IssueDetails.IssueComment.edit": "Kommentar bearbeiten", "components.IssueDetails.IssueComment.postedby": "Gepostet {relativeTime} von {username}", "components.IssueDetails.IssueComment.postedbyedited": "Gepostet {relativeTime} von {username} (Bearbeitet)", - "components.IssueDetails.IssueComment.validationComment": "Eine Nachricht muss eingegeben werden", + "components.IssueDetails.IssueComment.validationComment": "Du musst eine Nachricht eingeben", "components.IssueDetails.IssueDescription.deleteissue": "Problem löschen", - "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", - "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", - "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", "components.IssueDetails.IssueDescription.description": "Beschreibung", "components.IssueDetails.IssueDescription.edit": "Beschreibung bearbeiten", "components.IssueDetails.allepisodes": "Alle Folgen", "components.IssueDetails.allseasons": "Alle Staffeln", "components.IssueDetails.closeissue": "Problem schließen", "components.IssueDetails.closeissueandcomment": "Schließen mit Kommentar", + "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", "components.IssueDetails.comments": "Kommentare", "components.IssueDetails.deleteissue": "Problem löschen", "components.IssueDetails.deleteissueconfirm": "Soll dieses Problem wirklich gelöscht werden?", @@ -884,158 +58,1083 @@ "components.IssueDetails.issuetype": "Art", "components.IssueDetails.lastupdated": "Letzte Aktualisierung", "components.IssueDetails.leavecomment": "Kommentar", - "components.IssueDetails.openinarr": "In {arr} öffnen", - "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", - "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", - "components.IssueDetails.unknownissuetype": "Unbekannt", - "components.IssueList.IssueItem.issuetype": "Typ", - "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", - "components.IssueList.IssueItem.problemepisode": "Betroffene Episode", - "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", - "components.IssueList.showallissues": "Alle Probleme anzeigen", - "components.IssueList.sortAdded": "Neueste", - "components.IssueList.sortModified": "Zuletzt geändert", "components.IssueDetails.nocomments": "Keine Kommentare.", "components.IssueDetails.openedby": "#{issueId} geöffnet {relativeTime} von {username}", "components.IssueDetails.openin4karr": "In {arr} 4K öffnen", + "components.IssueDetails.openinarr": "In {arr} öffnen", "components.IssueDetails.play4konplex": "Auf {mediaServerName} in 4K abspielen", "components.IssueDetails.playonplex": "Auf {mediaServerName} abspielen", - "components.IssueDetails.problemepisode": "Betroffene Episode", + "components.IssueDetails.problemepisode": "Betroffene Folge", "components.IssueDetails.problemseason": "Betroffene Staffeln", "components.IssueDetails.reopenissue": "Problem erneut öffnen", + "components.IssueDetails.reopenissueandcomment": "Mit Kommentar wieder öffnen", "components.IssueDetails.season": "Staffel {seasonNumber}", - "components.IssueDetails.toaststatusupdated": "Ausgabestatus erfolgreich aktualisiert!", + "components.IssueDetails.toasteditdescriptionfailed": "Beim Bearbeiten der Problembeschreibung ist ein Fehler aufgetreten.", + "components.IssueDetails.toasteditdescriptionsuccess": "Problembeschreibung erfolgreich bearbeitet!", + "components.IssueDetails.toastissuedeleted": "Problem erfolgreich gelöscht!", + "components.IssueDetails.toastissuedeletefailed": "Beim Löschen des Problems ist ein Fehler aufgetreten.", + "components.IssueDetails.toaststatusupdated": "Problemstatus erfolgreich aktualisiert!", + "components.IssueDetails.toaststatusupdatefailed": "Beim Aktualisieren des Problemstatus ist ein Fehler aufgetreten.", + "components.IssueDetails.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", "components.IssueList.IssueItem.issuestatus": "Status", + "components.IssueList.IssueItem.issuetype": "Typ", "components.IssueList.IssueItem.opened": "Geöffnet", - "components.IssueList.IssueItem.viewissue": "Problem anzeigen", - "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", - "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", - "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", - "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", - "i18n.open": "Offen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", - "components.IssueModal.CreateIssueModal.submitissue": "Problem einreichen", - "components.IssueModal.issueAudio": "Ton", - "components.IssueModal.issueSubtitles": "Untertitel", + "components.IssueList.IssueItem.openeduserdate": "{date} von {user}", + "components.IssueList.IssueItem.problemepisode": "Betroffene Folge", "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstellen Sie ein Token aus Ihren Kontoeinstellungen", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.IssueList.IssueItem.unknownissuetype": "Unbekannt", + "components.IssueList.IssueItem.viewissue": "Problem anzeigen", + "components.IssueList.issues": "Probleme", + "components.IssueList.showallissues": "Alle Probleme anzeigen", + "components.IssueList.sortAdded": "Neueste", + "components.IssueList.sortModified": "Zuletzt geändert", + "components.IssueModal.CreateIssueModal.allepisodes": "Alle Folgen", + "components.IssueModal.CreateIssueModal.allseasons": "Alle Staffeln", + "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung liefern", - "components.IssueModal.CreateIssueModal.whatswrong": "Was ist los?", + "components.IssueModal.CreateIssueModal.problemepisode": "Betroffene Folge", + "components.IssueModal.CreateIssueModal.problemseason": "Betroffene Staffel", + "components.IssueModal.CreateIssueModal.providedetail": "Gib eine detaillierte Erklärung des Problems an.", + "components.IssueModal.CreateIssueModal.reportissue": "Ein Problem melden", + "components.IssueModal.CreateIssueModal.season": "Staffel {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Problem melden", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Beim Senden des Problems ist ein Fehler aufgetreten.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Du musst eine Beschreibung eingeben", + "components.IssueModal.CreateIssueModal.whatswrong": "Was ist das Problem?", + "components.IssueModal.issueAudio": "Ton", "components.IssueModal.issueOther": "Andere", + "components.IssueModal.issueSubtitles": "Untertitel", + "components.IssueModal.issueVideo": "Video", + "components.LanguageSelector.languageServerDefault": "Standard ({language})", + "components.LanguageSelector.originalLanguageDefault": "Alle Sprachen", + "components.Layout.LanguagePicker.displaylanguage": "Sprache darstellen", + "components.Layout.SearchInput.searchPlaceholder": "Nach Filmen und Serien suchen", + "components.Layout.Sidebar.dashboard": "Entdecken", "components.Layout.Sidebar.issues": "Probleme", + "components.Layout.Sidebar.requests": "Anfragen", + "components.Layout.Sidebar.settings": "Einstellungen", + "components.Layout.Sidebar.users": "Benutzer", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmanfragen", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serienanfragen", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.UserDropdown.requests": "Anfragen", + "components.Layout.UserDropdown.settings": "Einstellungen", + "components.Layout.UserDropdown.signout": "Abmelden", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {Version} other {Versionen}} hinterher", + "components.Layout.VersionStatus.outofdate": "Veraltet", + "components.Layout.VersionStatus.streamdevelop": "Jellyseerr Entwicklung", + "components.Layout.VersionStatus.streamstable": "Jellyseerr Stabil", + "components.Login.email": "E-Mail-Adresse", + "components.Login.forgotpassword": "Passwort vergessen?", + "components.Login.loginerror": "Beim Anmelden ist etwas schief gelaufen.", + "components.Login.password": "Passwort", + "components.Login.signin": "Anmelden", + "components.Login.signingin": "Anmelden …", + "components.Login.signinheader": "Anmelden um fortzufahren", + "components.Login.signinwithoverseerr": "Verwende dein {applicationTitle} Konto", + "components.Login.signinwithplex": "Benutze dein Plex Konto", + "components.Login.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Login.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.ManageSlideOver.alltime": "Gesamte Zeit", "components.ManageSlideOver.downloadstatus": "Downloads", + "components.ManageSlideOver.manageModalAdvanced": "Fortgeschritten", "components.ManageSlideOver.manageModalClearMedia": "Daten löschen", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in Ihrer Plex-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Dadurch werden alle Daten für diesen {mediaType} unwiderruflich entfernt, einschließlich aller Anfragen. Wenn dieses Element in deiner {mediaServerName}-Bibliothek existiert, werden die Medieninformationen beim nächsten Scan neu erstellt.", "components.ManageSlideOver.manageModalIssues": "Problem eröffnen", + "components.ManageSlideOver.manageModalMedia": "Medien", + "components.ManageSlideOver.manageModalMedia4k": "4K Medien", "components.ManageSlideOver.manageModalNoRequests": "Keine Anfragen.", "components.ManageSlideOver.manageModalRequests": "Anfragen", "components.ManageSlideOver.manageModalTitle": "{mediaType} verwalten", "components.ManageSlideOver.mark4kavailable": "Als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", + "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", "components.ManageSlideOver.markavailable": "Als verfügbar markieren", "components.ManageSlideOver.movie": "Film", "components.ManageSlideOver.openarr": "In {arr} öffnen", "components.ManageSlideOver.openarr4k": "In 4K {arr} öffnen", + "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", + "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", + "components.ManageSlideOver.playedby": "Abgespielt von", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", "components.ManageSlideOver.tvshow": "Serie", - "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", - "components.NotificationTypeSelector.issueresolved": "Problem gelöst", - "components.NotificationTypeSelector.issueresolvedDescription": "Senden Sie Benachrichtigungen, wenn Probleme gelöst sind.", - "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen Sie sich benachrichtigen, wenn andere Benutzer Probleme melden.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", - "components.PermissionEdit.createissues": "Probleme melden", - "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", - "components.IssueList.issues": "Probleme", - "components.IssueModal.CreateIssueModal.episode": "Folgen {episodeNumber}", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problembericht für {title} erfolgreich übermittelt!", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Folge} other {Folgen}}", - "components.IssueModal.CreateIssueModal.toastviewissue": "Problem ansehen", - "components.IssueModal.issueVideo": "Video", + "components.MediaSlider.ShowMoreCard.seemore": "Mehr anzeigen", + "components.MovieDetails.MovieCast.fullcast": "Komplette Besetzung", + "components.MovieDetails.MovieCrew.fullcrew": "Komplette Crew", + "components.MovieDetails.budget": "Budget", + "components.MovieDetails.cast": "Besetzung", + "components.MovieDetails.digitalrelease": "Digitale Veröffentlichung", + "components.MovieDetails.managemovie": "Film verwalten", + "components.MovieDetails.mark4kavailable": "4K als verfügbar markieren", + "components.MovieDetails.markavailable": "Als verfügbar markieren", + "components.MovieDetails.originallanguage": "Originalsprache", + "components.MovieDetails.originaltitle": "Originaltitel", + "components.MovieDetails.overview": "Übersicht", + "components.MovieDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.MovieDetails.physicalrelease": "Physikalische Veröffentlichung", + "components.MovieDetails.play4konplex": "In 4K auf Plex abspielen", + "components.MovieDetails.playonplex": "Auf Plex abspielen", + "components.MovieDetails.productioncountries": "Produktions{countryCount, plural, one {land} other {länder}}", + "components.MovieDetails.recommendations": "Empfehlungen", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Veröffentlichungstermin} other {Veröffentlichungstermine}}", + "components.MovieDetails.reportissue": "Ein Problem melden", + "components.MovieDetails.revenue": "Einnahmen", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.runtime": "{minutes} Minuten", + "components.MovieDetails.showless": "Weniger Anzeigen", + "components.MovieDetails.showmore": "Mehr Anzeigen", + "components.MovieDetails.similar": "Ähnliche Titel", + "components.MovieDetails.streamingproviders": "Streamt derzeit auf", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", + "components.MovieDetails.theatricalrelease": "Kinostart", + "components.MovieDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.MovieDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.MovieDetails.watchtrailer": "Trailer ansehen", "components.NotificationTypeSelector.adminissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", + "components.NotificationTypeSelector.issuecomment": "Problem Kommentar", "components.NotificationTypeSelector.issuecommentDescription": "Sende eine Benachrichtigungen, wenn Probleme neue Kommentare erhalten.", "components.NotificationTypeSelector.issuecreated": "Gemeldetes Problem", + "components.NotificationTypeSelector.issuecreatedDescription": "Senden eine Benachrichtigungen, wenn Probleme gemeldet werden.", + "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", + "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.issueresolved": "Problem gelöst", + "components.NotificationTypeSelector.issueresolvedDescription": "Senden Benachrichtigungen, wenn Probleme gelöst sind.", + "components.NotificationTypeSelector.mediaAutoApproved": "Anfrage automatisch genehmigt", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Sende eine Benachrichtigung, wenn das angeforderte Medium automatisch genehmigt wird.", + "components.NotificationTypeSelector.mediaapproved": "Anfrage genehmigt", + "components.NotificationTypeSelector.mediaapprovedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien manuell genehmigt wurden.", + "components.NotificationTypeSelector.mediaautorequested": "Anfrage automatisch eingereicht", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Lasse dich benachrichtigen, wenn neue Medienanfragen für Objekte auf deiner Plex Watchlist automatisch eingereicht werden.", + "components.NotificationTypeSelector.mediaavailable": "Anfrage verfügbar", + "components.NotificationTypeSelector.mediaavailableDescription": "Sendet Benachrichtigungen, wenn angeforderte Medien verfügbar werden.", + "components.NotificationTypeSelector.mediadeclined": "Anfrage abgelehnt", + "components.NotificationTypeSelector.mediadeclinedDescription": "Sende eine Benachrichtigungen, wenn Medienanfragen abgelehnt wurden.", + "components.NotificationTypeSelector.mediafailed": "Anfrageverarbeitung fehlgeschlagen", + "components.NotificationTypeSelector.mediafailedDescription": "Sende Benachrichtigungen, wenn angeforderte Medien nicht zu Radarr oder Sonarr hinzugefügt werden konnten.", + "components.NotificationTypeSelector.mediarequested": "Anfrage in Bearbeitung", + "components.NotificationTypeSelector.mediarequestedDescription": "Sende Benachrichtigungen, wenn neue Medien angefordert wurden und auf Genehmigung warten.", + "components.NotificationTypeSelector.notificationTypes": "Benachrichtigungstypen", + "components.NotificationTypeSelector.userissuecommentDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Lassen dich benachrichtigen, wenn andere Benutzer Probleme melden.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Problemen abgeben.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Werde benachrichtigt, wenn andere Nutzer Medien anfordern, welche automatisch angenommen werden.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Werde benachrichtigt, wenn deine Medienanfrage angenommen wurde.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Sende eine Benachrichtigung, wenn deine Medienanfragen verfügbar sind.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Werde benachrichtigt, wenn deine Medienanfrage abgelehnt wurde.", + "components.NotificationTypeSelector.usermediafailedDescription": "Werde benachrichtigt, wenn die angeforderten Medien bei der Hinzufügung zu Radarr oder Sonarr fehlschlagen.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Werde benachrichtigt, wenn andere Nutzer ein Medium anfordern, welches eine Genehmigung erfordert.", + "components.PermissionEdit.admin": "Admin", + "components.PermissionEdit.adminDescription": "Voller Administratorzugriff. Umgeht alle anderen Rechteabfragen.", + "components.PermissionEdit.advancedrequest": "Erweiterte Anfragen", + "components.PermissionEdit.advancedrequestDescription": "Gewähre Berechtigung zum Ändern erweiterter Anfrageoptionen.", + "components.PermissionEdit.autoapprove": "Automatische Genehmigung", + "components.PermissionEdit.autoapprove4k": "Automatische Genehmigung von 4K", + "components.PermissionEdit.autoapprove4kDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen 4K Anfragen.", + "components.PermissionEdit.autoapprove4kMovies": "Automatische Genehmigung von 4K Filmen", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Filmanfragen.", + "components.PermissionEdit.autoapprove4kSeries": "Automatische Genehmigung von 4K Serien", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von 4K Serienanfragen.", + "components.PermissionEdit.autoapproveDescription": "Gewähre Berechtigung zur automatischen Genehmigung von allen nicht-4K Anfragen.", + "components.PermissionEdit.autoapproveMovies": "Automatische Genehmigung von Filmen", + "components.PermissionEdit.autoapproveMoviesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Filmanfragen.", + "components.PermissionEdit.autoapproveSeries": "Automatische Genehmigung von Serien", + "components.PermissionEdit.autoapproveSeriesDescription": "Gewähre Berechtigung zur automatischen Genehmigung von nicht-4K Serienanfragen.", + "components.PermissionEdit.autorequest": "Automatische Anfrage", + "components.PermissionEdit.autorequestDescription": "Erlaube die automatische Übermittlung von Anfragen für Nicht-4K-Medien über die Plex Watchlist.", + "components.PermissionEdit.autorequestMovies": "Auto-Request Filme", + "components.PermissionEdit.autorequestMoviesDescription": "Erlauben es, automatisch Anfragen für Nicht-4K-Filme über die Plex Watchlist zu stellen.", + "components.PermissionEdit.autorequestSeries": "Auto-Request-Serie", + "components.PermissionEdit.autorequestSeriesDescription": "Erlaube es, automatisch Anfragen für Nicht-4K-Serien über die Plex Watchlist zu stellen.", + "components.PermissionEdit.createissues": "Probleme melden", + "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", "components.PermissionEdit.manageissues": "Probleme verwalten", + "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", + "components.PermissionEdit.managerequests": "Anfragen verwalten", + "components.PermissionEdit.managerequestsDescription": "Gewähre Berechtigung zum Verwalten von Medienanfragen. Alle Anfragen eines Benutzers mit dieser Berechtigung werden automatisch genehmigt.", + "components.PermissionEdit.request": "Anfrage", + "components.PermissionEdit.request4k": "4K anfragen", + "components.PermissionEdit.request4kDescription": "Gewähre Berechtigung Medien in 4K anzufragen.", + "components.PermissionEdit.request4kMovies": "4K Filme anfragen", + "components.PermissionEdit.request4kMoviesDescription": "Berechtigt, Filme in 4K anzufragen.", + "components.PermissionEdit.request4kTv": "4K Serien anfragen", + "components.PermissionEdit.request4kTvDescription": "Berechtigt, Serien in 4K anzufragen.", + "components.PermissionEdit.requestDescription": "Berechtigt, nicht-4K Inhalte anzufragen.", + "components.PermissionEdit.requestMovies": "Filme anfragen", + "components.PermissionEdit.requestMoviesDescription": "Berechtigt, nicht-4K Filme anzufordern.", + "components.PermissionEdit.requestTv": "Serien anfragen", + "components.PermissionEdit.requestTvDescription": "Berechtigt, nicht-4K Serien anzufragen.", + "components.PermissionEdit.settings": "Einstellungen verwalten", + "components.PermissionEdit.settingsDescription": "Gewähre Berechtigung um globale Einstellungen zu ändern. Ein Benutzer muss über diese Berechtigung verfügen, um sie anderen Benutzern erteilen zu können.", + "components.PermissionEdit.users": "Benutzer verwalten", + "components.PermissionEdit.usersDescription": "Gewähre Berechtigung zum Verwalten von Benutzern. Benutzer mit dieser Berechtigung können Benutzer mit Adminrechten nicht bearbeiten oder Adminrechte erteilen.", "components.PermissionEdit.viewissues": "Probleme ansehen", + "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", + "components.PermissionEdit.viewrecent": "Kürzlich hinzugefügt anzeigen", + "components.PermissionEdit.viewrecentDescription": "Erteile die Erlaubnis, die Liste der kürzlich hinzugefügten Medien anzuzeigen.", + "components.PermissionEdit.viewrequests": "Anfragen anzeigen", + "components.PermissionEdit.viewrequestsDescription": "Berechtigt, Anfragen anderer Nutzer zu sehen.", + "components.PermissionEdit.viewwatchlists": "Plex Watchlists anzeigen", + "components.PermissionEdit.viewwatchlistsDescription": "Erteile die Erlaubnis, die Plex Watchlists anderer Benutzer einzusehen.", + "components.PersonDetails.alsoknownas": "Auch bekannt unter: {names}", + "components.PersonDetails.appearsin": "Auftritte", + "components.PersonDetails.ascharacter": "als {character}", + "components.PersonDetails.birthdate": "Geboren am {birthdate}", + "components.PersonDetails.crewmember": "Crew", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Anmeldung läuft …", + "components.PlexLoginButton.signinwithplex": "Anmelden", + "components.QuotaSelector.days": "{count, plural, one {tag} other {tage}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} pro {quotaDays} {days}", + "components.QuotaSelector.movies": "{count, plural, one {Film} other {Filme}}", + "components.QuotaSelector.seasons": "{count, plural, one {Staffel} other {Staffeln}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} pro {quotaDays} {days}", + "components.QuotaSelector.unlimited": "Unbegrenzt", + "components.RegionSelector.regionDefault": "Alle Regionen", + "components.RegionSelector.regionServerDefault": "Standard ({region})", + "components.RequestBlock.approve": "Anfrage genehmigen", + "components.RequestBlock.decline": "Anfrage ablehnen", + "components.RequestBlock.delete": "Anfrage löschen", + "components.RequestBlock.edit": "Anfrage bearbeiten", + "components.RequestBlock.languageprofile": "Sprachprofil", + "components.RequestBlock.lastmodifiedby": "Zuletzt geändert von", + "components.RequestBlock.profilechanged": "Qualitätsprofil", + "components.RequestBlock.requestdate": "Datum der Anfrage", + "components.RequestBlock.requestedby": "Angefordert von", + "components.RequestBlock.requestoverrides": "Anfrage Überschreibungen", + "components.RequestBlock.rootfolder": "Stammordner", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestBlock.server": "Zielserver", + "components.RequestButton.approve4krequests": "Genehmige {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}}", + "components.RequestButton.approverequest": "Anfrage genehmigen", + "components.RequestButton.approverequest4k": "4K Anfrage genehmigen", + "components.RequestButton.approverequests": "Genehmige {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}}", + "components.RequestButton.decline4krequests": "Lehne {requestCount, plural, one {4K Anfrage} other {{requestCount} 4K Anfragen}} ab", + "components.RequestButton.declinerequest": "Anfrage ablehnen", + "components.RequestButton.declinerequest4k": "4K Anfrage ablehnen", + "components.RequestButton.declinerequests": "Lehne {requestCount, plural, one {Anfrage} other {{requestCount} Anfragen}} ab", + "components.RequestButton.requestmore": "Mehr anfragen", + "components.RequestButton.requestmore4k": "Mehr in 4K anfragen", + "components.RequestButton.viewrequest": "Anfrage anzeigen", + "components.RequestButton.viewrequest4k": "4K Anfrage anzeigen", + "components.RequestCard.approverequest": "Anfrage genehmigen", + "components.RequestCard.cancelrequest": "Anfrage abbrechen", + "components.RequestCard.declinerequest": "Anfrage ablehnen", + "components.RequestCard.deleterequest": "Anfrage löschen", + "components.RequestCard.editrequest": "Anfrage bearbeiten", + "components.RequestCard.failedretry": "Beim erneuten Versuch die Anfrage zu senden ist ein Fehler aufgetreten.", + "components.RequestCard.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Unbekannter Titel", + "components.RequestList.RequestItem.cancelRequest": "Anfrage abbrechen", + "components.RequestList.RequestItem.deleterequest": "Anfrage löschen", + "components.RequestList.RequestItem.editrequest": "Anfrage bearbeiten", + "components.RequestList.RequestItem.failedretry": "Beim Wiederholen der Anfrage ist etwas schief gelaufen.", + "components.RequestList.RequestItem.mediaerror": "Der zugehörige Titel für diese Anfrage ist nicht mehr verfügbar.", + "components.RequestList.RequestItem.modified": "Geändert", + "components.RequestList.RequestItem.modifieduserdate": "{date} von {user}", + "components.RequestList.RequestItem.requested": "Angefragt", + "components.RequestList.RequestItem.requesteddate": "Angefordert", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Staffel} other {Staffeln}}", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Unbekannter Titel", + "components.RequestList.requests": "Anfragen", + "components.RequestList.showallrequests": "Zeige alle Anfragen", + "components.RequestList.sortAdded": "Zuletzt angefragt", + "components.RequestList.sortModified": "Zuletzt geändert", + "components.RequestModal.AdvancedRequester.advancedoptions": "Erweiterte Einstellungen", + "components.RequestModal.AdvancedRequester.animenote": "* Diese Serie ist ein Anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Standard)", + "components.RequestModal.AdvancedRequester.destinationserver": "Zielserver", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Sprachprofil", + "components.RequestModal.AdvancedRequester.notagoptions": "Keine Tags.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Qualitätsprofil", + "components.RequestModal.AdvancedRequester.requestas": "Anfragen als", + "components.RequestModal.AdvancedRequester.rootfolder": "Stammordner", + "components.RequestModal.AdvancedRequester.selecttags": "Wähle Tags aus", + "components.RequestModal.AdvancedRequester.tags": "Tags", + "components.RequestModal.QuotaDisplay.allowedRequests": "Du darfst {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Dieser Benutzer darf {limit} {type} Anfragen alle {days} Tage machen.", + "components.RequestModal.QuotaDisplay.movie": "Filme", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {Film} other {Filme}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Es sind nicht genügend Staffelanfragen verbleibend", + "components.RequestModal.QuotaDisplay.quotaLink": "Du kannst eine Zusammenfassung deiner Anfragenlimits auf deiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Du kannst eine Zusammenfassung der Anfragenlimits dieses Benutzers auf seiner profile page ansehen.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Keine} other {#}} {type} {remaining, plural, one {Anfrage} other {Anfragen}} verbleibend", + "components.RequestModal.QuotaDisplay.requiredquota": "Du musst mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Dieser Benutzer muss mindestens {seasons} {seasons, plural, one {Staffel Anfrage} other {Staffel Anfragen}} verbleibend haben, um eine Anfrage für diese Serie einzureichen.", + "components.RequestModal.QuotaDisplay.season": "Staffeln", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {Staffel} other {Staffeln}}", + "components.RequestModal.SearchByNameModal.nomatches": "Wir konnten keine Übereinstimmung für diese Serie finden.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Wir konnten deine Anfrage nicht automatisch zuordnen. Bitte wähle eine korrekte Übereinstimmung aus der Liste aus.", + "components.RequestModal.alreadyrequested": "Bereits Angefragt", + "components.RequestModal.approve": "Anfrage genehmigen", + "components.RequestModal.autoapproval": "Automatische Genehmigung", + "components.RequestModal.cancel": "Anfrage abbrechen", + "components.RequestModal.edit": "Anfrage bearbeiten", + "components.RequestModal.errorediting": "Beim Bearbeiten der Anfrage ist etwas schief gelaufen.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "Anzahl der Folgen", + "components.RequestModal.pending4krequest": "Ausstehende 4K Anfrage", + "components.RequestModal.pendingapproval": "Deine Anfrage steht noch aus.", + "components.RequestModal.pendingrequest": "Ausstehende Anfrage", + "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", + "components.RequestModal.requestCancel": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestSuccess": "{title} erfolgreich angefragt!", + "components.RequestModal.requestadmin": "Diese Anfrage wird automatisch genehmigt.", + "components.RequestModal.requestcancelled": "Anfrage für {title} abgebrochen.", + "components.RequestModal.requestcollection4ktitle": "Sammlung in 4K anfordern", + "components.RequestModal.requestcollectiontitle": "Sammlung anfordern", + "components.RequestModal.requestedited": "Anfrage für {title} erfolgreich bearbeitet!", + "components.RequestModal.requesterror": "Beim Senden der Anfragen ist etwas schief gelaufen.", + "components.RequestModal.requestfrom": "Die Anfrage von {username} muss noch genehmigt werden.", + "components.RequestModal.requestmovie4ktitle": "Film in 4K anfordern", + "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", + "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", + "components.RequestModal.requestmovietitle": "Film anfordern", + "components.RequestModal.requestseasons": "{seasonCount} {seasonCount, plural, one {Staffel} other {Staffeln}} anfragen", + "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", + "components.RequestModal.requestseries4ktitle": "Serie in 4K anfordern", + "components.RequestModal.requestseriestitle": "Serie anfordern", + "components.RequestModal.season": "Staffel", + "components.RequestModal.seasonnumber": "Staffel {number}", + "components.RequestModal.selectmovies": "Wähle Film(e)", + "components.RequestModal.selectseason": "Staffel(n) Auswählen", + "components.ResetPassword.confirmpassword": "Passwort bestätigen", + "components.ResetPassword.email": "E-Mail-Adresse", + "components.ResetPassword.emailresetlink": "Wiederherstellungs-Link per E-Mail senden", + "components.ResetPassword.gobacklogin": "Zurück zur Anmeldeseite", + "components.ResetPassword.password": "Passwort", + "components.ResetPassword.passwordreset": "Passwort zurücksetzen", + "components.ResetPassword.requestresetlinksuccessmessage": "Ein Link zum Zurücksetzen des Passworts wird an die angegebene E-Mail-Adresse gesendet, wenn sie einem gültigen Benutzer zugeordnet ist.", + "components.ResetPassword.resetpassword": "Passwort zurücksetzen", + "components.ResetPassword.resetpasswordsuccessmessage": "Passwort wurde erfolgreich zurückgesetzt!", + "components.ResetPassword.validationemailrequired": "Du musst eine gültige E-Mail-Adresse angeben", + "components.ResetPassword.validationpasswordmatch": "Passwörter müssen übereinstimmen", + "components.ResetPassword.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.ResetPassword.validationpasswordrequired": "Du musst ein Passwort angeben", + "components.Search.search": "Suchen", + "components.Search.searchresults": "Suchergebnisse", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", + "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Profil Name", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Wird nur benötigt wenn default Profil nicht verwendet wird", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "LunaSea Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "LunaSea Benachrichtigungseinstellungen wurden gespeichert!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "LunaSea Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "LunaSea Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "LunaSea Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Deine Benutzer oder Geräte basierende Benachrichtigungs-Webhook URL", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Zugangstoken", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Erstelle einen Token aus deinen Kontoeinstellungen", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Pushbullet-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Pushbullet Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Pushbullet test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Pushbullet test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Du musst ein Zugangstoken angeben", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Anwendungs API-Token", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registriere eine Anwendung für die Benutzung mit Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Pushover-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Pushover Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Pushover Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Pushover Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Benutzer- oder Gruppenschlüssel", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ihr 30-stelliger Nutzer oder Gruppen Identifikator", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Du musst ein gültiges Anwendungstoken angeben", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Sie müssen einen gültigen Benutzer-/Gruppenschlüssel angeben", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Slack-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Slack-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Slack Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Slack Test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Slack Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "Webhook URL", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Erstelle eine Eingehende Webhook integration", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Um web push Benachrichtigungen zu erhalten, muss Jellyseerr über HTTPS gehen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Web push Test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Web push test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Web push test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Dienst aktivieren", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisierungsüberschrift", + "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-Inhalt", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Auf Standard zurücksetzen", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "JSON-Inhalt erfolgreich zurückgesetzt!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Hilfe zu Vorlagenvariablen", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Webhook Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Webhook test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Webhook Test Benachrichtigung gesendet!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Du musst einen gültigen JSON-Inhalt angeben", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Sie müssen mindestens einen Benachrichtigungstypen auswählen", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Webhook-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Webhook-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.agentenabled": "Agent aktivieren", + "components.Settings.Notifications.allowselfsigned": "Selbstsignierte Zertifikate erlauben", + "components.Settings.Notifications.authPass": "SMTP-Passwort", + "components.Settings.Notifications.authUser": "SMTP-Benutzername", + "components.Settings.Notifications.botAPI": "Bot-Autorisierungstoken", + "components.Settings.Notifications.botApiTip": "Erstelle einen Bot für die Verwendung mit Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "Bot Avatar URL", + "components.Settings.Notifications.botUsername": "Bot Benutzername", + "components.Settings.Notifications.botUsernameTip": "Benutzern erlauben, einen Chat mit dem Bot zu starten und ihre eigenen Benachrichtigungen konfigurieren", + "components.Settings.Notifications.chatId": "Chat-ID", + "components.Settings.Notifications.chatIdTip": "Starte einen Chat mit dem Bot, füge @get_id_bot hinzu, und erteile den /my_id Befehl", + "components.Settings.Notifications.discordsettingsfailed": "Discord-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.emailsender": "Absenderadresse", + "components.Settings.Notifications.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", + "components.Settings.Notifications.encryption": "Verschlüsselungsmethode", + "components.Settings.Notifications.encryptionDefault": "Verwende STARTTLS wenn verfügbar", + "components.Settings.Notifications.encryptionImplicitTls": "Benutze Implizit TLS", + "components.Settings.Notifications.encryptionNone": "Keine", + "components.Settings.Notifications.encryptionOpportunisticTls": "STARTTLS immer verwenden", + "components.Settings.Notifications.encryptionTip": "Im Regelfall verwendet Implicit TLS Port 465 und STARTTLS Port 587", + "components.Settings.Notifications.pgpPassword": "PGP Passwort", + "components.Settings.Notifications.pgpPasswordTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "PGP Privater Schlüssel", + "components.Settings.Notifications.pgpPrivateKeyTip": "Signiere verschlüsselte E-Mail-Nachrichten mit OpenPGP", + "components.Settings.Notifications.sendSilently": "Sende stumm", + "components.Settings.Notifications.sendSilentlyTip": "Sende Benachrichtigungen ohne Ton", + "components.Settings.Notifications.senderName": "Absendername", + "components.Settings.Notifications.smtpHost": "SMTP-Host", + "components.Settings.Notifications.smtpPort": "SMTP-Port", + "components.Settings.Notifications.telegramsettingsfailed": "Telegram-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.Settings.Notifications.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.Settings.Notifications.toastDiscordTestFailed": "Discord test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastDiscordTestSending": "Discord test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastDiscordTestSuccess": "Discord test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastEmailTestFailed": "E-Mail test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastEmailTestSending": "Email test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastEmailTestSuccess": "Email test Benachrichtigung gesendet!", + "components.Settings.Notifications.toastTelegramTestFailed": "Telegram test Benachrichtigung fehlgeschlagen.", + "components.Settings.Notifications.toastTelegramTestSending": "Telegram test Benachrichtigung wird gesendet…", + "components.Settings.Notifications.toastTelegramTestSuccess": "Telegram test Benachrichtigung gesendet!", + "components.Settings.Notifications.validationBotAPIRequired": "Du musst ein Bot-Autorisierungstoken angeben", + "components.Settings.Notifications.validationChatIdRequired": "Du musst eine gültige Chat-ID angeben", + "components.Settings.Notifications.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.Settings.Notifications.validationPgpPassword": "Ein PGP-Passwort muss angeben werden", + "components.Settings.Notifications.validationPgpPrivateKey": "Ein gültiger privater PGP-Schlüssel muss angeben werden", + "components.Settings.Notifications.validationSmtpHostRequired": "Du musst einen gültigen Hostnamen oder eine gültige IP-Adresse angeben", + "components.Settings.Notifications.validationSmtpPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.Notifications.validationTypes": "Es muss mindestens ein Benachrichtigungstyp ausgewählt werden", + "components.Settings.Notifications.validationUrl": "Du musst eine gültige URL angeben", + "components.Settings.Notifications.webhookUrl": "Webhook-URL", + "components.Settings.Notifications.webhookUrlTip": "Erstelle eine webhook Integration auf dem Server", + "components.Settings.RadarrModal.add": "Server hinzufügen", + "components.Settings.RadarrModal.announced": "Angekündigt", + "components.Settings.RadarrModal.apiKey": "API-Schlüssel", + "components.Settings.RadarrModal.baseUrl": "Basis-URL", + "components.Settings.RadarrModal.create4kradarr": "Neuen 4K Radarr Server hinzufügen", + "components.Settings.RadarrModal.createradarr": "Neuen Radarr-Server hinzufügen", + "components.Settings.RadarrModal.default4kserver": "Standard 4K Server", + "components.Settings.RadarrModal.defaultserver": "Standardserver", + "components.Settings.RadarrModal.edit4kradarr": "4K Radarr Server bearbeiten", + "components.Settings.RadarrModal.editradarr": "Radarr-Server bearbeiten", + "components.Settings.RadarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.RadarrModal.externalUrl": "Externe URL", + "components.Settings.RadarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.RadarrModal.inCinemas": "Im Kino", + "components.Settings.RadarrModal.loadingTags": "Lade Tags…", + "components.Settings.RadarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.RadarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.RadarrModal.minimumAvailability": "Mindestverfügbarkeit", + "components.Settings.RadarrModal.notagoptions": "Keine Tags.", + "components.Settings.RadarrModal.port": "Port", + "components.Settings.RadarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.RadarrModal.released": "Veröffentlicht", + "components.Settings.RadarrModal.rootfolder": "Stammordner", + "components.Settings.RadarrModal.selectMinimumAvailability": "Wähle die Mindestverfügbarkeit", + "components.Settings.RadarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.RadarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.RadarrModal.selecttags": "Tags auswählen", + "components.Settings.RadarrModal.server4k": "4K-Server", + "components.Settings.RadarrModal.servername": "Servername", + "components.Settings.RadarrModal.ssl": "SSL aktivieren", + "components.Settings.RadarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.RadarrModal.tags": "Tags", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.RadarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.RadarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Verbindung zu Radarr fehlgeschlagen.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "Radarr-Verbindung erfolgreich hergestellt!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.RadarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Die URL-Basis muss einen vorangestellten Schrägstrich enthalten", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem Schrägstrich enden", + "components.Settings.RadarrModal.validationHostnameRequired": "Es muss ein gültiger Hostname oder eine IP-Adresse angegeben werden", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Du musst eine Mindestverfügbarkeit auswählen", + "components.Settings.RadarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.RadarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.RadarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.RadarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.SettingsAbout.Releases.currentversion": "Aktuell", + "components.Settings.SettingsAbout.Releases.latestversion": "Neuste", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Informationen der Version nicht verfügbar.", + "components.Settings.SettingsAbout.Releases.releases": "Veröffentlichungen", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Änderungsprotokoll {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Änderungsprotokoll anzeigen", + "components.Settings.SettingsAbout.Releases.viewongithub": "Auf GitHub anzeigen", + "components.Settings.SettingsAbout.about": "Über", + "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", + "components.Settings.SettingsAbout.betawarning": "Dies ist eine BETA Software. Einige Funktionen könnten nicht funktionieren oder nicht stabil funktionieren. Bitte auf GitHub alle Fehler melden!", + "components.Settings.SettingsAbout.documentation": "Dokumentation", + "components.Settings.SettingsAbout.gettingsupport": "Hilfe erhalten", + "components.Settings.SettingsAbout.githubdiscussions": "GitHub-Diskussionen", + "components.Settings.SettingsAbout.helppaycoffee": "Hilf uns Kaffee zu bezahlen", + "components.Settings.SettingsAbout.outofdate": "Veraltet", + "components.Settings.SettingsAbout.overseerrinformation": "Über Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Bevorzugt", + "components.Settings.SettingsAbout.runningDevelop": "Sie benutzen den develop von Jellyseerr, der nur für diejenigen empfohlen wird, die an der Entwicklung mitwirken oder bei den neuesten Tests helfen.", + "components.Settings.SettingsAbout.supportoverseerr": "Unterstütze Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zeitzone", + "components.Settings.SettingsAbout.totalmedia": "Medien insgesamt", + "components.Settings.SettingsAbout.totalrequests": "Anfragen insgesamt", + "components.Settings.SettingsAbout.uptodate": "Auf dem neusten Stand", + "components.Settings.SettingsAbout.version": "Version", + "components.Settings.SettingsJobsCache.cache": "Cache", + "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr speichert Anfragen an externe API Endpunkte zwischen, um die Leistung zu optimieren und unnötige API Aufrufe zu minimieren.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} Cache geleert.", + "components.Settings.SettingsJobsCache.cachehits": "Treffer", + "components.Settings.SettingsJobsCache.cachekeys": "Schlüssel insgesamt", + "components.Settings.SettingsJobsCache.cacheksize": "Schlüsselgröße", + "components.Settings.SettingsJobsCache.cachemisses": "Verfehlte", + "components.Settings.SettingsJobsCache.cachename": "Cache Name", + "components.Settings.SettingsJobsCache.cachevsize": "Wertgröße", + "components.Settings.SettingsJobsCache.canceljob": "Aufgabe abbrechen", + "components.Settings.SettingsJobsCache.command": "Befehl", + "components.Settings.SettingsJobsCache.download-sync": "Download Synchronisierung", + "components.Settings.SettingsJobsCache.download-sync-reset": "Download Synchronisierung Zurücksetzung", + "components.Settings.SettingsJobsCache.editJobSchedule": "Job ändern", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Aktuelle Frequenz", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Häufigkeit", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Alle {jobScheduleHours, plural, one {Stunde} other {{jobScheduleHours} Stunden}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Alle {jobScheduleMinutes, plural, one {Minute} other {{jobScheduleMinutes} Minuten}}", + "components.Settings.SettingsJobsCache.flushcache": "Cache leeren", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Bild Cache Bereinigung", + "components.Settings.SettingsJobsCache.imagecache": "Bild Cache", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Wenn diese Funktion in den Einstellungen aktiviert ist, wird Jellyseerr Bilder aus vorkonfigurierten externen Quellen cachen und ausliefern. Bilder im Cache werden in deinem Config Ordner abgelegt. Die findest die Dateien unter {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Bilder im Cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Gesamtgröße des Cache", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scan der zuletzt hinzugefügten Jellyfin Medien", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Vollständiger Jellyfin Bibliotheken Scan", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Beim Speichern des Auftrags ging etwas schief.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Auftrag erfolgreich bearbeitet!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} abgebrochen.", + "components.Settings.SettingsJobsCache.jobname": "Aufgabenname", + "components.Settings.SettingsJobsCache.jobs": "Aufgaben", + "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr führt bestimmte Wartungsaufgaben als regulär geplante Aufgaben durch, aber sie können auch manuell ausgeführt werden. Manuelles Ausführen einer Aufgabe ändert ihren Zeitplan nicht.", + "components.Settings.SettingsJobsCache.jobsandcache": "Aufgaben und Cache", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} gestartet.", + "components.Settings.SettingsJobsCache.jobtype": "Art", + "components.Settings.SettingsJobsCache.nextexecution": "Nächste Ausführung", + "components.Settings.SettingsJobsCache.plex-full-scan": "Vollständiger Plex Bibliotheken Scan", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan der zuletzt hinzugefügten Plex Medien", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist Sync", + "components.Settings.SettingsJobsCache.process": "Prozess", + "components.Settings.SettingsJobsCache.radarr-scan": "Radarr Scan", + "components.Settings.SettingsJobsCache.runnow": "Jetzt ausführen", + "components.Settings.SettingsJobsCache.sonarr-scan": "Sonarr Scan", + "components.Settings.SettingsJobsCache.unknownJob": "Unbekannte Aufgabe", + "components.Settings.SettingsLogs.copiedLogMessage": "Protokollnachricht in die Zwischenablage kopiert.", + "components.Settings.SettingsLogs.copyToClipboard": "In Zwischenablage kopieren", + "components.Settings.SettingsLogs.extraData": "Zusätzliche Daten", + "components.Settings.SettingsLogs.filterDebug": "Fehlersuche", + "components.Settings.SettingsLogs.filterError": "Fehler", + "components.Settings.SettingsLogs.filterInfo": "Infos", + "components.Settings.SettingsLogs.filterWarn": "Warnung", + "components.Settings.SettingsLogs.label": "Bezeichnung", + "components.Settings.SettingsLogs.level": "Schweregrad", + "components.Settings.SettingsLogs.logDetails": "Protokolldetails", + "components.Settings.SettingsLogs.logs": "Protokolle", + "components.Settings.SettingsLogs.logsDescription": "Du kannst diese Protokolle auch direkt über stdout oder in {appDataPath}/logs/overseerr.log anzeigen.", + "components.Settings.SettingsLogs.message": "Nachricht", + "components.Settings.SettingsLogs.pauseLogs": "Pause", + "components.Settings.SettingsLogs.resumeLogs": "Fortsetzen", + "components.Settings.SettingsLogs.showall": "Alle Protokolle anzeigen", + "components.Settings.SettingsLogs.time": "Zeitstempel", + "components.Settings.SettingsLogs.viewdetails": "Details anzeigen", + "components.Settings.SettingsUsers.defaultPermissions": "Standardberechtigungen", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Iniziale Berechtigungen für neue Nutzer", + "components.Settings.SettingsUsers.localLogin": "Lokale Anmeldung aktivieren", + "components.Settings.SettingsUsers.localLoginTip": "Berechtigt Nutzer sich über E-Mail und Passwort einzuloggen, statt Plex OAuth", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Globales Filmanfragenlimit", + "components.Settings.SettingsUsers.newPlexLogin": "Aktiviere neuen {mediaServerName} Log-In", + "components.Settings.SettingsUsers.newPlexLoginTip": "Erlaube {mediaServerName} Nutzer Log-In, ohne diese zuerst importieren zu müssen", + "components.Settings.SettingsUsers.toastSettingsFailure": "Beim Speichern der Einstellungen ist ein Fehler aufgetreten.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Benutzereinstellungen erfolgreich gespeichert!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Globales Serienanfragenlimit", + "components.Settings.SettingsUsers.userSettings": "Benutzereinstellungen", + "components.Settings.SettingsUsers.userSettingsDescription": "Globale und Standardbenutzereinstellungen konfigurieren.", + "components.Settings.SettingsUsers.users": "Benutzer", + "components.Settings.SonarrModal.add": "Server hinzufügen", + "components.Settings.SonarrModal.animeTags": "Anime Tags", + "components.Settings.SonarrModal.animelanguageprofile": "Anime-Sprachprofil", + "components.Settings.SonarrModal.animequalityprofile": "Animequalitätsprofil", + "components.Settings.SonarrModal.animerootfolder": "Animestammverzeichnis", + "components.Settings.SonarrModal.apiKey": "API-Schlüssel", + "components.Settings.SonarrModal.baseUrl": "Basis-URL", + "components.Settings.SonarrModal.create4ksonarr": "Neuen 4K Sonarr Server hinzufügen", + "components.Settings.SonarrModal.createsonarr": "Neuen Sonarr-Server hinzufügen", + "components.Settings.SonarrModal.default4kserver": "Standard 4K Server", + "components.Settings.SonarrModal.defaultserver": "Standardserver", + "components.Settings.SonarrModal.edit4ksonarr": "4K Sonarr Server bearbeiten", + "components.Settings.SonarrModal.editsonarr": "Sonarr-Server bearbeiten", + "components.Settings.SonarrModal.enableSearch": "Automatische Suche aktivieren", + "components.Settings.SonarrModal.externalUrl": "Externe URL", + "components.Settings.SonarrModal.hostname": "Hostname oder IP-Adresse", + "components.Settings.SonarrModal.languageprofile": "Sprachprofil", + "components.Settings.SonarrModal.loadingTags": "Lade Tags…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Sprachprofile werden geladen …", + "components.Settings.SonarrModal.loadingprofiles": "Qualitätsprofile werden geladen …", + "components.Settings.SonarrModal.loadingrootfolders": "Stammordner werden geladen …", + "components.Settings.SonarrModal.notagoptions": "Keine Tags.", + "components.Settings.SonarrModal.port": "Port", + "components.Settings.SonarrModal.qualityprofile": "Qualitätsprofil", + "components.Settings.SonarrModal.rootfolder": "Stammordner", + "components.Settings.SonarrModal.seasonfolders": "Staffel Ordner", + "components.Settings.SonarrModal.selectLanguageProfile": "Wähle ein Sprachprofil aus", + "components.Settings.SonarrModal.selectQualityProfile": "Wähle Qualitätsprofil", + "components.Settings.SonarrModal.selectRootFolder": "Wähle Stammordner", + "components.Settings.SonarrModal.selecttags": "Wähle Tags", + "components.Settings.SonarrModal.server4k": "4K-Server", + "components.Settings.SonarrModal.servername": "Servername", + "components.Settings.SonarrModal.ssl": "SSL aktivieren", + "components.Settings.SonarrModal.syncEnabled": "Scannen aktivieren", + "components.Settings.SonarrModal.tags": "Tags", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Teste die Verbindung zum Laden von Sprachprofilen", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Teste die Verbindung, um Qualitätsprofile zu laden", + "components.Settings.SonarrModal.testFirstRootFolders": "Teste die Verbindung, um Stammordner zu laden", + "components.Settings.SonarrModal.testFirstTags": "Teste Verbindung, um Tags zu laden", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Verbindung zu Sonarr fehlgeschlagen.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "Sonarr-Verbindung erfolgreich hergestellt!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Du musst einen API-Schlüssel angeben", + "components.Settings.SonarrModal.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Die Basis-URL muss einen führenden Schrägstrich haben", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Die Basis-URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.SonarrModal.validationHostnameRequired": "Du musst einen Hostnamen oder eine IP-Adresse angeben", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationNameRequired": "Du musst einen Servernamen angeben", + "components.Settings.SonarrModal.validationPortRequired": "Du musst einen Port angeben", + "components.Settings.SonarrModal.validationProfileRequired": "Du musst ein Qualitätsprofil auswählen", + "components.Settings.SonarrModal.validationRootFolderRequired": "Du musst einen Stammordner auswählen", + "components.Settings.activeProfile": "Aktives Profil", + "components.Settings.addradarr": "Radarr-Server hinzufügen", + "components.Settings.address": "Adresse", + "components.Settings.addsonarr": "Sonarr-Server hinzufügen", + "components.Settings.advancedTooltip": "Wenn du diese Einstellung falsch konfigurierst, kann dies zu Funktionsstörungen führen.", + "components.Settings.apikey": "API-Schlüssel", + "components.Settings.applicationTitle": "Anwendungstitel", + "components.Settings.applicationurl": "Anwendungs-URL", + "components.Settings.cacheImages": "Bild-Caching aktivieren", + "components.Settings.cacheImagesTip": "Alle Bilder Optimieren und lokal speichern (verbraucht viel Speicherplatz)", + "components.Settings.cancelscan": "Durchsuchung abbrechen", + "components.Settings.copied": "API-Schlüssel in die Zwischenablage kopiert.", + "components.Settings.csrfProtection": "Aktiviere CSRF Schutz", + "components.Settings.csrfProtectionHoverTip": "Aktiviere diese Option NICHT, es sei denn du weißt, was du tust!", + "components.Settings.csrfProtectionTip": "Macht den externen API Zugang schreibgeschützt (setzt HTTPS voraus und Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.currentlibrary": "Aktuelle Bibliothek: {name}", + "components.Settings.default": "Standardmäßig", + "components.Settings.default4k": "Standard-4K", + "components.Settings.deleteServer": "{serverType} Server löschen", + "components.Settings.deleteserverconfirm": "Bist du sicher, dass du diesen Server löschen möchtest?", + "components.Settings.email": "E-Mail", + "components.Settings.enablessl": "SSL aktivieren", + "components.Settings.experimentalTooltip": "Die Aktivierung dieser Einstellung kann zu einem unerwarteten Verhalten der Anwendung führen", + "components.Settings.externalUrl": "Externe URL", + "components.Settings.general": "Allgemein", + "components.Settings.generalsettings": "Allgemeine Einstellungen", + "components.Settings.generalsettingsDescription": "Konfiguriere Globale und Standard Jellyseerr-Einstellungen.", + "components.Settings.hideAvailable": "Verfügbare Medien ausblenden", + "components.Settings.hostname": "Hostname oder IP-Adresse", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Verbleibende Bibliotheken: {count}", + "components.Settings.locale": "Sprache darstellen", + "components.Settings.manualscan": "Manuelle Bibliotheksdurchsuchung", + "components.Settings.manualscanDescription": "Normalerweise wird dies nur einmal alle 24 Stunden ausgeführt. Jellyseerr überprüft die kürzlich hinzugefügten Plex-Server aggressiver. Falls du Plex zum ersten Mal konfigurierst, wird eine einmalige vollständige manuelle Bibliotheksdurchsuchung empfohlen!", + "components.Settings.mediaTypeMovie": "Film", + "components.Settings.mediaTypeSeries": "Serie", + "components.Settings.menuAbout": "Über", + "components.Settings.menuGeneralSettings": "Allgemein", + "components.Settings.menuJobs": "Aufgaben und Cache", + "components.Settings.menuLogs": "Protokolle", + "components.Settings.menuNotifications": "Benachrichtigungen", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Dienste", + "components.Settings.menuUsers": "Benutzer", + "components.Settings.noDefault4kServer": "Ein 4K {serverType} Server muss als Standart markiert werden um Nutzern zu ermöglichen 4K {mediaType} anfragen zu senden.", + "components.Settings.noDefaultNon4kServer": "Wenn du nur einen einzigen {serverType}-Server für Nicht-4K- und 4K-Inhalte hast (oder wenn du nur 4K-Inhalte herunterlädst), solltest du den {serverType}-Server NICHT als 4K-Server festgelegen.", + "components.Settings.noDefaultServer": "Mindestens ein {serverType}-Server muss als Standard markiert sein, damit {mediaType}-Anfragen verarbeitet werden können.", + "components.Settings.notificationAgentSettingsDescription": "Konfiguriere und aktiviere Benachrichtigungsagenten.", + "components.Settings.notifications": "Benachrichtigungen", + "components.Settings.notificationsettings": "Benachrichtigungseinstellungen", + "components.Settings.notrunning": "Nicht aktiv", + "components.Settings.originallanguage": "Sprache Entdecken", + "components.Settings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.Settings.partialRequestsEnabled": "Teilserienanfragen erlauben", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Plex-Bibliotheken", + "components.Settings.plexlibrariesDescription": "Die Bibliotheken, welche Jellyseerr nach Titeln durchsucht. Richte deine Plex-Verbindungseinstellungen ein und speichere sie, klicke auf die Schaltfläche unten, wenn keine aufgeführt sind.", + "components.Settings.plexsettings": "Plex-Einstellungen", + "components.Settings.plexsettingsDescription": "Konfiguriere die Einstellungen für deinen Plex-Server. Jellyseerr durchsucht deine Plex-Bibliotheken, um festzustellen welche Inhalte verfügbar sind.", + "components.Settings.port": "Port", + "components.Settings.radarrsettings": "Radarr-Einstellungen", + "components.Settings.region": "Region Entdecken", + "components.Settings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.Settings.restartrequiredTooltip": "Jellyseerr muss neu gestartet werden, damit Änderungen an dieser Einstellung wirksam werden", + "components.Settings.scan": "Bibliotheken synchronisieren", + "components.Settings.scanning": "Synchronisieren…", + "components.Settings.serverLocal": "lokal", + "components.Settings.serverRemote": "entfernt", + "components.Settings.serverSecure": "Sicher", + "components.Settings.serverpreset": "Server", + "components.Settings.serverpresetLoad": "Drück den Knopf, um verfügbare Server zu laden", + "components.Settings.serverpresetManualMessage": "Manuelle Konfiguration", + "components.Settings.serverpresetRefreshing": "Rufe Server ab …", + "components.Settings.serviceSettingsDescription": "Konfiguriere unten deine {serverType}-Server. Du kannst mehrere {serverType}-Server verbinden, aber nur zwei davon können als Standard markiert werden (ein Nicht-4K- und ein 4K-Server). Administratoren können den Server überschreiben, auf dem neue Anfragen vor der Genehmigung verarbeitet werden.", + "components.Settings.services": "Dienstleistungen", + "components.Settings.settingUpPlexDescription": "Um Plex einzurichten, können die Daten manuell eintragen oder einen Server ausgewählt werden, welcher von plex.tv abgerufen wurde. Drück den Knopf rechts neben dem Dropdown-Menü, um die Liste der verfügbaren Server abzurufen.", + "components.Settings.sonarrsettings": "Sonarr-Einstellungen", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Durchsuchung starten", + "components.Settings.tautulliApiKey": "API-Schlüssel", + "components.Settings.tautulliSettings": "Tautulli Einstellungen", + "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für deine Plex-Medien von Tautulli.", + "components.Settings.toastApiKeyFailure": "Bei der Generierung eines neuen API-Schlüssels ist etwas schief gelaufen.", + "components.Settings.toastApiKeySuccess": "Neuer API-Schlüssel erfolgreich generiert!", + "components.Settings.toastPlexConnecting": "Versuche mit Plex zu verbinden …", + "components.Settings.toastPlexConnectingFailure": "Verbindung zu Plex fehlgeschlagen.", + "components.Settings.toastPlexConnectingSuccess": "Plex-Verbindung erfolgreich hergestellt!", + "components.Settings.toastPlexRefresh": "Abrufen der Serverliste von Plex …", + "components.Settings.toastPlexRefreshFailure": "Fehler beim Abrufen der Plex-Serverliste.", + "components.Settings.toastPlexRefreshSuccess": "Plex-Serverliste erfolgreich abgerufen!", + "components.Settings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.Settings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", + "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", + "components.Settings.trustProxy": "Proxy-Unterstützung aktivieren", + "components.Settings.trustProxyTip": "Erlaubt es Jellyseerr Client IP Adressen hinter einem Proxy korrekt zu registrieren (Jellyseerr muss neu gestartet werden, damit die Änderungen wirksam werden)", + "components.Settings.urlBase": "URL-Basis", + "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", + "components.Settings.validationApplicationTitle": "Du musst einen Anwendungstitel angeben", + "components.Settings.validationApplicationUrl": "Du musst eine gültige URL angeben", + "components.Settings.validationApplicationUrlTrailingSlash": "Die URL darf nicht mit einem abschließenden Schrägstrich enden", + "components.Settings.validationHostnameRequired": "Ein gültiger Hostnamen oder eine IP-Adresse muss angeben werden", + "components.Settings.validationPortRequired": "Du musst einen gültigen Port angeben", + "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", + "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", + "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", + "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", + "components.Settings.webAppUrl": "Web App URL", + "components.Settings.webAppUrlTip": "Leite Benutzer optional zur Web-App auf deinen Server statt zur „gehosteten“ Web-App weiter", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Plex konfigurieren", + "components.Setup.configureservices": "Dienste konfigurieren", + "components.Setup.continue": "Fortfahren", + "components.Setup.finish": "Konfiguration beenden", + "components.Setup.finishing": "Fertigstellung …", + "components.Setup.loginwithplex": "Mit Plex anmelden", + "components.Setup.scanbackground": "Das Scannen läuft im Hintergrund. Du kannst in der Zwischenzeit das Setup fortsetzen.", + "components.Setup.setup": "Einrichtung", + "components.Setup.signinMessage": "Melde dich zunächst mit deinem Plex-Konto an", + "components.Setup.tip": "Tipp", + "components.Setup.welcome": "Willkommen bei Jellyseerr", + "components.StatusBadge.managemedia": "{mediaType} verwalten", + "components.StatusBadge.openinarr": "Öffnen in {arr}", + "components.StatusBadge.playonplex": "Abspielen in {mediaServerName}", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "Jellyseerr wurde aktualisiert! Bitte klicke auf die Schaltfläche unten, um die Seite neu zu laden.", + "components.StatusChacker.newversionavailable": "Anwendungsaktualisierung", + "components.StatusChacker.reloadOverseerr": "Jellyseerr neu laden", + "components.StatusChecker.appUpdated": "{applicationTitle} aktualisiert", + "components.StatusChecker.appUpdatedDescription": "Bitte klicke auf die Schaltfläche unten, um die Anwendung neu zu laden.", + "components.StatusChecker.reloadApp": "{applicationTitle} neu laden", + "components.StatusChecker.restartRequired": "Server-Neustart erforderlich", + "components.StatusChecker.restartRequiredDescription": "Bitte starte den Server neu, um die aktualisierten Einstellungen zu übernehmen.", + "components.TitleCard.cleardata": "Daten löschen", + "components.TitleCard.mediaerror": "{mediaType} nicht gefunden", + "components.TitleCard.tmdbid": "TMDB ID", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.TvDetails.Season.noepisodes": "Die Folgenliste ist nicht verfügbar.", + "components.TvDetails.Season.somethingwentwrong": "Beim Abrufen der Staffeldaten ist etwas schief gelaufen.", + "components.TvDetails.TvCast.fullseriescast": "Komplette Serien Besetzung", + "components.TvDetails.TvCrew.fullseriescrew": "Komplette Serien-Crew", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Besetzung", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Folge} other {# Folgen}}", + "components.TvDetails.episodeRuntime": "Folgenlaufzeit", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} Minuten", + "components.TvDetails.firstAirDate": "Erstausstrahlung", + "components.TvDetails.manageseries": "Serie verwalten", + "components.TvDetails.network": "{networkCount, plural, one {Anbieter} other {Anbieter}}", + "components.TvDetails.nextAirDate": "Nächstes Sendedatum", + "components.TvDetails.originallanguage": "Originalsprache", + "components.TvDetails.originaltitle": "Originaltitel", + "components.TvDetails.overview": "Übersicht", + "components.TvDetails.overviewunavailable": "Übersicht nicht verfügbar.", + "components.TvDetails.play4konplex": "In 4K auf Plex abspielen", + "components.TvDetails.playonplex": "Auf Plex abspielen", + "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", + "components.TvDetails.recommendations": "Empfehlungen", + "components.TvDetails.reportissue": "Ein Problem melden", + "components.TvDetails.rtaudiencescore": "Rotten Tomatoes Publikumswertung", + "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.TvDetails.seasonnumber": "Staffel {seasonNumber}", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Staffel} other {# Staffeln}}", + "components.TvDetails.seasonstitle": "Staffeln", + "components.TvDetails.showtype": "Serientyp", + "components.TvDetails.similar": "Ähnliche Serien", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.streamingproviders": "Streamt derzeit auf", + "components.TvDetails.tmdbuserscore": "TMDB-Benutzerbewertung", + "components.TvDetails.viewfullcrew": "Komplette Crew anzeigen", + "components.TvDetails.watchtrailer": "Trailer ansehen", + "components.UserList.accounttype": "Art", + "components.UserList.admin": "Admin", + "components.UserList.autogeneratepassword": "Passwort automatisch generieren", + "components.UserList.autogeneratepasswordTip": "Sende ein vom Server generiertes Kennwort per E-Mail an den Benutzer", + "components.UserList.bulkedit": "Ausgewählte bearbeiten", + "components.UserList.create": "Erstellen", + "components.UserList.created": "Beigetreten", + "components.UserList.createlocaluser": "Lokalen Benutzer erstellen", + "components.UserList.creating": "Erstelle…", + "components.UserList.deleteconfirm": "Möchtest du diesen Benutzer wirklich löschen? Alle seine Anfragendaten werden dauerhaft entfernt.", + "components.UserList.deleteuser": "Benutzer löschen", + "components.UserList.displayName": "Anzeigename", + "components.UserList.edituser": "Benutzerberechtigungen Bearbeiten", + "components.UserList.email": "E-Mail-Adresse", + "components.UserList.importedfromplex": "{userCount} {userCount, Plural, ein {Benutzer} other {Benutzer}} Plex-Benutzer erfolgreich importiert!", + "components.UserList.importfrommediaserver": "{mediaServerName}-Benutzer importieren", + "components.UserList.importfromplex": "Plex-Benutzer importieren", + "components.UserList.importfromplexerror": "Beim Importieren von Plex-Benutzern ist etwas schief gelaufen.", + "components.UserList.localLoginDisabled": "Die Einstellung Lokale Anmeldung aktivieren ist derzeit deaktiviert.", + "components.UserList.localuser": "Lokaler Benutzer", + "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", + "components.UserList.nouserstoimport": "Es gibt keine zu importierenden Plex-Benutzer.", + "components.UserList.owner": "Besitzer", + "components.UserList.password": "Passwort", + "components.UserList.passwordinfodescription": "Konfiguriere eine Anwendungs-URL und aktiviere E-Mail-Benachrichtigungen, um die automatische Kennwortgenerierung zu ermöglichen.", + "components.UserList.plexuser": "Plex-Benutzer", + "components.UserList.role": "Rolle", + "components.UserList.sortCreated": "Beitrittsdatum", + "components.UserList.sortDisplayName": "Anzeigename", + "components.UserList.sortRequests": "Anzahl der Anfragen", + "components.UserList.totalrequests": "Anfragen", + "components.UserList.user": "Benutzer", + "components.UserList.usercreatedfailed": "Beim Erstellen des Benutzers ist etwas schief gelaufen.", + "components.UserList.usercreatedfailedexisting": "Die angegebene E-Mail-Adresse wird bereits von einem anderen Benutzer verwendet.", + "components.UserList.usercreatedsuccess": "Benutzer wurde erfolgreich erstellt!", + "components.UserList.userdeleted": "Benutzer erfolgreich gelöscht!", + "components.UserList.userdeleteerror": "Beim Löschen des Benutzers ist etwas schief gelaufen.", + "components.UserList.userfail": "Beim Speichern der Benutzerberechtigungen ist ein Fehler aufgetreten.", + "components.UserList.userlist": "Benutzerliste", + "components.UserList.users": "Benutzer", + "components.UserList.userssaved": "Benutzerberechtigungen erfolgreich gespeichert!", + "components.UserList.validationEmail": "Du musst eine gültige E-Mail-Adresse angeben", + "components.UserList.validationpasswordminchars": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.ProfileHeader.joindate": "Mitglied seit dem {joindate}", + "components.UserProfile.ProfileHeader.profile": "Profil anzeigen", + "components.UserProfile.ProfileHeader.settings": "Einstellungen bearbeiten", + "components.UserProfile.ProfileHeader.userid": "Benutzer-ID: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Kontotyp", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Sprache darstellen", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Anzeigename", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Überschreibe globales Limit", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Allgemein", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Allgemeine Einstellungen", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Standard ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Lokaler Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Sprache Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtere Inhalte nach Originalsprache", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Besitzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Auto-Request Filme", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Filme auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Auto-Request-Serie", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Serien auf deiner Plex Watchlist automatisch anfordern", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Region Entdecken", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtere Inhalte nach regionaler Verfügbarkeit", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serienanfragenlimit", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Einstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Benutzer", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Benutzer-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "Die ID Nummer für dein Benutzerkonto", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Die Einstellungen für die Discord-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Discord-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "E-Mail", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "E-Mail-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "E-Mail-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Benachrichtigungseinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Öffentlicher PGP-Schlüssel", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Verschlüssele E-Mail-Nachrichten mit OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Zugangs-Token", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Erstelle ein Token aus deinen Kontoeinstellungen", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Die Einstellungen für Pushbullet-Benachrichtigungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Pushbullet-Benachrichtigungseinstellungen erfolgreich gespeichert!", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Anwendungs-API-Token", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Register eine Anwendung zur Verwendung mit {applicationTitle}", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Benutzer- oder Gruppenschlüssel", "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Die 30-stellige Benutzer- oder Gruppenkennung", "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Die Einstellungen für die Pushover-Benachrichtigung konnten nicht gespeichert werden.", "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Pushover-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Lautlos senden", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Sende Benachrichtigungen ohne Ton", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "Chat-ID", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Starte einen Chat, füge @get_id_bot hinzu, und führe den Befehl /my_id aus", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Die Einstellungen für die Telegram-Benachrichtigung konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Telegram-Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Du musst eine gültige Benutzer-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Du musst einen gültigen öffentlichen PGP-Schlüssel angeben", "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ein Zugriffstoken muss angegeben werden", "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Sie müssen ein gültiges Anwendungs-Token angeben", "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Du musst einen gültigen Benutzer- oder Gruppenschlüssel angeben", - "i18n.resolved": "Gelöst", - "components.PermissionEdit.viewissuesDescription": "Berechtigt, von andereren Nutzern gemeldete Medienprobleme zu sehen.", - "components.PermissionEdit.createissuesDescription": "Berechtigt, Medienprobleme zu melden.", - "components.PermissionEdit.manageissuesDescription": "Berechtigt, Medienprobleme zu verwalten.", - "components.NotificationTypeSelector.issuereopened": "Problem wiedereröffnet", - "components.NotificationTypeSelector.userissuereopenedDescription": "Sende eine Benachrichtigung, wenn die von dir gemeldeten Probleme wieder geöffnet werden.", - "components.MovieDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", - "components.IssueDetails.commentplaceholder": "Kommentar hinzufügen…", - "components.NotificationTypeSelector.issuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme wieder geöffnet werden.", - "components.RequestModal.selectmovies": "Wähle Film(e)", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Sende eine Benachrichtigung, wenn andere Benutzer Kommentare zu Themen abgeben.", - "components.RequestModal.approve": "Anfrage genehmigen", - "components.RequestModal.requestApproved": "Anfrage für {title} genehmigt!", - "components.RequestModal.requestmovies": "Anfrage {count} {count, plural, one {Film} other {Filme}}", - "components.RequestModal.requestmovies4k": "Anfrage {count} {count, plural, one {Film} other {Filme}} in 4K", - "components.RequestModal.requestseasons4k": "Anfrage {seasonCount} {seasonCount, plural, one {Serie} other {Serien}} in 4K", - "components.TvDetails.productioncountries": "Produktions {countryCount, plural, one {Land} other {Länder}}", - "components.Settings.RadarrModal.announced": "Angekündigt", - "components.Settings.RadarrModal.inCinemas": "Im Kino", - "components.Settings.RadarrModal.released": "Veröffentlicht", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Sende eine Benachrichtigung, wenn Probleme von anderen Benutzern wieder geöffnet werden.", - "components.Settings.Notifications.enableMentions": "Erwähnungen aktivieren", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Versende Gotify-Testbenachrichtigung…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Gotify-Testbenachrichtigung gesendet!", - "components.Settings.Notifications.NotificationsGotify.token": "Anwendungs-Token", - "components.Settings.Notifications.NotificationsGotify.url": "Server-URL", - "components.Settings.Notifications.NotificationsGotify.validationTypes": "Es muss mindestens eine Benachrichtigungsart ausgewählt werden", - "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Es muss eine gültige URL angegeben werden", - "i18n.importing": "Importieren…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "Gotify-Testbenachrichtigung konnte nicht gesendet werden.", - "components.Settings.Notifications.NotificationsGotify.agentenabled": "Agent aktivieren", - "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Die Gotify-Benachrichtigungseinstellungen konnten nicht gespeichert werden.", - "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Es muss ein Anwendungs-Token angegeben werden", - "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Gotify Benachrichtigungseinstellungen erfolgreich gespeichert!", - "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "URL darf nicht mit einem abschließenden Schrägstrich enden", - "components.UserList.newplexsigninenabled": "Die Einstellung Aktiviere neuen Plex Log-In ist derzeit aktiviert. Plex-Benutzer mit Bibliothekszugang müssen nicht importiert werden, um sich anmelden zu können.", - "i18n.import": "Importieren", - "components.ManageSlideOver.manageModalMedia": "Medien", - "components.ManageSlideOver.alltime": "Gesamte Zeit", - "components.ManageSlideOver.manageModalMedia4k": "4K Medien", - "components.ManageSlideOver.playedby": "Abgespielt von", - "components.ManageSlideOver.markallseasons4kavailable": "Alle Staffeln als in 4K verfügbar markieren", - "components.ManageSlideOver.markallseasonsavailable": "Alle Staffeln als verfügbar markieren", - "components.ManageSlideOver.opentautulli": "In Tautulli öffnen", - "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {abgespielt} other {abgespielt}}", - "components.Settings.toastTautulliSettingsFailure": "Beim Speichern der Tautulli-Einstellungen ist etwas schief gegangen.", - "components.Settings.tautulliSettingsDescription": "Optional die Einstellungen für den Tautulli-Server konfigurieren. Jellyseerr holt die Überwachungsdaten für Ihre Plex-Medien von Tautulli.", - "components.Settings.toastTautulliSettingsSuccess": "Tautulli-Einstellungen erfolgreich gespeichert!", - "components.Settings.validationApiKey": "Die Angabe eines API-Schlüssels ist erforderlich", - "components.Settings.validationUrlBaseLeadingSlash": "Die URL-Basis muss einen Schrägstrich enthalten", - "components.Settings.validationUrlTrailingSlash": "URL darf nicht mit einem Schrägstrich enden", - "components.Settings.validationUrlBaseTrailingSlash": "Die URL-Basis darf nicht mit einem Schrägstrich enden", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Du musst eine gültige Chat-ID angeben", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Web push Benachrichtigungseinstellungen konnten nicht gespeichert werden.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Web push Benachrichtigungseinstellungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Aktuelles Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Neues Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Für dieses Benutzerkonto ist derzeit kein Kennwort festgelegt. Konfiguriere unten ein Kennwort, damit sich dieses Konto als \"lokaler Benutzer\" anmelden kann", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Für dein Konto ist derzeit kein Passwort festgelegt. Konfiguriere unten ein Passwort, um die Anmeldung als \"lokaler Benutzer\" mit deiner E-Mail-Adresse zu aktivieren.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Sie haben keine Berechtigung, das Kennwort dieses Benutzers zu ändern.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Passwort", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Beim Speichern des Passworts ist ein Fehler aufgetreten.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Beim Speichern des Passworts ist ein Fehler aufgetreten. Wurde dein aktuelles Passwort korrekt eingegeben?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Passwort erfolgreich geändert!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Du musst das neue Passwort bestätigen", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Passwörter mussen übereinstimmen", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Du musst dein aktuelles Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Du musst ein neues Passwort angeben", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Passwort ist zu kurz; es sollte mindestens 8 Zeichen lang sein", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Berechtigungen", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Beim Speichern der Einstellungen ist etwas schief gelaufen.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Berechtigungen erfolgreich gespeichert!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Du kannst deine eigenen Berechtigungen nicht ändern.", + "components.UserProfile.UserSettings.menuChangePass": "Passwort", + "components.UserProfile.UserSettings.menuGeneralSettings": "Allgemein", + "components.UserProfile.UserSettings.menuNotifications": "Benachrichtigungen", + "components.UserProfile.UserSettings.menuPermissions": "Berechtigungen", + "components.UserProfile.UserSettings.unauthorizedDescription": "Sie haben keine Berechtigung, die Einstellungen dieses Benutzers zu ändern.", + "components.UserProfile.emptywatchlist": "Medien, die zu deiner Plex Watchlist hinzugefügt wurden, werden hier angezeigt.", + "components.UserProfile.limit": "{remaining} von {limit}", + "components.UserProfile.movierequests": "Filmanfragen", + "components.UserProfile.pastdays": "{type} (vergangene {days} Tage)", + "components.UserProfile.plexwatchlist": "Plex Watchlist", "components.UserProfile.recentlywatched": "Kürzlich angesehen", - "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Channel Tag", - "components.ManageSlideOver.manageModalAdvanced": "Fortgeschrittene", - "components.ManageSlideOver.pastdays": "Vergangene {days, number} Tage", - "components.Settings.urlBase": "URL-Basis", - "components.Settings.externalUrl": "Externe URL", - "components.Settings.tautulliApiKey": "API-Schlüssel", - "components.Settings.tautulliSettings": "Tautulli Einstellungen", - "components.Settings.validationUrl": "Die Angabe einer gültigen URL ist erforderlich", - "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Discord User ID", - "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Du musst eine gültige Discord User ID angeben", - "components.Settings.SettingsAbout.appDataPath": "Datenverzeichnis", - "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Die mehrstellige ID-Nummer Deines Discord-Accounts" + "components.UserProfile.recentrequests": "Kürzliche Anfragen", + "components.UserProfile.requestsperdays": "{limit} verbleibend", + "components.UserProfile.seriesrequest": "Serienanfragen", + "components.UserProfile.totalrequests": "Anfragen insgesamt", + "components.UserProfile.unlimited": "Unbegrenzt", + "i18n.advanced": "Erweitert", + "i18n.all": "Alle", + "i18n.approve": "Genehmigen", + "i18n.approved": "Genehmigt", + "i18n.areyousure": "Bist du sicher?", + "i18n.available": "Verfügbar", + "i18n.back": "Zurück", + "i18n.cancel": "Abbrechen", + "i18n.canceling": "Abbrechen…", + "i18n.close": "Schließen", + "i18n.decline": "Ablehnen", + "i18n.declined": "Abgelehnt", + "i18n.delete": "Löschen", + "i18n.deleting": "Löschen …", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Bearbeiten", + "i18n.experimental": "Experimentell", + "i18n.failed": "Fehlgeschlagen", + "i18n.import": "Importieren", + "i18n.importing": "Importieren…", + "i18n.loading": "Lade …", + "i18n.movie": "Film", + "i18n.movies": "Filme", + "i18n.next": "Weiter", + "i18n.noresults": "Keine Ergebnisse.", + "i18n.notrequested": "Nicht Angefragt", + "i18n.open": "Offen", + "i18n.partiallyavailable": "Teilweise verfügbar", + "i18n.pending": "Ausstehend", + "i18n.previous": "Bisherige", + "i18n.processing": "Verarbeiten", + "i18n.request": "Anfragen", + "i18n.request4k": "In 4K anfragen", + "i18n.requested": "Angefragt", + "i18n.requesting": "Anfordern…", + "i18n.resolved": "Gelöst", + "i18n.restartRequired": "Neustart erforderlich", + "i18n.resultsperpage": "Zeige {pageSize} Ergebnisse pro Seite", + "i18n.retry": "Wiederholen", + "i18n.retrying": "Wiederholen…", + "i18n.save": "Änderungen speichern", + "i18n.saving": "Speichern…", + "i18n.settings": "Einstellungen", + "i18n.showingresults": "Zeige {from} bis {to} von {total} Ergebnissen", + "i18n.status": "Status", + "i18n.test": "Test", + "i18n.testing": "Testen…", + "i18n.tvshow": "Serie", + "i18n.tvshows": "Serien", + "i18n.unavailable": "Nicht verfügbar", + "i18n.usersettings": "Benutzereinstellungen", + "i18n.view": "Anzeigen", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Interner Serverfehler", + "pages.oops": "Hoppla", + "pages.pagenotfound": "Seite nicht gefunden", + "pages.returnHome": "Zur Startseite", + "pages.serviceunavailable": "Dienst nicht verfügbar", + "pages.somethingwentwrong": "Etwas ist schief gelaufen" } diff --git a/src/i18n/locale/en.json b/src/i18n/locale/en.json index ef208670e..fc1c04765 100644 --- a/src/i18n/locale/en.json +++ b/src/i18n/locale/en.json @@ -35,6 +35,7 @@ "components.Discover.upcomingmovies": "Upcoming Movies", "components.Discover.upcomingtv": "Upcoming Series", "components.DownloadBlock.estimatedtime": "Estimated {time}", + "components.DownloadBlock.formattedTitle": "{title}: Season {seasonNumber} Episode {episodeNumber}", "components.IssueDetails.IssueComment.areyousuredelete": "Are you sure you want to delete this comment?", "components.IssueDetails.IssueComment.delete": "Delete Comment", "components.IssueDetails.IssueComment.edit": "Edit Comment", @@ -141,7 +142,7 @@ "components.ManageSlideOver.downloadstatus": "Downloads", "components.ManageSlideOver.manageModalAdvanced": "Advanced", "components.ManageSlideOver.manageModalClearMedia": "Clear Data", - "components.ManageSlideOver.manageModalClearMediaWarning": "* This will irreversibly remove all data for this {mediaType}, including any requests. If this item exists in your Plex library, the media information will be recreated during the next scan.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* This will irreversibly remove all data for this {mediaType}, including any requests. If this item exists in your {mediaServerName} library, the media information will be recreated during the next scan.", "components.ManageSlideOver.manageModalIssues": "Open Issues", "components.ManageSlideOver.manageModalMedia": "Media", "components.ManageSlideOver.manageModalMedia4k": "4K Media", @@ -332,6 +333,7 @@ "components.RequestCard.seasons": "{seasonCount, plural, one {Season} other {Seasons}}", "components.RequestCard.tmdbid": "TMDB ID", "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Unknown Title", "components.RequestList.RequestItem.cancelRequest": "Cancel Request", "components.RequestList.RequestItem.deleterequest": "Delete Request", "components.RequestList.RequestItem.editrequest": "Edit Request", @@ -344,6 +346,7 @@ "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Season} other {Seasons}}", "components.RequestList.RequestItem.tmdbid": "TMDB ID", "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Unknown Title", "components.RequestList.requests": "Requests", "components.RequestList.showallrequests": "Show All Requests", "components.RequestList.sortAdded": "Most Recent", @@ -649,6 +652,11 @@ "components.Settings.SettingsJobsCache.flushcache": "Flush Cache", "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Jellyfin Recently Added Scan", "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Jellyfin Full Library Scan", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Image Cache Cleanup", + "components.Settings.SettingsJobsCache.imagecache": "Image Cache", + "components.Settings.SettingsJobsCache.imagecacheDescription": "When enabled in settings, Overseerr will proxy and cache images from pre-configured external sources. Cached images are saved into your config folder. You can find the files in {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Images Cached", + "components.Settings.SettingsJobsCache.imagecachesize": "Total Cache Size", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Something went wrong while saving the job.", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Job edited successfully!", "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} canceled.", @@ -759,7 +767,7 @@ "components.Settings.applicationTitle": "Application Title", "components.Settings.applicationurl": "Application URL", "components.Settings.cacheImages": "Enable Image Caching", - "components.Settings.cacheImagesTip": "Cache and serve optimized images (requires a significant amount of disk space)", + "components.Settings.cacheImagesTip": "Cache externally sourced images (requires a significant amount of disk space)", "components.Settings.cancelscan": "Cancel Scan", "components.Settings.copied": "Copied API key to clipboard.", "components.Settings.csrfProtection": "Enable CSRF Protection", @@ -874,7 +882,8 @@ "components.Setup.welcome": "Welcome to Jellyseerr", "components.StatusBadge.managemedia": "Manage {mediaType}", "components.StatusBadge.openinarr": "Open in {arr}", - "components.StatusBadge.playonplex": "Play on Plex", + "components.StatusBadge.playonplex": "Play on {mediaServerName}", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", "components.StatusBadge.status": "{status}", "components.StatusBadge.status4k": "4K {status}", "components.StatusChacker.newversionDescription": "Jellyseerr has been updated! Please click the button below to reload the page.", @@ -889,6 +898,7 @@ "components.TitleCard.mediaerror": "{mediaType} Not Found", "components.TitleCard.tmdbid": "TMDB ID", "components.TitleCard.tvdbid": "TheTVDB ID", + "components.TvDetails.Season.noepisodes": "Episode list unavailable.", "components.TvDetails.Season.somethingwentwrong": "Something went wrong while retrieving season data.", "components.TvDetails.TvCast.fullseriescast": "Full Series Cast", "components.TvDetails.TvCrew.fullseriescrew": "Full Series Crew", diff --git a/src/i18n/locale/es.json b/src/i18n/locale/es.json index e66603c67..50ba6a770 100644 --- a/src/i18n/locale/es.json +++ b/src/i18n/locale/es.json @@ -1,881 +1,50 @@ { - "components.Settings.SonarrModal.ssl": "Usar SSL", - "components.Settings.SonarrModal.servername": "Nombre del Servidor", - "components.Settings.SonarrModal.server4k": "Servidor 4K", - "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", - "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.SonarrModal.port": "Puerto", - "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", - "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", - "components.Settings.SonarrModal.baseUrl": "URL Base", - "components.Settings.SonarrModal.apiKey": "Clave API", - "components.Settings.SonarrModal.add": "Agregar Servidor", - "components.Settings.SettingsAbout.version": "Versión", - "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", - "components.Settings.SettingsAbout.totalmedia": "Contenido Total", - "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", - "components.Settings.SettingsAbout.githubdiscussions": "Discursiones en GitHub", - "components.Settings.SettingsAbout.gettingsupport": "Soporte", - "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", - "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", - "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", - "components.Settings.RadarrModal.ssl": "Usar SSL", - "components.Settings.RadarrModal.servername": "Nombre del Servidor", - "components.Settings.RadarrModal.server4k": "Servidor 4K", - "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", - "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", - "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", - "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", - "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", - "components.Settings.RadarrModal.port": "Puerto", - "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", - "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", - "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", - "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", - "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", - "components.Settings.RadarrModal.baseUrl": "URL Base", - "components.Settings.RadarrModal.apiKey": "Clave API", - "components.Settings.RadarrModal.add": "Agregar Servidor", - "components.Settings.Notifications.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", - "components.Settings.Notifications.smtpPort": "Puerto SMTP", - "components.Settings.Notifications.smtpHost": "Host SMTP", - "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", - "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", - "components.Settings.Notifications.emailsender": "Dirección del Remitente", - "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", - "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", - "components.Settings.Notifications.authUser": "Usuario SMTP", - "components.Settings.Notifications.authPass": "Contraseña SMTP", - "components.Settings.Notifications.agentenabled": "Habilitar Agente", - "components.Search.searchresults": "Resultado de la búsqueda", - "components.RequestModal.selectseason": "Seleccionar Temporada(s)", - "components.RequestModal.seasonnumber": "Temporada {number}", - "components.RequestModal.season": "Temporada", - "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", - "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", - "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", - "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", - "components.RequestModal.pendingrequest": "Solicitud pendiente", - "components.RequestModal.numberofepisodes": "# de Episodios", - "components.RequestModal.extras": "Extras", - "components.RequestModal.cancel": "Cancelar Petición", - "components.RequestList.requests": "Solicitudes", - "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.PersonDetails.ascharacter": "como {character}", - "components.PersonDetails.appearsin": "Apariciones", - "components.MovieDetails.similar": "Títulos Similares", - "components.MovieDetails.runtime": "{minutes} minutos", - "components.MovieDetails.revenue": "Recaudado", - "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", - "components.MovieDetails.cast": "Reparto", - "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", - "components.MovieDetails.recommendations": "Recomendaciones", - "components.MovieDetails.overviewunavailable": "Resumen indisponible.", - "components.MovieDetails.overview": "Resumen", - "components.MovieDetails.originallanguage": "Idioma Original", - "components.MovieDetails.budget": "Presupuesto", - "components.Layout.UserDropdown.signout": "Cerrar Sesión", - "components.Layout.Sidebar.users": "Usuarios", - "components.Layout.Sidebar.settings": "Ajustes", - "components.Layout.Sidebar.requests": "Solicitudes", - "components.Layout.Sidebar.dashboard": "Descubrir", - "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", - "components.Discover.upcomingmovies": "Próximas Películas", - "components.Discover.upcoming": "Próximas Películas", - "components.Discover.trending": "Tendencias", - "components.Discover.recentrequests": "Peticiones Recientes", - "components.Discover.recentlyAdded": "Agregado Recientemente", - "components.Discover.populartv": "Series Populares", - "components.Discover.popularmovies": "Películas Populares", - "components.Discover.discovertv": "Series Populares", - "components.Discover.discovermovies": "Películas Populares", - "components.Settings.addsonarr": "Agregar servidor Sonarr", - "components.Settings.address": "Dirección", - "components.Settings.addradarr": "Agregar servidor Radarr", - "components.Settings.activeProfile": "Perfil activo", - "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", - "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", - "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", - "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", - "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", - "components.Settings.menuLogs": "Registro", - "pages.returnHome": "Volver al Inicio", - "pages.oops": "Ups", - "i18n.unavailable": "No Disponible", - "i18n.tvshows": "Series", - "i18n.processing": "Procesando", - "i18n.pending": "Pendiente", - "i18n.partiallyavailable": "Parcialmente Disponible", - "i18n.movies": "Películas", - "i18n.delete": "Eliminar", - "i18n.declined": "Rechazado", - "i18n.decline": "Rechazar", - "i18n.cancel": "Cancelar", - "i18n.available": "Disponible", - "i18n.approved": "Aprobado", - "i18n.approve": "Aprobar", - "components.UserList.userlist": "Lista de usuarios", - "components.UserList.user": "Usuario", - "components.UserList.totalrequests": "Solicitudes", - "components.UserList.role": "Rol", - "components.UserList.plexuser": "Usuario de Plex", - "components.UserList.created": "Unido", - "components.UserList.admin": "Administrador", - "components.TvDetails.similar": "Series Similares", - "components.TvDetails.recommendations": "Recomendaciones", - "components.TvDetails.overviewunavailable": "Resumen indisponible.", - "components.TvDetails.overview": "Resumen", - "components.TvDetails.originallanguage": "Idioma original", - "components.TvDetails.cast": "Reparto", - "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", - "components.Setup.welcome": "Bienvenido a Jellyseerr", - "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", - "components.Setup.loginwithplex": "Iniciar sesión con Plex", - "components.Setup.finishing": "Finalizando…", - "components.Setup.finish": "Finalizar configuración", - "components.Setup.continue": "Continuar", - "components.Setup.configureplex": "Configurar Plex", - "components.Setup.configureservices": "Configurar servicios", - "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", - "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", - "components.Settings.startscan": "Iniciar Escaneo", - "components.Settings.ssl": "SSL", - "components.Settings.sonarrsettings": "Ajustes de Sonarr", - "components.Settings.radarrsettings": "Ajustes de Radarr", - "components.Settings.port": "Puerto", - "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", - "components.Settings.plexsettings": "Ajustes de Plex", - "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", - "components.Settings.plexlibraries": "Bibliotecas Plex", - "components.Settings.notrunning": "Sin ejecutarse", - "components.Settings.notificationsettings": "Configuración de notificaciones", - "components.Settings.menuServices": "Servicios", - "components.Settings.menuPlexSettings": "Plex", - "components.Settings.menuNotifications": "Notificaciones", - "components.Settings.menuJobs": "Tareas y Caché", - "components.Settings.menuGeneralSettings": "General", - "components.Settings.menuAbout": "Acerca de", - "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", - "components.Settings.manualscan": "Escaneo Manual de Biblioteca", - "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", - "components.Settings.hostname": "Nombre de host o Dirección IP", - "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", - "components.Settings.generalsettings": "Configuración general", - "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", - "components.Settings.default4k": "4K predeterminado", - "components.Settings.default": "Predeterminado", - "components.Settings.currentlibrary": "Biblioteca actual: {name}", - "components.Settings.copied": "Clave API copiada en el portapapeles.", - "components.Settings.cancelscan": "Cancelar Escaneo", - "components.Settings.applicationurl": "URL de la aplicación", - "components.Settings.apikey": "Clave API", - "components.Setup.tip": "Consejo", - "i18n.deleting": "Eliminando…", - "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", - "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", - "components.UserList.deleteuser": "Eliminar usuario", - "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", - "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", - "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", - "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", - "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", - "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", - "i18n.close": "Cerrar", - "components.TvDetails.showtype": "Tipos de Series", - "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", - "components.TvDetails.anime": "Anime", - "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", - "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", - "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", - "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", - "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", - "components.Settings.SettingsAbout.timezone": "Zona horaria", - "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", - "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", - "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", - "components.Settings.SettingsAbout.Releases.releases": "Versiones", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", - "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", - "components.Settings.SettingsAbout.Releases.currentversion": "Actual", - "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", - "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", - "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", - "components.UserList.importfromplex": "Importar Usuarios de Plex", - "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", - "components.TvDetails.viewfullcrew": "Ver Equipo Completo", - "components.TvDetails.firstAirDate": "Primera fecha de emisión", - "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", - "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", - "components.PersonDetails.crewmember": "Equipo", - "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", - "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", - "components.CollectionDetails.requestcollection": "Solicitar Colección", - "components.CollectionDetails.overview": "Resumen", - "components.CollectionDetails.numberofmovies": "{count} Películas", - "i18n.retry": "Reintentar", - "i18n.requested": "Solicitado", - "i18n.failed": "Fallido", - "components.TvDetails.watchtrailer": "Ver Trailer", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", - "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", - "components.MovieDetails.watchtrailer": "Ver Trailer", - "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", - "components.StatusChacker.reloadOverseerr": "Recargar", - "components.StatusChacker.newversionavailable": "Actualización de Aplicación", - "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", - "components.Settings.SettingsAbout.documentation": "Documentación", - "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", - "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", - "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", - "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", - "components.Settings.Notifications.senderName": "Nombre del remitente", - "components.Settings.Notifications.chatId": "ID de chat", - "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", - "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", - "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", - "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", - "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", - "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", - "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", - "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", - "i18n.request": "Solicitar", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", - "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", - "components.RequestList.sortModified": "Última modificación", - "components.RequestList.sortAdded": "Más Reciente", - "components.RequestList.showallrequests": "Mostrar todas las solicitudes", - "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", - "i18n.edit": "Editar", - "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", - "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", - "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", - "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", - "components.UserList.password": "Contraseña", - "components.UserList.localuser": "Usuario local", - "components.UserList.email": "Dirección de correo electrónico", - "components.UserList.creating": "Creando…", - "components.UserList.createlocaluser": "Crear usuario local", - "components.UserList.create": "Crear", - "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", - "components.StatusBadge.status4k": "4K {status}", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", - "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", - "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", - "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", - "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", - "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", - "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", - "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", - "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", - "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", - "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", - "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", - "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", - "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", - "components.RequestButton.viewrequest": "Ver Solicitud", - "components.RequestButton.requestmore4k": "Solicitar más en 4K", - "components.RequestButton.requestmore": "Solicitar más", - "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", - "components.RequestButton.declinerequest": "Rechazar Solicitud", - "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", - "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", - "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", - "components.RequestButton.approverequest": "Aprobar Solicitud", - "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", - "components.RequestBlock.server": "Servidor de Destino", - "components.RequestBlock.rootfolder": "Carpeta Raíz", - "components.RequestBlock.profilechanged": "Perfil de Calidad", - "components.MediaSlider.ShowMoreCard.seemore": "Ver más", - "components.Login.validationpasswordrequired": "Se requiere contraseña", - "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", - "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", - "components.Login.password": "Contraseña", - "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", - "components.Login.email": "Dirección de correo electrónico", - "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", - "components.RequestModal.autoapproval": "Aprobación Automática", - "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", - "i18n.experimental": "Experimental", - "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", - "components.Login.signingin": "Iniciando sesión…", - "components.Login.signin": "Iniciar Sesión", - "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", - "components.PlexLoginButton.signingin": "Iniciando sesión…", - "components.Login.signinwithplex": "Usa tu cuenta de Plex", - "components.Login.signinheader": "Inicia sesión para continuar", - "components.PermissionEdit.request4k": "Solicitar 4K", - "components.PermissionEdit.request": "Solicitar", - "components.PermissionEdit.admin": "Administrador", - "components.Discover.discover": "Descubrir", - "components.Layout.UserDropdown.settings": "Ajustes", - "components.Layout.UserDropdown.myprofile": "Perfil", - "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", - "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", - "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", - "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", - "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", - "i18n.loading": "Cargando…", - "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", - "components.ResetPassword.email": "Dirección de Email", - "components.ResetPassword.confirmpassword": "Confirmar Contraseña", - "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", - "components.RequestModal.AdvancedRequester.requestas": "Pedir como", - "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.RequestList.RequestItem.requested": "Pedida", - "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", - "components.RequestList.RequestItem.modified": "Modificado", - "components.RegionSelector.regionServerDefault": "({Region}) por defecto", - "components.RegionSelector.regionDefault": "Todas las Regiones", - "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", - "components.PermissionEdit.viewrequests": "Ver Solicitudes", - "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", - "components.PermissionEdit.users": "Gestión de Usuarios", - "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", - "components.PermissionEdit.settings": "Gestionar Ajustes", - "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", - "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", - "components.PermissionEdit.request4kTv": "Pedir Series 4K", - "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", - "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", - "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", - "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", - "components.PermissionEdit.managerequests": "Gestionar Solicitudes", - "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", - "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", - "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", - "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", - "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", - "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", - "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", - "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", - "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", - "components.PermissionEdit.autoapprove": "Auto-Aprobación", - "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", - "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", - "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", - "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", - "components.MovieDetails.playonplex": "Ver en Plex", - "components.MovieDetails.play4konplex": "Ver en Plex en 4K", - "components.MovieDetails.markavailable": "Marcar como Disponible", - "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", - "components.Login.forgotpassword": "¿Contraseña olvidada?", - "components.Discover.upcomingtv": "Próximas Series", - "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", - "components.Discover.StudioSlider.studios": "Estudios", - "components.Discover.NetworkSlider.networks": "Cadenas de TV", - "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", - "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", "components.AppDataWarning.dockerVolumeMissingDescription": "El montaje del volumen {appDataPath} no se ha configurado correctamente. Todos los datos se eliminarán cuando el contenedor se pare o reinicie.", - "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", - "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", - "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", - "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", - "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", - "components.Settings.SettingsJobsCache.process": "Procesamiento", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", - "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", - "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", - "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", - "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", - "components.Settings.SettingsJobsCache.jobtype": "Tipo", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", - "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", - "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", - "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", - "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", - "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", - "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", - "components.Settings.SettingsJobsCache.command": "Comando", - "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", - "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", - "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", - "components.Settings.SettingsJobsCache.cachemisses": "Fallos", - "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", - "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", - "components.Settings.SettingsJobsCache.cachehits": "Consultas", - "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", - "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", - "components.Settings.SettingsJobsCache.cache": "Caché", - "components.Settings.SettingsAbout.preferredmethod": "Preferida", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.RadarrModal.externalUrl": "URL externa", - "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", - "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", - "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", - "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", - "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", - "components.Search.search": "Buscar", - "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", - "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", - "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", - "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", - "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", - "components.ResetPassword.resetpassword": "Reiniciar contraseña", - "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", - "components.ResetPassword.password": "Contraseña", - "components.ResetPassword.gobacklogin": "Volver a la Página de Login", - "components.RequestModal.alreadyrequested": "Ya Pedida", - "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", + "components.CollectionDetails.numberofmovies": "{count} Películas", + "components.CollectionDetails.overview": "Resumen", + "components.CollectionDetails.requestcollection": "Solicitar Colección", + "components.CollectionDetails.requestcollection4k": "Pedir Colección en 4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "Películas de {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Películas en {language}", + "components.Discover.DiscoverNetwork.networkSeries": "Series de {network}", + "components.Discover.DiscoverStudio.studioMovies": "Películas de {studio}", + "components.Discover.DiscoverTvGenre.genreSeries": "Series de {genre}", + "components.Discover.DiscoverTvLanguage.languageSeries": "Series en {language}", "components.Discover.MovieGenreList.moviegenres": "Géneros de Películas", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", - "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", - "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", - "components.UserProfile.ProfileHeader.profile": "Ver Perfil", - "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", - "components.UserList.validationEmail": "Debes indicar un dirección de email válida", - "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", - "components.UserList.users": "Usuarios", - "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", - "components.UserList.sortRequests": "Número de Solicitudes", - "components.UserList.sortDisplayName": "Nombre a mostrar", - "components.UserList.sortCreated": "Fecha de Unión", - "components.UserList.owner": "Propietario", - "components.UserList.edituser": "Editar Permisos de Usuario", - "components.UserList.bulkedit": "Edición Masiva", - "components.UserList.accounttype": "Tipo", - "components.TvDetails.playonplex": "Ver en Plex", - "components.TvDetails.play4konplex": "Ver en Plex en 4K", - "components.TvDetails.nextAirDate": "Próxima Emisión", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", - "components.TvDetails.episodeRuntime": "Duración del Episodio", - "components.Setup.setup": "Configuración", - "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", - "components.Settings.webhook": "Webhook", - "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", - "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", - "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", - "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", - "components.Settings.trustProxy": "Habilitar soporte Proxy", - "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", - "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", - "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", - "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", - "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", - "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", - "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", - "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", - "components.Settings.serverpresetManualMessage": "Configuración manual", - "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", - "components.Settings.serverpreset": "Servidor", - "components.Settings.serverRemote": "remoto", - "components.Settings.serverLocal": "local", - "components.Settings.scanning": "Sincronizando…", - "components.Settings.scan": "Sincronizar Bibliotecas", - "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.Settings.region": "Región para la sección \"Descubrir\"", - "components.Settings.originallanguage": "Idioma para la sección Descubrir", - "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", - "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", - "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", - "components.Settings.menuUsers": "Usuarios", - "components.Settings.email": "Email", - "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", - "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", - "components.Settings.csrfProtection": "Habilitar Protección CSRF", - "components.Settings.applicationTitle": "Título de la Aplicación", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", - "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", - "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", - "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", - "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", - "components.Settings.SonarrModal.externalUrl": "URL Externa", - "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", - "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", - "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", - "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", - "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", - "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", - "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", - "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", - "components.Settings.SettingsLogs.pauseLogs": "Pausar", - "components.Settings.SettingsLogs.resumeLogs": "Reanudar", - "components.Settings.SettingsLogs.message": "Mensaje", - "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", - "components.Settings.SettingsLogs.logs": "Logs", - "components.Settings.SettingsLogs.level": "Severidad", - "components.Settings.SettingsLogs.label": "Etiqueta", - "components.Settings.SettingsLogs.filterWarn": "Advertencia", - "components.Settings.SettingsLogs.filterInfo": "Info", - "components.Settings.SettingsLogs.filterError": "Error", - "components.Settings.SettingsLogs.filterDebug": "Depuración", - "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", - "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", - "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", - "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", - "components.Settings.services": "Servicios", - "components.Settings.plex": "Plex", - "components.Settings.notifications": "Notificaciones", - "components.Settings.general": "General", - "components.Settings.SettingsUsers.users": "Usuarios", - "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", - "components.Settings.SettingsAbout.about": "Acerca de", - "components.ResetPassword.passwordreset": "Reinicio de Contraseña", - "pages.errormessagewithcode": "{statusCode} - {error}", - "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", - "pages.somethingwentwrong": "Algo fue mal", - "pages.serviceunavailable": "Servicio No Disponible", - "pages.pagenotfound": "Página No Encontrada", - "pages.internalservererror": "Error Interno del Servidor", - "i18n.usersettings": "Ajustes de Usuario", - "i18n.settings": "Ajustes", - "i18n.advanced": "Avanzado", - "components.UserProfile.recentrequests": "Solicitudes Recientes", - "components.UserProfile.UserSettings.menuPermissions": "Permisos", - "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", - "components.UserProfile.UserSettings.menuGeneralSettings": "General", - "components.UserProfile.UserSettings.menuChangePass": "Contraseña", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", - "components.Settings.enablessl": "Usar SSL", - "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", - "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", - "components.Settings.SettingsLogs.logDetails": "Detalles del Log", - "components.Settings.SettingsLogs.extraData": "Datos Adicionales", - "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", - "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", - "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PersonDetails.birthdate": "Nacido el {birthdate}", - "components.PersonDetails.alsoknownas": "También Conocido como: {names}", - "i18n.delimitedlist": "{a}, {b}", - "i18n.view": "Ver", - "i18n.tvshow": "Series", - "i18n.testing": "Probando…", - "i18n.test": "Probar", - "i18n.status": "Estado", - "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", - "i18n.saving": "Guardando…", - "i18n.save": "Guardar Cambios", - "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", - "i18n.requesting": "Pidiendo…", - "i18n.request4k": "Pedir en 4K", - "i18n.previous": "Anterior", - "i18n.notrequested": "No Solicitado", - "i18n.noresults": "Sin resultados.", - "i18n.next": "Adelante", - "i18n.movie": "Película", - "i18n.canceling": "Cancelando…", - "i18n.back": "Atrás", - "i18n.areyousure": "¿Estás Seguro?", - "i18n.all": "Todas", - "components.UserProfile.unlimited": "Ilimitadas", - "components.UserProfile.totalrequests": "Solicitudes Totales", - "components.UserProfile.seriesrequest": "Solicitudes de Series", - "components.UserProfile.requestsperdays": "{limit} restantes", - "components.UserProfile.pastdays": "{type} (últimos {days} días)", - "components.UserProfile.movierequests": "Solicitudes de Películas", - "components.UserProfile.limit": "{remaining} de {limit}", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", - "components.TvDetails.originaltitle": "Título Original", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", - "components.RequestModal.QuotaDisplay.season": "temporada", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", - "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", - "components.RequestModal.QuotaDisplay.movie": "película", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", - "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", - "components.QuotaSelector.unlimited": "Ilimitadas", - "components.MovieDetails.originaltitle": "Título Original", - "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", - "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", - "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", - "components.Settings.mediaTypeMovie": "película", - "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.SonarrModal.tags": "Etiquetas", - "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", - "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", - "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", - "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", - "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", - "components.Settings.mediaTypeSeries": "serie", - "components.Settings.SettingsAbout.uptodate": "Actualizado", - "components.Settings.SettingsAbout.outofdate": "Desactualizado", - "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", - "components.Settings.RadarrModal.tags": "Etiquetas", - "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", - "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", - "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", - "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", - "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", - "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", - "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", - "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", - "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", - "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", - "components.RequestModal.AdvancedRequester.tags": "Etiquetas", - "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", - "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", - "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", - "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", - "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", - "components.RequestCard.deleterequest": "Borrar Solicitud", - "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", - "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", - "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", - "components.Layout.VersionStatus.outofdate": "Desactualizado", - "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", - "i18n.retrying": "Reintentando…", - "components.Settings.serverSecure": "seguro", - "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", - "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", - "components.RequestModal.edit": "Editar Solicitud", - "components.RequestList.RequestItem.editrequest": "Editar Solicitud", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", - "components.Settings.webpush": "Web Push", - "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", - "components.Settings.is4k": "4K", - "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", - "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", - "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", - "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", - "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", - "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", - "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", - "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", - "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", - "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", - "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", - "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", - "components.PermissionEdit.requestTv": "Solicitar Series", - "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", - "components.PermissionEdit.requestMovies": "Solicitar películas", - "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", - "components.RequestList.RequestItem.requesteddate": "Solicitado", - "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", - "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", - "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", - "components.MovieDetails.showmore": "Mostrar más", - "components.MovieDetails.showless": "Mostrar menos", - "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", + "components.Discover.MovieGenreSlider.moviegenres": "Géneros de Películas", + "components.Discover.NetworkSlider.networks": "Cadenas de TV", + "components.Discover.StudioSlider.studios": "Estudios", + "components.Discover.TvGenreList.seriesgenres": "Géneros de Series", + "components.Discover.TvGenreSlider.tvgenres": "Géneros de Series", + "components.Discover.discover": "Descubrir", + "components.Discover.discovermovies": "Películas Populares", + "components.Discover.discovertv": "Series Populares", + "components.Discover.emptywatchlist": "Los medios añadidos a tu Lista de seguimiento de Plex aparecerán aquí.", + "components.Discover.noRequests": "No hay peticiones.", + "components.Discover.plexwatchlist": "Tu lista de seguimiento de Plex", + "components.Discover.popularmovies": "Películas Populares", + "components.Discover.populartv": "Series Populares", + "components.Discover.recentlyAdded": "Agregado Recientemente", + "components.Discover.recentrequests": "Peticiones Recientes", + "components.Discover.trending": "Tendencias", + "components.Discover.upcoming": "Próximas Películas", + "components.Discover.upcomingmovies": "Próximas Películas", + "components.Discover.upcomingtv": "Próximas Series", "components.DownloadBlock.estimatedtime": "Estimación de {time}", - "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", - "components.TvDetails.streamingproviders": "Emisión Actual en", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", - "components.Settings.webAppUrl": "Url de la Web App", - "components.Settings.locale": "Idioma en Pantalla", - "components.UserList.displayName": "Nombre en Pantalla", - "components.Settings.Notifications.encryption": "Método de Encriptación", - "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", - "components.Settings.Notifications.encryptionNone": "Ninguna", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", - "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", - "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", - "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", - "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", - "components.MovieDetails.streamingproviders": "Emisión Actual en", - "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", - "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", - "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", - "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", - "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", - "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", - "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", - "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", - "components.StatusBadge.status": "{status}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", - "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", "components.IssueDetails.IssueComment.areyousuredelete": "¿Estás seguro de querer borrar este comentario?", "components.IssueDetails.IssueComment.delete": "Borrar Comentario", "components.IssueDetails.IssueComment.edit": "Modificar Comentario", "components.IssueDetails.IssueComment.postedby": "Escrito por {username} el {relativeTime}", "components.IssueDetails.IssueComment.postedbyedited": "Escrito por {username} el {relativeTime} (Modificado)", "components.IssueDetails.IssueComment.validationComment": "Debes introducir un mensaje", - "components.IssueDetails.allepisodes": "Todos los Episodios", - "components.IssueDetails.problemepisode": "Episodio Afectado", "components.IssueDetails.IssueDescription.deleteissue": "Borrar Incidencia", "components.IssueDetails.IssueDescription.description": "Descripción", + "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", + "components.IssueDetails.allepisodes": "Todos los Episodios", + "components.IssueDetails.allseasons": "Todas las Temporadas", "components.IssueDetails.closeissue": "Cerrar Incidencia", "components.IssueDetails.closeissueandcomment": "Cerrar con Comentarios", "components.IssueDetails.comments": "Comentarios", - "components.IssueDetails.IssueDescription.edit": "Modificar Descripción", - "components.IssueDetails.allseasons": "Todas las Temporadas", "components.IssueDetails.deleteissue": "Borrar Incidencia", "components.IssueDetails.deleteissueconfirm": "¿Estás seguro de querer borrar esta incidencia?", "components.IssueDetails.episode": "Episodio {episodeNumber}", @@ -885,101 +54,935 @@ "components.IssueDetails.leavecomment": "Commentario", "components.IssueDetails.nocomments": "Sin comentarios.", "components.IssueDetails.openedby": "#{issueId} abierta {relativeTime} por {username}", + "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", "components.IssueDetails.openinarr": "Abierta en {arr}", - "components.ManageSlideOver.movie": "película", - "i18n.open": "Abrir", - "i18n.resolved": "Resuelta", - "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", - "components.IssueList.IssueItem.issuestatus": "Estado", - "components.IssueList.IssueItem.opened": "Abierta", - "components.IssueList.issues": "Incidencias", - "components.IssueModal.issueOther": "Otro", - "components.IssueList.showallissues": "Mostrar Todas las Incidencias", - "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", - "components.ManageSlideOver.manageModalRequests": "Solicitudes", - "components.IssueList.sortModified": "Última Modificación", - "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", - "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", - "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", - "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", - "components.ManageSlideOver.tvshow": "series", - "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", - "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", - "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", - "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", - "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", - "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", - "components.ManageSlideOver.markavailable": "Marcar como Disponible", - "components.ManageSlideOver.openarr": "Abrir en {arr}", - "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", - "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", - "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", - "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", - "components.PermissionEdit.createissues": "Incidencias Reportadas", - "components.PermissionEdit.manageissues": "Gestionar Incidencias", + "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", + "components.IssueDetails.playonplex": "Ver en {mediaServerName}", + "components.IssueDetails.problemepisode": "Episodio Afectado", "components.IssueDetails.problemseason": "Temporada Afectada", - "components.IssueDetails.season": "Temporada {seasonNumber}", - "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", - "components.PermissionEdit.viewissues": "Ver Incidencias", - "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", + "components.IssueDetails.reopenissue": "Reabrir Incidencia", "components.IssueDetails.reopenissueandcomment": "Reabrir con Comentarios", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", + "components.IssueDetails.season": "Temporada {seasonNumber}", "components.IssueDetails.toasteditdescriptionfailed": "Algo fue mal mientras se modificaba la descripción de la incidencia.", "components.IssueDetails.toasteditdescriptionsuccess": "¡La descripción de la incidencia se ha modificado correctamente!", "components.IssueDetails.toastissuedeleted": "¡Incidencia eliminada correctamente!", "components.IssueDetails.toastissuedeletefailed": "Algo fue mal mientras se eliminaba la incidencia.", + "components.IssueDetails.toaststatusupdated": "¡Estado de la incidencia actualizado con éxito!", + "components.IssueDetails.toaststatusupdatefailed": "Algo fue mal mientras se actualizaba el estado de la incidencia.", "components.IssueDetails.unknownissuetype": "Desconocido", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", + "components.IssueList.IssueItem.issuestatus": "Estado", "components.IssueList.IssueItem.issuetype": "Tipo", - "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", - "components.IssueList.sortAdded": "Más Reciente", - "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", + "components.IssueList.IssueItem.opened": "Abierta", "components.IssueList.IssueItem.openeduserdate": "{date} por {user}", + "components.IssueList.IssueItem.problemepisode": "Episodio Afectado", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", "components.IssueList.IssueItem.unknownissuetype": "Desconocida", "components.IssueList.IssueItem.viewissue": "Ver Incidencia", - "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", - "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", - "components.Layout.Sidebar.issues": "Incidencias", - "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", + "components.IssueList.issues": "Incidencias", + "components.IssueList.showallissues": "Mostrar Todas las Incidencias", + "components.IssueList.sortAdded": "Más Reciente", + "components.IssueList.sortModified": "Última Modificación", + "components.IssueModal.CreateIssueModal.allepisodes": "Todos los Episodios", + "components.IssueModal.CreateIssueModal.allseasons": "Todas las Temporadas", + "components.IssueModal.CreateIssueModal.episode": "Episodio {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", "components.IssueModal.CreateIssueModal.problemepisode": "Episodio Afectado", + "components.IssueModal.CreateIssueModal.problemseason": "Temporada Afectada", + "components.IssueModal.CreateIssueModal.providedetail": "Por favor envíe una explicación detallada de la incidencia encontrada.", "components.IssueModal.CreateIssueModal.reportissue": "Reportar Incidencia", + "components.IssueModal.CreateIssueModal.season": "Temporada {seasonNumber}", "components.IssueModal.CreateIssueModal.submitissue": "Enviar Incidencia", "components.IssueModal.CreateIssueModal.toastFailedCreate": "Algo fue mal mientras se enviaba la incidencia.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "¡Incidencia reportada por {title} enviada con éxito!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Ver Incidencia", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Debes escribir una descripción", + "components.IssueModal.CreateIssueModal.whatswrong": "¿Qué sucede?", "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Otro", "components.IssueModal.issueSubtitles": "Subtítulo", "components.IssueModal.issueVideo": "Vídeo", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de Plex, la información de los contenidos se recreará en el siguiente escaneado.", - "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", - "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", - "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", - "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", - "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", - "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", - "components.IssueDetails.reopenissue": "Reabrir Incidencia", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", - "components.IssueDetails.openin4karr": "Abrir en {arr} 4K", - "components.IssueDetails.play4konplex": "Ver en 4K en {mediaServerName}", - "components.IssueDetails.playonplex": "Ver en {mediaServerName}", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Episodio} other {Episodios}}", - "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.LanguageSelector.languageServerDefault": "({Language}) por defecto", + "components.LanguageSelector.originalLanguageDefault": "Todos los Idiomas", + "components.Layout.LanguagePicker.displaylanguage": "Mostrar idioma", + "components.Layout.SearchInput.searchPlaceholder": "Buscar Películas y Series", + "components.Layout.Sidebar.dashboard": "Descubrir", + "components.Layout.Sidebar.issues": "Incidencias", + "components.Layout.Sidebar.requests": "Solicitudes", + "components.Layout.Sidebar.settings": "Ajustes", + "components.Layout.Sidebar.users": "Usuarios", + "components.Layout.UserDropdown.myprofile": "Perfil", + "components.Layout.UserDropdown.settings": "Ajustes", + "components.Layout.UserDropdown.signout": "Cerrar Sesión", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {cambio} other {cambios}} por detrás", + "components.Layout.VersionStatus.outofdate": "Desactualizado", + "components.Layout.VersionStatus.streamdevelop": "Overseer (Desarrollo)", + "components.Layout.VersionStatus.streamstable": "Overseer (Estable)", + "components.Login.email": "Dirección de correo electrónico", + "components.Login.forgotpassword": "¿Contraseña olvidada?", + "components.Login.loginerror": "Algo salió mal al intentar iniciar sesión.", + "components.Login.password": "Contraseña", + "components.Login.signin": "Iniciar Sesión", + "components.Login.signingin": "Iniciando sesión…", + "components.Login.signinheader": "Inicia sesión para continuar", + "components.Login.signinwithoverseerr": "Usa tu cuenta de {applicationTitle}", + "components.Login.signinwithplex": "Usa tu cuenta de Plex", + "components.Login.validationemailrequired": "Debes indicar una dirección de email válida", + "components.Login.validationpasswordrequired": "Se requiere contraseña", + "components.ManageSlideOver.downloadstatus": "Estado de la Descarga", + "components.ManageSlideOver.manageModalClearMedia": "Limpiar Datos de los Contenidos", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Esto eliminará irreversiblemente todos los datos de {mediaType}, incluyendo todas las solicitudes. Si este elemento existe en la biblioteca de {mediaServerName}, la información de los contenidos se recreará en el siguiente escaneado.", "components.ManageSlideOver.manageModalIssues": "Incidencias Abiertas", + "components.ManageSlideOver.manageModalNoRequests": "Sin solicitudes.", + "components.ManageSlideOver.manageModalRequests": "Solicitudes", + "components.ManageSlideOver.manageModalTitle": "Gestionar {mediaType}", + "components.ManageSlideOver.mark4kavailable": "Marcar como Disponible en 4K", + "components.ManageSlideOver.markavailable": "Marcar como Disponible", + "components.ManageSlideOver.movie": "película", + "components.ManageSlideOver.openarr": "Abrir en {arr}", + "components.ManageSlideOver.openarr4k": "Abrir en 4K {arr}", + "components.ManageSlideOver.tvshow": "series", + "components.MediaSlider.ShowMoreCard.seemore": "Ver más", + "components.MovieDetails.MovieCast.fullcast": "Reparto Completo", + "components.MovieDetails.MovieCrew.fullcrew": "Equipo Completo", + "components.MovieDetails.budget": "Presupuesto", + "components.MovieDetails.cast": "Reparto", + "components.MovieDetails.mark4kavailable": "Marcar como Disponible en 4K", + "components.MovieDetails.markavailable": "Marcar como Disponible", + "components.MovieDetails.originallanguage": "Idioma Original", + "components.MovieDetails.originaltitle": "Título Original", + "components.MovieDetails.overview": "Resumen", + "components.MovieDetails.overviewunavailable": "Resumen indisponible.", + "components.MovieDetails.play4konplex": "Ver en Plex en 4K", + "components.MovieDetails.playonplex": "Ver en Plex", + "components.MovieDetails.recommendations": "Recomendaciones", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Fecha} other {Fechas}} de Lanzamiento", + "components.MovieDetails.revenue": "Recaudado", + "components.MovieDetails.runtime": "{minutes} minutos", + "components.MovieDetails.showless": "Mostrar menos", + "components.MovieDetails.showmore": "Mostrar más", + "components.MovieDetails.similar": "Títulos Similares", + "components.MovieDetails.streamingproviders": "Emisión Actual en", + "components.MovieDetails.studio": "{studioCount, plural, one {Estudio} other {Estudios}}", + "components.MovieDetails.viewfullcrew": "Ver Equipo Completo", + "components.MovieDetails.watchtrailer": "Ver Trailer", + "components.NotificationTypeSelector.adminissuecommentDescription": "Notificar cuando otros usuarios comenten incidencias.", "components.NotificationTypeSelector.adminissuereopenedDescription": "Notificar cuando se reabran incidencias por otros usuarios.", "components.NotificationTypeSelector.adminissueresolvedDescription": "Notificar cuando otros usuarios resuelvan incidencias.", + "components.NotificationTypeSelector.issuecomment": "Comentario de Incidencia", + "components.NotificationTypeSelector.issuecommentDescription": "Envía notificaciones cuando las incidencias reciben nuevos comentarios.", + "components.NotificationTypeSelector.issuecreated": "Incidencia Reportada", + "components.NotificationTypeSelector.issuecreatedDescription": "Enviar notificaciones cuando las incidencias sean reportadas.", + "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta", "components.NotificationTypeSelector.issuereopenedDescription": "Enviar notificaciones cuando se reabran incidencias.", + "components.NotificationTypeSelector.issueresolved": "Incidencia Resuelta", + "components.NotificationTypeSelector.issueresolvedDescription": "Enviar notificaciones cuando las incidencias se resuelvan.", + "components.NotificationTypeSelector.mediaAutoApproved": "Contenidos Aprobados Automáticamente", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envía notificaciones cuando los usuarios solicitan nuevos contenidos que se aprueban automáticamente.", + "components.NotificationTypeSelector.mediaapproved": "Contenido Aprobado", + "components.NotificationTypeSelector.mediaapprovedDescription": "Envía una notificación cuando el contenido solicitado es aprobado manualmente.", + "components.NotificationTypeSelector.mediaavailable": "Contenido Disponible", + "components.NotificationTypeSelector.mediaavailableDescription": "Envía una notificación cuando el contenido solicitado está disponible.", + "components.NotificationTypeSelector.mediadeclined": "Contenido Rechazado", + "components.NotificationTypeSelector.mediadeclinedDescription": "Envía notificaciones cuando las solicitudes sean rechazadas.", + "components.NotificationTypeSelector.mediafailed": "Contenido Fallido", + "components.NotificationTypeSelector.mediafailedDescription": "Envía una notificación cuando el contenido no se agrega a los servicios (Radarr / Sonarr).", + "components.NotificationTypeSelector.mediarequested": "Contenido Solicitado", + "components.NotificationTypeSelector.mediarequestedDescription": "Envía una notificación cuando se solicita nuevo contenido que requiere ser aprobado.", + "components.NotificationTypeSelector.notificationTypes": "Tipos de Notificación", + "components.NotificationTypeSelector.userissuecommentDescription": "Notificar cuando incidencias reportadas por ti reciban nuevos comentarios.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Notificar cuando otros usuarios reporten incidencias.", "components.NotificationTypeSelector.userissuereopenedDescription": "Notificar cuando se reabran incidencias reportadas por ti.", - "components.NotificationTypeSelector.issuereopened": "Incidencia Reabierta" + "components.NotificationTypeSelector.userissueresolvedDescription": "Notificar cuando se resuelvan incidencias reportadas por ti.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que se aprueben automáticamente.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Notificar cuando las solicitudes sean aprobadas.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Notificar cuando tus contenidos solicitados estén disponibles.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Notificar cuando tus contenidos solicitados sean rechazados.", + "components.NotificationTypeSelector.usermediafailedDescription": "Notificar cuando las solicitudes de contenido fallen al añadirse a Radarr o Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Notificar cuando otros usuarios envíen nuevas solicitudes que requieran aprobación.", + "components.PermissionEdit.admin": "Administrador", + "components.PermissionEdit.adminDescription": "Acceso completo de administrador. Ignora otras comprobaciones de permisos.", + "components.PermissionEdit.advancedrequest": "Solicitudes Avanzadas", + "components.PermissionEdit.advancedrequestDescription": "Concede permisos para configurar opciones avanzadas en las solicitudes.", + "components.PermissionEdit.autoapprove": "Auto-Aprobación", + "components.PermissionEdit.autoapprove4k": "Auto-Aprobación 4K", + "components.PermissionEdit.autoapprove4kDescription": "Concede aprobación automática para todas las solicitudes de contenidos 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Auto-Aprueba Películas 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Auto-Aprueba Series 4K", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Concede aprobación automática para todas las solicitudes de series 4K.", + "components.PermissionEdit.autoapproveDescription": "Concede aprobación automática para todas las solicitudes que no sean 4K.", + "components.PermissionEdit.autoapproveMovies": "Auto-Aprueba Películas", + "components.PermissionEdit.autoapproveMoviesDescription": "Concede aprobación automática para todas las solicitudes de películas no 4K.", + "components.PermissionEdit.autoapproveSeries": "Auto-Aprueba Series", + "components.PermissionEdit.autoapproveSeriesDescription": "Concede aprobación automática para todas las solicitudes de series no 4K.", + "components.PermissionEdit.createissues": "Incidencias Reportadas", + "components.PermissionEdit.createissuesDescription": "Conceder permiso para reportar incidencias en contenidos.", + "components.PermissionEdit.manageissues": "Gestionar Incidencias", + "components.PermissionEdit.manageissuesDescription": "Conceder permiso para gestionar incidencias en contenidos.", + "components.PermissionEdit.managerequests": "Gestionar Solicitudes", + "components.PermissionEdit.managerequestsDescription": "Concede permisos para gestionar las solicitudes de contenidos. Todas las solicitudes de un usuario con este permiso serán aprobadas automáticamente.", + "components.PermissionEdit.request": "Solicitar", + "components.PermissionEdit.request4k": "Solicitar 4K", + "components.PermissionEdit.request4kDescription": "Concede permisos para solicitar contenidos en 4K.", + "components.PermissionEdit.request4kMovies": "Solicita Películas 4K", + "components.PermissionEdit.request4kMoviesDescription": "Concede permisos para solicitar películas en 4K.", + "components.PermissionEdit.request4kTv": "Pedir Series 4K", + "components.PermissionEdit.request4kTvDescription": "Concede permisos para solicitar series en 4K.", + "components.PermissionEdit.requestDescription": "Concede permisos para solicitar contenidos que no sean 4K.", + "components.PermissionEdit.requestMovies": "Solicitar películas", + "components.PermissionEdit.requestMoviesDescription": "Conceder permisos para solicitar películas que no sean 4K.", + "components.PermissionEdit.requestTv": "Solicitar Series", + "components.PermissionEdit.requestTvDescription": "Conceder permisos para solicitar series que no sean 4k.", + "components.PermissionEdit.settings": "Gestionar Ajustes", + "components.PermissionEdit.settingsDescription": "Concede permisos para modificar los ajustes globales. Un usuario debe tener este permiso para poder concedérselo a otros.", + "components.PermissionEdit.users": "Gestión de Usuarios", + "components.PermissionEdit.usersDescription": "Concede permisos para gestionar usuarios. Los usuarios con este permiso no pueden modificar usuarios o conceder privilegios de Administrador.", + "components.PermissionEdit.viewissues": "Ver Incidencias", + "components.PermissionEdit.viewissuesDescription": "Conceder permiso para ver incidencias de contenidos reportadas por otros usuarios.", + "components.PermissionEdit.viewrequests": "Ver Solicitudes", + "components.PermissionEdit.viewrequestsDescription": "Conceder permiso para ver las solicitudes de otros usuarios.", + "components.PersonDetails.alsoknownas": "También Conocido como: {names}", + "components.PersonDetails.appearsin": "Apariciones", + "components.PersonDetails.ascharacter": "como {character}", + "components.PersonDetails.birthdate": "Nacido el {birthdate}", + "components.PersonDetails.crewmember": "Equipo", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Iniciando sesión…", + "components.PlexLoginButton.signinwithplex": "Iniciar Sesión", + "components.QuotaSelector.days": "{count, plural, one {día} other {días}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {películas} per {quotaDays} {días}", + "components.QuotaSelector.movies": "{count, plural, one {película} other {películas}}", + "components.QuotaSelector.seasons": "{count, plural, one {temporada} other {temporadas}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {temporadas} per {quotaDays} {días}", + "components.QuotaSelector.unlimited": "Ilimitadas", + "components.RegionSelector.regionDefault": "Todas las Regiones", + "components.RegionSelector.regionServerDefault": "({Region}) por defecto", + "components.RequestBlock.profilechanged": "Perfil de Calidad", + "components.RequestBlock.requestoverrides": "Anulaciones de solicitudes", + "components.RequestBlock.rootfolder": "Carpeta Raíz", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestBlock.server": "Servidor de Destino", + "components.RequestButton.approve4krequests": "Aprobar {requestCount, plural, one {petición en 4K} other {requestCount} peticiones en 4K}}", + "components.RequestButton.approverequest": "Aprobar Solicitud", + "components.RequestButton.approverequest4k": "Aprobar Solicitud 4K", + "components.RequestButton.approverequests": "Aprobar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.decline4krequests": "Rechazar {requestCount, plural, one {solicitud en 4K} other {{requestCount} solicitudes en 4K}}", + "components.RequestButton.declinerequest": "Rechazar Solicitud", + "components.RequestButton.declinerequest4k": "Rechazar Solicitud 4K", + "components.RequestButton.declinerequests": "Rechazar {requestCount, plural, one {solicitud} other {{requestCount} solicitudes}}", + "components.RequestButton.requestmore": "Solicitar más", + "components.RequestButton.requestmore4k": "Solicitar más en 4K", + "components.RequestButton.viewrequest": "Ver Solicitud", + "components.RequestButton.viewrequest4k": "Ver Solicitud 4K", + "components.RequestCard.deleterequest": "Borrar Solicitud", + "components.RequestCard.failedretry": "Algo fue mal al reintentar la solicitud.", + "components.RequestCard.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestCard.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.RequestItem.cancelRequest": "Cancelar Solicitud", + "components.RequestList.RequestItem.deleterequest": "Borrar Solicitud", + "components.RequestList.RequestItem.editrequest": "Editar Solicitud", + "components.RequestList.RequestItem.failedretry": "Algo salió mal al reintentar la solicitud.", + "components.RequestList.RequestItem.mediaerror": "El título asociado a esta solicitud ya no está disponible.", + "components.RequestList.RequestItem.modified": "Modificado", + "components.RequestList.RequestItem.modifieduserdate": "{date} por {user}", + "components.RequestList.RequestItem.requested": "Pedida", + "components.RequestList.RequestItem.requesteddate": "Solicitado", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestList.requests": "Solicitudes", + "components.RequestList.showallrequests": "Mostrar todas las solicitudes", + "components.RequestList.sortAdded": "Más Reciente", + "components.RequestList.sortModified": "Última modificación", + "components.RequestModal.AdvancedRequester.advancedoptions": "Avanzadas", + "components.RequestModal.AdvancedRequester.animenote": "* Esta serie es un anime.", + "components.RequestModal.AdvancedRequester.default": "{name} (Predeterminado)", + "components.RequestModal.AdvancedRequester.destinationserver": "Servidor de destino", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Perfil de Idioma", + "components.RequestModal.AdvancedRequester.notagoptions": "Sin etiquetas.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Perfil de calidad", + "components.RequestModal.AdvancedRequester.requestas": "Pedir como", + "components.RequestModal.AdvancedRequester.rootfolder": "Carpeta Raíz", + "components.RequestModal.AdvancedRequester.selecttags": "Seleccionar etiquetas", + "components.RequestModal.AdvancedRequester.tags": "Etiquetas", + "components.RequestModal.QuotaDisplay.allowedRequests": "Se te permite pedir {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Este usuario tiene permitido {limit} {type} cada {days} días.", + "components.RequestModal.QuotaDisplay.movie": "película", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {película} other {películas}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "No te quedan suficientes solicitudes de temporadas restantes", + "components.RequestModal.QuotaDisplay.quotaLink": "Puedes ver un resumen de tus límites de peticiones en tu página de perfil.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Puedes ver un resumen de los límites de solicitudes de estos usuarios en sus páginas de perfil.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {solicitud} other {solicitudes}} restante(s)", + "components.RequestModal.QuotaDisplay.requiredquota": "Necesitas tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Este usuario necesita tener al menos {seasons} {seasons, plural, one {solicitud de temporada} other {solicitudes de temporadas}} restante(s) para poder enviar una solicitud para esta serie.", + "components.RequestModal.QuotaDisplay.season": "temporada", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {temporada} other {temporadas}}", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "No hemos podido emparejar automáticamente tu solicitud. Por favor, selecciona el correcto de la lista.", + "components.RequestModal.alreadyrequested": "Ya Pedida", + "components.RequestModal.autoapproval": "Aprobación Automática", + "components.RequestModal.cancel": "Cancelar Petición", + "components.RequestModal.edit": "Editar Solicitud", + "components.RequestModal.errorediting": "Algo salió mal al editar la solicitud.", + "components.RequestModal.extras": "Extras", + "components.RequestModal.numberofepisodes": "# de Episodios", + "components.RequestModal.pending4krequest": "Solicitud pendiente en 4K", + "components.RequestModal.pendingapproval": "Tu solicitud está pendiente de aprobación.", + "components.RequestModal.pendingrequest": "Solicitud pendiente", + "components.RequestModal.requestCancel": "Solicitud para {title} cancelada.", + "components.RequestModal.requestSuccess": "¡{title} solicitada con éxito!", + "components.RequestModal.requestadmin": "Esta solicitud será aprobada automáticamente.", + "components.RequestModal.requestcancelled": "Solicitud para {title} cancelada.", + "components.RequestModal.requestedited": "¡Solicitud para {title} modificada con éxito!", + "components.RequestModal.requesterror": "Algo fue mal al realizar la solicitud.", + "components.RequestModal.requestfrom": "La solicitud de {username} está pendiente de aprobación.", + "components.RequestModal.requestseasons": "Solicitar {seasonCount} {seasonCount, plural, one {Temporada} other {Temporadas}}", + "components.RequestModal.season": "Temporada", + "components.RequestModal.seasonnumber": "Temporada {number}", + "components.RequestModal.selectseason": "Seleccionar Temporada(s)", + "components.ResetPassword.confirmpassword": "Confirmar Contraseña", + "components.ResetPassword.email": "Dirección de Email", + "components.ResetPassword.emailresetlink": "Enviar enlace de recuperación por email", + "components.ResetPassword.gobacklogin": "Volver a la Página de Login", + "components.ResetPassword.password": "Contraseña", + "components.ResetPassword.passwordreset": "Reinicio de Contraseña", + "components.ResetPassword.requestresetlinksuccessmessage": "Un enlace para reiniciar la contraseña se enviará a la dirección de email indicada si está asociada a un usuario valido.", + "components.ResetPassword.resetpassword": "Reiniciar contraseña", + "components.ResetPassword.resetpasswordsuccessmessage": "¡Contraseña reiniciada con éxito!", + "components.ResetPassword.validationemailrequired": "Debes indicar una dirección de email valida", + "components.ResetPassword.validationpasswordmatch": "La contraseña debe coincidir", + "components.ResetPassword.validationpasswordminchars": "La contraseña es demasiado corta; debería tener al menos 8 caracteres", + "components.ResetPassword.validationpasswordrequired": "Debes indicar una contraseña", + "components.Search.search": "Buscar", + "components.Search.searchresults": "Resultado de la búsqueda", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nombre de Perfil", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Requerido solo si no se usa el perfil por default", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Fallo al guardar los ajustes de notificación de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "¡Los ajustes de notificación se han guardado con éxito!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Fallo al enviar la notificación de prueba de LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Enviando notificación de prueba de LunaSea…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "¡Notificación de LunaSea enviada!", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Debes seleccionar, al menos, un tipo de notificacion", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL del Webhook", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Tu URL del webhook de notificación basado en tu usuario o dispositivo", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Token de Acceso", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Crea un token desde tu Opciones de Cuenta", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Fallo al guardar los ajustes de la notificación Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "¡Los ajustes de notificación Pushbullet se han guardado con éxito!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Fallo al enviar notificación de prueba de Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Enviando notificación de prueba de Pushbullet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "¡Notificación de prueba de Pushbullet enviada!", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Debes indicar un token de acceso", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Token de aplicación API", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Registrar una aplicación para su uso con Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Agente habilitado", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "No se pudo guardar la configuración de notificaciones de Pushover.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "¡Se han guardado los ajustes de notificación de Pushover!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Fallo al enviar la notificación de prueba de Pushover.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Enviando notificación de prueba de Pushover…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "¡Notificación de prueba de Pushover enviada!", + "components.Settings.Notifications.NotificationsPushover.userToken": "Clave de usuario o grupo", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Debes proporcionar un token de aplicación válido", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Debes proporcionar una clave de usuario o grupo válida", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Fallo al guardar ajustes de notificación de Slack.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "¡Ajustes de notificación de Slack guardados con éxito!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Fallo al enviar la notificación de prueba de Slack.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Enviando notificación de prueba de Slack…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "¡Notificación de prueba de Slack enviada!", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Crea una integración con un Webhook de Entrada", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Para recibir notificaciones web push, Jellyseerr debe servirse mediante HTTPS.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Fallo al enviar la notificación de prueba de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Enviando notificación de prueba de Web Push…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "¡Notificación de prueba de Web Push enviada!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Fallo al guardar los ajustes de notificación de Web Push.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "¡Ajustes de notificación de Web Push guardados con éxito!", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Encabezado de autorización", + "components.Settings.Notifications.NotificationsWebhook.customJson": "Payload de JSON", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Restablecer predeterminado", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "¡Payload de JSON restablecido con éxito!", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Ayuda de variable de plantilla", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Fallo al enviar la notificación de prueba de Webhook.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Enviando notificación de prueba de Webhook…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "¡Notificación de prueba de Webhook enviada!", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Debes proporcionar un payload de JSON válido", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "No se pudo guardar la configuración de notificación de webhook.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "¡Configuración de notificación de webhook guardada con éxito!", + "components.Settings.Notifications.agentenabled": "Habilitar Agente", + "components.Settings.Notifications.allowselfsigned": "Permitir certificados autofirmados", + "components.Settings.Notifications.authPass": "Contraseña SMTP", + "components.Settings.Notifications.authUser": "Usuario SMTP", + "components.Settings.Notifications.botAPI": "Token de Autorización del Bot", + "components.Settings.Notifications.botApiTip": "Crea un bot para usar con Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "URL del Bot Avatar", + "components.Settings.Notifications.botUsername": "Nombre de usuario del Bot", + "components.Settings.Notifications.botUsernameTip": "Permite a los usuarios iniciar también un chat con tu bot y configurar sus propias notificaciones", + "components.Settings.Notifications.chatId": "ID de chat", + "components.Settings.Notifications.chatIdTip": "Empieza un chat con tu bot, añade el @get_id_bot e indica el comando /my_id", + "components.Settings.Notifications.discordsettingsfailed": "Fallo al guardar ajustes de notificación de Discord.", + "components.Settings.Notifications.discordsettingssaved": "¡Ajustes de notificación de Discord guardados con éxito!", + "components.Settings.Notifications.emailsender": "Dirección del Remitente", + "components.Settings.Notifications.emailsettingsfailed": "Fallo al guardar ajustes de notificación de Email.", + "components.Settings.Notifications.emailsettingssaved": "¡Ajustes de notificación de Email guardados con éxito!", + "components.Settings.Notifications.encryption": "Método de Encriptación", + "components.Settings.Notifications.encryptionDefault": "Usa STARTTLS si está disponible", + "components.Settings.Notifications.encryptionImplicitTls": "Usa TLS Implícito", + "components.Settings.Notifications.encryptionNone": "Ninguna", + "components.Settings.Notifications.encryptionOpportunisticTls": "Usa siempre STARTTLS", + "components.Settings.Notifications.encryptionTip": "Normalmente, TLS Implícito usa el puerto 465 y STARTTLS usa el puerto 587", + "components.Settings.Notifications.pgpPassword": "Contraseña de PGP", + "components.Settings.Notifications.pgpPasswordTip": "Firmar mensajes de email usando OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "Clave Privada PGP", + "components.Settings.Notifications.pgpPrivateKeyTip": "Firmar mensajes de email encriptados usando OpenPGP", + "components.Settings.Notifications.sendSilently": "Enviar silenciosamente", + "components.Settings.Notifications.sendSilentlyTip": "Enviar notificaciones sin sonido", + "components.Settings.Notifications.senderName": "Nombre del remitente", + "components.Settings.Notifications.smtpHost": "Host SMTP", + "components.Settings.Notifications.smtpPort": "Puerto SMTP", + "components.Settings.Notifications.telegramsettingsfailed": "La configuración de notificaciones de Telegram no se pudo guardar.", + "components.Settings.Notifications.telegramsettingssaved": "¡Se han guardado los ajustes de notificación de Telegram con éxito!", + "components.Settings.Notifications.toastDiscordTestFailed": "Fallo al enviar notificación de prueba de Discord.", + "components.Settings.Notifications.toastDiscordTestSending": "Enviando notificación de prueba de Discord…", + "components.Settings.Notifications.toastDiscordTestSuccess": "¡Notificación de prueba enviada de Discord!", + "components.Settings.Notifications.toastEmailTestFailed": "Fallo al enviar la notificación de prueba por Email.", + "components.Settings.Notifications.toastEmailTestSending": "Enviando notificación de prueba por Email…", + "components.Settings.Notifications.toastEmailTestSuccess": "¡Notificación por Email de prueba enviada!", + "components.Settings.Notifications.toastTelegramTestFailed": "Fallo al enviar notificación de prueba de Telegram.", + "components.Settings.Notifications.toastTelegramTestSending": "Enviando notificación de prueba de Telegram…", + "components.Settings.Notifications.toastTelegramTestSuccess": "¡Notificación de Telegram enviada con éxito!", + "components.Settings.Notifications.validationBotAPIRequired": "Debes proporcionar un token de autorización del bot", + "components.Settings.Notifications.validationChatIdRequired": "Debes proporcionar un ID de chat válido", + "components.Settings.Notifications.validationEmail": "Debes indicar una dirección de email válida", + "components.Settings.Notifications.validationPgpPassword": "Debes indicar una contraseña PGP", + "components.Settings.Notifications.validationPgpPrivateKey": "Debes indicar una clave privada PGP", + "components.Settings.Notifications.validationSmtpHostRequired": "Debes proporcionar un nombre válido de host o una dirección IP", + "components.Settings.Notifications.validationSmtpPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.Notifications.validationTypes": "Debes seleccionar, al menos, un tipo de notificación", + "components.Settings.Notifications.validationUrl": "Debes indicar una URL válida", + "components.Settings.Notifications.webhookUrl": "URL de Webhook", + "components.Settings.Notifications.webhookUrlTip": "Crea una integración webhook en tu servidor", + "components.Settings.RadarrModal.add": "Agregar Servidor", + "components.Settings.RadarrModal.apiKey": "Clave API", + "components.Settings.RadarrModal.baseUrl": "URL Base", + "components.Settings.RadarrModal.create4kradarr": "Añadir un nuevo servidor Radarr 4K", + "components.Settings.RadarrModal.createradarr": "Añadir Nuevo Servidor Radarr", + "components.Settings.RadarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.RadarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.RadarrModal.edit4kradarr": "Modificar servidor Radarr 4K", + "components.Settings.RadarrModal.editradarr": "Editar Servidor Radarr", + "components.Settings.RadarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.RadarrModal.externalUrl": "URL externa", + "components.Settings.RadarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.RadarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.RadarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.RadarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.RadarrModal.minimumAvailability": "Disponibilidad Mínima", + "components.Settings.RadarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.RadarrModal.port": "Puerto", + "components.Settings.RadarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.RadarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.RadarrModal.selectMinimumAvailability": "Selecciona Disponibilidad Mínima", + "components.Settings.RadarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.RadarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.RadarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.RadarrModal.server4k": "Servidor 4K", + "components.Settings.RadarrModal.servername": "Nombre del Servidor", + "components.Settings.RadarrModal.ssl": "Usar SSL", + "components.Settings.RadarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.RadarrModal.tags": "Etiquetas", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Prueba la conexión para cargar perfiles de calidad", + "components.Settings.RadarrModal.testFirstRootFolders": "Prueba la conexión para cargar carpetas raíz", + "components.Settings.RadarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Error al connectar al Radarr.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "¡Conexión con Radarr establecida con éxito!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.RadarrModal.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "URL Base debe tener una barra al principio", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "URL Base No debe tener una barra al final", + "components.Settings.RadarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Debes seleccionar disponibilidad mínima", + "components.Settings.RadarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.RadarrModal.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.RadarrModal.validationProfileRequired": "Debes seleccionar un perfil de calidad", + "components.Settings.RadarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.SettingsAbout.Releases.currentversion": "Actual", + "components.Settings.SettingsAbout.Releases.latestversion": "Última Versión", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "La fecha de lanzamiento no está actualmente disponible.", + "components.Settings.SettingsAbout.Releases.releases": "Versiones", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Cambios de la versión {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Ver registro de cambios", + "components.Settings.SettingsAbout.Releases.viewongithub": "Ver en GitHub", + "components.Settings.SettingsAbout.about": "Acerca de", + "components.Settings.SettingsAbout.betawarning": "¡Este es un software BETA. Algunas funcionalidades podrían fallar. Por favor, reporta cualquier problema en Github!", + "components.Settings.SettingsAbout.documentation": "Documentación", + "components.Settings.SettingsAbout.gettingsupport": "Soporte", + "components.Settings.SettingsAbout.githubdiscussions": "Discusiones en GitHub", + "components.Settings.SettingsAbout.helppaycoffee": "Ayúdame invitándome a un café", + "components.Settings.SettingsAbout.outofdate": "Desactualizado", + "components.Settings.SettingsAbout.overseerrinformation": "Sobre Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Preferida", + "components.Settings.SettingsAbout.runningDevelop": "Estás utilizando la rama de develop de Jellyseerr, la cual solo se recomienda para aquellos que contribuyen al desarrollo o al soporte de las pruebas de nuevos desarrollos.", + "components.Settings.SettingsAbout.supportoverseerr": "Apoya a Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Zona horaria", + "components.Settings.SettingsAbout.totalmedia": "Contenido Total", + "components.Settings.SettingsAbout.totalrequests": "Peticiones Totales", + "components.Settings.SettingsAbout.uptodate": "Actualizado", + "components.Settings.SettingsAbout.version": "Versión", + "components.Settings.SettingsJobsCache.cache": "Caché", + "components.Settings.SettingsJobsCache.cacheDescription": "Overseer cachea peticiones a APIs externas para optimizar el rendimiento y evitar llamadas innecesarias a esas APIs.", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} caché limpiada.", + "components.Settings.SettingsJobsCache.cachehits": "Consultas", + "components.Settings.SettingsJobsCache.cachekeys": "Claves Totales", + "components.Settings.SettingsJobsCache.cacheksize": "Tamaño de Clave", + "components.Settings.SettingsJobsCache.cachemisses": "Fallos", + "components.Settings.SettingsJobsCache.cachename": "Nombre de Caché", + "components.Settings.SettingsJobsCache.cachevsize": "Valor del Tamaño", + "components.Settings.SettingsJobsCache.canceljob": "Cancelar Tarea Programada", + "components.Settings.SettingsJobsCache.command": "Comando", + "components.Settings.SettingsJobsCache.download-sync": "Descarga Sincronizada", + "components.Settings.SettingsJobsCache.download-sync-reset": "Reiniciar Descarga Sincronizada", + "components.Settings.SettingsJobsCache.editJobSchedule": "Modificar tarea programada", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frecuencia", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Cada {jobScheduleHours, plural, one {hora} other {{jobScheduleHours} horas}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Cada {jobScheduleMinutes, plural, one {minuto} other {{jobScheduleMinutes} minutos}}", + "components.Settings.SettingsJobsCache.flushcache": "Vaciar Caché", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Escaneo de Recien Añadidos de Jellyfin", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Escaneo Completo de la Biblioteca de Jellyfin", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Algo fue mal al guardar la tarea programada.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "¡Tarea programada modificada con éxito!", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} cancelada.", + "components.Settings.SettingsJobsCache.jobname": "Nombre de Tarea Programada", + "components.Settings.SettingsJobsCache.jobs": "Tareas Programadas", + "components.Settings.SettingsJobsCache.jobsDescription": "Overserr realiza ciertas tareas de mantenimiento como Tareas Programadas, pero también pueden lanzarse manualmente a continuación. Lanzar una tarea manual no altera su programación.", + "components.Settings.SettingsJobsCache.jobsandcache": "Tareas y Caché", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} comenzada.", + "components.Settings.SettingsJobsCache.jobtype": "Tipo", + "components.Settings.SettingsJobsCache.nextexecution": "Próxima Ejecución", + "components.Settings.SettingsJobsCache.plex-full-scan": "Escaneo Completo de la Biblioteca de Plex", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Escaneo de Recien Añadidos de Plex", + "components.Settings.SettingsJobsCache.process": "Procesamiento", + "components.Settings.SettingsJobsCache.radarr-scan": "Escaneo de Radarr", + "components.Settings.SettingsJobsCache.runnow": "Ejecutar Ahora", + "components.Settings.SettingsJobsCache.sonarr-scan": "Escaneo de Sonarr", + "components.Settings.SettingsJobsCache.unknownJob": "Tarea Desconocida", + "components.Settings.SettingsLogs.copiedLogMessage": "Copiar log al portapapeles.", + "components.Settings.SettingsLogs.copyToClipboard": "Copiar al Portapapeles", + "components.Settings.SettingsLogs.extraData": "Datos Adicionales", + "components.Settings.SettingsLogs.filterDebug": "Depuración", + "components.Settings.SettingsLogs.filterError": "Error", + "components.Settings.SettingsLogs.filterInfo": "Info", + "components.Settings.SettingsLogs.filterWarn": "Advertencia", + "components.Settings.SettingsLogs.label": "Etiqueta", + "components.Settings.SettingsLogs.level": "Severidad", + "components.Settings.SettingsLogs.logDetails": "Detalles del Log", + "components.Settings.SettingsLogs.logs": "Logs", + "components.Settings.SettingsLogs.logsDescription": "Puede ver estos logs directamente via stdout o en {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.message": "Mensaje", + "components.Settings.SettingsLogs.pauseLogs": "Pausar", + "components.Settings.SettingsLogs.resumeLogs": "Reanudar", + "components.Settings.SettingsLogs.showall": "Mostrar todos los logs", + "components.Settings.SettingsLogs.time": "Marca de tiempo (timestamp)", + "components.Settings.SettingsUsers.defaultPermissions": "Permisos por Defecto", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Permisos iniciales asignados a nuevos usuarios", + "components.Settings.SettingsUsers.localLogin": "Habilitar Autenticación Local", + "components.Settings.SettingsUsers.localLoginTip": "Permite a los usuarios registrarse consumo email y password, en lugar de la OAuth de Plex", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Límite Global de Solicitudes de Películas", + "components.Settings.SettingsUsers.newPlexLogin": "Habilitar nuevo inicio de sesión de {mediaServerName}", + "components.Settings.SettingsUsers.newPlexLoginTip": "Habilitar inicio de sesión de usuarios de {mediaServerName} sin importarse previamente", + "components.Settings.SettingsUsers.toastSettingsFailure": "Algo fue mal mientras se guardaban los cambios.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "¡Ajustes de usuario guardados con éxito!", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Límite Global de Solicitudes de Series", + "components.Settings.SettingsUsers.userSettings": "Ajustes de Usuario", + "components.Settings.SettingsUsers.userSettingsDescription": "Configura los ajustes de usuarios globales y por defecto.", + "components.Settings.SettingsUsers.users": "Usuarios", + "components.Settings.SonarrModal.add": "Agregar Servidor", + "components.Settings.SonarrModal.animeTags": "Etiquetas Anime", + "components.Settings.SonarrModal.animelanguageprofile": "Perfil de Idioma para Anime", + "components.Settings.SonarrModal.animequalityprofile": "Perfil de calidad de anime", + "components.Settings.SonarrModal.animerootfolder": "Carpeta raíz de anime", + "components.Settings.SonarrModal.apiKey": "Clave API", + "components.Settings.SonarrModal.baseUrl": "URL Base", + "components.Settings.SonarrModal.create4ksonarr": "Añadir nuevo servidor Sonarr 4K", + "components.Settings.SonarrModal.createsonarr": "Añadir Nuevo Servidor Sonarr", + "components.Settings.SonarrModal.default4kserver": "Servidor 4K por defecto", + "components.Settings.SonarrModal.defaultserver": "Servidor por Defecto", + "components.Settings.SonarrModal.edit4ksonarr": "Modificar servidor 4K Sonarr", + "components.Settings.SonarrModal.editsonarr": "Editar Servidor Sonarr", + "components.Settings.SonarrModal.enableSearch": "Habilitar Búsqueda Automática", + "components.Settings.SonarrModal.externalUrl": "URL Externa", + "components.Settings.SonarrModal.hostname": "Nombre de Host o Dirección IP", + "components.Settings.SonarrModal.languageprofile": "Perfil de Idioma", + "components.Settings.SonarrModal.loadingTags": "Cargando etiquetas…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Cargando perfiles de idioma…", + "components.Settings.SonarrModal.loadingprofiles": "Cargando perfiles de calidad…", + "components.Settings.SonarrModal.loadingrootfolders": "Cargando carpetas raíz…", + "components.Settings.SonarrModal.notagoptions": "Sin etiquetas.", + "components.Settings.SonarrModal.port": "Puerto", + "components.Settings.SonarrModal.qualityprofile": "Perfil de Calidad", + "components.Settings.SonarrModal.rootfolder": "Carpeta Raíz", + "components.Settings.SonarrModal.seasonfolders": "Carpetas por Temporada", + "components.Settings.SonarrModal.selectLanguageProfile": "Seleccionar Perfil de Idioma", + "components.Settings.SonarrModal.selectQualityProfile": "Selecciona un perfil de calidad", + "components.Settings.SonarrModal.selectRootFolder": "Selecciona la carpeta raíz", + "components.Settings.SonarrModal.selecttags": "Seleccionar etiquetas", + "components.Settings.SonarrModal.server4k": "Servidor 4K", + "components.Settings.SonarrModal.servername": "Nombre del Servidor", + "components.Settings.SonarrModal.ssl": "Usar SSL", + "components.Settings.SonarrModal.syncEnabled": "Habilitar Escaneo", + "components.Settings.SonarrModal.tags": "Etiquetas", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Probar conexión para obtener los perfiles de idioma", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Probar conexión para cargar perfiles de calidad", + "components.Settings.SonarrModal.testFirstRootFolders": "Probar conexión para cargar carpetas raíz", + "components.Settings.SonarrModal.testFirstTags": "Probar conexión para cargar etiquetas", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Fallo al conectar con Sonarr.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "¡Conexión establecida con Sonarr con éxito!", + "components.Settings.SonarrModal.validationApiKeyRequired": "Debes proporcionar la clave API", + "components.Settings.SonarrModal.validationApplicationUrl": "Debe indicar una URL válida", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "La URL no puede terminar con una barra", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "La URL Base debe comenzar con una barra", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "La URL BASE no puede terminar con una barra", + "components.Settings.SonarrModal.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Debes seleccionar un perfil de idioma", + "components.Settings.SonarrModal.validationNameRequired": "Debes proporcionar un nombre de servidor", + "components.Settings.SonarrModal.validationPortRequired": "Debes proporcionar un número de puerto valido", + "components.Settings.SonarrModal.validationProfileRequired": "Debes seleccionar un perfil", + "components.Settings.SonarrModal.validationRootFolderRequired": "Debes seleccionar una carpeta raíz", + "components.Settings.activeProfile": "Perfil activo", + "components.Settings.addradarr": "Agregar servidor Radarr", + "components.Settings.address": "Dirección", + "components.Settings.addsonarr": "Agregar servidor Sonarr", + "components.Settings.apikey": "Clave API", + "components.Settings.applicationTitle": "Título de la Aplicación", + "components.Settings.applicationurl": "URL de la aplicación", + "components.Settings.cacheImages": "Habilitar Cacheado de Imagen", + "components.Settings.cacheImagesTip": "Optimizar y guardar todas las imágenes localmente (consume mucho espacio en disco)", + "components.Settings.cancelscan": "Cancelar Escaneo", + "components.Settings.copied": "Clave API copiada en el portapapeles.", + "components.Settings.csrfProtection": "Habilitar Protección CSRF", + "components.Settings.csrfProtectionHoverTip": "¡NO habilitar esta opción a menos que seas consciente de lo que estás haciendo!", + "components.Settings.csrfProtectionTip": "Asigna acceso a una API externa en modo solo lectura (requiere HTTPS y debe recargarse Overseer para poder aplicar los cambios)", + "components.Settings.currentlibrary": "Biblioteca actual: {name}", + "components.Settings.default": "Predeterminado", + "components.Settings.default4k": "4K predeterminado", + "components.Settings.deleteserverconfirm": "¿Está seguro de que desea eliminar este servidor?", + "components.Settings.email": "Email", + "components.Settings.enablessl": "Usar SSL", + "components.Settings.general": "General", + "components.Settings.generalsettings": "Configuración general", + "components.Settings.generalsettingsDescription": "Configuración global y ajustes por defecto de Jellyseerr.", + "components.Settings.hideAvailable": "Ocultar los Medios Disponibles", + "components.Settings.hostname": "Nombre de host o Dirección IP", + "components.Settings.is4k": "4K", + "components.Settings.librariesRemaining": "Bibliotecas restantes: {count}", + "components.Settings.locale": "Idioma en Pantalla", + "components.Settings.manualscan": "Escaneo Manual de Biblioteca", + "components.Settings.manualscanDescription": "Normalmente, esto sólo se ejecutará una vez cada 24 horas. Jellyseerr comprobará de forma más agresiva los añadidos recientemente de su servidor Plex. ¡Si es la primera vez que configura Plex, se recomienda un escaneo manual completo de la biblioteca!", + "components.Settings.mediaTypeMovie": "película", + "components.Settings.mediaTypeSeries": "serie", + "components.Settings.menuAbout": "Acerca de", + "components.Settings.menuGeneralSettings": "General", + "components.Settings.menuJobs": "Tareas y Caché", + "components.Settings.menuLogs": "Registro", + "components.Settings.menuNotifications": "Notificaciones", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Servicios", + "components.Settings.menuUsers": "Usuarios", + "components.Settings.noDefault4kServer": "Un servidor 4K de {serverType} debe ser marcado por defecto para poder habilitar las solicitudes 4K de {mediaType} de los usuarios.", + "components.Settings.noDefaultNon4kServer": "Si solo tienes un único servidor {serverType} para contenidos 4K y no 4K (o si solo descargas contenidos 4k), tu servidor {serverType} NO debería marcarse como un servidor 4k.", + "components.Settings.noDefaultServer": "Al menos un servidor {serverType} debe marcarse como por defecto para que las solicitudes de {mediaType} sean procesadas.", + "components.Settings.notificationAgentSettingsDescription": "Configura y habilita los agentes de notificaciones.", + "components.Settings.notifications": "Notificaciones", + "components.Settings.notificationsettings": "Configuración de notificaciones", + "components.Settings.notrunning": "Sin ejecutarse", + "components.Settings.originallanguage": "Idioma para la sección Descubrir", + "components.Settings.originallanguageTip": "Filtrar contenido por idioma original", + "components.Settings.partialRequestsEnabled": "Permitir Solicitudes Parciales de Series", + "components.Settings.plex": "Plex", + "components.Settings.plexlibraries": "Bibliotecas Plex", + "components.Settings.plexlibrariesDescription": "Las bibliotecas en las que Jellyseerr escanea para buscar títulos. Configure y guarde la configuración de conexión Plex, y después haga clic en el botón de abajo si no aparece ninguna.", + "components.Settings.plexsettings": "Ajustes de Plex", + "components.Settings.plexsettingsDescription": "Configure los ajustes de su servidor Plex. Jellyseerr escanea tu biblioteca para determinar la disponibilidad de contenidos.", + "components.Settings.port": "Puerto", + "components.Settings.radarrsettings": "Ajustes de Radarr", + "components.Settings.region": "Región para la sección \"Descubrir\"", + "components.Settings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.Settings.scan": "Sincronizar Bibliotecas", + "components.Settings.scanning": "Sincronizando…", + "components.Settings.serverLocal": "local", + "components.Settings.serverRemote": "remoto", + "components.Settings.serverSecure": "seguro", + "components.Settings.serverpreset": "Servidor", + "components.Settings.serverpresetLoad": "Presiona el botón para obtener los servidores disponibles", + "components.Settings.serverpresetManualMessage": "Configuración manual", + "components.Settings.serverpresetRefreshing": "Obteniendo servidores…", + "components.Settings.serviceSettingsDescription": "Configura tu(s) servidor(es) {serverType} a continuación. Puedes conectar a múltiples servidores de {serverType}, pero solo dos de ellos pueden ser marcados como por defecto (uno no-4k y otro 4k). Los administradores podrán modificar el servidor usado al procesar nuevas solicitudes antes de su aprobación.", + "components.Settings.services": "Servicios", + "components.Settings.settingUpPlexDescription": "Para configurar Plex, puedes introducir manualmente los detalles o seleccionar un servidor obtenido de plex.tv. Pulsa el botón de la derecha del desplegable para obtener los servidores disponibles.", + "components.Settings.sonarrsettings": "Ajustes de Sonarr", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Iniciar Escaneo", + "components.Settings.toastApiKeyFailure": "Algo salió mal generando una nueva clave API.", + "components.Settings.toastApiKeySuccess": "¡Nueva clave API generada con éxito!", + "components.Settings.toastPlexConnecting": "Intentando conectar con Plex…", + "components.Settings.toastPlexConnectingFailure": "Fallo al conectar con Plex.", + "components.Settings.toastPlexConnectingSuccess": "¡Conexión al servidor Plex establecida con éxito!", + "components.Settings.toastPlexRefresh": "Obteniendo la lista de servidores desde Plex…", + "components.Settings.toastPlexRefreshFailure": "Fallo al obtener la lista de servidores de Plex.", + "components.Settings.toastPlexRefreshSuccess": "¡Recibida la lista de servidores de Plex con éxito!", + "components.Settings.toastSettingsFailure": "Algo salió mal guardando la configuración.", + "components.Settings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.Settings.trustProxy": "Habilitar soporte Proxy", + "components.Settings.trustProxyTip": "Permite a Overserr registrar correctamente la IP del cliente detrás de un Proxy (Overseer debe recargarse para que los cambios surtan efecto)", + "components.Settings.validationApplicationTitle": "Debes indicar un título de aplicación", + "components.Settings.validationApplicationUrl": "Debes indicar una URL válida", + "components.Settings.validationApplicationUrlTrailingSlash": "La URL no puede acabar con una barra", + "components.Settings.validationHostnameRequired": "Debes proporcionar un nombre de host o dirección IP válido", + "components.Settings.validationPortRequired": "Debes proporcionar un número de puerto válido", + "components.Settings.webAppUrl": "Url de la Web App", + "components.Settings.webAppUrlTip": "Dirige a los usuarios, opcionalmente, a la web app en tu servidor, en lugar de la app alojada en Plex", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", + "components.Setup.configureplex": "Configurar Plex", + "components.Setup.configureservices": "Configurar servicios", + "components.Setup.continue": "Continuar", + "components.Setup.finish": "Finalizar configuración", + "components.Setup.finishing": "Finalizando…", + "components.Setup.loginwithplex": "Iniciar sesión con Plex", + "components.Setup.scanbackground": "El escaneo seguirá en segundo plano. Puedes continuar mientras el proceso de configuración.", + "components.Setup.setup": "Configuración", + "components.Setup.signinMessage": "Comience iniciando sesión con su cuenta de Plex", + "components.Setup.tip": "Consejo", + "components.Setup.welcome": "Bienvenido a Jellyseerr", + "components.StatusBadge.status": "{status}", + "components.StatusBadge.status4k": "4K {status}", + "components.StatusChacker.newversionDescription": "¡Jellyseerr se ha actualizado!Haga clic en el botón de abajo para volver a cargar la aplicación.", + "components.StatusChacker.newversionavailable": "Actualización de Aplicación", + "components.StatusChacker.reloadOverseerr": "Recargar", + "components.TvDetails.TvCast.fullseriescast": "Reparto completo de la serie", + "components.TvDetails.TvCrew.fullseriescrew": "Equipo completo de la serie", + "components.TvDetails.anime": "Anime", + "components.TvDetails.cast": "Reparto", + "components.TvDetails.episodeRuntime": "Duración del Episodio", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutos", + "components.TvDetails.firstAirDate": "Primera fecha de emisión", + "components.TvDetails.network": "{networkCount, plural, one {Red} other {Redes}}", + "components.TvDetails.nextAirDate": "Próxima Emisión", + "components.TvDetails.originallanguage": "Idioma original", + "components.TvDetails.originaltitle": "Título Original", + "components.TvDetails.overview": "Resumen", + "components.TvDetails.overviewunavailable": "Resumen indisponible.", + "components.TvDetails.play4konplex": "Ver en Plex en 4K", + "components.TvDetails.playonplex": "Ver en Plex", + "components.TvDetails.recommendations": "Recomendaciones", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Temporada} other {# Temporadas}}", + "components.TvDetails.showtype": "Tipos de Series", + "components.TvDetails.similar": "Series Similares", + "components.TvDetails.streamingproviders": "Emisión Actual en", + "components.TvDetails.viewfullcrew": "Ver Equipo Completo", + "components.TvDetails.watchtrailer": "Ver Trailer", + "components.UserList.accounttype": "Tipo", + "components.UserList.admin": "Administrador", + "components.UserList.autogeneratepassword": "Generar Contraseña Automáticamente", + "components.UserList.autogeneratepasswordTip": "Envía por email una contraseña al usuario generada por el servidor", + "components.UserList.bulkedit": "Edición Masiva", + "components.UserList.create": "Crear", + "components.UserList.created": "Unido", + "components.UserList.createlocaluser": "Crear usuario local", + "components.UserList.creating": "Creando…", + "components.UserList.deleteconfirm": "¿Está seguro de que desea eliminar este usuario? Se eliminarán todas sus solicitudes de forma permanente.", + "components.UserList.deleteuser": "Eliminar usuario", + "components.UserList.displayName": "Nombre en Pantalla", + "components.UserList.edituser": "Editar Permisos de Usuario", + "components.UserList.email": "Dirección de correo electrónico", + "components.UserList.importedfromplex": "¡{userCount, plural, one {# nuevo usuario} other {# nuevos usuarios}} importado/s de Plex con éxito!", + "components.UserList.importfrommediaserver": "Importar Usuarios de {mediaServerName}", + "components.UserList.importfromplex": "Importar Usuarios de Plex", + "components.UserList.importfromplexerror": "Algo salió mal importando usuarios de Plex.", + "components.UserList.localLoginDisabled": "El ajuste para Habilitar el Inicio de Sesión Local está actualmente deshabilitado.", + "components.UserList.localuser": "Usuario local", + "components.UserList.nouserstoimport": "No se han importado usuarios nuevos desde Plex.", + "components.UserList.owner": "Propietario", + "components.UserList.password": "Contraseña", + "components.UserList.passwordinfodescription": "Configura una URL de aplicación y habilita las notificaciones por email para poder utilizar las contraseñas generadas automáticamente.", + "components.UserList.plexuser": "Usuario de Plex", + "components.UserList.role": "Rol", + "components.UserList.sortCreated": "Fecha de Unión", + "components.UserList.sortDisplayName": "Nombre a mostrar", + "components.UserList.sortRequests": "Número de Solicitudes", + "components.UserList.totalrequests": "Solicitudes", + "components.UserList.user": "Usuario", + "components.UserList.usercreatedfailed": "Algo salió mal al intentar crear al usuario.", + "components.UserList.usercreatedfailedexisting": "La dirección de email proporcionada ya está en uso por otro usuario.", + "components.UserList.usercreatedsuccess": "¡Usuario creado con éxito!", + "components.UserList.userdeleted": "¡Usuario eliminado con éxito!", + "components.UserList.userdeleteerror": "Algo salió mal al eliminar al usuario.", + "components.UserList.userfail": "Algo fue mal al guardar los permisos del usuario.", + "components.UserList.userlist": "Lista de usuarios", + "components.UserList.users": "Usuarios", + "components.UserList.userssaved": "¡Permisos de usuario guardados con éxito!", + "components.UserList.validationEmail": "Debes indicar un dirección de email válida", + "components.UserList.validationpasswordminchars": "La contraseña es demasiado corta; debe tener 8 caracteres como mínimo", + "components.UserProfile.ProfileHeader.joindate": "Unido el {joindate}", + "components.UserProfile.ProfileHeader.profile": "Ver Perfil", + "components.UserProfile.ProfileHeader.settings": "Editar Ajustes", + "components.UserProfile.ProfileHeader.userid": "Id de Usuario: {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Tipo de Cuenta", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Administrador", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Mostrar Idioma", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nombre a mostrar", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Límite global de Sobreescritura", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "General", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Ajustes Generales", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "{{Language}} por defecto", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Usuario Local", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Límite de Solicitudes de Películas", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Idioma de la sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrar contenido por idioma original", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propietario", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Usuario en Plex", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Región en sección \"Descubrir\"", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrar contenido por disponibilidad regional", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rol", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Límite de Solicitudes de Series", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "¡Ajustes guardados con éxito!", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID de Usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "El número ID de tu cuenta de usuario", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "No se han podido guardar los ajustes de notificaciones de Discord.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "¡Los ajustes de notificaciones de Discord se han guardado correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Error al guardar los ajustes de notificaciones por email.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "¡Ajustes de notificación por email guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Ajustes de Notificaciones", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clave Pública PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Encriptar mensajes por email usando OpenPGP2", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Token de Acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Crear un token desde tus Ajustes de Cuenta", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Los ajustes de Notificación de Pushbullet fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "¡Los ajustes de notificación de Pushbullet se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "API Token de Aplicación", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Registrar una aplicaicón para su uso con {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clave de Usuario o Grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Tu identificador de usuario o grupo de 30 caracteres", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Los ajustes de notificación Pushover fallaron al guardar.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "¡Los ajustes de notificación de Pushover se guardaron con éxito!", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Enviar de forma silenciosa", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Enviar notificaciones sin sonido", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID del Chat", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Comienza un chat, añade el @get_id_bot, y envía el comando /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Error al guardar los ajustes de notificaciones de Telegram.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "¡Ajustes de notificaciones de Telegram guardados correctamente!", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Debes indicar un Id de usuario válido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Debes introducir una clave pública PGP valida", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Debes indicar un token de acceso", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Debes indicar un token de aplicación valido", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Debes indicar una clave válida de usuario o grupo", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Debes indicar un Id de chat válido", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Fallo al guardar los ajustes de notificaciones de Web Push.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "¡Ajustes de notificacion de Web Push guardados con éxito!", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmar Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Contraseña Actual", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nueva Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Esta cuenta de usuario no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\"", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Tu cuenta no tiene configurada una contraseña actualmente. Configure una contraseña a continuación para habilitar el acceso como \"usuario local\" utilizando tu dirección de email.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "No tienes permiso para modificar la contraseña del usuario.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Algo fue mal al guardar la contraseña.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Algo fue mal al guardar la contraseña. ¿Has introducido correctamente tu contraseña actual?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "¡Contraseña guardada correctamente!", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Debes confirmar la nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Las contraseñas deben coincidir", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Debes indicar tu contraseña actual", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Debes proporcionar una nueva contraseña", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "La contraseña es muy corta; debería tener, al menos, 8 caracteres", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Permisos", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Algo fue mal al guardar los ajustes.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "¡Permisos guardados con éxito!", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "No puedes modificar tus propios permisos.", + "components.UserProfile.UserSettings.menuChangePass": "Contraseña", + "components.UserProfile.UserSettings.menuGeneralSettings": "General", + "components.UserProfile.UserSettings.menuNotifications": "Notificaciones", + "components.UserProfile.UserSettings.menuPermissions": "Permisos", + "components.UserProfile.UserSettings.unauthorizedDescription": "No tienes permiso para modificar estos ajustes de usuario.", + "components.UserProfile.limit": "{remaining} de {limit}", + "components.UserProfile.movierequests": "Solicitudes de Películas", + "components.UserProfile.pastdays": "{type} (últimos {days} días)", + "components.UserProfile.recentrequests": "Solicitudes Recientes", + "components.UserProfile.requestsperdays": "{limit} restantes", + "components.UserProfile.seriesrequest": "Solicitudes de Series", + "components.UserProfile.totalrequests": "Solicitudes Totales", + "components.UserProfile.unlimited": "Ilimitadas", + "i18n.advanced": "Avanzado", + "i18n.all": "Todas", + "i18n.approve": "Aprobar", + "i18n.approved": "Aprobado", + "i18n.areyousure": "¿Estás Seguro?", + "i18n.available": "Disponible", + "i18n.back": "Atrás", + "i18n.cancel": "Cancelar", + "i18n.canceling": "Cancelando…", + "i18n.close": "Cerrar", + "i18n.decline": "Rechazar", + "i18n.declined": "Rechazado", + "i18n.delete": "Eliminar", + "i18n.deleting": "Eliminando…", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Editar", + "i18n.experimental": "Experimental", + "i18n.failed": "Fallido", + "i18n.loading": "Cargando…", + "i18n.movie": "Película", + "i18n.movies": "Películas", + "i18n.next": "Adelante", + "i18n.noresults": "Sin resultados.", + "i18n.notrequested": "No Solicitado", + "i18n.open": "Abrir", + "i18n.partiallyavailable": "Parcialmente Disponible", + "i18n.pending": "Pendiente", + "i18n.previous": "Anterior", + "i18n.processing": "Procesando", + "i18n.request": "Solicitar", + "i18n.request4k": "Pedir en 4K", + "i18n.requested": "Solicitado", + "i18n.requesting": "Pidiendo…", + "i18n.resolved": "Resuelta", + "i18n.resultsperpage": "Mostrar {pageSize} resultados por página", + "i18n.retry": "Reintentar", + "i18n.retrying": "Reintentando…", + "i18n.save": "Guardar Cambios", + "i18n.saving": "Guardando…", + "i18n.settings": "Ajustes", + "i18n.showingresults": "Mostrando {from} a {to} de {total} resultados", + "i18n.status": "Estado", + "i18n.test": "Probar", + "i18n.testing": "Probando…", + "i18n.tvshow": "Series", + "i18n.tvshows": "Series", + "i18n.unavailable": "No Disponible", + "i18n.usersettings": "Ajustes de Usuario", + "i18n.view": "Ver", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Error Interno del Servidor", + "pages.oops": "Ups", + "pages.pagenotfound": "Página No Encontrada", + "pages.returnHome": "Volver al Inicio", + "pages.serviceunavailable": "Servicio No Disponible", + "pages.somethingwentwrong": "Algo fue mal" } diff --git a/src/i18n/locale/fr.json b/src/i18n/locale/fr.json index 5a2545fa5..50ed0460d 100644 --- a/src/i18n/locale/fr.json +++ b/src/i18n/locale/fr.json @@ -1,6 +1,31 @@ { + "components.AirDateBadge.airedrelative": "Diffusé {relativeTime}", + "components.AirDateBadge.airsrelative": "Diffusion {relativeTime}", + "components.AppDataWarning.dockerVolumeMissingDescription": "Le montage du volume {appDataPath} n'a pas été configuré correctement. Toutes les données seront effacées lorsque le conteneur sera arrêté ou redémarré.", + "components.CollectionDetails.numberofmovies": "{count} films", + "components.CollectionDetails.overview": "Résumé", + "components.CollectionDetails.requestcollection": "Demander la collection", + "components.CollectionDetails.requestcollection4k": "Demander la collection en 4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "Films {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Films en {language}", + "components.Discover.DiscoverNetwork.networkSeries": "Séries {network}", + "components.Discover.DiscoverStudio.studioMovies": "Films {studio}", + "components.Discover.DiscoverTvGenre.genreSeries": "Séries {genre}", + "components.Discover.DiscoverTvLanguage.languageSeries": "Séries en {language}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Ta Plex Watchlist", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", + "components.Discover.MovieGenreList.moviegenres": "Genres de films", + "components.Discover.MovieGenreSlider.moviegenres": "Genres de films", + "components.Discover.NetworkSlider.networks": "Diffuseurs", + "components.Discover.StudioSlider.studios": "Studios", + "components.Discover.TvGenreList.seriesgenres": "Genres de séries", + "components.Discover.TvGenreSlider.tvgenres": "Genres de séries", + "components.Discover.discover": "Découvrir", "components.Discover.discovermovies": "Films populaires", "components.Discover.discovertv": "Séries populaires", + "components.Discover.emptywatchlist": "Les médias ajoutés à ta Plex Watchlist apparaîtront ici.", + "components.Discover.noRequests": "Aucun requête", + "components.Discover.plexwatchlist": "Ta Plex Watchlist", "components.Discover.popularmovies": "Films populaires", "components.Discover.populartv": "Séries populaires", "components.Discover.recentlyAdded": "Ajouts récents", @@ -8,92 +33,728 @@ "components.Discover.trending": "Tendances", "components.Discover.upcoming": "Films à venir", "components.Discover.upcomingmovies": "Films à venir", + "components.Discover.upcomingtv": "Séries à venir", + "components.DownloadBlock.estimatedtime": "Estimé {time}", + "components.DownloadBlock.formattedTitle": "{title} : Saison {seasonNumber} Épisode {episodeNumber}", + "components.IssueDetails.IssueComment.areyousuredelete": "Êtes-vous sûr de vouloir supprimer ce commentaire ?", + "components.IssueDetails.IssueComment.delete": "Supprimer le commentaire", + "components.IssueDetails.IssueComment.edit": "Éditer le commentaire", + "components.IssueDetails.IssueComment.postedby": "Ajouté {relativeTime} par {username}", + "components.IssueDetails.IssueComment.postedbyedited": "Ajouté {relativeTime} par {username} (Édité)", + "components.IssueDetails.IssueComment.validationComment": "Vous devez écrire un message", + "components.IssueDetails.IssueDescription.deleteissue": "Supprimer le problème", + "components.IssueDetails.IssueDescription.description": "Description", + "components.IssueDetails.IssueDescription.edit": "Éditer la description", + "components.IssueDetails.allepisodes": "Tous les épisodes", + "components.IssueDetails.allseasons": "Toutes les saisons", + "components.IssueDetails.closeissue": "Clore le problème", + "components.IssueDetails.closeissueandcomment": "Clore avec un commentaire", + "components.IssueDetails.commentplaceholder": "Ajouter un commentaire…", + "components.IssueDetails.comments": "Commentaires", + "components.IssueDetails.deleteissue": "Supprimer le problème", + "components.IssueDetails.deleteissueconfirm": "Êtes-vous sûr de vouloir supprimer ce problème ?", + "components.IssueDetails.episode": "Épisode {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problème", + "components.IssueDetails.issuetype": "Type", + "components.IssueDetails.lastupdated": "Dernière mise à jour", + "components.IssueDetails.leavecomment": "Commenter", + "components.IssueDetails.nocomments": "Aucun commentaire.", + "components.IssueDetails.openedby": "#{issueId} ouvert {relativeTime} par {username}", + "components.IssueDetails.openin4karr": "Ouvrir dans {arr} 4K", + "components.IssueDetails.openinarr": "Ouvrir dans {arr}", + "components.IssueDetails.play4konplex": "Lire en 4K sur Plex", + "components.IssueDetails.playonplex": "Lire sur Plex", + "components.IssueDetails.problemepisode": "Épisode concerné", + "components.IssueDetails.problemseason": "Saison concernée", + "components.IssueDetails.reopenissue": "Rouvrir le problème", + "components.IssueDetails.reopenissueandcomment": "Rouvrir avec un commentaire", + "components.IssueDetails.season": "Saison {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "Un problème est survenu lors de l'édition de la description du problème.", + "components.IssueDetails.toasteditdescriptionsuccess": "La description du problème a été éditée avec succès !", + "components.IssueDetails.toastissuedeleted": "Le problème a été supprimé avec succès !", + "components.IssueDetails.toastissuedeletefailed": "Un problème est survenu lors de la suppression du problème.", + "components.IssueDetails.toaststatusupdated": "Le statut du problème a été mis à jour avec succès !", + "components.IssueDetails.toaststatusupdatefailed": "Un problème est survenu lors de la mise à jour du statut du problème.", + "components.IssueDetails.unknownissuetype": "Inconnu", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Épisode} other {Épisodes}}", + "components.IssueList.IssueItem.issuestatus": "Statut", + "components.IssueList.IssueItem.issuetype": "Type", + "components.IssueList.IssueItem.opened": "Ouvert", + "components.IssueList.IssueItem.openeduserdate": "{date} par {user}", + "components.IssueList.IssueItem.problemepisode": "Épisode concerné", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Saison} other {Saisons}}", + "components.IssueList.IssueItem.unknownissuetype": "Inconnu", + "components.IssueList.IssueItem.viewissue": "Afficher le problème", + "components.IssueList.issues": "Problèmes", + "components.IssueList.showallissues": "Afficher tous les problèmes", + "components.IssueList.sortAdded": "Plus récents", + "components.IssueList.sortModified": "Dernière modification", + "components.IssueModal.CreateIssueModal.allepisodes": "Tous les épisodes", + "components.IssueModal.CreateIssueModal.allseasons": "Toutes les saisons", + "components.IssueModal.CreateIssueModal.episode": "Épisode {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extras", + "components.IssueModal.CreateIssueModal.problemepisode": "Épisode concerné", + "components.IssueModal.CreateIssueModal.problemseason": "Saison affectée", + "components.IssueModal.CreateIssueModal.providedetail": "Fournissez une explication détaillée du problème.", + "components.IssueModal.CreateIssueModal.reportissue": "Signaler un problème", + "components.IssueModal.CreateIssueModal.season": "Saison {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Soumettre le problème", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Un problème est survenu lors de la soumission du problème.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Le signalement du problème pour {title} a été soumis avec succès !", + "components.IssueModal.CreateIssueModal.toastviewissue": "Afficher le problème", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Vous devez fournir une description", + "components.IssueModal.CreateIssueModal.whatswrong": "Qu’est-ce qui ne va pas ?", + "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Autre", + "components.IssueModal.issueSubtitles": "Sous-titre", + "components.IssueModal.issueVideo": "Vidéo", + "components.LanguageSelector.languageServerDefault": "({language}) par défaut", + "components.LanguageSelector.originalLanguageDefault": "Toutes les langues", + "components.Layout.LanguagePicker.displaylanguage": "Langue d'affichage", "components.Layout.SearchInput.searchPlaceholder": "Rechercher des films et des séries", "components.Layout.Sidebar.dashboard": "Découvrir", + "components.Layout.Sidebar.issues": "Problèmes", "components.Layout.Sidebar.requests": "Demandes", "components.Layout.Sidebar.settings": "Paramètres", "components.Layout.Sidebar.users": "Utilisateurs", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Demandes de films", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Demandes de séries", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.UserDropdown.requests": "Demandes", + "components.Layout.UserDropdown.settings": "Paramètres", "components.Layout.UserDropdown.signout": "Se déconnecter", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {commit} other {commits}} en retard", + "components.Layout.VersionStatus.outofdate": "Obsolète", + "components.Layout.VersionStatus.streamdevelop": "Développement d'Jellyseerr", + "components.Layout.VersionStatus.streamstable": "Jellyseerr stable", + "components.Login.email": "Adresse e-mail", + "components.Login.forgotpassword": "Mot de passe oublié ?", + "components.Login.loginerror": "Une erreur s'est produite lors de la tentative de connexion.", + "components.Login.password": "Mot de passe", + "components.Login.signin": "Connexion", + "components.Login.signingin": "Connexion en cours…", + "components.Login.signinheader": "Connectez-vous pour continuer", + "components.Login.signinwithoverseerr": "Utilisez votre compte {applicationTitle}", + "components.Login.signinwithplex": "Utilisez votre compte Plex", + "components.Login.validationemailrequired": "Vous devez fournir un e-mail valide", + "components.Login.validationpasswordrequired": "Vous devez renseigner un mot de passe", + "components.ManageSlideOver.alltime": "Tout le temps", + "components.ManageSlideOver.downloadstatus": "Téléchargement(s)", + "components.ManageSlideOver.manageModalAdvanced": "Avancé", + "components.ManageSlideOver.manageModalClearMedia": "Effacer les données", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Ceci supprimera de manière irréversible toutes les données de ce(tte) {mediaType}, y compris les demandes éventuelles. Si cet élément existe dans votre bibliothèque {mediaServerName}, les informations sur le média seront recréées lors de la prochaine analyse.", + "components.ManageSlideOver.manageModalIssues": "Problèmes ouverts", + "components.ManageSlideOver.manageModalMedia": "Média(s)", + "components.ManageSlideOver.manageModalMedia4k": "Média(s) 4K", + "components.ManageSlideOver.manageModalNoRequests": "Aucune demande.", + "components.ManageSlideOver.manageModalRequests": "Demandes", + "components.ManageSlideOver.manageModalTitle": "Gérer {mediaType}", + "components.ManageSlideOver.mark4kavailable": "Marquer comme disponible en 4K", + "components.ManageSlideOver.markallseasons4kavailable": "Marquer toutes les saisons comme disponibles en 4K", + "components.ManageSlideOver.markallseasonsavailable": "Marquer toutes les saisons comme disponibles", + "components.ManageSlideOver.markavailable": "Marquer comme disponible", + "components.ManageSlideOver.movie": "film", + "components.ManageSlideOver.openarr": "Ouvrir dans {arr}", + "components.ManageSlideOver.openarr4k": "Ouvrir dans {arr} 4K", + "components.ManageSlideOver.opentautulli": "Ouvrir dans Tautulli", + "components.ManageSlideOver.pastdays": "{days, number} derniers jours", + "components.ManageSlideOver.playedby": "Joué par", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {lecture} other {lectures}}", + "components.ManageSlideOver.tvshow": "série", + "components.MediaSlider.ShowMoreCard.seemore": "Voir plus", + "components.MovieDetails.MovieCast.fullcast": "Casting complet", + "components.MovieDetails.MovieCrew.fullcrew": "Équipe complète", "components.MovieDetails.budget": "Budget", "components.MovieDetails.cast": "Casting", + "components.MovieDetails.digitalrelease": "Sortie numérique", + "components.MovieDetails.managemovie": "Gérer le film", + "components.MovieDetails.mark4kavailable": "Marquer comme disponible en 4K", + "components.MovieDetails.markavailable": "Marquer comme disponible", "components.MovieDetails.originallanguage": "Langue originale", + "components.MovieDetails.originaltitle": "Titre original", "components.MovieDetails.overview": "Résumé", "components.MovieDetails.overviewunavailable": "Résumé indisponible.", + "components.MovieDetails.physicalrelease": "Sortie physique", + "components.MovieDetails.play4konplex": "Lire en 4K sur Plex", + "components.MovieDetails.playonplex": "Lire sur Plex", + "components.MovieDetails.productioncountries": "Pays de production", "components.MovieDetails.recommendations": "Recommandations", "components.MovieDetails.releasedate": "{releaseCount, plural, one {Date} other {Dates}} de sortie", + "components.MovieDetails.reportissue": "Signaler un problème", "components.MovieDetails.revenue": "Revenus", + "components.MovieDetails.rtaudiencescore": "Note d'audience de Rotten Tomatoes", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatomètre", "components.MovieDetails.runtime": "{minutes} minutes", + "components.MovieDetails.showless": "Montrer moins", + "components.MovieDetails.showmore": "Montrer plus", "components.MovieDetails.similar": "Titres similaires", + "components.MovieDetails.streamingproviders": "Actuellement diffusé sur", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", + "components.MovieDetails.theatricalrelease": "Sortie en salles", + "components.MovieDetails.tmdbuserscore": "Note des utilisateurs TMDB", + "components.MovieDetails.viewfullcrew": "Voir l'équipe complète", + "components.MovieDetails.watchtrailer": "Regarder la bande-annonce", + "components.NotificationTypeSelector.adminissuecommentDescription": "Être averti(e) lorsque d'autres utilisateurs commentent sur un problème.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Être averti(e) lorsqu'un problème est ré-ouvert par d'autres utilisateurs.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Être averti(e) lorsqu'un problème est résolu par d'autres utilisateurs.", + "components.NotificationTypeSelector.issuecomment": "Commentaires du problème", + "components.NotificationTypeSelector.issuecommentDescription": "Envoyer des notifications lorsqu'un problème reçoit de nouveaux commentaires.", + "components.NotificationTypeSelector.issuecreated": "Problème signalé", + "components.NotificationTypeSelector.issuecreatedDescription": "Envoyer des notifications lorsqu'un problème est signalé.", + "components.NotificationTypeSelector.issuereopened": "Problème rouvert", + "components.NotificationTypeSelector.issuereopenedDescription": "Envoyer des notifications lorsqu'un problème est rouvert.", + "components.NotificationTypeSelector.issueresolved": "Problème résolu", + "components.NotificationTypeSelector.issueresolvedDescription": "Envoyer des notifications lorsqu'un problème est résolu.", + "components.NotificationTypeSelector.mediaAutoApproved": "Demande validée automatiquement", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envoyer des notifications lorsque des utilisateurs soumettent une demande pour un nouveau média qui est validée automatiquement.", + "components.NotificationTypeSelector.mediaapproved": "Demande validée", + "components.NotificationTypeSelector.mediaapprovedDescription": "Envoyer des notifications lorsqu'une demande de média est validée manuellement.", + "components.NotificationTypeSelector.mediaautorequested": "Demande soumise automatiquement", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Recevez une notification lorsque de nouvelles demandes de médias sont automatiquement soumises pour des éléments de votre Plex Watchlist.", + "components.NotificationTypeSelector.mediaavailable": "Demande disponible", + "components.NotificationTypeSelector.mediaavailableDescription": "Envoyer des notifications lorsque le média demandé devient disponible.", + "components.NotificationTypeSelector.mediadeclined": "Demande refusée", + "components.NotificationTypeSelector.mediadeclinedDescription": "Envoyer des notifications lorsqu'une demande de média est refusée.", + "components.NotificationTypeSelector.mediafailed": "Échec d’ajout de la demande", + "components.NotificationTypeSelector.mediafailedDescription": "Envoyer des notifications lorsqu'une demande de média n'a pas pu être ajoutée à Radarr ou Sonarr.", + "components.NotificationTypeSelector.mediarequested": "Demande en attente de validation", + "components.NotificationTypeSelector.mediarequestedDescription": "Envoyer des notifications lorsque des utilisateurs soumettent une demande de média qui nécessite une validation.", + "components.NotificationTypeSelector.notificationTypes": "Types de Notification", + "components.NotificationTypeSelector.userissuecommentDescription": "Être averti(e) lorsqu'un problème que vous avez signalé reçoit de nouveaux commentaires.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Être averti(e) lorsque d’autres utilisateurs signalent des problèmes.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Être averti(e) lorsqu'un problème que vous avez signalé a été rouvert.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Être averti(e) lorsqu'un problème que vous avez signalé est résolu.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Être averti(e) lorsque des utilisateurs soumettent une demande de média qui est validée automatiquement.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Être averti(e) lorsque vos demandes de médias sont validées.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Être averti(e) lorsque vos demandes de médias deviennent disponibles.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Être averti(e) lorsque vos demandes de médias sont refusées.", + "components.NotificationTypeSelector.usermediafailedDescription": "Être averti(e) lorsqu'une demande de média n'a pas pu être ajoutée à Radarr ou Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Être averti(e) lorsque d'autres utilisateurs soumettent une demande de média qui nécessite une validation.", + "components.PermissionEdit.admin": "Admin", + "components.PermissionEdit.adminDescription": "Accès administrateur complet. Contourne toutes les autres permissions (sélectionnées ou non).", + "components.PermissionEdit.advancedrequest": "Demandes avancées", + "components.PermissionEdit.advancedrequestDescription": "Permet de modifier les options de demande de média avancées.", + "components.PermissionEdit.autoapprove": "Valider automatiquement", + "components.PermissionEdit.autoapprove4k": "Validation automatique 4K", + "components.PermissionEdit.autoapprove4kDescription": "Valide automatiquement toutes les demandes de média en 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Validation automatique des films 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Valide automatiquement les demandes de films en 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Validation automatique des séries 4K", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Valide automatiquement les demandes de séries en 4K.", + "components.PermissionEdit.autoapproveDescription": "Valide automatiquement toutes les demandes de média non-4K.", + "components.PermissionEdit.autoapproveMovies": "Valider automatiquement les films", + "components.PermissionEdit.autoapproveMoviesDescription": "Valide automatiquement les demandes de films non-4K.", + "components.PermissionEdit.autoapproveSeries": "Valider automatiquement les séries", + "components.PermissionEdit.autoapproveSeriesDescription": "Valider automatiquement les demandes de séries non-4K.", + "components.PermissionEdit.autorequest": "Demande automatique", + "components.PermissionEdit.autorequestDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", + "components.PermissionEdit.autorequestMovies": "Demander automatiquement les Films", + "components.PermissionEdit.autorequestMoviesDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", + "components.PermissionEdit.autorequestSeries": "Demander automatiquement les Séries", + "components.PermissionEdit.autorequestSeriesDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", + "components.PermissionEdit.createissues": "Signaler des problèmes", + "components.PermissionEdit.createissuesDescription": "Autorise à signaler les problèmes liés aux médias.", + "components.PermissionEdit.manageissues": "Gérer les problèmes", + "components.PermissionEdit.manageissuesDescription": "Autorise à gérer les problèmes liés aux médias.", + "components.PermissionEdit.managerequests": "Gérer les demandes", + "components.PermissionEdit.managerequestsDescription": "Autorise à gérer les demandes de média. Toutes les demandes faites par un utilisateur avec cette autorisation seront validées automatiquement.", + "components.PermissionEdit.request": "Demander", + "components.PermissionEdit.request4k": "Demander en 4K", + "components.PermissionEdit.request4kDescription": "Autorise à demander des médias en 4K.", + "components.PermissionEdit.request4kMovies": "Demander des films en 4K", + "components.PermissionEdit.request4kMoviesDescription": "Autorise à demander des films en 4K.", + "components.PermissionEdit.request4kTv": "Demander des séries en 4K", + "components.PermissionEdit.request4kTvDescription": "Autorise à demander des séries en 4K.", + "components.PermissionEdit.requestDescription": "Autorise à demander des médias non-4K.", + "components.PermissionEdit.requestMovies": "Demander des films", + "components.PermissionEdit.requestMoviesDescription": "Autorise à demander des films non-4K.", + "components.PermissionEdit.requestTv": "Demander des séries", + "components.PermissionEdit.requestTvDescription": "Autorise à demander des séries non-4K.", + "components.PermissionEdit.settings": "Gérer les réglages", + "components.PermissionEdit.settingsDescription": "Autorise à modifier les réglages globaux. Un utilisateur doit avoir cette autorisation pour l'accorder à d'autres.", + "components.PermissionEdit.users": "Gérer les utilisateurs", + "components.PermissionEdit.usersDescription": "Autorise à gérer les utilisateurs. Les utilisateurs avec cette autorisation ne peuvent pas modifier les utilisateurs dotés de privilèges d'administrateur ni les accorder.", + "components.PermissionEdit.viewissues": "Afficher les problèmes", + "components.PermissionEdit.viewissuesDescription": "Autorise à consulter les problèmes liés aux médias signalés par d'autres utilisateurs.", + "components.PermissionEdit.viewrecent": "Voir les ajouts récents", + "components.PermissionEdit.viewrecentDescription": "Autorise à voir la liste des médias ajoutés récemment.", + "components.PermissionEdit.viewrequests": "Voir les demandes", + "components.PermissionEdit.viewrequestsDescription": "Autorise à afficher les demandes des autres utilisateurs.", + "components.PermissionEdit.viewwatchlists": "Voir Plex Watchlists", + "components.PermissionEdit.viewwatchlistsDescription": "Autorise à voir la Plex Watchlist des autres utilisateurs.", + "components.PersonDetails.alsoknownas": "Aussi connu sous le(s) nom(s) : {names}", "components.PersonDetails.appearsin": "Apparitions", "components.PersonDetails.ascharacter": "rôle : {character}", + "components.PersonDetails.birthdate": "Né(e) le {birthdate}", + "components.PersonDetails.crewmember": "Équipe", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PlexLoginButton.signingin": "Connexion en cours…", + "components.PlexLoginButton.signinwithplex": "Se connecter", + "components.QuotaSelector.days": "{count, plural, one {jour} other {jours}}", + "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} tous les {quotaDays} {days}", + "components.QuotaSelector.movies": "{count, plural, one {film} other {films}}", + "components.QuotaSelector.seasons": "{count, plural, one {saison} other {saisons}}", + "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} tous les {quotaDays} {days}", + "components.QuotaSelector.unlimited": "Illimité", + "components.RegionSelector.regionDefault": "Toutes les régions", + "components.RegionSelector.regionServerDefault": "Défaut ({region})", + "components.RequestBlock.approve": "Approuver la demande", + "components.RequestBlock.decline": "Refuser la demande", + "components.RequestBlock.delete": "Supprimer la demande", + "components.RequestBlock.edit": "Modifier la demande", + "components.RequestBlock.languageprofile": "Profil de langue", + "components.RequestBlock.lastmodifiedby": "Dernière modification par", + "components.RequestBlock.profilechanged": "Profil de qualité", + "components.RequestBlock.requestdate": "Date de la demande", + "components.RequestBlock.requestedby": "Demandé par", + "components.RequestBlock.requestoverrides": "Modifications de la demande", + "components.RequestBlock.rootfolder": "Dossier racine", "components.RequestBlock.seasons": "{seasonCount, plural, one {Saison} other {Saisons}}", + "components.RequestBlock.server": "Serveur de destination", + "components.RequestButton.approve4krequests": "Valider {requestCount, plural, one {demande en 4K} other {{requestCount} demandes en 4K}}", + "components.RequestButton.approverequest": "Valider la demande", + "components.RequestButton.approverequest4k": "Valider la demande 4K", + "components.RequestButton.approverequests": "Valider {requestCount, plural, one {demande} other {{requestCount} demandes}}", + "components.RequestButton.decline4krequests": "Refuser {requestCount, plural, one {demande en 4K} other {{requestCount} demandes en 4K}}", + "components.RequestButton.declinerequest": "Refuser la demande", + "components.RequestButton.declinerequest4k": "Refuser la demande 4K", + "components.RequestButton.declinerequests": "Refuser {requestCount, plural, one {demande} other {{requestCount} demandes}}", + "components.RequestButton.requestmore": "Demander d'autres ajouts", + "components.RequestButton.requestmore4k": "Demander d'autres ajouts en 4K", + "components.RequestButton.viewrequest": "Voir la demande", + "components.RequestButton.viewrequest4k": "Voir la demande 4K", + "components.RequestCard.approverequest": "Approuver la demande", + "components.RequestCard.cancelrequest": "Annuler la demande", + "components.RequestCard.declinerequest": "Refuser la demande", + "components.RequestCard.deleterequest": "Supprimer la Demande", + "components.RequestCard.editrequest": "Modifier la demande", + "components.RequestCard.failedretry": "Une erreur s'est produite lors du renvoi de la demande.", + "components.RequestCard.mediaerror": "{mediaType} non trouvé", "components.RequestCard.seasons": "{seasonCount, plural, one {Saison} other {Saisons}}", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.RequestCard.unknowntitle": "Titre inconnu", + "components.RequestList.RequestItem.cancelRequest": "Annuler la demande", + "components.RequestList.RequestItem.deleterequest": "Supprimer la Demande", + "components.RequestList.RequestItem.editrequest": "Modifier la demande", + "components.RequestList.RequestItem.failedretry": "Une erreur s'est produite lors du renvoi de la demande.", + "components.RequestList.RequestItem.mediaerror": "{mediaType} non trouvé", + "components.RequestList.RequestItem.modified": "Modifiée", + "components.RequestList.RequestItem.modifieduserdate": "{date} par {user}", + "components.RequestList.RequestItem.requested": "Demandé", + "components.RequestList.RequestItem.requesteddate": "Demandé", "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Saison} other {Saisons}}", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.RequestList.RequestItem.unknowntitle": "Titre inconnu", "components.RequestList.requests": "Demandes", + "components.RequestList.showallrequests": "Afficher toutes les demandes", + "components.RequestList.sortAdded": "Plus récent", + "components.RequestList.sortModified": "Dernière modification", + "components.RequestModal.AdvancedRequester.advancedoptions": "Options Avancées", + "components.RequestModal.AdvancedRequester.animenote": "* Cette série est un animé.", + "components.RequestModal.AdvancedRequester.default": "{name} (Défaut)", + "components.RequestModal.AdvancedRequester.destinationserver": "Serveur de destination", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestModal.AdvancedRequester.languageprofile": "Profil de langue", + "components.RequestModal.AdvancedRequester.notagoptions": "Aucun tag.", + "components.RequestModal.AdvancedRequester.qualityprofile": "Profil de qualité", + "components.RequestModal.AdvancedRequester.requestas": "Demander en tant que", + "components.RequestModal.AdvancedRequester.rootfolder": "Dossier racine", + "components.RequestModal.AdvancedRequester.selecttags": "Sélectionner les tags", + "components.RequestModal.AdvancedRequester.tags": "Tags", + "components.RequestModal.QuotaDisplay.allowedRequests": "Vous êtes autorisé à demander {limit} {type} tous les {days} jour(s).", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Cet utilisateur est autorisé à demander {limit} {type} tous les {days} jour(s).", + "components.RequestModal.QuotaDisplay.movie": "film", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {film} other {films}}", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Pas assez de demandes de saison restantes", + "components.RequestModal.QuotaDisplay.quotaLink": "Vous pouvez voir un résumé de vos limites de demandes sur votre page de profil.", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Vous pouvez voir un résumé des limites de demandes de cet utilisateur sur sa page de profil.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Aucune} other {#}} {remaining, plural, one {demande} other {demandes}} de {type} {remaining, plural, one {restante} other {restantes}}", + "components.RequestModal.QuotaDisplay.requiredquota": "Vous devez avoir au moins {seasons} {seasons, plural, one {demande de saison} other {demandes de saisons}} afin de soumettre une demande pour cette série.", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Cet utilisateur doit avoir au moins {seasons} {seasons, plural, one {demande de saison} other {demandes de saisons}} afin de soumettre une demande pour cette série.", + "components.RequestModal.QuotaDisplay.season": "saison", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {saison} other {saisons}}", + "components.RequestModal.SearchByNameModal.nomatches": "Nous n'avons pas pu trouver de correspondance pour cette série.", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nous n'avons pas pu associer cette série automatiquement. Veuillez sélectionner l'association correcte dans la liste ci-dessous.", + "components.RequestModal.alreadyrequested": "Déjà demandé", + "components.RequestModal.approve": "Valider la demande", + "components.RequestModal.autoapproval": "Validation automatique", "components.RequestModal.cancel": "Annuler la demande", + "components.RequestModal.edit": "Modifier la demande", + "components.RequestModal.errorediting": "Une erreur s'est produite lors de la modification de la demande.", "components.RequestModal.extras": "Extras", "components.RequestModal.numberofepisodes": "Nbr d'épisodes", + "components.RequestModal.pending4krequest": "Demande 4K en attente", + "components.RequestModal.pendingapproval": "Votre demande est en attente de validation.", "components.RequestModal.pendingrequest": "Demande en attente", + "components.RequestModal.requestApproved": "Demande pour {title} validée !", "components.RequestModal.requestCancel": "Demande pour {title} refusée.", "components.RequestModal.requestSuccess": "{title} demandé avec succès !", "components.RequestModal.requestadmin": "Cette demande sera validée automatiquement.", + "components.RequestModal.requestcancelled": "Demande pour {title} refusée.", + "components.RequestModal.requestcollection4ktitle": "Demander la collection en 4K", + "components.RequestModal.requestcollectiontitle": "Demander la collection", + "components.RequestModal.requestedited": "Demande pour {title} modifiée avec succès !", + "components.RequestModal.requesterror": "Une erreur s'est produite lors de la demande.", "components.RequestModal.requestfrom": "La demande de {username} est en attente de validation.", + "components.RequestModal.requestmovie4ktitle": "Demander le film en 4K", + "components.RequestModal.requestmovies": "Demander {count} {count, plural, one {film} other {films}}", + "components.RequestModal.requestmovies4k": "Demander {count} {count, plural, one {film} autre {films}} en 4K", + "components.RequestModal.requestmovietitle": "Demander le film", "components.RequestModal.requestseasons": "Demander {seasonCount} {seasonCount, plural, one {saison} other {saisons}}", + "components.RequestModal.requestseasons4k": "Demander {seasonCount} {seasonCount, plural, one {saison} other {saisons}} en 4K", + "components.RequestModal.requestseries4ktitle": "Demander la série en 4K", + "components.RequestModal.requestseriestitle": "Demander la série", "components.RequestModal.season": "Saison", "components.RequestModal.seasonnumber": "Saison {number}", + "components.RequestModal.selectmovies": "Sélectionner le(s) film(s)", "components.RequestModal.selectseason": "Sélectionner la/les saison(s)", + "components.ResetPassword.confirmpassword": "Confirmez le mot de passe", + "components.ResetPassword.email": "Adresse e-mail", + "components.ResetPassword.emailresetlink": "Envoyer un lien de récupération par e-mail", + "components.ResetPassword.gobacklogin": "Retourner à la page de connexion", + "components.ResetPassword.password": "Mot de passe", + "components.ResetPassword.passwordreset": "Réinitialiser le mot de passe", + "components.ResetPassword.requestresetlinksuccessmessage": "Un lien de réinitialisation du mot de passe sera envoyé à l'e-mail fourni si il est associé à un utilisateur valide.", + "components.ResetPassword.resetpassword": "Réinitialiser votre mot de passe", + "components.ResetPassword.resetpasswordsuccessmessage": "Le mot de passe a été réinitialisé avec succès !", + "components.ResetPassword.validationemailrequired": "Vous devez fournir un e-mail valide", + "components.ResetPassword.validationpasswordmatch": "Les mots de passe doivent être les mêmes", + "components.ResetPassword.validationpasswordminchars": "Le mot de passe est trop court ; il doit comporter au moins 8 caractères", + "components.ResetPassword.validationpasswordrequired": "Vous devez renseigner un mot de passe", + "components.Search.search": "Rechercher", "components.Search.searchresults": "Résultats de la recherche", + "components.Settings.Notifications.NotificationsGotify.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Les paramètres de notification Gotify n'ont pas pu être enregistrés.", + "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Paramètres de notification de Gotify sauvegardés avec succès !", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "L'envoi de la notification test Gotify a échoué.", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Envoi de la notification test Gotify…", + "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Notification test Gotify envoyée !", + "components.Settings.Notifications.NotificationsGotify.token": "Jeton d'application", + "components.Settings.Notifications.NotificationsGotify.url": "URL du serveur", + "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Vous devez fournir un jeton d'application", + "components.Settings.Notifications.NotificationsGotify.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Vous devez fournir une URL valide", + "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "L'URL ne doit pas se terminer par un slash", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nom du Profil", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Uniquement nécessaire si vous n'utilisez pas le profil default", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Les paramètres de notification LunaSea n'ont pas pu être enregistrés.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "Paramètres de notification de LunaSea sauvegardés avec succès !", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "L'envoi de la notification test LunaSea a échoué.", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Envoi de la notification test LunaSea…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "Notification test LunaSea envoyée !", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Vous devez fournir une URL valide", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL de webhook", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Votre URL de webhook de notification basée sur l'utilisateur ou l'appareil", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Jeton d'accès", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Créer un jeton à partir de vos paramètres de compte", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Étiquette de canal", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Les paramètres de notification Pushbullet n'ont pas pu être enregistrés.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Paramètres de notification Pushbullet enregistrés avec succès !", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "L'envoi de la notification test Pushbullet a échoué.", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Envoi de la notification test Pushbullet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Notification test Pushbullet envoyée !", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Vous devez fournir un jeton d'accès", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Jeton API d'application", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Enregistrer une application pour l'utiliser avec Jellyseerr", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Les paramètres de notification Pushover n'ont pas pu être enregistrés.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Paramètres de notification Pushover enregistrés avec succès !", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "L'envoi de la notification test Pushover a échoué.", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Envoi de la notification test Pushover…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Notification test Pushover envoyée !", + "components.Settings.Notifications.NotificationsPushover.userToken": "Clé d'utilisateur ou de groupe", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Votre identifiant d'utilisateur ou de groupe de 30 caractères", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Vous devez fournir un jeton d'application valide", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Vous devez fournir une clé d'utilisateur ou de groupe valide", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Les paramètres de notification Slack n'ont pas pu être enregistrés.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Paramètres de notification de Slack sauvegardés avec succès !", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "L'envoi de la notification test Slack a échoué.", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Envoi de la notification test Slack…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Notification test Slack envoyée !", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Vous devez fournir une URL valide", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de webhook", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Créer une intégration Webhook entrante", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Afin de recevoir des notifications push web, Jellyseerr doit fonctionner en HTTPS.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "L'envoi de la notification de test Web push a échoué.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Envoi d'une notification de test web push…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Notification de test web push envoyée !", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Les paramètres de la notification Web push n'ont pas été enregistrés.", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Les paramètres de la notification Web push ont été enregistrés avec succès !", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Activer l'agent", + "components.Settings.Notifications.NotificationsWebhook.authheader": "En-tête d'autorisation", + "components.Settings.Notifications.NotificationsWebhook.customJson": "Données utiles JSON", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Réinitialiser les données par défaut", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "Les données utiles JSON par défaut ont été réinitialisées avec succès !", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Aide sur les variables de modèle", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "La notification de test Web Push n’a pas été envoyée.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Envoi de notification de test webhook…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Notification de test Webhook envoyée !", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Vous devez fournir un JSON payload valide", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Vous devez fournir une URL valide", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de webhook", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Échec de l'enregistrement des paramètres de notification du webhook.", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Paramètres de notification Webhook enregistrés avec succès !", "components.Settings.Notifications.agentenabled": "Activer l'agent", + "components.Settings.Notifications.allowselfsigned": "Autoriser les certificats autosignés", "components.Settings.Notifications.authPass": "Mot de passe SMTP", "components.Settings.Notifications.authUser": "Nom d'utilisateur SMTP", + "components.Settings.Notifications.botAPI": "Jeton d'autorisation du bot", + "components.Settings.Notifications.botApiTip": "Créer un bot à utiliser avec Jellyseerr", + "components.Settings.Notifications.botAvatarUrl": "L'URL de l'avatar de votre Bot", + "components.Settings.Notifications.botUsername": "Pseudonyme du Bot", + "components.Settings.Notifications.botUsernameTip": "Permet aux utilisateurs de démarrer également une conversation avec votre bot et de configurer leurs propres notifications personnelles", + "components.Settings.Notifications.chatId": "ID discussion", + "components.Settings.Notifications.chatIdTip": "Démarrez une discussion avec votre bot, ajoutez @get_id_bot et exécutez la commande /my_id", + "components.Settings.Notifications.discordsettingsfailed": "Les paramètres de notification Discord n'ont pas pu être enregistrés.", + "components.Settings.Notifications.discordsettingssaved": "Paramètres de notification Discord enregistrés avec succès !", "components.Settings.Notifications.emailsender": "Adresse de l'expéditeur", + "components.Settings.Notifications.emailsettingsfailed": "Les paramètres de notification par e-mail n'ont pas pu être enregistrés.", + "components.Settings.Notifications.emailsettingssaved": "Paramètres de notification par e-mail enregistrés avec succès !", + "components.Settings.Notifications.enableMentions": "Activer les mentions", + "components.Settings.Notifications.encryption": "Méthode de chiffrement", + "components.Settings.Notifications.encryptionDefault": "Utiliser STARTTLS si disponible", + "components.Settings.Notifications.encryptionImplicitTls": "Utiliser TLS implicite", + "components.Settings.Notifications.encryptionNone": "Aucune", + "components.Settings.Notifications.encryptionOpportunisticTls": "Toujours utiliser STARTTLS", + "components.Settings.Notifications.encryptionTip": "Dans la majorité des cas, TLS implicite utilise le port 465 et STARTTLS utilise le port 587", + "components.Settings.Notifications.pgpPassword": "PGP mot de passe", + "components.Settings.Notifications.pgpPasswordTip": "Signer des emails chiffrés en utilisant OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "PGP Clé privée", + "components.Settings.Notifications.pgpPrivateKeyTip": "Signer des emails chiffrés en utilisant OpenPGP", + "components.Settings.Notifications.sendSilently": "Envoyer silencieusement", + "components.Settings.Notifications.sendSilentlyTip": "Envoyer des notifications sans son", + "components.Settings.Notifications.senderName": "Nom de l'expéditeur", "components.Settings.Notifications.smtpHost": "Hôte SMTP", "components.Settings.Notifications.smtpPort": "Port SMTP", + "components.Settings.Notifications.telegramsettingsfailed": "Les paramètres de notification Telegram n'ont pas pu être enregistrés.", + "components.Settings.Notifications.telegramsettingssaved": "Paramètres de notification Telegram enregistrés avec succès !", + "components.Settings.Notifications.toastDiscordTestFailed": "Échec de l'envoi de la notification de test Discord.", + "components.Settings.Notifications.toastDiscordTestSending": "Envoi de la notification de test Discord…", + "components.Settings.Notifications.toastDiscordTestSuccess": "Notification de test à Discord envoyée !", + "components.Settings.Notifications.toastEmailTestFailed": "Échec de l'envoi de la notification de test par e-mail.", + "components.Settings.Notifications.toastEmailTestSending": "Envoi d'une notification de test par e-mail…", + "components.Settings.Notifications.toastEmailTestSuccess": "Notification de test par e-mail envoyée !", + "components.Settings.Notifications.toastTelegramTestFailed": "L'envoi de la notification test à Telegram a échoué.", + "components.Settings.Notifications.toastTelegramTestSending": "Envoi de la notification de test à Telegram…", + "components.Settings.Notifications.toastTelegramTestSuccess": "Notification de test de télégramme envoyée !", + "components.Settings.Notifications.validationBotAPIRequired": "Vous devez fournir la clé d'autorisation du bot", + "components.Settings.Notifications.validationChatIdRequired": "Vous devez fournir un identifiant de discussion valide", + "components.Settings.Notifications.validationEmail": "Vous devez fournir un e-mail valide", + "components.Settings.Notifications.validationPgpPassword": "Vous devez fournir un mot de passe PGP", + "components.Settings.Notifications.validationPgpPrivateKey": "Vous devez fournir une clé privée PGP valide si un mot de passe PGP est entré", "components.Settings.Notifications.validationSmtpHostRequired": "Vous devez fournir un nom d'hôte ou une adresse IP valide", "components.Settings.Notifications.validationSmtpPortRequired": "Vous devez fournir un numéro de port valide", + "components.Settings.Notifications.validationTypes": "Vous devez sélectionner au moins un type de notification", + "components.Settings.Notifications.validationUrl": "Vous devez fournir une URL valide", "components.Settings.Notifications.webhookUrl": "URL de webhook", + "components.Settings.Notifications.webhookUrlTip": "Créez une intégration de webhook dans votre serveur", "components.Settings.RadarrModal.add": "Ajouter un serveur", + "components.Settings.RadarrModal.announced": "Annoncé", "components.Settings.RadarrModal.apiKey": "Clé d'API", "components.Settings.RadarrModal.baseUrl": "URL de base", + "components.Settings.RadarrModal.create4kradarr": "Ajouter un nouveau serveur Radarr 4K", "components.Settings.RadarrModal.createradarr": "Ajouter un nouveau serveur Radarr", + "components.Settings.RadarrModal.default4kserver": "Serveur 4K par défaut", "components.Settings.RadarrModal.defaultserver": "Serveur par défaut", + "components.Settings.RadarrModal.edit4kradarr": "Modifier le serveur Radarr 4K", "components.Settings.RadarrModal.editradarr": "Modifier le serveur Radarr", + "components.Settings.RadarrModal.enableSearch": "Activer la recherche automatique", + "components.Settings.RadarrModal.externalUrl": "URL externe", "components.Settings.RadarrModal.hostname": "Nom d'hôte ou adresse IP", + "components.Settings.RadarrModal.inCinemas": "Au cinéma", + "components.Settings.RadarrModal.loadingTags": "Chargement des tags en cours…", + "components.Settings.RadarrModal.loadingprofiles": "Chargement des profils qualité…", + "components.Settings.RadarrModal.loadingrootfolders": "Chargement des dossiers racine…", "components.Settings.RadarrModal.minimumAvailability": "Disponibilité minimale", + "components.Settings.RadarrModal.notagoptions": "Aucun tag.", "components.Settings.RadarrModal.port": "Port", "components.Settings.RadarrModal.qualityprofile": "Profil de qualité", + "components.Settings.RadarrModal.released": "Disponible", "components.Settings.RadarrModal.rootfolder": "Dossier racine", - "components.Settings.RadarrModal.selectMinimumAvailability": "Sélectionner une disponibilté minimale", + "components.Settings.RadarrModal.selectMinimumAvailability": "Sélectionner une disponibilité minimale", "components.Settings.RadarrModal.selectQualityProfile": "Sélectionner un profil qualité", "components.Settings.RadarrModal.selectRootFolder": "Sélectionner un dossier racine", + "components.Settings.RadarrModal.selecttags": "Sélectionner les tags", "components.Settings.RadarrModal.server4k": "Serveur 4K", "components.Settings.RadarrModal.servername": "Nom du serveur", "components.Settings.RadarrModal.ssl": "Utiliser SSL", + "components.Settings.RadarrModal.syncEnabled": "Activer les scans", + "components.Settings.RadarrModal.tags": "Tags", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Testez la connexion pour charger les profils qualité", + "components.Settings.RadarrModal.testFirstRootFolders": "Testez la connexion pour charger les dossiers racine", + "components.Settings.RadarrModal.testFirstTags": "Tester la connexion pour charger les tags", "components.Settings.RadarrModal.toastRadarrTestFailure": "Échec de la connexion à Radarr.", "components.Settings.RadarrModal.toastRadarrTestSuccess": "Connexion avec le Serveur Radarr établie avec succès !", "components.Settings.RadarrModal.validationApiKeyRequired": "Vous devez fournir une clé d'API", + "components.Settings.RadarrModal.validationApplicationUrl": "Vous devez fournir une URL valide", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "L'URL de base doit être précédée d'un slash", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par un slash", "components.Settings.RadarrModal.validationHostnameRequired": "Vous devez fournir un nom d'hôte ou une adresse IP valide", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Vous devez sélectionner une disponibilité minimale", + "components.Settings.RadarrModal.validationNameRequired": "Vous devez fournir un nom de serveur", "components.Settings.RadarrModal.validationPortRequired": "Vous devez fournir un numéro de port valide", "components.Settings.RadarrModal.validationProfileRequired": "Vous devez sélectionner un profil", "components.Settings.RadarrModal.validationRootFolderRequired": "Vous devez sélectionner un dossier racine", + "components.Settings.SettingsAbout.Releases.currentversion": "Actuelle", + "components.Settings.SettingsAbout.Releases.latestversion": "Dernière version", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Les données de version sont actuellement indisponible.", + "components.Settings.SettingsAbout.Releases.releases": "Versions", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Journal des modifications de la version {version}", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Voir le journal des modifications", + "components.Settings.SettingsAbout.Releases.viewongithub": "Voir sur GitHub", + "components.Settings.SettingsAbout.about": "À propos", + "components.Settings.SettingsAbout.appDataPath": "Répertoire de données", + "components.Settings.SettingsAbout.betawarning": "Ceci est un logiciel BÊTA. Les fonctionnalités peuvent être non opérationnelles ou instables. Veuillez signaler tout problème sur GitHub !", + "components.Settings.SettingsAbout.documentation": "Documentation", + "components.Settings.SettingsAbout.gettingsupport": "Obtenir de l'aide", + "components.Settings.SettingsAbout.githubdiscussions": "Discussions GitHub", + "components.Settings.SettingsAbout.helppaycoffee": "Aidez-nous à payer le café", + "components.Settings.SettingsAbout.outofdate": "Obsolète", + "components.Settings.SettingsAbout.overseerrinformation": "À propos de Jellyseerr", + "components.Settings.SettingsAbout.preferredmethod": "Préféré", + "components.Settings.SettingsAbout.runningDevelop": "Vous utilisez la branche develop d'Jellyseerr, qui n'est recommandée que pour ceux qui contribuent au développement ou qui aident aux tests et correctifs.", + "components.Settings.SettingsAbout.supportoverseerr": "Soutenez Jellyseerr", + "components.Settings.SettingsAbout.timezone": "Fuseau horaire", + "components.Settings.SettingsAbout.totalmedia": "Total des médias", + "components.Settings.SettingsAbout.totalrequests": "Total des demandes", + "components.Settings.SettingsAbout.uptodate": "À jour", + "components.Settings.SettingsAbout.version": "Version", + "components.Settings.SettingsJobsCache.cache": "Cache", + "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr met en cache les demandes aux points de terminaison d'API externes pour optimiser les performances et éviter de faire des appels d'API inutiles.", + "components.Settings.SettingsJobsCache.cacheflushed": "Cache de {cachename} vidé.", + "components.Settings.SettingsJobsCache.cachehits": "Résultats", + "components.Settings.SettingsJobsCache.cachekeys": "Total des clés", + "components.Settings.SettingsJobsCache.cacheksize": "Taille de la clé", + "components.Settings.SettingsJobsCache.cachemisses": "Manqués", + "components.Settings.SettingsJobsCache.cachename": "Nom du cache", + "components.Settings.SettingsJobsCache.cachevsize": "Taille de la valeur", + "components.Settings.SettingsJobsCache.canceljob": "Annuler la tâche", + "components.Settings.SettingsJobsCache.command": "Commande", + "components.Settings.SettingsJobsCache.download-sync": "Synchroniser les téléchargements", + "components.Settings.SettingsJobsCache.download-sync-reset": "Reset de la synchronisation des téléchargements", + "components.Settings.SettingsJobsCache.editJobSchedule": "Modifier la tâche", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Fréquence actuelle", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Nouvelle fréquence", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Toutes les {jobScheduleHours, plural, one {heure} other {{jobScheduleHours} heures}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Toutes les {jobScheduleMinutes, plural, one {minute} other {{jobScheduleMinutes} minutes}}", + "components.Settings.SettingsJobsCache.flushcache": "Vider le cache", + "components.Settings.SettingsJobsCache.jelly-recently-added-scan": "Scanner les récents ajoutés sur Jellyfin", + "components.Settings.SettingsJobsCache.jellyfin-full-scan": "Scanner toute la bibliothèque Jellyfin", + "components.Settings.SettingsJobsCache.image-cache-cleanup": "Vider le cache des images", + "components.Settings.SettingsJobsCache.imagecache": "Cache des images", + "components.Settings.SettingsJobsCache.imagecacheDescription": "Une fois activé dans les paramètres, Jellyseerr va mettre en cache les images provenant de sources externes pré-configurées. Les images mises en cache sont sauvegardées dans votre dossier de configuration. Vous pouvez les trouver dans {appDataPath}/cache/images.", + "components.Settings.SettingsJobsCache.imagecachecount": "Images mises en cache", + "components.Settings.SettingsJobsCache.imagecachesize": "Taille totale du cache", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Un problème est survenu lors de l'enregistrement de la tâche.", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Tâche modifiée avec succès !", + "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} annulé.", + "components.Settings.SettingsJobsCache.jobname": "Nom de la tâche", + "components.Settings.SettingsJobsCache.jobs": "Tâches", + "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr effectue certaines tâches de maintenance comme des tâches planifiées régulièrement, mais elles peuvent également être déclenchées manuellement ci-dessous. L'exécution manuelle d'une tâche ne modifiera pas sa planification.", + "components.Settings.SettingsJobsCache.jobsandcache": "Tâches et cache", + "components.Settings.SettingsJobsCache.jobstarted": "{jobname} a commencé.", + "components.Settings.SettingsJobsCache.jobtype": "Type", + "components.Settings.SettingsJobsCache.nextexecution": "Prochaine exécution", + "components.Settings.SettingsJobsCache.plex-full-scan": "Scan complet des bibliothèques Plex", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan des ajouts récents aux bibliothèques Plex", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Synchronisation de la Plex Watchlist", + "components.Settings.SettingsJobsCache.process": "Processus", + "components.Settings.SettingsJobsCache.radarr-scan": "Scan de Radarr", + "components.Settings.SettingsJobsCache.runnow": "Exécuter", + "components.Settings.SettingsJobsCache.sonarr-scan": "Scan de Sonarr", + "components.Settings.SettingsJobsCache.unknownJob": "Tâche inconnue", + "components.Settings.SettingsLogs.copiedLogMessage": "Le texte des journaux a été ajouté au presse-papiers.", + "components.Settings.SettingsLogs.copyToClipboard": "Copier dans le presse-papiers", + "components.Settings.SettingsLogs.extraData": "Données supplémentaires", + "components.Settings.SettingsLogs.filterDebug": "Débogage", + "components.Settings.SettingsLogs.filterError": "Erreur", + "components.Settings.SettingsLogs.filterInfo": "Infos", + "components.Settings.SettingsLogs.filterWarn": "Attention", + "components.Settings.SettingsLogs.label": "Étiquette", + "components.Settings.SettingsLogs.level": "Gravité", + "components.Settings.SettingsLogs.logDetails": "Journal détaillé", + "components.Settings.SettingsLogs.logs": "Journaux", + "components.Settings.SettingsLogs.logsDescription": "Vous pouvez également afficher ces journaux directement via stdout, ou dans {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.message": "Message", + "components.Settings.SettingsLogs.pauseLogs": "Pause", + "components.Settings.SettingsLogs.resumeLogs": "Résumer", + "components.Settings.SettingsLogs.showall": "Afficher tous les journaux", + "components.Settings.SettingsLogs.time": "Horodatage", + "components.Settings.SettingsLogs.viewdetails": "Voir les détails", + "components.Settings.SettingsUsers.defaultPermissions": "Permissions par défaut", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Autorisations par défaut attribuées aux nouveaux utilisateurs", + "components.Settings.SettingsUsers.localLogin": "Activer la connexion locale", + "components.Settings.SettingsUsers.localLoginTip": "Autoriser les utilisateurs à se connecter en utilisant leur adresse e-mail et leur mot de passe, au lieu de Plex OAuth", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Limite globale de demandes de films", + "components.Settings.SettingsUsers.newPlexLogin": "Autoriser nouvelle connexion Plex", + "components.Settings.SettingsUsers.newPlexLoginTip": "Autoriser les utilisateurs de Plex à se connecter sans être d'abord importés", + "components.Settings.SettingsUsers.toastSettingsFailure": "Un problème est survenu pendant la sauvegarde des paramètres.", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Les paramètres utilisateur ont été enregistrés avec succès !", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Limite globale de demandes de séries", + "components.Settings.SettingsUsers.userSettings": "Paramètres utilisateur", + "components.Settings.SettingsUsers.userSettingsDescription": "Configurer les paramètres généraux et par défaut de l'utilisateur.", + "components.Settings.SettingsUsers.users": "Utilisateurs", "components.Settings.SonarrModal.add": "Ajouter un serveur", + "components.Settings.SonarrModal.animeTags": "Tags d'animés", + "components.Settings.SonarrModal.animelanguageprofile": "Profil de langue d'anime", + "components.Settings.SonarrModal.animequalityprofile": "Profil qualité pour anime", + "components.Settings.SonarrModal.animerootfolder": "Dossier racine pour anime", "components.Settings.SonarrModal.apiKey": "Clé API", "components.Settings.SonarrModal.baseUrl": "URL de base", + "components.Settings.SonarrModal.create4ksonarr": "Ajouter un nouveau serveur Sonarr 4K", "components.Settings.SonarrModal.createsonarr": "Ajouter un nouveau serveur Sonarr", + "components.Settings.SonarrModal.default4kserver": "Serveur 4K par défaut", "components.Settings.SonarrModal.defaultserver": "Serveur par défaut", + "components.Settings.SonarrModal.edit4ksonarr": "Modifier le serveur Sonarr 4K", "components.Settings.SonarrModal.editsonarr": "Modifier le serveur Sonarr", + "components.Settings.SonarrModal.enableSearch": "Activer la recherche automatique", + "components.Settings.SonarrModal.externalUrl": "URL externe", "components.Settings.SonarrModal.hostname": "Nom d'hôte ou adresse IP", + "components.Settings.SonarrModal.languageprofile": "Profil de langue", + "components.Settings.SonarrModal.loadingTags": "Chargement des tags en cours…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Chargement des profils de langue…", + "components.Settings.SonarrModal.loadingprofiles": "Chargement des profils qualité…", + "components.Settings.SonarrModal.loadingrootfolders": "Chargement des dossiers racine…", + "components.Settings.SonarrModal.notagoptions": "Aucun tag.", "components.Settings.SonarrModal.port": "Port", "components.Settings.SonarrModal.qualityprofile": "Profil de qualité", "components.Settings.SonarrModal.rootfolder": "Dossier racine", "components.Settings.SonarrModal.seasonfolders": "Dossier saison", + "components.Settings.SonarrModal.selectLanguageProfile": "Sélectionnez le profil de langue", "components.Settings.SonarrModal.selectQualityProfile": "Sélectionner un profil qualité", "components.Settings.SonarrModal.selectRootFolder": "Sélectionner un dossier racine", + "components.Settings.SonarrModal.selecttags": "Sélectionner les tags", "components.Settings.SonarrModal.server4k": "Serveur 4K", "components.Settings.SonarrModal.servername": "Nom du serveur", "components.Settings.SonarrModal.ssl": "Utiliser SSL", + "components.Settings.SonarrModal.syncEnabled": "Activer les scans", + "components.Settings.SonarrModal.tags": "Tags", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Tester la connexion pour charger les profils de langue", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Testez la connexion pour charger les profils qualité", + "components.Settings.SonarrModal.testFirstRootFolders": "Testez la connexion pour charger les dossiers racine", + "components.Settings.SonarrModal.testFirstTags": "Tester la connexion pour charger les tags", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Échec de la connexion à Sonarr.", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "Connexion à Sonarr établie avec succès !", "components.Settings.SonarrModal.validationApiKeyRequired": "Vous devez fournir une clé d'API", + "components.Settings.SonarrModal.validationApplicationUrl": "Vous devez fournir une URL valide", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "L'URL de base doit être précédée d'une barre oblique", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par une barre oblique finale", "components.Settings.SonarrModal.validationHostnameRequired": "Vous devez fournir un nom d'hôte ou une adresse IP valide", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Vous devez sélectionner un profil de langue", + "components.Settings.SonarrModal.validationNameRequired": "Vous devez fournir un nom de serveur", "components.Settings.SonarrModal.validationPortRequired": "Vous devez fournir un numéro de port valide", "components.Settings.SonarrModal.validationProfileRequired": "Vous devez sélectionner un profil qualité", "components.Settings.SonarrModal.validationRootFolderRequired": "Vous devez sélectionner un dossier racine", @@ -101,20 +762,38 @@ "components.Settings.addradarr": "Ajouter un serveur Radarr", "components.Settings.address": "Adresse", "components.Settings.addsonarr": "Ajouter un serveur Sonarr", + "components.Settings.advancedTooltip": "Une configuration incorrecte de ce paramètre peut entraîner un dysfonctionnement", "components.Settings.apikey": "Clé d'API", + "components.Settings.applicationTitle": "Titre de l'application", "components.Settings.applicationurl": "URL de l'application", + "components.Settings.cacheImages": "Activer la mise en cache d'image", + "components.Settings.cacheImagesTip": "Met en cache localement et utilise des images optimisées (nécessite une quantité considérable d'espace disque)", "components.Settings.cancelscan": "Annuler le scan", - "components.Settings.copied": "Clé d'API copiée dans le presse-papier.", + "components.Settings.copied": "Clé d'API copiée dans le presse-papiers.", + "components.Settings.csrfProtection": "Activer la protection CSRF", + "components.Settings.csrfProtectionHoverTip": "N'activez PAS ce paramètre à moins que vous ne compreniez ce que vous faites !", + "components.Settings.csrfProtectionTip": "Définir l'accès à l'API externe en lecture seule (nécessite HTTPS)", "components.Settings.currentlibrary": "Bibliothèque actuelle : {name}", "components.Settings.default": "Par défaut", "components.Settings.default4k": "4K par défaut", + "components.Settings.deleteServer": "Supprimer {serverType} serveur", "components.Settings.deleteserverconfirm": "Êtes-vous sûr(e) de vouloir supprimer ce serveur ?", + "components.Settings.email": "E-mail", + "components.Settings.enablessl": "Utiliser SSL", + "components.Settings.experimentalTooltip": "L'activation de ce paramètre peut entraîner un comportement inattendu de l'application", + "components.Settings.externalUrl": "URL externe", + "components.Settings.general": "Général", "components.Settings.generalsettings": "Paramètres généraux", "components.Settings.generalsettingsDescription": "Configurer les paramètres généraux et par défaut pour Jellyseerr.", + "components.Settings.hideAvailable": "Masquer les médias disponibles", "components.Settings.hostname": "Nom d'hôte ou adresse IP", + "components.Settings.is4k": "4K", "components.Settings.librariesRemaining": "Bibliothèques restantes : {count}", + "components.Settings.locale": "Langue d'affichage", "components.Settings.manualscan": "Scan manuel des bibliothèques", "components.Settings.manualscanDescription": "Normalement, le scan sera effectué une fois toutes les 24 heures seulement. Jellyseerr vérifiera les ajouts récents de votre serveur Plex de façon proactive. Si c'est la première fois que vous configurez Plex, un scan complet de la bibliothèque est recommandé !", + "components.Settings.mediaTypeMovie": "film", + "components.Settings.mediaTypeSeries": "série", "components.Settings.menuAbout": "À propos", "components.Settings.menuGeneralSettings": "Général", "components.Settings.menuJobs": "Tâches et cache", @@ -122,999 +801,337 @@ "components.Settings.menuNotifications": "Notifications", "components.Settings.menuPlexSettings": "Plex", "components.Settings.menuServices": "Applications", + "components.Settings.menuUsers": "Utilisateurs", + "components.Settings.noDefault4kServer": "Un serveur 4K {serverType} doit être marqué par défaut afin de permettre aux utilisateurs de soumettre des requêtes 4K {mediaType}.", + "components.Settings.noDefaultNon4kServer": "Si vous n’avez qu’un seul serveur {serverType} pour les contenus non-4K et 4K (ou si vous ne téléchargez que du contenu 4K), votre serveur {serverType} ne devrait PAS être désigné comme serveur 4K.", + "components.Settings.noDefaultServer": "Au moins un serveur {serverType} doit être marqué par défaut pour que les demandes {mediaType} puissent être envoyées.", + "components.Settings.notificationAgentSettingsDescription": "Configurer et activer les agents de notification.", + "components.Settings.notifications": "Notifications", "components.Settings.notificationsettings": "Paramètres de notification", "components.Settings.notrunning": "Pas en exécution", + "components.Settings.originallanguage": "Langue à découvrir", + "components.Settings.originallanguageTip": "Filtrer le contenu par langue d’origine", + "components.Settings.partialRequestsEnabled": "Permettre les demandes partielles des séries", + "components.Settings.plex": "Plex", "components.Settings.plexlibraries": "Bibliothèques Plex", "components.Settings.plexlibrariesDescription": "Les bibliothèques Jellyseerr recherchent les titres. Configurez et sauvegardez vos paramètres de connexion Plex, puis cliquez sur le bouton ci-dessous si aucune bibliothèque n'est répertoriée.", "components.Settings.plexsettings": "Paramètres Plex", "components.Settings.plexsettingsDescription": "Configurer les paramètres de votre serveur Plex. Jellyseerr scanne vos librairies Plex pour déterminer les contenus disponibles.", "components.Settings.port": "Port", "components.Settings.radarrsettings": "Paramètres Radarr", + "components.Settings.region": "Région à découvrir", + "components.Settings.regionTip": "Filtrer le contenu par disponibilité régionale", + "components.Settings.restartrequiredTooltip": "Jellyseerr doit être redémarré pour que les modifications de ce paramètre prennent effet", + "components.Settings.scan": "Synchroniser les bibliothèques", + "components.Settings.scanning": "Synchronisation en cours…", + "components.Settings.serverLocal": "local", + "components.Settings.serverRemote": "distant", + "components.Settings.serverSecure": "sécurisée", + "components.Settings.serverpreset": "Serveur", + "components.Settings.serverpresetLoad": "Appuyez sur le bouton pour charger les serveurs disponibles", + "components.Settings.serverpresetManualMessage": "Configuration manuelle", + "components.Settings.serverpresetRefreshing": "Récupération des serveurs…", + "components.Settings.serviceSettingsDescription": "Configurez votre serveur {serverType} ci-dessous. Vous pouvez connecter plusieurs serveurs {serverType}, mais seulement deux d’entre eux peuvent être marqués par défaut (un non-4K et un 4K). Les administrateurs peuvent modifier le serveur utilisé pour traiter les nouvelles demandes avant la validation.", + "components.Settings.services": "Applications", + "components.Settings.settingUpPlexDescription": "Pour configurer Plex, vous pouvez soit entrer les paramètres manuellement ou choisir parmi l'un des serveurs récupérés sur plex.tv. Appuyez sur le bouton à droite de la liste déroulante pour actualiser la liste des serveurs disponibles.", "components.Settings.sonarrsettings": "Paramètres Sonarr", "components.Settings.ssl": "SSL", "components.Settings.startscan": "Commencer le scan", + "components.Settings.tautulliApiKey": "Clé API", + "components.Settings.tautulliSettings": "Paramètres Tautulli", + "components.Settings.tautulliSettingsDescription": "Configuration optionnelle pour votre serveur Tautulli. Jellyseerr va récupérer l'historique de visionnage de votre Plex depuis Tautulli.", + "components.Settings.toastApiKeyFailure": "Une erreur s'est produite lors de la génération de la nouvelle clé API.", + "components.Settings.toastApiKeySuccess": "Nouvelle clé API générée avec succès !", + "components.Settings.toastPlexConnecting": "Tentative de connexion à Plex…", + "components.Settings.toastPlexConnectingFailure": "Échec de connexion à Plex.", + "components.Settings.toastPlexConnectingSuccess": "Connexion Plex établie avec succès !", + "components.Settings.toastPlexRefresh": "Récupération de la liste des serveurs depuis Plex…", + "components.Settings.toastPlexRefreshFailure": "Échec de la récupération de la liste des serveurs Plex.", + "components.Settings.toastPlexRefreshSuccess": "Liste des serveurs Plex récupérée avec succès !", + "components.Settings.toastSettingsFailure": "Une erreur s'est produite durant l'enregistrement des paramètres.", + "components.Settings.toastSettingsSuccess": "Les paramètres ont été enregistrés avec succès !", + "components.Settings.toastTautulliSettingsFailure": "Quelque chose c'est mal passé quand les paramètres Tautulli on été enregistrés.", + "components.Settings.toastTautulliSettingsSuccess": "Les paramètres pour Tautulli on bien été sauvegardés !", + "components.Settings.trustProxy": "Activer la prise en charge proxy", + "components.Settings.trustProxyTip": "Permettre Jellyseerr à enregistrer correctement les adresses IP des clients derrière un proxy", + "components.Settings.urlBase": "URL de base", + "components.Settings.validationApiKey": "Vous devez fournir une clef API", + "components.Settings.validationApplicationTitle": "Vous devez fournir un titre d'application", + "components.Settings.validationApplicationUrl": "Vous devez fournir une URL valide", + "components.Settings.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", + "components.Settings.validationHostnameRequired": "Vous devez fournir un nom d'hôte valide ou une adresse IP", + "components.Settings.validationPortRequired": "Vous devez fournir un numéro de port valide", + "components.Settings.validationUrl": "Vous devez fournir une URL valide", + "components.Settings.validationUrlBaseLeadingSlash": "L'URL de base doit avoir un slash", + "components.Settings.validationUrlBaseTrailingSlash": "L'URL de base ne doit pas ce terminer par un slash", + "components.Settings.validationUrlTrailingSlash": "L'URL ne doit pas ce terminer par un slash", + "components.Settings.webAppUrl": "URL Application Web", + "components.Settings.webAppUrlTip": "Dirigez éventuellement les utilisateurs vers l'application Web sur votre serveur au lieu de l'application Web « hébergée »", + "components.Settings.webhook": "Webhook", + "components.Settings.webpush": "Web Push", "components.Setup.configureplex": "Configurer Plex", "components.Setup.configureservices": "Configurer les Services", "components.Setup.continue": "Continuer", "components.Setup.finish": "Finir la configuration", "components.Setup.finishing": "Finalisation…", "components.Setup.loginwithplex": "Se connecter avec Plex", - "components.Setup.signinMessage": "Commencez en vous connectant avec votre compte Plex", - "components.Setup.welcome": "Bienvenue sur Jellyseerr", - "components.TvDetails.cast": "Casting", - "components.TvDetails.originallanguage": "Langue originale", - "components.TvDetails.overview": "Résumé", - "components.TvDetails.overviewunavailable": "Résumé indisponible.", - "components.TvDetails.recommendations": "Recommandations", - "components.TvDetails.similar": "Séries similaires", - "components.UserList.admin": "Admin", - "components.UserList.created": "A rejoint", - "components.UserList.plexuser": "Utilisateur Plex", - "components.UserList.role": "Rôle", - "components.UserList.totalrequests": "Demandes", - "components.UserList.user": "Utilisateur", - "components.UserList.userlist": "Liste des utilisateurs", - "i18n.approve": "Valider", - "i18n.approved": "Validé", - "i18n.available": "Disponible", - "i18n.cancel": "Annuler", - "i18n.decline": "Refuser", - "i18n.declined": "Refusé", - "i18n.delete": "Supprimer", - "i18n.movies": "Films", - "i18n.partiallyavailable": "Partiellement disponible", - "i18n.pending": "En attente", - "i18n.processing": "En traitement", - "i18n.tvshows": "Séries", - "i18n.unavailable": "Indisponible", - "pages.oops": "Oups", - "pages.returnHome": "Retourner à l'acceuil", - "components.TvDetails.TvCast.fullseriescast": "Casting complet de la série", - "components.MovieDetails.MovieCast.fullcast": "Casting complet", - "components.Settings.Notifications.emailsettingssaved": "Paramètres de notification par e-mail enregistrés avec succès !", - "components.Settings.Notifications.emailsettingsfailed": "Les paramètres de notification par e-mail n'ont pas pu être enregistrés.", - "components.Settings.Notifications.discordsettingssaved": "Paramètres de notification Discord enregistrés avec succès !", - "components.Settings.Notifications.discordsettingsfailed": "Les paramètres de notification Discord n'ont pas pu être enregistrés.", - "components.Settings.validationPortRequired": "Vous devez fournir un numéro de port valide", - "components.Settings.validationHostnameRequired": "Vous devez fournir un nom d'hôte valide ou une adresse IP", - "components.Settings.SonarrModal.validationNameRequired": "Vous devez fournir un nom de serveur", - "components.Settings.SettingsAbout.version": "Version", - "components.Settings.SettingsAbout.totalrequests": "Total des demandes", - "components.Settings.SettingsAbout.totalmedia": "Total des médias", - "components.Settings.SettingsAbout.overseerrinformation": "À propos d'Jellyseerr", - "components.Settings.SettingsAbout.githubdiscussions": "Discussions GitHub", - "components.Settings.SettingsAbout.gettingsupport": "Obtenir de l'aide", - "components.Settings.RadarrModal.validationNameRequired": "Vous devez fournir un nom de serveur", - "components.Setup.tip": "Astuce", - "i18n.deleting": "Suppression…", - "components.UserList.userdeleteerror": "Une erreur s'est produite lors de la suppression de l'utilisateur.", - "components.UserList.userdeleted": "Utilisateur supprimé avec succès !", - "components.UserList.deleteuser": "Supprimer l'utilisateur", - "components.UserList.deleteconfirm": "Voulez-vous vraiment supprimer cet utilisateur ? Toutes les données de demande de cet utilisateur seront supprimées de façon permanente.", - "components.Settings.SonarrModal.testFirstRootFolders": "Testez la connexion pour charger les dossiers racine", - "components.Settings.SonarrModal.testFirstQualityProfiles": "Testez la connexion pour charger les profils qualité", - "components.Settings.SonarrModal.loadingrootfolders": "Chargement des dossiers racine…", - "components.Settings.SonarrModal.loadingprofiles": "Chargement des profils qualité…", - "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Vous devez sélectionner une disponibilité minimale", - "components.Settings.RadarrModal.testFirstRootFolders": "Testez la connexion pour charger les dossiers racine", - "components.Settings.RadarrModal.testFirstQualityProfiles": "Testez la connexion pour charger les profils qualité", - "components.Settings.RadarrModal.loadingrootfolders": "Chargement des dossiers racine…", - "components.Settings.RadarrModal.loadingprofiles": "Chargement des profils qualité…", - "components.TvDetails.showtype": "Type de séries", - "components.TvDetails.network": "{networkCount, plural, one {Diffuseur} other {Diffuseurs}}", - "components.TvDetails.anime": "Animé", - "components.Settings.toastSettingsSuccess": "Les paramètres ont été enregistrés avec succès !", - "components.Settings.toastSettingsFailure": "Une erreur s'est produite durant l'enregistrement des paramètres.", - "components.Settings.toastApiKeySuccess": "Nouvelle clé API générée avec succès !", - "components.Settings.toastApiKeyFailure": "Une erreur s'est produite lors de la génération de la nouvelle clé API.", - "components.Settings.SonarrModal.animerootfolder": "Dossier racine pour anime", - "components.Settings.SonarrModal.animequalityprofile": "Profil qualité pour anime", - "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studios}}", - "components.Settings.SettingsAbout.supportoverseerr": "Soutenez Jellyseerr", - "i18n.close": "Fermer", - "components.Settings.SettingsAbout.timezone": "Fuseau horaire", - "components.Settings.SettingsAbout.helppaycoffee": "Aidez-nous à payer le café", - "components.Settings.SettingsAbout.Releases.viewongithub": "Voir sur GitHub", - "components.Settings.SettingsAbout.Releases.viewchangelog": "Voir le journal des modifications", - "components.Settings.SettingsAbout.Releases.versionChangelog": "Journal des modifications de la version {version}", - "components.Settings.SettingsAbout.Releases.releases": "Versions", - "components.Settings.SettingsAbout.Releases.releasedataMissing": "Les données de version sont actuellement indisponible.", - "components.Settings.SettingsAbout.Releases.latestversion": "Dernière version", - "components.Settings.SettingsAbout.Releases.currentversion": "Actuelle", - "components.UserList.importfromplexerror": "Une erreur s'est produite durant l'importation des utilisateurs de Plex.", - "components.UserList.importfromplex": "Importer les utilisateurs de Plex", - "components.UserList.importedfromplex": "{userCount} {userCount, plural, one {utilisateur} other {utilisateurs}} importé(s) depuis Plex avec succès !", - "components.TvDetails.viewfullcrew": "Voir l'équipe complète", - "components.TvDetails.TvCrew.fullseriescrew": "Équipe complète de la série", - "components.PersonDetails.crewmember": "Équipe", - "components.MovieDetails.viewfullcrew": "Voir l'équipe complète", - "components.MovieDetails.MovieCrew.fullcrew": "Équipe complète", - "components.TvDetails.firstAirDate": "Date de première diffusion", - "components.Settings.Notifications.allowselfsigned": "Autoriser les certificats autosignés", - "components.TvDetails.watchtrailer": "Regarder la bande-annonce", - "components.MovieDetails.watchtrailer": "Regarder la bande-annonce", - "components.CollectionDetails.requestcollection": "Demander la collection", - "components.CollectionDetails.overview": "Résumé", - "components.CollectionDetails.numberofmovies": "{count} films", - "i18n.requested": "Demandé", - "i18n.retry": "Réessayer", - "i18n.failed": "Échec", - "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL de webhook", - "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Paramètres de notification de Slack sauvegardés avec succès !", - "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Les paramètres de notification Slack n'ont pas pu être enregistrés.", - "components.Settings.Notifications.NotificationsSlack.agentenabled": "Activer l'agent", - "components.RequestList.RequestItem.failedretry": "Une erreur s'est produite lors du renvoi de la demande.", - "components.Settings.Notifications.validationChatIdRequired": "Vous devez fournir un identifiant de discussion valide", - "components.Settings.Notifications.botAPI": "Jeton d'autorisation du bot", - "components.Settings.Notifications.validationBotAPIRequired": "Vous devez fournir la clé d'autorisation du bot", - "components.Settings.Notifications.telegramsettingssaved": "Paramètres de notification Telegram enregistrés avec succès !", - "components.Settings.Notifications.telegramsettingsfailed": "Les paramètres de notification Telegram n'ont pas pu être enregistrés.", - "components.Settings.Notifications.senderName": "Nom de l'expéditeur", - "components.Settings.Notifications.chatId": "ID discussion", - "components.Settings.SettingsAbout.documentation": "Documentation", - "components.NotificationTypeSelector.mediarequestedDescription": "Envoyer des notifications lorsque des utilisateurs soumettent une demande de média qui nécessite une validation.", - "components.NotificationTypeSelector.mediarequested": "Demande en attente de validation", - "components.NotificationTypeSelector.mediafailedDescription": "Envoyer des notifications lorsqu'une demande de média n'a pas pu être ajoutée à Radarr ou Sonarr.", - "components.NotificationTypeSelector.mediafailed": "Échec d’ajout de la demande", - "components.NotificationTypeSelector.mediaavailableDescription": "Envoyer des notifications lorsque le média demandé devient disponible.", - "components.NotificationTypeSelector.mediaavailable": "Demande disponible", - "components.NotificationTypeSelector.mediaapprovedDescription": "Envoyer des notifications lorsqu'une demande de média est validée manuellement.", - "components.NotificationTypeSelector.mediaapproved": "Demande validée", - "i18n.request": "Demander", - "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Vous devez fournir une clé d'utilisateur ou de groupe valide", - "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Vous devez fournir un jeton d'application valide", - "components.Settings.Notifications.NotificationsPushover.userToken": "Clé d'utilisateur ou de groupe", - "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Paramètres de notification Pushover enregistrés avec succès !", - "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Les paramètres de notification Pushover n'ont pas pu être enregistrés.", - "components.Settings.Notifications.NotificationsPushover.agentenabled": "Activer l'agent", - "components.Settings.Notifications.NotificationsPushover.accessToken": "Jeton API d'application", - "components.RequestList.sortModified": "Dernière modification", - "components.RequestList.sortAdded": "Plus récent", - "components.RequestList.showallrequests": "Afficher toutes les demandes", - "components.StatusBadge.status4k": "{status} en 4K", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Paramètres de notification Webhook enregistrés avec succès !", - "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Échec de l'enregistrement des paramètres de notification du webhook.", - "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL de webhook", - "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Aide sur les variables de modèle", - "components.Settings.Notifications.NotificationsWebhook.authheader": "En-tête d'autorisation", - "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Activer l'agent", - "components.RequestModal.pending4krequest": "Demande 4K en attente", - "components.RequestButton.viewrequest4k": "Voir la demande 4K", - "components.RequestButton.viewrequest": "Voir la demande", - "components.RequestButton.requestmore4k": "Demander d'autres ajouts en 4K", - "components.RequestButton.requestmore": "Demander d'autres ajouts", - "components.RequestButton.declinerequests": "Refuser {requestCount, plural, one {demande} other {{requestCount} demandes}}", - "components.RequestButton.declinerequest4k": "Refuser la demande 4K", - "components.RequestButton.declinerequest": "Refuser la demande", - "components.RequestButton.decline4krequests": "Refuser {requestCount, plural, one {demande en 4K} other {{requestCount} demandes en 4K}}", - "components.RequestButton.approverequests": "Valider {requestCount, plural, one {demande} other {{requestCount} demandes}}", - "components.RequestButton.approverequest4k": "Valider la demande 4K", - "components.RequestButton.approverequest": "Valider la demande", - "components.RequestButton.approve4krequests": "Valider {requestCount, plural, one {demande en 4K} other {{requestCount} demandes en 4K}}", - "components.Settings.Notifications.NotificationsWebhook.customJson": "Données utiles JSON", - "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "Les données utiles JSON par défaut ont été réinitialisées avec succès !", - "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Réinitialiser les données par défaut", - "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Vous devez fournir un JSON payload valide", - "components.UserList.validationpasswordminchars": "Le mot de passe est trop court ; il doit contenir au moins 8 caractères", - "components.UserList.usercreatedsuccess": "L'utilisateur a bien été créé !", - "components.UserList.usercreatedfailed": "Une erreur s'est produite lors de la création de l'utilisateur.", - "components.UserList.password": "Mot de passe", - "components.UserList.localuser": "Utilisateur local", - "components.UserList.creating": "Création…", - "components.UserList.createlocaluser": "Créer un utilisateur local", - "components.UserList.create": "Créer", - "components.UserList.autogeneratepassword": "Générer automatiquement le mot de passe", - "components.UserList.passwordinfodescription": "Configurez l'URL de l'application ainsi que les notifications par e-mail pour permettre la génération automatique de mots de passe.", - "components.UserList.email": "Adresse e-mail", - "components.Login.validationpasswordrequired": "Vous devez renseigner un mot de passe", - "components.Login.validationemailrequired": "Vous devez fournir un e-mail valide", - "components.Login.signinwithoverseerr": "Utilisez votre compte {applicationTitle}", - "components.Login.password": "Mot de passe", - "components.Login.loginerror": "Une erreur s'est produite lors de la tentative de connexion.", - "components.Login.email": "Adresse e-mail", - "components.MediaSlider.ShowMoreCard.seemore": "Voir plus", - "i18n.edit": "Modifier", - "components.RequestModal.requestedited": "Demande pour {title} modifiée avec succès !", - "components.RequestModal.requestcancelled": "Demande pour {title} refusée.", - "components.RequestModal.errorediting": "Une erreur s'est produite lors de la modification de la demande.", - "components.RequestModal.autoapproval": "Validation automatique", - "components.RequestModal.AdvancedRequester.rootfolder": "Dossier racine", - "components.RequestModal.AdvancedRequester.qualityprofile": "Profil de qualité", - "components.RequestModal.AdvancedRequester.destinationserver": "Serveur de destination", - "components.RequestModal.AdvancedRequester.default": "{name} (Défaut)", - "components.RequestModal.AdvancedRequester.animenote": "* Cette série est un animé.", - "components.RequestModal.AdvancedRequester.advancedoptions": "Options Avancées", - "components.RequestBlock.requestoverrides": "Modifications de la demande", - "components.RequestBlock.server": "Serveur de destination", - "components.RequestBlock.rootfolder": "Dossier racine", - "components.RequestBlock.profilechanged": "Profil de qualité", - "components.NotificationTypeSelector.mediadeclined": "Demande refusée", - "components.NotificationTypeSelector.mediadeclinedDescription": "Envoyer des notifications lorsqu'une demande de média est refusée.", - "i18n.experimental": "Expérimentale", - "components.Settings.hideAvailable": "Masquer les médias disponibles", - "components.RequestModal.requesterror": "Une erreur s'est produite lors de la demande.", - "components.RequestModal.SearchByNameModal.notvdbiddescription": "Nous n'avons pas pu associer cette série automatiquement. Veuillez sélectionner l'association correcte dans la liste ci-dessous.", - "components.Login.signinwithplex": "Utilisez votre compte Plex", - "components.Login.signin": "Connexion", - "components.Login.signinheader": "Connectez-vous pour continuer", - "components.Login.signingin": "Connexion en cours…", - "components.Settings.notificationAgentSettingsDescription": "Configurer et activer les agents de notification.", - "components.PlexLoginButton.signinwithplex": "Se connecter", - "components.PlexLoginButton.signingin": "Connexion en cours…", - "components.UserList.userssaved": "Les permissions d'utilisateur ont été enregistrées avec succès !", - "components.UserList.bulkedit": "Modification en masse", - "components.Settings.csrfProtectionTip": "Définir l'accès à l'API externe en lecture seule (nécessite HTTPS)", - "components.Settings.csrfProtection": "Activer la protection CSRF", - "components.PermissionEdit.usersDescription": "Autorise à gérer les utilisateurs. Les utilisateurs avec cette autorisation ne peuvent pas modifier les utilisateurs dotés de privilèges d'administrateur ni les accorder.", - "components.PermissionEdit.users": "Gérer les utilisateurs", - "components.PermissionEdit.requestDescription": "Autorise à demander des médias non-4K.", - "components.PermissionEdit.request4kTvDescription": "Autorise à demander des séries en 4K.", - "components.PermissionEdit.request4kTv": "Demander des séries en 4K", - "components.PermissionEdit.request4kMoviesDescription": "Autorise à demander des films en 4K.", - "components.PermissionEdit.request4kMovies": "Demander des films en 4K", - "components.PermissionEdit.request4kDescription": "Autorise à demander des médias en 4K.", - "components.PermissionEdit.request4k": "Demander en 4K", - "components.PermissionEdit.request": "Demander", - "components.PermissionEdit.managerequestsDescription": "Autorise à gérer les demandes de média. Toutes les demandes faites par un utilisateur avec cette autorisation seront validées automatiquement.", - "components.PermissionEdit.managerequests": "Gérer les demandes", - "components.PermissionEdit.autoapproveSeriesDescription": "Valider automatiquement les demandes de séries non-4K.", - "components.PermissionEdit.autoapproveSeries": "Valider automatiquement les séries", - "components.PermissionEdit.autoapproveMoviesDescription": "Valide automatiquement les demandes de films non-4K.", - "components.PermissionEdit.autoapproveMovies": "Valider automatiquement les films", - "components.PermissionEdit.autoapproveDescription": "Valide automatiquement toutes les demandes de média non-4K.", - "components.PermissionEdit.autoapprove": "Valider automatiquement", - "components.PermissionEdit.advancedrequestDescription": "Permet de modifier les options de demande de média avancées.", - "components.PermissionEdit.advancedrequest": "Demandes avancées", - "components.PermissionEdit.adminDescription": "Accès administrateur complet. Contourne toutes les autres permissions (sélectionnées ou non).", - "components.PermissionEdit.admin": "Admin", - "components.Settings.toastPlexRefreshSuccess": "Liste des serveurs Plex récupérée avec succès !", - "components.Settings.toastPlexRefreshFailure": "Échec de la récupération de la liste des serveurs Plex.", - "components.Settings.toastPlexRefresh": "Récupération de la liste des serveurs depuis Plex…", - "components.Settings.toastPlexConnectingSuccess": "Connexion Plex établie avec succès !", - "components.Settings.toastPlexConnectingFailure": "Échec de connexion à Plex.", - "components.Settings.toastPlexConnecting": "Tentative de connexion à Plex…", - "components.Settings.settingUpPlexDescription": "Pour configurer Plex, vous pouvez soit entrer les paramètres manuellement ou choisir parmi l'un des serveurs récupérés sur plex.tv. Appuyez sur le bouton à droite de la liste déroulante pour actualiser la liste des serveurs disponibles.", - "components.Settings.serverpresetRefreshing": "Récupération des serveurs…", - "components.Settings.serverpresetManualMessage": "Configuration manuelle", - "components.Settings.serverpresetLoad": "Appuyez sur le bouton pour charger les serveurs disponibles", - "components.Settings.serverpreset": "Serveur", - "components.Settings.serverRemote": "distant", - "components.Settings.serverLocal": "local", - "components.TvDetails.playonplex": "Lire sur Plex", - "components.TvDetails.play4konplex": "Lire en 4K sur Plex", - "components.Settings.SonarrModal.toastSonarrTestSuccess": "Connexion à Sonarr établie avec succès !", - "components.Settings.SonarrModal.toastSonarrTestFailure": "Échec de la connexion à Sonarr.", - "components.Settings.SonarrModal.syncEnabled": "Activer les scans", - "components.Settings.SonarrModal.externalUrl": "URL externe", - "components.Settings.RadarrModal.syncEnabled": "Activer les scans", - "components.Settings.RadarrModal.externalUrl": "URL externe", - "components.MovieDetails.markavailable": "Marquer comme disponible", - "components.MovieDetails.mark4kavailable": "Marquer comme disponible en 4K", - "components.MovieDetails.playonplex": "Lire sur Plex", - "components.MovieDetails.play4konplex": "Lire en 4K sur Plex", - "components.Settings.trustProxyTip": "Permettre Jellyseerr à enregistrer correctement les adresses IP des clients derrière un proxy", - "components.Settings.trustProxy": "Activer la prise en charge proxy", - "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr effectue certaines tâches de maintenance comme des tâches planifiées régulièrement, mais elles peuvent également être déclenchées manuellement ci-dessous. L'exécution manuelle d'une tâche ne modifiera pas sa planification.", - "components.Settings.SettingsJobsCache.cachemisses": "Manqués", - "components.Settings.SettingsJobsCache.runnow": "Exécuter", - "components.Settings.SettingsJobsCache.nextexecution": "Prochaine exécution", - "components.Settings.SettingsJobsCache.jobtype": "Type", - "components.Settings.SettingsJobsCache.jobstarted": "{jobname} a commencé.", - "components.Settings.SettingsJobsCache.jobs": "Tâches", - "components.Settings.SettingsJobsCache.jobname": "Nom de la tâche", - "components.Settings.SettingsJobsCache.jobcancelled": "{jobname} annulé.", - "components.Settings.SettingsJobsCache.flushcache": "Vider le cache", - "components.Settings.SettingsJobsCache.canceljob": "Annuler la tâche", - "components.Settings.SettingsJobsCache.cachevsize": "Taille de la valeur", - "components.Settings.SettingsJobsCache.cachename": "Nom du cache", - "components.Settings.SettingsJobsCache.cacheksize": "Taille de la clé", - "components.Settings.SettingsJobsCache.cachekeys": "Total des clés", - "components.Settings.SettingsJobsCache.cachehits": "Résultats", - "components.Settings.SettingsJobsCache.cacheflushed": "Cache de {cachename} vidé.", - "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr met en cache les demandes aux points de terminaison d'API externes pour optimiser les performances et éviter de faire des appels d'API inutiles.", - "components.Settings.SettingsJobsCache.cache": "Cache", - "components.Settings.applicationTitle": "Titre de l'application", - "i18n.advanced": "Avancés", - "components.UserList.users": "Utilisateurs", - "components.Setup.setup": "Configuration", - "components.Settings.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", - "components.Settings.validationApplicationUrl": "Vous devez fournir une URL valide", - "components.Settings.csrfProtectionHoverTip": "N'activez PAS ce paramètre à moins que vous ne compreniez ce que vous faites !", - "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", - "components.Settings.SonarrModal.validationApplicationUrl": "Vous devez fournir une URL valide", - "components.Settings.SettingsAbout.preferredmethod": "Préféré", - "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "L'URL ne doit pas se terminer par une barre oblique finale", - "components.Settings.RadarrModal.validationApplicationUrl": "Vous devez fournir une URL valide", - "components.Search.search": "Rechercher", - "components.RequestModal.AdvancedRequester.requestas": "Demander en tant que", - "components.PermissionEdit.viewrequestsDescription": "Autorise à afficher les demandes des autres utilisateurs.", - "components.PermissionEdit.viewrequests": "Voir les demandes", - "components.Discover.discover": "Découvrir", - "components.UserList.validationEmail": "Vous devez fournir un e-mail valide", - "components.TvDetails.nextAirDate": "Prochaine diffusion", - "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par une barre oblique finale", - "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "L'URL de base doit être précédée d'une barre oblique", - "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "L'URL de base ne doit pas se terminer par un slash", - "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "L'URL de base doit être précédée d'un slash", - "components.Settings.Notifications.validationEmail": "Vous devez fournir un e-mail valide", - "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Vous devez fournir une URL valide", - "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Vous devez fournir une URL valide", - "components.ResetPassword.validationpasswordrequired": "Vous devez renseigner un mot de passe", - "components.ResetPassword.validationpasswordminchars": "Le mot de passe est trop court ; il doit comporter au moins 8 caractères", - "components.ResetPassword.validationpasswordmatch": "Les mots de passe doivent être les mêmes", - "components.ResetPassword.validationemailrequired": "Vous devez fournir un e-mail valide", - "components.ResetPassword.resetpasswordsuccessmessage": "Le mot de passe a été réinitialisé avec succès !", - "components.ResetPassword.resetpassword": "Réinitialiser votre mot de passe", - "components.ResetPassword.requestresetlinksuccessmessage": "Un lien de réinitialisation du mot de passe sera envoyé à l'e-mail fourni si il est associé à un utilisateur valide.", - "components.ResetPassword.password": "Mot de passe", - "components.ResetPassword.gobacklogin": "Retourner à la page de connexion", - "components.ResetPassword.emailresetlink": "Envoyer un lien de récupération par e-mail", - "components.ResetPassword.email": "Adresse e-mail", - "components.ResetPassword.confirmpassword": "Confirmez le mot de passe", - "components.Login.forgotpassword": "Mot de passe oublié ?", - "components.Settings.SettingsJobsCache.process": "Processus", - "components.Settings.SettingsJobsCache.command": "Commande", - "components.Settings.validationApplicationTitle": "Vous devez fournir un titre d'application", - "components.Settings.SonarrModal.validationLanguageProfileRequired": "Vous devez sélectionner un profil de langue", - "components.Settings.SonarrModal.testFirstLanguageProfiles": "Tester la connexion pour charger les profils de langue", - "components.Settings.SonarrModal.selectLanguageProfile": "Sélectionnez le profil de langue", - "components.Settings.SonarrModal.loadinglanguageprofiles": "Chargement des profils de langue…", - "components.Settings.SonarrModal.languageprofile": "Profil de langue", - "components.Settings.SonarrModal.animelanguageprofile": "Profil de langue d'anime", - "components.RequestModal.AdvancedRequester.languageprofile": "Profil de langue", - "components.Settings.Notifications.sendSilentlyTip": "Envoyer des notifications sans son", - "components.Settings.Notifications.sendSilently": "Envoyer silencieusement", - "components.UserList.sortRequests": "Nombre de demandes", - "components.UserList.sortDisplayName": "Nom d'Utilisateur affiché", - "components.UserList.sortCreated": "Date d'inscription", - "components.PermissionEdit.autoapprove4kSeriesDescription": "Valide automatiquement les demandes de séries en 4K.", - "components.PermissionEdit.autoapprove4kSeries": "Validation automatique des séries 4K", - "components.PermissionEdit.autoapprove4kMoviesDescription": "Valide automatiquement les demandes de films en 4K.", - "components.PermissionEdit.autoapprove4kMovies": "Validation automatique des films 4K", - "components.PermissionEdit.autoapprove4kDescription": "Valide automatiquement toutes les demandes de média en 4K.", - "components.PermissionEdit.autoapprove4k": "Validation automatique 4K", - "components.AppDataWarning.dockerVolumeMissingDescription": "Le montage du volume {appDataPath} n'a pas été configuré correctement. Toutes les données seront effacées lorsque le conteneur sera arrêté ou redémarré.", - "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Identifiant", - "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Paramètres de notification", - "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nouveau mot de passe", - "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Mot de passe actuel", - "components.UserProfile.UserSettings.UserPasswordChange.password": "Mot de passe", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Paramètres enregistrés avec succès !", - "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Une erreur s'est produite lors de l'enregistrement des paramètres.", - "components.UserProfile.recentrequests": "Demandes récentes", - "components.UserProfile.UserSettings.menuPermissions": "Permissions", - "components.UserProfile.UserSettings.menuNotifications": "Notifications", - "components.UserProfile.UserSettings.menuGeneralSettings": "Général", - "components.UserProfile.UserSettings.menuChangePass": "Mot de passe", - "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Vous devez fournir un jeton d'accès", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Les paramètres de notification Pushbullet n'ont pas pu être enregistrés.", - "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Activer l'agent", - "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Jeton d'accès", - "components.Layout.UserDropdown.settings": "Paramètres", - "components.Layout.UserDropdown.myprofile": "Profil", - "components.CollectionDetails.requestcollection4k": "Demander la collection en 4K", - "components.UserProfile.UserSettings.UserPermissions.permissions": "Permissions", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Le mot de passe est trop court, il doit contenir un minimum de 8 caractères", - "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Vous devez fournir un nouveau mot de passe", - "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Vous devez fournir votre mot de passe actuel", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Les mots de passe doivent correspondre", - "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Vous devez confirmer le nouveau mot de passe", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Mot de passe enregistré avec succès !", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Un problème est survenu lors de l'enregistrement du mot de passe.", - "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Vous devez fournir un identifiant valide", - "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "L' IDassocié à votre compte utilisateur", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Les paramètres ont été enregistrés avec succès !", - "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Un problème est survenu pendant l'enregistrement des paramètres.", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Utilisateur Plex", - "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Utilisateur local", - "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Paramètres généraux", - "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nom affiché", - "components.UserProfile.ProfileHeader.settings": "Modifier les paramètres", - "components.UserProfile.ProfileHeader.profile": "Afficher le profil", - "components.UserList.userfail": "Un problème est survenu lors de l'enregistrement des permissions de l'utilisateur.", - "components.UserList.edituser": "Modifier les permissions de l'utilisateur", - "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Paramètres de notification Pushbullet enregistrés avec succès !", - "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmez le mot de passe", - "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrer le contenu par disponibilité régionale", - "components.UserProfile.UserSettings.UserGeneralSettings.region": "Région à découvrir", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrer le contenu par langue d’origine", - "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Langue à découvrir", - "components.Settings.regionTip": "Filtrer le contenu par disponibilité régionale", - "components.Settings.region": "Région à découvrir", - "components.Settings.originallanguageTip": "Filtrer le contenu par langue d’origine", - "components.Discover.upcomingtv": "Séries à venir", - "components.Settings.originallanguage": "Langue à découvrir", - "components.RegionSelector.regionDefault": "Toutes les régions", - "components.Settings.webhook": "Webhook", - "components.Settings.email": "E-mail", - "components.RegionSelector.regionServerDefault": "Défaut ({region})", - "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Vous n'avez l'autorisation de modifier le mot de passe de cet utilisateur.", - "components.UserProfile.UserSettings.UserGeneralSettings.user": "Utilisateur", - "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rôle", - "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propriétaire", - "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", - "components.UserList.owner": "Propriétaire", - "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Type de compte", - "components.UserList.accounttype": "Type de compte", - "components.Settings.SettingsJobsCache.unknownJob": "Tâche inconnue", - "components.Settings.SettingsJobsCache.download-sync": "Synchroniser les téléchargements", - "components.Settings.SettingsJobsCache.download-sync-reset": "Reset de la synchronisation des téléchargements", - "i18n.loading": "Chargement…", - "components.Discover.DiscoverMovieGenre.genreMovies": "Films {genre}", - "components.Discover.DiscoverTvGenre.genreSeries": "Séries {genre}", - "components.Discover.DiscoverStudio.studioMovies": "Films {studio}", - "components.Discover.DiscoverNetwork.networkSeries": "Séries {network}", - "components.TvDetails.seasons": "{seasonCount, plural, one {# Saison} other {# Saisons}}", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Envoyer des notifications sans son", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Démarre une discussion, ajoute @get_id_bot, et utilise la commande /my_id", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID de discussion", - "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Envoie les messages silencieusement", - "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Vous devez fournir un identifiant de chat valide", - "components.Settings.Notifications.botUsername": "Pseudonyme du Bot", - "components.Discover.NetworkSlider.networks": "Diffuseurs", - "components.RequestList.RequestItem.modified": "Modifiée", - "components.RequestList.RequestItem.requested": "Demandé", - "components.RequestList.RequestItem.modifieduserdate": "{date} par {user}", - "components.Discover.StudioSlider.studios": "Studios", - "components.Discover.DiscoverTvLanguage.languageSeries": "Séries en {language}", - "components.Discover.DiscoverMovieLanguage.languageMovies": "Films en {language}", "components.Setup.scanbackground": "Le scan s'effectue en arrière-plan. Vous pouvez donc continuer le processus de configuration pendant ce temps.", - "components.Settings.scanning": "Synchronisation en cours…", - "components.Settings.scan": "Synchroniser les bibliothèques", - "components.Settings.SettingsJobsCache.sonarr-scan": "Scan de Sonarr", - "components.Settings.SettingsJobsCache.radarr-scan": "Scan de Radarr", - "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Scan des ajouts récents aux bibliothèques Plex", - "components.Settings.SettingsJobsCache.plex-full-scan": "Scan complet des bibliothèques Plex", - "components.Settings.Notifications.validationUrl": "Vous devez fournir une URL valide", - "components.Settings.Notifications.botAvatarUrl": "L'URL de l'avatar de votre Bot", - "components.Settings.SettingsUsers.userSettingsDescription": "Configurer les paramètres généraux et par défaut de l'utilisateur.", - "components.Settings.SettingsUsers.toastSettingsFailure": "Un problème est survenu pendant la sauvegarde des paramètres.", - "components.Settings.SettingsUsers.localLogin": "Activer la connexion locale", - "components.Settings.SettingsUsers.defaultPermissions": "Permissions par défaut", - "components.UserProfile.ProfileHeader.userid": "ID utilisateur : {userid}", - "components.UserProfile.ProfileHeader.joindate": "Membre depuis le {joindate}", - "components.Settings.menuUsers": "Utilisateurs", - "components.Settings.SettingsUsers.userSettings": "Paramètres utilisateur", - "components.Settings.SettingsUsers.toastSettingsSuccess": "Les paramètres utilisateur ont été enregistrés avec succès !", - "components.NotificationTypeSelector.mediaAutoApproved": "Demande validée automatiquement", - "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Envoyer des notifications lorsque des utilisateurs soumettent une demande pour un nouveau média qui est validée automatiquement.", - "components.UserProfile.UserSettings.unauthorizedDescription": "Vous n'avez pas l'autorisation de modifier les paramètres de cet utilisateur.", - "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Vous ne pouvez pas modifier vos propres permissions.", - "components.Settings.Notifications.pgpPrivateKeyTip": "Signer des emails chiffrés en utilisant OpenPGP", - "components.Settings.Notifications.pgpPasswordTip": "Signer des emails chiffrés en utilisant OpenPGP", - "components.Settings.Notifications.pgpPrivateKey": "PGP Clé privée", - "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutes", - "components.TvDetails.episodeRuntime": "Durée d'un épisode", - "components.Settings.Notifications.pgpPassword": "PGP mot de passe", - "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", - "components.Settings.partialRequestsEnabled": "Permettre les demandes partielles des séries", - "components.RequestModal.alreadyrequested": "Déjà demandé", - "components.Discover.TvGenreSlider.tvgenres": "Genres de séries", - "components.Discover.TvGenreList.seriesgenres": "Genres de séries", - "components.Discover.MovieGenreSlider.moviegenres": "Genres de films", - "components.Discover.MovieGenreList.moviegenres": "Genres de films", - "pages.errormessagewithcode": "{statusCode} - {error}", - "pages.pagenotfound": "La page n'a pas été trouvée", - "pages.serviceunavailable": "Service indisponible", - "components.Settings.SettingsLogs.pauseLogs": "Pause", - "components.Settings.SettingsLogs.logs": "Journaux", - "components.Settings.SettingsLogs.filterWarn": "Attention", - "components.Settings.SettingsLogs.filterInfo": "Infos", - "components.Settings.SettingsLogs.filterError": "Erreur", - "components.Settings.SettingsLogs.filterDebug": "Débogage", - "components.Settings.SettingsAbout.about": "À propos", - "pages.somethingwentwrong": "Un problème est survenu", - "i18n.usersettings": "Paramètres utilisateur", - "i18n.settings": "Paramètres", - "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notifications", - "components.Settings.SettingsLogs.copiedLogMessage": "Le texte des journaux a été ajouté au presse-papiers.", - "components.UserProfile.UserSettings.UserGeneralSettings.general": "Général", - "components.Settings.services": "Applications", - "components.Settings.plex": "Plex", - "components.Settings.notifications": "Notifications", - "components.Settings.general": "Général", - "components.Settings.enablessl": "Utiliser SSL", - "components.Settings.SettingsUsers.users": "Utilisateurs", - "components.Settings.SettingsLogs.showall": "Afficher tous les journaux", - "components.Settings.SettingsLogs.logDetails": "Journal détaillé", - "components.Settings.SettingsLogs.copyToClipboard": "Copier dans le presse-papiers", - "components.ResetPassword.passwordreset": "Réinitialiser le mot de passe", - "pages.internalservererror": "Erreur interne du serveur", - "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Un problème est survenu lors de l'enregistrement du mot de passe. Votre mot de passe actuel a-t-il été saisi correctement ?", - "components.Settings.cacheImagesTip": "Met en cache localement et utilise des images optimisées (nécessite une quantité considérable d'espace disque)", - "components.Settings.cacheImages": "Activer la mise en cache d'image", - "components.Settings.SettingsLogs.time": "Horodatage", - "components.Settings.SettingsLogs.resumeLogs": "Résumer", - "components.Settings.SettingsLogs.message": "Message", - "components.Settings.SettingsLogs.logsDescription": "Vous pouvez également afficher ces journaux directement via stdout, ou dans {appDataPath}/logs/overseerr.log.", - "components.Settings.SettingsLogs.level": "Gravité", - "components.Settings.SettingsLogs.label": "Étiquette", - "components.Settings.SettingsLogs.extraData": "Données supplémentaires", - "components.Settings.SettingsJobsCache.jobsandcache": "Tâches et cache", - "components.UserList.nouserstoimport": "Aucun nouvel utilisateur de Plex à importer.", - "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", - "components.PersonDetails.birthdate": "Né(e) le {birthdate}", - "components.PersonDetails.alsoknownas": "Aussi connu sous le(s) nom(s) : {names}", - "i18n.delimitedlist": "{a}, {b}", - "components.RequestModal.QuotaDisplay.season": "saison", - "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {Aucune} other {#}} {remaining, plural, one {demande} other {demandes}} de {type} {remaining, plural, one {restante} other {restantes}}", - "components.RequestModal.QuotaDisplay.quotaLinkUser": "Vous pouvez voir un résumé des limites de demandes de cet utilisateur sur sa page de profil.", - "components.RequestModal.QuotaDisplay.quotaLink": "Vous pouvez voir un résumé de vos limites de demandes sur votre page de profil.", - "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Pas assez de demandes de saison restantes", - "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {film} other {films}}", - "components.RequestModal.QuotaDisplay.movie": "film", - "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Cet utilisateur est autorisé à demander {limit} {type} tous les {days} jour(s).", - "components.RequestModal.QuotaDisplay.allowedRequests": "Vous êtes autorisé à demander {limit} {type} tous les {days} jour(s).", - "components.QuotaSelector.unlimited": "Illimité", - "components.UserProfile.unlimited": "Illimité", - "components.TvDetails.originaltitle": "Titre original", - "components.MovieDetails.originaltitle": "Titre original", - "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {saison} other {saisons}}", - "components.LanguageSelector.originalLanguageDefault": "Toutes les langues", - "components.LanguageSelector.languageServerDefault": "({language}) par défaut", - "i18n.tvshow": "Séries", - "i18n.test": "Tester", - "i18n.save": "Sauvegarder les changements", - "i18n.request4k": "Demander en 4K", - "i18n.movie": "Film", - "components.UserProfile.totalrequests": "Total des demandes", - "components.UserProfile.requestsperdays": "{limit} restantes", - "components.UserProfile.limit": "{remaining} sur {limit}", - "i18n.view": "Voir", - "i18n.testing": "Test en cours…", - "i18n.status": "Statut", - "i18n.saving": "Sauvegarde en cours…", - "i18n.resultsperpage": "Afficher {pageSize} résultats par page", - "i18n.requesting": "Demande en cours…", - "i18n.previous": "Précédent", - "i18n.notrequested": "Non demandé", - "i18n.noresults": "Aucun résultat.", - "i18n.next": "Suivant", - "i18n.canceling": "Annulation…", - "i18n.back": "Retour", - "i18n.areyousure": "Êtes-vous sûr ?", - "i18n.all": "Toutes", - "components.UserProfile.seriesrequest": "Demandes de séries", - "components.UserProfile.pastdays": "{type} (derniers {days} jours)", - "components.UserProfile.movierequests": "Demandes de films", - "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Limite de demandes de films", - "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Limite de demandes de séries", - "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Contourner la limite globale", - "components.Settings.SonarrModal.loadingTags": "Chargement des tags en cours…", - "components.Settings.SonarrModal.edit4ksonarr": "Modifier le serveur Sonarr 4K", - "components.Settings.SonarrModal.default4kserver": "Serveur 4K par défaut", - "components.Settings.SonarrModal.create4ksonarr": "Ajouter un nouveau serveur Sonarr 4K", - "components.Settings.SonarrModal.animeTags": "Tags d'animés", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Limite globale de demandes de séries", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Limite globale de demandes de films", - "components.Settings.SonarrModal.testFirstTags": "Tester la connexion pour charger les tags", - "components.Settings.RadarrModal.testFirstTags": "Tester la connexion pour charger les tags", - "components.Settings.SonarrModal.tags": "Tags", - "components.Settings.RadarrModal.tags": "Tags", - "components.Settings.SonarrModal.selecttags": "Sélectionner les tags", - "components.Settings.RadarrModal.selecttags": "Sélectionner les tags", - "components.Settings.SonarrModal.notagoptions": "Aucun tag.", - "components.Settings.RadarrModal.notagoptions": "Aucun tag.", - "components.Settings.RadarrModal.loadingTags": "Chargement des tags en cours…", - "components.Settings.RadarrModal.edit4kradarr": "Modifier le serveur Radarr 4K", - "components.Settings.RadarrModal.default4kserver": "Serveur 4K par défaut", - "components.Settings.RadarrModal.create4kradarr": "Ajouter un nouveau serveur Radarr 4K", - "components.RequestModal.AdvancedRequester.tags": "Tags", - "components.RequestModal.AdvancedRequester.selecttags": "Sélectionner les tags", - "components.RequestModal.AdvancedRequester.notagoptions": "Aucun tag.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Chiffrer les emails en utilisant OpenPGP", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Votre compte n’a actuellement pas de mot de passe. Configurez un mot de passe ci-dessous pour activer la connexion en tant qu’ \"utilisateur local\" en utilisant votre adresse e-mail.", - "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Ce compte utilisateur n’a actuellement pas de mot de passe. Configurez un mot de passe ci-dessous pour permettre à ce compte de se connecter en tant \"qu’utilisateur local.\"", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Vous devez fournir une clé publique PGP valide", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Paramètres de notification Telegram enregistrés avec succès !", - "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Impossible d’enregistrer les paramètres de notification de Telegram.", - "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clé Publique PGP", - "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Les paramètres de notification Discord n’ont pas pu être enregistrés.", - "components.Settings.serviceSettingsDescription": "Configurez votre serveur {serverType} ci-dessous. Vous pouvez connecter plusieurs serveurs {serverType}, mais seulement deux d’entre eux peuvent être marqués par défaut (un non-4K et un 4K). Les administrateurs peuvent modifier le serveur utilisé pour traiter les nouvelles demandes avant la validation.", - "components.Settings.mediaTypeSeries": "série", - "components.Settings.mediaTypeMovie": "film", - "components.Settings.SettingsAbout.uptodate": "À jour", - "components.Settings.SettingsAbout.outofdate": "Obsolète", - "components.Settings.Notifications.validationPgpPrivateKey": "Vous devez fournir une clé privée PGP valide si un mot de passe PGP est entré", - "components.Settings.Notifications.validationPgpPassword": "Vous devez fournir un mot de passe PGP", - "components.Settings.Notifications.botUsernameTip": "Permet aux utilisateurs de démarrer également une conversation avec votre bot et de configurer leurs propres notifications personnelles", - "components.RequestModal.pendingapproval": "Votre demande est en attente de validation.", - "components.RequestList.RequestItem.mediaerror": "{mediaType} non trouvé", - "components.RequestList.RequestItem.deleterequest": "Supprimer la Demande", - "components.RequestList.RequestItem.cancelRequest": "Annuler la demande", - "components.RequestCard.mediaerror": "{mediaType} non trouvé", - "components.RequestCard.deleterequest": "Supprimer la Demande", - "components.NotificationTypeSelector.notificationTypes": "Types de Notification", - "components.Layout.VersionStatus.streamstable": "Jellyseerr stable", - "components.Layout.VersionStatus.streamdevelop": "Développement d'Jellyseerr", - "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {commit} other {commits}} en retard", - "components.Layout.VersionStatus.outofdate": "Obsolète", - "components.RequestModal.QuotaDisplay.requiredquota": "Vous devez avoir au moins {seasons} {seasons, plural, one {demande de saison} other {demandes de saisons}} afin de soumettre une demande pour cette série.", - "components.RequestModal.QuotaDisplay.requiredquotaUser": "Cet utilisateur doit avoir au moins {seasons} {seasons, plural, one {demande de saison} other {demandes de saisons}} afin de soumettre une demande pour cette série.", - "components.Settings.noDefaultNon4kServer": "Si vous n’avez qu’un seul serveur {serverType} pour les contenus non-4K et 4K (ou si vous ne téléchargez que du contenu 4K), votre serveur {serverType} ne devrait PAS être désigné comme serveur 4K.", - "components.Settings.noDefaultServer": "Au moins un serveur {serverType} doit être marqué par défaut pour que les demandes {mediaType} puissent être envoyées.", - "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Paramètres de notification Discord enregistrés avec succès !", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Impossible d’enregistrer les paramètres de notification par E-mail.", - "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "Paramètres de notification par E-mail enregistrés avec succès !", - "i18n.showingresults": "Affichage de {from} à {to} pour {total} résultats", - "components.UserList.autogeneratepasswordTip": "Envoyer par email un mot de passe généré par le serveur à l’utilisateur", - "i18n.retrying": "Nouvelle tentative…", - "components.Settings.serverSecure": "sécurisée", - "components.RequestModal.edit": "Modifier la demande", - "components.RequestList.RequestItem.editrequest": "Modifier la demande", - "components.UserList.usercreatedfailedexisting": "L'adresse électronique fournie est déjà utilisée par un autre utilisateur.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", - "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Langue d'affichage", - "components.Settings.webpush": "Web Push", - "components.Settings.SonarrModal.enableSearch": "Activer la recherche automatique", - "components.Settings.RadarrModal.enableSearch": "Activer la recherche automatique", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Les paramètres de la notification Web push ont été enregistrés avec succès !", - "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Les paramètres de la notification Web push n'ont pas été enregistrés.", - "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Activer l'agent", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL de webhook", - "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Vous devez fournir une URL valide", - "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "Paramètres de notification de LunaSea sauvegardés avec succès !", - "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Les paramètres de notification LunaSea n'ont pas pu être enregistrés.", - "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Uniquement nécessaire si vous n'utilisez pas le profil default", - "components.Settings.Notifications.NotificationsLunaSea.profileName": "Nom du Profil", - "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Activer l'agent", - "components.PermissionEdit.requestMoviesDescription": "Autorise à demander des films non-4K.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "La notification de test Web Push n’a pas été envoyée.", - "components.PermissionEdit.requestMovies": "Demander des films", - "components.PermissionEdit.requestTv": "Demander des séries", - "components.PermissionEdit.requestTvDescription": "Autorise à demander des séries non-4K.", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "Notification test LunaSea envoyée !", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Envoi de la notification test LunaSea…", - "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "L'envoi de la notification test LunaSea a échoué.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Envoi de la notification test Pushbullet…", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "L'envoi de la notification test Pushbullet a échoué.", - "components.Settings.Notifications.toastTelegramTestFailed": "L'envoi de la notification test à Telegram a échoué.", - "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Notification test Pushbullet envoyée !", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Envoi de la notification test Pushover…", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "L'envoi de la notification test Pushover a échoué.", - "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Notification test Pushover envoyée !", - "components.Settings.Notifications.encryptionImplicitTls": "Utiliser TLS implicite", - "components.Settings.Notifications.encryptionTip": "Dans la majorité des cas, TLS implicite utilise le port 465 et STARTTLS utilise le port 587", - "components.Settings.Notifications.encryptionNone": "Aucune", - "components.Settings.Notifications.encryption": "Méthode de chiffrement", - "components.Settings.Notifications.encryptionDefault": "Utiliser STARTTLS si disponible", - "components.Settings.Notifications.encryptionOpportunisticTls": "Toujours utiliser STARTTLS", - "components.DownloadBlock.estimatedtime": "Estimé {time}", - "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Votre identifiant d'utilisateur ou de groupe de 30 caractères", - "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Enregistrer une application pour l'utiliser avec Jellyseerr", - "components.RequestList.RequestItem.requesteddate": "Demandé", - "components.RequestCard.failedretry": "Une erreur s'est produite lors du renvoi de la demande.", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Paramètres de notification Web Push enregistrés avec succès !", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Notification de test web push envoyée !", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Envoi d'une notification de test web push…", - "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Afin de recevoir des notifications push web, Jellyseerr doit fonctionner en HTTPS.", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Notification de test Webhook envoyée !", - "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Envoi de notification de test webhook…", - "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "L'envoi de la notification de test Web push a échoué.", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Notification test Slack envoyée !", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Envoi de la notification test Slack…", - "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "L'envoi de la notification test Slack a échoué.", - "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Créer un jeton à partir de vos paramètres de compte", - "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "Votre URL de webhook de notification basée sur l'utilisateur ou l'appareil", - "components.QuotaSelector.seasons": "{count, plural, one {saison} other {saisons}}", - "components.QuotaSelector.movies": "{count, plural, one {film} other {films}}", - "components.QuotaSelector.movieRequests": "{quotaLimit} {movies} tous les {quotaDays} {days}", - "components.QuotaSelector.days": "{count, plural, one {jour} other {jours}}", - "components.Settings.SettingsAbout.betawarning": "Ceci est un logiciel BÊTA. Les fonctionnalités peuvent être non opérationnelles ou instables. Veuillez signaler tout problème sur GitHub !", - "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Échec de l'enregistrement des paramètres de notification Web push.", - "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Langage par défaut ({language})", - "components.UserList.displayName": "Nom affiché", - "components.Settings.webAppUrlTip": "Dirigez éventuellement les utilisateurs vers l'application Web sur votre serveur au lieu de l'application Web « hébergée »", - "components.Settings.webAppUrl": "URL Application Web", - "components.Settings.noDefault4kServer": "Un serveur 4K {serverType} doit être marqué par défaut afin de permettre aux utilisateurs de soumettre des requêtes 4K {mediaType}.", - "components.Settings.locale": "Langue d'affichage", - "components.Settings.is4k": "4K", - "components.Settings.SettingsUsers.newPlexLoginTip": "Autoriser les utilisateurs de Plex à se connecter sans être d'abord importés", - "components.Settings.SettingsUsers.newPlexLogin": "Autoriser nouvelle connexion Plex", - "components.Settings.SettingsUsers.localLoginTip": "Autoriser les utilisateurs à se connecter en utilisant leur adresse e-mail et leur mot de passe, au lieu de Plex OAuth", - "components.Settings.SettingsUsers.defaultPermissionsTip": "Autorisations par défaut attribuées aux nouveaux utilisateurs", - "components.Settings.Notifications.webhookUrlTip": "Créez une intégration de webhook dans votre serveur", - "components.Settings.Notifications.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.toastTelegramTestSuccess": "Notification de test de télégramme envoyée !", - "components.Settings.Notifications.toastTelegramTestSending": "Envoi de la notification de test à Telegram…", - "components.Settings.Notifications.toastEmailTestSuccess": "Notification de test par e-mail envoyée !", - "components.Settings.Notifications.toastEmailTestSending": "Envoi d'une notification de test par e-mail…", - "components.Settings.Notifications.toastEmailTestFailed": "Échec de l'envoi de la notification de test par e-mail.", - "components.Settings.Notifications.toastDiscordTestSuccess": "Notification de test à Discord envoyée !", - "components.Settings.Notifications.toastDiscordTestSending": "Envoi de la notification de test Discord…", - "components.Settings.Notifications.toastDiscordTestFailed": "Échec de l'envoi de la notification de test Discord.", - "components.Settings.Notifications.chatIdTip": "Démarrez une discussion avec votre bot, ajoutez @get_id_bot et exécutez la commande /my_id", - "components.Settings.Notifications.botApiTip": "Créer un bot à utiliser avec Jellyseerr", - "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.NotificationsSlack.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.NotificationsPushover.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.QuotaSelector.tvRequests": "{quotaLimit} {seasons} tous les {quotaDays} {days}", - "components.NotificationTypeSelector.usermediarequestedDescription": "Être averti(e) lorsque d'autres utilisateurs soumettent une demande de média qui nécessite une validation.", - "components.NotificationTypeSelector.usermediafailedDescription": "Être averti(e) lorsqu'une demande de média n'a pas pu être ajoutée à Radarr ou Sonarr.", - "components.NotificationTypeSelector.usermediadeclinedDescription": "Être averti(e) lorsque vos demandes de médias sont refusées.", - "components.NotificationTypeSelector.usermediaavailableDescription": "Être averti(e) lorsque vos demandes de médias deviennent disponibles.", - "components.NotificationTypeSelector.usermediaapprovedDescription": "Être averti(e) lorsque vos demandes de médias sont validées.", - "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Être averti(e) lorsque des utilisateurs soumettent une demande de média qui est validée automatiquement.", - "components.MovieDetails.showmore": "Montrer plus", - "components.MovieDetails.showless": "Montrer moins", - "components.Layout.LanguagePicker.displaylanguage": "Langue d'affichage", - "components.UserList.localLoginDisabled": "Le paramètre Activer la connexion locale est actuellement désactivé.", - "components.TvDetails.streamingproviders": "Disponible en streaming sur", - "components.MovieDetails.streamingproviders": "Actuellement diffusé sur", - "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Créer une intégration Webhook entrante", + "components.Setup.setup": "Configuration", + "components.Setup.signinMessage": "Commencez en vous connectant avec votre compte Plex", + "components.Setup.tip": "Astuce", + "components.Setup.welcome": "Bienvenue sur Jellyseerr", + "components.StatusBadge.managemedia": "Gérer {mediaType}", + "components.StatusBadge.openinarr": "Ouvrir dans {arr}", + "components.StatusBadge.playonplex": "Lire sur {mediaServerName}", + "components.StatusBadge.seasonepisodenumber": "S{seasonNumber}E{episodeNumber}", "components.StatusBadge.status": "{status}", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Toutes les {jobScheduleHours, plural, one {heure} other {{jobScheduleHours} heures}}", - "components.IssueDetails.IssueComment.areyousuredelete": "Êtes-vous sûr de vouloir supprimer ce commentaire ?", - "components.IssueDetails.IssueComment.postedby": "Ajouté {relativeTime} par {username}", - "components.IssueDetails.IssueComment.postedbyedited": "Ajouté {relativeTime} par {username} (Édité)", - "components.IssueDetails.IssueComment.validationComment": "Vous devez écrire un message", - "components.IssueDetails.IssueComment.delete": "Supprimer le commentaire", - "components.IssueDetails.IssueComment.edit": "Éditer le commentaire", - "components.IssueDetails.nocomments": "Aucun commentaire.", - "components.IssueDetails.openedby": "#{issueId} ouvert {relativeTime} par {username}", - "components.IssueDetails.problemepisode": "Épisode concerné", - "components.IssueDetails.problemseason": "Saison concernée", - "components.IssueDetails.reopenissue": "Rouvrir le problème", - "components.IssueDetails.reopenissueandcomment": "Rouvrir avec un commentaire", - "components.IssueDetails.season": "Saison {seasonNumber}", - "components.IssueModal.CreateIssueModal.episode": "Épisode {episodeNumber}", - "components.IssueModal.CreateIssueModal.problemepisode": "Épisode concerné", - "components.IssueModal.CreateIssueModal.problemseason": "Saison affectée", - "components.IssueModal.CreateIssueModal.providedetail": "Fournissez une explication détaillée du problème.", - "components.NotificationTypeSelector.userissueresolvedDescription": "Être averti(e) lorsqu'un problème que vous avez signalé est résolu.", - "components.PermissionEdit.manageissues": "Gérer les problèmes", - "components.PermissionEdit.viewissues": "Afficher les problèmes", - "components.PermissionEdit.viewissuesDescription": "Autorise à consulter les problèmes liés aux médias signalés par d'autres utilisateurs.", - "components.IssueModal.CreateIssueModal.toastFailedCreate": "Un problème est survenu lors de la soumission du problème.", - "components.IssueModal.CreateIssueModal.toastviewissue": "Afficher le problème", - "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Le signalement du problème pour {title} a été soumis avec succès !", - "components.IssueModal.CreateIssueModal.whatswrong": "Qu’est-ce qui ne va pas ?", - "components.Layout.Sidebar.issues": "Problèmes", - "components.ManageSlideOver.downloadstatus": "Téléchargement(s)", - "components.ManageSlideOver.manageModalNoRequests": "Aucune demande.", - "components.ManageSlideOver.manageModalRequests": "Demandes", - "components.ManageSlideOver.manageModalTitle": "Gérer {mediaType}", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Ceci supprimera de manière irréversible toutes les données de ce(tte) {mediaType}, y compris les demandes éventuelles. Si cet élément existe dans votre bibliothèque Plex, les informations sur le média seront recréées lors de la prochaine analyse.", - "components.ManageSlideOver.tvshow": "série", - "components.NotificationTypeSelector.issuecomment": "Commentaires du problème", - "components.NotificationTypeSelector.issuecreatedDescription": "Envoyer des notifications lorsqu'un problème est signalé.", - "components.PermissionEdit.createissues": "Signaler des problèmes", - "components.PermissionEdit.createissuesDescription": "Autorise à signaler les problèmes liés aux médias.", - "i18n.resolved": "Résolu", - "components.IssueDetails.toasteditdescriptionfailed": "Un problème est survenu lors de l'édition de la description du problème.", - "components.IssueDetails.toastissuedeletefailed": "Un problème est survenu lors de la suppression du problème.", - "components.IssueDetails.allseasons": "Toutes les saisons", - "components.IssueDetails.IssueDescription.description": "Description", - "components.IssueDetails.IssueDescription.edit": "Éditer la description", - "components.IssueDetails.allepisodes": "Tous les épisodes", - "components.IssueDetails.closeissue": "Clore le problème", - "components.IssueDetails.IssueDescription.deleteissue": "Supprimer le problème", - "components.IssueDetails.episode": "Épisode {episodeNumber}", - "components.IssueDetails.closeissueandcomment": "Clore avec un commentaire", - "components.IssueDetails.lastupdated": "Dernière mise à jour", - "components.IssueDetails.comments": "Commentaires", - "components.IssueDetails.deleteissueconfirm": "Êtes-vous sûr de vouloir supprimer ce problème ?", - "components.IssueDetails.issuepagetitle": "Problème", - "components.IssueDetails.issuetype": "Type", - "components.IssueDetails.deleteissue": "Supprimer le problème", - "components.IssueDetails.leavecomment": "Commenter", - "components.IssueDetails.openinarr": "Ouvrir dans {arr}", - "components.IssueDetails.toasteditdescriptionsuccess": "La description du problème a été éditée avec succès !", - "components.IssueDetails.toaststatusupdated": "Le statut du problème a été mis à jour avec succès !", - "components.IssueDetails.toastissuedeleted": "Le problème a été supprimé avec succès !", - "components.IssueDetails.toaststatusupdatefailed": "Un problème est survenu lors de la mise à jour du statut du problème.", - "components.IssueDetails.unknownissuetype": "Inconnu", - "components.IssueList.IssueItem.viewissue": "Afficher le problème", - "components.IssueList.sortAdded": "Plus récents", - "components.IssueList.sortModified": "Dernière modification", - "components.NotificationTypeSelector.userissuecommentDescription": "Être averti(e) lorsqu'un problème que vous avez signalé reçoit de nouveaux commentaires.", - "components.IssueList.IssueItem.issuetype": "Type", - "components.IssueList.IssueItem.issuestatus": "Statut", - "components.IssueList.IssueItem.opened": "Ouvert", - "components.IssueList.IssueItem.problemepisode": "Épisode concerné", - "components.IssueList.issues": "Problèmes", - "components.IssueList.IssueItem.openeduserdate": "{date} par {user}", - "components.IssueList.IssueItem.unknownissuetype": "Inconnu", - "components.IssueList.showallissues": "Afficher tous les problèmes", - "components.IssueModal.CreateIssueModal.allepisodes": "Tous les épisodes", - "components.ManageSlideOver.manageModalClearMedia": "Effacer les données", - "components.ManageSlideOver.movie": "film", - "components.IssueModal.CreateIssueModal.allseasons": "Toutes les saisons", - "components.IssueModal.CreateIssueModal.season": "Saison {seasonNumber}", - "components.IssueModal.CreateIssueModal.validationMessageRequired": "Vous devez fournir une description", - "components.IssueModal.CreateIssueModal.reportissue": "Signaler un problème", - "components.IssueModal.CreateIssueModal.submitissue": "Soumettre le problème", - "components.IssueModal.issueVideo": "Vidéo", - "components.IssueModal.issueAudio": "Audio", - "components.IssueModal.issueSubtitles": "Sous-titre", - "components.IssueModal.issueOther": "Autre", - "components.ManageSlideOver.mark4kavailable": "Marquer comme disponible en 4K", - "components.ManageSlideOver.markavailable": "Marquer comme disponible", - "components.Settings.SettingsAbout.runningDevelop": "Vous utilisez la branche develop d'Jellyseerr, qui n'est recommandée que pour ceux qui contribuent au développement ou qui aident aux tests et correctifs.", - "components.ManageSlideOver.openarr": "Ouvrir dans {arr}", - "components.NotificationTypeSelector.adminissuecommentDescription": "Être averti(e) lorsque d'autres utilisateurs commentent sur un problème.", - "components.NotificationTypeSelector.issuecommentDescription": "Envoyer des notifications lorsqu'un problème reçoit de nouveaux commentaires.", - "components.NotificationTypeSelector.issueresolved": "Problème résolu", - "components.ManageSlideOver.openarr4k": "Ouvrir dans {arr} 4K", - "components.NotificationTypeSelector.issuecreated": "Problème signalé", - "components.NotificationTypeSelector.issueresolvedDescription": "Envoyer des notifications lorsqu'un problème est résolu.", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Fréquence", - "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Tâche modifiée avec succès !", - "i18n.open": "Ouvert", - "components.Settings.SettingsJobsCache.editJobSchedule": "Modifier la tâche", - "components.NotificationTypeSelector.userissuecreatedDescription": "Être averti(e) lorsque d’autres utilisateurs signalent des problèmes.", - "components.PermissionEdit.manageissuesDescription": "Autorise à gérer les problèmes liés aux médias.", - "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Un problème est survenu lors de l'enregistrement de la tâche.", - "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Toutes les {jobScheduleMinutes, plural, one {minute} other {{jobScheduleMinutes} minutes}}", - "components.IssueDetails.openin4karr": "Ouvrir dans {arr} 4K", - "components.IssueDetails.play4konplex": "Lire en 4K sur Plex", - "components.IssueDetails.playonplex": "Lire sur Plex", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Jeton d'accès", - "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Saison} other {Saisons}}", - "components.NotificationTypeSelector.adminissuereopenedDescription": "Être averti(e) lorsqu'un problème est ré-ouvert par d'autres utilisateurs.", - "components.NotificationTypeSelector.adminissueresolvedDescription": "Être averti(e) lorsqu'un problème est résolu par d'autres utilisateurs.", - "components.NotificationTypeSelector.issuereopenedDescription": "Envoyer des notifications lorsqu'un problème est rouvert.", - "components.NotificationTypeSelector.userissuereopenedDescription": "Être averti(e) lorsqu'un problème que vous avez signalé a été rouvert.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Les paramètres de notification Pushbullet n'ont pas été sauvegardés correctement.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Les paramètres de notification Pushbullet ont été sauvegardés correctement !", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Jeton API d'application", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Enregistrer une application à utiliser avec {applicationTitle}", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Vous devez fournir un jeton d'application valide", - "components.IssueModal.CreateIssueModal.extras": "Extras", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Les paramètres de notification Pushover n'ont pas pu être enregistrés.", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Paramètres de notification Pushover enregistrés avec succès !", - "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Créer un jeton depuis les paramètres de votre compte", - "components.ManageSlideOver.manageModalIssues": "Problèmes ouverts", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Vous devez fournir une clé d'utilisateur ou de groupe valide", - "components.NotificationTypeSelector.issuereopened": "Problème rouvert", - "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Vous devez fournir un jeton d'accès", - "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Épisode} other {Épisodes}}", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clé d'utilisateur ou de groupe", - "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Votre identifiant d'utilisateur ou de groupe à 30 caractères", - "components.RequestModal.requestmovies4k": "Demander {count} {count, plural, one {film} autre {films}} en 4K", - "components.RequestModal.selectmovies": "Sélectionner le(s) film(s)", - "components.IssueDetails.commentplaceholder": "Ajouter un commentaire…", - "components.MovieDetails.productioncountries": "Pays de production", - "components.Settings.RadarrModal.announced": "Annoncé", - "components.RequestModal.approve": "Valider la demande", - "components.RequestModal.requestseasons4k": "Demander {seasonCount} {seasonCount, plural, one {saison} other {saisons}} en 4K", - "components.RequestModal.requestmovies": "Demander {count} {count, plural, one {film} other {films}}", - "components.RequestModal.requestApproved": "Demande pour {title} validée !", - "components.Settings.RadarrModal.inCinemas": "Au cinéma", - "components.Settings.RadarrModal.released": "Disponible", - "components.TvDetails.productioncountries": "Pays de production", - "components.Settings.Notifications.NotificationsGotify.agentenabled": "Activer l'agent", - "components.Settings.Notifications.NotificationsGotify.gotifysettingsfailed": "Les paramètres de notification Gotify n'ont pas pu être enregistrés.", - "components.Settings.Notifications.NotificationsGotify.gotifysettingssaved": "Paramètres de notification de Gotify sauvegardés avec succès !", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSending": "Envoi de la notification test Gotify…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestSuccess": "Notification test Gotify envoyée !", - "components.Settings.Notifications.NotificationsGotify.token": "Jeton d'application", - "components.Settings.Notifications.NotificationsGotify.url": "URL du serveur", - "components.Settings.Notifications.NotificationsGotify.validationTypes": "Vous devez sélectionner au moins un type de notification", - "components.Settings.Notifications.NotificationsGotify.validationUrlRequired": "Vous devez fournir une URL valide", - "components.Settings.Notifications.enableMentions": "Activer les mentions", - "i18n.import": "Importer", - "i18n.importing": "Importation…", - "components.Settings.Notifications.NotificationsGotify.toastGotifyTestFailed": "L'envoi de la notification test Gotify a échoué.", - "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Vous devez fournir un jeton d'application", - "components.Settings.Notifications.NotificationsGotify.validationUrlTrailingSlash": "L'URL ne doit pas se terminer par un slash", - "components.ManageSlideOver.manageModalAdvanced": "Avancé", - "components.ManageSlideOver.manageModalMedia4k": "Média(s) 4K", - "components.ManageSlideOver.markallseasons4kavailable": "Marquer toutes les saisons comme disponibles en 4K", - "components.ManageSlideOver.playedby": "Joué par", - "components.Settings.validationUrlTrailingSlash": "L'URL ne doit pas ce terminer par un slash", - "components.Settings.externalUrl": "URL externe", - "components.Settings.tautulliApiKey": "Clé API", - "components.Settings.tautulliSettings": "Paramètres Tautulli", - "components.Settings.toastTautulliSettingsFailure": "Quelque chose c'est mal passé quand les paramètres Tautulli on été enregistrés.", - "components.Settings.toastTautulliSettingsSuccess": "Les paramètres pour Tautulli on bien été sauvegardés !", - "components.Settings.urlBase": "URL de base", - "components.Settings.validationApiKey": "Vous devez fournir une clef API", - "components.Settings.validationUrl": "Vous devez fournir une URL valide", - "components.Settings.validationUrlBaseLeadingSlash": "L'URL de base doit avoir un slash", - "components.UserProfile.recentlywatched": "Vu récemment", - "components.ManageSlideOver.opentautulli": "Ouvrir dans Tautulli", - "components.ManageSlideOver.pastdays": "{days, number} derniers jours", - "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {lecture} other {lectures}}", - "components.Settings.Notifications.NotificationsPushbullet.channelTag": "Étiquette de canal", - "components.ManageSlideOver.alltime": "Tout le temps", - "components.ManageSlideOver.manageModalMedia": "Média(s)", - "components.ManageSlideOver.markallseasonsavailable": "Marquer toutes les saisons comme disponibles", - "components.Settings.validationUrlBaseTrailingSlash": "L'URL de base ne doit pas ce terminer par un slash", - "components.Settings.tautulliSettingsDescription": "Configuration optionnelle pour votre serveur Tautulli. Jellyseerr va récupérer l'historique de visionnage de votre Plex depuis Tautulli.", - "components.UserList.newplexsigninenabled": "L'option Autoriser nouvelle connexion Plex est actuellement activée. Les utilisateurs Plex disposant d'un accès à la librairie n'ont pas besoin d'être importés pour pouvoir ce connecter.", - "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "ID utilisateur Discord", - "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Le numéro d'identification à plusieurs chiffres est associé avec votre compte Discord", - "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Vous devez fournir un ID utilisateur Discord valide", - "components.Settings.SettingsAbout.appDataPath": "Répertoire de données", - "components.MovieDetails.digitalrelease": "Sortie numérique", - "components.MovieDetails.physicalrelease": "Sortie physique", - "components.PermissionEdit.autorequest": "Demande automatique", - "components.Discover.DiscoverWatchlist.discoverwatchlist": "Ta Plex Watchlist", - "components.Discover.plexwatchlist": "Ta Plex Watchlist", - "components.MovieDetails.theatricalrelease": "Sortie en salles", - "components.StatusChecker.reloadApp": "Recharger {applicationTitle}", - "components.PermissionEdit.viewrecent": "Voir les ajouts récents", - "components.PermissionEdit.viewrecentDescription": "Autorise à voir la liste des médias ajoutés récemment.", - "i18n.restartRequired": "Redémarrage nécessaire", - "components.RequestCard.tmdbid": "TMDB ID", - "components.RequestCard.tvdbid": "TheTVDB ID", - "components.RequestList.RequestItem.tmdbid": "TMDB ID", - "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", - "components.NotificationTypeSelector.mediaautorequested": "Demande soumise automatiquement", - "components.PermissionEdit.autorequestMoviesDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", - "components.PermissionEdit.autorequestSeriesDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", + "components.StatusBadge.status4k": "{status} en 4K", + "components.StatusChecker.appUpdated": "{applicationTitle} mis à jour", "components.StatusChecker.appUpdatedDescription": "Veuillez cliquer sur le bouton ci-dessous pour recharger l'application.", + "components.StatusChecker.reloadApp": "Recharger {applicationTitle}", + "components.StatusChecker.restartRequired": "Redémarrage du serveur requis", "components.StatusChecker.restartRequiredDescription": "Veuillez redémarrer le serveur pour appliquer les paramètres mis à jour.", "components.TitleCard.cleardata": "Effacer les données", "components.TitleCard.mediaerror": "{mediaType} non trouvé", "components.TitleCard.tmdbid": "TMDB ID", "components.TitleCard.tvdbid": "TheTVDB ID", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Demander automatiquement les films", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Demander automatiquement les Séries", - "components.PermissionEdit.autorequestDescription": "Autorise l'envoi de demande automatique pour les médias non-4K via la Plex Watchlist.", - "components.PermissionEdit.autorequestMovies": "Demander automatiquement les Films", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Demande automatiquement les séries de ta Plex Watchlist", - "components.PermissionEdit.autorequestSeries": "Demander automatiquement les Séries", - "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Synchronisation de la Plex Watchlist", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Demande automatiquement les films sur ta Plex Watchlist", - "components.NotificationTypeSelector.mediaautorequestedDescription": "Recevez une notification lorsque de nouvelles demandes de médias sont automatiquement soumises pour des éléments de votre Plex Watchlist.", - "components.StatusChecker.restartRequired": "Redémarrage du serveur requis", - "components.StatusChecker.appUpdated": "{applicationTitle} mis à jour", - "components.Settings.SettingsLogs.viewdetails": "Voir les détails", - "components.Settings.advancedTooltip": "Une configuration incorrecte de ce paramètre peut entraîner un dysfonctionnement", - "components.Settings.experimentalTooltip": "L'activation de ce paramètre peut entraîner un comportement inattendu de l'application", - "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", - "components.PermissionEdit.viewwatchlists": "Voir Plex Watchlists", - "components.TvDetails.reportissue": "Signaler un problème", - "components.AirDateBadge.airedrelative": "Diffusé {relativeTime}", - "components.AirDateBadge.airsrelative": "Diffusion {relativeTime}", - "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Demandes de films", - "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Demandes de séries", - "components.Layout.UserDropdown.requests": "Demandes", - "components.MovieDetails.managemovie": "Gérer le film", - "components.MovieDetails.reportissue": "Signaler un problème", - "components.TvDetails.episodeCount": "{episodeCount, plural, one {# épisode} sur {# épisodes}}", - "components.TvDetails.manageseries": "Gérer les séries", - "components.TvDetails.seasonnumber": "Saison {seasonNumber}", - "components.TvDetails.seasonstitle": "Saisons", - "components.TvDetails.status4k": "4K {status}", - "components.MovieDetails.rtaudiencescore": "Note d'audience de Rotten Tomatoes", - "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatomètre", - "components.MovieDetails.tmdbuserscore": "Note des utilisateurs TMDB", - "components.PermissionEdit.viewwatchlistsDescription": "Autorise à voir la Plex Watchlist des autres utilisateurs.", - "components.RequestBlock.approve": "Approuver la demande", - "components.RequestBlock.decline": "Refuser la demande", - "components.RequestBlock.delete": "Supprimer la demande", - "components.RequestBlock.edit": "Modifier la demande", - "components.RequestBlock.languageprofile": "Profil de langue", - "components.RequestBlock.lastmodifiedby": "Dernière modification par", - "components.RequestBlock.requestdate": "Date de la demande", - "components.RequestBlock.requestedby": "Demandé par", - "components.RequestCard.approverequest": "Approuver la demande", - "components.RequestCard.cancelrequest": "Annuler la demande", - "components.RequestCard.declinerequest": "Refuser la demande", - "components.StatusBadge.managemedia": "Gérer {mediaType}", - "components.StatusBadge.openinarr": "Ouvrir dans {arr}", - "components.StatusBadge.playonplex": "Lire sur Plex", + "components.TvDetails.Season.noepisodes": "Liste des épisodes non disponible..", "components.TvDetails.Season.somethingwentwrong": "Une erreur s'est produite lors de la récupération des données de la saison.", + "components.TvDetails.TvCast.fullseriescast": "Casting complet de la série", + "components.TvDetails.TvCrew.fullseriescrew": "Équipe complète de la série", + "components.TvDetails.anime": "Animé", + "components.TvDetails.cast": "Casting", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# épisode} sur {# épisodes}}", + "components.TvDetails.episodeRuntime": "Durée d'un épisode", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} minutes", + "components.TvDetails.firstAirDate": "Date de première diffusion", + "components.TvDetails.manageseries": "Gérer les séries", + "components.TvDetails.network": "{networkCount, plural, one {Diffuseur} other {Diffuseurs}}", + "components.TvDetails.nextAirDate": "Prochaine diffusion", + "components.TvDetails.originallanguage": "Langue originale", + "components.TvDetails.originaltitle": "Titre original", + "components.TvDetails.overview": "Résumé", + "components.TvDetails.overviewunavailable": "Résumé indisponible.", + "components.TvDetails.play4konplex": "Lire en 4K sur Plex", + "components.TvDetails.playonplex": "Lire sur Plex", + "components.TvDetails.productioncountries": "Pays de production", + "components.TvDetails.recommendations": "Recommandations", + "components.TvDetails.reportissue": "Signaler un problème", "components.TvDetails.rtaudiencescore": "Note d'audience de Rotten Tomatoes", "components.TvDetails.rtcriticsscore": "Rotten Tomatoes Tomatomètre", + "components.TvDetails.seasonnumber": "Saison {seasonNumber}", + "components.TvDetails.seasons": "{seasonCount, plural, one {# Saison} other {# Saisons}}", + "components.TvDetails.seasonstitle": "Saisons", + "components.TvDetails.showtype": "Type de séries", + "components.TvDetails.similar": "Séries similaires", + "components.TvDetails.status4k": "4K {status}", + "components.TvDetails.streamingproviders": "Disponible en streaming sur", "components.TvDetails.tmdbuserscore": "Note des utilisateurs TMDB", - "components.UserProfile.plexwatchlist": "Plex Watchlist", - "components.RequestCard.editrequest": "Modifier la demande", - "components.Settings.restartrequiredTooltip": "Jellyseerr doit être redémarré pour que les modifications de ce paramètre prennent effet", - "components.Settings.deleteServer": "Supprimer {serverType} serveur", - "components.RequestModal.requestcollection4ktitle": "Demander la collection en 4K", - "components.Discover.emptywatchlist": "Les médias ajoutés à ta Plex Watchlist apparaîtront ici.", - "components.RequestModal.requestcollectiontitle": "Demander la collection", + "components.TvDetails.viewfullcrew": "Voir l'équipe complète", + "components.TvDetails.watchtrailer": "Regarder la bande-annonce", + "components.UserList.accounttype": "Type de compte", + "components.UserList.admin": "Admin", + "components.UserList.autogeneratepassword": "Générer automatiquement le mot de passe", + "components.UserList.autogeneratepasswordTip": "Envoyer par email un mot de passe généré par le serveur à l’utilisateur", + "components.UserList.bulkedit": "Modification en masse", + "components.UserList.create": "Créer", + "components.UserList.created": "A rejoint", + "components.UserList.createlocaluser": "Créer un utilisateur local", + "components.UserList.creating": "Création…", + "components.UserList.deleteconfirm": "Voulez-vous vraiment supprimer cet utilisateur ? Toutes les données de demande de cet utilisateur seront supprimées de façon permanente.", + "components.UserList.deleteuser": "Supprimer l'utilisateur", + "components.UserList.displayName": "Nom affiché", + "components.UserList.edituser": "Modifier les permissions de l'utilisateur", + "components.UserList.email": "Adresse e-mail", + "components.UserList.importedfromplex": "{userCount} {userCount, plural, one {utilisateur} other {utilisateurs}} importé(s) depuis Plex avec succès !", + "components.UserList.importfrommediaserver": "Importer les utilisateurs de {mediaServerName}", + "components.UserList.importfromplex": "Importer les utilisateurs de Plex", + "components.UserList.importfromplexerror": "Une erreur s'est produite durant l'importation des utilisateurs de Plex.", + "components.UserList.localLoginDisabled": "Le paramètre Activer la connexion locale est actuellement désactivé.", + "components.UserList.localuser": "Utilisateur local", + "components.UserList.newplexsigninenabled": "L'option Autoriser nouvelle connexion Plex est actuellement activée. Les utilisateurs Plex disposant d'un accès à la librairie n'ont pas besoin d'être importés pour pouvoir ce connecter.", + "components.UserList.nouserstoimport": "Aucun nouvel utilisateur de Plex à importer.", + "components.UserList.owner": "Propriétaire", + "components.UserList.password": "Mot de passe", + "components.UserList.passwordinfodescription": "Configurez l'URL de l'application ainsi que les notifications par e-mail pour permettre la génération automatique de mots de passe.", + "components.UserList.plexuser": "Utilisateur Plex", + "components.UserList.role": "Rôle", + "components.UserList.sortCreated": "Date d'inscription", + "components.UserList.sortDisplayName": "Nom d'Utilisateur affiché", + "components.UserList.sortRequests": "Nombre de demandes", + "components.UserList.totalrequests": "Demandes", + "components.UserList.user": "Utilisateur", + "components.UserList.usercreatedfailed": "Une erreur s'est produite lors de la création de l'utilisateur.", + "components.UserList.usercreatedfailedexisting": "L'adresse électronique fournie est déjà utilisée par un autre utilisateur.", + "components.UserList.usercreatedsuccess": "L'utilisateur a bien été créé !", + "components.UserList.userdeleted": "Utilisateur supprimé avec succès !", + "components.UserList.userdeleteerror": "Une erreur s'est produite lors de la suppression de l'utilisateur.", + "components.UserList.userfail": "Un problème est survenu lors de l'enregistrement des permissions de l'utilisateur.", + "components.UserList.userlist": "Liste des utilisateurs", + "components.UserList.users": "Utilisateurs", + "components.UserList.userssaved": "Les permissions d'utilisateur ont été enregistrées avec succès !", + "components.UserList.validationEmail": "Vous devez fournir un e-mail valide", + "components.UserList.validationpasswordminchars": "Le mot de passe est trop court ; il doit contenir au moins 8 caractères", + "components.UserProfile.ProfileHeader.joindate": "Membre depuis le {joindate}", + "components.UserProfile.ProfileHeader.profile": "Afficher le profil", + "components.UserProfile.ProfileHeader.settings": "Modifier les paramètres", + "components.UserProfile.ProfileHeader.userid": "ID utilisateur : {userid}", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Type de compte", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Admin", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Langue d'affichage", + "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "ID utilisateur Discord", + "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Le numéro d'identification à plusieurs chiffres est associé avec votre compte Discord", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Nom affiché", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Contourner la limite globale", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Général", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Paramètres généraux", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "Langage par défaut ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Utilisateur local", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Limite de demandes de films", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Langue à découvrir", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrer le contenu par langue d’origine", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Propriétaire", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Utilisateur Plex", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Demander automatiquement les films", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Demande automatiquement les films sur ta Plex Watchlist", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Demander automatiquement les Séries", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Demande automatiquement les séries de ta Plex Watchlist", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Région à découvrir", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrer le contenu par disponibilité régionale", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rôle", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Limite de demandes de séries", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Un problème est survenu pendant l'enregistrement des paramètres.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Les paramètres ont été enregistrés avec succès !", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Utilisateur", + "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Vous devez fournir un ID utilisateur Discord valide", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "Identifiant", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "L' IDassocié à votre compte utilisateur", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Les paramètres de notification Discord n’ont pas pu être enregistrés.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Paramètres de notification Discord enregistrés avec succès !", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "Email", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Impossible d’enregistrer les paramètres de notification par E-mail.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "Paramètres de notification par E-mail enregistrés avec succès !", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Notifications", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Paramètres de notification", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Clé Publique PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Chiffrer les emails en utilisant OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Jeton d'accès", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Créer un jeton depuis les paramètres de votre compte", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Les paramètres de notification Pushbullet n'ont pas été sauvegardés correctement.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Les paramètres de notification Pushbullet ont été sauvegardés correctement !", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Jeton API d'application", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Enregistrer une application à utiliser avec {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Clé d'utilisateur ou de groupe", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Votre identifiant d'utilisateur ou de groupe à 30 caractères", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Les paramètres de notification Pushover n'ont pas pu être enregistrés.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Paramètres de notification Pushover enregistrés avec succès !", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Envoie les messages silencieusement", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Envoyer des notifications sans son", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID de discussion", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Démarre une discussion, ajoute @get_id_bot, et utilise la commande /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Impossible d’enregistrer les paramètres de notification de Telegram.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Paramètres de notification Telegram enregistrés avec succès !", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Vous devez fournir un identifiant valide", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Vous devez fournir une clé publique PGP valide", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Vous devez fournir un jeton d'accès", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Vous devez fournir un jeton d'application valide", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Vous devez fournir une clé d'utilisateur ou de groupe valide", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Vous devez fournir un identifiant de chat valide", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Web Push", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Échec de l'enregistrement des paramètres de notification Web push.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Paramètres de notification Web Push enregistrés avec succès !", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Confirmez le mot de passe", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Mot de passe actuel", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Nouveau mot de passe", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "Ce compte utilisateur n’a actuellement pas de mot de passe. Configurez un mot de passe ci-dessous pour permettre à ce compte de se connecter en tant \"qu’utilisateur local.\"", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "Votre compte n’a actuellement pas de mot de passe. Configurez un mot de passe ci-dessous pour activer la connexion en tant qu’ \"utilisateur local\" en utilisant votre adresse e-mail.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "Vous n'avez l'autorisation de modifier le mot de passe de cet utilisateur.", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Mot de passe", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Un problème est survenu lors de l'enregistrement du mot de passe.", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Un problème est survenu lors de l'enregistrement du mot de passe. Votre mot de passe actuel a-t-il été saisi correctement ?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Mot de passe enregistré avec succès !", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Vous devez confirmer le nouveau mot de passe", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Les mots de passe doivent correspondre", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Vous devez fournir votre mot de passe actuel", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Vous devez fournir un nouveau mot de passe", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Le mot de passe est trop court, il doit contenir un minimum de 8 caractères", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Permissions", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Une erreur s'est produite lors de l'enregistrement des paramètres.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Paramètres enregistrés avec succès !", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Vous ne pouvez pas modifier vos propres permissions.", + "components.UserProfile.UserSettings.menuChangePass": "Mot de passe", + "components.UserProfile.UserSettings.menuGeneralSettings": "Général", + "components.UserProfile.UserSettings.menuNotifications": "Notifications", + "components.UserProfile.UserSettings.menuPermissions": "Permissions", + "components.UserProfile.UserSettings.unauthorizedDescription": "Vous n'avez pas l'autorisation de modifier les paramètres de cet utilisateur.", "components.UserProfile.emptywatchlist": "Les médias ajoutés à ta Plex Watchlist apparaîtront ici.", - "components.RequestModal.SearchByNameModal.nomatches": "Nous n'avons pas pu trouver de correspondance pour cette série.", - "components.RequestModal.requestmovie4ktitle": "Demander le film en 4K", - "components.RequestModal.requestmovietitle": "Demander le film", - "components.RequestModal.requestseries4ktitle": "Demander la série en 4K", - "components.RequestModal.requestseriestitle": "Demander la série" + "components.UserProfile.limit": "{remaining} sur {limit}", + "components.UserProfile.movierequests": "Demandes de films", + "components.UserProfile.pastdays": "{type} (derniers {days} jours)", + "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.UserProfile.recentlywatched": "Vu récemment", + "components.UserProfile.recentrequests": "Demandes récentes", + "components.UserProfile.requestsperdays": "{limit} restantes", + "components.UserProfile.seriesrequest": "Demandes de séries", + "components.UserProfile.totalrequests": "Total des demandes", + "components.UserProfile.unlimited": "Illimité", + "i18n.advanced": "Avancés", + "i18n.all": "Toutes", + "i18n.approve": "Valider", + "i18n.approved": "Validé", + "i18n.areyousure": "Êtes-vous sûr ?", + "i18n.available": "Disponible", + "i18n.back": "Retour", + "i18n.cancel": "Annuler", + "i18n.canceling": "Annulation…", + "i18n.close": "Fermer", + "i18n.decline": "Refuser", + "i18n.declined": "Refusé", + "i18n.delete": "Supprimer", + "i18n.deleting": "Suppression…", + "i18n.delimitedlist": "{a}, {b}", + "i18n.edit": "Modifier", + "i18n.experimental": "Expérimentale", + "i18n.failed": "Échec", + "i18n.import": "Importer", + "i18n.importing": "Importation…", + "i18n.loading": "Chargement…", + "i18n.movie": "Film", + "i18n.movies": "Films", + "i18n.next": "Suivant", + "i18n.noresults": "Aucun résultat.", + "i18n.notrequested": "Non demandé", + "i18n.open": "Ouvert", + "i18n.partiallyavailable": "Partiellement disponible", + "i18n.pending": "En attente", + "i18n.previous": "Précédent", + "i18n.processing": "En traitement", + "i18n.request": "Demander", + "i18n.request4k": "Demander en 4K", + "i18n.requested": "Demandé", + "i18n.requesting": "Demande en cours…", + "i18n.resolved": "Résolu", + "i18n.restartRequired": "Redémarrage nécessaire", + "i18n.resultsperpage": "Afficher {pageSize} résultats par page", + "i18n.retry": "Réessayer", + "i18n.retrying": "Nouvelle tentative…", + "i18n.save": "Sauvegarder les changements", + "i18n.saving": "Sauvegarde en cours…", + "i18n.settings": "Paramètres", + "i18n.showingresults": "Affichage de {from} à {to} pour {total} résultats", + "i18n.status": "Statut", + "i18n.test": "Tester", + "i18n.testing": "Test en cours…", + "i18n.tvshow": "Séries", + "i18n.tvshows": "Séries", + "i18n.unavailable": "Indisponible", + "i18n.usersettings": "Paramètres utilisateur", + "i18n.view": "Voir", + "pages.errormessagewithcode": "{statusCode} - {error}", + "pages.internalservererror": "Erreur interne du serveur", + "pages.oops": "Oups", + "pages.pagenotfound": "La page n'a pas été trouvée", + "pages.returnHome": "Retourner à l'accueil", + "pages.serviceunavailable": "Service indisponible", + "pages.somethingwentwrong": "Un problème est survenu" } diff --git a/src/i18n/locale/he.json b/src/i18n/locale/he.json index 4f1942b42..b8c502a96 100644 --- a/src/i18n/locale/he.json +++ b/src/i18n/locale/he.json @@ -1,5 +1,139 @@ { - "components.ManageSlideOver.alltime": "על הזמן", + "components.ManageSlideOver.alltime": "כל הזמנים", "components.Login.validationemailrequired": "חובה לספק כתובת מייל חוקית", - "components.NotificationTypeSelector.userissuereopenedDescription": "קבל התראה כשבעיות שפתחת נפתחות מחדש." + "components.NotificationTypeSelector.userissuereopenedDescription": "קבל התראה כשבעיות שפתחת נפתחות מחדש.", + "components.AppDataWarning.dockerVolumeMissingDescription": "ה {appDataPath} אחסון לא הוגדר כראוי. כל המידע יוסר כאשר הקונטיינר יעצור או יותחל מחדש.", + "components.CollectionDetails.overview": "תצוגה כללית", + "components.CollectionDetails.numberofmovies": "{כמות} סרטים", + "components.CollectionDetails.requestcollection": "אוסף בקשות", + "components.CollectionDetails.requestcollection4k": "אוסף בקשות ב4K", + "components.Discover.DiscoverMovieGenre.genreMovies": "סרטי {genre}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} סרטים", + "components.Discover.DiscoverNetwork.networkSeries": "{network} סדרות", + "components.Discover.DiscoverStudio.studioMovies": "{studio} סרטים", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} סדרות", + "components.Discover.DiscoverTvLanguage.languageSeries": "{language} סדרות", + "components.IssueDetails.commentplaceholder": "הוסף תגובה …", + "components.IssueDetails.comments": "תגובות", + "components.IssueDetails.deleteissue": "מחק מקרה", + "components.IssueDetails.deleteissueconfirm": "האם אתה בטוח שאתה רוצה למחוק את המקרה?", + "components.AirDateBadge.airsrelative": "ישודר בעוד {relativeTime}", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "רשימת הצפייה שלך", + "components.Discover.MovieGenreList.moviegenres": "סוגי סרטים", + "components.Discover.StudioSlider.studios": "אולפנים", + "components.Discover.TvGenreList.seriesgenres": "סוגי סדרות", + "components.Discover.TvGenreSlider.tvgenres": "סוגי סדרות", + "components.Discover.recentlyAdded": "נוספו לאחרונה", + "components.Discover.recentrequests": "בקשות אחרונות", + "components.Discover.trending": "חמים", + "components.Discover.upcoming": "סרטים שיצאו בקרוב", + "components.Discover.upcomingmovies": "סרטים שיצאו בקרוב", + "components.Discover.upcomingtv": "סדרות שיצאו בקרוב", + "components.DownloadBlock.estimatedtime": "{time} משוער", + "components.IssueDetails.IssueComment.delete": "מחיקת תגובה", + "components.IssueDetails.IssueComment.areyousuredelete": "האם תרצה למחוק את התגובה?", + "components.IssueDetails.IssueComment.edit": "לערוך תגובה", + "components.IssueDetails.IssueDescription.edit": "ערוך תיאור", + "components.IssueDetails.allepisodes": "כל הפרקים", + "components.IssueDetails.allseasons": "כל העונות", + "components.IssueDetails.closeissue": "סגור מקרה", + "components.IssueDetails.closeissueandcomment": "סגור עם תגובה", + "components.IssueDetails.episode": "פרק {episodeNumber}", + "components.IssueDetails.issuepagetitle": "מקרה", + "components.IssueDetails.playonplex": "הפעל בפלקס", + "components.IssueDetails.play4konplex": "הפעל 4K בפלקס", + "components.IssueDetails.problemepisode": "פרק מושפע", + "components.IssueDetails.toastissuedeleted": "מקרה נמחק בהצלחה!", + "components.IssueList.IssueItem.issuetype": "סוג", + "components.IssueList.IssueItem.opened": "נפתח", + "components.IssueList.IssueItem.openeduserdate": "{date} ע\"י {user}", + "components.IssueModal.issueSubtitles": "כתוביות", + "components.IssueModal.issueVideo": "וידאו", + "components.Layout.Sidebar.dashboard": "לגלות", + "components.Login.signingin": "התחברות…", + "components.Login.signinheader": "התחבר בשביל להמשיך", + "components.Login.signinwithoverseerr": "השתמש בחשבון {applicationTitle} שלך", + "components.Login.signinwithplex": "השתמש בחשבון הפלקס שלך", + "components.ManageSlideOver.downloadstatus": "הורדות", + "components.Discover.DiscoverWatchlist.watchlist": "רשימת צפייה", + "components.Discover.MovieGenreSlider.moviegenres": "סוגי סרטים", + "components.Discover.populartv": "סדרות פופולריות", + "components.IssueDetails.IssueComment.postedby": "פורסם לפני {relativeTime} ע\"י {username}", + "components.IssueDetails.IssueComment.postedbyedited": "פורסם לפני {relativeTime} ע\"י {username} (נערך)", + "components.IssueDetails.IssueDescription.description": "תיאור", + "components.IssueDetails.openedby": "#{issueId} נפתח לפני {relativeTime} ע\"י {username}", + "components.IssueDetails.openin4karr": "נפתח ב4K {arr}", + "components.IssueDetails.openinarr": "פתח ב {arr}", + "components.IssueList.IssueItem.problemepisode": "פרק מושפע", + "components.IssueList.sortAdded": "הכי עדכני", + "components.IssueList.sortModified": "עודכן לאחרונה", + "components.IssueModal.CreateIssueModal.allepisodes": "כל הפרקים", + "components.IssueModal.CreateIssueModal.providedetail": "אנא תפרט אודות המקרה שחווית.", + "components.IssueModal.CreateIssueModal.submitissue": "הגש מקרה", + "components.LanguageSelector.originalLanguageDefault": "כל השפות", + "components.Layout.Sidebar.requests": "בקשות", + "components.Layout.Sidebar.settings": "הגדרות", + "components.Layout.Sidebar.users": "משתמשים", + "components.Layout.UserDropdown.myprofile": "פרופיל", + "components.Layout.UserDropdown.settings": "הגדרות", + "components.Layout.VersionStatus.streamdevelop": "Overseerr פיתוח", + "components.AirDateBadge.airedrelative": "שודר ב-{relativeTime}", + "components.Discover.NetworkSlider.networks": "רשתות שידור", + "components.Discover.discover": "לגלות", + "components.Discover.plexwatchlist": "רשימת הצפייה שלך", + "components.Discover.popularmovies": "סרטים פופולרים", + "components.IssueDetails.IssueComment.validationComment": "אנא הכנס הודעה", + "components.IssueDetails.IssueDescription.deleteissue": "מחק מקרה", + "components.IssueDetails.issuetype": "סוג", + "components.IssueDetails.lastupdated": "עודכן לאחרונה", + "components.IssueDetails.leavecomment": "תגובה", + "components.IssueDetails.nocomments": "אין תגובות.", + "components.IssueDetails.problemseason": "עונה מושפעת", + "components.IssueDetails.reopenissue": "פתח מקרה מחדש", + "components.IssueDetails.reopenissueandcomment": "פתח מחדש עם תגובה", + "components.IssueDetails.season": "עונה {seasonNumber}", + "components.IssueDetails.toasteditdescriptionfailed": "משהו השתבש בזמן עריכת תיאור המקרה.", + "components.IssueDetails.toasteditdescriptionsuccess": "תיאור המקרה נערך בהצלחה!", + "components.IssueDetails.toastissuedeletefailed": "משהו השתבש בזמן מחיקת המקרה.", + "components.IssueDetails.toaststatusupdated": "סטאטוס המקרה עודכן בהצלחה!", + "components.IssueDetails.toaststatusupdatefailed": "משהו השתבש בזמן עדכון סטאטוס המקרה.", + "components.IssueDetails.unknownissuetype": "לא ידוע", + "components.IssueList.IssueItem.issuestatus": "סטאטוס", + "components.IssueList.IssueItem.unknownissuetype": "לא ידוע", + "components.IssueList.IssueItem.viewissue": "צפה במקרה", + "components.IssueList.issues": "מקרים", + "components.IssueList.showallissues": "הצג את כל המקרים", + "components.IssueModal.CreateIssueModal.allseasons": "כל העונות", + "components.IssueModal.CreateIssueModal.episode": "פרק {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "תוספות", + "components.IssueModal.CreateIssueModal.problemepisode": "פרק מושפע", + "components.IssueModal.CreateIssueModal.season": "עונה {seasonNumber}", + "components.IssueModal.CreateIssueModal.problemseason": "עונה מושפעת", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "משהו השתבש בזמן הגשת מקרה.", + "components.IssueModal.CreateIssueModal.reportissue": "דווח על מקרה", + "components.IssueModal.CreateIssueModal.whatswrong": "מה השתבש?", + "components.IssueModal.issueAudio": "שמע/אודיו", + "components.IssueModal.issueOther": "אחר", + "components.IssueModal.CreateIssueModal.toastviewissue": "צפה במקרה", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "אנא כתוב תיאור", + "components.Layout.LanguagePicker.displaylanguage": "שפת תצוגה", + "components.Layout.SearchInput.searchPlaceholder": "חיפוש סרטים וסדרות", + "components.LanguageSelector.languageServerDefault": "ברירת מחדל({language})", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "בקשות סרטים", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "בקשות סדרות", + "components.Login.forgotpassword": "שכחת סיסמה?", + "components.Layout.VersionStatus.streamstable": "Overseerr יציבה", + "components.Login.email": "כתובת אימייל", + "components.ManageSlideOver.manageModalAdvanced": "מתקדם", + "components.ManageSlideOver.manageModalClearMedia": "מחק מידע", + "components.Discover.emptywatchlist": "מדיה נוספה לתוך רשימת צפייה תוצג פה.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "דווח מקרה של {title} הוגש בהצלחה!", + "components.Layout.Sidebar.issues": "מקרים", + "components.Layout.UserDropdown.requests": "בקשות", + "components.Layout.UserDropdown.signout": "התנתק", + "components.Layout.VersionStatus.outofdate": "לא מעודכן", + "components.Login.loginerror": "משהו השתבש בזמן ההתחברות.", + "components.Login.password": "סיסמה", + "components.Login.signin": "התחברות", + "components.Login.validationpasswordrequired": "חובה לכתוב סיסמה" } diff --git a/src/i18n/locale/hi.json b/src/i18n/locale/hi.json index 0967ef424..acaeb1705 100644 --- a/src/i18n/locale/hi.json +++ b/src/i18n/locale/hi.json @@ -1 +1,147 @@ -{} +{ + "components.CollectionDetails.numberofmovies": "{count} फिल्में", + "components.CollectionDetails.requestcollection": "संग्रह अनुरोध", + "components.Discover.DiscoverMovieLanguage.languageMovies": "{language} फिल्में", + "components.CollectionDetails.overview": "अवलोकन", + "components.CollectionDetails.requestcollection4k": "4K में संग्रह अनुरोध", + "components.AppDataWarning.dockerVolumeMissingDescription": "{appDataPath} वॉल्यूम माउंट ठीक से कॉन्फ़िगर नहीं किया गया था। कंटेनर के बंद होने या फिर से चालू होने पर सारा डेटा साफ़ हो जाएगा।", + "components.Discover.DiscoverMovieGenre.genreMovies": "{genre} फिल्में", + "components.AirDateBadge.airedrelative": "प्रसारित {relativeTime}", + "components.AirDateBadge.airsrelative": "प्रसारण {relativeTime}", + "components.Discover.CreateSlider.addSlider": "स्लाइडर जोड़ें", + "components.Discover.CreateSlider.addcustomslider": "कस्टम स्लाइडर बनाएँ", + "components.Discover.CreateSlider.addfail": "नया स्लाइडर बनाने में विफल.", + "components.Discover.CreateSlider.addsuccess": "नया स्लाइडर बनाया गया और खोज अनुकूलन सेटिंग्स को सहेजा गया.", + "components.Discover.CreateSlider.editSlider": "स्लाइडर संपादित करें", + "components.Discover.CreateSlider.editfail": "स्लाइडर संपादित करने में विफल।", + "components.Discover.CreateSlider.editsuccess": "संपादित स्लाइडर और सहेजी गई खोज अनुकूलन सेटिंग्स।", + "components.Discover.CreateSlider.nooptions": "कोई परिणाम नहीं।", + "components.Discover.CreateSlider.needresults": "आपके पास कम से कम 1 परिणाम होना चाहिए।", + "components.Discover.CreateSlider.providetmdbgenreid": "एक TMDB शैली आईडी प्रदान करें", + "components.Discover.CreateSlider.providetmdbkeywordid": "एक TMDB कीवर्ड आईडी प्रदान करें", + "components.Discover.CreateSlider.providetmdbnetwork": "टीएमडीबी नेटवर्क आईडी प्रदान करें", + "components.Discover.CreateSlider.providetmdbstudio": "TMDB स्टूडियो आईडी दें", + "components.Discover.CreateSlider.providetmdbsearch": "एक खोज क्वेरी प्रदान करें", + "components.Discover.CreateSlider.searchGenres": "खोज शैलियां…", + "components.Discover.CreateSlider.searchKeywords": "मुख्य शब्द खोजे…", + "components.Discover.CreateSlider.searchStudios": "स्टूडियो खोजें…", + "components.Discover.CreateSlider.validationDatarequired": "आपको एक डेटा मान प्रदान करना होगा।", + "components.Discover.CreateSlider.validationTitlerequired": "आपको एक शीर्षक प्रदान करना होगा।", + "components.Discover.DiscoverMovieKeyword.keywordMovies": "{keywordTitle} फिल्में", + "pages.somethingwentwrong": "कुछ गलत हो गया", + "components.Discover.createnewslider": "नया स्लाइडर बनाएं", + "components.Discover.CreateSlider.slidernameplaceholder": "स्लाइडर का नाम", + "components.Discover.CreateSlider.starttyping": "खोजने के लिए लिखना प्रारंभ कर रहा है.", + "components.UserList.importfromplex": "Plex उपयोगकर्ता आयात करें", + "components.UserList.userdeleted": "उपयोगकर्ता सफलतापूर्वक हटा दिया गया!", + "components.UserList.userdeleteerror": "उपयोगकर्ता को हटाते समय कुछ गलत हुआ.", + "components.UserList.sortDisplayName": "प्रदर्शित होने वाला नाम", + "components.UserList.sortRequests": "अनुरोध संख्या", + "components.UserList.user": "उपयोगकर्ता", + "components.UserList.password": "पासवर्ड", + "components.UserList.plexuser": "Plex उपयोगकर्ता", + "components.UserList.email": "मेल पता", + "components.UserList.edituser": "उपयोगकर्ता अनुमतियां संपादित करें", + "components.UserList.importfromplexerror": "Plex उपयोगकर्ताओं को आयात करते समय कुछ गलत हुआ.", + "components.UserList.role": "भूमिका", + "components.UserList.userlist": "उपयोगकर्ता सूची", + "components.UserList.users": "उपयोगकर्ता", + "components.UserList.userssaved": "उपयोगकर्ता अनुमतियां सफलतापूर्वक सहेजी गईं!", + "components.UserList.validationEmail": "आपको एक मान्य ईमेल पता प्रदान करना होगा", + "components.UserProfile.ProfileHeader.joindate": "शामिल हुए {joindate}", + "components.UserList.passwordinfodescription": "एप्लिकेशन URL कॉन्फ़िगर करें और स्वचालित पासवर्ड जनरेशन की अनुमति देने के लिए ईमेल सूचनाएं सक्षम करें।", + "components.UserList.nouserstoimport": "आयात करने के लिए कोई Plex उपयोगकर्ता नहीं हैं।", + "components.UserList.totalrequests": "अनुरोध", + "components.UserList.usercreatedfailed": "उपयोगकर्ता बनाते समय कुछ गड़बड़ी हुई.", + "components.UserList.sortCreated": "संलग्न तिथि", + "components.UserList.validationpasswordminchars": "पारण शब्द बहुत छोटा है; कम से कम 8 वर्ण होने चाहिए", + "components.UserList.localuser": "स्थानीय उपयोगकर्ता", + "components.UserList.owner": "स्वामी", + "components.UserList.usercreatedfailedexisting": "प्रदान किया गया ईमेल पता पहले से ही किसी अन्य उपयोगकर्ता द्वारा उपयोग में है।", + "components.UserList.usercreatedsuccess": "उपयोगकर्ता सफलतापूर्वक बनाया गया!", + "components.UserList.userfail": "उपयोगकर्ता अनुमतियां सहेजते समय कोई गड़बड़ी हुई.", + "components.UserList.displayName": "प्रदर्शित होने वाला नाम", + "components.UserProfile.ProfileHeader.profile": "प्रोफ़ाइल देखें", + "components.UserProfile.ProfileHeader.settings": "सेटिंग्स बदलें", + "components.Discover.DiscoverTvGenre.genreSeries": "{genre} शृंखला", + "components.Discover.DiscoverTvLanguage.languageSeries": "{language} शृंखला", + "components.Discover.MovieGenreList.moviegenres": "फिल्म शैली", + "components.Discover.DiscoverNetwork.networkSeries": "{network} शृंखला", + "components.Discover.DiscoverStudio.studioMovies": "{studio} फिल्में", + "components.Discover.DiscoverSliderEdit.deletefail": "स्लाइडर को हटाने में विफल रहा।.", + "components.Discover.DiscoverSliderEdit.deletesuccess": "स्लाइडर सफलतापूर्वक हटाया गया.", + "components.Discover.DiscoverTvKeyword.keywordSeries": "{keywordTitle} शृंखला", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "आपकी प्लेक्स वॉचलिस्ट", + "components.Discover.NetworkSlider.networks": "नेटवर्क", + "components.Discover.DiscoverMovies.sortPopularityDesc": "घटती लोकप्रियता", + "components.Discover.DiscoverMovies.sortReleaseDateAsc": "बढ़ती रिलीज की तारीख", + "components.Discover.DiscoverMovies.sortTmdbRatingAsc": "TMDB रेटिंग आरोही", + "components.Discover.DiscoverSliderEdit.enable": "दृश्यता टॉगल करें", + "components.Discover.DiscoverTv.discovertv": "शृंखला", + "components.Discover.DiscoverTv.sortFirstAirDateAsc": "पहली एयर डेट आरोही", + "components.Discover.DiscoverTv.sortFirstAirDateDesc": "पहली एयर डेट अवरोही", + "components.Discover.DiscoverTv.sortPopularityAsc": "बढ़ती लोकप्रियता", + "components.Discover.DiscoverTv.sortTitleAsc": "शीर्षक (क-ख-घ) आरोही", + "components.Discover.DiscoverTv.sortTitleDesc": "शीर्षक (क-ख-घ) अवरोही", + "components.Discover.DiscoverTv.sortTmdbRatingAsc": "TMDB रेटिंग आरोही", + "components.Discover.DiscoverTv.sortTmdbRatingDesc": "TMDB रेटिंग अवरोही", + "components.Discover.DiscoverWatchlist.watchlist": "प्लेक्स वॉचलिस्ट", + "components.Discover.FilterSlideover.clearfilters": "सक्रिय फिल्टर साफ़ करें", + "components.Discover.FilterSlideover.filters": "फ़िल्टर", + "components.Discover.FilterSlideover.firstAirDate": "पहला एयर डेट", + "components.Discover.FilterSlideover.genres": "शैलियां", + "components.Discover.FilterSlideover.originalLanguage": "मूल भाषा", + "components.Discover.FilterSlideover.ratingText": "{minValue} और {maxValue} के बीच रेटिंग्स", + "components.Discover.FilterSlideover.runtime": "रनटाइम", + "components.Discover.FilterSlideover.studio": "स्टुडियो", + "components.Discover.FilterSlideover.to": "तक", + "pages.serviceunavailable": "सेवा अनुपलब्ध है", + "components.Discover.DiscoverMovies.sortPopularityAsc": "बढ़ती लोकप्रियता", + "components.Discover.DiscoverMovies.sortTitleDesc": "शीर्षक (क-ख-घ) अवरोही", + "components.Discover.DiscoverMovies.discovermovies": "फिल्में", + "components.Discover.DiscoverMovies.sortTmdbRatingDesc": "TMDB रेटिंग अवरोही", + "components.Discover.DiscoverMovies.sortReleaseDateDesc": "घटती रिलीज की तारीख", + "components.Discover.DiscoverMovies.sortTitleAsc": "शीर्षक (क-ख-घ) आरोही", + "components.Discover.DiscoverSliderEdit.remove": "निकालें", + "components.Discover.DiscoverTv.sortPopularityDesc": "घटती लोकप्रियता", + "components.Discover.FilterSlideover.releaseDate": "रिलीज़ की तारीख", + "components.Discover.FilterSlideover.runtimeText": "{minValue}-{maxValue} मिनट का रनटाइम", + "components.Discover.FilterSlideover.from": "से", + "components.Discover.FilterSlideover.streamingservices": "स्ट्रीमिंग सेवाएं", + "components.Discover.FilterSlideover.tmdbuserscore": "TMDB उपयोगकर्ता स्कोर", + "components.Discover.FilterSlideover.keywords": "खोजशब्दों", + "components.Discover.MovieGenreSlider.moviegenres": "फिल्म शैली", + "components.Discover.DiscoverMovies.activefilters": "{गिनती, बहुवचन, एक {# सक्रिय फ़िल्टर} अन्य {# सक्रिय फ़िल्टर}}", + "components.Discover.DiscoverTv.activefilters": "{गिनती, बहुवचन, एक {# सक्रिय फ़िल्टर} अन्य {# सक्रिय फ़िल्टर}}", + "components.Discover.FilterSlideover.activefilters": "{गिनती, बहुवचन, एक {# सक्रिय फ़िल्टर} अन्य {# सक्रिय फ़िल्टर}}", + "components.Discover.networks": "नेटवर्क", + "components.Discover.plexwatchlist": "आपकी प्लेक्स वॉचलिस्ट", + "components.Discover.popularmovies": "लोकप्रिय फिल्में", + "components.Discover.studios": "स्टूडियो", + "components.Discover.tmdbnetwork": "TMDB नेटवर्क", + "components.Discover.tmdbsearch": "TMDB खोज", + "components.Discover.recentlyAdded": "हाल ही में जोड़ा गया", + "components.Discover.recentrequests": "हाल के अनुरोध", + "components.Discover.trending": "ट्रेंडिंग", + "components.Discover.TvGenreList.seriesgenres": "श्रृंखला शैलियों", + "components.Discover.TvGenreSlider.tvgenres": "श्रृंखला शैलियों", + "components.Discover.RecentlyAddedSlider.recentlyAdded": "हाल ही में जोड़ा गया", + "components.Discover.StudioSlider.studios": "स्टूडियो", + "components.Discover.customizediscover": "डिस्कवर को अनुकूलित करें", + "components.Discover.emptywatchlist": "आपकी Plex वॉचलिस्ट में जोड़ा गया मीडिया यहां दिखाई देगा.", + "components.Discover.populartv": "लोकप्रिय श्रृंखला", + "components.Discover.resetfailed": "खोज अनुकूलन सेटिंग्स को रीसेट करने में कुछ गलत हो गया।", + "components.Discover.resettodefault": "डिफ़ॉल्ट पर रीसेट करें", + "components.Discover.stopediting": "संपादन बंद करो", + "components.Discover.tmdbmoviegenre": "टीएमडीबी मूवी शैली", + "components.Discover.tmdbmoviekeyword": "TMDB मूवी कीवर्ड", + "components.Discover.tmdbstudio": "TMDB स्टूडियो", + "components.Discover.tmdbtvkeyword": "TMDB सीरीज कीवर्ड", + "components.Discover.tvgenres": "श्रृंखला शैलियों", + "components.Discover.moviegenres": "फिल्म शैली", + "components.Discover.PlexWatchlistSlider.plexwatchlist": "आपकी प्लेक्स वॉचलिस्ट", + "components.Discover.resetwarning": "सभी स्लाइडर्स को डिफ़ॉल्ट रूप से रीसेट करें। यह किसी भी कस्टम स्लाइडर को भी हटा देगा!", + "components.Discover.tmdbtvgenre": "TMDB श्रृंखला शैली", + "components.Discover.PlexWatchlistSlider.emptywatchlist": "आपकी Plex वॉचलिस्ट में जोड़ा गया मीडिया यहां दिखाई देगा.", + "components.Discover.discover": "खोज" +} diff --git a/src/i18n/locale/hr.json b/src/i18n/locale/hr.json index 27b204380..ae6e1fd1f 100644 --- a/src/i18n/locale/hr.json +++ b/src/i18n/locale/hr.json @@ -51,5 +51,214 @@ "components.IssueDetails.IssueComment.postedbyedited": "Objavljeno u {relativeTime} od korisnika {username} (Uređeno)", "components.IssueDetails.allseasons": "Sve Sezone", "components.IssueDetails.episode": "Epizode {episodeNumber}", - "components.IssueDetails.deleteissueconfirm": "Jeste li sigurni da želite izbrisati ovaj problem?" + "components.IssueDetails.deleteissueconfirm": "Jeste li sigurni da želite izbrisati ovaj problem?", + "components.IssueDetails.lastupdated": "Zadnje ažurirano", + "components.IssueDetails.leavecomment": "Komentar", + "components.IssueDetails.nocomments": "Bez komentara.", + "components.IssueDetails.openedby": "#{issueId} otvoren u {relativeTime} od korisnka {username}", + "components.IssueDetails.openin4karr": "Otvoren u 4K {arr}", + "components.IssueDetails.openinarr": "Otvoren u {arr}", + "components.IssueDetails.toasteditdescriptionfailed": "Nešto nije u redu prilikom uređivanja opisa problema.", + "components.IssueModal.CreateIssueModal.allepisodes": "Sve epizode", + "components.IssueDetails.toastissuedeleted": "Problem je uspješno izbrisan!", + "components.IssueDetails.unknownissuetype": "Nepoznato", + "components.IssueList.issues": "Problem", + "components.IssueList.IssueItem.openeduserdate": "{date} od korinika {user}", + "components.IssueModal.CreateIssueModal.allseasons": "Sve sezone", + "components.IssueModal.issueOther": "Ostalo", + "components.IssueModal.issueAudio": "Zvuk", + "components.IssueModal.issueSubtitles": "Podnaslov", + "components.IssueModal.issueVideo": "Video", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.UserDropdown.requests": "Zahtjevi", + "components.Layout.VersionStatus.streamstable": "Overseerr Stabilan", + "components.Login.password": "Zaporka", + "components.ManageSlideOver.openarr4k": "Otvori 4K u {arr}-u", + "components.ManageSlideOver.pastdays": "Proteklih {days, number} dana", + "components.Login.signinwithplex": "Koristite svoj Plex račun", + "components.ManageSlideOver.movie": "film", + "components.Login.validationemailrequired": "Morate unijeti valjanu adresu e-pošte", + "components.ManageSlideOver.manageModalRequests": "Zahtjevi", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Ovo će nepovratno ukloniti sve podatke za ovaj {mediaType}, uključujući sve zahtjeve. Ako ova stavka postoji u vašoj {mediaServerName} biblioteci, informacije o medijima ponovno će se stvoriti tijekom sljedećeg skeniranja.", + "components.ManageSlideOver.manageModalMedia4k": "4K Mediji", + "components.ManageSlideOver.manageModalNoRequests": "Nema zahtjeva.", + "components.ManageSlideOver.manageModalMedia": "Mediji", + "components.ManageSlideOver.manageModalTitle": "Upravljanje {mediaType}", + "components.ManageSlideOver.mark4kavailable": "Označi kao dostupno u 4K", + "components.MovieDetails.originaltitle": "Izvorni naslov", + "components.MovieDetails.overview": "Pregled", + "components.ManageSlideOver.openarr": "Otvori u {arr}-u", + "components.MovieDetails.cast": "Postava", + "components.MovieDetails.budget": "Proračun", + "components.ManageSlideOver.opentautulli": "Otvori u Tautulli-u", + "components.MediaSlider.ShowMoreCard.seemore": "Vidi više", + "components.MovieDetails.markavailable": "Označi kao dostupno", + "components.ManageSlideOver.tvshow": "serije", + "components.MovieDetails.productioncountries": "{countryCount, plural, one {Država produkcije} other {Države produkcije}}", + "components.MovieDetails.managemovie": "Upravljanje filmom", + "components.MovieDetails.playonplex": "Reproduciraj na Plex-u", + "components.MovieDetails.overviewunavailable": "Pregled nedostupan.", + "components.MovieDetails.reportissue": "Prijavi problem", + "components.MovieDetails.revenue": "Prihod", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes ocjena publike", + "components.MovieDetails.showless": "Prikaži manje", + "components.MovieDetails.showmore": "Prikaži više", + "components.MovieDetails.similar": "Slični naslovi", + "components.MovieDetails.streamingproviders": "Trenutačno se prikacuje na", + "components.NotificationTypeSelector.issuecommentDescription": "Pošaljite obavijest kada problemi dobiju nove komentare.", + "components.NotificationTypeSelector.issueresolved": "Problem riješen", + "components.NotificationTypeSelector.issuereopened": "Problem ponovno otvoren", + "components.NotificationTypeSelector.issueresolvedDescription": "Pošalji obavijest kada se problem riješi.", + "components.NotificationTypeSelector.issuereopenedDescription": "Pošalji obavijest kada se problem ponovno otvori.", + "components.NotificationTypeSelector.mediaAutoApproved": "Automatsko odobravanje zahtjeva", + "components.IssueDetails.issuepagetitle": "Problem", + "components.IssueDetails.issuetype": "Tip", + "components.IssueDetails.play4konplex": "Reproduciraj u 4K na Plex-u", + "components.IssueDetails.playonplex": "Reproduciraj na Plex-u", + "components.IssueDetails.problemseason": "Zahvaćene Sezone", + "components.IssueDetails.problemepisode": "Zahvaćene Epizode", + "components.IssueDetails.reopenissue": "Ponovno otvorite problem", + "components.IssueDetails.reopenissueandcomment": "Ponovno otvori s komentarom", + "components.IssueDetails.season": "Sezona {seasonNumber}", + "components.IssueDetails.toasteditdescriptionsuccess": "Opis problema je uspješno uređen!", + "components.IssueDetails.toastissuedeletefailed": "Nešto nije u redu prilikom brisanja problema.", + "components.IssueDetails.toaststatusupdated": "Status problema je uspješno ažuriran!", + "components.IssueDetails.toaststatusupdatefailed": "Nešto nije u redu prilikom ažuriranja statusa problema.", + "components.IssueList.IssueItem.issuestatus": "Status", + "components.IssueList.IssueItem.issuetype": "Vrsta", + "components.IssueList.IssueItem.opened": "Otvoren", + "components.IssueList.IssueItem.problemepisode": "Zahvaćene Epizode", + "components.IssueList.IssueItem.unknownissuetype": "Nepoznato", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Epizoda} other {Epizode}}", + "components.IssueList.IssueItem.viewissue": "Pogledaj problem", + "components.IssueList.showallissues": "Prikaži sve probleme", + "components.IssueList.sortAdded": "Najnoviji", + "components.IssueList.sortModified": "Zadnje promjene", + "components.IssueModal.CreateIssueModal.episode": "Epizoda {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Dodaci", + "components.IssueModal.CreateIssueModal.problemepisode": "Zahvaćene epizode", + "components.IssueModal.CreateIssueModal.problemseason": "Zahvaćene sezone", + "components.IssueModal.CreateIssueModal.providedetail": "Navedite detaljno objašnjenje problema na koji ste naišli.", + "components.IssueModal.CreateIssueModal.reportissue": "Prijavite problem", + "components.IssueModal.CreateIssueModal.season": "Sezona {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Pošalji problem", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Nešto nije u redu prilikom slanja problema.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Problem prijavljen za {title} je uspješno predan!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Pogledaj problem", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Morate unijeti opis", + "components.IssueModal.CreateIssueModal.whatswrong": "Što nije u redu?", + "components.LanguageSelector.languageServerDefault": "Default ({language})", + "components.LanguageSelector.originalLanguageDefault": "Svi jezici", + "components.Layout.LanguagePicker.displaylanguage": "Jezik prikaza", + "components.Layout.SearchInput.searchPlaceholder": "Pretražite filmove i TV", + "components.Layout.Sidebar.dashboard": "Otkrivanje", + "components.Layout.Sidebar.issues": "Problemi", + "components.Layout.Sidebar.requests": "Zahtjevi", + "components.Layout.Sidebar.settings": "Postavke", + "components.Layout.Sidebar.users": "Korisnici", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Zahtjevi za serije", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Zahtjevi za filmove", + "components.Layout.UserDropdown.settings": "Postavke", + "components.Layout.UserDropdown.signout": "Odjavi se", + "components.Layout.VersionStatus.outofdate": "Zastarjelo", + "components.Layout.VersionStatus.streamdevelop": "Overseerr Razvoj", + "components.Login.email": "Adresa e-pošte", + "components.Login.forgotpassword": "Zaboravljena lozinka?", + "components.Login.loginerror": "Nešto nije u redu prilikom pokušaja prijave.", + "components.Login.signin": "Prijavite se", + "components.Login.signingin": "Prijava…", + "components.Layout.VersionStatus.commitsbehind": "", + "components.Login.signinheader": "Prijavite se za nastavak", + "components.Login.signinwithoverseerr": "Koristite svoj {applicationTitle} račun", + "components.Login.validationpasswordrequired": "Morate unijeti lozinku", + "components.ManageSlideOver.alltime": "Cijelo vrijeme", + "components.ManageSlideOver.downloadstatus": "Preuzimanja", + "components.ManageSlideOver.manageModalAdvanced": "Napredna", + "components.ManageSlideOver.manageModalClearMedia": "Obriši podatke", + "components.ManageSlideOver.manageModalIssues": "Otvoreni problemi", + "components.ManageSlideOver.markallseasons4kavailable": "Označi sve sezone kao dostupne u 4K", + "components.ManageSlideOver.markallseasonsavailable": "Označi sve sezone kao dostupne", + "components.ManageSlideOver.markavailable": "Označi kao dostupno", + "components.ManageSlideOver.playedby": "Reproducirano od", + "components.ManageSlideOver.plays": "{playCount, broj} {playCount, plural, one {reproducirano} other {reproducirano}}", + "components.MovieDetails.MovieCast.fullcast": "Glumačka postava", + "components.MovieDetails.digitalrelease": "Digitalno izdanje", + "components.MovieDetails.mark4kavailable": "Označi kao dostupno u 4K", + "components.MovieDetails.originallanguage": "Izvorni jezik", + "components.MovieDetails.MovieCrew.fullcrew": "Filmska postava", + "components.MovieDetails.physicalrelease": "Fizičko izdanje", + "components.MovieDetails.play4konplex": "Reproduciraj u 4K na Plex-u", + "components.MovieDetails.recommendations": "Preporuke", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Datum Izlaska} other {Datumi izlaska}}", + "components.MovieDetails.rtcriticsscore": "Rotten Tomatoes Tomatometer", + "components.MovieDetails.runtime": "{minutes} minute", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studiji}}", + "components.MovieDetails.theatricalrelease": "Izdanje u kinima", + "components.MovieDetails.tmdbuserscore": "Ocjena korisnika TMDB-a", + "components.MovieDetails.viewfullcrew": "Pogledajte cijelu filmsku postavu", + "components.MovieDetails.watchtrailer": "Pogledajte najavu", + "components.NotificationTypeSelector.adminissuecommentDescription": "Primite obavijest kada drugi korisnici komentiraju probleme.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Primite obavijest kada problem ponovno otvore drugi korisnici.", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Primite obavijest kada drugi korisnici riješe probleme.", + "components.NotificationTypeSelector.issuecomment": "Komentiraj problem", + "components.NotificationTypeSelector.issuecreated": "Problem prijavljen", + "components.NotificationTypeSelector.issuecreatedDescription": "Pošalji obavijest kada se problem prijavi.", + "components.NotificationTypeSelector.userissueresolvedDescription": "Primite obavijest kada problemi koje ste prijavili budu riješeni.", + "components.NotificationTypeSelector.mediaavailableDescription": "Slanje obavijesti kada medijski zahtjevi postanu dostupni.", + "components.NotificationTypeSelector.mediadeclinedDescription": "Slanje obavijesti kada su medijski zahtjevi odbijeni.", + "components.NotificationTypeSelector.mediarequested": "Zahtjev čeka odobrenje", + "components.NotificationTypeSelector.mediarequestedDescription": "Slanje obavijesti kada korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", + "components.NotificationTypeSelector.mediaautorequested": "Zahtjev je automatski poslan", + "components.NotificationTypeSelector.mediaavailable": "Zahtjev dostupan", + "components.NotificationTypeSelector.mediafailedDescription": "Slanje obavijesti kada se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", + "components.NotificationTypeSelector.userissuecommentDescription": "Primite obavijest kada problemi koje ste prijavili dobiju nove komentare.", + "components.PermissionEdit.autoapprove4kSeries": "Automatsko odobravanje serija u 4K", + "components.NotificationTypeSelector.usermediafailedDescription": "Primite obavijest kada se medijski zahtjevi ne uspiju dodati u Radarr ili Sonarr.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Primite obavijest kada drugi korisnici pošalju nove medijske zahtjeve koji zahtijevaju odobrenje.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Primite obavijest kada drugi korisnici pošalju nove medijske zahtjeve koji se automatski odobravaju.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Primite obavijest kada vaši medijski zahtjevi budu odbijeni.", + "components.PermissionEdit.adminDescription": "Potpuni administratorski pristup. Zaobilazi sve druge provjere dopuštenja.", + "components.PermissionEdit.advancedrequest": "Napredni zahtjevi", + "components.PermissionEdit.autoapprove4k": "Automatsko odobravanje 4K", + "components.PermissionEdit.autoapproveSeriesDescription": "Dozvolite automatsko odobravanje zahtjeva za serijale koji nisu u 4K.", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Dozvolite automatsko odobravanje zahtjeva za filmove u 4K.", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Dozvolite automatsko odobravanje zahtjeva za serije u 4K.", + "components.QuotaSelector.days": "{count, plural, one {danu} other {danu}}", + "components.QuotaSelector.movies": "{count, plural, one {film} other {filmova}}", + "components.PermissionEdit.autoapproveMoviesDescription": "Dozvolite automatsko odobravanje zahtjeva za filmove koji nisu u 4K.", + "components.RequestButton.approve4krequests": "Odobriti {requestCount, plural, one {4K Zahtjev} other {{requestCount} 4K Zahtjeve}}", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {film} other {filmova}}", + "components.RequestButton.approverequests": "Odobriti {requestCount, plural, one {Zatjev} other {{requestCount} Zahtjeve}}", + "components.QuotaSelector.seasons": "{count, plural, one {sezona} other {sezone}}", + "components.RequestCard.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Sezona} other {Sezone}}", + "components.RequestButton.decline4krequests": "Odbiti {requestCount, plural, one {4K Zahtjev} other {{requestCount} 4K Zahtjeve}}", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Ovaj korisnik treba imati još barem {seasons} {seasons, plural, one {jedan zahtjev za sezonu} other {nekoliko zahtjeva za sezone}} kako bi mogao preadti zahtjev za ovu seriju.", + "components.RequestModal.QuotaDisplay.requiredquota": "Morate imati još barem {seasons} {seasons, plural, one {jedan zahtjev za sezonu} other {nekoliko zahtjeva za sezone}} kako bi mogli preadti zahtjev za ovu seriju.", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {sezona} other {sezona/e}}", + "components.RequestModal.requestmovies": "{count} {count, plural, one {Zahtjev za film} other {Zahtjevi za filmove}}", + "components.RequestModal.requestmovies4k": "{count} {count, plural, one {Zahtjev za film} other {Zahtejvi za filmove}} u 4K", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Slanje obavijesti kada korisnici pošalju novi medijski zahtjev koji se automatski odobrava.", + "components.NotificationTypeSelector.mediaapproved": "Zahtjev odobren", + "components.NotificationTypeSelector.mediaapprovedDescription": "Slanje obavijesti kada se medijski zahtjev ručno odobri.", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Primite obavijest kada se automatski pošalje novi medijski zahtjevi za stavke na vašoj Plex listi koju pratite.", + "components.NotificationTypeSelector.mediadeclined": "Zahtjev je odbijen", + "components.NotificationTypeSelector.mediafailed": "Obrada zahtjeva nije uspjela", + "components.NotificationTypeSelector.notificationTypes": "Vrste obavijesti", + "components.NotificationTypeSelector.userissuecreatedDescription": "Primite obavijest kada drugi korisnici prijave probleme.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Primite obavijest kada se problemi koje ste prijavili ponovno otvore.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Primite obavijest kada vaši zahtjevi za medije budu odobreni.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Primite obavijest kada vaši medijski zahtjevi postanu dostupni.", + "components.PermissionEdit.admin": "Administrator", + "components.PermissionEdit.advancedrequestDescription": "Dodajte dozvolu za izmjenu naprednih opcija zahtjeva za medije.", + "components.PermissionEdit.autoapprove": "Automatsko odobravanje", + "components.PermissionEdit.autoapprove4kMovies": "Automatsko odobravanje 4K filmova", + "components.PermissionEdit.autoapprove4kDescription": "Dozvolite automatsko odobravanje svih zahtjeva za 4K medije.", + "components.PermissionEdit.autoapproveDescription": "Dozvolite automatsko odobravanje svih zahtjeva koji nisu u 4K mediji.", + "components.PermissionEdit.autoapproveMovies": "Automatsko odobravanje filmova", + "components.PermissionEdit.autoapproveSeries": "Automatsko odobravanje serijala", + "components.RequestButton.declinerequests": "Odbiti {requestCount, plural, one {Zahtjev} other {{requestCount} Zahtjeve}}", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {No} other {#}} {type} {remaining, plural, one {zahtjev preostalo} other {zahtjeva preostala}}" } diff --git a/src/i18n/locale/hu.json b/src/i18n/locale/hu.json index 5b3d7b38b..46bbb76d8 100644 --- a/src/i18n/locale/hu.json +++ b/src/i18n/locale/hu.json @@ -851,7 +851,7 @@ "components.IssueModal.CreateIssueModal.toastFailedCreate": "Valami hiba történt a probléma elküldése során.", "components.IssueDetails.play4konplex": "Lejátszás Plexen 4K-ban", "components.IssueModal.CreateIssueModal.toastviewissue": "Probléma Megtekintése", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Ez visszafordíthatatlanul eltávolítja az összes adatot ehhez a {mediaType}-hez, beleértve a kéréseket is. Ha ez az elem létezik a Plex könyvtárában, a médiainformáció a következő beolvasás során újra létrejön.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Ez visszafordíthatatlanul eltávolítja az összes adatot ehhez a {mediaType}-hez, beleértve a kéréseket is. Ha ez az elem létezik a {mediaServerName} könyvtárában, a médiainformáció a következő beolvasás során újra létrejön.", "components.IssueDetails.commentplaceholder": "Hozzászólás írása…", "components.IssueDetails.comments": "Hozzászólások", "components.IssueDetails.deleteissue": "Probléma Törlése", @@ -1014,5 +1014,31 @@ "i18n.importing": "Importálás…", "i18n.import": "Importálás", "components.PermissionEdit.viewissues": "Problémák Megtekintése", - "components.Settings.externalUrl": "Külső URL" + "components.Settings.externalUrl": "Külső URL", + "components.MovieDetails.physicalrelease": "Fizikai kiadás", + "components.MovieDetails.digitalrelease": "Digitális kiadás", + "components.RequestCard.cancelrequest": "Kérés visszavonása", + "components.RequestCard.declinerequest": "Kérelem elutasítása", + "components.RequestCard.editrequest": "Kérelem szerkesztése", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "", + "components.PermissionEdit.autorequest": "Automatikus kérés", + "components.NotificationTypeSelector.mediaautorequested": "A kérelem automatikusan elküldve", + "components.MovieDetails.reportissue": "Probléma bejelentése", + "components.PermissionEdit.autorequestMovies": "Filmek automatikus kérése", + "components.NotificationTypeSelector.issuecomment": "Probléma Megjegyzés", + "components.PermissionEdit.autorequestSeries": "Automatikus kérés sorozatok", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Sorozatkérések", + "components.MovieDetails.managemovie": "Film kezelése", + "components.MovieDetails.rtaudiencescore": "Rotten Tomatoes közönségpontszám", + "components.MovieDetails.tmdbuserscore": "TMDB felhasználói pontszám", + "components.RequestBlock.delete": "Kérelem törlése", + "components.RequestBlock.edit": "Kérelem szerkesztése", + "components.RequestBlock.approve": "Kérelem jóváhagyása", + "components.RequestBlock.decline": "Kérelem elutasítása", + "components.RequestBlock.lastmodifiedby": "Utoljára módosította", + "components.RequestBlock.requestdate": "Igénylés dátuma", + "components.RequestCard.approverequest": "Kérelem jóváhagyása", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmkérések", + "components.Layout.UserDropdown.requests": "Kérések", + "components.RequestModal.requestcollectiontitle": "Gyűjtemény kérése" } diff --git a/src/i18n/locale/it.json b/src/i18n/locale/it.json index b87455ca4..446c24fed 100644 --- a/src/i18n/locale/it.json +++ b/src/i18n/locale/it.json @@ -950,7 +950,7 @@ "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Job modificato correttamente!", "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Impossibile salvare le impostazioni Pushover.", "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Impostazioni Pushover salvate con successo!", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Questo rimuoverà irreversibilmente tutti i dati per questo {mediaType}, incluse eventuali richieste. Se questo elemento esiste nella tua libreria Plex, le informazioni multimediali verranno ricreate durante la scansione successiva.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Questo rimuoverà irreversibilmente tutti i dati per questo {mediaType}, incluse eventuali richieste. Se questo elemento esiste nella tua libreria {mediaServerName}, le informazioni multimediali verranno ricreate durante la scansione successiva.", "components.NotificationTypeSelector.issuecreated": "Problema Segnalato", "components.NotificationTypeSelector.issuecreatedDescription": "Invia una notifica quando un problema viene segnalato.", "components.NotificationTypeSelector.issueresolved": "Problema risolto", diff --git a/src/i18n/locale/ja.json b/src/i18n/locale/ja.json index fd0ecea6a..acdff9adb 100644 --- a/src/i18n/locale/ja.json +++ b/src/i18n/locale/ja.json @@ -503,7 +503,7 @@ "components.ManageSlideOver.manageModalClearMedia": "データを消去", "components.ManageSlideOver.manageModalRequests": "リクエスト", "components.ManageSlideOver.openarr": "{arr} を開く", - "components.ManageSlideOver.manageModalClearMediaWarning": "※リクエストを含め、すべての詳細情報が消去されます。この操作は元に戻すことができません。この作品が Plex ライブラリに存在する場合、詳細情報は次のスキャンで再作成されます。", + "components.ManageSlideOver.manageModalClearMediaWarning": "※リクエストを含め、すべての詳細情報が消去されます。この操作は元に戻すことができません。この作品が {mediaServerName} ライブラリに存在する場合、詳細情報は次のスキャンで再作成されます。", "components.ManageSlideOver.openarr4k": "4K {arr} を開く", "components.ManageSlideOver.manageModalNoRequests": "リクエストが有りません。", "components.ManageSlideOver.manageModalTitle": "{mediaType}を管理", diff --git a/src/i18n/locale/lt.json b/src/i18n/locale/lt.json index e7667f3c4..c02ae815a 100644 --- a/src/i18n/locale/lt.json +++ b/src/i18n/locale/lt.json @@ -138,7 +138,6 @@ "components.IssueDetails.IssueDescription.description": "Aprašymas", "components.IssueDetails.allseasons": "Visi sezonai", "components.CollectionDetails.requestcollection4k": "4k rezervacijų kolekcija", - "components.Discover.discovertv": "Populiarūs serialai", "components.IssueDetails.allepisodes": "Visi epizodai", "components.IssueDetails.issuetype": "Tipas", "components.IssueDetails.playonplex": "Groti per Plex", @@ -150,7 +149,6 @@ "components.Discover.upcomingtv": "Greit pasirodysiantys serialai", "components.Discover.DiscoverTvGenre.genreSeries": "{genre} serialai", "components.Discover.MovieGenreList.moviegenres": "Filmų žanrai", - "components.Discover.discovermovies": "Populiarūs filmai", "components.Discover.recentrequests": "Paskutinės rezervacijos", "components.Discover.MovieGenreSlider.moviegenres": "Filmų žanrai", "components.Discover.upcoming": "Greit pasirodysiantys filmai", @@ -329,7 +327,7 @@ "components.IssueModal.CreateIssueModal.problemseason": "Paveikti sezonai", "components.IssueDetails.openedby": "#{issueId} problema atverta {relativeTime}, {username}", "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {komitas} other {komitai}} behind", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Tai negyžtamai pašalins {mediaType} tipo duomenis, įskaitant rezervacijas. Plex bibliotekoje esančios medijos informacija bus atkurta kito skanavimo metu.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Tai negyžtamai pašalins {mediaType} tipo duomenis, įskaitant rezervacijas. {mediaServerName} bibliotekoje esančios medijos informacija bus atkurta kito skanavimo metu.", "components.NotificationTypeSelector.adminissuecommentDescription": "Gauti pranešimus kai kiti vartotojai komentuoja problemą.", "components.NotificationTypeSelector.adminissueresolvedDescription": "Gauti pranešimus kai kiti vartotojai uždaro problemą.", "components.NotificationTypeSelector.issuecomment": "Problemos komentaras", diff --git a/src/i18n/locale/nb_NO.json b/src/i18n/locale/nb_NO.json index b0b83c041..b90ddc89f 100644 --- a/src/i18n/locale/nb_NO.json +++ b/src/i18n/locale/nb_NO.json @@ -180,7 +180,7 @@ "components.UserProfile.UserSettings.UserGeneralSettings.role": "Rolle", "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Filtrer innhold basert på regiontilgjengelighet", "components.UserProfile.UserSettings.UserGeneralSettings.region": "Utforskelsesregion", - "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plexbruker", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Plex-bruker", "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Eier", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Filtrer innhold basert på originalspråk", "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Utforskelsesspråk", @@ -337,7 +337,7 @@ "components.MediaSlider.ShowMoreCard.seemore": "Vis mer", "components.Login.validationpasswordrequired": "Du må skrive et passord", "components.Login.validationemailrequired": "Du må bruke en gyldig E-postadresse", - "components.Login.signinwithplex": "Bruk Plex-konto", + "components.Login.signinwithplex": "Bruk din Plex-konto", "components.Login.signinwithoverseerr": "Bruk {applicationTitle}-konto", "components.Login.signinheader": "Logg inn for å fortsette", "components.Login.signingin": "Logger inn…", @@ -753,7 +753,7 @@ "components.Settings.Notifications.NotificationsGotify.validationTokenRequired": "Du må oppgi en applikasjon/API-nøkkel", "i18n.next": "Neste", "components.Settings.SettingsJobsCache.editJobSchedule": "Endre Oppgave", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frekvens", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Ny Frekvens", "components.TvDetails.firstAirDate": "Første gang sendt", "i18n.deleting": "Sletter…", "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "Innstillingene for E-post ble lagret!", @@ -854,8 +854,8 @@ "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Oppgaven ble endret!", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Hver {jobScheduleHours}. time", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Hvert {jobScheduleMinutes}. minutt", - "components.Settings.SettingsUsers.localLoginTip": "Tillater brukere å kunne logge inn med kun deres E-postadresse og passord istedenfor med Plex OAuth", - "components.Settings.SettingsUsers.newPlexLoginTip": "Tillater Plex brukere å logge inn uten å være importert på forhånd", + "components.Settings.SettingsUsers.localLoginTip": "Tilllat brukere å logge på med kun E-postadresse og passord istedenfor med Plex OAuth", + "components.Settings.SettingsUsers.newPlexLoginTip": "Tillat Plex brukere å logge inn uten å være importert på forhånd", "components.Settings.SonarrModal.validationApplicationUrl": "Du må oppgi en gyldig nettadresse", "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Base URL kan ikke slutte med en skråstrek", "components.Settings.locale": "Visningsspråk", @@ -986,7 +986,7 @@ "components.Settings.SettingsJobsCache.cachevsize": "Verdistørrelse", "components.Settings.trustProxyTip": "Tillatt Jellyseerr å registrere klienters IP addresser korrekt bak en proxy", "components.Settings.serviceSettingsDescription": "Konfigurer dine {serverType}tjener(e) nedenfor. Du kan koble til flere forskellige {serverType}tjenere men kun to av dem kan markeres som standard (en som ikke er 4K og en 4K). Administratorer kan endre hvilken tjener som brukes før godkjennelse av nye forespørsler.", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Dette vil slette all data for denne tittelen uten mulighet for å bli gjennopprettet, det inkluderer alle forespørsler, avvik osv. Hvis denne tittelen finnes i ditt Plex bibliotek vil medieinformasjon bli opprettet på nytt under neste skanning.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Dette vil slette all data for denne tittelen uten mulighet for å bli gjennopprettet, det inkluderer alle forespørsler, avvik osv. Hvis denne tittelen finnes i ditt {mediaServerName} bibliotek vil medieinformasjon bli opprettet på nytt under neste skanning.", "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisasjonshode", "components.Settings.SettingsJobsCache.cacheksize": "Nøkkelstørrelse", "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON Payload", @@ -1097,7 +1097,7 @@ "components.Settings.advancedTooltip": "Feil konfigurering av denne innstillingen kan føre til defekt funksjonalitet", "components.TvDetails.Season.somethingwentwrong": "Noe gikk galt under henting av data for denne sesongen.", "components.StatusChecker.reloadApp": "Last inn {applicationTitle} på nytt", - "components.StatusBadge.playonplex": "Spill av med Plex", + "components.StatusBadge.playonplex": "Spill av med {mediaServerName}", "components.StatusBadge.openinarr": "Vis i {arr}", "components.StatusBadge.managemedia": "Administrer {mediaType}", "components.TvDetails.episodeCount": "{episodeCount, plural, one {# Episode} other {# Episoder}}", @@ -1116,5 +1116,6 @@ "components.RequestModal.requestcollectiontitle": "Forespør hele samlingen", "components.Discover.emptywatchlist": "Matriale som du legger til via Plex Watchlist vil dukke opp her.", "components.UserProfile.emptywatchlist": "Matriale som du legger til via Plex Watchlist vil dukke opp her.", - "components.RequestModal.SearchByNameModal.nomatches": "Vi klarte ikke å koble denne serien med et søkbart treff." + "components.RequestModal.SearchByNameModal.nomatches": "Vi klarte ikke å koble denne serien med et søkbart treff.", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Nåværende frekvens" } diff --git a/src/i18n/locale/nl.json b/src/i18n/locale/nl.json index df85f8456..1a06183f8 100644 --- a/src/i18n/locale/nl.json +++ b/src/i18n/locale/nl.json @@ -33,7 +33,7 @@ "components.RequestModal.cancel": "Verzoek annuleren", "components.RequestModal.extras": "Extra's", "components.RequestModal.numberofepisodes": "Aantal afleveringen", - "components.RequestModal.pendingrequest": "", + "components.RequestModal.pendingrequest": "Verzoek in behandeling", "components.RequestModal.requestCancel": "Verzoek voor {title} is geannuleerd.", "components.RequestModal.requestSuccess": "{title} is succesvol aangevraagd!", "components.RequestModal.requestadmin": "Dit verzoek zal automatisch goedgekeurd worden.", @@ -291,7 +291,7 @@ "components.Settings.Notifications.NotificationsWebhook.customJson": "JSON-payload", "components.Settings.Notifications.NotificationsWebhook.authheader": "Autorisatie-header", "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Agent inschakelen", - "components.RequestModal.pending4krequest": "", + "components.RequestModal.pending4krequest": "4K-verzoek in behandeling", "components.RequestButton.viewrequest4k": "4K-verzoek bekijken", "components.RequestButton.viewrequest": "Verzoek bekijken", "components.RequestButton.requestmore": "Meer aanvragen", @@ -632,7 +632,7 @@ "components.Settings.SettingsJobsCache.jobsandcache": "Taken en cache", "components.Settings.SettingsAbout.about": "Over", "components.ResetPassword.passwordreset": "Wachtwoord opnieuw instellen", - "components.Settings.cacheImagesTip": "Cache en serveer geoptimaliseerde afbeeldingen (een aanzienlijke hoeveelheid schijfruimte is nodig)", + "components.Settings.cacheImagesTip": "Geoptimaliseerde afbeeldingen cachen en hosten (vereist veel schijfruimte)", "components.Settings.cacheImages": "Afbeeldingscaching inschakelen", "components.Settings.SettingsLogs.logDetails": "Loggegevens", "components.Settings.SettingsLogs.extraData": "Aanvullende gegevens", @@ -713,9 +713,9 @@ "components.RequestModal.AdvancedRequester.selecttags": "Labels selecteren", "components.RequestModal.AdvancedRequester.notagoptions": "Geen labels.", "components.Settings.RadarrModal.loadingTags": "Labels laden…", - "components.RequestList.RequestItem.mediaerror": "{mediaType} Niet Gevonden", + "components.RequestList.RequestItem.mediaerror": "{mediaType} niet gevonden", "components.RequestList.RequestItem.deleterequest": "Verzoek verwijderen", - "components.RequestCard.mediaerror": "{mediaType} Niet Gevonden", + "components.RequestCard.mediaerror": "{mediaType} niet gevonden", "components.RequestCard.deleterequest": "Verzoek verwijderen", "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Je moet een geldige openbare PGP-sleutel opgeven", "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Instellingen Telegrammeldingen succesvol opgeslagen!", @@ -855,7 +855,7 @@ "components.MovieDetails.streamingproviders": "Momenteel te streamen op", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Taak succesvol bewerkt!", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Elk(e) {jobScheduleMinutes, plural, one {minuut} other {{jobScheduleMinutes} minuten}}", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Frequentie", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Nieuwe frequentie", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Er ging iets mis bij het opslaan van de taak.", "components.Settings.SettingsJobsCache.editJobSchedule": "Taak wijzigen", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Elk(e) {jobScheduleHours, plural, one {uur} other {{jobScheduleHours} uren}}", @@ -893,7 +893,7 @@ "components.IssueModal.CreateIssueModal.allepisodes": "Alle afleveringen", "components.IssueModal.issueAudio": "Audio", "components.IssueDetails.nocomments": "Geen opmerkingen.", - "components.IssueModal.CreateIssueModal.reportissue": "Een probleem melden", + "components.IssueModal.CreateIssueModal.reportissue": "Probleem melden", "components.IssueDetails.allepisodes": "Alle afleveringen", "components.IssueDetails.toasteditdescriptionsuccess": "Probleembeschrijving succesvol bewerkt!", "components.IssueDetails.toastissuedeleted": "Probleem succesvol verwijderd!", @@ -939,7 +939,7 @@ "components.IssueModal.issueOther": "Andere", "components.Layout.Sidebar.issues": "Problemen", "components.ManageSlideOver.manageModalClearMedia": "Gegevens wissen", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Hiermee worden alle gegevens voor deze {mediaType} onomkeerbaar verwijderd, inclusief eventuele verzoeken. Als dit item in je Plex-bibliotheek staat, worden de mediagegevens opnieuw aangemaakt tijdens de volgende scan.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Hiermee worden alle gegevens voor deze {mediaType} onomkeerbaar verwijderd, inclusief eventuele verzoeken. Als dit item in je {mediaServerName}-bibliotheek staat, worden de mediagegevens opnieuw aangemaakt tijdens de volgende scan.", "components.ManageSlideOver.manageModalRequests": "Verzoeken", "components.ManageSlideOver.manageModalTitle": "{mediaType} beheren", "components.ManageSlideOver.tvshow": "serie", @@ -1037,5 +1037,93 @@ "components.UserProfile.UserSettings.UserGeneralSettings.discordId": "Gebruikers-ID Discord", "components.UserProfile.UserSettings.UserGeneralSettings.discordIdTip": "Het meercijferige ID-nummer van je Discord-account", "components.UserProfile.UserSettings.UserGeneralSettings.validationDiscordId": "Je moet een geldige gebruikers-ID van Discord opgeven", - "components.Settings.SettingsAbout.appDataPath": "Gegevensmap" + "components.Settings.SettingsAbout.appDataPath": "Gegevensmap", + "components.RequestBlock.languageprofile": "Taalprofiel", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "Huidige frequentie", + "components.StatusBadge.managemedia": "{mediaType} beheren", + "components.StatusBadge.openinarr": "Openen in {arr}", + "components.StatusBadge.playonplex": "Afspelen op {mediaServerName}", + "components.UserProfile.emptywatchlist": "Media die zijn toegevoegd aan je Plex Kijklijst verschijnen hier.", + "components.MovieDetails.digitalrelease": "Digitale release", + "i18n.restartRequired": "Opnieuw opstarten vereist", + "components.PermissionEdit.viewrecentDescription": "Toestemming geven om de lijst met recent toegevoegde media te bekijken.", + "components.PermissionEdit.viewrecent": "Recent toegevoegd bekijken", + "components.Settings.deleteServer": "{serverType}-server verwijderen", + "components.StatusChecker.appUpdated": "{applicationTitle} bijgewerkt", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.StatusChecker.restartRequired": "Server opnieuw opstarten vereist", + "components.StatusChecker.restartRequiredDescription": "Start de server opnieuw op om de bijgewerkte instellingen toe te passen.", + "components.TitleCard.cleardata": "Gegevens wissen", + "components.TitleCard.mediaerror": "{mediatype} niet gevonden", + "components.TitleCard.tvdbid": "TheTVDB ID", + "components.RequestCard.tmdbid": "TMDB ID", + "components.RequestCard.declinerequest": "Verzoek weigeren", + "components.RequestCard.editrequest": "Verzoek bewerken", + "components.RequestCard.cancelrequest": "Verzoek annuleren", + "components.RequestModal.requestcollection4ktitle": "Collectie aanvragen in 4K", + "components.RequestModal.requestcollectiontitle": "Collectie aanvragen", + "components.RequestModal.requestseries4ktitle": "Serie aanvragen in 4K", + "components.RequestModal.requestmovie4ktitle": "Film aanvragen in 4K", + "components.RequestModal.requestseriestitle": "Serie aanvragen", + "components.RequestModal.requestmovietitle": "Film aanvragen", + "components.TvDetails.tmdbuserscore": "Gebruikersscore TMDB", + "components.TvDetails.rtaudiencescore": "Publieksscore Rotten Tomatoes", + "components.TvDetails.seasonnumber": "Seizoen {seasonNumber}", + "components.TvDetails.Season.somethingwentwrong": "Er ging iets mis bij het ophalen van de seizoensgegevens.", + "components.TvDetails.seasonstitle": "Seizoenen", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Je Plex Kijklijst", + "components.Discover.plexwatchlist": "Je Plex Kijklijst", + "components.MovieDetails.physicalrelease": "Fysieke release", + "components.PermissionEdit.autorequest": "Automatisch aanvragen", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Kijklijst synchroniseren", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "Series automatisch aanvragen", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "Automatisch series op je Plex Kijklijst aanvragen", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "Automatisch films op je Plex Kijklijst aanvragen", + "components.PermissionEdit.autorequestDescription": "Toestemming geven om niet-4K media in je Plex Kijklijst automatisch aan te vragen.", + "components.RequestCard.tvdbid": "TheTVDB ID", + "components.Discover.DiscoverWatchlist.watchlist": "Plex Kijklijst", + "components.MovieDetails.theatricalrelease": "Bioscooprelease", + "components.NotificationTypeSelector.mediaautorequested": "Aanvraag automatisch ingediend", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Ontvang een melding wanneer er automatisch nieuwe mediaverzoeken worden ingediend voor items op je Plex Kijklijst.", + "components.PermissionEdit.autorequestSeriesDescription": "Toestemming geven om niet-4K series in je Plex Kijklijst automatisch aan te vragen.", + "components.PermissionEdit.viewwatchlists": "Plex Kijklijsten bekijken", + "components.PermissionEdit.viewwatchlistsDescription": "Toestemming verlenen om de Plex Kijklijsten van andere gebruikers te bekijken.", + "components.Settings.SettingsLogs.viewdetails": "Details bekijken", + "components.Settings.advancedTooltip": "Deze instelling onjuist configureren, kan resulteren in gebroken functionaliteit", + "components.StatusChecker.reloadApp": "{applicationTitle} opnieuw laden", + "components.TitleCard.tmdbid": "TMDB ID", + "components.StatusChecker.appUpdatedDescription": "Klik op de onderstaande knop om de toepassing opnieuw te laden.", + "components.UserProfile.plexwatchlist": "Plex Kijklijst", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "Films automatisch aanvragen", + "components.TvDetails.manageseries": "Serie beheren", + "components.MovieDetails.managemovie": "Film beheren", + "components.MovieDetails.reportissue": "Probleem melden", + "components.PermissionEdit.autorequestMoviesDescription": "Toestemming geven om niet-4K films in je Plex Kijklijst automatisch aan te vragen.", + "components.PermissionEdit.autorequestSeries": "Series automatisch aanvragen", + "components.PermissionEdit.autorequestMovies": "Films automatisch aanvragen", + "components.Settings.experimentalTooltip": "Deze instelling inschakelen, kan leiden tot onverwacht gedrag van de toepassing", + "components.Settings.restartrequiredTooltip": "Overseerr moet opnieuw worden gestart om wijzigingen in deze instelling door te voeren", + "components.AirDateBadge.airedrelative": "{relativeTime} uitgezonden", + "components.AirDateBadge.airsrelative": "Uitzending {relativeTime}", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Serieverzoeken", + "components.TvDetails.episodeCount": "{episodeCount, plural, one {# aflevering} other {# afleveringen}}", + "components.TvDetails.status4k": "4K {status}", + "components.MovieDetails.rtaudiencescore": "Publieksscore Rotten Tomatoes", + "components.MovieDetails.rtcriticsscore": "Tomatometer Rotten Tomatoes", + "components.MovieDetails.tmdbuserscore": "Gebruikersscore TMDB", + "components.RequestBlock.approve": "Verzoek goedkeuren", + "components.TvDetails.reportissue": "Probleem melden", + "components.TvDetails.rtcriticsscore": "Tomatometer Rotten Tomatoes", + "components.RequestModal.SearchByNameModal.nomatches": "We konden geen match vinden voor deze serie.", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Filmverzoeken", + "components.Layout.UserDropdown.requests": "Verzoeken", + "components.RequestBlock.decline": "Verzoek weigeren", + "components.Discover.emptywatchlist": "Media die zijn toegevoegd aan je Plex Kijklijst verschijnen hier.", + "components.RequestBlock.delete": "Verzoek verwijderen", + "components.RequestBlock.edit": "Verzoek bewerken", + "components.RequestBlock.lastmodifiedby": "Laatst gewijzigd door", + "components.RequestBlock.requestdate": "Aanvraagdatum", + "components.RequestBlock.requestedby": "Aangevraagd door", + "components.RequestCard.approverequest": "Verzoek goedkeuren" } diff --git a/src/i18n/locale/pl.json b/src/i18n/locale/pl.json index 57bc19e81..aecc2a52f 100644 --- a/src/i18n/locale/pl.json +++ b/src/i18n/locale/pl.json @@ -103,7 +103,7 @@ "components.PermissionEdit.createissues": "Zgłoś problemy", "components.PermissionEdit.manageissues": "Zarządzaj problemami", "components.PermissionEdit.manageissuesDescription": "Udziel uprawnień do zarządzania problemami z multimediami.", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Spowoduje to nieodwracalne usunięcie wszystkich danych dla {mediaType}, w tym wszelkie prośby. Jeśli ten element istnieje w Twojej bibliotece Plex, informacje o multimediach zostaną odtworzone podczas następnego skanowania.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Spowoduje to nieodwracalne usunięcie wszystkich danych dla {mediaType}, w tym wszelkie prośby. Jeśli ten element istnieje w Twojej bibliotece {mediaServerName}, informacje o multimediach zostaną odtworzone podczas następnego skanowania.", "components.IssueModal.CreateIssueModal.providedetail": "Podaj szczegółowe wyjaśnienie napotkanego problemu.", "components.IssueModal.CreateIssueModal.whatswrong": "Co jest nie tak?", "components.Discover.MovieGenreList.moviegenres": "Gatunki filmowe", diff --git a/src/i18n/locale/pt_BR.json b/src/i18n/locale/pt_BR.json index 57d716969..7f657efe9 100644 --- a/src/i18n/locale/pt_BR.json +++ b/src/i18n/locale/pt_BR.json @@ -924,7 +924,7 @@ "components.IssueModal.issueOther": "Outros", "components.IssueModal.issueSubtitles": "Legenda", "components.ManageSlideOver.manageModalClearMedia": "Limpar Dados", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Isso irá remover em definitivo todos dados desse(a) {mediaType}, incluindo quaisquer solicitações para esse item. Se este item existir in sua biblioteca do Plex, os dados de mídia serão recriados na próxima sincronia.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Isso irá remover em definitivo todos dados desse(a) {mediaType}, incluindo quaisquer solicitações para esse item. Se este item existir in sua biblioteca do {mediaServerName}, os dados de mídia serão recriados na próxima sincronia.", "components.ManageSlideOver.manageModalIssues": "Problemas Abertos", "components.ManageSlideOver.manageModalNoRequests": "Nenhuma solicitação.", "components.ManageSlideOver.manageModalRequests": "Solicitações", @@ -1098,7 +1098,7 @@ "components.RequestBlock.requestdate": "Data do pedido", "components.RequestCard.declinerequest": "Rejeitar Pedido", "components.RequestCard.editrequest": "Editar Pedido", - "components.StatusBadge.playonplex": "Reproduzir no Plex", + "components.StatusBadge.playonplex": "Reproduzir no {mediaServerName}", "components.RequestBlock.decline": "Rejeitar pedido", "components.RequestBlock.lastmodifiedby": "Última modificação por", "components.RequestBlock.delete": "Deletar pedido", diff --git a/src/i18n/locale/ro.json b/src/i18n/locale/ro.json index 40156c185..83ccba977 100644 --- a/src/i18n/locale/ro.json +++ b/src/i18n/locale/ro.json @@ -1,5 +1,5 @@ { - "components.Discover.DiscoverStudio.studioMovies": "{studio} Filme", + "components.Discover.DiscoverStudio.studioMovies": "Filme {studio}", "components.AppDataWarning.dockerVolumeMissingDescription": "Montarea volumului {appDataPath} nu a fost configurată corespunzător. Toate datele vor fi șterse atunci când containerul este oprit sau repornit.", "components.CollectionDetails.numberofmovies": "{count} Filme", "components.CollectionDetails.overview": "Prezentare generală", @@ -7,10 +7,10 @@ "components.CollectionDetails.requestcollection4k": "Cere colecția în 4K", "components.Discover.DiscoverMovieGenre.genreMovies": "{genul} Filme", "components.Discover.DiscoverMovieLanguage.languageMovies": "{Limba} Filme", - "components.Discover.DiscoverNetwork.networkSeries": "{network} Seriale", + "components.Discover.DiscoverNetwork.networkSeries": "Seriale {network}", "components.Discover.MovieGenreSlider.moviegenres": "Genuri de film", "components.Discover.NetworkSlider.networks": "Rețele", - "components.Discover.TvGenreList.seriesgenres": "Genuri seriale", + "components.Discover.TvGenreList.seriesgenres": "Genuri Seriale", "components.IssueDetails.IssueDescription.edit": "Editați descrierea", "components.IssueDetails.IssueComment.validationComment": "Trebuie să introduceți un mesaj", "components.IssueDetails.IssueDescription.description": "Descriere", @@ -19,21 +19,245 @@ "components.Discover.DiscoverTvLanguage.languageSeries": "{language} Seriale", "components.Discover.MovieGenreList.moviegenres": "Genuri de film", "components.Discover.StudioSlider.studios": "Studiouri", - "components.Discover.TvGenreSlider.tvgenres": "Genuri seriale", + "components.Discover.TvGenreSlider.tvgenres": "Genuri Seriale", "components.Discover.discover": "Descoperă", - "components.Discover.discovermovies": "Filme populare", - "components.Discover.discovertv": "Seriale populare", - "components.Discover.popularmovies": "Filme populare", - "components.Discover.populartv": "Seriale populare", - "components.Discover.recentlyAdded": "Adăugate recent", - "components.Discover.recentrequests": "Solicitări recente", - "components.Discover.upcoming": "Filme viitoare", - "components.Discover.upcomingmovies": "Filme viitoare", - "components.Discover.upcomingtv": "Seriale viitoare", + "components.Discover.popularmovies": "Filme Populare", + "components.Discover.populartv": "Seriale Populare", + "components.Discover.recentlyAdded": "Adăugate Recent", + "components.Discover.recentrequests": "Solicitări Recente", + "components.Discover.upcoming": "Filme Viitoare", + "components.Discover.upcomingmovies": "Filme Viitoare", + "components.Discover.upcomingtv": "Seriale Viitoare", "components.DownloadBlock.estimatedtime": "Estimat {time}", - "components.IssueDetails.IssueComment.areyousuredelete": "Ești sigur că vrei să ștergi acest comentariu?", + "components.IssueDetails.IssueComment.areyousuredelete": "Sunteți sigur că doriți să ștergeți acest comentariu?", "components.IssueDetails.IssueComment.delete": "Șterge comentariul", - "components.IssueDetails.IssueComment.edit": "Editează comentariul", + "components.IssueDetails.IssueComment.edit": "Editați comentariul", "components.IssueDetails.IssueComment.postedby": "Postat {relativeTime} de {username}", - "components.IssueDetails.IssueDescription.deleteissue": "Ștergeți problema" + "components.IssueDetails.IssueDescription.deleteissue": "Ștergeți problema", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "Lista ta de Urmărire în Plex", + "components.Discover.plexwatchlist": "Lista ta de Urmărire în Plex", + "components.IssueDetails.allseasons": "Toate sezoanele", + "components.IssueDetails.closeissue": "Închide problema", + "components.IssueDetails.deleteissueconfirm": "Ești sigur că vrei să ștergi această problema?", + "components.IssueDetails.commentplaceholder": "Adaugă un comentariu…", + "components.IssueDetails.comments": "Comentarii", + "components.IssueDetails.issuetype": "Tip", + "components.IssueDetails.lastupdated": "Ultimul update", + "components.IssueDetails.leavecomment": "Comentează", + "components.Discover.DiscoverWatchlist.watchlist": "Listă de urmărire în Plex", + "components.Discover.trending": "Tendințe", + "components.IssueDetails.openinarr": "Deschide în {arr}", + "components.IssueDetails.play4konplex": "Vizionează în 4K în Plex", + "components.IssueDetails.playonplex": "Vizionează în Plex", + "components.IssueDetails.problemepisode": "Episoade afectate", + "components.IssueDetails.problemseason": "Sezoane afectate", + "components.IssueDetails.reopenissue": "Redeschide problemă", + "components.IssueDetails.reopenissueandcomment": "Redeschide cu comentariu", + "components.IssueDetails.toasteditdescriptionfailed": "A intervenit o eroare în timpul editării descrierii problemei.", + "components.IssueDetails.toasteditdescriptionsuccess": "Descrierea problemei editată cu succes!", + "components.IssueDetails.toastissuedeleted": "Problemă ștearsă cu succes!", + "components.IssueDetails.season": "Sezon {seasonNumber}", + "components.IssueDetails.toastissuedeletefailed": "A intervenit o eroare în timpul ștergerii problemei.", + "components.IssueDetails.toaststatusupdated": "Statusul problemei a fost actualizat cu succes!", + "components.IssueDetails.toaststatusupdatefailed": "A intervenit o eroare în timpul actualizării statusului problemei.", + "components.IssueDetails.unknownissuetype": "Necunoscut", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, un {Episod} alte {Episoade}}}", + "components.IssueList.IssueItem.issuestatus": "Stare", + "components.IssueList.IssueItem.opened": "Deschis", + "components.IssueList.IssueItem.unknownissuetype": "Necunoscut", + "components.IssueList.IssueItem.openeduserdate": "{date} de către {user}", + "components.IssueList.IssueItem.problemepisode": "Episodul afectat", + "components.IssueList.IssueItem.viewissue": "Vedeți problema", + "components.IssueModal.CreateIssueModal.problemepisode": "Episodul afectat", + "components.IssueModal.CreateIssueModal.providedetail": "Vă rugăm să furnizați o explicație detaliată a problemei pe care ați întâmpinat-o.", + "components.IssueModal.CreateIssueModal.problemseason": "Sezonul afectat", + "components.IssueModal.CreateIssueModal.episode": "Episodul {episodeNumber}", + "components.IssueModal.CreateIssueModal.extras": "Extra", + "components.IssueModal.CreateIssueModal.season": "Sezonul {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Trimiteți problema", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Ceva nu a mers bine în timpul trimiterii problemei.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Raportul problemei pentru {title} a fost trimis cu succes!", + "components.IssueModal.CreateIssueModal.whatswrong": "Ce nu e bine?", + "components.IssueModal.issueAudio": "Audio", + "components.IssueModal.issueOther": "Altele", + "components.IssueModal.issueSubtitles": "Subtitrare", + "components.IssueModal.issueVideo": "Video", + "components.LanguageSelector.languageServerDefault": "Implicit ({language})", + "components.LanguageSelector.originalLanguageDefault": "Toate limbile", + "components.Layout.LanguagePicker.displaylanguage": "Limba de afișare", + "components.Layout.Sidebar.dashboard": "Descoperiți", + "components.Layout.Sidebar.issues": "Probleme", + "components.Layout.Sidebar.requests": "Solicitări", + "components.Layout.Sidebar.settings": "Setări", + "components.Layout.Sidebar.users": "Utilizatori", + "components.Layout.UserDropdown.myprofile": "Profil", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {commit} altul {commits}} în spate", + "components.IssueDetails.allepisodes": "Toate episoadele", + "components.IssueDetails.episode": "Episod {episodeNumber}", + "components.IssueDetails.issuepagetitle": "Problemă", + "components.IssueDetails.openedby": "#{issueId} deschis {relativeTime} de către {username}", + "components.IssueDetails.openin4karr": "Deschide în 4K {arr}", + "components.AirDateBadge.airedrelative": "Difuzat la {relativeTime}", + "components.AirDateBadge.airsrelative": "Se va difuza la {relativeTime}", + "components.IssueList.issues": "Probleme", + "components.IssueList.showallissues": "Afișați toate problemele", + "components.IssueModal.CreateIssueModal.allseasons": "Toate sezoanele", + "components.IssueModal.CreateIssueModal.reportissue": "Raportați o problemă", + "components.IssueModal.CreateIssueModal.toastviewissue": "Vedeți problema", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "Solicitări de Serii", + "components.Layout.UserDropdown.requests": "Solicitări", + "components.IssueList.IssueItem.issuetype": "Tip", + "components.IssueList.sortModified": "Ultima modificare", + "components.Discover.emptywatchlist": "Media adăugată în Lista de Urmărire în Plex va apărea aici.", + "components.IssueDetails.closeissueandcomment": "Închide cu comentariu", + "components.IssueDetails.deleteissue": "Șterge problema", + "components.IssueDetails.nocomments": "Niciun comentariu.", + "components.IssueModal.CreateIssueModal.allepisodes": "Toate episoadele", + "components.IssueList.sortAdded": "Cele mai recente", + "components.Layout.SearchInput.searchPlaceholder": "Căutați Filme și Seriale", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Trebuie să furnizați o descriere", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "Solicitări de Filme", + "components.Layout.UserDropdown.settings": "Setări", + "components.Layout.UserDropdown.signout": "Deconectare", + "components.Layout.VersionStatus.outofdate": "Expirat", + "components.Login.loginerror": "A apărut o eroare în timp ce încercam să vă conectați.", + "components.ManageSlideOver.manageModalAdvanced": "Avansat", + "components.ManageSlideOver.movie": "film", + "components.ManageSlideOver.openarr": "Deschide în {arr}", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Primiți notificări când problemele sunt rezolvate de alți utilizatori.", + "components.NotificationTypeSelector.issuecomment": "Comentariu la Problemă", + "components.NotificationTypeSelector.issuereopenedDescription": "Trimiteți notificări când problemele sunt redeschise.", + "components.MovieDetails.digitalrelease": "Lansare Digitală", + "components.MovieDetails.originaltitle": "Titlu Original", + "components.MovieDetails.overview": "Prezentare Generală", + "components.MovieDetails.recommendations": "Recomandări", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Data de Lansare} other {Date de Lansare}}", + "components.MovieDetails.revenue": "Venituri", + "components.MovieDetails.runtime": "{minutes} minute", + "components.MovieDetails.showless": "Arată Mai Puțin", + "components.MovieDetails.studio": "{studioCount, plural, one {Studio} other {Studiouri}}", + "components.MovieDetails.theatricalrelease": "Lansare la Cinema", + "components.MovieDetails.viewfullcrew": "Vizualizați Echipa Completă", + "components.MovieDetails.streamingproviders": "În Prezent se Difuzează pe", + "components.NotificationTypeSelector.issuecommentDescription": "Trimiteți notificări când problemele primesc comentarii noi.", + "components.NotificationTypeSelector.issuecreated": "Problemă Raportată", + "components.NotificationTypeSelector.issueresolved": "Problemă Rezolvată", + "components.NotificationTypeSelector.issueresolvedDescription": "Trimiteți notificări când problemele sunt rezolvate.", + "components.NotificationTypeSelector.mediaAutoApproved": "Solicitare Aprobată Automat", + "components.Login.email": "Adresă de Mail", + "components.Login.forgotpassword": "Ai uitat parola?", + "components.ManageSlideOver.manageModalNoRequests": "Nicio solicitare.", + "components.ManageSlideOver.manageModalTitle": "Administrează {mediaType}", + "components.ManageSlideOver.manageModalRequests": "Solicitări", + "components.MovieDetails.overviewunavailable": "Prezentare Generală Indisponibilă.", + "components.NotificationTypeSelector.issuecreatedDescription": "Trimiteți notificări când sunt raportate probleme.", + "components.NotificationTypeSelector.issuereopened": "Problemă Redeschisă", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Sezon} other {Sezoane}}", + "components.Login.signinwithplex": "Folosește contul tău Plex", + "components.Login.validationemailrequired": "Trebuie să furnizați o adresă de e-mail validă", + "components.ManageSlideOver.manageModalIssues": "Probleme Deschise", + "components.ManageSlideOver.manageModalClearMedia": "Golește Datele", + "components.ManageSlideOver.manageModalMedia": "Media", + "components.ManageSlideOver.manageModalMedia4k": "Media 4K", + "components.ManageSlideOver.mark4kavailable": "Marcați ca Disponibil în 4K", + "components.ManageSlideOver.markallseasons4kavailable": "Marcați Toate Sezoanele ca fiind Disponibile în 4K", + "components.ManageSlideOver.markallseasonsavailable": "Marcați Toate Sezoanele ca Disponibile", + "components.ManageSlideOver.markavailable": "Marcați ca Disponibil", + "components.MovieDetails.originallanguage": "Limbă Originală", + "components.MovieDetails.showmore": "Arată Mai Mult", + "components.MovieDetails.similar": "Titluri Similare", + "components.MovieDetails.physicalrelease": "Lansare Fizică", + "components.MovieDetails.managemovie": "Gestionați Filmul", + "components.MovieDetails.play4konplex": "Vizionează în 4k pe Plex", + "components.MovieDetails.playonplex": "Vizionează pe Plex", + "components.MovieDetails.reportissue": "Raportează o Problemă", + "components.Login.password": "Parolă", + "components.Login.signin": "Autentificare", + "components.Login.signingin": "Se autentifică…", + "components.Login.signinheader": "Autentifică-te pentru a continua", + "components.Login.signinwithoverseerr": "Folosește contul tău pentru {applicationTitle}", + "components.Login.validationpasswordrequired": "Trebuie să furnizați o parolă", + "components.MovieDetails.markavailable": "Marcați ca Disponibil", + "components.MovieDetails.rtaudiencescore": "Scorul Publicului pe Rotten Tomatoes", + "components.MovieDetails.rtcriticsscore": "Tomatometru pe Rotten Tomatoes", + "components.MovieDetails.tmdbuserscore": "Scor Utilizatori pe TMDB", + "components.ManageSlideOver.pastdays": "Acum {days, number} Zile", + "components.ManageSlideOver.opentautulli": "Deschide în Tautilli", + "components.ManageSlideOver.tvshow": "serii", + "components.MediaSlider.ShowMoreCard.seemore": "Vezi Mai Mult", + "components.MovieDetails.MovieCast.fullcast": "Distribuție Completă", + "components.MovieDetails.MovieCrew.fullcrew": "Echipaj Complet", + "components.MovieDetails.budget": "Buget", + "components.MovieDetails.cast": "Distribuție", + "components.MovieDetails.mark4kavailable": "Marcați ca Disponibil în 4K", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Primiți notificări când problemele sunt redeschise de alți utilizatori.", + "components.MovieDetails.watchtrailer": "Vizionați Trailerul", + "components.NotificationTypeSelector.adminissuecommentDescription": "Primiți notificări când alți utilizatori comentează la probleme.", + "components.ManageSlideOver.downloadstatus": "Descărcări", + "components.ManageSlideOver.openarr4k": "Deschide în {arr} 4k", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Aceasta va elimina ireversibil toate datele pentru {mediaType}, inclusiv orice solicitare. Dacă acest articol există în biblioteca dvs. Plex, informațiile media vor fi recreate în timpul următoarei scanări.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Primiți notificări când problemele pe care le-ați raportat sunt redeschise.", + "components.PermissionEdit.advancedrequestDescription": "Acordați permisiunea de a modifica opțiunile avansate de solicitare media.", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Trimiteți notificări atunci când utilizatorii trimit noi solicitări media care sunt aprobate automat.", + "components.NotificationTypeSelector.mediaavailable": "Solicitare Disponibilă", + "components.NotificationTypeSelector.mediaavailableDescription": "Trimiteți notificări când solicitările media devin disponibile.", + "components.NotificationTypeSelector.mediaapproved": "Solicitare Aprobată", + "components.NotificationTypeSelector.mediaapprovedDescription": "Trimiteți notificări când solicitările media sunt aprobate manual.", + "components.NotificationTypeSelector.mediadeclined": "Solicitare Refuzată", + "components.PermissionEdit.admin": "Admin", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Primiți notificări când solicitările dvs. media sunt aprobate.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Primiți notificări când solicitările dvs. media devin disponibile.", + "components.PermissionEdit.adminDescription": "Acces de administrator complet. Ocolește toate celelalte verificări ale permisiunilor.", + "components.PermissionEdit.advancedrequest": "Solicitări Avansate", + "components.NotificationTypeSelector.mediaautorequested": "Solicitare Trimisă Automat", + "components.NotificationTypeSelector.mediaautorequestedDescription": "Primiți notificări atunci când noi solicitări media sunt trimise automat pentru articole din Lista dvs. de Urmărire Plex.", + "components.NotificationTypeSelector.mediafailed": "Procesarea Solicitării Eșuată", + "components.NotificationTypeSelector.mediafailedDescription": "Trimiteți notificări atunci când solicitările media nu pot fi adăugate la Radarr sau Sonarr.", + "components.NotificationTypeSelector.mediarequested": "Solicitarea Așteptă Aprobare", + "components.NotificationTypeSelector.mediarequestedDescription": "Trimiteți notificări atunci când utilizatorii trimit noi solicitări media care necesită aprobare.", + "components.NotificationTypeSelector.notificationTypes": "Tipuri de Notificări", + "components.NotificationTypeSelector.userissuecommentDescription": "Primiți notificări când problemele pe care le-ați raportat primesc comentarii noi.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Primiți notificări când alți utilizatori raportează probleme.", + "components.PermissionEdit.autoapprove": "Aprobare Automată", + "components.PermissionEdit.autoapprove4k": "Aprobare Automată 4K", + "components.PermissionEdit.autoapprove4kDescription": "Acordați aprobare automată pentru toate solicitările media 4K.", + "components.PermissionEdit.autoapprove4kMovies": "Aprobare Automată a Filmelor 4K", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Acordați aprobare automată pentru solicitările de filme 4K.", + "components.PermissionEdit.autoapprove4kSeries": "Aprobare Automată a Seriilor 4K", + "components.PermissionEdit.autoapproveDescription": "Acordați aprobare automată pentru toate solicitările media non-4K.", + "components.PermissionEdit.autoapproveMovies": "Aprobare Automată a Filmelor", + "components.NotificationTypeSelector.mediadeclinedDescription": "Trimiteți notificări atunci când solicitările media sunt refuzate.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Primiți notificări atunci când alți utilizatori trimit noi solicitări media care necesită aprobare.", + "components.NotificationTypeSelector.usermediafailedDescription": "Primiți notificări când solicitările media nu pot fi adăugate la Radarr sau Sonarr.", + "components.PermissionEdit.autoapproveSeriesDescription": "Acordați aprobare automată pentru solicitările de seriale non-4K.", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Primiți notificări când alți utilizatori trimit solicitări media noi, care sunt aprobate automat.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Primiți notificări când solicitările dvs. media sunt refuzate.", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Acordați aprobare automată pentru solicitările de serii 4K.", + "components.PermissionEdit.autoapproveMoviesDescription": "Acordați aprobare automată pentru solicitările de filme non-4K.", + "components.PermissionEdit.autoapproveSeries": "Aprobare Automată a Serialelor", + "components.PermissionEdit.autorequestDescription": "Acordați permisiunea de a trimite automat solicitări pentru conținut media non-4K prin Lista de Urmărire Plex.", + "components.PermissionEdit.autorequest": "Solicitare Automată", + "components.NotificationTypeSelector.userissueresolvedDescription": "Primiți notificări când problemele pe care le-ați raportat sunt rezolvate.", + "components.PermissionEdit.autorequestMovies": "Solicitați Automat Filme", + "components.PermissionEdit.autorequestMoviesDescription": "Acordați permisiunea de a trimite automat solicitări pentru filme non-4K prin Lista de Urmărire Plex.", + "components.MovieDetails.productioncountries": "Producție {countryCount, plural, one {Țară} other {Țări}}", + "components.PermissionEdit.request": "Solicitați", + "components.PermissionEdit.request4kDescription": "Acordați permisiunea de a trimite solicitări pentru conținut media 4K.", + "components.PermissionEdit.managerequestsDescription": "Acordați permisiunea de a gestiona solicitările media. Toate solicitările făcute de un utilizator cu această permisiune vor fi aprobate automat.", + "components.PermissionEdit.request4k": "Solicitați 4K", + "components.PermissionEdit.request4kTv": "Solicitați Seria TV în 4K", + "components.Layout.VersionStatus.streamstable": "Overseerr Stabil", + "components.PermissionEdit.request4kMoviesDescription": "Acordați permisiunea de a trimite solicitări pentru filme 4K.", + "components.PermissionEdit.createissuesDescription": "Acordați permisiunea de a raporta probleme media.", + "components.PermissionEdit.autorequestSeries": "Solicită Automat Seriale TV", + "components.PermissionEdit.autorequestSeriesDescription": "Acordați permisiunea de a trimite automat cereri pentru seriale tv non-4K prin Lista de Urmărire Plex.", + "components.PermissionEdit.createissues": "Raportați Probleme", + "components.PermissionEdit.manageissuesDescription": "Acordați permisiunea de a gestiona problemele media.", + "components.PermissionEdit.managerequests": "Gestionați Solicitările", + "components.PermissionEdit.request4kMovies": "Solicitați Filme 4K", + "components.Layout.VersionStatus.streamdevelop": "Overseerr Dezvoltat", + "components.PermissionEdit.manageissues": "Gestionarea Problemelor", + "components.ManageSlideOver.playedby": "Rulat De", + "components.ManageSlideOver.plays": "{playCount, number} {playCount, plural, one {rulare} other {rulări}}", + "components.ManageSlideOver.alltime": "Dintotdeauna" } diff --git a/src/i18n/locale/ru.json b/src/i18n/locale/ru.json index a4e5dc9e1..2c822999e 100644 --- a/src/i18n/locale/ru.json +++ b/src/i18n/locale/ru.json @@ -871,7 +871,7 @@ "components.IssueDetails.allseasons": "Все сезоны", "components.IssueDetails.allepisodes": "Все эпизоды", "components.ManageSlideOver.manageModalClearMedia": "Очистить данные", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Это приведёт к необратимому удалению всех данных для этого {mediaType}а, включая любые запросы. Если этот элемент существует в вашей библиотеке Plex, мультимедийная информация о нём будет воссоздана во время следующего сканирования.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Это приведёт к необратимому удалению всех данных для этого {mediaType}а, включая любые запросы. Если этот элемент существует в вашей библиотеке {mediaServerName}, мультимедийная информация о нём будет воссоздана во время следующего сканирования.", "components.IssueDetails.problemepisode": "Затронутый эпизод", "components.ManageSlideOver.manageModalRequests": "Запросы", "components.IssueDetails.closeissue": "Закрыть проблему", diff --git a/src/i18n/locale/sq.json b/src/i18n/locale/sq.json index 01ad8a021..3573bf6c6 100644 --- a/src/i18n/locale/sq.json +++ b/src/i18n/locale/sq.json @@ -5,7 +5,7 @@ "components.IssueModal.CreateIssueModal.submitissue": "Paraqit Problemin", "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Raporti i problemit për {title} u paraqit me sukses!", "components.IssueModal.CreateIssueModal.toastviewissue": "Shiko Problemin", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Kjo do të heqë në mënyrë të pakthyeshme të gjitha të dhënat për këtë {mediaType}, duke përfshirë çdo kërkesë. Nëse ky artikull ekziston në bibliotekën tuaj Plex, informacioni i medias do të rikrijohet gjatë skanimit të ardhshëm.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Kjo do të heqë në mënyrë të pakthyeshme të gjitha të dhënat për këtë {mediaType}, duke përfshirë çdo kërkesë. Nëse ky artikull ekziston në bibliotekën tuaj {mediaServerName}, informacioni i medias do të rikrijohet gjatë skanimit të ardhshëm.", "components.AppDataWarning.dockerVolumeMissingDescription": "Monitimi i volumit {appDataPath} nuk u konfigurua siç duhet. Gjithë informacioni do të fshihet kur kontenieri do të mbyllet ose të ristartohet.", "components.Discover.StudioSlider.studios": "Studiot", "components.Layout.UserDropdown.settings": "Cilësimet", diff --git a/src/i18n/locale/sr.json b/src/i18n/locale/sr.json index bfc44009d..bf1364c56 100644 --- a/src/i18n/locale/sr.json +++ b/src/i18n/locale/sr.json @@ -609,7 +609,7 @@ "components.Settings.SettingsAbout.uptodate": "Najsvežiji", "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Morate da navedete važeći JSON korisni teret", "components.Settings.Notifications.validationChatIdRequired": "Morate da navedete važeći ID za ćaskanje", - "components.StatusBadge.playonplex": "Igrajte na Plex-u", + "components.StatusBadge.playonplex": "Igrajte na {mediaServerName}-u", "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Morate da obezbedite pristupni token", "components.UserList.userssaved": "Korisničke dozvole su uspešno sačuvane!" } diff --git a/src/i18n/locale/sv.json b/src/i18n/locale/sv.json index 5d6c6c6bc..715c49921 100644 --- a/src/i18n/locale/sv.json +++ b/src/i18n/locale/sv.json @@ -521,7 +521,7 @@ "components.Settings.scanning": "Synkar…", "components.Settings.scan": "Skanna bibliotek", "components.Settings.regionTip": "Filtrera innehåll efter region tillgänglighet", - "components.Settings.region": "Upptäck Region", + "components.Settings.region": "Upptäck region", "components.Settings.originallanguageTip": "Filtrera innehåll efter originalspråk", "components.Settings.originallanguage": "Upptäck språk", "components.Settings.notificationAgentSettingsDescription": "Konfigurera och aktivera aviseringsagenter.", @@ -683,8 +683,8 @@ "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Serieförfrågnings gräns", "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Filmförfrågnings gräns", "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Överskrid den globala gränsen", - "components.Settings.SettingsUsers.tvRequestLimitLabel": "Global serieförfrågnings gräns", - "components.Settings.SettingsUsers.movieRequestLimitLabel": "Global filmförfrågnings gräns", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Global serieförfrågningsgräns", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Global filmförfrågningsgräns", "components.RequestModal.QuotaDisplay.requiredquotaUser": "Den här användaren behöver ha minst {seasons} {seasons, plural, one {säsongsförfrågan} other {säsongsförfrågningar}} kvar för att skicka in en begäran om denna serie.", "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {säsong} other {säsonger}}", "components.RequestModal.QuotaDisplay.season": "säsong", @@ -951,7 +951,7 @@ "components.NotificationTypeSelector.issuecreated": "Problem rappoterat", "components.PermissionEdit.createissues": "Rapportera problem", "components.PermissionEdit.viewissues": "Visa problem", - "components.ManageSlideOver.manageModalClearMediaWarning": "* Detta tar bort all data för denna {mediaType}, inklusive eventuella begäranden, på ett oåterkalleligt sätt. Om det här objektet finns i ditt Plex-bibliotek kommer medieinformationen att återskapas vid nästa genomsökning.", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Detta tar bort all data för denna {mediaType}, inklusive eventuella begäranden, på ett oåterkalleligt sätt. Om det här objektet finns i ditt {mediaServerName}-bibliotek kommer medieinformationen att återskapas vid nästa genomsökning.", "components.ManageSlideOver.manageModalNoRequests": "Inga förfrågningar.", "components.NotificationTypeSelector.userissueresolvedDescription": "Få meddelande när dina rapporterade problem har blivit lösta.", "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Åtkomsttoken", diff --git a/src/i18n/locale/ua.json b/src/i18n/locale/ua.json new file mode 100644 index 000000000..7b501f94d --- /dev/null +++ b/src/i18n/locale/ua.json @@ -0,0 +1,995 @@ +{ + "components.Discover.discovermovies": "Популярні фільми", + "components.Discover.discovertv": "Популярні серіали", + "components.Discover.popularmovies": "Популярні фільми", + "components.Discover.populartv": "Популярні серіали", + "components.Discover.recentlyAdded": "Нещодавно додані", + "components.Discover.recentrequests": "Останні запити", + "components.Discover.trending": "У трендах", + "components.Discover.upcoming": "Майбутні фільми", + "components.Discover.upcomingmovies": "Майбутні фільми", + "components.Layout.SearchInput.searchPlaceholder": "Пошук фільмів та серіалів", + "components.Layout.Sidebar.dashboard": "Знайти щось нове", + "components.Layout.Sidebar.requests": "Запити", + "components.Layout.Sidebar.settings": "Налаштування", + "components.Layout.Sidebar.users": "Користувачі", + "components.Layout.UserDropdown.signout": "Вихід", + "components.MovieDetails.budget": "Бюджет", + "components.MovieDetails.cast": "У ролях", + "components.MovieDetails.originallanguage": "Мова оригіналу", + "components.MovieDetails.overview": "Огляд", + "components.MovieDetails.overviewunavailable": "Огляд недоступний.", + "components.MovieDetails.recommendations": "Рекомендації", + "components.MovieDetails.releasedate": "{releaseCount, plural, one {Дата релізу} other {Дати релізу}}", + "components.MovieDetails.revenue": "Дохід", + "components.MovieDetails.runtime": "{minutes} хвилин", + "components.MovieDetails.similar": "Схожі фільми", + "components.PersonDetails.appearsin": "Появи у фільмах та серіалах", + "components.PersonDetails.ascharacter": "в ролі {character}", + "components.RequestBlock.seasons": "{seasonCount, plural, one {Сезон} other {Сезони}}", + "components.RequestCard.seasons": "{seasonCount, plural, one {Сезон} other {Сезони}}", + "components.RequestList.RequestItem.seasons": "{seasonCount, plural, one {Сезон} other {Сезони}}", + "components.RequestList.requests": "Запити", + "components.RequestModal.cancel": "Скасувати запит", + "components.RequestModal.extras": "Додатково", + "components.RequestModal.numberofepisodes": "# епізодів", + "components.RequestModal.pendingrequest": "", + "components.RequestModal.requestCancel": "Запит на {title} скасовано.", + "components.RequestModal.requestSuccess": "{title} успішно запрошений!", + "components.RequestModal.requestadmin": "Цей запит буде схвалено автоматично.", + "components.RequestModal.requestfrom": "Запит користувача {username} очікує схвалення.", + "components.RequestModal.requestseasons": "Запросити {seasonCount} {seasonCount, plural, one {сезон} other {сезону(ів)}}", + "components.RequestModal.season": "Сезон", + "components.RequestModal.seasonnumber": "Сезон {number}", + "components.RequestModal.selectseason": "Виберіть сезон(и)", + "components.Search.searchresults": "Результати пошуку", + "components.Settings.Notifications.agentenabled": "Активувати службу", + "components.Settings.Notifications.authPass": "Пароль SMTP", + "components.Settings.Notifications.authUser": "Ім'я користувача SMTP", + "components.Settings.Notifications.emailsender": "Адреса відправника", + "components.Settings.Notifications.smtpHost": "SMTP-хост", + "components.Settings.Notifications.smtpPort": "SMTP порт", + "components.Settings.Notifications.validationSmtpHostRequired": "Ви повинні вказати дійсне ім'я хоста або IP-адресу", + "components.Settings.Notifications.validationSmtpPortRequired": "Ви повинні вказати дійсний номер порту", + "components.Settings.Notifications.webhookUrl": "URL веб-перехоплювача", + "components.Settings.RadarrModal.add": "Додати сервер", + "components.Settings.RadarrModal.apiKey": "Ключ API", + "components.Settings.RadarrModal.baseUrl": "Базовий URL", + "components.Settings.RadarrModal.createradarr": "Додати новий сервер Radarr", + "components.Settings.RadarrModal.defaultserver": "Сервер за замовчуванням", + "components.Settings.RadarrModal.editradarr": "Редагувати сервер Radarr", + "components.Settings.RadarrModal.hostname": "Ім'я хоста або IP-адреса", + "components.Settings.RadarrModal.minimumAvailability": "Мінімальна доступність", + "components.Settings.RadarrModal.port": "Порт", + "components.Settings.RadarrModal.qualityprofile": "Профіль якості", + "components.Settings.RadarrModal.rootfolder": "Кореневий каталог", + "components.Settings.RadarrModal.selectMinimumAvailability": "Виберіть мінімальну доступність", + "components.Settings.RadarrModal.selectQualityProfile": "Виберіть профіль якості", + "components.Settings.RadarrModal.selectRootFolder": "Виберіть кореневий каталог", + "components.Settings.RadarrModal.server4k": "4К сервер", + "components.Settings.RadarrModal.servername": "Назва сервера", + "components.Settings.RadarrModal.ssl": "Використовувати SSL", + "components.Settings.RadarrModal.toastRadarrTestFailure": "Не вдалося підключитися до Radarr.", + "components.Settings.RadarrModal.toastRadarrTestSuccess": "З'єднання з Radarr встановлено успішно!", + "components.Settings.RadarrModal.validationApiKeyRequired": "Ви повинні надати ключ API", + "components.Settings.RadarrModal.validationHostnameRequired": "Ви повинні вказати дійсне ім'я хоста або IP-адресу", + "components.Settings.RadarrModal.validationPortRequired": "Ви повинні вказати дійсний номер порту", + "components.Settings.RadarrModal.validationProfileRequired": "Ви повинні вибрати профіль якості", + "components.Settings.RadarrModal.validationRootFolderRequired": "Ви повинні вибрати кореневий каталог", + "components.Settings.SonarrModal.add": "Додати сервер", + "components.Settings.SonarrModal.apiKey": "Ключ API", + "components.Settings.SonarrModal.baseUrl": "Базовий URL", + "components.Settings.SonarrModal.createsonarr": "Додати новий сервер Sonarr", + "components.Settings.SonarrModal.defaultserver": "Сервер за замовчуванням", + "components.Settings.SonarrModal.editsonarr": "Редагувати сервер Sonarr", + "components.Settings.SonarrModal.hostname": "Ім'я хоста або IP-адреса", + "components.Settings.SonarrModal.port": "Порт", + "components.Settings.SonarrModal.qualityprofile": "Профіль якості", + "components.Settings.SonarrModal.rootfolder": "Кореневий каталог", + "components.Settings.SonarrModal.seasonfolders": "Папки для сезонів", + "components.Settings.SonarrModal.selectQualityProfile": "Виберіть профіль якості", + "components.Settings.SonarrModal.selectRootFolder": "Виберіть кореневий каталог", + "components.Settings.SonarrModal.server4k": "4К сервер", + "components.Settings.SonarrModal.servername": "Назва сервера", + "components.Settings.SonarrModal.ssl": "Використовувати SSL", + "components.Settings.SonarrModal.validationApiKeyRequired": "Ви повинні надати ключ API", + "components.Settings.SonarrModal.validationHostnameRequired": "Ви повинні вказати дійсне ім'я хоста або IP-адресу", + "components.Settings.SonarrModal.validationPortRequired": "Ви повинні вказати дійсний номер порту", + "components.Settings.SonarrModal.validationProfileRequired": "Ви повинні вибрати профіль якості", + "components.Settings.SonarrModal.validationRootFolderRequired": "Ви повинні вибрати кореневий каталог", + "components.Settings.activeProfile": "Активний профіль", + "components.Settings.addradarr": "Додати сервер Radarr", + "components.Settings.address": "Адреса", + "components.Settings.addsonarr": "Додати сервер Sonarr", + "components.Settings.apikey": "Ключ API", + "components.Settings.applicationurl": "URL-адреса програми", + "components.Settings.cancelscan": "Скасувати сканування", + "components.Settings.copied": "Ключ API скопійовано в буфер обміну.", + "components.Settings.currentlibrary": "Поточна бібліотека: {name}", + "components.Settings.default": "За замовчуванням", + "components.Settings.default4k": "4К за замовчуванням", + "components.Settings.deleteserverconfirm": "Ви впевнені, що хочете видалити цей сервер?", + "components.Settings.generalsettings": "Загальні налаштування", + "components.Settings.generalsettingsDescription": "Налаштуйте глобальні параметри та параметри за промовчанням для Jellyseerr.", + "components.Settings.hostname": "Ім'я хоста або IP-адреса", + "components.Settings.librariesRemaining": "Залишилось бібліотек: {count}", + "components.Settings.manualscan": "Сканувати бібліотеки вручну", + "components.Settings.manualscanDescription": "Зазвичай виконується раз на 24 години. Jellyseerr виконає більш агресивну перевірку вашого сервера Plex на предмет нещодавно доданих мультимедіа. Якщо ви вперше налаштовуєте Plex, рекомендується виконати одноразове повне сканування бібліотек вручну!", + "components.Settings.menuAbout": "Про проект", + "components.Settings.menuGeneralSettings": "Спільне", + "components.Settings.menuJobs": "Завдання та кеш", + "components.Settings.menuLogs": "Логи", + "components.Settings.menuNotifications": "Сповіщення", + "components.Settings.menuPlexSettings": "Plex", + "components.Settings.menuServices": "Служби", + "components.Settings.notificationsettings": "Налаштування повідомлень", + "components.Settings.notrunning": "Не працює", + "components.Settings.plexlibraries": "Бібліотеки Plex", + "components.Settings.plexlibrariesDescription": "Бібліотеки, які Jellyseerr сканує на наявність мультимедіа. Налаштуйте та збережіть параметри підключення Plex, потім натисніть кнопку нижче, якщо список бібліотек порожній.", + "components.Settings.plexsettings": "Налаштування Plex", + "components.Settings.plexsettingsDescription": "Налаштуйте параметри вашого сервера Plex. Jellyseerr сканує ваші бібліотеки Plex, щоб визначити доступність контенту.", + "components.Settings.port": "Порт", + "components.Settings.radarrsettings": "Налаштування Radarr", + "components.Settings.sonarrsettings": "Налаштування Sonarr", + "components.Settings.ssl": "SSL", + "components.Settings.startscan": "Почати сканування", + "components.Setup.configureplex": "Налаштуйте Plex", + "components.Setup.configureservices": "Налаштуйте служби", + "components.Setup.continue": "Продовжити", + "components.Setup.finish": "Завершити налаштування", + "components.Setup.finishing": "Завершення…", + "components.Setup.loginwithplex": "Увійти за допомогою Plex", + "components.Setup.signinMessage": "Почніть з входу в систему за допомогою облікового запису Plex", + "components.Setup.welcome": "Ласкаво просимо до Jellyseerr", + "components.TvDetails.cast": "У ролях", + "components.TvDetails.originallanguage": "Мова оригіналу", + "components.TvDetails.overview": "Огляд", + "components.TvDetails.overviewunavailable": "Огляд недоступний.", + "components.TvDetails.recommendations": "Рекомендації", + "components.TvDetails.similar": "Схожі серіали", + "components.UserList.admin": "Адміністратор", + "components.UserList.created": "Приєднався", + "components.UserList.plexuser": "Користувач Plex", + "components.UserList.role": "Роль", + "components.UserList.totalrequests": "Запитів", + "components.UserList.user": "Користувач", + "components.UserList.userlist": "Список користувачів", + "i18n.approve": "Схвалити", + "i18n.approved": "Схвалений", + "i18n.available": "Доступний", + "i18n.cancel": "Скасувати", + "i18n.decline": "Відхилити", + "i18n.declined": "Відхилений", + "i18n.delete": "Видалити", + "i18n.movies": "Фільми", + "i18n.partiallyavailable": "Доступний частково", + "i18n.pending": "Чекаючи", + "i18n.processing": "В обробці", + "i18n.tvshows": "Серіали", + "i18n.unavailable": "Недоступний", + "pages.oops": "Упс", + "pages.returnHome": "Повернутись додому", + "components.CollectionDetails.overview": "Огляд", + "components.CollectionDetails.numberofmovies": "{count} фільмів", + "components.CollectionDetails.requestcollection": "Запросити Колекцію", + "components.Login.email": "Адреса електронної пошти", + "components.UserList.users": "Користувачі", + "components.UserList.userdeleted": "Користувач успішно видалено!", + "components.UserList.usercreatedsuccess": "Користувач успішно створено!", + "components.Settings.SettingsAbout.totalrequests": "Усього запитів", + "components.UserList.sortRequests": "Кількість запитів", + "components.UserList.sortCreated": "Дата приєднання", + "components.Login.password": "Пароль", + "components.UserList.password": "Пароль", + "components.UserList.localuser": "Локальний користувач", + "i18n.edit": "Редагувати", + "components.UserList.deleteuser": "Видалити користувача", + "components.UserList.creating": "Створення…", + "components.UserList.createlocaluser": "Створити локального користувача", + "components.UserList.create": "Створити", + "components.TvDetails.network": "{networkCount, plural, one {Телеканал} other {Телеканали}}", + "components.TvDetails.anime": "Аніме", + "components.StatusChacker.newversionavailable": "Оновити програму", + "components.Settings.toastSettingsSuccess": "Налаштування успішно збережено!", + "components.Settings.serverpresetManualMessage": "Ручне налаштування", + "components.Settings.serverpreset": "Сервер", + "i18n.deleting": "Видалення…", + "components.Settings.applicationTitle": "Назва програми", + "components.Settings.SettingsAbout.Releases.latestversion": "Остання", + "components.Settings.SettingsAbout.Releases.currentversion": "Поточна", + "components.Settings.SonarrModal.syncEnabled": "Увімкнути сканування", + "components.Settings.RadarrModal.syncEnabled": "Увімкнути сканування", + "components.Settings.Notifications.sendSilentlyTip": "Надсилати повідомлення без звуку", + "components.Settings.Notifications.telegramsettingssaved": "Налаштування сповіщень Telegram успішно збережено!", + "components.Settings.Notifications.senderName": "Ім'я відправника", + "components.Settings.Notifications.botAPI": "Токен авторизації бота", + "components.Settings.Notifications.NotificationsPushover.agentenabled": "Активувати службу", + "components.Settings.Notifications.NotificationsSlack.agentenabled": "Активувати службу", + "components.Settings.Notifications.NotificationsWebhook.agentenabled": "Активувати службу", + "components.Search.search": "Пошук", + "components.ResetPassword.resetpassword": "Скидання пароля", + "components.ResetPassword.password": "Пароль", + "components.ResetPassword.confirmpassword": "Підтвердити пароль", + "components.RequestModal.requesterror": "Щось пішло не так під час надсилання запиту.", + "components.RequestModal.requestedited": "Запит на {title} успішно відредаговано!", + "components.RequestModal.requestcancelled": "Запит на {title} скасовано.", + "components.RequestModal.errorediting": "Щось пішло не так під час редагування запиту.", + "components.RequestModal.AdvancedRequester.rootfolder": "Кореневий каталог", + "components.RequestModal.AdvancedRequester.requestas": "Запитати як", + "components.RequestModal.AdvancedRequester.qualityprofile": "Профіль якості", + "components.RequestModal.AdvancedRequester.default": "{name} (за замовчуванням)", + "components.RequestModal.AdvancedRequester.advancedoptions": "Розширені налаштування", + "components.RequestList.sortModified": "Остання зміна", + "components.RequestList.sortAdded": "За датою", + "components.RequestList.showallrequests": "Показати всі запити", + "components.RequestButton.viewrequest": "Подивитися запит", + "i18n.retry": "Повторити", + "i18n.requested": "Запрошений", + "components.PermissionEdit.request4k": "Запити 4K", + "components.PermissionEdit.request": "Запити", + "i18n.request": "Запросити", + "i18n.failed": "Помилка", + "i18n.experimental": "Експериментальний параметр", + "i18n.close": "Закрити", + "i18n.advanced": "Для просунутих користувачів", + "components.Settings.SonarrModal.externalUrl": "Зовнішня URL-адреса", + "components.Settings.RadarrModal.externalUrl": "Зовнішня URL-адреса", + "components.Settings.Notifications.sendSilently": "Надсилати без звуку", + "components.Settings.Notifications.NotificationsWebhook.resetPayload": "Скинути до стандартних налаштувань", + "components.Settings.Notifications.NotificationsWebhook.validationWebhookUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.validationApplicationUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.Notifications.validationUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.RadarrModal.validationApplicationUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.SonarrModal.validationApplicationUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.Notifications.NotificationsSlack.validationWebhookUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.Notifications.NotificationsPushover.userToken": "Ключ користувача або групи", + "components.UserList.email": "Адреса електронної пошти", + "components.ResetPassword.email": "Адреса електронної пошти", + "components.Settings.SonarrModal.languageprofile": "Мовний профіль", + "components.RequestModal.AdvancedRequester.languageprofile": "Мовний профіль", + "components.RequestModal.AdvancedRequester.animenote": "* Цей серіал - аніме.", + "components.RequestList.RequestItem.requested": "Запрошений", + "components.RequestBlock.rootfolder": "Кореневий каталог", + "components.RegionSelector.regionServerDefault": "За замовчуванням ({region})", + "components.RegionSelector.regionDefault": "Всі регіони", + "components.PermissionEdit.viewrequests": "Перегляд запитів", + "components.PermissionEdit.users": "Керування користувачами", + "components.PermissionEdit.settings": "Керування налаштуваннями", + "components.PermissionEdit.managerequests": "Керування запитами", + "components.UserProfile.UserSettings.UserGeneralSettings.admin": "Адміністратор", + "components.PermissionEdit.admin": "Адміністратор", + "components.RequestBlock.profilechanged": "Профіль якості", + "components.UserProfile.recentrequests": "Останні запити", + "components.UserProfile.UserSettings.menuPermissions": "Дозволи", + "components.UserProfile.UserSettings.UserPermissions.permissions": "Дозволи", + "components.UserProfile.UserSettings.menuNotifications": "Сповіщення", + "components.UserProfile.UserSettings.menuGeneralSettings": "Спільне", + "components.UserProfile.UserSettings.menuChangePass": "Пароль", + "components.UserProfile.UserSettings.UserGeneralSettings.localuser": "Локальний користувач", + "components.UserProfile.UserSettings.UserGeneralSettings.generalsettings": "Загальні налаштування", + "components.UserList.sortDisplayName": "Відображуване ім'я", + "components.UserProfile.UserSettings.UserGeneralSettings.displayName": "Відображуване ім'я", + "components.UserProfile.UserSettings.UserPasswordChange.validationCurrentPassword": "Ви повинні вказати свій поточний пароль", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPassword": "Ви повинні підтвердити новий пароль", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsSuccess": "Пароль успішно збережений!", + "components.UserProfile.UserSettings.UserPasswordChange.password": "Пароль", + "components.UserProfile.UserSettings.UserPasswordChange.newpassword": "Новий пароль", + "components.UserProfile.UserSettings.UserPasswordChange.currentpassword": "Поточний пароль", + "components.UserProfile.UserSettings.UserPasswordChange.confirmpassword": "Підтвердіть пароль", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsSuccess": "Налаштування успішно збережено!", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsSuccess": "Дозволи успішно збережені!", + "components.Settings.toastSettingsFailure": "Щось пішло не так при збереженні налаштувань.", + "components.UserProfile.UserSettings.UserGeneralSettings.toastSettingsFailure": "Щось пішло не так при збереженні налаштувань.", + "components.UserProfile.UserSettings.UserPermissions.toastSettingsFailure": "Щось пішло не так при збереженні налаштувань.", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilentlyDescription": "Надсилати повідомлення без звуку", + "components.UserProfile.UserSettings.UserGeneralSettings.plexuser": "Користувач Plex", + "components.UserList.owner": "Власник", + "components.UserProfile.UserSettings.UserGeneralSettings.owner": "Власник", + "components.MovieDetails.markavailable": "Позначити як доступний", + "components.StatusChacker.reloadOverseerr": "Перезавантажити", + "components.StatusBadge.status4k": "4K {status}", + "pages.errormessagewithcode": "{statusCode} - {error}", + "components.Settings.Notifications.NotificationsPushbullet.accessToken": "Токен доступу", + "components.Settings.Notifications.NotificationsLunaSea.validationWebhookUrl": "Ви повинні вказати дійсну URL-адресу", + "components.Settings.Notifications.NotificationsLunaSea.profileName": "Назва профілю", + "components.ResetPassword.resetpasswordsuccessmessage": "Пароль скинутий успішно!", + "components.ResetPassword.passwordreset": "Скинути пароль", + "components.RequestModal.edit": "Редагувати запит", + "components.RequestModal.QuotaDisplay.movie": "фільм", + "components.RequestModal.AdvancedRequester.tags": "Теги", + "components.RequestModal.AdvancedRequester.selecttags": "Вибрати теги", + "components.RequestModal.AdvancedRequester.notagoptions": "Тегов немає.", + "components.RequestModal.AdvancedRequester.folder": "{path} ({space})", + "components.RequestList.RequestItem.requesteddate": "Запрошений", + "components.RequestList.RequestItem.modifieduserdate": "{date} користувачем {user}", + "components.RequestList.RequestItem.modified": "Змінено", + "components.RequestList.RequestItem.editrequest": "Редагувати запит", + "components.RequestList.RequestItem.deleterequest": "Видалити запит", + "components.RequestList.RequestItem.cancelRequest": "Скасувати запит", + "components.RequestCard.deleterequest": "Видалити запит", + "components.PlexLoginButton.signinwithplex": "Увійти", + "components.PersonDetails.lifespan": "{birthdate} – {deathdate}", + "components.PersonDetails.alsoknownas": "Також відомий(а) як: {names}", + "components.NotificationTypeSelector.notificationTypes": "Типи повідомлень", + "components.MovieDetails.watchtrailer": "Дивитись трейлер", + "components.MovieDetails.originaltitle": "Назва оригіналу", + "components.Login.signinwithplex": "Використовуйте ваш обліковий запис Plex", + "components.Login.signinheader": "Увійдіть, щоб продовжити", + "components.Login.signin": "Увійти", + "components.Login.forgotpassword": "Забули пароль?", + "components.Layout.UserDropdown.settings": "Налаштування", + "components.Layout.UserDropdown.myprofile": "Профіль", + "components.LanguageSelector.originalLanguageDefault": "Всі мови", + "components.LanguageSelector.languageServerDefault": "За замовчуванням ({language})", + "components.Discover.StudioSlider.studios": "Студії", + "components.Discover.NetworkSlider.networks": "Телеканали", + "components.Discover.DiscoverStudio.studioMovies": "Фільми {studio}", + "components.Discover.DiscoverMovieLanguage.languageMovies": "Фільми мовою \"{language}\"", + "components.Discover.DiscoverMovieGenre.genreMovies": "Фільми в жанрі \"{genre}\"", + "components.Settings.SettingsAbout.overseerrinformation": "Про Jellyseerr", + "components.Settings.SettingsAbout.githubdiscussions": "Обговорення на GitHub", + "components.Settings.enablessl": "Використовувати SSL", + "components.Settings.is4k": "4К", + "components.Settings.mediaTypeMovie": "фільм", + "components.Settings.SonarrModal.tags": "Теги", + "components.Settings.RadarrModal.tags": "Теги", + "i18n.testing": "Тестування…", + "i18n.test": "Протестувати", + "i18n.status": "Статус", + "i18n.saving": "Збереження…", + "i18n.previous": "Попередня", + "i18n.next": "Наступна", + "i18n.movie": "Фільм", + "i18n.canceling": "Скасувати…", + "i18n.back": "Назад", + "i18n.all": "Всі", + "i18n.settings": "Налаштування", + "components.UserProfile.UserSettings.UserNotificationSettings.notifications": "Сповіщення", + "components.Settings.plex": "Plex", + "components.Settings.notifications": "Сповіщення", + "components.Settings.SettingsUsers.users": "Користувачі", + "components.Settings.SettingsLogs.resumeLogs": "Відновити", + "components.Settings.SettingsLogs.pauseLogs": "Зупинити", + "components.Settings.SettingsLogs.message": "Повідомлення", + "components.Settings.SettingsLogs.label": "Мітка", + "components.Settings.SettingsLogs.filterWarn": "Попередження", + "components.Settings.SettingsLogs.filterInfo": "Інформаційні", + "components.Settings.SettingsLogs.filterError": "Помилки", + "components.Settings.menuUsers": "Користувачі", + "components.Settings.scanning": "Синхронізація…", + "i18n.loading": "Завантаження…", + "components.UserProfile.UserSettings.UserGeneralSettings.user": "Користувач", + "components.UserProfile.UserSettings.UserGeneralSettings.role": "Роль", + "components.Settings.webhook": "Веб-перехоплювач", + "components.Setup.setup": "Налаштування", + "components.Settings.SettingsJobsCache.process": "Процес", + "components.Settings.SettingsJobsCache.command": "Команда", + "components.Settings.SettingsJobsCache.jobtype": "Тип", + "components.Settings.SettingsJobsCache.cache": "Кеш", + "components.Settings.SettingsAbout.documentation": "Документація", + "components.PersonDetails.crewmember": "У складі знімальної групи", + "components.Settings.SettingsAbout.Releases.releases": "Релізи", + "components.Settings.SettingsAbout.version": "Версія", + "components.UserProfile.ProfileHeader.profile": "Подивитися профіль", + "components.Settings.SettingsJobsCache.cachename": "Назва кеша", + "components.Settings.SettingsJobsCache.cacheksize": "Розмір ключів", + "components.Settings.SettingsJobsCache.cachekeys": "Усього ключів", + "components.UserList.bulkedit": "Масове редагування", + "components.MediaSlider.ShowMoreCard.seemore": "Подивитися більше", + "components.TvDetails.watchtrailer": "Дивитись трейлер", + "components.Settings.SettingsAbout.timezone": "Годинний пояс", + "components.Settings.SettingsAbout.supportoverseerr": "Підтримати Jellyseerr", + "components.NotificationTypeSelector.usermediaAutoApprovedDescription": "Отримувати повідомлення, коли інші користувачі надсилають нові медіа-запити, які схвалюються автоматично.", + "components.NotificationTypeSelector.mediarequestedDescription": "Надсилати повідомлення, коли користувачі надсилають нові медіа-запити, які вимагають схвалення.", + "components.NotificationTypeSelector.mediarequested": "Запити медіафайлів", + "components.NotificationTypeSelector.mediafailedDescription": "Відправляти повідомлення, коли медіа-запити не вдається додати до Radarr або Sonarr.", + "components.NotificationTypeSelector.mediafailed": "Помилки при додаванні медіа-запитів", + "components.NotificationTypeSelector.mediadeclinedDescription": "Надсилати повідомлення, коли медіа-запити відхиляються.", + "components.NotificationTypeSelector.mediaAutoApprovedDescription": "Надсилати повідомлення, коли користувачі надсилають нові медіа-запити, які схвалюються автоматично.", + "components.NotificationTypeSelector.mediaAutoApproved": "Автоматичне схвалення медіа-запитів", + "components.NotificationTypeSelector.mediaapproved": "Схвалення медіа-запитів", + "components.NotificationTypeSelector.mediaapprovedDescription": "Надсилати повідомлення, коли медіа-запити схвалюються вручну.", + "components.NotificationTypeSelector.mediadeclined": "Відхилення медіа-запитів", + "components.NotificationTypeSelector.mediaavailableDescription": "Надсилати повідомлення, коли запитані медіафайли стають доступними.", + "components.NotificationTypeSelector.mediaavailable": "Доступні нові медіафайли", + "components.MovieDetails.MovieCrew.fullcrew": "Повна знімальна група", + "components.MovieDetails.viewfullcrew": "Подивитися повну знімальну групу", + "components.MovieDetails.showmore": "Розгорнути", + "components.MovieDetails.showless": "Згорнути", + "components.MovieDetails.playonplex": "Відтворити в Plex", + "components.MovieDetails.play4konplex": "Відтворити в Plex в 4К", + "components.MovieDetails.mark4kavailable": "Позначити як доступний у 4К", + "components.MovieDetails.MovieCast.fullcast": "Повний акторський склад", + "components.Login.validationpasswordrequired": "Ви повинні надати пароль", + "components.Login.validationemailrequired": "Ви повинні вказати дійсну адресу електронної пошти", + "components.Login.signinwithoverseerr": "Використовуйте ваш обліковий запис {applicationTitle}", + "components.Login.signingin": "Виконується вхід...", + "components.Login.loginerror": "Щось пішло не так при спробі виконати вхід.", + "components.Layout.LanguagePicker.displaylanguage": "Мова інтерфейсу", + "components.DownloadBlock.estimatedtime": "Приблизно {time}", + "components.Discover.upcomingtv": "Майбутні серіали", + "components.Discover.discover": "Знайти щось нове", + "components.Discover.TvGenreSlider.tvgenres": "Серіали за жанрами", + "components.Discover.TvGenreList.seriesgenres": "Серіали за жанрами", + "components.Discover.MovieGenreSlider.moviegenres": "Фільми за жанрами", + "components.Discover.MovieGenreList.moviegenres": "Фільми за жанрами", + "components.Discover.DiscoverTvLanguage.languageSeries": "Серіали мовою \"{language}\"", + "components.Discover.DiscoverTvGenre.genreSeries": "Серіали в жанрі \"{genre}\"", + "components.Discover.DiscoverNetwork.networkSeries": "Серіали {network}", + "components.CollectionDetails.requestcollection4k": "Запросити Колекцію в 4К", + "components.QuotaSelector.movies": "{count, plural, one {фільм} other {фільми}}", + "components.RequestModal.QuotaDisplay.movielimit": "{limit, plural, one {фільм} other {фільми}}", + "components.RequestModal.QuotaDisplay.allowedRequestsUser": "Цьому користувачеві дозволено запитувати {limit} {type} кожні {days} днів.", + "components.RequestModal.QuotaDisplay.allowedRequests": "Вам дозволено запитувати {limit} {type} кожні {days} днів.", + "components.Settings.SonarrModal.testFirstRootFolders": "Протестувати з'єднання для завантаження кореневих каталогів", + "components.Settings.SonarrModal.loadingrootfolders": "Завантаження кореневих каталогів…", + "components.Settings.SonarrModal.animerootfolder": "Кореневий каталог для аніме", + "components.Settings.RadarrModal.testFirstRootFolders": "Протестувати підключення для завантаження кореневих каталогів", + "components.Settings.RadarrModal.loadingrootfolders": "Завантаження кореневих каталогів…", + "components.RequestModal.AdvancedRequester.destinationserver": "Сервер-одержувач", + "components.RequestList.RequestItem.mediaerror": "Назва, пов'язана з цим запитом, більше недоступна.", + "components.RequestList.RequestItem.failedretry": "Щось пішло не так при спробі повторити запит.", + "components.RequestCard.mediaerror": "Назва, пов'язана з цим запитом, більше недоступна.", + "components.RequestCard.failedretry": "Щось пішло не так при спробі повторити запит.", + "components.RequestButton.viewrequest4k": "Подивитися 4К запит", + "components.RequestButton.requestmore4k": "Запросити більше у 4К", + "components.RequestButton.requestmore": "Запросити більше", + "components.RequestButton.declinerequests": "Відхилити {requestCount, plural, one {запит} other {{requestCount} запиту(ів)}}", + "components.RequestButton.declinerequest4k": "Відхилити 4К запит", + "components.RequestButton.declinerequest": "Відхилити запит", + "components.RequestButton.approve4krequests": "Схвалити {requestCount, plural, one {4К запит} other {{requestCount} 4К запиту(ів)}}", + "components.RequestButton.decline4krequests": "Відхилити {requestCount, plural, one {4К запит}} other {{requestCount} 4К запиту(ів)}}", + "components.RequestButton.approverequests": "Схвалити {requestCount, plural, one {запит} other {{requestCount} запиту(ів)}}", + "components.RequestButton.approverequest4k": "Схвалити 4К запит", + "components.RequestButton.approverequest": "Схвалити запит", + "components.RequestBlock.server": "Сервер-одержувач", + "components.QuotaSelector.tvRequests": "{quotaLimit} {сезонів} за {quotaDays} {днів}", + "components.QuotaSelector.seasons": "{count, plural, one {сезон} other {сезони}}", + "components.RequestBlock.requestoverrides": "Перевизначення запиту", + "components.QuotaSelector.unlimited": "Необмежено", + "components.QuotaSelector.movieRequests": "{quotaLimit} {фільмів} за {quotaDays} {днів}", + "components.QuotaSelector.days": "{count, plural, one {день} other {днів}}", + "components.PlexLoginButton.signingin": "Виконується вхід...", + "components.PersonDetails.birthdate": "Народжений {birthdate}", + "components.PermissionEdit.viewrequestsDescription": "Надати дозвіл на перегляд медіа-запитів, надісланих іншими користувачами.", + "components.PermissionEdit.usersDescription": "Надати дозвіл на керування користувачами. Користувачі з цим дозволом не можуть надавати права адміністратора та редагувати користувачів, які є адміністраторами.", + "components.PermissionEdit.settingsDescription": "Надати дозвіл на зміну глобальних налаштувань. Користувач повинен мати цей дозвіл, щоб надати його іншим.", + "components.PermissionEdit.requestTvDescription": "Надати дозвіл на надсилання запитів усіх серіалів, відмінних від 4К.", + "components.PermissionEdit.requestTv": "Запити серіалів", + "components.PermissionEdit.requestMoviesDescription": "Надати дозвіл на надсилання запитів усіх фільмів, відмінних від 4К.", + "Components.PermissionEdit.requestMovies": "Запити фільмів", + "components.PermissionEdit.requestDescription": "Надати дозвіл на надсилання запитів усіх медіафайлів, відмінних від 4К.", + "components.PermissionEdit.request4kTvDescription": "Надати дозвіл на надсилання запитів серіалів у 4К.", + "components.PermissionEdit.request4kTv": "Запити серіалів у 4К", + "components.PermissionEdit.request4kMoviesDescription": "Надати дозвіл на надсилання запитів фільмів у 4К.", + "components.PermissionEdit.request4kMovies": "Запити фільмів у 4К", + "components.PermissionEdit.request4kDescription": "Надати дозвіл на надсилання запитів медіафайлів у 4К.", + "components.PermissionEdit.managerequestsDescription": "Надати дозвіл на керування медіа-запитами. Всі запити користувача, що має цю роздільну здатність, будуть схвалюватися автоматично.", + "components.PermissionEdit.autoapproveSeriesDescription": "Надати дозвіл на автоматичне схвалення всіх серіалів, відмінних від 4К.", + "components.PermissionEdit.autoapproveSeries": "Автоматичне схвалення серіалів", + "components.PermissionEdit.autoapprove4kMoviesDescription": "Надати дозвіл на автоматичне схвалення 4К фільмів.", + "Components.PermissionEdit.autoapprove4kMovies": "Автоматичне схвалення 4К фільмів", + "components.PermissionEdit.autoapprove4kSeries": "Автоматичне схвалення 4К серіалів", + "components.PermissionEdit.autoapprove4kSeriesDescription": "Надати дозвіл на автоматичне схвалення 4К серіалів.", + "components.PermissionEdit.autoapproveMoviesDescription": "Надати дозвіл на автоматичне схвалення всіх фільмів, відмінних від 4К.", + "Components.PermissionEdit.autoapproveMovies": "Автоматичне схвалення фільмів", + "components.PermissionEdit.autoapprove4kDescription": "Надати дозвіл на автоматичне схвалення всіх 4К медіа-запитів.", + "components.PermissionEdit.autoapproveDescription": "Надати дозвіл на автоматичне схвалення всіх медіа-запитів, відмінних від 4К.", + "components.PermissionEdit.autoapprove4k": "Автоматичне схвалення 4К", + "components.PermissionEdit.autoapprove": "Автоматичне схвалення", + "components.PermissionEdit.advancedrequestDescription": "Надати дозвіл на зміну додаткових параметрів запиту.", + "components.PermissionEdit.advancedrequest": "Розширені запити", + "components.PermissionEdit.adminDescription": "Адміністратор має повний доступ. Ігнорує всі інші налаштування дозволів.", + "components.NotificationTypeSelector.usermediarequestedDescription": "Отримувати повідомлення, коли інші користувачі надсилають нові медіа-запити, які вимагають схвалення.", + "components.NotificationTypeSelector.usermediafailedDescription": "Отримувати повідомлення, коли медіа-запити не вдається додати до Radarr або Sonarr.", + "components.NotificationTypeSelector.usermediadeclinedDescription": "Отримувати повідомлення, коли медіа-запити відхиляються.", + "components.NotificationTypeSelector.usermediaavailableDescription": "Отримувати сповіщення, коли медіафайли, які ви запросили, стають доступними.", + "components.NotificationTypeSelector.usermediaapprovedDescription": "Отримувати повідомлення, коли ваші медіа-запити отримують схвалення.", + "components.Layout.VersionStatus.commitsbehind": "{commitsBehind} {commitsBehind, plural, one {комміт} other {коммітів}} позаду", + "components.MovieDetails.studio": "{studioCount, plural, one {Студія} other {Студії}}", + "components.Layout.VersionStatus.streamstable": "Стабільна версія Jellyseerr", + "components.Layout.VersionStatus.streamdevelop": "Версія Jellyseerr для розробки", + "components.Layout.VersionStatus.outofdate": "Застаріла", + "components.AppDataWarning.dockerVolumeMissingDescription": "Підключення тома {appDataPath} налаштовано неправильно. Всі дані будуть видалені при зупинці або перезапуску контейнера.", + "components.RequestModal.QuotaDisplay.requestsremaining": "{remaining, plural, =0 {запитів {type} не залишилося} other {залишилось # запиту(ів) {type}}}", + "components.RequestModal.QuotaDisplay.quotaLinkUser": "Ви можете переглянути зведення обмежень на кількість запитів цього користувача на сторінці його профілю.", + "components.RequestModal.QuotaDisplay.quotaLink": "Ви можете переглянути зведення ваших обмежень на кількість запитів на сторінці вашого профілю.", + "components.RequestModal.QuotaDisplay.notenoughseasonrequests": "Залишилося недостатньо запитів на сезони", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSending": "Надсилання тестового повідомлення веб-перехоплювачу…", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestFailed": "Не вдалося надіслати тестове повідомлення веб-перехоплювачу.", + "components.Settings.Notifications.NotificationsWebhook.templatevariablehelp": "Допомога за змінними шаблону", + "components.Settings.Notifications.NotificationsWebhook.resetPayloadSuccess": "Корисне навантаження JSON успішно скинуто до стандартних налаштувань!", + "components.Settings.Notifications.NotificationsWebhook.customJson": "Корисне навантаження JSON", + "components.Settings.Notifications.NotificationsWebhook.authheader": "Заголовок авторизації", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingssaved": "Налаштування веб-повідомлень успішно збережено!", + "components.Settings.Notifications.NotificationsWebPush.webpushsettingsfailed": "Не вдалося зберегти налаштування веб-повідомлень.", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSuccess": "Тестове веб-повідомлення надіслано!", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestSending": "Надсилання тестового веб-push-сповіщення…", + "components.Settings.Notifications.NotificationsWebPush.toastWebPushTestFailed": "Не вдалося надіслати тестове веб-push-сповіщення.", + "components.Settings.Notifications.NotificationsWebPush.httpsRequirement": "Щоб отримувати веб-push-сповіщення, Jellyseerr повинен обслуговуватися за протоколом HTTPS.", + "components.Settings.Notifications.NotificationsSlack.webhookUrlTip": "Створіть інтеграцію вхідного веб-перехоплювача", + "components.Settings.Notifications.NotificationsSlack.webhookUrl": "URL веб-перехоплювача", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSuccess": "Тестове повідомлення надіслано до Slack!", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestSending": "Надсилання тестового повідомлення у Slack…", + "components.Settings.Notifications.NotificationsSlack.toastSlackTestFailed": "Не вдалося надіслати тестове повідомлення до Slack.", + "components.Settings.Notifications.NotificationsSlack.slacksettingssaved": "Налаштування повідомлень Slack успішно збережено!", + "components.Settings.Notifications.NotificationsSlack.slacksettingsfailed": "Не вдалося зберегти налаштування повідомлень Slack.", + "components.Settings.Notifications.NotificationsPushover.validationUserTokenRequired": "Ви повинні надати дійсний ключ користувача або групи", + "components.Settings.Notifications.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsWebhook.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsSlack.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsPushbullet.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsLunaSea.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsPushover.validationTypes": "Ви повинні вибрати хоча б один тип повідомлень", + "components.Settings.Notifications.NotificationsPushover.validationAccessTokenRequired": "Ви повинні надати дійсний токен програми", + "components.Settings.Notifications.NotificationsPushover.userTokenTip": "Ваш тридцятизначний ідентифікатор користувача або групи", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSuccess": "Тестове повідомлення надіслано в Pushover!", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestSending": "Надсилання тестового повідомлення Pushover…", + "components.Settings.Notifications.NotificationsPushover.toastPushoverTestFailed": "Не вдалося надіслати тестове повідомлення Pushover.", + "components.Settings.Notifications.NotificationsPushover.pushoversettingssaved": "Параметри сповіщень Pushover успішно збережені!", + "components.Settings.Notifications.NotificationsPushover.pushoversettingsfailed": "Не вдалося зберегти налаштування сповіщень Pushover.", + "components.Settings.Notifications.NotificationsPushover.accessTokenTip": "Зареєструйте програму для використання з Jellyseerr", + "i18n.view": "Подивитися", + "i18n.notrequested": "Не запрошений", + "i18n.noresults": "Результатів немає.", + "i18n.delimitedlist": "{a}, {b}", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrl": "URL веб-перехоплювача", + "components.Settings.Notifications.NotificationsLunaSea.webhookUrlTip": "URL веб-перехоплювача для повідомлень на основі користувача або пристрою", + "components.Settings.Notifications.NotificationsPushover.accessToken": "Токен API програми", + "components.Settings.Notifications.NotificationsPushbullet.validationAccessTokenRequired": "Ви повинні надати токен доступу", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSuccess": "Тестове повідомлення надіслано в Pushbullet!", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestSending": "Надсилання тестового повідомлення в Pushbullet…", + "components.Settings.Notifications.NotificationsPushbullet.toastPushbulletTestFailed": "Не вдалося надіслати тестове повідомлення до Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsSaved": "Налаштування сповіщень Pushbullet успішно збережено!", + "components.Settings.Notifications.NotificationsPushbullet.pushbulletSettingsFailed": "Не вдалося зберегти налаштування сповіщень Pushbullet.", + "components.Settings.Notifications.NotificationsPushbullet.accessTokenTip": "Створіть токен у налаштуваннях облікового запису", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSuccess": "Тестове повідомлення надіслано до LunaSea!", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestSending": "Надсилання тестового повідомлення в LunaSea…", + "components.Settings.Notifications.NotificationsLunaSea.toastLunaSeaTestFailed": "Не вдалося надіслати тестове повідомлення до LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.settingsSaved": "Налаштування повідомлень LunaSea успішно збережено!", + "components.Settings.Notifications.NotificationsLunaSea.settingsFailed": "Не вдалося зберегти налаштування повідомлень LunaSea.", + "components.Settings.Notifications.NotificationsLunaSea.profileNameTip": "Потрібно лише в тому випадку, якщо не використовується профіль default", + "components.Settings.Notifications.NotificationsWebPush.agentenabled": "Активувати службу", + "components.Settings.Notifications.NotificationsPushbullet.agentEnabled": "Активувати службу", + "components.Settings.Notifications.NotificationsLunaSea.agentenabled": "Активувати службу", + "components.Settings.notificationAgentSettingsDescription": "Налаштуйте та активуйте служби сповіщень.", + "components.ResetPassword.emailresetlink": "Надіслати посилання для відновлення електронною поштою", + "pages.somethingwentwrong": "Щось пішло не так", + "pages.serviceunavailable": "Сервіс недоступний", + "pages.pagenotfound": "Сторінку не знайдено", + "pages.internalservererror": "Внутрішня помилка сервера", + "components.ResetPassword.validationpasswordrequired": "Ви повинні надати пароль", + "components.ResetPassword.validationpasswordminchars": "Пароль занадто короткий: він повинен містити не менше 8 символів", + "components.ResetPassword.validationpasswordmatch": "Паролі повинні збігатися", + "components.ResetPassword.validationemailrequired": "Ви повинні вказати дійсну адресу електронної пошти", + "components.ResetPassword.requestresetlinksuccessmessage": "Посилання для скидання пароля буде надіслано на вказану адресу електронної пошти, якщо вона пов'язана з дійсним користувачем.", + "components.ResetPassword.gobacklogin": "Повернутися до сторінки входу", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguage": "Мови для пошуку фільмів та серіалів", + "components.Settings.region": "Регіон для пошуку фільмів та серіалів", + "components.Settings.originallanguage": "Мови для пошуку фільмів та серіалів", + "components.TvDetails.seasons": "{seasonCount, plural, one {# сезон} other {# сезонів}}", + "components.RequestModal.QuotaDisplay.requiredquotaUser": "Цьому користувачеві необхідно мати принаймні {seasons} {seasons, plural, one {запит на сезони} other {запиту(ів) на сезони}} для того, щоб надіслати запит на цей серіал.", + "components.RequestModal.QuotaDisplay.requiredquota": "Вам необхідно мати принаймні {seasons} {seasons, plural, one {запит на сезони} other {запиту(ів) на сезони}} для того , щоб надіслати запит на цей серіал.", + "components.RequestModal.pending4krequest": "", + "components.RequestModal.autoapproval": "Автоматичне схвалення", + "i18n.usersettings": "Налаштування користувача", + "i18n.showingresults": "Показуються результати з {from} по {to} з {total}", + "i18n.save": "Зберегти зміни", + "i18n.retrying": "Повтор…", + "i18n.resultsperpage": "Відобразити {pageSize} результатів на сторінці", + "i18n.requesting": "Запит…", + "i18n.request4k": "Запросити до 4К", + "i18n.areyousure": "Ви впевнені?", + "components.StatusChacker.newversionDescription": "Jellyseerr було оновлено! Будь ласка, натисніть кнопку нижче, щоб перезавантажити сторінку.", + "components.RequestModal.alreadyrequested": "Вже запрошений", + "components.RequestModal.SearchByNameModal.notvdbiddescription": "Ми не змогли автоматично виконати ваш запит. Будь ласка, виберіть правильний збіг зі списку нижче.", + "components.TvDetails.originaltitle": "Назва оригіналу", + "components.Settings.validationApplicationTitle": "Ви повинні вказати назву програми", + "i18n.tvshow": "Серіал", + "components.Settings.partialRequestsEnabled": "Дозволити часткові запити серіалів", + "components.Settings.mediaTypeSeries": "серіал", + "components.UserProfile.UserSettings.UserGeneralSettings.region": "Регіон для пошуку фільмів та серіалів", + "components.RequestModal.QuotaDisplay.seasonlimit": "{limit, plural, one {сезон} other {сезони}}", + "components.RequestModal.QuotaDisplay.season": "сезон", + "components.RequestModal.pendingapproval": "Ваш запит чекає схвалення.", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingssaved": "Налаштування повідомлень електронною поштою успішно збережено!", + "components.UserProfile.UserSettings.UserNotificationSettings.emailsettingsfailed": "Не вдалося зберегти налаштування повідомлень електронною поштою.", + "components.UserProfile.UserSettings.UserGeneralSettings.applanguage": "Мова інтерфейсу", + "components.UserList.validationpasswordminchars": "Пароль занадто короткий: він повинен містити не менше 8 символів", + "components.UserList.nouserstoimport": "Немає нових користувачів для імпорту з Plex.", + "components.UserList.autogeneratepasswordTip": "Надіслати користувачеві пароль, згенерований сервером, електронною поштою", + "components.TvDetails.viewfullcrew": "Подивитися повну знімальну групу", + "components.TvDetails.showtype": "Тип серіалу", + "components.TvDetails.TvCrew.fullseriescrew": "Повна знімальна група серіалу", + "components.TvDetails.TvCast.fullseriescast": "Повний акторський склад серіалу", + "components.Settings.trustProxyTip": "Дозволяє Jellyseerr коректно реєструвати IP-адреси клієнтів за проксі-сервером (Jellyseerr необхідно перезавантажити, щоб зміни набули чинності)", + "components.Settings.originallanguageTip": "Контент фільтрується за мовою оригіналу", + "components.Settings.noDefaultNon4kServer": "Якщо ви використовуєте один сервер {serverType} для контенту, в тому числі і для 4К, або якщо ви завантажуєте лише контент 4K, ваш сервер {serverType} НЕ має бути позначений як 4К сервер.", + "components.UserList.localLoginDisabled": "Параметр Увімкнути локальний вхід в даний час вимкнено.", + "components.Settings.SettingsLogs.showall": "Показати всі логі", + "components.UserProfile.UserSettings.UserGeneralSettings.seriesrequestlimit": "Обмеження кількості запитів на серіали", + "components.UserProfile.UserSettings.UserGeneralSettings.regionTip": "Контент фільтрується за доступністю у вибраному регіоні", + "components.UserProfile.UserSettings.UserGeneralSettings.movierequestlimit": "Обмеження кількості запитів на фільми", + "components.UserProfile.UserSettings.UserGeneralSettings.enableOverride": "Перевизначити глобальні обмеження", + "components.Settings.noDefaultServer": "Принаймні один сервер {serverType} повинен бути позначений як сервер за промовчанням для обробки запитів на {mediaType}и.", + "components.Settings.noDefault4kServer": "4K сервер {serverType} повинен бути позначений як сервер за промовчанням, щоб користувачі могли надсилати запити на 4K {mediaType}и.", + "components.Settings.SonarrModal.validationLanguageProfileRequired": "Ви повинні вибрати мовний профіль", + "components.Settings.validationApplicationUrlTrailingSlash": "URL-адреса не повинна закінчуватися косою межею", + "components.Settings.RadarrModal.validationBaseUrlLeadingSlash": "Базова URL-адреса повинна мати косу межу на початку", + "components.Settings.SonarrModal.validationBaseUrlLeadingSlash": "Базова URL-адреса повинна мати косу межу на початку", + "components.Settings.SonarrModal.testFirstLanguageProfiles": "Протестувати підключення для завантаження мовних профілів", + "components.Settings.SonarrModal.loadingTags": "Завантаження тегів…", + "components.Settings.SonarrModal.enableSearch": "Увімкнути автоматичний пошук", + "components.Settings.SonarrModal.edit4ksonarr": "Редагувати 4К сервер Sonarr", + "components.Settings.toastApiKeyFailure": "Щось пішло не так при створенні нового ключа API.", + "components.Settings.csrfProtectionTip": "Встановлює доступ до API ззовні тільки для читання (потрібно HTTPS, для набрання чинності необхідно перезавантажити Jellyseerr)", + "components.Settings.SonarrModal.animequalityprofile": "Профіль якості для аніме", + "components.Settings.SonarrModal.animelanguageprofile": "Мовний профіль для аніме", + "components.Settings.SonarrModal.animeTags": "Теги для аніме", + "components.Settings.SettingsUsers.userSettings": "Налаштування користувачів", + "components.Settings.SettingsUsers.tvRequestLimitLabel": "Загальне обмеження кількості запитів серіалів", + "components.Settings.SettingsUsers.toastSettingsSuccess": "Налаштування користувачів успішно збережено!", + "components.Settings.SettingsUsers.toastSettingsFailure": "Щось пішло не так при збереженні налаштувань.", + "components.Settings.SettingsUsers.newPlexLoginTip": "Дозволити користувачам {mediaServerName} входити до системи без попереднього імпорту", + "components.Settings.SettingsUsers.newPlexLogin": "Увімкнути вхід через {mediaServerName} для нових користувачів", + "components.Settings.SettingsUsers.movieRequestLimitLabel": "Загальне обмеження кількості запитів фільмів", + "components.Settings.SettingsUsers.localLoginTip": "Дозволити користувачам входити в систему, використовуючи свою адресу електронної пошти та пароль замість Plex OAuth", + "components.Settings.SettingsUsers.localLogin": "Увімкнути локальний вхід", + "components.Settings.SettingsUsers.defaultPermissionsTip": "Початкові дозволи, надані новим користувачам", + "components.Settings.SettingsUsers.defaultPermissions": "Дозволи за замовчуванням", + "components.Settings.SettingsLogs.time": "Час", + "components.Settings.SettingsLogs.level": "Важливість", + "components.Settings.SettingsLogs.filterDebug": "Налагоджувальні", + "components.Settings.SettingsLogs.extraData": "Додаткова інформація", + "components.Settings.SettingsLogs.copyToClipboard": "Скопіювати в буфер обміну", + "components.Settings.serverpresetRefreshing": "Отримання списку серверів…", + "components.Settings.SettingsJobsCache.jobstarted": "Завдання \"{jobname}\" запущено.", + "components.Settings.cacheImagesTip": "Оптимізувати та зберігати всі зображення локально (споживає значний обсяг дискового простору)", + "components.Settings.cacheImages": "Увімкнути кешування зображень", + "components.Settings.SettingsJobsCache.unknownJob": "Невідоме завдання", + "components.Settings.SettingsJobsCache.sonarr-scan": "Сканування Sonarr", + "components.Settings.SettingsJobsCache.runnow": "Виконати зараз", + "components.Settings.SettingsJobsCache.radarr-scan": "Сканування Radarr", + "components.Settings.SettingsJobsCache.plex-recently-added-scan": "Сканування нещодавно доданих медіафайлів у Plex", + "components.Settings.SettingsJobsCache.plex-full-scan": "Повне сканування бібліотек Plex", + "components.Settings.SettingsJobsCache.nextexecution": "Наступне виконання", + "components.Settings.SettingsJobsCache.jobsandcache": "Завдання та кеш", + "components.Settings.SettingsJobsCache.jobs": "Завдання", + "components.Settings.SettingsJobsCache.jobname": "Назва завдання", + "components.Settings.SettingsJobsCache.jobcancelled": "Завдання \"{jobname}\" скасовано.", + "components.Settings.SettingsJobsCache.canceljob": "Скасувати завдання", + "components.Settings.SettingsJobsCache.jobsDescription": "Jellyseerr виконує певні завдання обслуговування як регулярно запланованих завдань, але вони також можуть бути запущені вручну нижче. Виконання завдання вручну не змінить його розклад.", + "components.Settings.SettingsJobsCache.flushcache": "Очистити кеш", + "components.Settings.SettingsJobsCache.download-sync-reset": "Скинути синхронізацію завантажень", + "components.Settings.SettingsJobsCache.download-sync": "Синхронізувати завантаження", + "components.Settings.SettingsJobsCache.cachehits": "Вдалих звернень", + "components.Settings.SettingsJobsCache.cachemisses": "Невдалих звернень", + "components.Settings.SettingsJobsCache.cachevsize": "Розмір значень", + "components.Settings.SettingsAbout.uptodate": "Актуальна", + "components.Settings.SettingsAbout.Releases.versionChangelog": "Зміни у версії {version}", + "components.Settings.SettingsAbout.preferredmethod": "Переважний спосіб", + "components.Settings.SettingsJobsCache.cacheflushed": "{cachename} кеш скинутий.", + "components.Settings.SettingsJobsCache.cacheDescription": "Jellyseerr кешує запити до зовнішніх кінцевих точок API, щоб оптимізувати продуктивність і уникнути непотрібних викликів API.", + "components.Settings.SettingsAbout.totalmedia": "Усього мультимедіа", + "components.Settings.SettingsAbout.outofdate": "Застаріла", + "components.Settings.SettingsAbout.helppaycoffee": "Допомога оплатити каву", + "components.Settings.SettingsAbout.gettingsupport": "Отримати підтримку", + "components.Settings.SettingsAbout.betawarning": "Це бета-версія програмного забезпечення. Деякі функції можуть не працювати або працювати нестабільно. Будь ласка, повідомляйте про будь-які проблеми на GitHub!", + "components.Settings.SettingsAbout.about": "Про проект", + "components.Settings.SettingsAbout.Releases.viewongithub": "Подивитися на GitHub", + "components.Settings.SettingsAbout.Releases.viewchangelog": "Переглянути список змін", + "components.Settings.SettingsAbout.Releases.releasedataMissing": "Дані про дозвіл в даний час недоступні.", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPassword": "Ви повинні ввести новий пароль", + "components.UserProfile.UserSettings.UserNotificationSettings.validationTelegramChatId": "Ви повинні надати дійсний ID чату", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPgpPublicKey": "Ви повинні надати дійсний відкритий ключ PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.validationDiscordId": "Ви повинні надати дійсний ID користувача", + "components.UserList.validationEmail": "Ви повинні вказати дійсну адресу електронної пошти", + "components.UserList.usercreatedfailedexisting": "Вказана адреса електронної пошти вже використовується іншим користувачем.", + "components.TvDetails.streamingproviders": "Зараз транслюється", + "components.Settings.validationPortRequired": "Ви повинні вказати дійсний номер порту", + "components.Settings.validationHostnameRequired": "Ви повинні вказати дійсне ім'я хоста або IP-адресу", + "components.Settings.SonarrModal.validationNameRequired": "Ви повинні вказати ім'я сервера", + "components.Settings.RadarrModal.validationNameRequired": "Ви повинні вказати ім'я сервера", + "components.Settings.Notifications.validationEmail": "Ви повинні вказати дійсну адресу електронної пошти", + "components.MovieDetails.streamingproviders": "Зараз транслюється", + "components.Settings.SonarrModal.validationBaseUrlTrailingSlash": "Базова URL-адреса не повинна закінчуватися косою межею", + "components.Settings.RadarrModal.validationMinimumAvailabilityRequired": "Ви повинні вибрати мінімальну доступність", + "components.Settings.RadarrModal.validationBaseUrlTrailingSlash": "Базова URL-адреса не повинна закінчуватися косою межею", + "components.Settings.RadarrModal.validationApplicationUrlTrailingSlash": "URL-адреса не повинна закінчуватися косою межею", + "components.Settings.RadarrModal.testFirstTags": "Протестувати підключення для завантаження тегів", + "components.Settings.RadarrModal.testFirstQualityProfiles": "Протестувати підключення для завантаження профілів якості", + "components.Settings.RadarrModal.selecttags": "Виберіть теги", + "components.Settings.RadarrModal.notagoptions": "Тегов немає.", + "components.Settings.RadarrModal.loadingprofiles": "Завантаження профілів якості…", + "components.Settings.RadarrModal.loadingTags": "Завантаження тегів…", + "components.Settings.RadarrModal.enableSearch": "Увімкнути автоматичний пошук", + "components.Settings.RadarrModal.default4kserver": "4К сервер за промовчанням", + "components.Settings.Notifications.webhookUrlTip": "Створіть інтеграцію веб-перехоплювача на своєму сервері", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingssaved": "Налаштування повідомлень веб-перехоплювача успішно збережено!", + "components.Settings.Notifications.NotificationsWebhook.webhooksettingsfailed": "Не вдалося зберегти налаштування повідомлень веб-перехоплювача.", + "components.Settings.Notifications.NotificationsWebhook.toastWebhookTestSuccess": "Тестове повідомлення веб-перехоплювачу надіслано!", + "components.Settings.Notifications.NotificationsWebhook.webhookUrl": "URL веб-перехоплювача", + "components.Settings.Notifications.validationPgpPrivateKey": "Ви повинні надати дійсний закритий ключ PGP", + "components.Settings.Notifications.validationPgpPassword": "Ви повинні надати пароль PGP", + "components.Settings.Notifications.validationChatIdRequired": "Ви повинні надати дійсний ID чату", + "components.Settings.Notifications.validationBotAPIRequired": "Ви повинні надати токен авторизації бота", + "components.Settings.Notifications.telegramsettingsfailed": "Не вдалося зберегти налаштування сповіщень Telegram.", + "components.Settings.Notifications.pgpPrivateKeyTip": "Підписувати зашифровані повідомлення електронної пошти за допомогою OpenPGP", + "components.Settings.Notifications.pgpPrivateKey": "Закритий ключ PGP", + "components.Settings.Notifications.pgpPasswordTip": "Підписувати зашифровані повідомлення електронної пошти за допомогою OpenPGP", + "components.Settings.Notifications.pgpPassword": "Пароль PGP", + "components.Settings.Notifications.encryptionTip": "У більшості випадків неявний TLS використовує порт 465, а STARTTLS - порт 587", + "components.Settings.Notifications.encryptionOpportunisticTls": "Завжди використовувати STARTTLS", + "components.Settings.Notifications.encryptionNone": "Без шифрування", + "components.Settings.Notifications.encryptionImplicitTls": "Використовувати неявний TLS", + "components.Settings.Notifications.encryptionDefault": "Використовувати STARTTLS, якщо доступно", + "components.Settings.Notifications.encryption": "Метод шифрування", + "components.Settings.Notifications.emailsettingssaved": "Налаштування повідомлень електронною поштою успішно збережено!", + "components.Settings.Notifications.emailsettingsfailed": "Не вдалося зберегти налаштування повідомлень електронною поштою.", + "components.Settings.Notifications.discordsettingssaved": "Налаштування повідомлень Discord успішно збережено!", + "components.Settings.Notifications.discordsettingsfailed": "Не вдалося зберегти налаштування повідомлень Discord.", + "components.Settings.Notifications.chatIdTip": "Почніть чат зі своїм ботом, додайте @get_id_bot і виконайте команду /my_id", + "components.Settings.Notifications.chatId": "ID чату", + "components.Settings.Notifications.botUsernameTip": "Дозволити користувачам починати чат з вашим ботом і налаштовувати власні повідомлення", + "components.Settings.Notifications.botUsername": "Ім'я бота", + "components.Settings.Notifications.botAvatarUrl": "URL аватара бота", + "components.Settings.Notifications.botApiTip": "Створіть бота для використання з Jellyseerr", + "components.Settings.Notifications.allowselfsigned": "Дозволити самозавірені сертифікати", + "components.Settings.Notifications.NotificationsWebhook.validationJsonPayloadRequired": "Ви повинні надати допустиме корисне навантаження JSON", + "components.Settings.Notifications.toastTelegramTestSuccess": "Тестове повідомлення надіслано до Telegram!", + "components.Settings.Notifications.toastTelegramTestSending": "Надсилання тестового повідомлення в Telegram…", + "components.Settings.Notifications.toastDiscordTestSuccess": "Тестове повідомлення надіслано до Discord!", + "components.Settings.Notifications.toastDiscordTestSending": "Надсилання тестового повідомлення в Discord…", + "components.Settings.Notifications.toastDiscordTestFailed": "Не вдалося надіслати тестове повідомлення до Discord.", + "components.Settings.Notifications.toastTelegramTestFailed": "Не вдалося надіслати тестове повідомлення до Telegram.", + "components.Settings.Notifications.toastEmailTestSuccess": "Тестове повідомлення надіслано електронною поштою!", + "components.Settings.Notifications.toastEmailTestSending": "Надсилання тестового повідомлення електронною поштою…", + "components.Settings.Notifications.toastEmailTestFailed": "Не вдалося надіслати тестове повідомлення електронною поштою.", + "components.UserProfile.unlimited": "Необмежено", + "components.UserProfile.totalrequests": "Усього запитів", + "components.UserProfile.requestsperdays": "залишилось {limit}", + "components.UserProfile.pastdays": "{type} (за {days} день(ів))", + "components.UserProfile.seriesrequest": "Запитів серіалів", + "components.UserProfile.movierequests": "Запитів фільмів", + "components.UserProfile.limit": "{remaining} з {limit}", + "components.UserProfile.UserSettings.unauthorizedDescription": "У вас немає дозволу на зміну налаштувань цього користувача.", + "components.UserProfile.UserSettings.UserPasswordChange.nopermissionDescription": "У вас немає дозволу на зміну пароля цього користувача.", + "components.UserProfile.UserSettings.UserPasswordChange.validationConfirmPasswordSame": "Паролі повинні збігатися", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailureVerifyCurrent": "Щось пішло не так при збереженні пароля. Чи правильно введено ваш поточний пароль?", + "components.UserProfile.UserSettings.UserPasswordChange.toastSettingsFailure": "Щось пішло не так при збереженні пароля.", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSet": "В даний час для цього облікового запису не встановлено пароль. Встановіть пароль нижче, щоб з цим обліковим записом можна було увійти в систему як \"локальний користувач\".", + "components.UserProfile.UserSettings.UserPasswordChange.noPasswordSetOwnAccount": "В даний час для вашого облікового запису не встановлено пароль. Встановіть пароль нижче, щоб мати можливість увійти в систему як \"локальний користувач\", використовуючи свою адресу електронної пошти.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingssaved": "Налаштування веб-повідомлень успішно збережено!", + "components.UserProfile.UserSettings.UserNotificationSettings.webpushsettingsfailed": "Не вдалося зберегти налаштування веб-повідомлень.", + "components.UserProfile.UserSettings.UserNotificationSettings.webpush": "Веб-push", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingssaved": "Налаштування сповіщень Telegram успішно збережено!", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramsettingsfailed": "Не вдалося зберегти налаштування сповіщень Telegram.", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatIdTipLong": "Почніть чат, додайте @get_id_bot і виконайте команду /my_id", + "components.UserProfile.UserSettings.UserNotificationSettings.telegramChatId": "ID чату", + "components.UserProfile.UserSettings.UserNotificationSettings.sendSilently": "Надсилати без звуку", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKeyTip": "Шифрувати повідомлення електронної пошти за допомогою OpenPGP", + "components.UserProfile.UserSettings.UserNotificationSettings.pgpPublicKey": "Відкритий ключ PGP", + "components.UserProfile.UserSettings.UserNotificationSettings.notificationsettings": "Налаштування повідомлень", + "components.UserProfile.UserSettings.UserNotificationSettings.email": "Електронна пошта", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingssaved": "Налаштування повідомлень Discord успішно збережено!", + "components.UserProfile.UserSettings.UserNotificationSettings.discordsettingsfailed": "Не вдалося зберегти налаштування повідомлень Discord.", + "components.UserProfile.UserSettings.UserNotificationSettings.discordIdTip": "ID вашого облікового запису", + "components.UserProfile.UserSettings.UserNotificationSettings.discordId": "ID користувача", + "components.Settings.locale": "Мова інтерфейсу", + "components.UserProfile.UserSettings.UserGeneralSettings.accounttype": "Тип облікового запису", + "components.UserProfile.ProfileHeader.userid": "ID користувача: {userid}", + "components.UserProfile.ProfileHeader.settings": "Редагувати налаштування", + "components.UserProfile.ProfileHeader.joindate": "Приєднався {joindate}", + "components.UserProfile.UserSettings.UserPasswordChange.validationNewPasswordLength": "Пароль занадто короткий: він повинен містити не менше 8 символів", + "components.UserProfile.UserSettings.UserPermissions.unauthorizedDescription": "Ви не можете змінювати власні дозволи.", + "components.UserList.userssaved": "Дозволи користувача успішно збережені!", + "components.UserList.userfail": "Щось пішло не так при збереженні дозволів користувача.", + "components.UserList.userdeleteerror": "Щось пішло не так при видаленні користувача.", + "components.UserList.usercreatedfailed": "Щось пішло не так при створенні користувача.", + "components.UserList.passwordinfodescription": "Налаштуйте URL-адресу програми та увімкніть повідомлення електронною поштою, щоб забезпечити можливість автоматичної генерації пароля.", + "components.UserList.importfromplexerror": "Щось пішло не так при імпорті користувачів з Plex.", + "components.UserList.importfrommediaserver": "Імпортувати користувачів з {mediaServerName}", + "components.UserList.importfromplex": "Імпортувати користувачів з Plex", + "components.UserList.importedfromplex": "{userCount, plural, one {# новий користувач} other {# нових користувачів} успішно імпортовані з Plex!", + "components.UserList.edituser": "Змінити дозволи користувача", + "components.UserList.displayName": "Відображуване ім'я", + "components.UserList.deleteconfirm": "Ви впевнені, що хочете видалити цього користувача? Усі дані про його запити будуть видалені без можливості відновлення.", + "components.UserList.autogeneratepassword": "Згенерувати пароль автоматично", + "components.UserList.accounttype": "Тип", + "components.TvDetails.playonplex": "Відтворити в Plex", + "components.TvDetails.play4konplex": "Відтворити в Plex в 4К", + "components.TvDetails.nextAirDate": "Наступна дата виходу в ефір", + "components.TvDetails.firstAirDate": "Дата першого ефіру", + "components.TvDetails.episodeRuntimeMinutes": "{runtime} хвилин", + "components.TvDetails.episodeRuntime": "Тривалість епізоду", + "components.Setup.tip": "Підказка", + "components.Setup.scanbackground": "Сканування буде виконуватися у фоновому режимі. А поки ви можете продовжити процес налаштування.", + "components.Settings.webpush": "Веб-push", + "components.Settings.webAppUrlTip": "При необхідності надсилайте користувачів у веб-додаток на вашому сервері замість розміщеного на plex.tv", + "components.Settings.webAppUrl": "URL веб-програми", + "components.Settings.trustProxy": "Увімкнути підтримку проксі", + "components.Settings.toastPlexRefreshSuccess": "Список серверів Plex успішно отримано!", + "components.Settings.toastPlexRefresh": "Отримання списку серверів Plex…", + "components.Settings.toastPlexRefreshFailure": "Не вдалося отримати список серверів Plex.", + "components.Settings.toastPlexConnecting": "Спроба підключення до Plex…", + "components.Settings.settingUpPlexDescription": "Щоб налаштувати Plex, ви можете або ввести дані вручну, або вибрати сервер, отриманий зі сторінки plex.tv. Натисніть кнопку праворуч від випадаючого списку, щоб отримати список доступних серверів .", + "components.Settings.services": "Служби", + "components.Settings.serviceSettingsDescription": "Налаштуйте сервер(и) {serverType} нижче. Ви можете підключити кілька серверів {serverType}, але тільки два з них можуть бути позначені як сервери за промовчанням (один не 4К і один 4К). Адміністратори можуть перевизначити сервер для обробки нових запитів до їх схвалення.", + "components.Settings.serverpresetLoad": "Натисніть кнопку, щоб завантажити список доступних серверів", + "components.Settings.serverSecure": "захищений", + "components.Settings.serverRemote": "віддалений", + "components.Settings.serverLocal": "локальний", + "components.Settings.scan": "Синхронізувати бібліотеки", + "components.Settings.regionTip": "Контент фільтрується за доступністю у вибраному регіоні", + "components.Settings.SettingsLogs.logsDescription": "Ви також можете переглядати ці логи безпосередньо через stdout або в {appDataPath}/logs/overseerr.log.", + "components.Settings.SettingsLogs.logs": "Логи", + "components.Settings.SettingsLogs.logDetails": "Докладні відомості про лог", + "components.Settings.SettingsLogs.copiedLogMessage": "Повідомлення лога скопійовано в буфер обміну.", + "components.UserProfile.UserSettings.UserGeneralSettings.originallanguageTip": "Контент фільтрується за мовою оригіналу", + "components.UserProfile.UserSettings.UserGeneralSettings.languageDefault": "За замовчуванням ({language})", + "components.UserProfile.UserSettings.UserGeneralSettings.general": "Загальне", + "components.Settings.general": "Спільне", + "components.Settings.hideAvailable": "Приховувати доступні медіа", + "components.Settings.SettingsUsers.userSettingsDescription": "Налаштуйте глобальні параметри та параметри за промовчанням для користувачів.", + "components.Settings.email": "Електронна пошта", + "components.Settings.csrfProtectionHoverTip": "НЕ вмикайте цей параметр, якщо ви не розумієте, що робите!", + "components.Settings.csrfProtection": "Увімкнути захист від CSRF", + "components.Settings.SonarrModal.validationApplicationUrlTrailingSlash": "URL-адреса не повинна закінчуватися косою межею", + "components.Settings.toastPlexConnectingSuccess": "З'єднання з Plex встановлено успішно!", + "components.Settings.SonarrModal.toastSonarrTestSuccess": "З'єднання з Sonarr встановлено успішно!", + "components.Settings.toastPlexConnectingFailure": "Не вдалося підключитися до Plex.", + "components.Settings.SonarrModal.toastSonarrTestFailure": "Не вдалося підключитися до Sonarr.", + "components.Settings.SonarrModal.testFirstTags": "Протестувати підключення для завантаження тегів", + "components.Settings.SonarrModal.testFirstQualityProfiles": "Протестувати підключення для завантаження профілів якості", + "components.Settings.SonarrModal.selecttags": "Виберіть теги", + "components.Settings.SonarrModal.selectLanguageProfile": "Виберіть мовний профіль", + "components.Settings.SonarrModal.notagoptions": "Тегов немає.", + "components.Settings.SonarrModal.loadingprofiles": "Завантаження профілів якості…", + "components.Settings.SonarrModal.loadinglanguageprofiles": "Завантаження мовних профілів…", + "components.Settings.SonarrModal.create4ksonarr": "Додати новий 4К сервер Sonarr", + "components.Settings.RadarrModal.edit4kradarr": "Редагувати 4К сервер Radarr", + "components.Settings.RadarrModal.create4kradarr": "Додати новий 4К сервер Radarr", + "components.Settings.SonarrModal.default4kserver": "4К сервер за промовчанням", + "components.Settings.toastApiKeySuccess": "Новий ключ API успішно згенерований!", + "components.Settings.SettingsJobsCache.editJobSchedule": "Змінити завдання", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "Частота", + "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "Завдання успішно відредаговано!", + "components.Settings.SettingsAbout.runningDevelop": "Ви використовуєте гілку develop проекту Jellyseerr, яка рекомендується тільки для тих, хто робить внесок у розробку або допомагає в тестуванні.", + "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "Щось пішло не так при збереженні завдання.", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "Кожен {jobScheduleHours, plural, one {година} other {{jobScheduleHours} години(ів)}}", + "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "Кожну {jobScheduleMinutes, plural, one {хвилину} other {{jobScheduleMinutes} хвилин(и)}}", + "components.StatusBadge.status": "{status}", + "components.IssueDetails.IssueComment.areyousuredelete": "Ви впевнені, що хочете видалити цей коментар?", + "components.IssueDetails.IssueComment.delete": "Видалити коментар", + "components.IssueDetails.IssueComment.edit": "Редагувати коментар", + "components.IssueDetails.IssueComment.postedby": "Опубліковано {relativeTime} користувачем {username}", + "components.IssueDetails.IssueComment.postedbyedited": "Опубліковано {relativeTime} користувачем {username} (змінено)", + "components.IssueDetails.IssueComment.validationComment": "Ви повинні ввести повідомлення", + "components.IssueDetails.IssueDescription.deleteissue": "Видалити проблему", + "components.IssueDetails.IssueDescription.description": "Опис", + "components.IssueDetails.IssueDescription.edit": "Редагувати опис", + "components.IssueDetails.allseasons": "Всі сезони", + "components.IssueDetails.allepisodes": "Всі епізоди", + "components.ManageSlideOver.manageModalClearMedia": "Очистити дані", + "components.ManageSlideOver.manageModalClearMediaWarning": "* Це призведе до незворотного видалення всіх даних для цього {mediaType}а, включаючи будь-які запити. Якщо цей елемент існує у вашій бібліотеці {mediaServerName}, мультимедійна інформація про нього буде відтворена під час наступного сканування. ", + "components.IssueDetails.problemepisode": "Зачеплений епізод", + "components.ManageSlideOver.manageModalRequests": "Запити", + "components.IssueDetails.closeissue": "Закрити проблему", + "components.IssueDetails.closeissueandcomment": "Закрити з коментарем", + "components.IssueDetails.comments": "Коментарі", + "components.IssueDetails.deleteissueconfirm": "Ви впевнені, що хочете видалити цю проблему?", + "components.IssueDetails.episode": "Епізод {episodeNumber}", + "components.IssueDetails.lastupdated": "Останнє оновлення", + "components.IssueDetails.openinarr": "Відкрити в {arr}", + "components.IssueDetails.toasteditdescriptionfailed": "Щось пішло не так при редагуванні опису проблеми.", + "components.IssueDetails.toastissuedeletefailed": "Щось пішло не так при видаленні проблеми.", + "components.IssueDetails.toaststatusupdatefailed": "Щось пішло не так при оновленні статусу проблеми.", + "components.IssueDetails.unknownissuetype": "Невідомий", + "components.IssueModal.CreateIssueModal.episode": "Епізод {episodeNumber}", + "components.ManageSlideOver.mark4kavailable": "Позначити як доступний у 4К", + "components.IssueModal.CreateIssueModal.extras": "Додатково", + "components.IssueModal.CreateIssueModal.problemseason": "Зачеплений сезон", + "components.ManageSlideOver.downloadstatus": "Завантаження", + "components.ManageSlideOver.manageModalIssues": "Відкриті проблеми", + "components.ManageSlideOver.manageModalNoRequests": "Запитів немає.", + "components.ManageSlideOver.manageModalTitle": "Управління {mediaType}", + "components.ManageSlideOver.markavailable": "Позначити як доступний", + "components.ManageSlideOver.movie": "фільм", + "components.ManageSlideOver.openarr": "Відкрити в {arr}", + "components.ManageSlideOver.openarr4k": "Відкрити в 4К {arr}", + "components.ManageSlideOver.tvshow": "серіал", + "components.NotificationTypeSelector.userissueresolvedDescription": "Отримувати повідомлення, коли проблеми, про які ви повідомили, отримують рішення.", + "components.NotificationTypeSelector.issuecomment": "Коментар до проблеми", + "components.PermissionEdit.createissuesDescription": "Надати дозвіл на повідомлення про проблеми з медіафайлами.", + "components.PermissionEdit.manageissuesDescription": "Надати дозвіл на керування проблемами з медіафайлами.", + "components.NotificationTypeSelector.userissuecreatedDescription": "Отримувати повідомлення, коли інші користувачі повідомляють про проблеми.", + "components.PermissionEdit.createissues": "Повідомлення про проблеми", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingssaved": "Налаштування сповіщень Pushover успішно збережено!", + "components.PermissionEdit.viewissues": "Перегляд проблем", + "components.PermissionEdit.viewissuesDescription": "Надати дозвіл на перегляд проблем з медіафайлами, про які повідомили інші користувачі.", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverUserKey": "Ви повинні надати дійсний ключ користувача або групи", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessToken": "Токен доступу", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationToken": "Токен API програми", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletAccessTokenTip": "Створіть токен на сторінці налаштувань вашого облікового запису", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushoverApplicationToken": "Ви повинні надати дійсний токен програми", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKeyTip": "Ваш 30-значний ідентифікатор користувача або групи", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingsfailed": "Не вдалося зберегти налаштування сповіщень Pushbullet.", + "components.UserProfile.UserSettings.UserNotificationSettings.pushbulletsettingssaved": "Налаштування сповіщень Pushbullet успішно збережено!", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverApplicationTokenTip": "Зареєструйте програму для використання з {applicationTitle}", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoverUserKey": "Ключ користувача або групи", + "components.UserProfile.UserSettings.UserNotificationSettings.pushoversettingsfailed": "Не вдалося зберегти налаштування сповіщень Pushover.", + "components.UserProfile.UserSettings.UserNotificationSettings.validationPushbulletAccessToken": "Ви повинні надати токен доступу", + "i18n.resolved": "Вирішені", + "components.IssueDetails.openedby": "#{issueId} відкрита {relativeTime} користувачем {username}", + "components.IssueDetails.openin4karr": "Відкрити в 4К {arr}", + "components.IssueDetails.play4konplex": "Відтворити в {mediaServerName} у 4К", + "components.IssueDetails.problemseason": "Зачеплений сезон", + "components.IssueDetails.reopenissue": "Знову відкрити проблему", + "components.IssueDetails.season": "Сезон {seasonNumber}", + "components.IssueDetails.toasteditdescriptionsuccess": "Опис проблеми успішно відредаговано!", + "components.IssueDetails.toastissuedeleted": "Проблема успішно видалена!", + "components.IssueDetails.toaststatusupdated": "Статус проблеми успішно оновлено!", + "components.IssueList.IssueItem.issuetype": "Тип", + "components.IssueModal.CreateIssueModal.allseasons": "Всі сезони", + "components.IssueModal.CreateIssueModal.problemepisode": "Зачеплений епізод", + "components.IssueModal.CreateIssueModal.toastFailedCreate": "Щось пішло не так під час надсилання проблеми.", + "components.IssueModal.CreateIssueModal.toastSuccessCreate": "Звіт про проблему для {title} успішно надіслано!", + "components.IssueModal.CreateIssueModal.toastviewissue": "Переглянути проблему", + "components.IssueModal.CreateIssueModal.validationMessageRequired": "Ви повинні надати опис", + "components.IssueModal.issueAudio": "Аудіо", + "components.IssueModal.issueOther": "Інше", + "components.IssueModal.issueSubtitles": "Субтитри", + "components.IssueModal.issueVideo": "Відео", + "components.IssueModal.CreateIssueModal.reportissue": "Повідомити про проблему", + "components.NotificationTypeSelector.adminissuecommentDescription": "Отримувати повідомлення, коли інші користувачі надсилають коментарі до проблем.", + "components.NotificationTypeSelector.userissuecommentDescription": "Отримувати повідомлення, коли до проблем, про які ви повідомили, з'являються нові коментарі.", + "components.NotificationTypeSelector.issuecommentDescription": "Надсилати повідомлення, коли до проблем з'являються нові коментарі.", + "components.NotificationTypeSelector.issuecreated": "Проблема опублікована", + "components.NotificationTypeSelector.issueresolved": "Проблема вирішена", + "components.NotificationTypeSelector.issueresolvedDescription": "Надсилати повідомлення, коли проблеми отримують рішення.", + "components.NotificationTypeSelector.issuecreatedDescription": "Надсилати повідомлення, коли з'являються повідомлення про проблеми.", + "components.PermissionEdit.manageissues": "Управління проблемами", + "i18n.open": "Відкрити", + "components.IssueList.IssueItem.problemepisode": "Зачеплений епізод", + "components.IssueList.IssueItem.unknownissuetype": "Невідомий", + "components.IssueList.issues": "Проблеми", + "components.IssueList.IssueItem.opened": "Відкрито", + "components.IssueDetails.nocomments": "Коментарів немає.", + "components.IssueDetails.issuepagetitle": "Проблема", + "components.IssueDetails.deleteissue": "Видалити проблему", + "components.IssueDetails.issuetype": "Тип", + "components.IssueDetails.leavecomment": "Коментар", + "components.IssueDetails.playonplex": "Відтворити в {mediaServerName}", + "components.IssueDetails.reopenissueandcomment": "Знову відкрити з коментарем", + "components.IssueList.IssueItem.issuestatus": "Статус", + "components.IssueList.IssueItem.seasons": "{seasonCount, plural, one {Сезон} other {Сезони}}", + "components.IssueList.IssueItem.episodes": "{episodeCount, plural, one {Епізод} other {Епізоди}}", + "components.IssueList.IssueItem.viewissue": "Переглянути проблему", + "components.IssueList.showallissues": "Показати всі проблеми", + "components.IssueList.sortModified": "За датою зміни", + "components.IssueModal.CreateIssueModal.allepisodes": "Всі епізоди", + "components.IssueList.IssueItem.openeduserdate": "{date} користувачем {user}", + "components.IssueList.sortAdded": "За датою додавання", + "components.IssueModal.CreateIssueModal.season": "Сезон {seasonNumber}", + "components.IssueModal.CreateIssueModal.submitissue": "Надіслати проблему", + "components.IssueModal.CreateIssueModal.providedetail": "Будь ласка, надайте детальний опис проблеми, з якою ви зіткнулися.", + "components.IssueModal.CreateIssueModal.whatswrong": "Що не так?", + "components.Layout.Sidebar.issues": "Проблеми", + "components.NotificationTypeSelector.issuereopenedDescription": "Надсилати повідомлення, коли проблеми відкриті заново.", + "components.NotificationTypeSelector.userissuereopenedDescription": "Отримувати повідомлення, коли проблеми, про які ви повідомили, будуть відкриті заново.", + "components.NotificationTypeSelector.adminissuereopenedDescription": "Отримувати повідомлення, коли проблеми відкриті заново іншими користувачами.", + "components.NotificationTypeSelector.issuereopened": "Проблема відкрита знову", + "components.NotificationTypeSelector.adminissueresolvedDescription": "Отримувати повідомлення, коли проблеми вирішені іншими користувачами.", + "components.RequestModal.requestseasons4k": "Запит {seasonCount} {seasonCount, plural, one {сезону} other {сезонів}} у 4К", + "components.TvDetails.productioncountries": "{countryCount, plural, one {Країна} other {Країни}} виробництва", + "components.IssueDetails.commentplaceholder": "Додати коментар…", + "components.MovieDetails.productioncountries": "{countryCount, plural, one {Країна} other {Країни}} виробництва", + "components.RequestModal.selectmovies": "Виберіть фільм(и)", + "components.RequestModal.approve": "Схвалити запит", + "components.RequestModal.requestmovies": "Запит {count} {count, plural, one {фільма} other {фільмів}}", + "components.RequestModal.requestmovies4k": "Запит {count} {count, plural, one {фільма} other {фільмів}} у 4К", + "components.Settings.RadarrModal.inCinemas": "У кіно", + "components.Settings.RadarrModal.released": "Випущено", + "components.RequestModal.requestApproved": "Запит на {title} схвалений!", + "components.Settings.RadarrModal.announced": "Анонсовано" +} diff --git a/src/i18n/locale/zh_Hans.json b/src/i18n/locale/zh_Hans.json index 159f227c8..59febf2ed 100644 --- a/src/i18n/locale/zh_Hans.json +++ b/src/i18n/locale/zh_Hans.json @@ -944,7 +944,7 @@ "components.NotificationTypeSelector.userissueresolvedDescription": "当您报告的问题解决时获取通知。", "components.ManageSlideOver.alltime": "历史", "components.ManageSlideOver.manageModalAdvanced": "高级", - "components.ManageSlideOver.manageModalClearMediaWarning": "* 这将会删除所有和{mediaType}相关的数据和所有请求。如果{mediaType}在您的Plex服务器存在,数据将会在媒体库扫描时重新建立。", + "components.ManageSlideOver.manageModalClearMediaWarning": "* 这将会删除所有和{mediaType}相关的数据和所有请求。如果{mediaType}在您的{mediaServerName}服务器存在,数据将会在媒体库扫描时重新建立。", "components.ManageSlideOver.manageModalIssues": "未解决问题", "components.ManageSlideOver.manageModalMedia": "媒体", "components.ManageSlideOver.manageModalMedia4k": "4K 媒体", @@ -986,7 +986,7 @@ "components.Settings.Notifications.NotificationsPushbullet.channelTag": "频道标签", "components.Settings.RadarrModal.announced": "已公布", "components.Settings.RadarrModal.released": "已发布", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "频率", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "新频率", "components.Settings.externalUrl": "外部网址", "components.Settings.tautulliApiKey": "API Key", "components.Settings.toastTautulliSettingsFailure": "保存 Tautulli 设置时出现问题。", @@ -1031,5 +1031,42 @@ "i18n.import": "导入", "i18n.importing": "导入中…", "components.RequestBlock.languageprofile": "语言配置文件", - "components.TitleCard.mediaerror": "未找到{mediaType}" + "components.TitleCard.mediaerror": "未找到{mediaType}", + "components.MovieDetails.digitalrelease": "数字发行", + "components.MovieDetails.physicalrelease": "物理释放", + "components.MovieDetails.theatricalrelease": "剧场版", + "components.PermissionEdit.viewrecent": "查看最近添加的内容", + "components.PermissionEdit.viewrecentDescription": "授予查看最近添加的媒体列表的权限。", + "components.StatusChecker.appUpdated": "{applicationTitle} 已更新", + "components.StatusChecker.restartRequired": "需要重启服务器", + "components.StatusChecker.appUpdatedDescription": "请点击下面的按钮,重新加载应用程序。", + "components.StatusChecker.reloadApp": "重新加载 {applicationTitle}", + "i18n.restartRequired": "需要重新启动", + "components.Settings.deleteServer": "删除 {serverType} 服务器", + "components.StatusChecker.restartRequiredDescription": "请重新启动服务器以应用更新的设置。", + "components.RequestList.RequestItem.tmdbid": "TMDB ID", + "components.Discover.DiscoverWatchlist.watchlist": "Plex 关注列表", + "components.MovieDetails.managemovie": "管理电影", + "components.MovieDetails.reportissue": "报告问题", + "components.NotificationTypeSelector.mediaautorequested": "自动提交的请求", + "components.PermissionEdit.viewwatchlistsDescription": "授权查看其他用户的Plex关注列表。", + "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", + "components.Settings.advancedTooltip": "错误配置此设置可能会导致功能不可用", + "components.Settings.experimentalTooltip": "启用此设置可能会导致意外的应用程序行为", + "components.TvDetails.reportissue": "报告问题", + "components.RequestCard.tmdbid": "TMDB ID", + "components.Settings.SettingsLogs.viewdetails": "查看详情", + "components.Layout.UserDropdown.requests": "请求", + "components.Settings.restartrequiredTooltip": "必须重新启动 Overseerr 才能使更改的设置生效", + "components.TvDetails.manageseries": "管理电视节目", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "自动请求您的 Plex 关注列表的媒体", + "components.AirDateBadge.airedrelative": "播出{relativeTime}", + "components.AirDateBadge.airsrelative": "播出{relativeTime}", + "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "电影请求", + "components.Layout.UserDropdown.MiniQuotaDisplay.seriesrequests": "电视节目请求", + "components.NotificationTypeSelector.mediaautorequestedDescription": "当 Plex 关注列表中的项目自动提交新媒体请求时,会收到通知。", + "components.PermissionEdit.viewwatchlists": "查看 Plex 关注列表", + "components.TvDetails.Season.somethingwentwrong": "在检索季元数据时出了问题。", + "components.UserProfile.plexwatchlist": "Plex 关注列表", + "components.RequestCard.tvdbid": "TheTVDB ID" } diff --git a/src/i18n/locale/zh_Hant.json b/src/i18n/locale/zh_Hant.json index 87777fc9c..4aff692db 100644 --- a/src/i18n/locale/zh_Hant.json +++ b/src/i18n/locale/zh_Hant.json @@ -847,7 +847,7 @@ "components.MovieDetails.streamingproviders": "目前的流媒體服務", "components.Settings.SettingsJobsCache.editJobSchedule": "編輯作業", "components.Settings.SettingsJobsCache.editJobScheduleSelectorHours": "每 {jobScheduleHours} 小時", - "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "頻率", + "components.Settings.SettingsJobsCache.editJobSchedulePrompt": "新的頻率", "components.Settings.SettingsJobsCache.editJobScheduleSelectorMinutes": "每 {jobScheduleMinutes} 分鐘", "components.Settings.SettingsJobsCache.jobScheduleEditFailed": "儲存作業設定時出了點問題。", "components.Settings.SettingsJobsCache.jobScheduleEditSaved": "作業編輯成功!", @@ -884,7 +884,7 @@ "components.IssueModal.issueAudio": "音訊", "components.ManageSlideOver.downloadstatus": "下載狀態", "components.IssueModal.CreateIssueModal.allepisodes": "所有集數", - "components.ManageSlideOver.manageModalClearMediaWarning": "※這將會刪除包括使用者請求在內所有有關此{mediaType}的資料。如果這{mediaType}存在於您的 Plex 伺服器,資料將會在媒體庫掃描時重新建立。", + "components.ManageSlideOver.manageModalClearMediaWarning": "※這將會刪除包括使用者請求在內所有有關此{mediaType}的資料。如果這{mediaType}存在於您的 {mediaServerName} 伺服器,資料將會在媒體庫掃描時重新建立。", "components.ManageSlideOver.mark4kavailable": "標記 4K 版為可觀看", "components.IssueModal.issueSubtitles": "字幕", "components.IssueModal.issueOther": "其他", @@ -1051,29 +1051,29 @@ "components.TitleCard.tmdbid": "TMDB ID", "components.RequestCard.tmdbid": "TMDB ID", "components.RequestList.RequestItem.tvdbid": "TheTVDB ID", - "components.Discover.plexwatchlist": "您的 Plex Watchlist", + "components.Discover.plexwatchlist": "您的 Plex 關注列表", "components.PermissionEdit.autorequestMovies": "自動提出電影請求", "components.PermissionEdit.autorequestSeries": "自動提出影集請求", - "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex Watchlist 同步", + "components.Settings.SettingsJobsCache.plex-watchlist-sync": "Plex 關注列表同步", "components.PermissionEdit.autorequest": "自動提出請求", - "components.Discover.DiscoverWatchlist.discoverwatchlist": "您的 Plex Watchlist", + "components.Discover.DiscoverWatchlist.discoverwatchlist": "您的 Plex 關注列表", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmovies": "自動提出電影請求", "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseries": "自動提出影集請求", "components.NotificationTypeSelector.mediaautorequested": "請求自動提出", - "components.PermissionEdit.autorequestMoviesDescription": "授予從 Plex Watchlist 中自動提出非 4K 電影請求的權限。", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "從您的 Plex Watchlist 中自動提出電影請求", - "components.NotificationTypeSelector.mediaautorequestedDescription": "當您的 Plex Watchlist 中的媒體自動提出請求時取得通知。", - "components.PermissionEdit.autorequestDescription": "授予從 Plex Watchlist 中自動提出非 4K 媒體請求的權限。", - "components.PermissionEdit.autorequestSeriesDescription": "授予從 Plex Watchlist 中自動提出非 4K 影集請求的權限。", - "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "從您的 Plex Watchlist 中自動提出影集請求", + "components.PermissionEdit.autorequestMoviesDescription": "授予從 Plex 關注列表中自動提出非 4K 電影請求的權限。", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncmoviestip": "從您的 Plex 關注列表中自動提出電影請求", + "components.NotificationTypeSelector.mediaautorequestedDescription": "當您的 Plex 關注列表中的媒體自動提出請求時取得通知。", + "components.PermissionEdit.autorequestDescription": "授予從 Plex 關注列表中自動提出非 4K 媒體請求的權限。", + "components.PermissionEdit.autorequestSeriesDescription": "授予從 Plex 關注列表中自動提出非 4K 影集請求的權限。", + "components.UserProfile.UserSettings.UserGeneralSettings.plexwatchlistsyncseriestip": "從您的 Plex 關注列表中自動提出影集請求", "components.Settings.SettingsLogs.viewdetails": "查看詳細信息", "components.TvDetails.reportissue": "報告問題", "components.MovieDetails.managemovie": "管理電影", - "components.Discover.DiscoverWatchlist.watchlist": "Plex Watchlist", - "components.UserProfile.plexwatchlist": "Plex Watchlist", + "components.Discover.DiscoverWatchlist.watchlist": "Plex 關注列表", + "components.UserProfile.plexwatchlist": "Plex 關注列表", "components.MovieDetails.reportissue": "報告問題", - "components.PermissionEdit.viewwatchlists": "查看 Plex Watchlists", - "components.PermissionEdit.viewwatchlistsDescription": "授予查看其他使用者的 Plex Watchlists 的權限。", + "components.PermissionEdit.viewwatchlists": "查看 Plex 關注列表", + "components.PermissionEdit.viewwatchlistsDescription": "授予查看其他使用者的 Plex 關注列表的權限。", "components.TvDetails.manageseries": "管理影集", "components.Settings.restartrequiredTooltip": "Jellyseerr 必須重新啟動才能應用設定的變更", "components.Layout.UserDropdown.MiniQuotaDisplay.movierequests": "電影請求", @@ -1092,7 +1092,7 @@ "components.RequestBlock.delete": "刪除請求", "components.RequestCard.editrequest": "編輯請求", "components.RequestBlock.requestedby": "請求者", - "components.StatusBadge.playonplex": "在 Plex 上觀看", + "components.StatusBadge.playonplex": "在 {mediaServerName} 上觀看", "components.StatusBadge.managemedia": "管理{mediaType}", "components.StatusBadge.openinarr": "開啟 {arr} 伺服器", "components.TvDetails.status4k": "4K 版{status}", @@ -1113,8 +1113,9 @@ "components.RequestModal.requestseries4ktitle": "提出 4K 影集請求", "components.RequestModal.requestcollectiontitle": "提出電影系列請求", "components.RequestModal.SearchByNameModal.nomatches": "找不到此影集的數據。", - "components.UserProfile.emptywatchlist": "您的 Plex Watchlist 中的媒體會顯示在這裡。", - "components.Discover.emptywatchlist": "您的 Plex Watchlist 中的媒體會顯示在這裡。", + "components.UserProfile.emptywatchlist": "您的 Plex 關注列表中的媒體會顯示在這裡。", + "components.Discover.emptywatchlist": "您的 Plex 關注列表中的媒體會顯示在這裡。", "components.Settings.advancedTooltip": "錯誤的設定可能會破壞應用程式功能", - "components.Settings.experimentalTooltip": "啟用此設定可能會出現意外的應用程式行為" + "components.Settings.experimentalTooltip": "啟用此設定可能會出現意外的應用程式行為", + "components.Settings.SettingsJobsCache.editJobScheduleCurrent": "目前的頻率" } diff --git a/src/pages/404.tsx b/src/pages/404.tsx index 3df55fc1b..0b0a059f1 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -1,5 +1,5 @@ import PageTitle from '@app/components/Common/PageTitle'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -24,7 +24,7 @@ const Custom404 = () => { {intl.formatMessage(messages.returnHome)} - +
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index d546f0a8b..802faea4b 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -43,6 +43,8 @@ const loadLocaleData = (locale: AvailableLocale): Promise => { return import('../i18n/locale/es.json'); case 'fr': return import('../i18n/locale/fr.json'); + case 'hr': + return import('../i18n/locale/hr.json'); case 'hu': return import('../i18n/locale/hu.json'); case 'it': @@ -69,6 +71,8 @@ const loadLocaleData = (locale: AvailableLocale): Promise => { return import('../i18n/locale/sr.json'); case 'sv': return import('../i18n/locale/sv.json'); + case 'ua': + return import('../i18n/locale/ua.json'); case 'zh-CN': return import('../i18n/locale/zh_Hans.json'); case 'zh-TW': diff --git a/src/pages/_error.tsx b/src/pages/_error.tsx index 2d5102c49..66d85fdbf 100644 --- a/src/pages/_error.tsx +++ b/src/pages/_error.tsx @@ -1,6 +1,6 @@ import PageTitle from '@app/components/Common/PageTitle'; import type { Undefinable } from '@app/utils/typeHelpers'; -import { ArrowCircleRightIcon } from '@heroicons/react/outline'; +import { ArrowRightCircleIcon } from '@heroicons/react/24/outline'; import type { NextPage } from 'next'; import Link from 'next/link'; import { defineMessages, useIntl } from 'react-intl'; @@ -47,7 +47,7 @@ const Error: NextPage = ({ statusCode }) => { {intl.formatMessage(messages.returnHome)} - +
diff --git a/src/pages/discover/movies/keyword/index.tsx b/src/pages/discover/movies/keyword/index.tsx new file mode 100644 index 000000000..4fc0cfd27 --- /dev/null +++ b/src/pages/discover/movies/keyword/index.tsx @@ -0,0 +1,8 @@ +import DiscoverMovieKeyword from '@app/components/Discover/DiscoverMovieKeyword'; +import type { NextPage } from 'next'; + +const DiscoverMoviesKeywordPage: NextPage = () => { + return ; +}; + +export default DiscoverMoviesKeywordPage; diff --git a/src/pages/discover/tv/keyword/index.tsx b/src/pages/discover/tv/keyword/index.tsx new file mode 100644 index 000000000..0c6ab00ff --- /dev/null +++ b/src/pages/discover/tv/keyword/index.tsx @@ -0,0 +1,8 @@ +import DiscoverTvKeyword from '@app/components/Discover/DiscoverTvKeyword'; +import type { NextPage } from 'next'; + +const DiscoverTvKeywordPage: NextPage = () => { + return ; +}; + +export default DiscoverTvKeywordPage; diff --git a/src/styles/globals.css b/src/styles/globals.css index 42d892452..8d040a00d 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -6,7 +6,13 @@ html { min-height: calc(100% + env(safe-area-inset-top)); padding: env(safe-area-inset-top) env(safe-area-inset-right) - env(safe-area-inset-bottom) env(safe-area-inset-left); + calc(4rem + env(safe-area-inset-bottom)) env(safe-area-inset-left); + } + + @media (min-width: 640px) { + html { + padding-bottom: env(safe-area-inset-bottom); + } } body { @@ -417,6 +423,50 @@ .react-select-container .react-select__input-container { @apply text-white; } + + .react-select-container .react-select__single-value { + @apply text-sm text-gray-100; + } + + .react-select-container .react-select__placeholder { + @apply text-sm text-gray-500; + } + + .datepicker-wrapper > button { + @apply top-0; + } + + .datepicker-wrapper > div { + @apply fixed left-0 right-0 w-full px-4 md:w-auto; + } + + .datepicker-wrapper > div > div:nth-child(2) > div { + @apply !flex-col; + } + + .datepicker-wrapper > div > div:nth-child(2) > div > div > div { + @apply !w-full !min-w-full; + } + + .datepicker-wrapper > div > div:first-child { + @apply hidden; + } + + input[type='range']::-webkit-slider-thumb { + @apply rounded-full border-0 bg-indigo-500; + pointer-events: all; + width: 16px; + height: 16px; + -webkit-appearance: none; + } + + input[type='range']::-moz-range-thumb { + @apply rounded-full border-0 bg-indigo-500; + pointer-events: all; + width: 16px; + height: 16px; + -webkit-appearance: none; + } } @layer utilities { @@ -424,6 +474,18 @@ top: calc(-4rem - env(safe-area-inset-top)); } + .absolute-bottom-shift { + bottom: calc(5rem + env(safe-area-inset-bottom)); + } + + .safe-shift-edit-menu { + bottom: calc(54px + env(safe-area-inset-bottom)); + } + + .padding-bottom-safe { + padding-bottom: env(safe-area-inset-bottom); + } + .min-h-screen-shift { min-height: calc(100vh + env(safe-area-inset-top)); } @@ -453,6 +515,10 @@ @apply hidden; } } + + .extra-bottom-space { + height: calc(4rem + env(safe-area-inset-bottom)); + } } .ptr--ptr { @@ -470,6 +536,6 @@ z-index: 30 !important; } -.ptr--ptr .ptr--box { +.ptr--box { margin-bottom: -13px !important; } diff --git a/src/utils/typeHelpers.ts b/src/utils/typeHelpers.ts index 1ec82c427..dd6579902 100644 --- a/src/utils/typeHelpers.ts +++ b/src/utils/typeHelpers.ts @@ -9,7 +9,10 @@ export type Maybe = T | null | undefined; * @param component Main object you want to apply properties to * @param properties Object of properties you want to type on the main component */ -export function withProperties(component: A, properties: B): A & B { +export function withProperties( + component: A, + properties: B +): A & B { (Object.keys(properties) as (keyof B)[]).forEach((key) => { Object.assign(component, { [key]: properties[key] }); }); diff --git a/tailwind.config.js b/tailwind.config.js index a1ab7c309..e94cb96c5 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -5,7 +5,11 @@ const defaultTheme = require('tailwindcss/defaultTheme'); module.exports = { important: true, mode: 'jit', - content: ['./src/pages/**/*.{ts,tsx}', './src/components/**/*.{ts,tsx}'], + content: [ + './node_modules/react-tailwindcss-datepicker-sct/dist/index.esm.js', + './src/pages/**/*.{ts,tsx}', + './src/components/**/*.{ts,tsx}', + ], theme: { extend: { transitionProperty: { diff --git a/yarn.lock b/yarn.lock index 52f48c837..24ffecf5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,11 +3,12 @@ "@ampproject/remapping@^2.1.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" - integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== dependencies: - "@jridgewell/trace-mapping" "^0.3.0" + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" "@apidevtools/json-schema-ref-parser@9.0.9": version "9.0.9" @@ -19,10 +20,10 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" -"@babel/cli@7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" - integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== +"@babel/cli@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.20.7.tgz#8fc12e85c744a1a617680eacb488fab1fcd35b7c" + integrity sha512-WylgcELHB66WwQqItxNILsMlaTd8/SO6SgTTjMp4uCI7P4QyH1r3nqgFmO3BfM4AtfniHgFMH3EpYFj/zynBkQ== dependencies: "@jridgewell/trace-mapping" "^0.3.8" commander "^4.0.1" @@ -35,97 +36,48 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== - dependencies: - "@babel/highlight" "^7.16.7" - -"@babel/code-frame@^7.18.6": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.16.4": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" - integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": + version "7.20.10" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" + integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.13.tgz#6aff7b350a1e8c3e40b029e46cbe78e24a913483" - integrity sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw== - -"@babel/core@^7.18.5": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.13.tgz#9be8c44512751b05094a4d3ab05fc53a47ce00ac" - integrity sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A== +"@babel/core@^7.19.6", "@babel/core@^7.9.0": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" + integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.13" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.13" - "@babel/types" "^7.18.13" + "@babel/generator" "^7.20.7" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helpers" "^7.20.7" + "@babel/parser" "^7.20.7" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.12" + "@babel/types" "^7.20.7" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" + json5 "^2.2.2" semver "^6.3.0" -"@babel/core@^7.9.0": - version "7.17.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.5.tgz#6cd2e836058c28f06a4ca8ee7ed955bbf37c8225" - integrity sha512-/BBMw4EvjmyquN5O+t5eh0+YqB3XXJkYD2cjKpYtWOfFy4lQ4UozNSmxAcWT8r2XtZs0ewG+zrfsqeR15i1ajA== +"@babel/generator@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" + integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helpers" "^7.17.2" - "@babel/parser" "^7.17.3" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - -"@babel/generator@^7.17.3": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.3.tgz#a2c30b0c4f89858cb87050c3ffdfd36bdf443200" - integrity sha512-+R6Dctil/MgUsZsZAkYgK+ADNSZzJRRy0TvY65T71z/CR854xHQ1EweBYXdfT+HNeN7w0cSJJEzgxZMv40pxsg== - dependencies: - "@babel/types" "^7.17.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/generator@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.13.tgz#59550cbb9ae79b8def15587bdfbaa388c4abf212" - integrity sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ== - dependencies: - "@babel/types" "^7.18.13" + "@babel/types" "^7.20.7" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== - dependencies: - "@babel/types" "^7.16.7" - "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -141,59 +93,43 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" - integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb" + integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ== dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-validator-option" "^7.16.7" - browserslist "^4.17.5" - semver "^6.3.0" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== - dependencies: - "@babel/compat-data" "^7.18.8" + "@babel/compat-data" "^7.20.5" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" + browserslist "^4.21.3" + lru-cache "^5.1.1" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz#63e771187bd06d234f95fdf8bd5f8b6429de6298" - integrity sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7": + version "7.20.12" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819" + integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-replace-supers" "^7.20.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.16.7": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" - integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - regexpu-core "^5.0.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + regexpu-core "^5.2.1" -"@babel/helper-define-polyfill-provider@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" - integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== +"@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== dependencies: "@babel/helper-compilation-targets" "^7.17.7" "@babel/helper-plugin-utils" "^7.16.7" @@ -202,13 +138,6 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" @@ -221,36 +150,13 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" - integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== +"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/helper-get-function-arity" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== - dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" - -"@babel/helper-get-function-arity@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" - integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -259,54 +165,33 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== +"@babel/helper-member-expression-to-functions@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05" + integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw== dependencies: - "@babel/types" "^7.18.9" + "@babel/types" "^7.20.7" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-imports@^7.18.6": +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.16.7": - version "7.17.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.6.tgz#3c3b03cc6617e33d68ef5a27a67419ac5199ccd0" - integrity sha512-2ULmRdqoOMpdvkbT8jONrZML/XALfzxlb052bldftkicAUy8AxSCkD5trDPQcwHNmolcl7wP6ehNqMlyUw6AaA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.3" - "@babel/types" "^7.17.0" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" + integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.10" + "@babel/types" "^7.20.7" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -315,17 +200,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== -"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== - -"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": +"@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== @@ -335,44 +215,31 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331" + integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.20.7" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/helper-simple-access@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" - integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.20.2" -"@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== - dependencies: - "@babel/types" "^7.18.9" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.20.0" "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" @@ -381,25 +248,15 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": version "7.18.6" @@ -407,41 +264,23 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" - integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== dependencies: - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.11" - "@babel/types" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" -"@babel/helpers@^7.17.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" - integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== +"@babel/helpers@^7.20.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" + integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.17.0" - "@babel/types" "^7.17.0" - -"@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== - dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/highlight@^7.16.7": - version "7.16.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" - integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - chalk "^2.0.0" - js-tokens "^4.0.0" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.20.13" + "@babel/types" "^7.20.7" "@babel/highlight@^7.18.6": version "7.18.6" @@ -452,15 +291,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.16.7", "@babel/parser@^7.17.3", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.3.tgz#b07702b982990bf6fdc1da5049a23fece4c5c3d0" - integrity sha512-7yJPvPV+ESz2IUTPbOL+YkIGyCqOyNIzdguKQuJGnH7bg1WTIifuM21YqokFt/THWh1AkCRn9IgoykTRCBVpzA== - -"@babel/parser@^7.18.10", "@babel/parser@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.13.tgz#5b2dd21cae4a2c5145f1fbd8ca103f9313d3b7e4" - integrity sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg== +"@babel/parser@^7.1.0", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" + integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -470,21 +304,21 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" + integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.7" -"@babel/plugin-proposal-async-generator-functions@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" - integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== +"@babel/plugin-proposal-async-generator-functions@^7.20.1": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -497,12 +331,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7" + integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.18.6": @@ -530,11 +364,11 @@ "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" + integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": @@ -553,16 +387,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== +"@babel/plugin-proposal-object-rest-spread@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-parameters" "^7.20.7" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" @@ -572,13 +406,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== +"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55" + integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.18.6": @@ -590,16 +424,16 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6": +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== @@ -607,14 +441,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" - integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -650,12 +476,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== +"@babel/plugin-syntax-import-assertions@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" @@ -727,28 +553,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== +"@babel/plugin-syntax-typescript@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7" + integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551" + integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" + integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== dependencies: "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" @@ -757,42 +583,44 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== +"@babel/plugin-transform-block-scoping@^7.20.2": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a" + integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" - integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== +"@babel/plugin-transform-classes@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073" + integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.20.7" "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" "@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa" + integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" -"@babel/plugin-transform-destructuring@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" - integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== +"@babel/plugin-transform-destructuring@^7.20.2": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454" + integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-dotall-regex@^7.18.6": +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== @@ -800,14 +628,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" - integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" @@ -853,35 +673,32 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== +"@babel/plugin-transform-modules-amd@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" + integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== +"@babel/plugin-transform-modules-commonjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607" + integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw== dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-simple-access" "^7.20.2" -"@babel/plugin-transform-modules-systemjs@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" - integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== +"@babel/plugin-transform-modules-systemjs@^7.19.6": + version "7.20.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" + integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== dependencies: "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.20.11" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" @@ -891,13 +708,13 @@ "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" - integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" @@ -914,12 +731,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== +"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f" + integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -928,12 +745,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-react-constant-elements@^7.17.12": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz#edf3bec47eb98f14e84fa0af137fcc6aad8e0443" - integrity sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw== +"@babel/plugin-transform-react-constant-elements@^7.18.12": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz#3f02c784e0b711970d7d8ccc96c4359d64e27ac7" + integrity sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-react-display-name@^7.18.6": version "7.18.6" @@ -950,15 +767,15 @@ "@babel/plugin-transform-react-jsx" "^7.18.6" "@babel/plugin-transform-react-jsx@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz#ea47b2c4197102c196cbd10db9b3bb20daa820f1" - integrity sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz#f950f0b0c36377503d29a712f16287cedf886cbb" + integrity sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-jsx" "^7.18.6" - "@babel/types" "^7.18.10" + "@babel/types" "^7.20.7" "@babel/plugin-transform-react-pure-annotations@^7.18.6": version "7.18.6" @@ -969,12 +786,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" @@ -990,13 +807,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" - integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== +"@babel/plugin-transform-spread@^7.19.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" + integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" @@ -1020,13 +837,13 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz#712e9a71b9e00fde9f8c0238e0cceee86ab2f8fd" - integrity sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz#e3581b356b8694f6ff450211fe6774eaff8d25ab" + integrity sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-typescript" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.12" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" @@ -1043,18 +860,18 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.18.2": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" - integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== +"@babel/preset-env@^7.19.4": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" + integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.18.10" + "@babel/plugin-proposal-async-generator-functions" "^7.20.1" "@babel/plugin-proposal-class-properties" "^7.18.6" "@babel/plugin-proposal-class-static-block" "^7.18.6" "@babel/plugin-proposal-dynamic-import" "^7.18.6" @@ -1063,7 +880,7 @@ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-object-rest-spread" "^7.20.2" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" @@ -1074,7 +891,7 @@ "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.18.6" + "@babel/plugin-syntax-import-assertions" "^7.20.0" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1087,10 +904,10 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.9" - "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-block-scoping" "^7.20.2" + "@babel/plugin-transform-classes" "^7.20.2" "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.20.2" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" @@ -1098,30 +915,30 @@ "@babel/plugin-transform-function-name" "^7.18.9" "@babel/plugin-transform-literals" "^7.18.9" "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.18.6" - "@babel/plugin-transform-modules-commonjs" "^7.18.6" - "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-amd" "^7.19.6" + "@babel/plugin-transform-modules-commonjs" "^7.19.6" + "@babel/plugin-transform-modules-systemjs" "^7.19.6" "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" "@babel/plugin-transform-new-target" "^7.18.6" "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-parameters" "^7.20.1" "@babel/plugin-transform-property-literals" "^7.18.6" "@babel/plugin-transform-regenerator" "^7.18.6" "@babel/plugin-transform-reserved-words" "^7.18.6" "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-spread" "^7.19.0" "@babel/plugin-transform-sticky-regex" "^7.18.6" "@babel/plugin-transform-template-literals" "^7.18.9" "@babel/plugin-transform-typeof-symbol" "^7.18.9" "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.18.10" - babel-plugin-polyfill-corejs2 "^0.3.2" - babel-plugin-polyfill-corejs3 "^0.5.3" - babel-plugin-polyfill-regenerator "^0.4.0" - core-js-compat "^3.22.1" + "@babel/types" "^7.20.2" + babel-plugin-polyfill-corejs2 "^0.3.3" + babel-plugin-polyfill-corejs3 "^0.6.0" + babel-plugin-polyfill-regenerator "^0.4.1" + core-js-compat "^3.25.1" semver "^6.3.0" "@babel/preset-modules@^0.1.5": @@ -1135,7 +952,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.17.12": +"@babel/preset-react@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d" integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg== @@ -1147,7 +964,7 @@ "@babel/plugin-transform-react-jsx-development" "^7.18.6" "@babel/plugin-transform-react-pure-annotations" "^7.18.6" -"@babel/preset-typescript@^7.17.12": +"@babel/preset-typescript@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399" integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== @@ -1157,92 +974,52 @@ "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime-corejs3@^7.10.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" - integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.13.tgz#ad012857db412ab0b5ccf184b67be2cfcc2a1dcf" + integrity sha512-p39/6rmY9uvlzRiLZBIB3G9/EBr66LBMcYm7fIDeSBNdRjF2AGD3rFZucUyAgGHC2N+7DdLvVi33uTjSE44FIw== dependencies: - core-js-pure "^3.20.2" - regenerator-runtime "^0.13.4" + core-js-pure "^3.25.1" + regenerator-runtime "^0.13.11" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" - integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.20.6", "@babel/runtime@^7.20.7", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== dependencies: - regenerator-runtime "^0.13.4" + regenerator-runtime "^0.13.11" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" - integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/template@^7.18.10", "@babel/template@^7.18.6": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" - integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== +"@babel/template@^7.18.10", "@babel/template@^7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" + integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" -"@babel/traverse@^7.17.0", "@babel/traverse@^7.17.3", "@babel/traverse@^7.9.0": - version "7.17.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" - integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.3" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.3" - "@babel/types" "^7.17.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/traverse@^7.18.11", "@babel/traverse@^7.18.13", "@babel/traverse@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.13.tgz#5ab59ef51a997b3f10c4587d648b9696b6cb1a68" - integrity sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA== +"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.9.0": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" + integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.13" + "@babel/generator" "^7.20.7" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.13" - "@babel/types" "^7.18.13" + "@babel/parser" "^7.20.13" + "@babel/types" "^7.20.7" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": - version "7.17.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" - integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.6.1", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" + integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.4", "@babel/types@^7.18.6", "@babel/types@^7.18.9": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.13.tgz#30aeb9e514f4100f7c1cb6e5ba472b30e48f519a" - integrity sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -1250,221 +1027,167 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@commitlint/cli@17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.0.3.tgz#50be9d9a8d79f6c47bfd2703638fe65215eb2526" - integrity sha512-oAo2vi5d8QZnAbtU5+0cR2j+A7PO8zuccux65R/EycwvsZrDVyW518FFrnJK2UQxbRtHFFIG+NjQ6vOiJV0Q8A== +"@commitlint/cli@17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.0.tgz#14a5f9b713a5b60ff1a0cfce66b0bb207954c1ad" + integrity sha512-SEY4sYe8yVlgxPP7X0wJb96DBAGBPsCsy6QbqJt/UECbIAjDeDV5xXBV4jnS7T/qMC10sk6Ub9kDhEX0VWvblw== dependencies: - "@commitlint/format" "^17.0.0" - "@commitlint/lint" "^17.0.3" - "@commitlint/load" "^17.0.3" - "@commitlint/read" "^17.0.0" - "@commitlint/types" "^17.0.0" + "@commitlint/format" "^17.4.0" + "@commitlint/lint" "^17.4.0" + "@commitlint/load" "^17.4.0" + "@commitlint/read" "^17.4.0" + "@commitlint/types" "^17.4.0" execa "^5.0.0" - lodash "^4.17.19" + lodash.isfunction "^3.0.9" resolve-from "5.0.0" resolve-global "1.0.0" yargs "^17.0.0" -"@commitlint/config-conventional@17.0.3": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.0.3.tgz#61e937357ce63ea08a2017e58b918748fcf3abc5" - integrity sha512-HCnzTm5ATwwwzNVq5Y57poS0a1oOOcd5pc1MmBpLbGmSysc4i7F/++JuwtdFPu16sgM3H9J/j2zznRLOSGVO2A== +"@commitlint/config-conventional@17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.0.tgz#9188d793886d8a1c633834602f06a642dd16ed64" + integrity sha512-G4XBf45J4ZMspO4NwBFzY3g/1Kb+B42BcIxeikF8wucQxcyxcmhRdjeQpRpS1XEcBq5pdtEEQFipuB9IuiNFhw== dependencies: conventional-changelog-conventionalcommits "^5.0.0" -"@commitlint/config-validator@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-16.2.1.tgz#794e769afd4756e4cf1bfd823b6612932e39c56d" - integrity sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw== +"@commitlint/config-validator@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.0.tgz#2cb229672a22476cf1f21bedbfcd788e5da5b54f" + integrity sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA== dependencies: - "@commitlint/types" "^16.2.1" - ajv "^6.12.6" - -"@commitlint/config-validator@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.1.0.tgz#51d09ca53d7a0d19736abf34eb18a66efce0f97a" - integrity sha512-Q1rRRSU09ngrTgeTXHq6ePJs2KrI+axPTgkNYDWSJIuS1Op4w3J30vUfSXjwn5YEJHklK3fSqWNHmBhmTR7Vdg== - dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/types" "^17.4.0" ajv "^8.11.0" -"@commitlint/ensure@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.0.0.tgz#781ff5f8870cb98ce4496d5c71649a4cd122a0e0" - integrity sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A== +"@commitlint/ensure@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.0.tgz#3de65768bfccb9956ec3a0ecd8a415421bf315e5" + integrity sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw== dependencies: - "@commitlint/types" "^17.0.0" - lodash "^4.17.19" + "@commitlint/types" "^17.4.0" + lodash.camelcase "^4.3.0" + lodash.kebabcase "^4.1.1" + lodash.snakecase "^4.1.1" + lodash.startcase "^4.4.0" + lodash.upperfirst "^4.3.1" -"@commitlint/execute-rule@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-16.2.1.tgz#60be73be4b9af97a41546e7ce59fdd33787c65f8" - integrity sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g== +"@commitlint/execute-rule@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" + integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== -"@commitlint/execute-rule@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.0.0.tgz#186e9261fd36733922ae617497888c4bdb6e5c92" - integrity sha512-nVjL/w/zuqjCqSJm8UfpNaw66V9WzuJtQvEnCrK4jDw6qKTmZB+1JQ8m6BQVZbNBcwfYdDNKnhIhqI0Rk7lgpQ== - -"@commitlint/format@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.0.0.tgz#2c991ac0df3955fe5d7d4d733967bd17e6cfd9e0" - integrity sha512-MZzJv7rBp/r6ZQJDEodoZvdRM0vXu1PfQvMTNWFb8jFraxnISMTnPBWMMjr2G/puoMashwaNM//fl7j8gGV5lA== +"@commitlint/format@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.0.tgz#1c80cf3a6274ff9b3d3c0dd150a97882d557aa0f" + integrity sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA== dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/types" "^17.4.0" chalk "^4.1.0" -"@commitlint/is-ignored@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.1.0.tgz#c9d5ca22679fdc657fff33a8aa23e0c0152ebbd1" - integrity sha512-JITWKDMHhIh8IpdIbcbuH9rEQJty1ZWelgjleTFrVRAcEwN/sPzk1aVUXRIZNXMJWbZj8vtXRJnFihrml8uECQ== +"@commitlint/is-ignored@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.2.tgz#2d40a34e071c3e595e485fafe8460457a7b7af9d" + integrity sha512-1b2Y2qJ6n7bHG9K6h8S4lBGUl6kc7mMhJN9gy1SQfUZqe92ToDjUTtgNWb6LbzR1X8Cq4SEus4VU8Z/riEa94Q== dependencies: - "@commitlint/types" "^17.0.0" - semver "7.3.7" + "@commitlint/types" "^17.4.0" + semver "7.3.8" -"@commitlint/lint@^17.0.3": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.1.0.tgz#de2d3baa2b20d9ec3d5fd2f2421f6025c8439630" - integrity sha512-ltpqM2ogt/+SDhUaScFo0MdscncEF96lvQTPMM/VTTWlw7sTGLLWkOOppsee2MN/uLNNWjQ7kqkd4h6JqoM9AQ== +"@commitlint/lint@^17.4.0": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.2.tgz#1277cb4d5395e9d6c39cbc351984bac9dcc6b7cd" + integrity sha512-HcymabrdBhsDMNzIv146+ZPNBPBK5gMNsVH+el2lCagnYgCi/4ixrHooeVyS64Fgce2K26+MC7OQ4vVH8wQWVw== dependencies: - "@commitlint/is-ignored" "^17.1.0" - "@commitlint/parse" "^17.0.0" - "@commitlint/rules" "^17.0.0" - "@commitlint/types" "^17.0.0" + "@commitlint/is-ignored" "^17.4.2" + "@commitlint/parse" "^17.4.2" + "@commitlint/rules" "^17.4.2" + "@commitlint/types" "^17.4.0" -"@commitlint/load@>6.1.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-16.2.1.tgz#301bda1bff66b3e40a85819f854eda72538d8e24" - integrity sha512-oSpz0jTyVI/A1AIImxJINTLDOMB8YF7lWGm+Jg5wVWM0r7ucpuhyViVvpSRTgvL0z09oIxlctyFGWUQQpI42uw== +"@commitlint/load@>6.1.1", "@commitlint/load@^17.4.0": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.2.tgz#551875c3e1dce6dc0375dc9c8ad551de8ba35de4" + integrity sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw== dependencies: - "@commitlint/config-validator" "^16.2.1" - "@commitlint/execute-rule" "^16.2.1" - "@commitlint/resolve-extends" "^16.2.1" - "@commitlint/types" "^16.2.1" - "@types/node" ">=12" - chalk "^4.0.0" - cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^1.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - typescript "^4.4.3" - -"@commitlint/load@^17.0.3": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.1.1.tgz#16f945d2cc4a5d4d75cccc3d7df8066ff152024b" - integrity sha512-jEgdDabfj58kFKZmB7rMtmQa7Feo7Ozh3KmvIlXWqrJmal5auO1RC0Iczfl52DlPn26Uo0goUDHrhoAFs2ze0Q== - dependencies: - "@commitlint/config-validator" "^17.1.0" - "@commitlint/execute-rule" "^17.0.0" - "@commitlint/resolve-extends" "^17.1.0" - "@commitlint/types" "^17.0.0" - "@types/node" "^14.0.0" + "@commitlint/config-validator" "^17.4.0" + "@commitlint/execute-rule" "^17.4.0" + "@commitlint/resolve-extends" "^17.4.0" + "@commitlint/types" "^17.4.0" + "@types/node" "*" chalk "^4.1.0" - cosmiconfig "^7.0.0" - cosmiconfig-typescript-loader "^3.0.0" - lodash "^4.17.19" + cosmiconfig "^8.0.0" + cosmiconfig-typescript-loader "^4.0.0" + lodash.isplainobject "^4.0.6" + lodash.merge "^4.6.2" + lodash.uniq "^4.5.0" resolve-from "^5.0.0" + ts-node "^10.8.1" typescript "^4.6.4" -"@commitlint/message@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.0.0.tgz#ae0f8ec6a3e5c8d369792a2c391952c7596cca73" - integrity sha512-LpcwYtN+lBlfZijHUdVr8aNFTVpHjuHI52BnfoV01TF7iSLnia0jttzpLkrLmI8HNQz6Vhr9UrxDWtKZiMGsBw== +"@commitlint/message@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" + integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== -"@commitlint/parse@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.0.0.tgz#6d508a1e2aec76f348a447994f26e9b749c02091" - integrity sha512-cKcpfTIQYDG1ywTIr5AG0RAiLBr1gudqEsmAGCTtj8ffDChbBRxm6xXs2nv7GvmJN7msOt7vOKleLvcMmRa1+A== +"@commitlint/parse@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.2.tgz#b0f8a257a1f93387a497408b0b4cadba60ee3359" + integrity sha512-DK4EwqhxfXpyCA+UH8TBRIAXAfmmX4q9QRBz/2h9F9sI91yt6mltTrL6TKURMcjUVmgaB80wgS9QybNIyVBIJA== dependencies: - "@commitlint/types" "^17.0.0" + "@commitlint/types" "^17.4.0" conventional-changelog-angular "^5.0.11" conventional-commits-parser "^3.2.2" -"@commitlint/read@^17.0.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.1.0.tgz#cf6bab410180f32f70891c97b15467c0b92ac14f" - integrity sha512-73BoFNBA/3Ozo2JQvGsE0J8SdrJAWGfZQRSHqvKaqgmY042Su4gXQLqvAzgr55S9DI1l9TiU/5WDuh8IE86d/g== +"@commitlint/read@^17.4.0": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.2.tgz#4880a05271fb44cefa54d365a17d5753496a6de0" + integrity sha512-hasYOdbhEg+W4hi0InmXHxtD/1favB4WdwyFxs1eOy/DvMw6+2IZBmATgGOlqhahsypk4kChhxjAFJAZ2F+JBg== dependencies: - "@commitlint/top-level" "^17.0.0" - "@commitlint/types" "^17.0.0" - fs-extra "^10.0.0" + "@commitlint/top-level" "^17.4.0" + "@commitlint/types" "^17.4.0" + fs-extra "^11.0.0" git-raw-commits "^2.0.0" minimist "^1.2.6" -"@commitlint/resolve-extends@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-16.2.1.tgz#2f7833a5a3a7aa79f508e59fcb0f1d33c45ed360" - integrity sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg== +"@commitlint/resolve-extends@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.0.tgz#9023da6c70c4ebd173b4b0995fe29f27051da2d3" + integrity sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ== dependencies: - "@commitlint/config-validator" "^16.2.1" - "@commitlint/types" "^16.2.1" + "@commitlint/config-validator" "^17.4.0" + "@commitlint/types" "^17.4.0" import-fresh "^3.0.0" - lodash "^4.17.19" + lodash.mergewith "^4.6.2" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/resolve-extends@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz#7cf04fa13096c8a6544a4af13321fdf8d0d50694" - integrity sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ== +"@commitlint/rules@^17.4.2": + version "17.4.2" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.2.tgz#cdf203bc82af979cb319210ef9215cb1de216a9b" + integrity sha512-OGrPsMb9Fx3/bZ64/EzJehY9YDSGWzp81Pj+zJiY+r/NSgJI3nUYdlS37jykNIugzazdEXfMtQ10kmA+Kx2pZQ== dependencies: - "@commitlint/config-validator" "^17.1.0" - "@commitlint/types" "^17.0.0" - import-fresh "^3.0.0" - lodash "^4.17.19" - resolve-from "^5.0.0" - resolve-global "^1.0.0" - -"@commitlint/rules@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.0.0.tgz#4eecc5d28cabbc5f3f73838fb02592b551f9bf62" - integrity sha512-45nIy3dERKXWpnwX9HeBzK5SepHwlDxdGBfmedXhL30fmFCkJOdxHyOJsh0+B0RaVsLGT01NELpfzJUmtpDwdQ== - dependencies: - "@commitlint/ensure" "^17.0.0" - "@commitlint/message" "^17.0.0" - "@commitlint/to-lines" "^17.0.0" - "@commitlint/types" "^17.0.0" + "@commitlint/ensure" "^17.4.0" + "@commitlint/message" "^17.4.2" + "@commitlint/to-lines" "^17.4.0" + "@commitlint/types" "^17.4.0" execa "^5.0.0" -"@commitlint/to-lines@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.0.0.tgz#5766895836b8085b099a098482f88a03f070b411" - integrity sha512-nEi4YEz04Rf2upFbpnEorG8iymyH7o9jYIVFBG1QdzebbIFET3ir+8kQvCZuBE5pKCtViE4XBUsRZz139uFrRQ== +"@commitlint/to-lines@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" + integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== -"@commitlint/top-level@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.0.0.tgz#ebd0df4c703c026c2fbdc20fa746836334f4ed15" - integrity sha512-dZrEP1PBJvodNWYPOYiLWf6XZergdksKQaT6i1KSROLdjf5Ai0brLOv5/P+CPxBeoj3vBxK4Ax8H1Pg9t7sHIQ== +"@commitlint/top-level@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" + integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== dependencies: find-up "^5.0.0" -"@commitlint/types@^16.2.1": - version "16.2.1" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-16.2.1.tgz#f25d373b88b01e51fc3fa44488101361945a61bd" - integrity sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA== - dependencies: - chalk "^4.0.0" - -"@commitlint/types@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.0.0.tgz#3b4604c1a0f06c340ce976e6c6903d4f56e3e690" - integrity sha512-hBAw6U+SkAT5h47zDMeOu3HSiD0SODw4Aq7rRNh1ceUmL7GyLKYhPbUvlRWqZ65XjBLPHZhFyQlRaPNz8qvUyQ== +"@commitlint/types@^17.4.0": + version "17.4.0" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.0.tgz#c7c2b97b959f6175c164632bf26208ce417b3f31" + integrity sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA== dependencies: chalk "^4.1.0" -"@cspotcode/source-map-consumer@0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" - integrity sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg== - -"@cspotcode/source-map-support@0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz#4789840aa859e46d2f3173727ab707c66bf344f5" - integrity sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA== - dependencies: - "@cspotcode/source-map-consumer" "0.8.0" - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -1473,9 +1196,9 @@ "@jridgewell/trace-mapping" "0.3.9" "@cypress/request@^2.88.10": - version "2.88.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" - integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== + version "2.88.11" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.11.tgz#5a4c7399bc2d7e7ed56e92ce5acb620c8b187047" + integrity sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w== dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -1490,7 +1213,7 @@ json-stringify-safe "~5.0.1" mime-types "~2.1.19" performance-now "^2.1.0" - qs "~6.5.2" + qs "~6.10.3" safe-buffer "^5.1.2" tough-cookie "~2.5.0" tunnel-agent "^0.6.0" @@ -1513,23 +1236,23 @@ enabled "2.0.x" kuler "^2.0.0" -"@emotion/babel-plugin@^11.10.0": - version "11.10.2" - resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz#879db80ba622b3f6076917a1e6f648b1c7d008c7" - integrity sha512-xNQ57njWTFVfPAc3cjfuaPdsgLp5QOSuRsj9MA6ndEhH/AzuZM86qIQzt6rq+aGBwj3n5/TkLmU5lhAfdRmogA== +"@emotion/babel-plugin@^11.10.5": + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz#65fa6e1790ddc9e23cc22658a4c5dea423c55c3c" + integrity sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA== dependencies: "@babel/helper-module-imports" "^7.16.7" "@babel/plugin-syntax-jsx" "^7.17.12" "@babel/runtime" "^7.18.3" "@emotion/hash" "^0.9.0" "@emotion/memoize" "^0.8.0" - "@emotion/serialize" "^1.1.0" + "@emotion/serialize" "^1.1.1" babel-plugin-macros "^3.1.0" convert-source-map "^1.5.0" escape-string-regexp "^4.0.0" find-root "^1.1.0" source-map "^0.5.7" - stylis "4.0.13" + stylis "4.1.3" "@emotion/cache@^10.0.27": version "10.0.29" @@ -1541,27 +1264,16 @@ "@emotion/utils" "0.11.3" "@emotion/weak-memoize" "0.2.5" -"@emotion/cache@^11.10.0": - version "11.10.3" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.3.tgz#c4f67904fad10c945fea5165c3a5a0583c164b87" - integrity sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ== +"@emotion/cache@^11.10.5", "@emotion/cache@^11.4.0": + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.10.5.tgz#c142da9351f94e47527ed458f7bbbbe40bb13c12" + integrity sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA== dependencies: "@emotion/memoize" "^0.8.0" - "@emotion/sheet" "^1.2.0" + "@emotion/sheet" "^1.2.1" "@emotion/utils" "^1.2.0" "@emotion/weak-memoize" "^0.3.0" - stylis "4.0.13" - -"@emotion/cache@^11.4.0": - version "11.7.1" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.7.1.tgz#08d080e396a42e0037848214e8aa7bf879065539" - integrity sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A== - dependencies: - "@emotion/memoize" "^0.7.4" - "@emotion/sheet" "^1.1.0" - "@emotion/utils" "^1.0.0" - "@emotion/weak-memoize" "^0.2.5" - stylis "4.0.13" + stylis "4.1.3" "@emotion/core@^10.0.14": version "10.3.1" @@ -1599,25 +1311,21 @@ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== -"@emotion/memoize@^0.7.4": - version "0.7.5" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" - integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== - "@emotion/memoize@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.0.tgz#f580f9beb67176fa57aae70b08ed510e1b18980f" integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== "@emotion/react@^11.8.1": - version "11.10.0" - resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.0.tgz#53c577f063f26493f68a05188fb87528d912ff2e" - integrity sha512-K6z9zlHxxBXwN8TcpwBKcEsBsOw4JWCCmR+BeeOWgqp8GIU1yA2Odd41bwdAAr0ssbQrbJbVnndvv7oiv1bZeQ== + version "11.10.5" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.10.5.tgz#95fff612a5de1efa9c0d535384d3cfa115fe175d" + integrity sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A== dependencies: "@babel/runtime" "^7.18.3" - "@emotion/babel-plugin" "^11.10.0" - "@emotion/cache" "^11.10.0" - "@emotion/serialize" "^1.1.0" + "@emotion/babel-plugin" "^11.10.5" + "@emotion/cache" "^11.10.5" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" "@emotion/utils" "^1.2.0" "@emotion/weak-memoize" "^0.3.0" hoist-non-react-statics "^3.3.1" @@ -1633,10 +1341,10 @@ "@emotion/utils" "0.11.3" csstype "^2.5.7" -"@emotion/serialize@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.0.tgz#b1f97b1011b09346a40e9796c37a3397b4ea8ea8" - integrity sha512-F1ZZZW51T/fx+wKbVlwsfchr5q97iW8brAnXmsskz4d0hVB4O3M/SiA3SaeH06x02lSNzkkQv+n3AX3kCXKSFA== +"@emotion/serialize@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.1.tgz#0595701b1902feded8a96d293b26be3f5c1a5cf0" + integrity sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA== dependencies: "@emotion/hash" "^0.9.0" "@emotion/memoize" "^0.8.0" @@ -1649,15 +1357,10 @@ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== -"@emotion/sheet@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" - integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== - -"@emotion/sheet@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.0.tgz#771b1987855839e214fc1741bde43089397f7be5" - integrity sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w== +"@emotion/sheet@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.1.tgz#0767e0305230e894897cadb6c8df2c51e61a6c2c" + integrity sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA== "@emotion/stylis@0.8.5": version "0.8.5" @@ -1674,22 +1377,22 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.0.tgz#a4a36e9cbdc6903737cd20d38033241e1b8833db" integrity sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw== +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz#ffadaec35dbb7885bd54de3fa267ab2f860294df" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== + "@emotion/utils@0.11.3": version "0.11.3" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== -"@emotion/utils@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.1.0.tgz#86b0b297f3f1a0f2bdb08eeac9a2f49afd40d0cf" - integrity sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ== - "@emotion/utils@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.0.tgz#9716eaccbc6b5ded2ea5a90d65562609aab0f561" integrity sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw== -"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5": +"@emotion/weak-memoize@0.2.5": version "0.2.5" resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== @@ -1699,28 +1402,40 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz#ea89004119dc42db2e1dba0f97d553f7372f6fcb" integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== -"@eslint/eslintrc@^1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" - integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== +"@eslint/eslintrc@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" + integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@formatjs/ecma402-abstract@1.11.8": - version "1.11.8" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.8.tgz#f4015dfb6a837369d94c6ba82455c609e45bce20" - integrity sha512-fgLqyWlwmTEuqV/TSLEL/t9JOmHNLFvCdgzXB0jc2w+WOItPCOJ1T0eyN6fQBQKRPfSqqNlu+kWj7ijcOVTVVQ== +"@floating-ui/core@^1.0.5": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.1.0.tgz#0a1dee4bbce87ff71602625d33f711cafd8afc08" + integrity sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ== + +"@floating-ui/dom@^1.0.1": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.1.0.tgz#29fea1344fdef15b6ba270a733d20b7134fee5c2" + integrity sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A== dependencies: - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@floating-ui/core" "^1.0.5" + +"@formatjs/ecma402-abstract@1.14.3": + version "1.14.3" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.14.3.tgz#6428f243538a11126180d121ce8d4b2f17465738" + integrity sha512-SlsbRC/RX+/zg4AApWIFNDdkLtFbkq3LNoZWXZCE/nHVKqoIJyaoQyge/I0Y38vLxowUn9KTtXgusLD91+orbg== + dependencies: + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" "@formatjs/ecma402-abstract@1.4.0": version "1.4.0" @@ -1736,70 +1451,77 @@ dependencies: tslib "^2.0.1" -"@formatjs/fast-memoize@1.2.4": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.4.tgz#4b5ddce9eb7803ff0bd4052387672151a8b7f8a0" - integrity sha512-9ARYoLR8AEzXvj2nYrOVHY/h1dDMDWGTnKDLXSISF1uoPakSmfcZuSqjiqZX2wRkEUimPxdwTu/agyozBtZRHA== +"@formatjs/fast-memoize@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.7.tgz#90d5de031fc80e0027b2d4e8a3197b0df4a94457" + integrity sha512-hPeM5LXUUjtCKPybWOUAWpv8lpja8Xz+uKprFPJcg5F2Rd+/bf1E0UUsLRpaAgOReAf5HMRtoIgv/UcyPICrTQ== dependencies: - tslib "2.4.0" + tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.4.tgz#f1e32b9937f151c1dd5c30536ce3e920b7f23813" - integrity sha512-3PqMvKWV1oyok0BuiXUAHIaotdhdTJw6OICqCZbfUgKT+ZRwRWO4IlCgvXJeCITaKS5p+PY0XXKjf/vUyIpWjQ== +"@formatjs/fast-memoize@1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.8.tgz#425a69f783005f69e11f9e38a7f87f8822d330c6" + integrity sha512-PemNUObyoIZcqdQ1ixTPugzAzhEj7j6AHIyrq/qR6x5BFTvOQeXHYsVZUqBEFduAIscUaDfou+U+xTqOiunJ3Q== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/icu-skeleton-parser" "1.3.10" - tslib "2.4.0" + tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.10.tgz#2f504e56ac80137ee2baad55c7fa0b5dc7f4e4df" - integrity sha512-kXJmtLDqFF5aLTf8IxdJXnhrIX1Qb4Qp3a9jqRecGDYfzOa9hMhi9U0nKyhrJJ4cXxBzptcgb+LWkyeHL6nlBQ== +"@formatjs/icu-messageformat-parser@2.1.14": + version "2.1.14" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.14.tgz#d7bc8c82bfce1eb8e3232e6d7e3d6ea92ba390cc" + integrity sha512-0KqeVOb72losEhUW+59vhZGGd14s1f35uThfEMVKZHKLEObvJdFTiI3ZQwvTMUCzLEMxnS6mtnYPmG4mTvwd3Q== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-skeleton-parser" "1.3.18" + tslib "^2.4.0" -"@formatjs/intl-displaynames@6.0.3": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.0.3.tgz#e648a91bccd9fb21519090eaafece3be9d15f480" - integrity sha512-Mxh6W1VOlmiEvO/QPBrBQHlXrIn5VxjJWyyEI0V7ZHNGl0ee8AjSlq7vIJG8GodRJqGUuutF6N3OB/6qFv0YWg== +"@formatjs/icu-skeleton-parser@1.3.18": + version "1.3.18" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.18.tgz#7aed3d60e718c8ad6b0e64820be44daa1e29eeeb" + integrity sha512-ND1ZkZfmLPcHjAH1sVpkpQxA+QYfOX3py3SjKWMUVGDow18gZ0WPqz3F+pJLYQMpS2LnnQ5zYR2jPVYTbRwMpg== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + tslib "^2.4.0" -"@formatjs/intl-getcanonicallocales@2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.0.2.tgz#e9fd5d2215ce0dba4d8611b37ac87c5fae60a1a7" - integrity sha512-nMkPblAjgK49ORueVhyuKJDXOCq8at2h9Xf0lqabBZylaX3xLEeuAW2eMXuwJ/ascYYQnwuxeukd/qlzDkuJzQ== +"@formatjs/intl-displaynames@6.2.3": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.2.3.tgz#65bc954fe891fdfe197268602f4d2d3ccd631cce" + integrity sha512-teB0L68MDGM8jEKQg55w7nvFjzeLHE6e3eK/04s+iuEVYYmvjjiHJKHrthKENzcJ0F6mHf/AwXrbX+1mKxT6AQ== dependencies: - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" -"@formatjs/intl-listformat@7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.0.3.tgz#8627969b77849559d148bc9536d0884c2271e6de" - integrity sha512-ampNLRGZl/08epHa3i5sRmcHGLneC6JrknexbbgnexYFNSmJ6AbL/dCzgrQzw2Efl+5AZK7UbNFxcDYY3RePvw== +"@formatjs/intl-getcanonicallocales@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-2.0.5.tgz#d405cf5221f49531e62ecfde50acdfb62fcc4854" + integrity sha512-YOk+Fa5gpPq5bdpm8JDAY5bkfCkR+NENZKQbLHeqhm8JchHcclPwZ9FU48gYGg3CW6Wi/cTCOvmOrzsIhlkr0w== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + tslib "^2.4.0" -"@formatjs/intl-locale@3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.0.3.tgz#ae112831c06209d1d7286b36e7b824a5e84ddd63" - integrity sha512-AZrh8z/GaR+4ogy9LR1lKouXwXWKRK4TDtwFv6SIFIJgF9SQ6l4gdJ1/k13susw6NMAQiKdtG9IdhEtKXsp+6w== +"@formatjs/intl-listformat@7.1.7": + version "7.1.7" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.1.7.tgz#b46fec1038ef9ca062d1e7b9b3412c2a14dca18f" + integrity sha512-Zzf5ruPpfJnrAA2hGgf/6pMgQ3tx9oJVhpqycFDavHl3eEzrwdHddGqGdSNwhd0bB4NAFttZNQdmKDldc5iDZw== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-getcanonicallocales" "2.0.2" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" -"@formatjs/intl-localematcher@0.2.28": - version "0.2.28" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.28.tgz#412ea7fefbfc7ed33cd6b43aa304fc14d816e564" - integrity sha512-FLsc6Gifs1np/8HnCn/7Q+lHMmenrD5fuDhRT82yj0gi9O19kfaFwjQUw1gZsyILuRyT93GuzdifHj7TKRhBcw== +"@formatjs/intl-locale@3.0.11": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@formatjs/intl-locale/-/intl-locale-3.0.11.tgz#6b3bee5692fab3c70a0ce9c642c2a2bec3700aa4" + integrity sha512-gLEX9kzebBjIVCkXMMN+VFMUV2aj0vhmrP+nke2muxUSJ3fLs/DJjlkv+s59rAL3nNaGdvphqKLhQsul0mmhAw== dependencies: - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-getcanonicallocales" "2.0.5" + tslib "^2.4.0" + +"@formatjs/intl-localematcher@0.2.32": + version "0.2.32" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.32.tgz#00d4d307cd7d514b298e15a11a369b86c8933ec1" + integrity sha512-k/MEBstff4sttohyEpXxCmC3MqbUn9VvHGlZ8fauLzkbwXmVrEeyzS+4uhrvAk9DWU9/7otYWxyDox4nT/KVLQ== + dependencies: + tslib "^2.4.0" "@formatjs/intl-numberformat@^5.5.2": version "5.7.6" @@ -1809,14 +1531,14 @@ "@formatjs/ecma402-abstract" "1.4.0" tslib "^2.0.1" -"@formatjs/intl-pluralrules@5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.0.3.tgz#78d76da83470495e3e4d82df8cd6250578c1685c" - integrity sha512-av3ks022vDE1dbCUAqwYc8bnGRcAPKK6C7ZRINNjjQn43ZQVX1AXc7PY2RqO/GXzkixsSWfHFZjSgzzbhbd21A== +"@formatjs/intl-pluralrules@5.1.8": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@formatjs/intl-pluralrules/-/intl-pluralrules-5.1.8.tgz#11eeca3cde088fd68d258a09b0791b327a8eb019" + integrity sha512-uevO916EWoeuueqeNzHjnUzpfWZzXFJibC/sEvPR/ZiZH5btWuOLeJLdb1To4nMH8ZJQlmAf8SDpFf+eWvz5lQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/intl-localematcher" "0.2.28" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/intl-localematcher" "0.2.32" + tslib "^2.4.0" "@formatjs/intl-utils@3.8.4": version "3.8.4" @@ -1825,18 +1547,18 @@ dependencies: emojis-list "^3.0.0" -"@formatjs/intl@2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.3.1.tgz#eccd6d03e4db18c256181f235b1d0a7f7aaebf5a" - integrity sha512-f06qZ/ukpeN24gc01qFjh3P+r3FU/ikY4yG+fDJu6dPNvpUQzDy98lYogA1dr6ig2UtrnoEk3xncyFPL1e9cZw== +"@formatjs/intl@2.6.3": + version "2.6.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.6.3.tgz#7cedd184fb62d39174fbf62ee636b1b306524b7c" + integrity sha512-JaVZk14U/GypVfCZPevQ0KdruFkq16FXx7g398/Dm+YEx/W7sRiftbZeDy4wQ7WGryb45e763XycxD9o/vm9BA== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/fast-memoize" "1.2.4" - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/intl-displaynames" "6.0.3" - "@formatjs/intl-listformat" "7.0.3" - intl-messageformat "10.1.1" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "1.2.7" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/intl-displaynames" "6.2.3" + "@formatjs/intl-listformat" "7.1.7" + intl-messageformat "10.2.5" + tslib "^2.4.0" "@formatjs/ts-transformer@2.13.0", "@formatjs/ts-transformer@^2.6.0": version "2.13.0" @@ -1847,20 +1569,20 @@ tslib "^2.0.1" typescript "^4.0" -"@formatjs/ts-transformer@3.9.9": - version "3.9.9" - resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.9.9.tgz#4804e0560e1944407e9dc5f5ae568a329d5668e4" - integrity sha512-V5BDpn5XW1wWBkpDn5SFHRH4Ndf3oyjxmuqWMxe2EwOKkV4XJvzZI73k3p/Hut3Xg55AxBQQmkFK9hyeBJPyIg== +"@formatjs/ts-transformer@3.11.5": + version "3.11.5" + resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.11.5.tgz#0502c0c38d4ad628efbef61f1c2e35b7ea37959e" + integrity sha512-cAmvKzgPqdetAr/RsxoXYhfNhMf5tERlXzJTsQw+j6tddPwIAbihACQx6KaajyJJ4aNssiziWNmcaHtjTqrrVw== dependencies: - "@formatjs/icu-messageformat-parser" "2.1.4" + "@formatjs/icu-messageformat-parser" "2.1.14" "@types/json-stable-stringify" "^1.0.32" "@types/node" "14 || 16 || 17" chalk "^4.0.0" json-stable-stringify "^1.0.1" - tslib "2.4.0" - typescript "^4.5" + tslib "^2.4.0" + typescript "^4.7" -"@gar/promisify@^1.0.1": +"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== @@ -1873,44 +1595,83 @@ "@hapi/hoek" "9.x.x" "@hapi/hoek@9.x.x": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17" - integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw== + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== -"@headlessui/react@0.0.0-insiders.b301f04": - version "0.0.0-insiders.b301f04" - resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-0.0.0-insiders.b301f04.tgz#12f209097f987cddbba72de40240a12648ebe12b" - integrity sha512-I+UUEUkdYp+AgKU1teWUZaICEg//OWl0R1UxCB50Jzfi3APu7aSY0Y+ABrgfEWDhBYTG9hNgXvMVTNCnFu49yA== +"@headlessui/react@1.7.7": + version "1.7.7" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.7.tgz#d6f8708d8943ae8ebb1a6929108234e4515ac7e8" + integrity sha512-BqDOd/tB9u2tA0T3Z0fn18ktw+KbVwMnkxxsGPIH2hzssrQhKB5n/6StZOyvLYP/FsYtvuXfi9I0YowKPv2c1w== + dependencies: + client-only "^0.0.1" -"@heroicons/react@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-1.0.6.tgz#35dd26987228b39ef2316db3b1245c42eb19e324" - integrity sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ== +"@heroicons/react@2.0.13": + version "2.0.13" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.0.13.tgz#9b1cc54ff77d6625c9565efdce0054a4bcd9074c" + integrity sha512-iSN5XwmagrnirWlYEWNPdCDj9aRYVD/lnK3JlsC9/+fqGF80k8C7rl+1HCvBX0dBoagKqOFBs6fMhJJ1hOg1EQ== -"@humanwhocodes/config-array@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" - integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" - minimatch "^3.0.4" + minimatch "^3.0.5" -"@humanwhocodes/gitignore-to-minimatch@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" - integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@internationalized/date@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.0.2.tgz#1566a0bcbd82dce4dd54a5b26456bb701068cb89" + integrity sha512-9V1IxesP6ASZj/hYyOXOC4yPJvidbbStyWQKLCQSqhhKACMOXoo+BddXZJy47ju9mqOMpWdrJ2rTx4yTxK9oag== + dependencies: + "@swc/helpers" "^0.4.14" + +"@internationalized/message@^3.0.10": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@internationalized/message/-/message-3.0.10.tgz#340dcfd14ace37234e09419427c991a0c466b96e" + integrity sha512-vfLqEop/NH68IgqMcXJNSDqZ5Leg3EEgCxhuuSefU7vvdbptD3pwpUWXaK9igYPa+aZfUU0eqv86yqm76obtsw== + dependencies: + "@swc/helpers" "^0.4.14" + intl-messageformat "^10.1.0" + +"@internationalized/number@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.1.2.tgz#4482a6ac573acfb18efd354a42008af20da6c89c" + integrity sha512-Mbys8SGsn0ApXz3hJLNU+d95B8luoUbwnmCpBwl7d63UmYAlcT6TRDyvaS/vwdbElXLcsQJjQCu0gox2cv/Tig== + dependencies: + "@swc/helpers" "^0.4.14" + +"@internationalized/string@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@internationalized/string/-/string-3.0.1.tgz#2c70a81ae5eb84f156f40330369c2469bad6d504" + integrity sha512-2+rHfXZ56YgsC6i3fKvBue/xatnSm0Jv+C/x4+n3wg5xAcLh4LPW3GvZ/9ifxNAz9+IWplgZHa1FRIbSuUvNWg== + dependencies: + "@swc/helpers" "^0.4.14" + "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" @@ -1920,20 +1681,20 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" - integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== +"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" - integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -1943,21 +1704,13 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.15" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" - integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" "@jsdevtools/ono@7.1.3", "@jsdevtools/ono@^7.1.3": version "7.1.3" @@ -1990,15 +1743,15 @@ titleize "2" tlds "^1.230.0" -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz#32abc8a5c624bc4e46c43d84dfb8b26d33a96f58" - integrity sha512-CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg== +"@mapbox/node-pre-gyp@^1.0.0", "@mapbox/node-pre-gyp@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== dependencies: - detect-libc "^1.0.3" + detect-libc "^2.0.0" https-proxy-agent "^5.0.0" make-dir "^3.1.0" - node-fetch "^2.6.5" + node-fetch "^2.6.7" nopt "^5.0.0" npmlog "^5.0.1" rimraf "^3.0.2" @@ -2018,14 +1771,14 @@ safe-identifier "^0.4.1" "@messageformat/date-skeleton@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@messageformat/date-skeleton/-/date-skeleton-1.0.0.tgz#a3bc22f0943b7f2871980cf2d7aa870195f19b06" - integrity sha512-vvj5Sd3VyXUHGbYpiFsPsSQ8pkdUM9vrR/NUbyP6ga3UqJH4p9eCwzfwaCAZatZMYMTyiKG/8QbUyGKHeTZ5kw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz#980b8babe21a11433b6e1e8f6dc8c4cae4f5f56b" + integrity sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg== "@messageformat/number-skeleton@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@messageformat/number-skeleton/-/number-skeleton-1.0.0.tgz#1864b8b65abbee57a02bc8ea67061aa132947af7" - integrity sha512-Pe1HX/VG0q7tclM/ri85I4FKYd7Uc3gluSZbRaK1+jcXdT9Biw2hLAKyMsiz2tM6zLiK1xX+K0NMDO4RIstQig== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@messageformat/number-skeleton/-/number-skeleton-1.1.0.tgz#eb636738da8abbd35ccbeb84f7d84d63302aeb61" + integrity sha512-F0Io+GOSvFFxvp9Ze3L5kAoZ2NnOAT0Mr/jpGNd3fqo8A0t4NxNIAcCdggtl2B/gN2ErkIKSBVPrF7xcW1IGvA== "@messageformat/parser@^5.0.0": version "5.0.0" @@ -2041,82 +1794,82 @@ dependencies: make-plural "^7.0.0" -"@next/env@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-12.2.5.tgz#d908c57b35262b94db3e431e869b72ac3e1ad3e3" - integrity sha512-vLPLV3cpPGjUPT3PjgRj7e3nio9t6USkuew3JE/jMeon/9Mvp1WyR18v3iwnCuX7eUAm1HmAbJHHLAbcu/EJcw== +"@next/env@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-12.3.4.tgz#c787837d36fcad75d72ff8df6b57482027d64a47" + integrity sha512-H/69Lc5Q02dq3o+dxxy5O/oNxFsZpdL6WREtOOtOM1B/weonIwDXkekr1KV5DPVPr12IHFPrMrcJQ6bgPMfn7A== -"@next/eslint-plugin-next@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.5.tgz#4f3acccd2ed4f9300fbf9fd480cc8a0b261889a8" - integrity sha512-VBjVbmqEzGiOTBq4+wpeVXt/KgknnGB6ahvC/AxiIGnN93/RCSyXhFRI4uSfftM2Ba3w7ZO7076bfKasZsA0fw== +"@next/eslint-plugin-next@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" + integrity sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og== dependencies: glob "7.1.7" -"@next/swc-android-arm-eabi@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.5.tgz#903a5479ab4c2705d9c08d080907475f7bacf94d" - integrity sha512-cPWClKxGhgn2dLWnspW+7psl3MoLQUcNqJqOHk2BhNcou9ARDtC0IjQkKe5qcn9qg7I7U83Gp1yh2aesZfZJMA== +"@next/swc-android-arm-eabi@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.3.4.tgz#fd1c2dafe92066c6120761c6a39d19e666dc5dd0" + integrity sha512-cM42Cw6V4Bz/2+j/xIzO8nK/Q3Ly+VSlZJTa1vHzsocJRYz8KT6MrreXaci2++SIZCF1rVRCDgAg5PpqRibdIA== -"@next/swc-android-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.2.5.tgz#2f9a98ec4166c7860510963b31bda1f57a77c792" - integrity sha512-vMj0efliXmC5b7p+wfcQCX0AfU8IypjkzT64GiKJD9PgiA3IILNiGJr1fw2lyUDHkjeWx/5HMlMEpLnTsQslwg== +"@next/swc-android-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-12.3.4.tgz#11a146dae7b8bca007239b21c616e83f77b19ed4" + integrity sha512-5jf0dTBjL+rabWjGj3eghpLUxCukRhBcEJgwLedewEA/LJk2HyqCvGIwj5rH+iwmq1llCWbOky2dO3pVljrapg== -"@next/swc-darwin-arm64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.5.tgz#31b1c3c659d54be546120c488a1e1bad21c24a1d" - integrity sha512-VOPWbO5EFr6snla/WcxUKtvzGVShfs302TEMOtzYyWni6f9zuOetijJvVh9CCTzInnXAZMtHyNhefijA4HMYLg== +"@next/swc-darwin-arm64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.3.4.tgz#14ac8357010c95e67327f47082af9c9d75d5be79" + integrity sha512-DqsSTd3FRjQUR6ao0E1e2OlOcrF5br+uegcEGPVonKYJpcr0MJrtYmPxd4v5T6UCJZ+XzydF7eQo5wdGvSZAyA== -"@next/swc-darwin-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.5.tgz#2e44dd82b2b7fef88238d1bc4d3bead5884cedfd" - integrity sha512-5o8bTCgAmtYOgauO/Xd27vW52G2/m3i5PX7MUYePquxXAnX73AAtqA3WgPXBRitEB60plSKZgOTkcpqrsh546A== +"@next/swc-darwin-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.4.tgz#e7dc63cd2ac26d15fb84d4d2997207fb9ba7da0f" + integrity sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ== -"@next/swc-freebsd-x64@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.5.tgz#e24e75d8c2581bfebc75e4f08f6ddbd116ce9dbd" - integrity sha512-yYUbyup1JnznMtEBRkK4LT56N0lfK5qNTzr6/DEyDw5TbFVwnuy2hhLBzwCBkScFVjpFdfiC6SQAX3FrAZzuuw== +"@next/swc-freebsd-x64@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.3.4.tgz#fe7ceec58746fdf03f1fcb37ec1331c28e76af93" + integrity sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ== -"@next/swc-linux-arm-gnueabihf@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.5.tgz#46d8c514d834d2b5f67086013f0bd5e3081e10b9" - integrity sha512-2ZE2/G921Acks7UopJZVMgKLdm4vN4U0yuzvAMJ6KBavPzqESA2yHJlm85TV/K9gIjKhSk5BVtauIUntFRP8cg== +"@next/swc-linux-arm-gnueabihf@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.3.4.tgz#d7016934d02bfc8bd69818ffb0ae364b77b17af7" + integrity sha512-3zqD3pO+z5CZyxtKDTnOJ2XgFFRUBciOox6EWkoZvJfc9zcidNAQxuwonUeNts6Xbm8Wtm5YGIRC0x+12YH7kw== -"@next/swc-linux-arm64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.5.tgz#91f725ac217d3a1f4f9f53b553615ba582fd3d9f" - integrity sha512-/I6+PWVlz2wkTdWqhlSYYJ1pWWgUVva6SgX353oqTh8njNQp1SdFQuWDqk8LnM6ulheVfSsgkDzxrDaAQZnzjQ== +"@next/swc-linux-arm64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.3.4.tgz#43a7bc409b03487bff5beb99479cacdc7bd29af5" + integrity sha512-kiX0vgJGMZVv+oo1QuObaYulXNvdH/IINmvdZnVzMO/jic/B8EEIGlZ8Bgvw8LCjH3zNVPO3mGrdMvnEEPEhKA== -"@next/swc-linux-arm64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.5.tgz#e627e8c867920995810250303cd9b8e963598383" - integrity sha512-LPQRelfX6asXyVr59p5sTpx5l+0yh2Vjp/R8Wi4X9pnqcayqT4CUJLiHqCvZuLin3IsFdisJL0rKHMoaZLRfmg== +"@next/swc-linux-arm64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.3.4.tgz#4d1db6de6dc982b974cd1c52937111e3e4a34bd3" + integrity sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ== -"@next/swc-linux-x64-gnu@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.5.tgz#83a5e224fbc4d119ef2e0f29d0d79c40cc43887e" - integrity sha512-0szyAo8jMCClkjNK0hknjhmAngUppoRekW6OAezbEYwHXN/VNtsXbfzgYOqjKWxEx3OoAzrT3jLwAF0HdX2MEw== +"@next/swc-linux-x64-gnu@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.3.4.tgz#c3b414d77bab08b35f7dd8943d5586f0adb15e38" + integrity sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag== -"@next/swc-linux-x64-musl@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.5.tgz#be700d48471baac1ec2e9539396625584a317e95" - integrity sha512-zg/Y6oBar1yVnW6Il1I/08/2ukWtOG6s3acdJdEyIdsCzyQi4RLxbbhkD/EGQyhqBvd3QrC6ZXQEXighQUAZ0g== +"@next/swc-linux-x64-musl@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.3.4.tgz#187a883ec09eb2442a5ebf126826e19037313c61" + integrity sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg== -"@next/swc-win32-arm64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.5.tgz#a93e958133ad3310373fda33a79aa10af2a0aa97" - integrity sha512-3/90DRNSqeeSRMMEhj4gHHQlLhhKg5SCCoYfE3kBjGpE63EfnblYUqsszGGZ9ekpKL/R4/SGB40iCQr8tR5Jiw== +"@next/swc-win32-arm64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.3.4.tgz#89befa84e453ed2ef9a888f375eba565a0fde80b" + integrity sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ== -"@next/swc-win32-ia32-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.5.tgz#4f5f7ba0a98ff89a883625d4af0125baed8b2e19" - integrity sha512-hGLc0ZRAwnaPL4ulwpp4D2RxmkHQLuI8CFOEEHdzZpS63/hMVzv81g8jzYA0UXbb9pus/iTc3VRbVbAM03SRrw== +"@next/swc-win32-ia32-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.3.4.tgz#cb50c08f0e40ead63642a7f269f0c8254261f17c" + integrity sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ== -"@next/swc-win32-x64-msvc@12.2.5": - version "12.2.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.5.tgz#20fed129b04a0d3f632c6d0de135345bb623b1e4" - integrity sha512-7h5/ahY7NeaO2xygqVrSG/Y8Vs4cdjxIjowTZ5W6CKoTKn7tmnuxlUc2h74x06FKmbhAd9agOjr/AOKyxYYm9Q== +"@next/swc-win32-x64-msvc@12.3.4": + version "12.3.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.3.4.tgz#d28ea15a72cdcf96201c60a43e9630cd7fda168f" + integrity sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -2136,7 +1889,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -2144,34 +1897,37 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@^5.0.0", "@npmcli/arborist@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.0.2.tgz#6713c1be8f34668bf6032d7ff5789726156dbc99" - integrity sha512-QNfOdTCzglgiycfU1HRMWz02R6vP4DEwActG1YG9kyt8qO7EfQdvvVA7U/JTIgD5LrNDm2rQXkx5sGD5MsbiZw== +"@npmcli/arborist@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.3.tgz#40810080272e097b4a7a4f56108f4a31638a9874" + integrity sha512-/7hbqEM6YuRjwTcQXkK1+xKslEblY5kFQe0tZ7jKyMlIR6x4iOmhLErIkBBGtTKvYxRKdpcxnFXjCobg3UqmsA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/map-workspaces" "^2.0.0" - "@npmcli/metavuln-calculator" "^3.0.0" - "@npmcli/move-file" "^1.1.0" + "@npmcli/map-workspaces" "^2.0.3" + "@npmcli/metavuln-calculator" "^3.0.1" + "@npmcli/move-file" "^2.0.0" "@npmcli/name-from-folder" "^1.0.1" - "@npmcli/node-gyp" "^1.0.3" - "@npmcli/package-json" "^1.0.1" - "@npmcli/run-script" "^3.0.0" - bin-links "^3.0.0" - cacache "^15.0.3" + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/package-json" "^2.0.0" + "@npmcli/query" "^1.2.0" + "@npmcli/run-script" "^4.1.3" + bin-links "^3.0.3" + cacache "^16.1.3" common-ancestor-path "^1.0.1" + hosted-git-info "^5.2.1" json-parse-even-better-errors "^2.3.1" json-stringify-nice "^1.1.4" + minimatch "^5.1.0" mkdirp "^1.0.4" mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" - npm-install-checks "^4.0.0" + nopt "^6.0.0" + npm-install-checks "^5.0.0" npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" + npm-pick-manifest "^7.0.2" npm-registry-fetch "^13.0.0" - npmlog "^6.0.1" - pacote "^13.0.2" + npmlog "^6.0.2" + pacote "^13.6.1" parse-conflict-json "^2.0.1" proc-log "^2.0.0" promise-all-reject-late "^1.0.0" @@ -2179,9 +1935,9 @@ read-package-json-fast "^2.0.2" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" - semver "^7.3.5" - ssri "^8.0.1" - treeverse "^1.0.4" + semver "^7.3.7" + ssri "^9.0.0" + treeverse "^2.0.0" walk-up-path "^1.0.0" "@npmcli/ci-detect@^2.0.0": @@ -2189,24 +1945,24 @@ resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89" integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA== -"@npmcli/config@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.0.1.tgz#4aa4c184f766cef6f227d0439485e4b940968c04" - integrity sha512-pd9lYWFuDARcfXyXJKm/aHy7p9bYDKfUh/7Kg1L+3YYgCmqtqe4exFSnEIDuFO361A8xcKnj2Edev/Cj1cWbgg== +"@npmcli/config@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.2.2.tgz#2e3334dda84f48d059309c53d152e66b05ca24b7" + integrity sha512-5GNcLd+0c4bYBnFop53+26CO5GQP0R9YcxlernohpHDWdIgzUg9I0+GEMk3sNHnLntATVU39d283A4OO+W402w== dependencies: - "@npmcli/map-workspaces" "^2.0.1" - ini "^2.0.0" + "@npmcli/map-workspaces" "^2.0.2" + ini "^3.0.0" mkdirp-infer-owner "^2.0.0" - nopt "^5.0.0" + nopt "^6.0.0" proc-log "^2.0.0" read-package-json-fast "^2.0.3" semver "^7.3.5" walk-up-path "^1.0.0" -"@npmcli/disparity-colors@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-1.0.1.tgz#b23c864c9658f9f0318d5aa6d17986619989535c" - integrity sha512-kQ1aCTTU45mPXN+pdAaRxlxr3OunkyztjbbxDY/aIcPS5CnCUrx+1+NvA6pTcYR7wmLZe37+Mi5v3nfbwPxq3A== +"@npmcli/disparity-colors@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba" + integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A== dependencies: ansi-styles "^4.3.0" @@ -2218,13 +1974,21 @@ "@gar/promisify" "^1.0.1" semver "^7.3.5" -"@npmcli/git@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.0.tgz#466a18980da6b646a8112a7676688ae5347deba3" - integrity sha512-xfSBJ+KBMZWWqRHFbEgIaXG/LtELHrQZMJ72Gkb3yWdHysu/7+VGOs8ME0c3td7QNQX57Ggo3kYL6ylcd70/kA== +"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== dependencies: - "@npmcli/promise-spawn" "^1.3.2" - lru-cache "^7.3.1" + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/git@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931" + integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w== + dependencies: + "@npmcli/promise-spawn" "^3.0.0" + lru-cache "^7.4.4" mkdirp "^1.0.4" npm-pick-manifest "^7.0.0" proc-log "^2.0.0" @@ -2241,27 +2005,27 @@ npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -"@npmcli/map-workspaces@^2.0.0", "@npmcli/map-workspaces@^2.0.1", "@npmcli/map-workspaces@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.2.tgz#dfc87ced615afeb98a081da2aa9bba072bf6712d" - integrity sha512-ED54EslGsHFWBPN5x8JAOszuWywuoXYSi9E3HQRsgVkWnqsdTBJDSM4IFMRwmmBUbCHAxmP3wGLu1WMm4fhrOw== +"@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== dependencies: "@npmcli/name-from-folder" "^1.0.1" - glob "^7.2.0" + glob "^8.0.1" minimatch "^5.0.1" read-package-json-fast "^2.0.3" -"@npmcli/metavuln-calculator@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.0.0.tgz#25b47f7dc3c027ec561d8d46ca4fbd732439531d" - integrity sha512-tIzAdW3DAvlyuQyYvy7WuDKaJs55LoXFAIyglZTrHsc9DGZWP1YVL7+8WFKqx+lHyHUEkfk02Dc8ie4JWtNO6w== +"@npmcli/metavuln-calculator@^3.0.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622" + integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA== dependencies: - cacache "^15.3.0" + cacache "^16.0.0" json-parse-even-better-errors "^2.3.1" - pacote "^13.0.1" + pacote "^13.0.3" semver "^7.3.5" -"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": +"@npmcli/move-file@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== @@ -2269,236 +2033,1259 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + "@npmcli/name-from-folder@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== -"@npmcli/node-gyp@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" - integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== +"@npmcli/node-gyp@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35" + integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A== -"@npmcli/package-json@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" - integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== +"@npmcli/package-json@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a" + integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA== dependencies: json-parse-even-better-errors "^2.3.1" -"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" - integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== +"@npmcli/promise-spawn@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573" + integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g== dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^3.0.0", "@npmcli/run-script@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-3.0.1.tgz#9d10b46586300074cc9e53ef320130a69567e1ce" - integrity sha512-o2fkld5hYwu9sKYzoXTpqEocMnDLaigobaPzLaGB63k/ExmLBTaB+KpfKlpcIePPnuP8RFR+0GDI4KopJCM6Xg== +"@npmcli/query@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4" + integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw== dependencies: - "@npmcli/node-gyp" "^1.0.3" - "@npmcli/promise-spawn" "^1.3.2" + npm-package-arg "^9.1.0" + postcss-selector-parser "^6.0.10" + semver "^7.3.7" + +"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0", "@npmcli/run-script@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946" + integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg== + dependencies: + "@npmcli/node-gyp" "^2.0.0" + "@npmcli/promise-spawn" "^3.0.0" node-gyp "^9.0.0" read-package-json-fast "^2.0.3" + which "^2.0.2" -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== +"@octokit/auth-token@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.3.tgz#ce7e48a3166731f26068d7a7a7996b5da58cbe0c" + integrity sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^9.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== +"@octokit/core@^4.1.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.0.tgz#8c253ba9605aca605bc46187c34fcccae6a96648" + integrity sha512-AgvDRUg3COpR82P7PBdGZF/NNqGmtMq2NiPqeSsDIeCfYFOZ9gddqWNQHnFdEUf+YwOj4aZYmJnlPp7OXmDIDg== dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== +"@octokit/endpoint@^7.0.0": + version "7.0.5" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.5.tgz#2bb2a911c12c50f10014183f5d596ce30ac67dd1" + integrity sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^9.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== +"@octokit/graphql@^5.0.0": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.5.tgz#a4cb3ea73f83b861893a6370ee82abb36e81afd2" + integrity sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ== dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^16.0.0": + version "16.0.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-16.0.0.tgz#d92838a6cd9fb4639ca875ddb3437f1045cc625e" + integrity sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== +"@octokit/plugin-paginate-rest@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.0.0.tgz#f34b5a7d9416019126042cd7d7b811e006c0d561" + integrity sha512-Sq5VU1PfT6/JyuXPyt04KZNVsFOSBaYOAq2QRZUwzVlI10KFvcbUo8lR258AAQL1Et60b0WuVik+zOWKLuDZxw== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^9.0.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== +"@octokit/plugin-rest-endpoint-methods@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.0.1.tgz#f7ebe18144fd89460f98f35a587b056646e84502" + integrity sha512-pnCaLwZBudK5xCdrR823xHGNgqOzRnJ/mpC/76YPpNP7DybdsJtP7mdOwh+wYZxK5jqeQuhu59ogMI4NRlBUvA== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^9.0.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^9.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== +"@octokit/request@^6.0.0": + version "6.2.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.3.tgz#76d5d6d44da5c8d406620a4c285d280ae310bdb4" + integrity sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA== dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.0.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== +"@octokit/rest@^19.0.0": + version "19.0.7" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.7.tgz#d2e21b4995ab96ae5bfae50b4969da7e04e0bb70" + integrity sha512-HRtSfjrWmWVNp2uAkEpQnuGMJsu/+dBr47dRc5QVgsCbnIc1+GFEaoKBWkYG+zjrsHpSqcAElMio+n10c0b5JA== dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/core" "^4.1.0" + "@octokit/plugin-paginate-rest" "^6.0.0" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + "@octokit/plugin-rest-endpoint-methods" "^7.0.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.0.0.tgz#6050db04ddf4188ec92d60e4da1a2ce0633ff635" + integrity sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^16.0.0" + +"@pnpm/network.ca-file@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" + integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== + dependencies: + graceful-fs "4.2.10" + +"@pnpm/npm-conf@^1.0.4": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz#3475541fb71d7b6ce68acaaa3392eae9fedf3276" + integrity sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A== + dependencies: + "@pnpm/network.ca-file" "^1.0.1" + config-chain "^1.1.11" "@popperjs/core@^2.11.5": version "2.11.6" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== -"@react-spring/animated@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.5.2.tgz#42785b4f369d9715e9ee32c04b78483e7bb85489" - integrity sha512-oRlX+MmYLbK8IuUZR7SQUnRjXxJ4PMIZeBkBd1SUWVgVJAHMTfJzPltzm+I6p59qX+qLlklYHfnWaonQKDqLuQ== +"@react-aria/breadcrumbs@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/breadcrumbs/-/breadcrumbs-3.4.1.tgz#f0fc1353bf402cac2d2312d7de60f545366e1413" + integrity sha512-3dotDXcXX5IbES9tS9gK5m/2inlZH1ZESi61aBUoD/kQbUcf4CJ3TniVqzBKjNqQN8yIBH/LjwkAoGmuvtPVRQ== dependencies: - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/link" "^3.3.6" + "@react-aria/utils" "^3.14.2" + "@react-types/breadcrumbs" "^3.4.6" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/core@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.5.2.tgz#c8450783ce87a82d3f9ab21e2650e42922398ff7" - integrity sha512-UMRtFH6EfebMp/NMDGCUY5+hZFXsg9iT9hzt/iPzJSz2WMXKBjLoFZHJXcmiVOrIhzHmg1O0pFECn1Wp6pZ5Gw== +"@react-aria/button@^3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@react-aria/button/-/button-3.6.4.tgz#51927c9d968d0c1f741ee2081ca7f2e244abbc12" + integrity sha512-OEs5fNGiuZzyC5y0cNl96+6pRf/3ZhI1i2m6LlRYhJLsWXPhHt21UHEnlSchE/XGtgKojJEeTsXottoBFTBi5w== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/rafz" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/toggle" "^3.4.4" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/konva@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.5.2.tgz#cbc7c75c55c7946481f86c7392a6656bb5b1bf4a" - integrity sha512-FN8LpbGQtm2pllU9mOyYjYwvLtA9EiIPWk2NVuhhX+5lJZrdCWuEY7EyFpK8PtgZXBdVj8bj7eIu1LlTnARW/A== +"@react-aria/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-aria/calendar/-/calendar-3.0.5.tgz#78b4138688d325a3c3f8dc0be3e45291b3e8670b" + integrity sha512-RIOwGYIwMizN/MAF5RkTb2ic9OJ0rJyR2VqqgtV3c7ADHNejzyLYMQmaalEFDUHS+AbvaXM1LCXdFBhSB8nf5w== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@internationalized/date" "^3.0.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/utils" "^3.14.2" + "@react-stately/calendar" "^3.0.5" + "@react-types/button" "^3.7.0" + "@react-types/calendar" "^3.0.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/native@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.5.2.tgz#218fa228a746cb2f535ea59b317d2e99cdfed02d" - integrity sha512-G9BCAKVADLweLR43uyMnTrOnYDb4BboYvqKY+0X1fLs45PNrfbBXnSLot4g+5x3HjblypJgNq7CjHlqZKI980g== +"@react-aria/checkbox@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/checkbox/-/checkbox-3.7.1.tgz#217ea3173ad37ae85cb39bcb9932eb5c1cde2e0b" + integrity sha512-3KRg/KrTRwQdw5Yg7gpbIKWWVt57PbGSEXAS/diQvRf9pTXbOuChTES8uVlcwF8q+3mKXc4ppzE3gsNQ5jOMqg== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-aria/label" "^3.4.4" + "@react-aria/toggle" "^3.4.2" + "@react-aria/utils" "^3.14.2" + "@react-stately/checkbox" "^3.3.2" + "@react-stately/toggle" "^3.4.4" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/rafz@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.5.2.tgz#1264d5df09717cf46d55055da2c55ff84f59073f" - integrity sha512-xHSRXKKBI/wDUkZGrspkOm4VlgN6lZi8Tw9Jzibp9QKf3neoof+U2mDNgklvnLaasymtUwAq9o4ZfFvQIVNgPQ== - -"@react-spring/shared@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.5.2.tgz#e0a252e06daa3927964460fef05d8092e7d78ffc" - integrity sha512-/OSf2sjwY4BUnjZL6xMC+H3WxOOhMUCk+yZwgdj40XuyUpk6E6tYyiPeD9Yq5GLsZHodkvE1syVMRVReL4ndAg== +"@react-aria/combobox@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/combobox/-/combobox-3.4.4.tgz#0a968bfefedc9106e4b098ea84707f6da93dfc83" + integrity sha512-aviSDt4JkYZC1Ww83gvrNB4cHetXu73n5NuEfMNBC3B6fiL0MP5Av5+lMgf8FzpQks39QkZNxBtQ/h4I3D7SBA== dependencies: - "@react-spring/rafz" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/listbox" "^3.7.2" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/combobox" "^3.3.1" + "@react-stately/layout" "^3.10.0" + "@react-types/button" "^3.7.0" + "@react-types/combobox" "^3.5.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/three@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.5.2.tgz#965ff4e729929ebbb9a1f8e84f3f4acb6acec4f9" - integrity sha512-3H7Lv8BJZ3dajh0yJA3m9rEbqz5ZNrTCAkhVOeLqgvBlcWU5qVs4luYA1Z7H4vZnLqVtzv+kHAyg3XIpuTOXhQ== +"@react-aria/datepicker@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-aria/datepicker/-/datepicker-3.2.1.tgz#56a222c4b1c9c65b9b9371d3066611134f537ab7" + integrity sha512-NnW9VgX/YjxkgjcIaxmOhzpfiQmTQpCXjpPJ1+3nPhKzPKpcjtPxIYTDMkm/R+6i5FRukEGtjhg3QY9amLK6hQ== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@internationalized/date" "^3.0.2" + "@internationalized/number" "^3.1.2" + "@internationalized/string" "^3.0.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/spinbutton" "^3.2.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/datepicker" "^3.2.1" + "@react-types/button" "^3.7.0" + "@react-types/calendar" "^3.0.5" + "@react-types/datepicker" "^3.1.4" + "@react-types/dialog" "^3.4.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/types@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.5.2.tgz#cce1b03afbafb23edfb9cd8c517cc7462abffb65" - integrity sha512-n/wBRSHPqTmEd4BFWY6TeR1o/UY+3ujoqMxLjqy90CcY/ozJzDRuREL3c+pxMeTF2+B7dX33dTPCtFMX51nbxg== - -"@react-spring/web@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.5.2.tgz#762ee6b3c8fea40281e1298f5cf1c0515ad6a794" - integrity sha512-cusTjbOGTgtbsnpBDjb6Ia+B0lQLE0Fk5rGDog6Sww7hWnLIQ521PMiOBnAWtkntB9eXDUfj7L91nwJviEC0lw== +"@react-aria/dialog@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/dialog/-/dialog-3.4.2.tgz#b35f13e47d5d7d5363c7089d5d847069815bb5ea" + integrity sha512-Z6YZYXtwwmC5ZHjJldF3zuTjHnli7fXe/sM1ts3bw6jvU2L0kzhV/DRbPXYg8h695Oj9t+OIi4qxjEyKVH7SEA== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@react-aria/focus" "^3.10.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/overlays" "^3.4.4" + "@react-types/dialog" "^3.4.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" -"@react-spring/zdog@~9.5.2": - version "9.5.2" - resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.5.2.tgz#a3e451378c23caa4381b5821d3d52c3017740c55" - integrity sha512-zUX8RzX8gM51g8NJ5Qaf15KNKQgN3qN/8m5FvqmiqZ5ZGqjoHkbCoMD3o2MICTUN1l+d4eUu9TYrmiO2bgJo/g== +"@react-aria/dnd@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@react-aria/dnd/-/dnd-3.0.1.tgz#6e601873bde4173578ce63ba6bcfb78abf3bba59" + integrity sha512-z/T59Jc+6mj3OMcLjfA6MYd0zD6K3DYw+kB2CZ0EPte7BRN8wtU4+q/bx1iX+If97X6bTcHjMGX6nrQJ5vX/fw== dependencies: - "@react-spring/animated" "~9.5.2" - "@react-spring/core" "~9.5.2" - "@react-spring/shared" "~9.5.2" - "@react-spring/types" "~9.5.2" + "@internationalized/string" "^3.0.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/overlays" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/dnd" "^3.0.1" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/focus@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@react-aria/focus/-/focus-3.10.1.tgz#624d02d2565151030a4156aeb17685d87f18ad58" + integrity sha512-HjgFUC1CznuYC7CxtBIFML6bOBxW3M3cSNtvmXU9QWlrPSwwOLkXCnfY6+UkjCc5huP4v7co4PoRDX8Vbe/cVQ== + dependencies: + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + clsx "^1.1.1" + +"@react-aria/grid@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-aria/grid/-/grid-3.5.2.tgz#17454be19d4f53bde27fc4b676fa02dae4f3a85d" + integrity sha512-+cDtTvTT0YF4jgy1pv0omcweub6z1N+GdkpHC6L6/jtH2gFRVns3IC6pf5ihLDIpLloylthaMMR8C3lus7035g== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/grid" "^3.4.2" + "@react-stately/selection" "^3.11.2" + "@react-stately/virtualizer" "^3.4.1" + "@react-types/checkbox" "^3.4.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/gridlist@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/gridlist/-/gridlist-3.1.2.tgz#ffb7bc5e4e15e3bacdf036e4762f1eea0e6292f7" + integrity sha512-3HI/e8HzyBRWdEbDH+3Hvj9U5fD/1TYaqA0f4XnBdSEDd7LHPOzZyNzbZMdlMmaq2W0Dmm1YRCMELacFVUehUA== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/grid" "^3.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/list" "^3.6.1" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/i18n@^3.6.3": + version "3.6.3" + resolved "https://registry.yarnpkg.com/@react-aria/i18n/-/i18n-3.6.3.tgz#2b4d72d0baf07b514d2c35eb6ac356d0247ea84a" + integrity sha512-cDWl8FXJIXsw/raWcThywBueCJ5ncoogq81wYVS6hfZVmSyncONIB3bwUL12cojmjX1VEP31sN0ujT/83QP95Q== + dependencies: + "@internationalized/date" "^3.0.2" + "@internationalized/message" "^3.0.10" + "@internationalized/number" "^3.1.2" + "@internationalized/string" "^3.0.1" + "@react-aria/ssr" "^3.4.1" + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/interactions@^3.13.1": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@react-aria/interactions/-/interactions-3.13.1.tgz#75e102c50a5c1d002cad4ee8d59677aee226186b" + integrity sha512-WCvfZOi1hhussVTHxVq76OR48ry13Zvp9U5hmuQufyxIUlf4hOvDk4/cbK4o4JiCs8X7C7SRzcwFM34M4NHzmg== + dependencies: + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/label@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/label/-/label-3.4.4.tgz#b891d3cebeeffc7a1413a492d8a694083dc3253e" + integrity sha512-1fuYf2UctNhBy31uYN7OhdcrwzlB5GS0+C49gDkwWzccB7yr+CoOJ5UQUoVB7WBmzrc+CuzwWxSDd4OupSYIZQ== + dependencies: + "@react-aria/utils" "^3.14.2" + "@react-types/label" "^3.7.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/link@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-aria/link/-/link-3.3.6.tgz#e9e3203c41c4dd5c4113d0a06b7620b476f78345" + integrity sha512-UjbdBJ8EB+jCC3mPZD6cYykHqZKTy6/VvI5RGJoKtF8cg9639tRy6g102pd4ncFTdD4DfU5PPWtthC24nQRCyQ== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-types/link" "^3.3.6" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/listbox@^3.7.2": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@react-aria/listbox/-/listbox-3.7.2.tgz#0cbbd4dc39712ac927542259bf4663e087353448" + integrity sha512-e3O/u2T3TccinmfS/UvHywxLbASmh28U4020WTpZnIrsaoriVCkGZvG1AYNNPDIESz2WO0oRF6vDrmGunglJ2A== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/list" "^3.6.1" + "@react-types/listbox" "^3.3.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/live-announcer@^3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@react-aria/live-announcer/-/live-announcer-3.1.2.tgz#a492c7ec1e664c8f41a572368cdbc53e22241a0c" + integrity sha512-BqtVLPWU10sZssoOJF1lJiRvZe5zqZ5BM39PsFyO7dWhVkR/9O9bZviqvKXnC1oXCnypfa+85gUshbK9unFcWA== + dependencies: + "@swc/helpers" "^0.4.14" + +"@react-aria/menu@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-aria/menu/-/menu-3.7.1.tgz#74c60dcd33bba47faa79deb89523ad21d9855221" + integrity sha512-5KIUTs3xYSmERB8qzofFghznMVLcG3RWDnJcQjpRtrrYjm6Oc39TJeodDH874fiEr6o3i5WwMrEYVp7NSxz/TQ== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/overlays" "^3.12.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/tree" "^3.4.1" + "@react-types/button" "^3.7.0" + "@react-types/menu" "^3.7.3" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/meter@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/meter/-/meter-3.3.4.tgz#7361a663ff21bc14df48d9eedec288e21146fabf" + integrity sha512-RdVd5vlb6//HI8G1hhH4G+E0Y387GYFKjmewSUKK0Lzp9PFLili26s+xLvgigUX9ald7HiPmfPdAlXzotvo54Q== + dependencies: + "@react-aria/progress" "^3.3.4" + "@react-types/meter" "^3.2.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/numberfield@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/numberfield/-/numberfield-3.3.4.tgz#79fc2db5449a09efc20b83530aa2d69ae7140438" + integrity sha512-yoYeYaEW5v84Ff0x+oSN0h3uzqrSOBEgjtv8ZMaFVsZfm9yMjsVLu+QWGBYCEOPcASMkNZpNR3o91nBPK3XTDw== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/spinbutton" "^3.2.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/numberfield" "^3.3.1" + "@react-types/button" "^3.7.0" + "@react-types/numberfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" + +"@react-aria/overlays@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@react-aria/overlays/-/overlays-3.12.1.tgz#429fe33b0da7b920334f241c688d73dc9a750a28" + integrity sha512-OSgSopk2uQI5unvC3+fUyngbRFFe4GnF0iopCmrsI7qSQEusJUd4M2SuPVXUBBwWFt5TsiH7TnxmIPWeh5LSoA== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/ssr" "^3.4.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/overlays" "^3.4.4" + "@react-types/button" "^3.7.0" + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/progress@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/progress/-/progress-3.3.4.tgz#21138195532ae8807fb1dfc2f8162c6032d513dc" + integrity sha512-MVlWdH7L2e0u1SvkVk+C6/onS8opex9rIKUKHM08s++y80Xe3BIAh8jd5tgdlutDtcZ1kKgfb4bet9dvjymo4A== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-types/progress" "^3.2.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/radio@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/radio/-/radio-3.4.2.tgz#bcd2deb8326f934046545fee9b2568f9d3b0655b" + integrity sha512-PpEsQjwkYOkSfKfnqXpBzf0FM/V2GSC0g/NG2ZAI5atDIACeic+kHCcs8fm2QzXtUDaRltNurvYdDJ+XzZ8g1g== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-stately/radio" "^3.6.2" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/searchfield@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-aria/searchfield/-/searchfield-3.4.4.tgz#f77f057fcd2582534bec60b5d65db5cf84490f27" + integrity sha512-Z3nZI2FXrWLPNUeJ3QV2ruTKBR9eHhPoHi+Iiuq4n+e02ib5s0Jlbam29FFiOxmf6vUMhScNcEYP9p2BNANmQA== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/textfield" "^3.8.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/searchfield" "^3.3.4" + "@react-types/button" "^3.7.0" + "@react-types/searchfield" "^3.3.6" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/select@^3.8.4": + version "3.8.4" + resolved "https://registry.yarnpkg.com/@react-aria/select/-/select-3.8.4.tgz#cbb02f0cfca816e1f6b472212f0fb6aad9899fdb" + integrity sha512-d2JOe11lUoGLvsE32bZRMq32SzXuyLNczyTOLrWM0e9fsOr49A8p6L6bFm3symU/KpwjjnO+pf5IkvgEq+GoJg== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/listbox" "^3.7.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + "@react-stately/select" "^3.3.4" + "@react-types/button" "^3.7.0" + "@react-types/select" "^3.6.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/selection@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@react-aria/selection/-/selection-3.12.1.tgz#a21ea85952c55b5a7ce8c846478226fe3d03f1f8" + integrity sha512-UX1vSY+iUdHe0itFZIOizX1BCI8SAeFnEh5VIQ1bYRt93+kAxeC914fsxFPPgrodJyqWRCX1dblPyRUIWAzQiw== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/separator@^3.2.6": + version "3.2.6" + resolved "https://registry.yarnpkg.com/@react-aria/separator/-/separator-3.2.6.tgz#516fb27aa02862fc8e555042d9a8edde30214f40" + integrity sha512-QhYqoLfu+4T3ASCs5Q8ZWfBbRKBUmqquVdREWvHyvVyOBk9kRN9nxsoIxlkss1RJlJJx59AYF9T9CwgL80/bvw== + dependencies: + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/slider@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-aria/slider/-/slider-3.2.4.tgz#b272c13b5651f7e76a5b9d4ef300226ae315a64d" + integrity sha512-+BDPFaCgm0gtGewO33ZDNZz1b3Fc1p5Y/HSuwCcru+jHetODJXy23IIVpWsDri1vG3fHECRnWcDZAjLZgkVnAw== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-stately/radio" "^3.6.2" + "@react-stately/slider" "^3.2.4" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + "@react-types/slider" "^3.3.1" + "@swc/helpers" "^0.4.14" + +"@react-aria/spinbutton@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-aria/spinbutton/-/spinbutton-3.2.1.tgz#8e9fff341deef3e14109c69f2b52fffa8a878a5b" + integrity sha512-y9QZ0VzWL7qzbWSPOCsAdvZhVlQrnHLRGc8bkRa2jmWrnCqS0iua/TRuLGgazIf2Rb7GmdbKBJJuPSScytVDUw== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/utils" "^3.14.2" + "@react-types/button" "^3.7.0" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/ssr@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-aria/ssr/-/ssr-3.4.1.tgz#79e8bb621487e8f52890c917d3c734f448ba95e7" + integrity sha512-NmhoilMDyIfQiOSdQgxpVH2tC2u85Y0mVijtBNbI9kcDYLEiW/r6vKYVKtkyU+C4qobXhGMPfZ70PTc0lysSVA== + dependencies: + "@swc/helpers" "^0.4.14" + +"@react-aria/switch@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-aria/switch/-/switch-3.3.1.tgz#c0f92f417a78972a3a9d10592eb474698b827d5a" + integrity sha512-o9MvXiSK9c7rUZjA6oQ0PNlVCnHEctue6v6W8Vn4HNbQMfhJiWqiSSff4RFcgRgs8WsPsEqbT+vHi2kXykQzdA== + dependencies: + "@react-aria/toggle" "^3.4.2" + "@react-stately/toggle" "^3.4.4" + "@react-types/switch" "^3.2.5" + "@swc/helpers" "^0.4.14" + +"@react-aria/table@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-aria/table/-/table-3.7.0.tgz#234c905b6b2e2212bac6cc8ef93fe750bf606425" + integrity sha512-1YqOeb8r8pxIYyfa5qNdCoM3fNQELM4d+9DanoNJhgnehoq9QDI9A1pGC2pvK2PN2y9IuTJM+U/ITjSpPBoGjQ== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/grid" "^3.5.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/live-announcer" "^3.1.2" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/table" "^3.7.0" + "@react-stately/virtualizer" "^3.4.1" + "@react-types/checkbox" "^3.4.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" + +"@react-aria/tabs@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/tabs/-/tabs-3.3.4.tgz#0cbe65d4c99c9c9e5d8ebd5e1442da68964b9e14" + integrity sha512-SqlgfPvpRHlWelFk/lF9Ziu/8881NVErhKcpyyi+A9jASv5tvILWiwK8na82oI22UXXzyp0Y1EojLB25HnCB+w== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/selection" "^3.12.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/list" "^3.6.1" + "@react-stately/tabs" "^3.2.4" + "@react-types/shared" "^3.16.0" + "@react-types/tabs" "^3.1.5" + "@swc/helpers" "^0.4.14" + +"@react-aria/textfield@^3.8.1": + version "3.8.1" + resolved "https://registry.yarnpkg.com/@react-aria/textfield/-/textfield-3.8.1.tgz#b6df2decc587824a3757ec33bd9b432fed1bacc5" + integrity sha512-jgun/B9ecuRCfBSJLX2xDuNwfuj1lL0oibMWoSv6Y++W+CSS8a7LjR1f9Kll5TDVkQiRRUm9qHwI0og9xTJrNw== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/label" "^3.4.4" + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.2" + "@swc/helpers" "^0.4.14" + +"@react-aria/toggle@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-aria/toggle/-/toggle-3.4.2.tgz#1c57539a26722219979c80dcebfbd0701c518789" + integrity sha512-xokCGf0fn96mOMqQku5QW672iQoMsN9RMpFbKvvgg2seceh8ifblyAXElWf/6YmluOZSgUSZljDkFrbMMYlzVA== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/toggle" "^3.4.4" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@react-types/switch" "^3.2.5" + "@swc/helpers" "^0.4.14" + +"@react-aria/tooltip@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-aria/tooltip/-/tooltip-3.3.4.tgz#e508a6f4092ee632ca69fd202268c8f4317f04d2" + integrity sha512-KPDkDu7fquuUOOnNh9S7KfhPMwB1w9K+yLIFrYaj4iYSOLk/HH5TDkyiUQ7j5+B963D1fWlQjYFEGQ9o2KwO/Q== + dependencies: + "@react-aria/focus" "^3.10.1" + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-stately/tooltip" "^3.2.4" + "@react-types/shared" "^3.16.0" + "@react-types/tooltip" "^3.2.5" + "@swc/helpers" "^0.4.14" + +"@react-aria/utils@^3.14.2": + version "3.14.2" + resolved "https://registry.yarnpkg.com/@react-aria/utils/-/utils-3.14.2.tgz#3a8d0d14abab4bb1095e101ee44dc5e3e43e6217" + integrity sha512-3nr5gsAf/J/W+6Tu4NF3Q7m+1mXjfpXESh7TPa6UR6v3tVDTsJVMrITg2BkHN1jM8xELcl2ZxyUffOWqOXzWuA== + dependencies: + "@react-aria/ssr" "^3.4.1" + "@react-stately/utils" "^3.5.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + clsx "^1.1.1" + +"@react-aria/visually-hidden@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-aria/visually-hidden/-/visually-hidden-3.6.1.tgz#b0a94b1531b9a8942d0d9a5cc6ed88109b8f5487" + integrity sha512-7rUbiaIiR1nok9HAHPn/WcyQlvuldUqxnvh81V4dlI3NtXOgMw7/QaNc5Xo5FFWlsSVpbyK3UVJgzIui0Ns0Xg== + dependencies: + "@react-aria/interactions" "^3.13.1" + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + clsx "^1.1.1" + +"@react-spring/animated@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.6.1.tgz#ccc626d847cbe346f5f8815d0928183c647eb425" + integrity sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ== + dependencies: + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/core@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.6.1.tgz#ebe07c20682b360b06af116ea24e2b609e778c10" + integrity sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/rafz" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/konva@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/konva/-/konva-9.6.1.tgz#66e63da0e9681e42395e995402a7e73ba6892461" + integrity sha512-MevnU+tnG1LPsmMRpfJfevfLtI0ObIvrwYc+Xg+kmYJe00vwMRSdulQOztKANKalFXBewwk72XrQCeRLXFaUIg== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/native@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/native/-/native-9.6.1.tgz#b66e237f2faaa4f88569d5a03b6fb0136bcdf2b9" + integrity sha512-ZIfSytxFGLw4gYOb8gsmwG0+JZYxuM/Y1XPCXCkhuoMn+RmOYrr0kQ4gLczbmf+TRxth7OT1c8vBYz0+SCGcIQ== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/rafz@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.6.1.tgz#d71aafb92b78b24e4ff84639f52745afc285c38d" + integrity sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ== + +"@react-spring/shared@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.6.1.tgz#4e2e4296910656c02bd9fd54c559702bc836ac4e" + integrity sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw== + dependencies: + "@react-spring/rafz" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/three@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.6.1.tgz#095fcd1dc6509127c33c14486d88289b89baeb9d" + integrity sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/types@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.6.1.tgz#913d3a68c5cbc1124fdb18eff919432f7b6abdde" + integrity sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q== + +"@react-spring/web@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.6.1.tgz#3e4c03b724d2b545dc2fa2649eb6109318ab9178" + integrity sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-spring/zdog@~9.6.1": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@react-spring/zdog/-/zdog-9.6.1.tgz#5292c374e23e3846db3eb9d7557ed5a7bb40dada" + integrity sha512-0jSGm2OFW/+/+4dkRp46KzEkcLVfzV2k6DO1om0dLDtQ4q6FpX4dmDTlRc7Apzin6VtfQONMFIGITtbqoS28MQ== + dependencies: + "@react-spring/animated" "~9.6.1" + "@react-spring/core" "~9.6.1" + "@react-spring/shared" "~9.6.1" + "@react-spring/types" "~9.6.1" + +"@react-stately/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-stately/calendar/-/calendar-3.0.5.tgz#78decc870ddf33ce1f7b7c8da57d2639e9a46c30" + integrity sha512-vu5hKsiA8edqNtsqBTGi8QR38qZ+uHDjuq3vp2m0f6TZSnp0kg8fkPNHEOuBTQ8ZXFFbGUZKhL/1B+ZWwLHwMQ== + dependencies: + "@internationalized/date" "^3.0.2" + "@react-stately/utils" "^3.5.2" + "@react-types/calendar" "^3.0.5" + "@react-types/datepicker" "^3.1.4" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/checkbox@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@react-stately/checkbox/-/checkbox-3.3.2.tgz#fd81866a7624c79cab2ec2c32234f164205a85e8" + integrity sha512-eU3zvWgQrcqS8UK8ZVkb3fMP816PeuN9N0/dOJKuOXXhkoLPuxtuja1oEqKU3sFMa5+bx3czZhhNIRpr60NAdw== + dependencies: + "@react-stately/toggle" "^3.4.4" + "@react-stately/utils" "^3.5.2" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/collections@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@react-stately/collections/-/collections-3.5.1.tgz#502a56658e4859aa7d31bd4b9189879b5b5a0255" + integrity sha512-egzVrZC5eFc5RJBpqUkzxd2aJOHZ2T1o7horEi8tAWZkg4YI+AmKrqela4ijVrrB9l1GO9z06qPT1UoPkFrC1w== + dependencies: + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/combobox@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/combobox/-/combobox-3.3.1.tgz#5be13467dd64ddd09199b5e00e9f7d4a1aec5688" + integrity sha512-DgYn0MyfbDySf54o7ofXRd29TWznqtRRRbMG8TWgi/RaB0piDckT/TYWWSYOH3iMgnOEhReJhUUdMiQG4QLpIg== + dependencies: + "@react-stately/list" "^3.6.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/select" "^3.3.4" + "@react-stately/utils" "^3.5.2" + "@react-types/combobox" "^3.5.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/datepicker@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@react-stately/datepicker/-/datepicker-3.2.1.tgz#4c545981f73771bff76885e50014b4274fa4b554" + integrity sha512-nd6thX2Z+rOLDHduB3EgMKA0n5U83lrwn3IUfjRGrcE21zFaFmhTPsHyvol5jHy3eSyjWSN9kGpKFzOxES+uoA== + dependencies: + "@internationalized/date" "^3.0.2" + "@internationalized/string" "^3.0.1" + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" + "@react-types/datepicker" "^3.1.4" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/dnd@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@react-stately/dnd/-/dnd-3.0.1.tgz#b8e8190c147dcaeac1a90eabce5bd20891f2c620" + integrity sha512-pwtyY/TR6Rdk33lFdF6dztQTV9gPujFmTqJG31NSSs6ei1FfUW9ZMq+311Zb8OhZ0TFiwZqAutVmmaaUrtl5+A== + dependencies: + "@react-stately/selection" "^3.11.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/grid@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@react-stately/grid/-/grid-3.4.2.tgz#d7d1a4ed4b5bb431b5e5429f8f557cf7d88a7ae8" + integrity sha512-NeIUykQeA7Hen+dV4771ARW5SRrHYNn5VTOsQwn3KBUd2Z2gZ01OwUl3gETl5u0e3/tzMUdJ1LUoSPhDMwcmKw== + dependencies: + "@react-stately/selection" "^3.11.2" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/layout@^3.10.0": + version "3.10.0" + resolved "https://registry.yarnpkg.com/@react-stately/layout/-/layout-3.10.0.tgz#86bcb9117a05df56f02d7b55d1d24c5593285c18" + integrity sha512-ThFgivQSD5ksLMX7tbu0HqIxbxac/E8a/0vA21wB9QF9IQnUKO796QAQqwfA5rwPvTT41LL2Xn00GkrwQ9g/zg== + dependencies: + "@react-stately/table" "^3.7.0" + "@react-stately/virtualizer" "^3.4.1" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/list@^3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@react-stately/list/-/list-3.6.1.tgz#75d07a4e04111b804fb13c975df5a0c1265f3aa1" + integrity sha512-+/fVkK3UO+N2NoUGpe57k9gcnfIsyEgWP8SD6CXZUkJho7BTp6mwrH0Wm8tcOclT3uBk+fZaQrk8mR3uWsPZGw== + dependencies: + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/menu@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/menu/-/menu-3.4.4.tgz#222ffd283691f1c4137a85ff0484b98a4385b099" + integrity sha512-WKak1NSV9yDY0tDB4mzsbj0FboTtR06gekio0VmKb1+FmnrC07mef8eGKUn974F0WhTNUy5A1iI5eM0W2YNynA== + dependencies: + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" + "@react-types/menu" "^3.7.3" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/numberfield@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-stately/numberfield/-/numberfield-3.3.1.tgz#ef411062ffdb3646eae2a320e07443b2bf78a76f" + integrity sha512-GOu6wE2L2eal4AOL+rJQ4wQnFRgRkwiS9xdAFPu9B4qfP0DVfEIUC3XV4jws9nBhANxEf5LyilUv400nG881wg== + dependencies: + "@internationalized/number" "^3.1.2" + "@react-stately/utils" "^3.5.2" + "@react-types/numberfield" "^3.3.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/overlays@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/overlays/-/overlays-3.4.4.tgz#a228a230f46f0d593ffb7bc8f836439bbc08e9ed" + integrity sha512-IIlx+VXtXS4snDXrocUOls8QZ5XBQ4SNonaz1ox8/5W7Nsvq4VtdKsIaXsUP4agOudswaimlpj3pTDO/KuF5tQ== + dependencies: + "@react-stately/utils" "^3.5.2" + "@react-types/overlays" "^3.6.5" + "@swc/helpers" "^0.4.14" + +"@react-stately/radio@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-stately/radio/-/radio-3.6.2.tgz#6a13e3f97d130fccc1b404673cbe1414ac018621" + integrity sha512-qjbebR0YSkdEocLsPSzNnCsUYllWY938/5Z8mETxk4+74PJLxC3z0qjqVRq+aDO8hOgIfqSgrRRp3cJz9vIsBg== + dependencies: + "@react-stately/utils" "^3.5.2" + "@react-types/radio" "^3.3.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/searchfield@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-stately/searchfield/-/searchfield-3.3.4.tgz#a2d885fd68a3e8936d60b9d56e15f785022b448e" + integrity sha512-H/1evv7lsJl6PlD7/Sv7VgbCe0Yd2E2eKFihD6/tXPWO6L/ngYp5siqqhdwazjWTK2Hgw4TL0eviHGOGXKItzQ== + dependencies: + "@react-stately/utils" "^3.5.2" + "@react-types/searchfield" "^3.3.6" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/select@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@react-stately/select/-/select-3.3.4.tgz#61c3e739175e86babf0e585f8c68e30f3bf6363c" + integrity sha512-gD4JnF9/OIrQNdA4VqPIbifqpBC84BXHR5N7KmG7Ef06K9WGGVNB4FS538wno/znKg7lR6A45CPlaV53qfvWHg== + dependencies: + "@react-stately/collections" "^3.5.1" + "@react-stately/list" "^3.6.1" + "@react-stately/menu" "^3.4.4" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" + "@react-types/select" "^3.6.5" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/selection@^3.11.2": + version "3.11.2" + resolved "https://registry.yarnpkg.com/@react-stately/selection/-/selection-3.11.2.tgz#15c35dfb386e5218b8106070137a8b3ecded5a8b" + integrity sha512-g21Y36xhYkXO3yzz0BYSBqnD38olvEwsJUqBXGZfx//bshMC2FNmI5sRYMAi36stxWbwzBvB01OytxfLLxCXCA== + dependencies: + "@react-stately/collections" "^3.5.1" + "@react-stately/utils" "^3.5.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/slider@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/slider/-/slider-3.2.4.tgz#4e9e22cd8c2c449497e8476f2bc8d1399a5b0f80" + integrity sha512-J97lTLqQKsrVSovYr4dTz7IJO/+j9OStT78N6bumDklnIKT7bsH3g857zITUFjs8yCcq0Jt3sfOvEU0ts6vyww== + dependencies: + "@react-aria/i18n" "^3.6.3" + "@react-aria/utils" "^3.14.2" + "@react-stately/utils" "^3.5.2" + "@react-types/shared" "^3.16.0" + "@react-types/slider" "^3.3.1" + "@swc/helpers" "^0.4.14" + +"@react-stately/table@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-stately/table/-/table-3.7.0.tgz#fbb50081805c391d43de8ca4153bcd89edb82368" + integrity sha512-oPvMEabRUD4LSJ/NZsal3TT2YjoRmpEK8t2pqG20+Vapxy5tC6QKEZQvrDxJwF4Z8fqQnX/GvnqmfypvqWDUSA== + dependencies: + "@react-stately/collections" "^3.5.1" + "@react-stately/grid" "^3.4.2" + "@react-stately/selection" "^3.11.2" + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + "@react-types/table" "^3.4.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/tabs@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/tabs/-/tabs-3.2.4.tgz#e596623de62731efc769ee0d58e54f9f1400551c" + integrity sha512-qSnkoxzbC21KXZYGtg6TEDaex34WSNmPN4sJzXc9Xe39L6+wXNCA2tqZxWCfpIcWQklFm+BmnnNNCO8/PDDrMA== + dependencies: + "@react-stately/list" "^3.6.1" + "@react-stately/utils" "^3.5.2" + "@react-types/tabs" "^3.1.5" + "@swc/helpers" "^0.4.14" + +"@react-stately/toggle@^3.4.4": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@react-stately/toggle/-/toggle-3.4.4.tgz#b7825bf900725dcee0444fe6132b06948be36b44" + integrity sha512-OwVJpd2M7P7fekTWpl3TUdD3Brq+Z/xElOCJYP5QuVytXCa5seKsk40YPld8JQnA5dRKojpbUxMDOJpb6hOOfw== + dependencies: + "@react-stately/utils" "^3.5.2" + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/tooltip@^3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@react-stately/tooltip/-/tooltip-3.2.4.tgz#387bb53539c39b0f3a0807537e9d404e03dc5d3f" + integrity sha512-t7ksDRs9jKcOS25BVLM5cNCyzSCnzrin8OZ3AEmgeNxfiS58HhHbNxYk725hyGrbdpugQ03cRcJG70EZ6VgwDQ== + dependencies: + "@react-stately/overlays" "^3.4.4" + "@react-stately/utils" "^3.5.2" + "@react-types/tooltip" "^3.2.5" + "@swc/helpers" "^0.4.14" + +"@react-stately/tree@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/tree/-/tree-3.4.1.tgz#bb267784000b22c7c1aa6415103ad1b9f3566677" + integrity sha512-kIXeJOHgGGaUFnAD2wyRIiOwOw/+PN1OXo46n8+dPTFIYwR4+IWFNG8OMjVlIiSLPYWMCzzxZBE9a5grmbmNWQ== + dependencies: + "@react-stately/collections" "^3.5.1" + "@react-stately/selection" "^3.11.2" + "@react-stately/utils" "^3.5.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-stately/utils@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@react-stately/utils/-/utils-3.5.2.tgz#9b5f3bb9ad500bf9c5b636a42988dba60a221669" + integrity sha512-639gSKqamPHIEPaApb9ahVJS0HgAqNdVF3tQRoh+Ky6759Mbk6i3HqG4zk4IGQ1tVlYSYZvCckwehF7b2zndMg== + dependencies: + "@swc/helpers" "^0.4.14" + +"@react-stately/virtualizer@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-stately/virtualizer/-/virtualizer-3.4.1.tgz#00c7b36b989244cf985b9ad5fb13dc1ecbb81a0f" + integrity sha512-2S7GARkZl41X7fN0Xa94TkN8ELAUbA89zn1xH59d02NOvAKLAFXHkCe69AivvVvbhXo8/nONzO8NXqqgBS/XQw== + dependencies: + "@react-aria/utils" "^3.14.2" + "@react-types/shared" "^3.16.0" + "@swc/helpers" "^0.4.14" + +"@react-types/breadcrumbs@^3.4.6": + version "3.4.6" + resolved "https://registry.yarnpkg.com/@react-types/breadcrumbs/-/breadcrumbs-3.4.6.tgz#cbc1132b5bfa87dde5467b037c563ed77a211980" + integrity sha512-hvGUI4mKHvOl3QyKFHk1qT/UkG+C4iJsRTlk6pbQgwk4lb7rplEm1CEa7fxzRdI8Gh4Id+C9+WyKCxZf9GNWUw== + dependencies: + "@react-types/link" "^3.3.6" + "@react-types/shared" "^3.16.0" + +"@react-types/button@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@react-types/button/-/button-3.7.0.tgz#774c043d8090a505e60fdf26f026d5f0cc968f0f" + integrity sha512-81BQO3QxSgF9PTXsVozNdNCKxBOB1lpbCWocV99dN1ws9s8uaYw8pmJJZ0LJKLiOsIECQ/3QrhQjmWTDW/qTug== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/calendar@^3.0.5": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@react-types/calendar/-/calendar-3.0.5.tgz#a91fca7d5a2bbbd554748471f9920600cb364d18" + integrity sha512-Kx00132hFEVvqay/Ub7q2oZEA1AzksirAuCsjakamn4LAXvitlo3PZxqBdEsyRc3nP5NR48KJj8yo276mXY8kQ== + dependencies: + "@internationalized/date" "^3.0.2" + "@react-types/shared" "^3.16.0" + +"@react-types/checkbox@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@react-types/checkbox/-/checkbox-3.4.1.tgz#75a78b3f21f4cc72d2382761ba4c326aefd699db" + integrity sha512-kDMpy9SntjGQ7x00m5zmW8GENPouOtyiDgiEDKsPXUr2iYqHsNtricqVyG9S9+6hqpzuu8BzTcvZamc/xYjzlg== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/combobox@^3.5.5": + version "3.5.5" + resolved "https://registry.yarnpkg.com/@react-types/combobox/-/combobox-3.5.5.tgz#13410106fc2df8e3d02d53a33e9d2a6f3f2f6b61" + integrity sha512-gpDo/NTQFd5IfCZoNnG16N4/JfvwXpZBNc15Kn7bF+NcpSDhDpI26BZN4mvK4lljKCheD4VrEl9/3PtImCg7cA== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/datepicker@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@react-types/datepicker/-/datepicker-3.1.4.tgz#46fd291d8acd40fdd304c4c0bf1a47e71eaa1801" + integrity sha512-NBCXBCe3YZqeA/JrVKy0IAvJ2XSnXaVpR9iAlUwKu7V8P81CtnXHsVCrd/0HSH8QZWsGdIV5E23z0TctvW8trA== + dependencies: + "@internationalized/date" "^3.0.2" + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/dialog@^3.4.5": + version "3.4.5" + resolved "https://registry.yarnpkg.com/@react-types/dialog/-/dialog-3.4.5.tgz#a12c4e6d69dd7f098eb8b1534107ae6d970f734b" + integrity sha512-FkxZAYNRWkZVH5rjlw6qyQ/SpoGcYtNI/JQvn1H/xtZy/OJh2b2ERxGWv5x0RItGSeyATdSwFO1Qnf1Kl2K02A== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/grid@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@react-types/grid/-/grid-3.1.5.tgz#b0efef48202b40aa05913f1fe5b05d80e7d26c15" + integrity sha512-KiEywsOJ+wdzLmJerAKEMADdvdItaLfhdo3bFfn1lgNUaKiNDJctDYWlhOYsRePf7MIrzoZuXEFnJj45jfpiOQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/label@^3.7.1": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@react-types/label/-/label-3.7.1.tgz#ad4d3d7a6b5ea6aca70f89661d7c358cf2ab5f94" + integrity sha512-wFpdtjSDBWO4xQQGF57V3PqvVVyE9TPj9ELWLs1yzL09fpXosycuEl5d79RywVlC9aF9dQYUfES09q/DZhRhMQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/link@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-types/link/-/link-3.3.6.tgz#74ff1602c7aba38d3200f0d597a04e1f94989e25" + integrity sha512-HMFd94CW8WrHbwXeTtCP/WOZmGugrEkN8f16R0i7T9xlTumk5GxubDMjA41ND/ehH72Xq7lP9VX8qezHWCGSoQ== + dependencies: + "@react-aria/interactions" "^3.13.1" + "@react-types/shared" "^3.16.0" + +"@react-types/listbox@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/listbox/-/listbox-3.3.5.tgz#c2222e3f50fbf377ed20b2d16e761b9c09d7adc8" + integrity sha512-7SMRJWUi7ayzQ7SUPCXXwgI/Ua3vg0PPQOZFsmJ4/E8VG/xK82IV7BYSZiNjUQuGpVZJL0VPndt/RwIrQO4S3w== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/menu@^3.7.3": + version "3.7.3" + resolved "https://registry.yarnpkg.com/@react-types/menu/-/menu-3.7.3.tgz#beb8d0fb7f1e50254e2e7661dfbfa4bb38826dad" + integrity sha512-3Pax24I/FyNKBjKyNR4ePD8eZs35Th57HzJAVjamQg2fHEDRomg9GQ7fdmfGj72Dv3x3JRCoPYqhJ3L5R3kbzg== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" + +"@react-types/meter@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/meter/-/meter-3.2.5.tgz#99a381808e98765e7b645721bcc2bff4b5d5f19e" + integrity sha512-pBrHoWRSwrfo3JtCCxoniSEd27Pokt20Fj4ZkJxjjDtLdcHOM4Z1JIKvOlcXMCV35iknrVu4veDHpmXolI+vAw== + dependencies: + "@react-types/progress" "^3.2.5" + "@react-types/shared" "^3.16.0" + +"@react-types/numberfield@^3.3.5": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@react-types/numberfield/-/numberfield-3.3.5.tgz#423aced559f7431e88b7988bf7e2cb3870fcdb1c" + integrity sha512-qBhUSkahiIeTW5IvKvyfLtVHgzyqwKfuDIOlJQiBwgrOPR96X8KDDsOib4r5SFv0lhibv0gQ5L5ucXbmwLyQ8A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/overlays@^3.6.5": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-types/overlays/-/overlays-3.6.5.tgz#466b325d9be51f67beb98b7bec3fd9295c72efac" + integrity sha512-IeWcF+YTucCYYHagNh8fZLH6R4YUONO1VHY57WJyIHwMy0qgEaKSQCwq72VO1fQJ0ySZgOgm31FniOyKkg6+eQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/progress@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/progress/-/progress-3.2.5.tgz#71780e48402cb25813c8edd07ee6075cdd972488" + integrity sha512-pFSqaj6rlSdPqGHVErJ8G3RkIyYigoJ3EVozvhR9bcKkLlhnzJiFgOZl+k5u/ZKJOA+YHivIHJwg+Kl1sG0J6A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/radio@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-types/radio/-/radio-3.3.1.tgz#688570ba9901d21850a16c2aaafed5dd83e09966" + integrity sha512-q/x0kMvBsu6mH4bIkp/Jjrm9ff5y/p3UR0V4CmQFI7604gQd2Dt1dZMU/2HV9x70r1JfWRrDeRrVjUHVfFL5Vg== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/searchfield@^3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@react-types/searchfield/-/searchfield-3.3.6.tgz#8f33ef6938e2db9f80b7e4008d81fc4de65f07d3" + integrity sha512-DIv5eznnJVv0CM4f8SEEiptEZSzXUJWUyxRPkTzYNWt91pPPaCNbCQbmzZtyR9/R9KRJ9hlZN2bMkrtfVLvl1g== + dependencies: + "@react-types/shared" "^3.16.0" + "@react-types/textfield" "^3.6.2" + +"@react-types/select@^3.6.5": + version "3.6.5" + resolved "https://registry.yarnpkg.com/@react-types/select/-/select-3.6.5.tgz#798abf0073b39eef041952198a9e84eff0ce9edc" + integrity sha512-FDeSA7TYMNnhsbXREnD4dWRSu21T5M4BLy+J/5VgwDpr3IN9pzbvngK8a3jc8Yg2S3igKYLMLYfmcsx+yk7ohA== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/shared@^3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@react-types/shared/-/shared-3.16.0.tgz#cab7bf0376969d1773480ecb2d6da5aa91391db5" + integrity sha512-IQgU4oAEvMwylEvaTsr2XB1G/mAoMe1JFYLD6G78v++oAR9l8o9MQxZ0YSeANDkqTamb2gKezGoT1RxvSKjVxw== + +"@react-types/slider@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@react-types/slider/-/slider-3.3.1.tgz#0e6a8d0767b1ab94f8c32541d50aaa6d93683df4" + integrity sha512-CbEa1v1IcUJD7VrFhWyOOlT7VyQ5DHEf/pNMkvICOBLMAwnWxS+tnTiRFgA/EbvV/vp24ydeszHYtMvsyRONRw== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/switch@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/switch/-/switch-3.2.5.tgz#e1db722e8beeed846cfcf9de94cad81b4e0ead78" + integrity sha512-DlUL0Bz79SUTRje/i8m6qn4Ipn+q8QnyIkyJhkoHeH1R0YNude8xZrBPWbj3zfdddAGDFSF1NzP69q0xmNAcTQ== + dependencies: + "@react-types/checkbox" "^3.4.1" + "@react-types/shared" "^3.16.0" + +"@react-types/table@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@react-types/table/-/table-3.4.0.tgz#64715f6c355b880467f67b1e5288e6c28d6092e8" + integrity sha512-G2L5WtaBMeG3v/5Kj/ZXH4ywz95vyPUBj7qy9UZJOYNaAR7uJWZkbe+Ka4xD4H/AaOk4mqW8dSo8cj7gtD66GQ== + dependencies: + "@react-types/grid" "^3.1.5" + "@react-types/shared" "^3.16.0" + +"@react-types/tabs@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@react-types/tabs/-/tabs-3.1.5.tgz#8676dd16e0dc4be2d4d1cc33bb89cc679ef93abe" + integrity sha512-YgWY8IajCDBZmBzR3eii0aW6+SjcAT/dmqDNmfIuVVnDN7sHQ3PFa0nbmByvb0SfjOkJYumt8TJwFUCugohS8A== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/textfield@^3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@react-types/textfield/-/textfield-3.6.2.tgz#6cc87c2bac286a06ba04b9465d23fa9078bf280e" + integrity sha512-QhFcpXvmSEW1/PwkWkvHJkcjsVezLW0OAvA0kMt/FMOChQNxnO36Pha+WjfcVbiFHXMhCBl6akbY2xG9NsHJrQ== + dependencies: + "@react-types/shared" "^3.16.0" + +"@react-types/tooltip@^3.2.5": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@react-types/tooltip/-/tooltip-3.2.5.tgz#f2940d3edbcf846dc15f9222f0162664641f183c" + integrity sha512-D4lN32JwQuA3JbCgcI26mgCkLHIj1WE8MTzf1McaasPkx7gVaqW+wfPyFwt99/Oo52TLvA/1oin78qePP67PSw== + dependencies: + "@react-types/overlays" "^3.6.5" + "@react-types/shared" "^3.16.0" "@rushstack/eslint-patch@^1.1.3": - version "1.1.4" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz#0c8b74c50f29ee44f423f7416829c0bf8bb5eb27" - integrity sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz#8be36a1f66f3265389e90b5f9c9962146758f728" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + +"@selderee/plugin-htmlparser2@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.10.0.tgz#8a304d18df907e086f3cfc71ea0ced52d6524430" + integrity sha512-gW69MEamZ4wk1OsOq1nG1jcyhXIQcnrsX5JwixVw/9xaiav8TCyjESAruu1Rz9yyInhgBXxkNwMeygKnN2uxNA== + dependencies: + domhandler "^5.0.3" + selderee "^0.10.0" "@selderee/plugin-htmlparser2@^0.6.0": version "0.6.0" @@ -2508,14 +3295,14 @@ domhandler "^4.2.0" selderee "^0.6.0" -"@semantic-release/changelog@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.1.tgz#8dd0334fd8c7d50cda747d2591e4f18f816b3c9c" - integrity sha512-FT+tAGdWHr0RCM3EpWegWnvXJ05LQtBkQUaQRIExONoXjVjLuOILNm4DEKNaV+GAQyJjbLRVs57ti//GypH6PA== +"@semantic-release/changelog@6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@semantic-release/changelog/-/changelog-6.0.2.tgz#fdcdbd368788c8fcc69c4af29bf2064f4afb45f4" + integrity sha512-jHqfTkoPbDEOAgAP18mGP53IxeMwxTISN+GwTRy9uLu58UjARoZU8ScCgWGeO2WPkEsm57H8AkyY02W2ntIlIw== dependencies: "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" - fs-extra "^9.0.0" + fs-extra "^11.0.0" lodash "^4.17.4" "@semantic-release/commit-analyzer@9.0.2", "@semantic-release/commit-analyzer@^9.0.2": @@ -2531,11 +3318,6 @@ lodash "^4.17.4" micromatch "^4.0.2" -"@semantic-release/error@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-2.2.0.tgz#ee9d5a09c9969eade1ec864776aeda5c5cddbbf0" - integrity sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg== - "@semantic-release/error@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@semantic-release/error/-/error-3.0.0.tgz#30a3b97bbb5844d695eb22f9d3aa40f6a92770c2" @@ -2568,17 +3350,17 @@ p-reduce "^2.0.0" "@semantic-release/github@^8.0.0": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-8.0.2.tgz#80114a41f6ec8ab6c0d38a436b48ff3f2223ab16" - integrity sha512-wIbfhOeuxlYzMTjtSAa2xgr54n7ZuPAS2gadyTWBpUt2PNAPgla7A6XxCXJnaKPgfVF0iFfSk3B+KlVKk6ByVg== + version "8.0.7" + resolved "https://registry.yarnpkg.com/@semantic-release/github/-/github-8.0.7.tgz#643aee7a5cdd2acd3ae643bb90ad4ac796901de6" + integrity sha512-VtgicRIKGvmTHwm//iqTh/5NGQwsncOMR5vQK9pMT92Aem7dv37JFKKRuulUsAnUOIlO4G8wH3gPiBAA0iW0ww== dependencies: - "@octokit/rest" "^18.0.0" - "@semantic-release/error" "^2.2.0" + "@octokit/rest" "^19.0.0" + "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" bottleneck "^2.18.1" debug "^4.0.0" dir-glob "^3.0.0" - fs-extra "^10.0.0" + fs-extra "^11.0.0" globby "^11.0.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" @@ -2590,21 +3372,21 @@ url-join "^4.0.0" "@semantic-release/npm@^9.0.0": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-9.0.1.tgz#d81828eb1fb771e2767b3a8ee989915e1af27075" - integrity sha512-I5nVZklxBzfMFwemhRNbSrkiN/dsH3c7K9+KSk6jUnq0rdLFUuJt7EBsysq4Ir3moajQgFkfEryEHPqiKJj20g== + version "9.0.2" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-9.0.2.tgz#0f0903b4df6e93ef237372146bc376087fed4e1d" + integrity sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g== dependencies: "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" execa "^5.0.0" - fs-extra "^10.0.0" + fs-extra "^11.0.0" lodash "^4.17.15" nerf-dart "^1.0.0" normalize-url "^6.0.0" npm "^8.3.0" rc "^1.2.8" read-pkg "^5.0.0" - registry-auth-token "^4.0.0" + registry-auth-token "^5.0.0" semver "^7.1.2" tempy "^1.0.0" @@ -2625,153 +3407,163 @@ read-pkg-up "^7.0.0" "@sqltools/formatter@^1.2.2": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.3.tgz#1185726610acc37317ddab11c3c7f9066966bd20" - integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== "@supercharge/request-ip@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@supercharge/request-ip/-/request-ip-1.2.0.tgz#b8a8164322e09de3fa9b6f556885795c4841a7d4" integrity sha512-wlt6JW69MHqLY2M6Sm/jVyCojNRKq2CBvwH0Hbx24SFhDQQGkgEjeKxVutDxHSyrWixFaOSLXC27euzxijhyMQ== -"@svgr/babel-plugin-add-jsx-attribute@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz#b9a5d84902be75a05ede92e70b338d28ab63fa74" - integrity sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w== +"@svgr/babel-plugin-add-jsx-attribute@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz#74a5d648bd0347bda99d82409d87b8ca80b9a1ba" + integrity sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ== -"@svgr/babel-plugin-remove-jsx-attribute@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz#4877995452efc997b36777abe1fde9705ef78e8b" - integrity sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ== +"@svgr/babel-plugin-remove-jsx-attribute@*": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz#652bfd4ed0a0699843585cda96faeb09d6e1306e" + integrity sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA== -"@svgr/babel-plugin-remove-jsx-empty-expression@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz#2d67a0e92904c9be149a5b22d3a3797ce4d7b514" - integrity sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A== +"@svgr/babel-plugin-remove-jsx-empty-expression@*": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz#4b78994ab7d39032c729903fc2dd5c0fa4565cb8" + integrity sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw== -"@svgr/babel-plugin-replace-jsx-attribute-value@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz#306f5247139c53af70d1778f2719647c747998ee" - integrity sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA== +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz#fb9d22ea26d2bc5e0a44b763d4c46d5d3f596c60" + integrity sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg== -"@svgr/babel-plugin-svg-dynamic-title@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz#6ce26d34cbc93eb81737ef528528907c292e7aa2" - integrity sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA== +"@svgr/babel-plugin-svg-dynamic-title@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz#01b2024a2b53ffaa5efceaa0bf3e1d5a4c520ce4" + integrity sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw== -"@svgr/babel-plugin-svg-em-dimensions@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz#5ade2a724b290873c30529d1d8cd23523856287a" - integrity sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw== +"@svgr/babel-plugin-svg-em-dimensions@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz#dd3fa9f5b24eb4f93bcf121c3d40ff5facecb217" + integrity sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA== -"@svgr/babel-plugin-transform-react-native-svg@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz#d654f509d692c3a09dfb475757a44bd9f6ad7ddf" - integrity sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw== +"@svgr/babel-plugin-transform-react-native-svg@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz#1d8e945a03df65b601551097d8f5e34351d3d305" + integrity sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg== -"@svgr/babel-plugin-transform-svg-component@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz#21a285dbffdce9567c437ebf0d081bf9210807e6" - integrity sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw== +"@svgr/babel-plugin-transform-svg-component@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz#48620b9e590e25ff95a80f811544218d27f8a250" + integrity sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ== -"@svgr/babel-preset@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz#8bd1ead79637d395e9362b01dd37cfd59702e152" - integrity sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g== +"@svgr/babel-preset@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz#b90de7979c8843c5c580c7e2ec71f024b49eb828" + integrity sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw== dependencies: - "@svgr/babel-plugin-add-jsx-attribute" "^6.3.1" - "@svgr/babel-plugin-remove-jsx-attribute" "^6.3.1" - "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.3.1" - "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.3.1" - "@svgr/babel-plugin-svg-dynamic-title" "^6.3.1" - "@svgr/babel-plugin-svg-em-dimensions" "^6.3.1" - "@svgr/babel-plugin-transform-react-native-svg" "^6.3.1" - "@svgr/babel-plugin-transform-svg-component" "^6.3.1" + "@svgr/babel-plugin-add-jsx-attribute" "^6.5.1" + "@svgr/babel-plugin-remove-jsx-attribute" "*" + "@svgr/babel-plugin-remove-jsx-empty-expression" "*" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.5.1" + "@svgr/babel-plugin-svg-dynamic-title" "^6.5.1" + "@svgr/babel-plugin-svg-em-dimensions" "^6.5.1" + "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" + "@svgr/babel-plugin-transform-svg-component" "^6.5.1" -"@svgr/core@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.3.1.tgz#752adf49d8d5473b15d76ca741961de093f715bd" - integrity sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA== +"@svgr/core@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.5.1.tgz#d3e8aa9dbe3fbd747f9ee4282c1c77a27410488a" + integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== dependencies: - "@svgr/plugin-jsx" "^6.3.1" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" camelcase "^6.2.0" cosmiconfig "^7.0.1" -"@svgr/hast-util-to-babel-ast@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz#59614e24d2a4a28010e02089213b3448d905769d" - integrity sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ== +"@svgr/hast-util-to-babel-ast@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz#81800bd09b5bcdb968bf6ee7c863d2288fdb80d2" + integrity sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw== dependencies: - "@babel/types" "^7.18.4" - entities "^4.3.0" + "@babel/types" "^7.20.0" + entities "^4.4.0" -"@svgr/plugin-jsx@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz#de7b2de824296b836d6b874d498377896e367f50" - integrity sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw== +"@svgr/plugin-jsx@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz#0e30d1878e771ca753c94e69581c7971542a7072" + integrity sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw== dependencies: - "@babel/core" "^7.18.5" - "@svgr/babel-preset" "^6.3.1" - "@svgr/hast-util-to-babel-ast" "^6.3.1" + "@babel/core" "^7.19.6" + "@svgr/babel-preset" "^6.5.1" + "@svgr/hast-util-to-babel-ast" "^6.5.1" svg-parser "^2.0.4" -"@svgr/plugin-svgo@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz#3c1ff2efaed10e5c5d35a6cae7bacaedc18b5d4a" - integrity sha512-yJIjTDKPYqzFVjmsbH5EdIwEsmKxjxdXSGJVLeUgwZOZPAkNQmD1v7LDbOdOKbR44FG8465Du+zWPdbYGnbMbw== +"@svgr/plugin-svgo@^6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz#0f91910e988fc0b842f88e0960c2862e022abe84" + integrity sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ== dependencies: cosmiconfig "^7.0.1" deepmerge "^4.2.2" svgo "^2.8.0" -"@svgr/webpack@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.3.1.tgz#001d03236ebb03bf47c0a4b92d5423e05095ebe6" - integrity sha512-eODxwIUShLxSMaRjzJtrj9wg89D75JLczvWg9SaB5W+OtVTkiC1vdGd8+t+pf5fTlBOy4RRXAq7x1E3DUl3D0A== +"@svgr/webpack@6.5.1": + version "6.5.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.5.1.tgz#ecf027814fc1cb2decc29dc92f39c3cf691e40e8" + integrity sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA== dependencies: - "@babel/core" "^7.18.5" - "@babel/plugin-transform-react-constant-elements" "^7.17.12" - "@babel/preset-env" "^7.18.2" - "@babel/preset-react" "^7.17.12" - "@babel/preset-typescript" "^7.17.12" - "@svgr/core" "^6.3.1" - "@svgr/plugin-jsx" "^6.3.1" - "@svgr/plugin-svgo" "^6.3.1" + "@babel/core" "^7.19.6" + "@babel/plugin-transform-react-constant-elements" "^7.18.12" + "@babel/preset-env" "^7.19.4" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.18.6" + "@svgr/core" "^6.5.1" + "@svgr/plugin-jsx" "^6.5.1" + "@svgr/plugin-svgo" "^6.5.1" -"@swc/helpers@0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.3.tgz#16593dfc248c53b699d4b5026040f88ddb497012" - integrity sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA== +"@swc/helpers@0.4.11": + version "0.4.11" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.11.tgz#db23a376761b3d31c26502122f349a21b592c8de" + integrity sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw== dependencies: tslib "^2.4.0" -"@tailwindcss/aspect-ratio@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz#c635dd7331cbcc1b111cebdc2647dd3493ebdd3e" - integrity sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ== +"@swc/helpers@^0.4.14": + version "0.4.14" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.4.14.tgz#1352ac6d95e3617ccb7c1498ff019654f1e12a74" + integrity sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw== + dependencies: + tslib "^2.4.0" -"@tailwindcss/forms@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" - integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== +"@tailwindcss/aspect-ratio@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" + integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== + +"@tailwindcss/forms@0.5.3": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7" + integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q== dependencies: mini-svg-data-uri "^1.2.3" -"@tailwindcss/typography@0.5.4": - version "0.5.4" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.4.tgz#ad8c9e6808bae297bb7826742e4789f2a9f09a48" - integrity sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg== +"@tailwindcss/typography@0.5.8": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.8.tgz#8fb31db5ab0590be6dfa062b1535ac86ad9d12bf" + integrity sha512-xGQEp8KXN8Sd8m6R4xYmwxghmswrd0cPnNI2Lc6fmrC3OojysTBJJGSIVwPV56q4t6THFUK3HJ0EaWwpglSxWw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" -"@tanem/react-nprogress@5.0.11": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.11.tgz#ac05edd3b93c88170b91ce33871e1dc71ca5af22" - integrity sha512-zLOsKXzTjXkCEgicC+wHxZiXl5/ONOQIFoZ1HBmHmNbrnMStg4/T6gmyBLRDu4lQ5cS00F1ElRwLSODd0xmNMg== +"@tanem/react-nprogress@5.0.22": + version "5.0.22" + resolved "https://registry.yarnpkg.com/@tanem/react-nprogress/-/react-nprogress-5.0.22.tgz#31aff13de27ec27401acb8cc4a5976eb034616e6" + integrity sha512-S73v6z7uD8wkCzKARDXn/AGEAVlL8IXI2/pqACRMnn3dTyfaLg2JLrZYtrfBcVaZXf5bgKSB+lK1ncKVN40pQQ== dependencies: - "@babel/runtime" "^7.18.9" + "@babel/runtime" "^7.20.6" hoist-non-react-statics "^3.3.2" "@tootallnate/once@1": @@ -2790,32 +3582,32 @@ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== "@tsconfig/node10@^1.0.7": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.8.tgz#c1e4e80d6f964fbecb3359c43bd48b40f7cadad9" - integrity sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.9.tgz#62c1f6dee2ebd9aead80dc3afa56810e58e1a04c" - integrity sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.1.tgz#95f2d167ffb9b8d2068b0b235302fafd4df711f2" - integrity sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.2.tgz#423c77877d0569db20e1fc80885ac4118314010e" - integrity sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/babel__core@^7.1.7": - version "7.1.18" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" - integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -2836,9 +3628,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -2905,41 +3697,51 @@ juice "^7.0.0" "@types/eslint@7 || 8": - version "8.4.6" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.6.tgz#7976f054c1bccfcf514bff0564c0c41df5c08207" - integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== + version "8.4.10" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb" + integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw== dependencies: "@types/estree" "*" "@types/json-schema" "*" "@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.28" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" - integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig== +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": + version "4.17.33" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz#de35d30a9d637dc1450ad18dd583d75d5733d543" + integrity sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express-session@1.17.4", "@types/express-session@^1.15.5": - version "1.17.4" - resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.4.tgz#97a30a35e853a61bdd26e727453b8ed314d6166b" - integrity sha512-7cNlSI8+oOBUHTfPXMwDxF/Lchx5aJ3ho7+p9jJZYVg9dVDJFh3qdMXmJtRsysnvS+C6x46k9DRYmrmCkE+MVg== +"@types/express-session@1.17.5", "@types/express-session@^1.15.5": + version "1.17.5" + resolved "https://registry.yarnpkg.com/@types/express-session/-/express-session-1.17.5.tgz#13f48852b4aa60ff595835faeb4b4dda0ba0866e" + integrity sha512-l0DhkvNVfyUPEEis8fcwbd46VptfA/jmMwHfob2TfDMf3HyPLiB9mKD71LXhz5TMUobODXPD27zXSwtFQLHm+w== dependencies: "@types/express" "*" -"@types/express@*", "@types/express@4.17.13": - version "4.17.13" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@*": + version "4.17.16" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.16.tgz#986caf0b4b850611254505355daa24e1b8323de8" + integrity sha512-LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.15": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" "@types/qs" "*" "@types/serve-static" "*" @@ -2966,14 +3768,14 @@ hoist-non-react-statics "^3.3.0" "@types/html-to-text@*": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/html-to-text/-/html-to-text-8.1.0.tgz#dad0bf5d199f7e3f67eae50a36c13eadb1b56d1b" - integrity sha512-54YF2fGmN4g62/w+T85uQ8n0FyBhMY5cjKZ1imsbIh4Pgbeno1mAaQktC/pv/+C2ToUYkTZis9ADgn9GRRz9nQ== + version "9.0.0" + resolved "https://registry.yarnpkg.com/@types/html-to-text/-/html-to-text-9.0.0.tgz#28a676984c281a67478773519da6b5c2bdfb22ed" + integrity sha512-FnF3p2FJZ1kJT/0C/lmBzw7HSlH3RhtACVYyrwUsJoCmFNuiLpusWT2FWWB7P9A48CaYpvD6Q2fprn7sZeffpw== "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" - integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json-stable-stringify@^1.0.32": version "1.0.34" @@ -2983,17 +3785,12 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@4.14.183": - version "4.14.183" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.183.tgz#1173e843e858cff5b997c234df2789a4a54c2374" - integrity sha512-UXavyuxzXKMqJPEpFPri6Ku5F9af6ZJXUneHhvQJxavrEjuHkFp2YnDWHcxJiG7hk8ZkWqjcyNeW1s/smZv5cw== - -"@types/lodash@^4.14.175": - version "4.14.179" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.179.tgz#490ec3288088c91295780237d2497a3aa9dfb5c5" - integrity sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w== +"@types/lodash@4.14.191", "@types/lodash@^4.14.175": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== "@types/mdast@^3.0.0": version "3.0.10" @@ -3002,15 +3799,10 @@ dependencies: "@types/unist" "*" -"@types/mdurl@^1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== +"@types/mime@*": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" + integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== "@types/minimatch@^3.0.3": version "3.0.5" @@ -3041,32 +3833,30 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@14 || 16 || 17", "@types/node@>=12": - version "17.0.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" - integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== +"@types/node@*": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + +"@types/node@14 || 16 || 17": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@17.0.36": version "17.0.36" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.36.tgz#c0d5f2fe76b47b63e0e0efc3d2049a9970d68794" integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA== -"@types/node@^14.0.0", "@types/node@^14.14.31": - version "14.18.26" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.26.tgz#239e19f8b4ea1a9eb710528061c1d733dc561996" - integrity sha512-0b+utRBSYj8L7XAp0d+DX7lI4cSmowNaaTkk6/1SKzbKkG+doLuPusB9EOvzLJ8ahJSk03bTLIL6cWaEd4dBKA== +"@types/node@^14.14.31": + version "14.18.36" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.36.tgz#c414052cb9d43fab67d679d5f3c641be911f5835" + integrity sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ== -"@types/nodemailer@*": - version "6.4.4" - resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.4.tgz#c265f7e7a51df587597b3a49a023acaf0c741f4b" - integrity sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw== - dependencies: - "@types/node" "*" - -"@types/nodemailer@6.4.5": - version "6.4.5" - resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.5.tgz#09011ac73259245475d1688e4ba101860567dc39" - integrity sha512-zuP3nBRQHI6M2PkXnGGy1Ww4VB+MyYHGgnfV2T+JR9KLkeWqPJuyVUgLpKXuFnA/b7pZaIDFh2sV4759B7jK1g== +"@types/nodemailer@*", "@types/nodemailer@6.4.7": + version "6.4.7" + resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.7.tgz#658f4bca47c1a895b1d7e054b3b54030a5e1f5e0" + integrity sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg== dependencies: "@types/node" "*" @@ -3085,12 +3875,7 @@ resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-2.3.0.tgz#75db5e75a713c5a83d5b76780c3da84a82806003" integrity sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g== -"@types/prop-types@*": - version "15.7.4" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" - integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== - -"@types/prop-types@^15.0.0": +"@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== @@ -3110,40 +3895,33 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@18.0.6": - version "18.0.6" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1" - integrity sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA== +"@types/react-dom@18.0.10": + version "18.0.10" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.10.tgz#3b66dec56aa0f16a6cc26da9e9ca96c35c0b4352" + integrity sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg== dependencies: "@types/react" "*" -"@types/react-transition-group@4.4.5": +"@types/react-transition-group@4.4.5", "@types/react-transition-group@^4.4.0": version "4.4.5" resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== dependencies: "@types/react" "*" -"@types/react-transition-group@^4.4.0": - version "4.4.4" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" - integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.17": - version "18.0.17" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.17.tgz#4583d9c322d67efe4b39a935d223edcc7050ccf4" - integrity sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ== +"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@18.0.26": + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" -"@types/retry@^0.12.0": - version "0.12.1" - resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" - integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/scheduler@*": version "0.16.2" @@ -3162,17 +3940,17 @@ resolved "https://registry.yarnpkg.com/@types/secure-random-password/-/secure-random-password-0.2.1.tgz#c01a96d5c2667c3fa896533207bceb157e3b87bc" integrity sha512-tpG5oVF+NpIS9UJ9ttXAokafyhE/MCZBg65D345qu3gOM4YoJ/mFNVzUDUNBfb1hIi598bNOzvY04BbfS7VKwA== -"@types/semver@7.3.12": - version "7.3.12" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" - integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== +"@types/semver@7.3.13", "@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.0.tgz#c7930ff61afb334e121a9da780aac0d9b8f34155" + integrity sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg== dependencies: - "@types/mime" "^1" + "@types/mime" "*" "@types/node" "*" "@types/sinonjs__fake-timers@8.1.1": @@ -3229,154 +4007,131 @@ resolved "https://registry.yarnpkg.com/@types/yup/-/yup-0.29.14.tgz#754f1dccedcc66fc2bbe290c27f5323b407ceb00" integrity sha512-Ynb/CjHhE/Xp/4bhHmQC4U1Ox+I2OpfRYF3dnNgQqn1cHa6LK3H1wJMNPT02tSVZA6FYuXE2ITORfbnb6zBCSA== -"@typescript-eslint/eslint-plugin@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.33.1.tgz#c0a480d05211660221eda963cc844732fe9b1714" - integrity sha512-S1iZIxrTvKkU3+m63YUOxYPKaP+yWDQrdhxTglVDVEVBf+aCSw85+BmJnyUaQQsk5TXFG/LpBu9fa+LrAQ91fQ== +"@typescript-eslint/eslint-plugin@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz#54f8368d080eb384a455f60c2ee044e948a8ce67" + integrity sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ== dependencies: - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/type-utils" "5.33.1" - "@typescript-eslint/utils" "5.33.1" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/type-utils" "5.48.0" + "@typescript-eslint/utils" "5.48.0" debug "^4.3.4" - functional-red-black-tree "^1.0.1" ignore "^5.2.0" + natural-compare-lite "^1.4.0" regexpp "^3.2.0" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.33.1.tgz#e4b253105b4d2a4362cfaa4e184e2d226c440ff3" - integrity sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA== +"@typescript-eslint/parser@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba" + integrity sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg== dependencies: - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/typescript-estree" "5.33.1" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/typescript-estree" "5.48.0" debug "^4.3.4" "@typescript-eslint/parser@^5.21.0": - version "5.35.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.35.1.tgz#bf2ee2ebeaa0a0567213748243fb4eec2857f04f" - integrity sha512-XL2TBTSrh3yWAsMYpKseBYTVpvudNf69rPOWXWVBI08My2JVT5jR66eTt4IgQFHA/giiKJW5dUD4x/ZviCKyGg== + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.49.0.tgz#d699734b2f20e16351e117417d34a2bc9d7c4b90" + integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg== dependencies: - "@typescript-eslint/scope-manager" "5.35.1" - "@typescript-eslint/types" "5.35.1" - "@typescript-eslint/typescript-estree" "5.35.1" + "@typescript-eslint/scope-manager" "5.49.0" + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/typescript-estree" "5.49.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.33.1.tgz#8d31553e1b874210018ca069b3d192c6d23bc493" - integrity sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA== +"@typescript-eslint/scope-manager@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz#607731cb0957fbc52fd754fd79507d1b6659cecf" + integrity sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow== dependencies: - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/visitor-keys" "5.48.0" -"@typescript-eslint/scope-manager@5.35.1": - version "5.35.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.35.1.tgz#ccb69d54b7fd0f2d0226a11a75a8f311f525ff9e" - integrity sha512-kCYRSAzIW9ByEIzmzGHE50NGAvAP3wFTaZevgWva7GpquDyFPFcmvVkFJGWJJktg/hLwmys/FZwqM9EKr2u24Q== +"@typescript-eslint/scope-manager@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz#81b5d899cdae446c26ddf18bd47a2f5484a8af3e" + integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ== dependencies: - "@typescript-eslint/types" "5.35.1" - "@typescript-eslint/visitor-keys" "5.35.1" + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/visitor-keys" "5.49.0" -"@typescript-eslint/type-utils@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.33.1.tgz#1a14e94650a0ae39f6e3b77478baff002cec4367" - integrity sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g== +"@typescript-eslint/type-utils@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz#40496dccfdc2daa14a565f8be80ad1ae3882d6d6" + integrity sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g== dependencies: - "@typescript-eslint/utils" "5.33.1" + "@typescript-eslint/typescript-estree" "5.48.0" + "@typescript-eslint/utils" "5.48.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.14.0.tgz#96317cf116cea4befabc0defef371a1013f8ab11" - integrity sha512-BR6Y9eE9360LNnW3eEUqAg6HxS9Q35kSIs4rp4vNHRdfg0s+/PgHgskvu5DFTM7G5VKAVjuyaN476LCPrdA7Mw== +"@typescript-eslint/types@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449" + integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw== -"@typescript-eslint/types@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.33.1.tgz#3faef41793d527a519e19ab2747c12d6f3741ff7" - integrity sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ== +"@typescript-eslint/types@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.49.0.tgz#ad66766cb36ca1c89fcb6ac8b87ec2e6dac435c3" + integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg== -"@typescript-eslint/types@5.35.1": - version "5.35.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.35.1.tgz#af355fe52a0cc88301e889bc4ada72f279b63d61" - integrity sha512-FDaujtsH07VHzG0gQ6NDkVVhi1+rhq0qEvzHdJAQjysN+LHDCKDKCBRlZFFE0ec0jKxiv0hN63SNfExy0KrbQQ== - -"@typescript-eslint/typescript-estree@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.1.tgz#a573bd360790afdcba80844e962d8b2031984f34" - integrity sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA== +"@typescript-eslint/typescript-estree@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz#a7f04bccb001003405bb5452d43953a382c2fac2" + integrity sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw== dependencies: - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/visitor-keys" "5.33.1" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/visitor-keys" "5.48.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.35.1": - version "5.35.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.35.1.tgz#db878a39a0dbdc9bb133f11cdad451770bfba211" - integrity sha512-JUqE1+VRTGyoXlDWWjm6MdfpBYVq+hixytrv1oyjYIBEOZhBCwtpp5ZSvBt4wIA1MKWlnaC2UXl2XmYGC3BoQA== +"@typescript-eslint/typescript-estree@5.49.0", "@typescript-eslint/typescript-estree@^5.9.1": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz#ebd6294c0ea97891fce6af536048181e23d729c8" + integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA== dependencies: - "@typescript-eslint/types" "5.35.1" - "@typescript-eslint/visitor-keys" "5.35.1" + "@typescript-eslint/types" "5.49.0" + "@typescript-eslint/visitor-keys" "5.49.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@^5.9.1": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.14.0.tgz#78b7f7385d5b6f2748aacea5c9b7f6ae62058314" - integrity sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA== - dependencies: - "@typescript-eslint/types" "5.14.0" - "@typescript-eslint/visitor-keys" "5.14.0" - debug "^4.3.2" - globby "^11.0.4" - is-glob "^4.0.3" - semver "^7.3.5" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.33.1.tgz#171725f924fe1fe82bb776522bb85bc034e88575" - integrity sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ== +"@typescript-eslint/utils@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.0.tgz#eee926af2733f7156ad8d15e51791e42ce300273" + integrity sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.33.1" - "@typescript-eslint/types" "5.33.1" - "@typescript-eslint/typescript-estree" "5.33.1" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.48.0" + "@typescript-eslint/types" "5.48.0" + "@typescript-eslint/typescript-estree" "5.48.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" + semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.14.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.14.0.tgz#1927005b3434ccd0d3ae1b2ecf60e65943c36986" - integrity sha512-yL0XxfzR94UEkjBqyymMLgCBdojzEuy/eim7N9/RIcTNxpJudAcqsU8eRyfzBbcEzGoPWfdM3AGak3cN08WOIw== +"@typescript-eslint/visitor-keys@5.48.0": + version "5.48.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz#4446d5e7f6cadde7140390c0e284c8702d944904" + integrity sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q== dependencies: - "@typescript-eslint/types" "5.14.0" - eslint-visitor-keys "^3.0.0" - -"@typescript-eslint/visitor-keys@5.33.1": - version "5.33.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.1.tgz#0155c7571c8cd08956580b880aea327d5c34a18b" - integrity sha512-nwIxOK8Z2MPWltLKMLOEZwmfBZReqUdbEoHQXeCpa+sRVARe5twpJGHCB4dk9903Yaf0nMAlGbQfaAH92F60eg== - dependencies: - "@typescript-eslint/types" "5.33.1" + "@typescript-eslint/types" "5.48.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@5.35.1": - version "5.35.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.35.1.tgz#285e9e34aed7c876f16ff646a3984010035898e6" - integrity sha512-cEB1DvBVo1bxbW/S5axbGPE6b7FIMAbo3w+AGq6zNDA7+NYJOIkKj/sInfTv4edxd4PxJSgdN4t6/pbvgA+n5g== +"@typescript-eslint/visitor-keys@5.49.0": + version "5.49.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz#2561c4da3f235f5c852759bf6c5faec7524f90fe" + integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg== dependencies: - "@typescript-eslint/types" "5.35.1" + "@typescript-eslint/types" "5.49.0" eslint-visitor-keys "^3.3.0" JSONStream@^1.0.4: @@ -3387,7 +4142,7 @@ JSONStream@^1.0.4: jsonparse "^1.2.0" through ">=2.2.7 <3" -abbrev@1, abbrev@~1.1.1: +abbrev@1, abbrev@^1.0.0, abbrev@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -3400,15 +4155,15 @@ accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -ace-builds@1.9.6: - version "1.9.6" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.9.6.tgz#2d3721f90f0664b79be9288f6319dd57576ff1e7" - integrity sha512-M/Li4hPruMSbkkg35LgdbsIBq0WuwrV4ztP2pKaww47rC/MvDc1bOrYxwJrfgxdlzyLKrja5bn+9KwwuzqB2xQ== +ace-builds@1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.14.0.tgz#85a6733b4fa17b0abc3dbfe38cd8d823cad79716" + integrity sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw== ace-builds@^1.4.14: - version "1.4.14" - resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.4.14.tgz#2c41ccbccdd09e665d3489f161a20baeb3a3c852" - integrity sha512-NBOQlm9+7RBqRqZwimpgquaLeTJFayqb9UEPtTkpC3TkkwDnlsT/TwsCC0svjt9kEZ6G9mH5AEOHSz6Q/HrzQQ== + version "1.15.0" + resolved "https://registry.yarnpkg.com/ace-builds/-/ace-builds-1.15.0.tgz#e4e5eee17a1d3d17fc92c1207bbc30f185f260cc" + integrity sha512-L1RXgqxDvzbJ7H8Y2v9lb4kHaZRn5JNTECG+oZTH2EDewMmpQMLDC4GnFKIh3+xb/gk2nVPO7gGwpTYPw91QzA== acorn-jsx@^5.3.2: version "5.3.2" @@ -3439,15 +4194,10 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.4.1: - version "8.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" - integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== - -acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== +acorn@^8.4.1, acorn@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== agent-base@6, agent-base@^6.0.2: version "6.0.2" @@ -3502,20 +4252,10 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.12.6: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" - integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.8.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -3523,14 +4263,9 @@ ajv@^8.11.0: uri-js "^4.2.2" ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" @@ -3546,16 +4281,6 @@ ansi-escapes@^5.0.0: dependencies: type-fest "^1.0.2" -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -3581,42 +4306,37 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: color-convert "^2.0.1" ansi-styles@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" - integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" - integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= - -ansistyles@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" - integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= + integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== append-field@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" - integrity sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY= + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== "aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: version "2.0.0" @@ -3631,7 +4351,7 @@ arch@^2.2.0: archy@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== are-we-there-yet@^2.0.0: version "2.0.0" @@ -3642,9 +4362,9 @@ are-we-there-yet@^2.0.0: readable-stream "^3.6.0" are-we-there-yet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" - integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" readable-stream "^3.6.0" @@ -3674,7 +4394,7 @@ argparse@^2.0.1: argv-formatter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" - integrity sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk= + integrity sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw== aria-query@^4.2.2: version "4.2.2" @@ -3684,6 +4404,13 @@ aria-query@^4.2.2: "@babel/runtime" "^7.10.2" "@babel/runtime-corejs3" "^7.10.2" +aria-query@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -3692,33 +4419,22 @@ array-differ@^3.0.0: array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" - integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.3, array-includes@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" - integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" - is-string "^1.0.7" - -array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== +array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" is-string "^1.0.7" array-union@^2.1.0: @@ -3726,29 +4442,41 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.flat@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" - integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== +array.prototype.flat@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" + integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - -array.prototype.flatmap@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz#a7e8ed4225f4788a70cd910abcf0791e76a5534f" - integrity sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" +array.prototype.flatmap@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" + integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== arrify@^2.0.1: version "2.0.1" @@ -3758,7 +4486,7 @@ arrify@^2.0.1: asap@^2.0.0, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== asn1.js@^5.0.0, asn1.js@^5.3.0: version "5.4.1" @@ -3785,94 +4513,90 @@ assert-never@^1.2.1: assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async@^3.2.0: +async@^3.2.0, async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== -async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@10.4.8: - version "10.4.8" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" - integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== +autoprefixer@10.4.13: + version "10.4.13" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8" + integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== dependencies: - browserslist "^4.21.3" - caniuse-lite "^1.0.30001373" + browserslist "^4.21.4" + caniuse-lite "^1.0.30001426" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + version "1.12.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" + integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@^4.3.5: - version "4.4.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" - integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== - -axe-core@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" - integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== +axe-core@^4.4.3, axe-core@^4.6.2: + version "4.6.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" + integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== axios-rate-limit@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/axios-rate-limit/-/axios-rate-limit-1.3.0.tgz#03241d24c231c47432dab6e8234cfde819253c2e" integrity sha512-cKR5wTbU/CeeyF1xVl5hl6FlYsmzDVqxlN4rGtfO5x7J83UxKDckudsW0yW21/ZJRcO0Qrfm3fUFbhEbWTLayw== -axios@0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.2.tgz#72681724c6e6a43a9fea860fc558127dbe32f9f1" + integrity sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== +axobject-query@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== dependencies: - object.assign "^4.1.0" + deep-equal "^2.0.5" babel-plugin-emotion@^10.0.27: version "10.2.2" @@ -3908,29 +4632,29 @@ babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" - integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== +babel-plugin-polyfill-corejs2@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== dependencies: "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.2" + "@babel/helper-define-polyfill-provider" "^0.3.3" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" - integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== +babel-plugin-polyfill-corejs3@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" + integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" - core-js-compat "^3.21.0" + "@babel/helper-define-polyfill-provider" "^0.3.3" + core-js-compat "^3.25.1" -babel-plugin-polyfill-regenerator@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" - integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== +babel-plugin-polyfill-regenerator@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" + integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.2" + "@babel/helper-define-polyfill-provider" "^0.3.3" babel-plugin-react-intl-auto@3.3.0: version "3.3.0" @@ -3976,7 +4700,7 @@ babel-plugin-react-intl@^7.0.0: babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== babel-walk@3.0.0-canary-5: version "3.0.0-canary-5" @@ -4003,32 +4727,32 @@ base64-js@^1.3.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" -bcrypt@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.0.1.tgz#f1a2c20f208e2ccdceea4433df0c8b2c54ecdf71" - integrity sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw== +bcrypt@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-5.1.0.tgz#bbb27665dbc400480a524d8991ac7434e8529e17" + integrity sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q== dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^3.1.0" + "@mapbox/node-pre-gyp" "^1.0.10" + node-addon-api "^5.0.0" before-after-hook@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" - integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== -bin-links@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.0.tgz#8273063638919f6ba4fbe890de9438c1b3adf0b7" - integrity sha512-fC7kPWcEkAWBgCKxmAMqZldlIeHsXwQy9JXzrppAVQiukGiDKxmYesJcBKWu6UMwx/5GOfo10wtK/4zy+Xt/mg== +bin-links@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== dependencies: - cmd-shim "^4.0.1" + cmd-shim "^5.0.0" mkdirp-infer-owner "^2.0.0" - npm-normalize-package-bin "^1.0.0" - read-cmd-shim "^2.0.0" + npm-normalize-package-bin "^2.0.0" + read-cmd-shim "^3.0.0" rimraf "^3.0.0" write-file-atomic "^4.0.0" @@ -4066,10 +4790,10 @@ bn.js@^4.0.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -4079,7 +4803,7 @@ body-parser@1.20.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" @@ -4087,7 +4811,7 @@ body-parser@1.20.0: boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boolean@3.2.0, boolean@^3.1.4: version "3.2.0" @@ -4119,33 +4843,22 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -browserslist@^4.17.5, browserslist@^4.19.1: - version "4.20.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9" - integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ== +browserslist@^4.21.3, browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001313" - electron-to-chromium "^1.4.76" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -browserslist@^4.20.2, browserslist@^4.21.3: - version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" - integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== - dependencies: - caniuse-lite "^1.0.30001370" - electron-to-chromium "^1.4.202" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" node-releases "^2.0.6" - update-browserslist-db "^1.0.5" + update-browserslist-db "^1.0.9" buffer-crc32@~0.2.3: version "0.2.13" @@ -4155,7 +4868,7 @@ buffer-crc32@~0.2.3: buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" - integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== buffer-from@^1.0.0: version "1.1.2" @@ -4178,10 +4891,12 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" busboy@^1.0.0: version "1.6.0" @@ -4195,7 +4910,7 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacache@^15.0.3, cacache@^15.2.0, cacache@^15.3.0: +cacache@^15.2.0: version "15.3.0" resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== @@ -4219,10 +4934,29 @@ cacache@^15.0.3, cacache@^15.2.0, cacache@^15.3.0: tar "^6.0.2" unique-filename "^1.1.1" -cachedir@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.2.0.tgz#19afa4305e05d79e417566882e0c8f960f62ff0e" - integrity sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ== +cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^2.0.0" cachedir@2.3.0, cachedir@^2.3.0: version "2.3.0" @@ -4238,9 +4972,9 @@ call-bind@^1.0.0, call-bind@^1.0.2: get-intrinsic "^1.0.2" call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== callsites@^3.0.0: version "3.1.0" @@ -4271,20 +5005,15 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001313: - version "1.0.30001315" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001315.tgz#f1b1efd1171ee1170d52709a7252632dacbd7c77" - integrity sha512-5v7LFQU4Sb/qvkz7JcZkvtSH1Ko+1x2kgo3ocdBeMGZSOFpuE1kkm0kpTwLtWeFrw5qw08ulLxJjVIXIS8MkiQ== - -caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: - version "1.0.30001384" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001384.tgz#029527c2d781a3cfef13fa63b3a78a6088e35973" - integrity sha512-BBWt57kqWbc0GYZXb47wTXpmAgqr5LSibPzNjk/AWMdmJMQhLqOl3c/Kd4OAU/tu4NLfYkMx8Tlq3RVBkOBolQ== +caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001426: + version "1.0.30001448" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" + integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== cardinal@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" - integrity sha1-fMEFXYItISlU0HsIXeolHMe8VQU= + integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== dependencies: ansicolors "~0.3.2" redeyed "~2.1.0" @@ -4292,9 +5021,9 @@ cardinal@^2.1.1: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4312,19 +5041,19 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" - integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-parser@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" - integrity sha1-x84o821LzZdE5f/CxfzeHHMmH8A= + integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== dependencies: is-regex "^1.0.3" @@ -4339,17 +5068,29 @@ check-more-types@^2.24.0: integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== cheerio-select@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" - integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.6.0.tgz#489f36604112c722afa147dedd0d4609c09e1696" + integrity sha512-eq0GdBvxVFbqWgmCm7M3XGs1I8oLy/nExUnh6oLqmBditPO9AqQJrkslDpMun/hZ0yyTs8L0m85OHp4ho6Qm9g== dependencies: - css-select "^4.1.3" - css-what "^5.0.1" + css-select "^4.3.0" + css-what "^6.0.1" domelementtype "^2.2.0" - domhandler "^4.2.0" - domutils "^2.7.0" + domhandler "^4.3.1" + domutils "^2.8.0" -cheerio@1.0.0-rc.10, cheerio@^1.0.0-rc.3: +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@1.0.0-rc.10: version "1.0.0-rc.10" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== @@ -4362,6 +5103,19 @@ cheerio@1.0.0-rc.10, cheerio@^1.0.0-rc.3: parse5-htmlparser2-tree-adapter "^6.0.1" tslib "^2.2.0" +cheerio@^1.0.0-rc.3: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + chokidar@^3.4.0, chokidar@^3.5.2, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -4382,10 +5136,10 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== +ci-info@^3.2.0, ci-info@^3.3.2: + version "3.7.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" + integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== cidr-regex@^3.1.1: version "3.1.1" @@ -4395,9 +5149,9 @@ cidr-regex@^3.1.1: ip-regex "^4.1.0" classnames@^2.2.5: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== + version "2.3.2" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" + integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== clean-stack@^2.0.0: version "2.2.0" @@ -4412,13 +5166,6 @@ cli-columns@^4.0.0: string-width "^4.2.3" strip-ansi "^6.0.1" -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - cli-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -4443,19 +5190,10 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== -cli-table3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" - integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== - dependencies: - string-width "^4.2.0" - optionalDependencies: - colors "1.4.0" - -cli-table3@~0.6.1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" - integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== +cli-table3@^0.6.1, cli-table3@^0.6.2, cli-table3@~0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" optionalDependencies: @@ -4477,16 +5215,16 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cli-width@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + cliui@^7.0.2: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -4496,20 +5234,34 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone@2.x: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cmd-shim@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-4.1.0.tgz#b3a904a6743e9fede4148c6f3800bf2a08135bdd" - integrity sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw== +clsx@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +cmd-shim@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== dependencies: mkdirp-infer-owner "^2.0.0" @@ -4530,7 +5282,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" @@ -4538,9 +5290,9 @@ color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa" - integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ== + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -4558,15 +5310,10 @@ color@^3.1.3: color-convert "^1.9.3" color-string "^1.6.0" -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== - -colors@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== +colorette@^2.0.16, colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== colorspace@1.1.x: version "1.1.4" @@ -4592,9 +5339,9 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: delayed-stream "~1.0.0" comma-separated-tokens@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" - integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@^2.19.0: version "2.20.3" @@ -4621,15 +5368,15 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^9.0.0, commander@^9.3.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" - integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== +commander@^9.0.0, commander@^9.4.1: + version "9.5.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" + integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commitizen@4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.5.tgz#48e5a5c28334c6e8ed845cc24fc9f072efd3961e" - integrity sha512-9sXju8Qrz1B4Tw7kC5KhnvwYQN88qs2zbiB8oyMsnXZyJ24PPGiNM3nHr73d32dnE3i8VJEXddBFIbOgYSEXtQ== +commitizen@4.2.6: + version "4.2.6" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.6.tgz#c35af39e1cb5fc2de88511df802da4344dc3ca80" + integrity sha512-RyTM+EiD9GO01DJUn9MRRAet3XUHGfoUZoksLfr+1ym1Xt2q5EYJs9Fg2BtKSb5Mo53i0BtMBmWMHQXVlZ/L9w== dependencies: cachedir "2.3.0" cz-conventional-changelog "3.3.0" @@ -4647,24 +5394,24 @@ commitizen@4.2.5: strip-json-comments "3.1.1" commitizen@^4.0.3: - version "4.2.4" - resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.2.4.tgz#a3e5b36bd7575f6bf6e7aa19dbbf06b0d8f37165" - integrity sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw== + version "4.3.0" + resolved "https://registry.yarnpkg.com/commitizen/-/commitizen-4.3.0.tgz#0d056c542a2d2b1f9b9aba981aa32575b2849924" + integrity sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw== dependencies: - cachedir "2.2.0" - cz-conventional-changelog "3.2.0" + cachedir "2.3.0" + cz-conventional-changelog "3.3.0" dedent "0.7.0" - detect-indent "6.0.0" + detect-indent "6.1.0" find-node-modules "^2.1.2" find-root "1.1.0" - fs-extra "8.1.0" - glob "7.1.4" - inquirer "6.5.2" + fs-extra "9.1.0" + glob "7.2.3" + inquirer "8.2.5" is-utf8 "^0.2.1" - lodash "^4.17.20" - minimist "1.2.5" + lodash "4.17.21" + minimist "1.2.7" strip-bom "4.0.0" - strip-json-comments "3.0.1" + strip-json-comments "3.1.1" common-ancestor-path@^1.0.1: version "1.0.1" @@ -4687,12 +5434,12 @@ compare-func@^2.0.0: computed-style@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/computed-style/-/computed-style-0.1.4.tgz#7f344fd8584b2e425bedca4a1afc0e300bb05d74" - integrity sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ= + integrity sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w== concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.2: version "1.6.2" @@ -4704,6 +5451,14 @@ concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-typeorm@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/connect-typeorm/-/connect-typeorm-1.1.4.tgz#80f4e60dc4eeb6c04de334c30bf3e4bb766a34e5" @@ -4717,7 +5472,7 @@ connect-typeorm@1.1.4: console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== consolidate@^0.16.0: version "0.16.0" @@ -4804,11 +5559,9 @@ conventional-commits-parser@^3.2.2, conventional-commits-parser@^3.2.3: through2 "^4.0.0" convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== cookie-parser@1.4.6: version "1.4.6" @@ -4821,7 +5574,7 @@ cookie-parser@1.4.6: cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.4.0: version "0.4.0" @@ -4843,17 +5596,10 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -copy-to-clipboard@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz#5b263ec2366224b100181dded7ce0579b340c107" - integrity sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg== - dependencies: - toggle-selection "^1.0.6" - -copy-to-clipboard@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== +copy-to-clipboard@3.3.3, copy-to-clipboard@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== dependencies: toggle-selection "^1.0.6" @@ -4870,49 +5616,32 @@ copyfiles@2.4.1: untildify "^4.0.0" yargs "^16.1.0" -core-js-compat@^3.21.0: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" - integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g== +core-js-compat@^3.25.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.2.tgz#607c50ad6db8fd8326af0b2883ebb987be3786da" + integrity sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg== dependencies: - browserslist "^4.19.1" - semver "7.0.0" + browserslist "^4.21.4" -core-js-compat@^3.22.1: - version "3.25.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.0.tgz#489affbfbf9cb3fa56192fe2dd9ebaee985a66c5" - integrity sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow== - dependencies: - browserslist "^4.21.3" - semver "7.0.0" - -core-js-pure@^3.20.2: - version "3.21.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" - integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== +core-js-pure@^3.25.1: + version "3.27.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.27.2.tgz#47e9cc96c639eefc910da03c3ece26c5067c7553" + integrity sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A== core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig-typescript-loader@^1.0.0: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.6.tgz#6d879cece8063b15ec8a3258f55a8e94893c7cca" - integrity sha512-2nEotziYJWtNtoTjKbchj9QrdTT6DBxCvqjNKoDKARw+e2yZmTQCa07uRrykLIZuvSgp69YXLH89UHc0WhdMfQ== - dependencies: - cosmiconfig "^7" - ts-node "^10.6.0" - -cosmiconfig-typescript-loader@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.1.2.tgz#e147457854cabe1416152bdca55f53449b1f865d" - integrity sha512-rIwakk27LtK7vjSjGgs3FDbKkq41Byw3VHRGRuAkRQLfGla+O7s+cy1FXRkjLSZ2G9z1og1bcOIsELo1w4G0Kg== +cosmiconfig-typescript-loader@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz#c4259ce474c9df0f32274ed162c0447c951ef073" + integrity sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q== cosmiconfig@^6.0.0: version "6.0.0" @@ -4925,10 +5654,10 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -4936,6 +5665,16 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +cosmiconfig@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" + integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + dependencies: + import-fresh "^3.2.1" + js-yaml "^4.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + country-flag-icons@1.5.5: version "1.5.5" resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.5.5.tgz#04a41c83e2ea38ea28054d4e3eff9d1ce16aec1c" @@ -4954,10 +5693,21 @@ cron-parser@^3.5.0: is-nan "^1.3.2" luxon "^1.26.0" -cronstrue@2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.11.0.tgz#18ff1b95a836b9b4e06854f796db2dc8fa98ce41" - integrity sha512-iIBCSis5yqtFYWtJAmNOiwDveFWWIn+8uV5UYuPHYu/Aeu5CSSJepSbaHMyfc+pPFgnsCcGzfPQEo7LSGmWbTg== +cronstrue@2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/cronstrue/-/cronstrue-2.21.0.tgz#278d19aa0b9e7ecc90a0c1dbd4f84ceece724094" + integrity sha512-YxabE1ZSHA1zJZMPCTSEbc0u4cRRenjqqTgCwJT7OvkspPSvfYFITuPFtsT+VkBuavJtFv2kJXT+mKSnlUJxfg== + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" @@ -4968,6 +5718,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-random-string@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-3.3.1.tgz#13cee94cac8001e4842501608ef779e0ed08f82d" + integrity sha512-5j88ECEn6h17UePrLi6pn1JcLtAiANa3KExyr9y9Z5vo2mv56Gh3I4Aja/B9P9uyMwyxNHAHWv+nE72f30T5Dg== + dependencies: + type-fest "^0.8.1" + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -4982,17 +5739,28 @@ csrf@3.1.0: tsscmp "1.0.6" uid-safe "2.1.5" -css-select@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" - integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== +css-select@^4.1.3, css-select@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" - css-what "^5.1.0" - domhandler "^4.3.0" + css-what "^6.0.1" + domhandler "^4.3.1" domutils "^2.8.0" nth-check "^2.0.1" +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" @@ -5001,10 +5769,10 @@ css-tree@^1.1.2, css-tree@^1.1.3: mdn-data "2.0.14" source-map "^0.6.1" -css-what@^5.0.1, css-what@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" - integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== cssesc@^3.0.0: version "3.0.0" @@ -5019,14 +5787,14 @@ csso@^4.2.0: css-tree "^1.1.2" csstype@^2.5.7: - version "2.6.20" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" - integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== + version "2.6.21" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" + integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== csstype@^3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" - integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== + version "3.1.1" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9" + integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== csurf@1.11.0: version "1.11.0" @@ -5043,10 +5811,10 @@ cy-mobile-commands@0.3.0: resolved "https://registry.yarnpkg.com/cy-mobile-commands/-/cy-mobile-commands-0.3.0.tgz#2bf242093149154d846b755977da197b4730429e" integrity sha512-Bj5P2ylw88hPqolLu68xWB6euVH5uNt8zyh+Ju8sBukGv39mWZxpjp6LtnUX/LK/YMthwvILYHhvr9SG1TP+4w== -cypress@10.6.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.6.0.tgz#13f46867febf2c3715874ed5dce9c2e946b175fe" - integrity sha512-6sOpHjostp8gcLO34p6r/Ci342lBs8S5z9/eb3ZCQ22w2cIhMWGUoGKkosabPBfKcvRS9BE4UxybBtlIs8gTQA== +cypress@12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.3.0.tgz#ae3fb0540aef4b5eab1ef2bcd0760caf2992b8bf" + integrity sha512-ZQNebibi6NBt51TRxRMYKeFvIiQZ01t50HSy7z/JMgRVqBUey3cdjog5MYEbzG6Ktti5ckDt1tfcC47lmFwXkw== dependencies: "@cypress/request" "^2.88.10" "@cypress/xvfb" "^1.2.4" @@ -5067,7 +5835,7 @@ cypress@10.6.0: dayjs "^1.10.4" debug "^4.3.2" enquirer "^2.3.6" - eventemitter2 "^6.4.3" + eventemitter2 "6.4.7" execa "4.1.0" executable "^4.1.1" extract-zip "2.0.1" @@ -5091,20 +5859,6 @@ cypress@10.6.0: untildify "^4.0.0" yauzl "^2.10.0" -cz-conventional-changelog@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz#6aef1f892d64113343d7e455529089ac9f20e477" - integrity sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg== - dependencies: - chalk "^2.4.1" - commitizen "^4.0.3" - conventional-commit-types "^3.0.0" - lodash.map "^4.5.1" - longest "^2.0.1" - word-wrap "^1.0.3" - optionalDependencies: - "@commitlint/load" ">6.1.1" - cz-conventional-changelog@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz#9246947c90404149b3fe2cf7ee91acad3b7d22d2" @@ -5119,7 +5873,7 @@ cz-conventional-changelog@3.3.0: optionalDependencies: "@commitlint/load" ">6.1.1" -damerau-levenshtein@^1.0.7, damerau-levenshtein@^1.0.8: +damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== @@ -5132,46 +5886,36 @@ dargs@^7.0.0: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" -date-fns@2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.1.tgz#9667c2615525e552b5135a3116b95b1961456e60" - integrity sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw== - -date-fns@^2.28.0: - version "2.29.2" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.2.tgz#0d4b3d0f3dff0f920820a070920f0d9662c51931" - integrity sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA== +date-fns@2.29.3, date-fns@^2.28.0: + version "2.29.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -dayjs@^1.10.4: - version "1.11.5" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.5.tgz#00e8cc627f231f9499c19b38af49f56dc0ac5e93" - integrity sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA== +dayjs@1.11.7, dayjs@^1.10.4: + version "1.11.7" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" + integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ== -dayjs@^1.10.6: - version "1.10.8" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.8.tgz#267df4bc6276fcb33c04a6735287e3f429abec41" - integrity sha512-wbNwDfBHHur9UOzNUjeKUOJ0fCb0a52Wx0xInmQ7Y8FstyajiV1NmK1e00cxsr9YrE9r7yAChE0VvpuY5Rnlow== - -debug@2.6.9, debug@^2.6.9: +debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -5182,22 +5926,15 @@ debug@^3.1.0, debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" - integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" map-obj "^1.0.0" @@ -5205,19 +5942,42 @@ decamelize-keys@^1.1.0: decamelize@^1.1.0, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" dedent@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-equal@^2.0.5: + version "2.2.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" + integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-array-buffer "^3.0.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" deep-extend@^0.6.0: version "0.6.0" @@ -5240,20 +6000,13 @@ deepmerge@^4.2.2: integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-properties@^1.1.4: +define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== @@ -5262,14 +6015,14 @@ define-properties@^1.1.4: object-keys "^1.1.1" defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== del@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" - integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + version "6.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" + integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== dependencies: globby "^11.0.1" graceful-fs "^4.2.4" @@ -5283,12 +6036,12 @@ del@^6.0.0: delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== depd@2.0.0, depd@~2.0.0: version "2.0.0" @@ -5298,7 +6051,7 @@ depd@2.0.0, depd@~2.0.0: depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" @@ -5306,9 +6059,9 @@ deprecation@^2.0.0, deprecation@^2.3.1: integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" @@ -5318,22 +6071,17 @@ destroy@1.2.0: detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-indent@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== detect-indent@6.1.0, detect-indent@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== detective@^5.2.1: version "5.2.1" @@ -5345,9 +6093,9 @@ detective@^5.2.1: minimist "^1.2.6" dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + version "1.0.4" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== dependencies: asap "^2.0.0" wrappy "1" @@ -5367,10 +6115,10 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== +diff@^5.0.0, diff@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-glob@^3.0.0, dir-glob@^3.0.1: version "3.0.1" @@ -5382,7 +6130,15 @@ dir-glob@^3.0.0, dir-glob@^3.0.1: discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo= + integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== + +display-notification@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/display-notification/-/display-notification-2.0.0.tgz#49fad2e03289b4f668c296e1855c2cf8ba893d49" + integrity sha512-TdmtlAcdqy1NU+j7zlkDdMnCL878zriLaBmoD9quOoq1ySSSGv03l0hXK5CvIFZlIfFI/hizqdQuW+Num7xuhw== + dependencies: + escape-string-applescript "^1.0.0" + run-applescript "^3.0.0" dlv@^1.1.3: version "1.1.3" @@ -5406,7 +6162,7 @@ doctrine@^3.0.0: doctypes@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" - integrity sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk= + integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== dom-helpers@^5.0.1: version "5.2.1" @@ -5417,18 +6173,27 @@ dom-helpers@^5.0.1: csstype "^3.0.2" dom-serializer@^1.0.1, dom-serializer@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" domhandler "^4.2.0" entities "^2.0.0" -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^3.0.0, domhandler@^3.3.0: version "3.3.0" @@ -5437,14 +6202,21 @@ domhandler@^3.0.0, domhandler@^3.3.0: dependencies: domelementtype "^2.0.1" -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" -domutils@^2.0.0, domutils@^2.4.2, domutils@^2.5.2, domutils@^2.7.0, domutils@^2.8.0: +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^2.0.0, domutils@^2.4.2, domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -5453,6 +6225,15 @@ domutils@^2.0.0, domutils@^2.4.2, domutils@^2.5.2, domutils@^2.7.0, domutils@^2. domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -5461,14 +6242,14 @@ dot-prop@^5.1.0: is-obj "^2.0.0" dotenv@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== duplexer2@~0.1.0: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== dependencies: readable-stream "^2.0.2" @@ -5480,7 +6261,7 @@ eastasianwidth@^0.2.0: ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" safer-buffer "^2.1.0" @@ -5495,17 +6276,12 @@ ecdsa-sig-formatter@1.0.11: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.202: - version "1.4.233" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.233.tgz#aa142e45468bda111b88abc9cc59d573b75d6a60" - integrity sha512-ejwIKXTg1wqbmkcRJh9Ur3hFGHFDZDw1POzdsVrB2WZjgRuRMHIQQKNpe64N/qh3ZtH2otEoRoS+s6arAAuAAw== - -electron-to-chromium@^1.4.76: - version "1.4.82" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.82.tgz#51e123ca434b1eba8c434ece2b54f095b304a651" - integrity sha512-Ks+ANzLoIrFDUOJdjxYMH6CMKB8UQo5modAwvSZTxgF+vEs/U7G5IbWFUp6dS4klPkTDVdxbORuk8xAXXhMsWw== +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== email-templates@9.0.0: version "9.0.0" @@ -5528,9 +6304,9 @@ email-validator@2.0.4: integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== emoji-regex@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.0.1.tgz#77180edb279b99510a21b79b19e1dc283d8f3991" - integrity sha512-cLuZzriSWVE+rllzeq4zpUEoCPfYEbQ6ZVhIq+ed6ynWST7Bw9XnOr+bKWgCup4paq72DI21gw9M3aaFkm4HAw== + version "10.2.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.2.1.tgz#a41c330d957191efd3d9dfe6e1e8e1e9ab048b3f" + integrity sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA== emoji-regex@^8.0.0: version "8.0.0" @@ -5555,12 +6331,12 @@ enabled@2.0.x: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding-japanese@1.0.30: - version "1.0.30" - resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-1.0.30.tgz#537c4d62881767925d601acb4c79fb14db81703a" - integrity sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg== +encoding-japanese@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encoding-japanese/-/encoding-japanese-2.0.0.tgz#fa0226e5469e7b5b69a04fea7d5481bd1fa56936" + integrity sha512-++P0RhebUC8MJAwJOsT93dT+5oc5oPImp1HubZpAuCZ5kTLnhuuBhKHj2jJeO/Gj93idPBWmIuQ9QWMe5rX3pQ== encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" @@ -5588,10 +6364,10 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.3.1.tgz#c34062a94c865c322f9d67b4384e4169bcede6a4" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== +entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" + integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== env-ci@^5.0.0: version "5.5.0" @@ -5619,60 +6395,68 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" - integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.1.1" - get-symbol-description "^1.0.0" - has "^1.0.3" - has-symbols "^1.0.2" - internal-slot "^1.0.3" - is-callable "^1.2.4" - is-negative-zero "^2.0.1" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.1" - is-string "^1.0.7" - is-weakref "^1.0.1" - object-inspect "^1.11.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" - -es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.21.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" + integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== dependencies: + available-typed-arrays "^1.0.5" call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" + has-proto "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.4" + internal-slot "^1.0.4" + is-array-buffer "^3.0.1" + is-callable "^1.2.7" is-negative-zero "^2.0.2" is-regex "^1.1.4" is-shared-array-buffer "^1.0.2" is-string "^1.0.7" + is-typed-array "^1.1.10" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-get-iterator@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-set-tostringtag@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + has-tostringtag "^1.0.0" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -5703,45 +6487,51 @@ escape-goat@^3.0.0: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-applescript@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/escape-string-applescript/-/escape-string-applescript-1.0.0.tgz#6f1c2294245d82c63bc03338dc19a94aa8428892" + integrity sha512-4/hFwoYaC6TkpDn9A3pTC52zQPArFeXuIfhUtCGYdauTzXVP9H3BDr3oO/QzQehMpLDC7srvYgfwvImPFGfvBA== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-next@12.2.5: - version "12.2.5" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.2.5.tgz#76ce83f18cc02f6f42ed407a127f83db54fabd3c" - integrity sha512-SOowilkqPzW6DxKp3a3SYlrfPi5Ajs9MIzp9gVfUDxxH9QFM5ElkR1hX5m/iICJuvCbWgQqFBiA3mCMozluniw== +eslint-config-next@12.3.4: + version "12.3.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-12.3.4.tgz#3d4d9e74b919b879c4cc79c61bdc388fb2b964ee" + integrity sha512-WuT3gvgi7Bwz00AOmKGhOeqnyA5P29Cdyr0iVjLyfDbk+FANQKcOjFUTZIdyYfe5Tq1x4TGcmoe4CwctGvFjHQ== dependencies: - "@next/eslint-plugin-next" "12.2.5" + "@next/eslint-plugin-next" "12.3.4" "@rushstack/eslint-patch" "^1.1.3" "@typescript-eslint/parser" "^5.21.0" eslint-import-resolver-node "^0.3.6" eslint-import-resolver-typescript "^2.7.1" eslint-plugin-import "^2.26.0" eslint-plugin-jsx-a11y "^6.5.1" - eslint-plugin-react "^7.29.4" + eslint-plugin-react "^7.31.7" eslint-plugin-react-hooks "^4.5.0" -eslint-config-prettier@8.5.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" - integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== +eslint-config-prettier@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207" + integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA== -eslint-import-resolver-node@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" - integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" + integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== dependencies: debug "^3.2.7" - resolve "^1.20.0" + is-core-module "^2.11.0" + resolve "^1.22.1" eslint-import-resolver-typescript@^2.7.1: version "2.7.1" @@ -5754,45 +6544,47 @@ eslint-import-resolver-typescript@^2.7.1: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-module-utils@^2.7.3: +eslint-module-utils@^2.7.4: version "2.7.4" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" -eslint-plugin-formatjs@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.1.0.tgz#3dfcd6c44037414229d1e071817fc0496f36e213" - integrity sha512-r8qCy5SDwsCcUUdP6ua1gYFd6I+tj/5GORj7jTOGGvmOfzkDQk+6ieaUqZ8ZF7xFUubDvLJwaZLHVdHI4Cq6Yw== +eslint-plugin-formatjs@4.3.9: + version "4.3.9" + resolved "https://registry.yarnpkg.com/eslint-plugin-formatjs/-/eslint-plugin-formatjs-4.3.9.tgz#cccecfa7bb40b6f150c5e0602ddaca1cd632d116" + integrity sha512-+8kGoTUaNe0qS55eg5XbPDY+eQmeZxnrC8MugQTGUXlqbCyLyG7y4mDsMhAgactVyUMST6Ln1HEm1Tk0KNuIKQ== dependencies: - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/ts-transformer" "3.9.9" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/ts-transformer" "3.11.5" "@types/eslint" "7 || 8" "@types/picomatch" "^2.3.0" "@typescript-eslint/typescript-estree" "^5.9.1" emoji-regex "^10.0.0" picomatch "^2.3.1" - tslib "2.4.0" - typescript "^4.5" + tslib "^2.4.0" + typescript "^4.7" eslint-plugin-import@^2.26.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" - integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== + version "2.27.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" + integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== dependencies: - array-includes "^3.1.4" - array.prototype.flat "^1.2.5" - debug "^2.6.9" + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + array.prototype.flatmap "^1.3.1" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.6" - eslint-module-utils "^2.7.3" + eslint-import-resolver-node "^0.3.7" + eslint-module-utils "^2.7.4" has "^1.0.3" - is-core-module "^2.8.1" + is-core-module "^2.11.0" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.5" - resolve "^1.22.0" + object.values "^1.1.6" + resolve "^1.22.1" + semver "^6.3.0" tsconfig-paths "^3.14.1" eslint-plugin-jsx-a11y@6.6.1: @@ -5815,27 +6607,31 @@ eslint-plugin-jsx-a11y@6.6.1: semver "^6.3.0" eslint-plugin-jsx-a11y@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8" - integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g== + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976" + integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA== dependencies: - "@babel/runtime" "^7.16.3" - aria-query "^4.2.2" - array-includes "^3.1.4" + "@babel/runtime" "^7.20.7" + aria-query "^5.1.3" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" ast-types-flow "^0.0.7" - axe-core "^4.3.5" - axobject-query "^2.2.0" - damerau-levenshtein "^1.0.7" + axe-core "^4.6.2" + axobject-query "^3.1.1" + damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" has "^1.0.3" - jsx-ast-utils "^3.2.1" - language-tags "^1.0.5" - minimatch "^3.0.4" + jsx-ast-utils "^3.3.3" + language-tags "=1.0.5" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + semver "^6.3.0" -eslint-plugin-no-relative-import-paths@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-no-relative-import-paths/-/eslint-plugin-no-relative-import-paths-1.4.0.tgz#59489ebc19688d1398bfe53d3ad320b3ed42ca17" - integrity sha512-J/ok26KqJM+20VsxNEcHc9kyW0dcFHBlihOO5FFv/GQqwcW+G1UngbHLpnPAdOQ1dJg5Ljk/40csqfZ3mnneUw== +eslint-plugin-no-relative-import-paths@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-no-relative-import-paths/-/eslint-plugin-no-relative-import-paths-1.5.2.tgz#c35f2fd0bf2a6a57b268193ed7df63ff7000134e" + integrity sha512-wMlL+TVuDhKk1plP+w3L4Hc7+u89vUkrOYq6/0ARjcYqwc9/YaS9uEXNzaqAk+WLoEgakzNL5JgJJw6m4qd5zw== eslint-plugin-prettier@4.2.1: version "4.2.1" @@ -5849,45 +6645,47 @@ eslint-plugin-react-hooks@4.6.0, eslint-plugin-react-hooks@^4.5.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@7.30.1: - version "7.30.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz#2be4ab23ce09b5949c6631413ba64b2810fd3e22" - integrity sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg== +eslint-plugin-react@7.31.11: + version "7.31.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" + integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.3" semver "^6.3.0" - string.prototype.matchall "^4.0.7" + string.prototype.matchall "^4.0.8" -eslint-plugin-react@^7.29.4: - version "7.31.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz#d29793ed27743f3ed8a473c347b1bf5a0a8fb9af" - integrity sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg== +eslint-plugin-react@^7.31.7: + version "7.32.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200" + integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www== dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" prop-types "^15.8.1" - resolve "^2.0.0-next.3" + resolve "^2.0.0-next.4" semver "^6.3.0" - string.prototype.matchall "^4.0.7" + string.prototype.matchall "^4.0.8" eslint-scope@^5.1.1: version "5.1.1" @@ -5917,19 +6715,20 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@8.22.0: - version "8.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.22.0.tgz#78fcb044196dfa7eef30a9d65944f6f980402c48" - integrity sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA== +eslint@8.31.0: + version "8.31.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.31.0.tgz#75028e77cbcff102a9feae1d718135931532d524" + integrity sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA== dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.10.4" - "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@eslint/eslintrc" "^1.4.1" + "@humanwhocodes/config-array" "^0.11.8" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -5939,21 +6738,21 @@ eslint@8.22.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.3" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" - functional-red-black-tree "^1.0.1" - glob-parent "^6.0.1" - globals "^13.15.0" - globby "^11.1.0" + glob-parent "^6.0.2" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" @@ -5965,12 +6764,11 @@ eslint@8.22.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.3.3, espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== +espree@^9.4.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -6013,9 +6811,9 @@ esutils@^2.0.2: etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eventemitter2@^6.4.3: +eventemitter2@6.4.7: version "6.4.7" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== @@ -6035,7 +6833,20 @@ execa@4.1.0: signal-exit "^3.0.2" strip-final-newline "^2.0.0" -execa@^5.0.0, execa@^5.1.1: +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -6050,6 +6861,21 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +execa@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" + integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^3.0.1" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + executable@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" @@ -6060,7 +6886,7 @@ executable@^4.1.1: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== dependencies: homedir-polyfill "^1.0.1" @@ -6082,12 +6908,12 @@ express-openapi-validator@4.13.8: ono "^7.1.3" path-to-regexp "^6.2.0" -express-rate-limit@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-6.5.1.tgz#2b4c329f03265f94f19613519b169afbd018e783" - integrity sha512-pxO6ioBLd3i8IHL+RmJtL4noYzte5fugoMdaDabtU4hcg53+x0QkTwfPtM7vWD0YUaXQgNj9NRdzmps+CHEHlA== +express-rate-limit@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/express-rate-limit/-/express-rate-limit-6.7.0.tgz#6aa8a1bd63dfe79702267b3af1161a93afc1d3c2" + integrity sha512-vhwIdRoqcYB/72TK3tRZI+0ttS8Ytrk24GfmsxDXK9o9IhHNO5bXRiXQSExPQ4GbaE5tvIS7j1SGrxsuWs+sGA== -express-session@1.17.3: +express-session@1.17.3, express-session@^1.15.6: version "1.17.3" resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.3.tgz#14b997a15ed43e5949cb1d073725675dd2777f36" integrity sha512-4+otWXlShYlG1Ma+2Jnn+xgKUZTMJ5QD3YvfilX3AcocOAbIkVylSWEklzALe/+Pu4qV6TYBj5GwOBFfdKqLBw== @@ -6101,28 +6927,14 @@ express-session@1.17.3: safe-buffer "5.2.1" uid-safe "~2.1.5" -express-session@^1.15.6: - version "1.17.2" - resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.2.tgz#397020374f9bf7997f891b85ea338767b30d0efd" - integrity sha512-mPcYcLA0lvh7D4Oqr5aNJFMtBMKPLl++OKKxkHzZ0U0oDq1rpKBnkR5f5vCHR26VeArlTOEF9td4x5IjICksRQ== - dependencies: - cookie "0.4.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~2.0.0" - on-headers "~1.0.2" - parseurl "~1.3.3" - safe-buffer "5.2.1" - uid-safe "~2.1.5" - -express@4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== +express@4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -6141,7 +6953,7 @@ express@4.18.1: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -6201,7 +7013,7 @@ extract-zip@2.0.1: extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== extsprintf@^1.2.0: version "1.4.1" @@ -6218,10 +7030,10 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== +fast-glob@^3.2.12, fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -6237,7 +7049,7 @@ fast-json-stable-stringify@^2.0.0: fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-printf@^1.6.9: version "1.6.9" @@ -6247,14 +7059,14 @@ fast-printf@^1.6.9: boolean "^3.1.4" fastest-levenshtein@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" - integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + version "1.0.16" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" @@ -6266,14 +7078,14 @@ fd-slicer@~1.1.0: pend "~1.2.0" fecha@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce" - integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q== + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== dependencies: escape-string-regexp "^1.0.5" @@ -6334,7 +7146,7 @@ find-root@1.1.0, find-root@^1.1.0: find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" @@ -6385,24 +7197,31 @@ flat@^5.0.0: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== fn.name@1.x.x: version "1.1.0" resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.14.9: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== +follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^4.0.0: version "4.0.0" @@ -6448,12 +7267,12 @@ fraction.js@^4.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" @@ -6463,15 +7282,6 @@ fromentries@^1.3.2: resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== -fs-extra@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -6482,10 +7292,10 @@ fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" - integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== +fs-extra@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -6506,7 +7316,7 @@ fs-readdir-recursive@^1.1.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" @@ -6528,11 +7338,6 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - functions-have-names@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -6553,10 +7358,10 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.3.tgz#286cf105c1962c659f0963058fb05116c1b82d3f" - integrity sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw== +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== dependencies: aproba "^1.0.3 || ^2.0.0" color-support "^1.1.3" @@ -6577,14 +7382,14 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-paths@^0.0.7: version "0.0.7" @@ -6593,6 +7398,16 @@ get-paths@^0.0.7: dependencies: pify "^4.0.1" +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -6600,7 +7415,7 @@ get-stream@^5.0.0, get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -6623,14 +7438,14 @@ getos@^3.2.1: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" git-log-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" - integrity sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo= + integrity sha512-rnCVNfkTL8tdNryFuaY0fYiBWEBcgF748O6ZI61rslBvr2o7U65c2/6npCRqH40vuAhtgtDiqLTJjBVdrejCzA== dependencies: argv-formatter "~1.0.0" spawn-error-forwarder "~1.0.0" @@ -6657,25 +7472,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" -glob@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.7: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" @@ -6688,7 +7491,7 @@ glob@7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.2.3: +glob@7.2.3, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6700,29 +7503,28 @@ glob@7.2.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" @@ -6738,7 +7540,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -6751,13 +7553,20 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" @@ -6770,10 +7579,17 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@4.2.10, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== grapheme-splitter@^1.0.4: version "1.0.4" @@ -6803,7 +7619,7 @@ handlebars@^4.7.7: har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== har-validator@~5.1.3: version "5.1.5" @@ -6818,12 +7634,7 @@ hard-rejection@^2.1.0: resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-bigints@^1.0.2: +has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== @@ -6831,7 +7642,7 @@ has-bigints@^1.0.2: has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" @@ -6845,7 +7656,12 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -6860,7 +7676,7 @@ has-tostringtag@^1.0.0: has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has@^1.0.3: version "1.0.3" @@ -6870,9 +7686,9 @@ has@^1.0.3: function-bind "^1.1.1" hast-util-whitespace@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c" - integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== he@1.2.0, he@^1.2.0: version "1.2.0" @@ -6908,24 +7724,30 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -hosted-git-info@^4.0.0, hosted-git-info@^4.0.1, hosted-git-info@^4.1.0: +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" -html-to-text@8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-8.0.0.tgz#5848681a5a38d657a7bb58cf5006d1c29fe64ce3" - integrity sha512-fEtul1OerF2aMEV+Wpy+Ue20tug134jOY1GIudtdqZi7D0uTudB2tVJBKfVhTL03dtqeJoF8gk8EPX9SyMEvLg== +hosted-git-info@^5.0.0, hosted-git-info@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f" + integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw== dependencies: - "@selderee/plugin-htmlparser2" "^0.6.0" + lru-cache "^7.5.1" + +html-to-text@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/html-to-text/-/html-to-text-9.0.3.tgz#331368f32fcb270c59dbd3a7fdb32813d2a490bc" + integrity sha512-hxDF1kVCF2uw4VUJ3vr2doc91pXf2D5ngKcNviSitNkhP9OMOaJkDrFIFL6RMvko7NisWTEiqGpQ9LAxcVok1w== + dependencies: + "@selderee/plugin-htmlparser2" "^0.10.0" deepmerge "^4.2.2" - he "^1.2.0" - htmlparser2 "^6.1.0" - minimist "^1.2.5" - selderee "^0.6.0" + dom-serializer "^2.0.0" + htmlparser2 "^8.0.1" + selderee "^0.10.0" html-to-text@^8.1.0: version "8.2.1" @@ -6969,10 +7791,20 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +htmlparser2@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" + integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + domutils "^3.0.1" + entities "^4.3.0" + http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-errors@2.0.0: version "2.0.0" @@ -7017,7 +7849,7 @@ http-proxy-agent@^5.0.0: http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" @@ -7040,9 +7872,9 @@ http_ece@1.1.0: urlsafe-base64 "~1.0.0" https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" debug "4" @@ -7057,17 +7889,22 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +human-signals@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" + integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" -husky@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" - integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== +husky@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== i18n-locales@^0.0.5: version "0.0.5" @@ -7095,13 +7932,6 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -7117,19 +7947,19 @@ ieee754@^1.1.13, ieee754@^1.2.1: ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore-walk@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" - integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== dependencies: - minimatch "^3.0.4" + minimatch "^5.0.1" ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: version "3.3.0" @@ -7147,7 +7977,7 @@ import-from@^4.0.0: imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" @@ -7162,7 +7992,7 @@ infer-owner@^1.0.4: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -7172,7 +8002,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@2.0.0, ini@^2.0.0: +ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== @@ -7182,43 +8012,29 @@ ini@^1.3.4, ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.0.tgz#9ccc1143426a52224cdbfa5485b1cb8a03ac34be" - integrity sha512-b0PZaZ3lF0mKsk7QcP03LhxXttVR0kb4XIafD1HXV4JIvLhifdvFgNyXr3qSA/3DZmiskFveLP1eXfXGFybG6g== +ini@^3.0.0, ini@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d" + integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ== + +init-package-json@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69" + integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A== dependencies: - npm-package-arg "^9.0.0" + npm-package-arg "^9.0.1" promzard "^0.3.0" read "^1.0.7" - read-package-json "^4.1.1" + read-package-json "^5.0.0" semver "^7.3.5" validate-npm-package-license "^3.0.4" - validate-npm-package-name "^3.0.0" + validate-npm-package-name "^4.0.0" inline-style-parser@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - inquirer@8.2.4: version "8.2.4" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" @@ -7240,12 +8056,33 @@ inquirer@8.2.4: through "^2.3.6" wrap-ansi "^7.0.0" -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== +inquirer@8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== dependencies: - get-intrinsic "^1.1.0" + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +internal-slot@^1.0.3, internal-slot@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" has "^1.0.3" side-channel "^1.0.4" @@ -7264,15 +8101,25 @@ intl-messageformat-parser@^5.3.7: dependencies: "@formatjs/intl-numberformat" "^5.5.2" -intl-messageformat@10.1.1: - version "10.1.1" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.1.1.tgz#226767e7921fa86cef2cbe4a13911050716720bc" - integrity sha512-FeJne2oooYW6shLPbrqyjRX6hTELVrQ90Dn88z7NomLk/xZBCLxLPAkgaYaTQJBRBV78nZ933d8APHHkTQrD9Q== +intl-messageformat@10.2.5: + version "10.2.5" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.5.tgz#a51e6e2700d82b5b7ccd7a9f3bd45d967d95afc0" + integrity sha512-AievYMN6WLLHwBeCTv4aRKG+w3ZNyZtkObwgsKk3Q7GNTq8zDRvDbJSBQkb2OPeVCcAKcIXvak9FF/bRNavoww== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/fast-memoize" "1.2.4" - "@formatjs/icu-messageformat-parser" "2.1.4" - tslib "2.4.0" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "1.2.7" + "@formatjs/icu-messageformat-parser" "2.1.14" + tslib "^2.4.0" + +intl-messageformat@^10.1.0: + version "10.2.6" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.2.6.tgz#a51d924d891356eaab02fe308ec3c70c450f31bb" + integrity sha512-qaTfGjXhdgDup5h3O8406GlQjEj0ky3q0cWWu/lL+H6vJA+sY2/8e4l4XrRPbi9vp38Pop0gO5dsrMO0DdEEBw== + dependencies: + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/fast-memoize" "1.2.8" + "@formatjs/icu-messageformat-parser" "2.1.14" + tslib "^2.4.0" intl@1.2.5: version "1.2.5" @@ -7292,20 +8139,37 @@ ip-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" + integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.2" @@ -7339,10 +8203,10 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.4, is-callable@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-ci@^3.0.0: version "3.0.1" @@ -7358,21 +8222,14 @@ is-cidr@^4.0.2: dependencies: cidr-regex "^3.1.1" -is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== +is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" -is-core-module@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" - integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: +is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== @@ -7395,12 +8252,7 @@ is-expression@^4.0.0: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -7435,7 +8287,12 @@ is-interactive@^1.0.0: is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== is-nan@^1.3.2: version "1.3.2" @@ -7445,15 +8302,15 @@ is-nan@^1.3.2: call-bind "^1.0.0" define-properties "^1.1.3" -is-negative-zero@^2.0.1, is-negative-zero@^2.0.2: +is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" @@ -7472,7 +8329,7 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.2: +is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -7480,7 +8337,7 @@ is-path-inside@^3.0.2: is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^2.0.0: version "2.1.0" @@ -7488,9 +8345,9 @@ is-plain-obj@^2.0.0: integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^5.0.0: version "5.0.0" @@ -7510,10 +8367,10 @@ is-regex@^1.0.3, is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-shared-array-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" - integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== is-shared-array-buffer@^1.0.2: version "1.0.2" @@ -7522,11 +8379,21 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -7544,14 +8411,25 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: is-text-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" - integrity sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4= + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: text-extensions "^1.0.0" +is-typed-array@^1.1.10, is-typed-array@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" @@ -7561,15 +8439,28 @@ is-unicode-supported@^0.1.0: is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== -is-weakref@^1.0.1, is-weakref@^1.0.2: +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + is-windows@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -7585,22 +8476,27 @@ is-wsl@^2.1.1: isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== issue-parser@^6.0.0: version "6.0.0" @@ -7618,10 +8514,15 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== +js-sdsl@^4.1.4: + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== + js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" - integrity sha1-Fzb939lyTyijaCrcYjCufk6Weds= + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -7646,7 +8547,7 @@ js-yaml@^4.1.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsesc@^2.5.1: version "2.5.2" @@ -7656,7 +8557,7 @@ jsesc@^2.5.1: jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-better-errors@^1.0.1: version "1.0.2" @@ -7693,14 +8594,14 @@ json-schema@0.4.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== dependencies: - jsonify "~0.0.0" + jsonify "^0.0.1" json-stringify-nice@^1.1.4: version "1.1.4" @@ -7710,33 +8611,19 @@ json-stringify-nice@^1.1.4: json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" +json5@^2.1.2, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" @@ -7747,15 +8634,15 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsprim@^1.2.2: version "1.4.2" @@ -7780,20 +8667,12 @@ jsprim@^2.0.2: jstransformer@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" - integrity sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM= + integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== dependencies: is-promise "^2.0.0" promise "^7.0.1" -"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" - integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== - dependencies: - array-includes "^3.1.3" - object.assign "^4.1.2" - -jsx-ast-utils@^3.3.2: +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2, jsx-ast-utils@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== @@ -7823,15 +8702,15 @@ juice@^8.0.0: slick "^1.12.2" web-resource-inliner "^6.0.1" -just-diff-apply@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-4.0.1.tgz#da89c5a4ccb14aa8873c70e2c3b6695cef45dab5" - integrity sha512-AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ== +just-diff-apply@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== just-diff@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.1.tgz#db8fe1cfeea1156f2374bfb289826dca28e7e390" - integrity sha512-X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" + integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== jwa@^2.0.0: version "2.0.0" @@ -7856,32 +8735,44 @@ kind-of@^6.0.3: integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== kuler@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== -language-subtag-registry@~0.3.2: - version "0.3.21" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" - integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== +language-subtag-registry@^0.3.20, language-subtag-registry@~0.3.2: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== -language-tags@^1.0.5: +language-tags@=1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" - integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ== dependencies: language-subtag-registry "~0.3.2" +language-tags@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.7.tgz#41cc248730f3f12a452c2e2efe32bc0bbce67967" + integrity sha512-bSytju1/657hFjgUzPAPqszxH62ouE8nQFoFaVlIQfne4wO/wXC9A4+m8jYve7YBBvi59eq0SUpcshvG8h5Usw== + dependencies: + language-subtag-registry "^0.3.20" + lazy-ass@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== +leac@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/leac/-/leac-0.6.0.tgz#dcf136e382e666bd2475f44a1096061b70dc0912" + integrity sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg== + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -7895,139 +8786,135 @@ libbase64@1.2.1: resolved "https://registry.yarnpkg.com/libbase64/-/libbase64-1.2.1.tgz#fb93bf4cb6d730f29b92155b6408d1bd2176a8c8" integrity sha512-l+nePcPbIG1fNlqMzrh68MLkX/gTxk/+vdvAb388Ssi7UuUN31MI44w4Yf33mM3Cm4xDfw48mdf3rkdHszLNew== -libmime@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.0.0.tgz#4759c76eb219985c5d4057b3a9359922194d9ff7" - integrity sha512-2Bm96d5ktnE217Ib1FldvUaPAaOst6GtZrsxJCwnJgi9lnsoAKIHyU0sae8rNx6DNYbjdqqh8lv5/b9poD8qOg== +libmime@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/libmime/-/libmime-5.2.0.tgz#c4ed5cbd2d9fdd27534543a68bb8d17c658d51d8" + integrity sha512-X2U5Wx0YmK0rXFbk67ASMeqYIkZ6E5vY7pNWRKtnNzqjvdYYG8xtPDpCnuUEnPU9vlgNev+JoSrcaKSUaNvfsw== dependencies: - encoding-japanese "1.0.30" - iconv-lite "0.6.2" + encoding-japanese "2.0.0" + iconv-lite "0.6.3" libbase64 "1.2.1" - libqp "1.1.0" + libqp "2.0.1" -libnpmaccess@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.1.tgz#76a67a84590be2143d8d05ee1ca3d3f332e2a9bb" - integrity sha512-IMQEFBpiBOODmON0XXNuDx5aAGw2EE1PuDsWOpZzFrlTCNDkINGDarGGRyunOQFapNjZd18UeApZjEJosLaXyQ== +libnpmaccess@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b" + integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag== dependencies: aproba "^2.0.0" minipass "^3.1.1" - npm-package-arg "^9.0.0" + npm-package-arg "^9.0.1" npm-registry-fetch "^13.0.0" -libnpmdiff@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.1.tgz#929f1ae42739d4d9722ee6159f54778f4dd17faf" - integrity sha512-qZtpjH9R0RgWar3BfwkOWBIRsbtfNqcSAFWED0PzWIKp2d2qAEt4adGDpmnd4CKxujyqPrVHcqER3OqbqjqqFA== +libnpmdiff@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0" + integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw== dependencies: - "@npmcli/disparity-colors" "^1.0.1" + "@npmcli/disparity-colors" "^2.0.0" "@npmcli/installed-package-contents" "^1.0.7" binary-extensions "^2.2.0" - diff "^5.0.0" - minimatch "^3.0.4" - npm-package-arg "^9.0.0" - pacote "^13.0.2" + diff "^5.1.0" + minimatch "^5.0.1" + npm-package-arg "^9.0.1" + pacote "^13.6.1" tar "^6.1.0" -libnpmexec@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.1.tgz#02755c03fd2566ed9d8857dfebf5183d0967a982" - integrity sha512-hax7tnZwx0RVoo4Ds0X9aItzGAibbbiOcxXox1OSCOOFeM56rRsCJh/Izog8/8X8/6kMaybWS5reDIC0oPxX7g== +libnpmexec@^4.0.14: + version "4.0.14" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.14.tgz#9ad44232434b374e477eb2c2e4548baaf698f773" + integrity sha512-dwmzv2K29SdoAHBOa7QR6CfQbFG/PiZDRF6HZrlI6C4DLt2hNgOHTFaUGOpqE2C+YGu0ZwYTDywxRe0eOnf0ZA== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.3" "@npmcli/ci-detect" "^2.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/fs" "^2.1.1" + "@npmcli/run-script" "^4.2.0" chalk "^4.1.0" mkdirp-infer-owner "^2.0.0" - npm-package-arg "^9.0.0" - npmlog "^6.0.1" - pacote "^13.0.2" + npm-package-arg "^9.0.1" + npmlog "^6.0.2" + pacote "^13.6.1" proc-log "^2.0.0" read "^1.0.7" read-package-json-fast "^2.0.2" + semver "^7.3.7" walk-up-path "^1.0.0" -libnpmfund@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.1.tgz#18dcf25c7d4d28dca73fa73ef5bcd3f7e8aaef1a" - integrity sha512-VXtKDWCfgyNgY9ioAx0/KmI4dQwCt4kkOEjfMa1ygTXMQisj3HvWa3ppMtrwp/LSE6VIGSaniRI/8YNomcwebA== +libnpmfund@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.5.tgz#817f9e2120889beb483d9ba8eda142bb84293e4e" + integrity sha512-KdeRoG/dem8H3PcEU2/0SKi3ip7AWwczgS72y/3PE+PBrz/s/G52FNIA9jeLnBirkLC0sOyQHfeM3b7e24ZM+g== dependencies: - "@npmcli/arborist" "^5.0.0" + "@npmcli/arborist" "^5.6.3" -libnpmhook@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.1.tgz#2f6fab6a5700002fd5681461897cc23ecf835669" - integrity sha512-4kdii7Krt8ii9ZLP/xiU1e4Al2NtnOagVQ3/klL3+ZVBU9DVioMsr+7HB3UGdgohjwTrUSN0XhdeQJdoDjvEdg== +libnpmhook@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87" + integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmorg@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.1.tgz#54c9c48d9b3b1ccb8def3498ee379ea3e1e9633e" - integrity sha512-IVbX21PpGIWK0HEpOGv2KNS89RnwYSAuAtrKX+ka7SC7HZSHfLS7gJ7es+B+YSObV4THmCO8qySbNN8IbOqSSg== +libnpmorg@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311" + integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmpack@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.0.1.tgz#c98111d92e440cd1fa18a0ab6384087df65947e4" - integrity sha512-Ozd/Hz3A+yrE3xhTc/bnoA0lnZb2HfQx0KP0sj6bXHe46hyCsmWCh8xuFXqtnH5FLwAhqI+kvd9HbV6DFACkFw== +libnpmpack@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2" + integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w== dependencies: - "@npmcli/run-script" "^3.0.0" - npm-package-arg "^9.0.0" - pacote "^13.0.2" + "@npmcli/run-script" "^4.1.3" + npm-package-arg "^9.0.1" + pacote "^13.6.1" -libnpmpublish@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.1.tgz#ceace9648558e85958749071a4df5ff384fec32e" - integrity sha512-jcDlQhUBmp1cWStWIOS0Zwd1jm8/XmyBw3zstwNhFFTwrKd2GBcw1/8Vz9OPcLKEUrS6Tzv9b/CV/v5uBnUYlg== +libnpmpublish@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1" + integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg== dependencies: - normalize-package-data "^3.0.2" - npm-package-arg "^9.0.0" + normalize-package-data "^4.0.0" + npm-package-arg "^9.0.1" npm-registry-fetch "^13.0.0" - semver "^7.1.3" - ssri "^8.0.1" + semver "^7.3.7" + ssri "^9.0.0" -libnpmsearch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.1.tgz#9b7f0f651e95e1419e40a4bb90e944650549b7de" - integrity sha512-O//WlHTQ/croL1oA+4oG1RQvS1O+Vu9oMQbXg78YGq1o5d37Ft11HeGi1hvHVCHTqighqRBIRm+s6RzTDlVAiQ== +libnpmsearch@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81" + integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg== dependencies: npm-registry-fetch "^13.0.0" -libnpmteam@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.1.tgz#0fb53142ffe4e84bcba94acb4a78867333925592" - integrity sha512-zM4dCkfHaLWGv5WL2p4XlzIr0GuwXEnu4DOH1dlvuwyH0J95y0wzjEXrlXrlfKrzNtTmuCCqzOs4SqC/kgA7Qg== +libnpmteam@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef" + integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q== dependencies: aproba "^2.0.0" npm-registry-fetch "^13.0.0" -libnpmversion@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.1.tgz#378ef2b092a4a633772b1e66620ce3c431dc3697" - integrity sha512-ZxOVWmMX+RBkOeJSiNPdhMqRaAOJXf3EDfvC6Mr90+NaM+gKptiw/NJBT3jKfZKbLn/wuC0Ey/sc4YNLoBk0Qw== +libnpmversion@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d" + integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA== dependencies: "@npmcli/git" "^3.0.0" - "@npmcli/run-script" "^3.0.0" + "@npmcli/run-script" "^4.1.3" json-parse-even-better-errors "^2.3.1" proc-log "^2.0.0" - semver "^7.3.5" - stringify-package "^1.0.1" + semver "^7.3.7" -libqp@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" - integrity sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g= +libqp@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/libqp/-/libqp-2.0.1.tgz#b8fed76cc1ea6c9ceff8888169e4e0de70cd5cf2" + integrity sha512-Ka0eC5LkF3IPNQHJmYBWljJsw0UvM6j+QdKRbWyCdTmYwvIDE6a7bCm0UkTAL/K+3KXK5qXT/ClcInU01OpdLg== -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lilconfig@^2.0.5, lilconfig@^2.0.6: +lilconfig@2.0.6, lilconfig@^2.0.5, lilconfig@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== @@ -8035,7 +8922,7 @@ lilconfig@^2.0.5, lilconfig@^2.0.6: line-height@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/line-height/-/line-height-0.3.1.tgz#4b1205edde182872a5efa3c8f620b3187a9c54c9" - integrity sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk= + integrity sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w== dependencies: computed-style "~0.1.3" @@ -8044,32 +8931,31 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== +linkify-it@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-4.0.1.tgz#01f1d5e508190d06669982ba31a7d9f56a5751ec" + integrity sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw== dependencies: uc.micro "^1.0.1" -lint-staged@12.4.3: - version "12.4.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.4.3.tgz#914fa468458364e14cc952145db552d87c8847b6" - integrity sha512-eH6SKOmdm/ZwCRMTZAmM3q3dPkpq6vco/BfrOw8iGun4Xs/thYegPD/MLIwKO+iPkzibkLJuQcRhRLXKvaKreg== +lint-staged@13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" + integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.16" - commander "^9.3.0" + colorette "^2.0.19" + commander "^9.4.1" debug "^4.3.4" - execa "^5.1.1" - lilconfig "2.0.5" - listr2 "^4.0.5" + execa "^6.1.0" + lilconfig "2.0.6" + listr2 "^5.0.5" micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" - pidtree "^0.5.0" + pidtree "^0.6.0" string-argv "^0.3.1" - supports-color "^9.2.2" - yaml "^1.10.2" + yaml "^2.1.3" listr2@^3.8.3: version "3.14.0" @@ -8085,24 +8971,24 @@ listr2@^3.8.3: through "^2.3.8" wrap-ansi "^7.0.0" -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" - integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== +listr2@^5.0.5: + version "5.0.7" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.7.tgz#de69ccc4caf6bea7da03c74f7a2ffecf3904bd53" + integrity sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw== dependencies: cli-truncate "^2.1.0" - colorette "^2.0.16" + colorette "^2.0.19" log-update "^4.0.0" p-map "^4.0.0" rfdc "^1.3.0" - rxjs "^7.5.5" + rxjs "^7.8.0" through "^2.3.8" wrap-ansi "^7.0.0" load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -8122,7 +9008,7 @@ load-json-file@^6.2.0: locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" @@ -8146,60 +9032,75 @@ lodash-es@^4.17.21: resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.capitalize@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - integrity sha1-+CbJtOKoUR2E46yinbBeGk87cqk= + integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== lodash.castarray@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" - integrity sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= + integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" - integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" - integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.isstring@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== lodash.map@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + integrity sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== lodash.merge@^4.6.2: version "4.6.2" @@ -8219,24 +9120,39 @@ lodash.once@^4.1.1: lodash.pick@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + +lodash.snakecase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== + +lodash.startcase@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= + integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== + +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== lodash.zipobject@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/lodash.zipobject/-/lodash.zipobject-4.1.3.tgz#b399f5aba8ff62a746f6979bf20b214f964dbef8" - integrity sha1-s5n1q6j/YqdG9peb8gshT5ZNvvg= + integrity sha512-A9SzX4hMKWS25MyalwcOnNoplyHbkNVsjidhTp8ru0Sj23wY9GWBKS8gAIGDSAqeWjIjvE4KBEl24XXAs+v4wQ== -lodash@4.17.21, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: +lodash@4.17.21, lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -8260,9 +9176,9 @@ log-update@^4.0.0: wrap-ansi "^6.2.0" logform@^2.3.2, logform@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.0.tgz#131651715a17d50f09c2a2c1a524ff1a4164bcfe" - integrity sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw== + version "2.4.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== dependencies: "@colors/colors" "1.5.0" fecha "^4.2.0" @@ -8273,12 +9189,12 @@ logform@^2.3.2, logform@^2.4.0: long-timeout@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/long-timeout/-/long-timeout-0.1.1.tgz#9721d788b47e0bcb5a24c2e2bee1a0da55dab514" - integrity sha1-lyHXiLR+C8taJMLivuGg2lXatRQ= + integrity sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w== longest@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-2.0.1.tgz#781e183296aa94f6d4d916dc335d0d17aefa23f8" - integrity sha1-eB4YMpaqlPbU2RbcM10NF676I/g= + integrity sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" @@ -8287,6 +9203,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -8294,39 +9217,39 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.3.1, lru-cache@^7.4.1: - version "7.4.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.4.4.tgz#a3dabc394ec07e2285af52fd24d0d74b3ac71c29" - integrity sha512-2XbUJmlpIbmc9JvNNmtLzHlF31srxoDxuiQiwBHic7RZyHyltbTdzoO6maRqpdEhOOG5GD80EXvzAU0wR15ccg== +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.14.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea" + integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA== luxon@^1.26.0: - version "1.28.0" - resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.0.tgz#e7f96daad3938c06a62de0fb027115d251251fbf" - integrity sha512-TfTiyvZhwBYM/7QdAVDh+7dBTBA29v4ik0Ce9zda3Mnf8on1S5KJI8P2jKFZ8+5C0jhmr0KwJEO/Wdpm0VeWJQ== + version "1.28.1" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-1.28.1.tgz#528cdf3624a54506d710290a2341aa8e6e6c61b0" + integrity sha512-gYHAa180mKrNIUJCbwpmD0aTu9kV0dREDrwNnuyFAsO1Wt0EVYSZelPnJlbj9HplzXX/YWXHFTL45kvZ53M0pw== -mailparser@^3.3.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-3.4.0.tgz#249869bc5a41af9e0eabbf005197789442fbac9e" - integrity sha512-u2pfpLg+xr7m2FKDl+ohQhy2gMok1QZ+S9E5umS9ez5DSJWttrqSmBGswyj9F68pZMVTwbhLpBt7Kd04q/W4Vw== +mailparser@^3.5.0: + version "3.6.3" + resolved "https://registry.yarnpkg.com/mailparser/-/mailparser-3.6.3.tgz#7edcfd9af7931e8a724e97880756477a9ea80f88" + integrity sha512-Yi6poKSsZsmjEcUexv3H4w4+TIeyN9u3+TCdC43VK7fe4rUOGDJ3wL4kMhNLiTOScCA1Rpzldv1hcf6g1MLtZQ== dependencies: - encoding-japanese "1.0.30" + encoding-japanese "2.0.0" he "1.2.0" - html-to-text "8.0.0" + html-to-text "9.0.3" iconv-lite "0.6.3" - libmime "5.0.0" - linkify-it "3.0.3" - mailsplit "5.3.1" - nodemailer "6.7.0" - tlds "1.224.0" + libmime "5.2.0" + linkify-it "4.0.1" + mailsplit "5.4.0" + nodemailer "6.8.0" + tlds "1.236.0" -mailsplit@5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-5.3.1.tgz#dd6d5c20a7b8a767fe9c9649dfcb26ee04f84c36" - integrity sha512-o6R6HCzqWYmI2/IYlB+v2IMPgYqC2EynmagZQICAhR7zAq0CO6fPcsO6CrYmVuYT+SSwvLAEZR5WniohBELcAA== +mailsplit@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/mailsplit/-/mailsplit-5.4.0.tgz#9f4692fadd9013e9ce632147d996931d2abac6ba" + integrity sha512-wnYxX5D5qymGIPYLwnp6h8n1+6P6vz/MJn5AzGjZ8pwICWssL+CCQjWBIToOVHASmATot4ktvlLo6CyLfOXWYA== dependencies: libbase64 "1.2.1" - libmime "5.0.0" - libqp "1.1.0" + libmime "5.2.0" + libqp "2.0.1" make-dir@^2.1.0: version "2.1.0" @@ -8348,27 +9271,27 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.5: - version "10.0.5" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.0.5.tgz#006e0c5579224832c732c35b7bcc43c8602da775" - integrity sha512-0JQ0daMRDFEv14DelmcFlprdhSDNG7WEgInTjBeWYWZ78W0jfDqygZdPLhcrQ4s/G8skNhBrS4fiF6xA+YlFjQ== +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== dependencies: agentkeepalive "^4.2.1" - cacache "^15.3.0" + cacache "^16.1.0" http-cache-semantics "^4.1.0" http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" is-lambda "^1.0.1" - lru-cache "^7.4.1" + lru-cache "^7.7.1" minipass "^3.1.6" minipass-collect "^1.0.2" - minipass-fetch "^2.0.2" + minipass-fetch "^2.0.3" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" negotiator "^0.6.3" promise-retry "^2.0.1" - socks-proxy-agent "^6.1.1" - ssri "^8.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" make-fetch-happen@^9.1.0: version "9.1.0" @@ -8393,14 +9316,14 @@ make-fetch-happen@^9.1.0: ssri "^8.0.0" make-plural@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.1.0.tgz#8a0381ff8c9be4f074e0acdc42ec97639c2344f9" - integrity sha512-PKkwVlAxYVo98NrbclaQIT4F5Oy+X58PZM5r2IwUSCe3syya6PXkIRCn2XCdz7p58Scgpp50PBeHmepXVDG3hg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-7.2.0.tgz#93174b1419672a48a2340db6c1d3fb217530c684" + integrity sha512-WkdI+iaWaBCFM2wUXwos8Z7spg5Dt64Xe/VI6NpRaly21cDtD76N6S97K//UtzV0dHOiXX+E90TnszdXHG0aMg== map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: version "4.3.0" @@ -8420,9 +9343,9 @@ marked-terminal@^5.0.0: supports-hyperlinks "^2.2.0" marked@^4.0.10: - version "4.0.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" - integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== + version "4.2.12" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" + integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== math-interval-parser@^2.0.1: version "2.0.1" @@ -8437,13 +9360,13 @@ md5-hex@^3.0.1: blueimp-md5 "^2.10.0" mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-from-markdown@^1.0.0: version "1.2.0" @@ -8464,51 +9387,52 @@ mdast-util-from-markdown@^1.0.0: uvu "^0.5.0" mdast-util-to-hast@^12.1.0: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== + version "12.2.6" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.6.tgz#fb90830f427de8d2a7518753e560435531b97ee6" + integrity sha512-Kfo1JNUsi6r6CI7ZOJ6yt/IEKMjMK4nNjQ8C+yc8YBbIlDSp9dmj0zY90ryiu6Vy4CVGv0zi1H4ZoIaYVV8cwA== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" - "@types/mdurl" "^1.0.0" mdast-util-definitions "^5.0.0" - mdurl "^1.0.0" - micromark-util-sanitize-uri "^1.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" unist-util-visit "^4.0.0" mdast-util-to-string@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" - integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== + version "3.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz#db859050d79d48cf9896d294de06f3ede7474d16" + integrity sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA== + dependencies: + "@types/mdast" "^3.0.0" mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== -mdurl@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== media-typer@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== -memoize-one@^5.0.0, memoize-one@^5.1.1: +memoize-one@^5.1.1: version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== + mensch@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/mensch/-/mensch-0.3.4.tgz#770f91b46cb16ea5b204ee735768c3f0c491fecd" @@ -8551,7 +9475,7 @@ meow@^8.0.0: merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== merge-stream@^2.0.0: version "2.0.0" @@ -8571,7 +9495,7 @@ merge@^2.1.1: methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^1.0.1: version "1.0.6" @@ -8698,9 +9622,9 @@ micromark-util-encode@^1.0.0: integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -8716,10 +9640,10 @@ micromark-util-resolve-all@^1.0.0: dependencies: micromark-util-types "^1.0.0" -micromark-util-sanitize-uri@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz#27dc875397cd15102274c6c6da5585d34d4f12b2" - integrity sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg== +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz#f12e07a85106b902645e0364feb07cf253a85aee" + integrity sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg== dependencies: micromark-util-character "^1.0.0" micromark-util-encode "^1.0.0" @@ -8746,9 +9670,9 @@ micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w== micromark@^3.0.0: - version "3.0.10" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.10.tgz#1eac156f0399d42736458a14b0ca2d86190b457c" - integrity sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.1.0.tgz#eeba0fe0ac1c9aaef675157b52c166f125e89f62" + integrity sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -8768,15 +9692,7 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -micromatch@^4.0.5: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -8811,16 +9727,16 @@ mime@^3.0.0: resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -8836,17 +9752,17 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== +minimatch@^5.0.1, minimatch@^5.1.0: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" @@ -8859,16 +9775,16 @@ minimist-options@4.1.0, minimist-options@^4.0.2: is-plain-obj "^1.1.0" kind-of "^6.0.3" -minimist@1.2.5, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@1.2.6, minimist@^1.2.6: +minimist@1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== +minimist@1.2.7, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -8887,10 +9803,10 @@ minipass-fetch@^1.3.2: optionalDependencies: encoding "^0.1.12" -minipass-fetch@^2.0.1, minipass-fetch@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.0.3.tgz#688bbd0c2b019642778dc808b6950dd908d192b3" - integrity sha512-VA+eiiUtaIvpQJXISwE3OiMvQwAWrgKb97F0aXlCS1Ahikr8fEQq8m3Hf7Kv9KT3nokuHigJKsDMB6atU04olQ== +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: minipass "^3.1.6" minipass-sized "^1.0.3" @@ -8928,9 +9844,16 @@ minipass-sized@^1.0.3: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== dependencies: yallist "^4.0.0" @@ -8952,11 +9875,11 @@ mkdirp-infer-owner@^2.0.0: mkdirp "^1.0.3" mkdirp@^0.5.4: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== dependencies: - minimist "^1.2.5" + minimist "^1.2.6" mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" @@ -8969,14 +9892,14 @@ modify-values@^1.0.0: integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.29.1: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== moo@^0.5.0, moo@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== + version "0.5.2" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" + integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== mri@^1.1.0: version "1.2.0" @@ -8986,7 +9909,7 @@ mri@^1.1.0: ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -9025,27 +9948,22 @@ multimatch@5: murmurhash3js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" - integrity sha1-Ppg+W0fCoG9DpxMXTn5DXKBEuZg= + integrity sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow== mustache@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - mute-stream@0.0.8, mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== mylas@^2.1.9: - version "2.1.11" - resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.11.tgz#1827462533977bed1c4251317aa84254e3ca94c7" - integrity sha512-krnPUl3n9/k52FGCltWMYcqp9SttxjRJEy0sWLk+g7mIa7wnZrmNSZ40Acx7ghzRSOsxt2rEqMbaq4jWlnTDKg== + version "2.1.13" + resolved "https://registry.yarnpkg.com/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4" + integrity sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg== mz@^2.4.0: version "2.7.0" @@ -9066,10 +9984,15 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== nearley@^2.20.1: version "2.20.1" @@ -9094,44 +10017,49 @@ neo-async@^2.6.0: nerf-dart@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" - integrity sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo= + integrity sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g== -next@12.2.5: - version "12.2.5" - resolved "https://registry.yarnpkg.com/next/-/next-12.2.5.tgz#14fb5975e8841fad09553b8ef41fe1393602b717" - integrity sha512-tBdjqX5XC/oFs/6gxrZhjmiq90YWizUYU6qOWAfat7zJwrwapJ+BYgX2PmiacunXMaRpeVT4vz5MSPSLgNkrpA== +next@12.3.4: + version "12.3.4" + resolved "https://registry.yarnpkg.com/next/-/next-12.3.4.tgz#f2780a6ebbf367e071ce67e24bd8a6e05de2fcb1" + integrity sha512-VcyMJUtLZBGzLKo3oMxrEF0stxh8HwuW976pAzlHhI3t8qJ4SROjCrSh1T24bhrbjw55wfZXAbXPGwPt5FLRfQ== dependencies: - "@next/env" "12.2.5" - "@swc/helpers" "0.4.3" - caniuse-lite "^1.0.30001332" + "@next/env" "12.3.4" + "@swc/helpers" "0.4.11" + caniuse-lite "^1.0.30001406" postcss "8.4.14" - styled-jsx "5.0.4" + styled-jsx "5.0.7" use-sync-external-store "1.2.0" optionalDependencies: - "@next/swc-android-arm-eabi" "12.2.5" - "@next/swc-android-arm64" "12.2.5" - "@next/swc-darwin-arm64" "12.2.5" - "@next/swc-darwin-x64" "12.2.5" - "@next/swc-freebsd-x64" "12.2.5" - "@next/swc-linux-arm-gnueabihf" "12.2.5" - "@next/swc-linux-arm64-gnu" "12.2.5" - "@next/swc-linux-arm64-musl" "12.2.5" - "@next/swc-linux-x64-gnu" "12.2.5" - "@next/swc-linux-x64-musl" "12.2.5" - "@next/swc-win32-arm64-msvc" "12.2.5" - "@next/swc-win32-ia32-msvc" "12.2.5" - "@next/swc-win32-x64-msvc" "12.2.5" + "@next/swc-android-arm-eabi" "12.3.4" + "@next/swc-android-arm64" "12.3.4" + "@next/swc-darwin-arm64" "12.3.4" + "@next/swc-darwin-x64" "12.3.4" + "@next/swc-freebsd-x64" "12.3.4" + "@next/swc-linux-arm-gnueabihf" "12.3.4" + "@next/swc-linux-arm64-gnu" "12.3.4" + "@next/swc-linux-arm64-musl" "12.3.4" + "@next/swc-linux-x64-gnu" "12.3.4" + "@next/swc-linux-x64-musl" "12.3.4" + "@next/swc-win32-arm64-msvc" "12.3.4" + "@next/swc-win32-ia32-msvc" "12.3.4" + "@next/swc-win32-x64-msvc" "12.3.4" -node-addon-api@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-addon-api@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-cache@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" @@ -9146,10 +10074,10 @@ node-emoji@^1.11.0: dependencies: lodash "^4.17.21" -node-fetch@^2.6.0, node-fetch@^2.6.5, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== +node-fetch@^2.6.0, node-fetch@^2.6.7: + version "2.6.8" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.8.tgz#a68d30b162bc1d8fd71a367e81b997e1f4d4937e" + integrity sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg== dependencies: whatwg-url "^5.0.0" @@ -9169,47 +10097,26 @@ node-gyp@8.4.1, node-gyp@8.x: tar "^6.1.2" which "^2.0.2" -node-gyp@9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.1.0.tgz#c8d8e590678ea1f7b8097511dedf41fc126648f8" - integrity sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g== +node-gyp@9.3.1, node-gyp@^9.0.0, node-gyp@^9.1.0: + version "9.3.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== dependencies: env-paths "^2.2.0" glob "^7.1.4" graceful-fs "^4.2.6" make-fetch-happen "^10.0.3" - nopt "^5.0.0" + nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" semver "^7.3.5" tar "^6.1.2" which "^2.0.2" -node-gyp@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" - integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== - node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== node-schedule@2.1.0: version "2.1.0" @@ -9220,30 +10127,25 @@ node-schedule@2.1.0: long-timeout "0.1.1" sorted-array-functions "^1.3.0" -nodemailer@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.0.tgz#86614722c4e0c33d1b5b02aecb90d6d629932b0d" - integrity sha512-AtiTVUFHLiiDnMQ43zi0YgkzHOEWUkhDgPlBXrsDzJiJvB29Alo4OKxHQ0ugF3gRqRQIneCLtZU3yiUo7pItZw== +nodemailer@6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.8.0.tgz#804bcc5256ee5523bc914506ee59f8de8f0b1cd5" + integrity sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ== -nodemailer@6.7.8: - version "6.7.8" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.8.tgz#9f1af9911314960c0b889079e1754e8d9e3f740a" - integrity sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g== +nodemailer@^6.7.2, nodemailer@^6.7.7: + version "6.9.0" + resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.9.0.tgz#a17488ff470ff9edf1bb31d9ec23079bc94f7dd3" + integrity sha512-jFaCEGTeT3E/m/5R2MHWiyQH3pSARECRUDM+1hokOYc3lQAAG7ASuy+2jIsYVf+RVa9zePopSQwKNVFH8DKUpA== -nodemailer@^6.6.3, nodemailer@^6.7.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz#44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0" - integrity sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q== - -nodemon@2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.19.tgz#cac175f74b9cb8b57e770d47841995eebe4488bd" - integrity sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A== +nodemon@2.0.20: + version "2.0.20" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701" + integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw== dependencies: chokidar "^3.5.2" debug "^3.2.7" ignore-by-default "^1.0.1" - minimatch "^3.0.4" + minimatch "^3.1.2" pstree.remy "^1.1.8" semver "^5.7.1" simple-update-notifier "^1.0.7" @@ -9254,7 +10156,7 @@ nodemon@2.0.19: noms@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" - integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== dependencies: inherits "^2.0.1" readable-stream "~1.0.31" @@ -9266,10 +10168,17 @@ nopt@^5.0.0: dependencies: abbrev "1" +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= + integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== dependencies: abbrev "1" @@ -9283,7 +10192,7 @@ normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: +normalize-package-data@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== @@ -9293,6 +10202,16 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.2: semver "^7.3.4" validate-npm-package-license "^3.0.1" +normalize-package-data@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c" + integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg== + dependencies: + hosted-git-info "^5.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -9301,17 +10220,17 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-audit-report@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-2.1.5.tgz#a5b8850abe2e8452fce976c8960dd432981737b5" - integrity sha512-YB8qOoEmBhUH1UJgh1xFAv7Jg1d+xoNhsDYiFQlEFThEBui0W1vIz2ZK6FVg4WZjwEdl7uBQlm1jy3MUfyHeEw== +npm-audit-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6" + integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw== dependencies: chalk "^4.0.0" @@ -9322,68 +10241,88 @@ npm-bundled@^1.1.1: dependencies: npm-normalize-package-bin "^1.0.1" -npm-install-checks@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" - integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== +npm-bundled@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4" + integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw== + dependencies: + npm-normalize-package-bin "^2.0.0" + +npm-install-checks@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234" + integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA== dependencies: semver "^7.1.1" -npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: +npm-normalize-package-bin@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.0.0.tgz#955a5e4735298fc23f71cb72da3574daa134340c" - integrity sha512-yhzXxeor+Zfhe5MGwPdDumz6HtNlj2pMekWB95IX3CC6uDNgde0oPKHDCLDPoJqQfd0HqAWt+y4Hs5m7CK1+9Q== +npm-normalize-package-bin@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== + +npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0: + version "9.1.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc" + integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg== dependencies: - hosted-git-info "^4.1.0" + hosted-git-info "^5.0.0" + proc-log "^2.0.1" semver "^7.3.5" - validate-npm-package-name "^3.0.0" + validate-npm-package-name "^4.0.0" -npm-packlist@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" - integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== +npm-packlist@^5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b" + integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg== dependencies: - glob "^7.1.6" - ignore-walk "^4.0.1" - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^2.0.0" + npm-normalize-package-bin "^2.0.0" -npm-pick-manifest@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.0.tgz#e3b18b09678a47e894f90941bef8204ea5d96c3b" - integrity sha512-njM1AcdioFaKd0JSGtLO09YA1WRwctjGQJbnHGmKS+u+uwP8oFvtZtOQWPYdxrnY5eJud3wn8OpH4sEIx6+GEQ== +npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84" + integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw== dependencies: - npm-install-checks "^4.0.0" - npm-normalize-package-bin "^1.0.1" + npm-install-checks "^5.0.0" + npm-normalize-package-bin "^2.0.0" npm-package-arg "^9.0.0" semver "^7.3.5" -npm-profile@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.0.2.tgz#b2da9887d16d1f0d1ce8a9c3b37a48454a372919" - integrity sha512-0Fq8l+A10YXnnS63E3HThWjOb7+19Wsh1nOVutC2fKuowar8t/5PpINsbcm5xQ2dA28uAu+wjFfUyiEVSMz4Jw== +npm-profile@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.2.1.tgz#975c31ec75a6ae029ab5b8820ffdcbae3a1e3d5e" + integrity sha512-Tlu13duByHyDd4Xy0PgroxzxnBYWbGGL5aZifNp8cx2DxUrHSoETXtPKg38aRPsBWMRfDtvcvVfJNasj7oImQQ== dependencies: - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^13.0.1" proc-log "^2.0.0" -npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1: - version "13.0.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.0.1.tgz#ceecbaab9f1d0d911e1c01a5be2be96d45e472f5" - integrity sha512-Ak+LXVtSrCLOdscFW/apUw67OPNph8waHsPKM9UOJosL7i59EF5XoSWQMEsXEOeifM9Bb4/2+WrQC4t/pd8DGg== +npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.1: + version "13.3.1" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e" + integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw== dependencies: - make-fetch-happen "^10.0.3" + make-fetch-happen "^10.0.6" minipass "^3.1.6" - minipass-fetch "^2.0.1" + minipass-fetch "^2.0.3" minipass-json-stream "^1.0.1" minizlib "^2.1.2" - npm-package-arg "^9.0.0" + npm-package-arg "^9.0.1" proc-log "^2.0.0" +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== + dependencies: + path-key "^2.0.0" + npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -9391,85 +10330,94 @@ npm-run-path@^4.0.0, npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + npm-user-validate@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== npm@^8.3.0: - version "8.5.4" - resolved "https://registry.yarnpkg.com/npm/-/npm-8.5.4.tgz#fd25b83b0a757d5b1c067be125c1a1cfb3c319c9" - integrity sha512-VnGLT4t88cUE78lLw5kxBwtLn2/Sx6O7Uw9dYwmq6AnF/taWHyMYQgDzUEsLhaXAVH7prG+sjG+MvxlHdIasgg== + version "8.19.3" + resolved "https://registry.yarnpkg.com/npm/-/npm-8.19.3.tgz#adb51bf8886d519dd4df162726d0ad157ecfa272" + integrity sha512-0QjmyPtDxSyMWWD8I91QGbrgx9KzbV6C9FK1liEb/K0zppiZkr5KxXc990G+LzPwBHDfRjUBlO9T1qZ08vl9mA== dependencies: "@isaacs/string-locale-compare" "^1.1.0" - "@npmcli/arborist" "^5.0.2" + "@npmcli/arborist" "^5.6.3" "@npmcli/ci-detect" "^2.0.0" - "@npmcli/config" "^4.0.1" - "@npmcli/map-workspaces" "^2.0.2" - "@npmcli/package-json" "^1.0.1" - "@npmcli/run-script" "^3.0.1" + "@npmcli/config" "^4.2.1" + "@npmcli/fs" "^2.1.0" + "@npmcli/map-workspaces" "^2.0.3" + "@npmcli/package-json" "^2.0.0" + "@npmcli/run-script" "^4.2.1" abbrev "~1.1.1" - ansicolors "~0.3.2" - ansistyles "~0.1.3" archy "~1.0.0" - cacache "^15.3.0" + cacache "^16.1.3" chalk "^4.1.2" chownr "^2.0.0" cli-columns "^4.0.0" - cli-table3 "^0.6.1" + cli-table3 "^0.6.2" columnify "^1.6.0" fastest-levenshtein "^1.0.12" - glob "^7.2.0" - graceful-fs "^4.2.9" - hosted-git-info "^4.1.0" - ini "^2.0.0" - init-package-json "^3.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + graceful-fs "^4.2.10" + hosted-git-info "^5.2.1" + ini "^3.0.1" + init-package-json "^3.0.2" is-cidr "^4.0.2" json-parse-even-better-errors "^2.3.1" - libnpmaccess "^6.0.1" - libnpmdiff "^4.0.1" - libnpmexec "^4.0.1" - libnpmfund "^3.0.1" - libnpmhook "^8.0.1" - libnpmorg "^4.0.1" - libnpmpack "^4.0.1" - libnpmpublish "^6.0.1" - libnpmsearch "^5.0.1" - libnpmteam "^4.0.1" - libnpmversion "^3.0.1" - make-fetch-happen "^10.0.5" + libnpmaccess "^6.0.4" + libnpmdiff "^4.0.5" + libnpmexec "^4.0.14" + libnpmfund "^3.0.5" + libnpmhook "^8.0.4" + libnpmorg "^4.0.4" + libnpmpack "^4.1.3" + libnpmpublish "^6.0.5" + libnpmsearch "^5.0.4" + libnpmteam "^4.0.4" + libnpmversion "^3.0.7" + make-fetch-happen "^10.2.0" + minimatch "^5.1.0" minipass "^3.1.6" minipass-pipeline "^1.2.4" mkdirp "^1.0.4" mkdirp-infer-owner "^2.0.0" ms "^2.1.2" - node-gyp "^9.0.0" - nopt "^5.0.0" - npm-audit-report "^2.1.5" - npm-install-checks "^4.0.0" - npm-package-arg "^9.0.0" - npm-pick-manifest "^7.0.0" - npm-profile "^6.0.2" - npm-registry-fetch "^13.0.1" + node-gyp "^9.1.0" + nopt "^6.0.0" + npm-audit-report "^3.0.0" + npm-install-checks "^5.0.0" + npm-package-arg "^9.1.0" + npm-pick-manifest "^7.0.2" + npm-profile "^6.2.0" + npm-registry-fetch "^13.3.1" npm-user-validate "^1.0.1" - npmlog "^6.0.1" + npmlog "^6.0.2" opener "^1.5.2" - pacote "^13.0.3" - parse-conflict-json "^2.0.1" - proc-log "^2.0.0" + p-map "^4.0.0" + pacote "^13.6.2" + parse-conflict-json "^2.0.2" + proc-log "^2.0.1" qrcode-terminal "^0.12.0" read "~1.0.7" - read-package-json "^4.1.2" + read-package-json "^5.0.2" read-package-json-fast "^2.0.3" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" - semver "^7.3.5" - ssri "^8.0.1" + semver "^7.3.7" + ssri "^9.0.1" tar "^6.1.11" text-table "~0.2.0" tiny-relative-date "^1.3.0" - treeverse "^1.0.4" - validate-npm-package-name "~3.0.0" + treeverse "^2.0.0" + validate-npm-package-name "^4.0.0" which "^2.0.2" write-file-atomic "^4.0.1" @@ -9483,20 +10431,20 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -npmlog@^6.0.0, npmlog@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" - integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== +npmlog@^6.0.0, npmlog@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== dependencies: are-we-there-yet "^3.0.0" console-control-strings "^1.1.0" - gauge "^4.0.0" + gauge "^4.0.3" set-blocking "^2.0.0" nth-check@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" - integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" @@ -9508,7 +10456,7 @@ oauth-sign@~0.9.0: object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^2.0.1: version "2.2.0" @@ -9520,32 +10468,25 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.11.0, object-inspect@^1.12.0, object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" + integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-inspect@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" -object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.assign@^4.1.3: +object.assign@^4.1.3, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== @@ -9555,40 +10496,40 @@ object.assign@^4.1.3: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" on-finished@2.4.1: version "2.4.1" @@ -9605,7 +10546,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -9616,13 +10557,6 @@ one-time@^1.0.0: dependencies: fn.name "1.x.x" -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -9630,6 +10564,13 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + ono@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/ono/-/ono-7.1.3.tgz#a054e96a388f566a6c4c95e1e92b9b253722d286" @@ -9650,10 +10591,10 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openpgp@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.4.0.tgz#679e7ce1c97994d72545bf5be818de15e5707b52" - integrity sha512-XgQnK8SYy4Ycg9BDvrXTE4foMwME/+1EfGZWZirUU2VPzU1X3xx094fChjbP10+gUJifAcoWTsT2zAbdhFUxyg== +openpgp@5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/openpgp/-/openpgp-5.5.0.tgz#235ae5a49d5fda5cfd1d82c4c42cd91433478c14" + integrity sha512-SpwcJnxrK9Y0HRM6KxSFqkAEOSWEabCH/c8dII/+y2e5f6KvuDG5ZE7JXaPBaVJNE4VUZZeTphxXDoZD0KOHrw== dependencies: asn1.js "^5.0.0" @@ -9687,7 +10628,7 @@ ora@^5.4.1: os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== ospath@^1.2.2: version "1.2.2" @@ -9699,6 +10640,13 @@ p-each-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== +p-event@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + p-filter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" @@ -9706,6 +10654,11 @@ p-filter@^2.0.0: dependencies: p-map "^2.0.0" +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + p-is-promise@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971" @@ -9735,7 +10688,7 @@ p-limit@^3.0.2: p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" @@ -9771,48 +10724,62 @@ p-reduce@^2.0.0: integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== p-retry@^4.0.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" - integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + version "4.6.2" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" + integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: - "@types/retry" "^0.12.0" + "@types/retry" "0.12.0" retry "^0.13.1" +p-timeout@^3.0.0, p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pacote@^13.0.1, pacote@^13.0.2, pacote@^13.0.3: - version "13.0.3" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.0.3.tgz#0b9654c1aa5eb2b9af28aa259f15e556e7187422" - integrity sha512-8thQ06YoO01O1k5rvSpHS/XPJZucw2DPiiT1jI+ys8QaTN6ifAyxfyoABHBa8nIt/4wPdzly4GEPqshctHFoYA== +p-wait-for@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-wait-for/-/p-wait-for-3.2.0.tgz#640429bcabf3b0dd9f492c31539c5718cb6a3f1f" + integrity sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA== + dependencies: + p-timeout "^3.0.0" + +pacote@^13.0.3, pacote@^13.6.1, pacote@^13.6.2: + version "13.6.2" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a" + integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg== dependencies: "@npmcli/git" "^3.0.0" "@npmcli/installed-package-contents" "^1.0.7" - "@npmcli/promise-spawn" "^1.2.0" - "@npmcli/run-script" "^3.0.0" - cacache "^15.3.0" + "@npmcli/promise-spawn" "^3.0.0" + "@npmcli/run-script" "^4.1.0" + cacache "^16.0.0" chownr "^2.0.0" fs-minipass "^2.1.0" infer-owner "^1.0.4" minipass "^3.1.6" mkdirp "^1.0.4" npm-package-arg "^9.0.0" - npm-packlist "^3.0.0" + npm-packlist "^5.1.0" npm-pick-manifest "^7.0.0" - npm-registry-fetch "^13.0.0" + npm-registry-fetch "^13.0.1" proc-log "^2.0.0" promise-retry "^2.0.1" - read-package-json "^4.1.1" + read-package-json "^5.0.0" read-package-json-fast "^2.0.3" rimraf "^3.0.2" - ssri "^8.0.1" + ssri "^9.0.0" tar "^6.1.11" parent-module@^1.0.0: @@ -9822,19 +10789,19 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-conflict-json@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz#76647dd072e6068bcaff20be6ccea68a18e1fb58" - integrity sha512-Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA== +parse-conflict-json@^2.0.1, parse-conflict-json@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== dependencies: json-parse-even-better-errors "^2.3.1" just-diff "^5.0.1" - just-diff-apply "^4.0.1" + just-diff-apply "^5.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" @@ -9852,7 +10819,7 @@ parse-json@^5.0.0: parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + integrity sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== parse5-htmlparser2-tree-adapter@^6.0.0, parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" @@ -9861,6 +10828,14 @@ parse5-htmlparser2-tree-adapter@^6.0.0, parse5-htmlparser2-tree-adapter@^6.0.1: dependencies: parse5 "^6.0.1" +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + parse5@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" @@ -9871,6 +10846,21 @@ parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +parseley@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.11.0.tgz#1ff817c829a02fcc214c9cc0d96b126d772ee814" + integrity sha512-VfcwXlBWgTF+unPcr7yu3HSSA6QUdDaDnrHcytVfj5Z8azAyKBDrYnSIfeSxlrEayndNcLmrXzg+Vxbo6DWRXQ== + dependencies: + leac "^0.6.0" + peberminta "^0.8.0" + parseley@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/parseley/-/parseley-0.7.0.tgz#9949e3a0ed05c5072adb04f013c2810cf49171a8" @@ -9887,7 +10877,7 @@ parseurl@~1.3.3: path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" @@ -9897,14 +10887,24 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -9912,18 +10912,23 @@ path-parse@^1.0.6, path-parse@^1.0.7: path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== path-to-regexp@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38" - integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg== + version "6.2.1" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" + integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +peberminta@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/peberminta/-/peberminta-0.8.0.tgz#acf7b105f3d13c8ac28cad81f2f5fe4698507590" + integrity sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw== + pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" @@ -9932,22 +10937,22 @@ pend@~1.2.0: performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" - integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^2.2.0, pify@^2.3.0: version "2.3.0" @@ -9957,7 +10962,7 @@ pify@^2.2.0, pify@^2.3.0: pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== pify@^4.0.1: version "4.0.1" @@ -9972,7 +10977,7 @@ pify@^5.0.0: pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" - integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= + integrity sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g== dependencies: find-up "^2.0.0" load-json-file "^4.0.0" @@ -9990,7 +10995,7 @@ plex-api-credentials@3.0.1: plex-api-headers@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/plex-api-headers/-/plex-api-headers-1.1.0.tgz#4ce364715d9648cccf2c064583279ef87c12fbf2" - integrity sha1-TONkcV2WSMzPLAZFgyee+HwS+/I= + integrity sha512-Igl37++MSa+4H8LNP3Ene9GU0e1YypmXvFVNvVUwoAx44e74jbUlJXy4Q5rLSBisn0O2lBKdE6VkFIwrDl+UnQ== plex-api@5.3.2: version "5.3.2" @@ -10004,11 +11009,11 @@ plex-api@5.3.2: xml2js "0.4.16" plimit-lit@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.3.0.tgz#46908adbfcfc010e65a5a737652768b0fec21587" - integrity sha512-63qOoSzggsjBHPVbaKeEtsO8oWTeyJxUfVRLkoc59pRkDiCCLvqn2tCgAkfbejrx+V5zJtlG2wqkk/Db6cwlVQ== + version "1.5.0" + resolved "https://registry.yarnpkg.com/plimit-lit/-/plimit-lit-1.5.0.tgz#f66df8a7041de1e965c4f1c0697ab486968a92a5" + integrity sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng== dependencies: - queue-lit "^1.3.0" + queue-lit "^1.5.0" postcss-import@^14.1.0: version "14.1.0" @@ -10034,14 +11039,14 @@ postcss-load-config@^3.1.4: lilconfig "^2.0.5" yaml "^1.10.2" -postcss-nested@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" - integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== +postcss-nested@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" + integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== dependencies: - postcss-selector-parser "^6.0.6" + postcss-selector-parser "^6.0.10" -postcss-selector-parser@^6.0.10: +postcss-selector-parser@6.0.10: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -10049,10 +11054,10 @@ postcss-selector-parser@^6.0.10: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-selector-parser@^6.0.6: - version "6.0.9" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" - integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== +postcss-selector-parser@^6.0.10: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -10071,10 +11076,19 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@8.4.16, postcss@^8.4.14: - version "8.4.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" - integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== +postcss@8.4.20: + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.18: + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -10092,20 +11106,20 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier-plugin-organize-imports@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.1.0.tgz#00420affd69f21926dbf29bf94a152f37e859d5e" - integrity sha512-eufD78FKdkDTyyY9oKxuwEMrfz4/AXrGeyeyjqiRtSBr01DAdGFTq4SgIKvLeqlLkq+ZPJ2H0+BK0e6flRUwJQ== +prettier-plugin-organize-imports@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.1.tgz#7e0e0a18457e0166e740daaff1aed1c08069fcb9" + integrity sha512-bty7C2Ecard5EOXirtzeCAqj4FU4epeuWrQt/Z+sh8UVEpBlBZ3m3KNPz2kFu7KgRTQx/C9o4/TdquPD1jOqjQ== -prettier-plugin-tailwindcss@0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz#ca1071361dc7e2ed5d95a2ee36825ce45f814942" - integrity sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw== +prettier-plugin-tailwindcss@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.2.1.tgz#989b35afd86c550cb671da69891aba4f4a051159" + integrity sha512-aIO8IguumORyRsmT+E7JfJ3A9FEoyhqZR7Au7TBOege3VZkgMvHJMkufeYp4zjnDK2iq4ktkvGMNOQR9T8lisQ== -prettier@2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +prettier@2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== pretty-bytes@^5.6.0: version "5.6.0" @@ -10113,22 +11127,26 @@ pretty-bytes@^5.6.0: integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== preview-email@^3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.5.tgz#09c32ba43c450ead16b309d9e5cb10f90ff45a95" - integrity sha512-q37jdkVw+wic0o/7xYhOTBS4kF0WX3two0OepmR1Fhxp9NTpO3rJTccAjQm95gJx/2Wa/Nv98sr9pXIQ77/foA== + version "3.0.7" + resolved "https://registry.yarnpkg.com/preview-email/-/preview-email-3.0.7.tgz#b43e997294367f9c7437150bbe61a52e6bc7dca4" + integrity sha512-WGko2NiS3d8qoGcC981sXotm7noW/dcv4Cp4wo+X95ek2WwJ4A+aDpw/MzMjMW/johihvmfrfUdUWBbh+HnxCw== dependencies: - dayjs "^1.10.6" - debug "^4.3.2" - mailparser "^3.3.0" - nodemailer "^6.6.3" + ci-info "^3.3.2" + crypto-random-string "3.3.1" + display-notification "2.0.0" + get-port "5.1.1" + mailparser "^3.5.0" + nodemailer "^6.7.7" open "7" + p-event "4.2.0" + p-wait-for "3.2.0" pug "^3.0.2" uuid "^8.3.2" -proc-log@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.0.tgz#25f8cb346a5d08e27f2422b3ca6ba8379bcbf8ba" - integrity sha512-I/35MfCX2H8jBUhKN8JB8nmqvQo/nKdrBodBY7L3RhDSPPyvOHwLYNmPuhwuJq7a7C3vgFKWGQM+ecPStcvOHA== +proc-log@^2.0.0, proc-log@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" + integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== process-nextick-args@~2.0.0: version "2.0.1" @@ -10148,7 +11166,7 @@ promise-call-limit@^1.0.1: promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" @@ -10168,7 +11186,7 @@ promise@^7.0.1: promzard@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" - integrity sha1-JqXW7ox97kyxIggwWs+5O6OCqe4= + integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw== dependencies: read "1" @@ -10187,9 +11205,14 @@ property-expr@^2.0.4: integrity sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA== property-information@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" - integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proxy-addr@~2.0.7: version "2.0.7" @@ -10204,10 +11227,15 @@ proxy-from-env@1.0.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== pstree.remy@^1.1.8: version "1.1.8" @@ -10331,24 +11359,31 @@ pump@^3.0.0: once "^1.3.1" punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== qrcode-terminal@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.10.3, qs@^6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0, qs@^6.10.3: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@~6.10.3: + version "6.10.5" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4" + integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ== dependencies: side-channel "^1.0.4" @@ -10357,10 +11392,10 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -queue-lit@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.3.0.tgz#a29e4cfd0d0e2c6594beb70a4726716a57ffce5b" - integrity sha512-3HpQ7bD2ct56qPithPr5IzH2Oij3WVPcgevCJ+mI9HAfVJKCqQ2yiFYgb4AUkLfsCmmbVDy9luvE97Ztzr5eBg== +queue-lit@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/queue-lit/-/queue-lit-1.5.0.tgz#8197fdafda1edd615c8a0fc14c48353626e5160a" + integrity sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA== queue-microtask@^1.2.2: version "1.2.3" @@ -10380,7 +11415,7 @@ quick-lru@^5.1.1: railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234= + integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== randexp@0.4.6: version "0.4.6" @@ -10393,7 +11428,7 @@ randexp@0.4.6: random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" - integrity sha1-T2ih3Arli9P7lYSMMDJNt11kNgs= + integrity sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ== range-parser@~1.2.1: version "1.2.1" @@ -10439,6 +11474,46 @@ react-animate-height@2.1.2: classnames "^2.2.5" prop-types "^15.6.1" +react-aria@3.22.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/react-aria/-/react-aria-3.22.0.tgz#824dbeac1760240b82359fd60c18bf68769d5815" + integrity sha512-GA+qwnVVTvSirdhB/PsYPwix24vFDlGeK5Lk3zUgB9Q5VHnTfMMJ4+tyu9G38UR0clLQ5SAG1ArNjgzmhexQYg== + dependencies: + "@react-aria/breadcrumbs" "^3.4.1" + "@react-aria/button" "^3.6.4" + "@react-aria/calendar" "^3.0.5" + "@react-aria/checkbox" "^3.7.1" + "@react-aria/combobox" "^3.4.4" + "@react-aria/datepicker" "^3.2.1" + "@react-aria/dialog" "^3.4.2" + "@react-aria/dnd" "^3.0.1" + "@react-aria/focus" "^3.10.1" + "@react-aria/gridlist" "^3.1.2" + "@react-aria/i18n" "^3.6.3" + "@react-aria/interactions" "^3.13.1" + "@react-aria/label" "^3.4.4" + "@react-aria/link" "^3.3.6" + "@react-aria/listbox" "^3.7.2" + "@react-aria/menu" "^3.7.1" + "@react-aria/meter" "^3.3.4" + "@react-aria/numberfield" "^3.3.4" + "@react-aria/overlays" "^3.12.1" + "@react-aria/progress" "^3.3.4" + "@react-aria/radio" "^3.4.2" + "@react-aria/searchfield" "^3.4.4" + "@react-aria/select" "^3.8.4" + "@react-aria/selection" "^3.12.1" + "@react-aria/separator" "^3.2.6" + "@react-aria/slider" "^3.2.4" + "@react-aria/ssr" "^3.4.1" + "@react-aria/switch" "^3.3.1" + "@react-aria/table" "^3.7.0" + "@react-aria/tabs" "^3.3.4" + "@react-aria/textfield" "^3.8.1" + "@react-aria/tooltip" "^3.3.4" + "@react-aria/utils" "^3.14.2" + "@react-aria/visually-hidden" "^3.6.1" + react-dom@18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -10457,26 +11532,26 @@ react-fast-compare@^3.0.1: resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-intersection-observer@9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.0.tgz#f6b6e616e625f9bf255857c5cba9dbf7b1825ec7" - integrity sha512-v0403CmomOVlzhqFXlzOxg0ziLcVq8mfbP0AwAcEQWgZmR2OulOT79Ikznw4UlB3N+jlUYqLMe4SDHUOyp0t2A== +react-intersection-observer@9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.4.1.tgz#4ccb21e16acd0b9cf5b28d275af7055bef878f6b" + integrity sha512-IXpIsPe6BleFOEHKzKh5UjwRUaz/JYS0lT/HPsupWEQou2hDqjhLMStc5zyE3eQVT4Fk3FufM8Fw33qW1uyeiw== -react-intl@6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.0.5.tgz#8adcb9108682c82e625a8ce7826283afd3537f62" - integrity sha512-nDZ3BosuE8WdovcGxsrjj1aIgJZklSL5aORs5oah+5tLQTzUdOEstzJEYQPM+sxl1dkDOu7RCuw0z9oI9ENf9g== +react-intl@6.2.5: + version "6.2.5" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.2.5.tgz#eb871145e0866916d0c9283b2c83a146c6121793" + integrity sha512-nz21POTKbE0sPEuEJU4o5YTZYY7VlIYCPNJaD6D2+xKyk6Noj6DoUK0LRO9LXuQNUuQ044IZl3m6ymzZRj8XFQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.8" - "@formatjs/icu-messageformat-parser" "2.1.4" - "@formatjs/intl" "2.3.1" - "@formatjs/intl-displaynames" "6.0.3" - "@formatjs/intl-listformat" "7.0.3" + "@formatjs/ecma402-abstract" "1.14.3" + "@formatjs/icu-messageformat-parser" "2.1.14" + "@formatjs/intl" "2.6.3" + "@formatjs/intl-displaynames" "6.2.3" + "@formatjs/intl-listformat" "7.1.7" "@types/hoist-non-react-statics" "^3.3.1" "@types/react" "16 || 17 || 18" hoist-non-react-statics "^3.3.2" - intl-messageformat "10.1.1" - tslib "2.4.0" + intl-messageformat "10.2.5" + tslib "^2.4.0" react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" @@ -10488,10 +11563,10 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-markdown@8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" - integrity sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A== +react-markdown@8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.4.tgz#b5ff1f0f29ead71a7a6f98815eb1a70bcc2a036e" + integrity sha512-2oxHa6oDxc1apg/Gnc1Goh06t3B617xeywqI/92wmDV9FELI6ayRkwge7w7DoEqM0gRpZGTNU6xQG+YpJISnVg== dependencies: "@types/hast" "^2.0.0" "@types/prop-types" "^15.0.0" @@ -10526,30 +11601,37 @@ react-popper@^2.3.0: react-fast-compare "^3.0.1" warning "^4.0.2" -react-select@5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.4.0.tgz#81f6ac73906126706f104751ee14437bd16798f4" - integrity sha512-CjE9RFLUvChd5SdlfG4vqxZd55AZJRrLrHzkQyTYeHlpOztqcgnyftYAolJ0SGsBev6zAs6qFrjm6KU3eo2hzg== +react-select@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.0.tgz#82921b38f1fcf1471a0b62304da01f2896cd8ce6" + integrity sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" "@types/react-transition-group" "^4.4.0" - memoize-one "^5.0.0" + memoize-one "^6.0.0" prop-types "^15.6.0" react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" -react-spring@9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.5.2.tgz#b9929ad2806e56e6408b27189ec9cdf1dc003873" - integrity sha512-OGWNgKi2TSjpqsK67NCUspaCgEvWcG7HcpO9KAaDLFzFGNxWdGdN3YTXhhWUqCsLAx9I6LxPzmRuUPsMNqTgrw== +react-spring@9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/react-spring/-/react-spring-9.6.1.tgz#e715b2fa523c1a3acfdcf1aaa93e081620b8cc8e" + integrity sha512-BeP80R4SLb1bZHW/Q62nECoScHw/fH+jzGkD7dc892HNGa+lbGIJXURc6U7N8JfZ8peEO46nPxR57aUMuYzquQ== dependencies: - "@react-spring/core" "~9.5.2" - "@react-spring/konva" "~9.5.2" - "@react-spring/native" "~9.5.2" - "@react-spring/three" "~9.5.2" - "@react-spring/web" "~9.5.2" - "@react-spring/zdog" "~9.5.2" + "@react-spring/core" "~9.6.1" + "@react-spring/konva" "~9.6.1" + "@react-spring/native" "~9.6.1" + "@react-spring/three" "~9.6.1" + "@react-spring/web" "~9.6.1" + "@react-spring/zdog" "~9.6.1" + +react-tailwindcss-datepicker-sct@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/react-tailwindcss-datepicker-sct/-/react-tailwindcss-datepicker-sct-1.3.4.tgz#e7e91c390a40822abca62e7259cee8156616d7d0" + integrity sha512-QlLekGZDbmW2DPGS33c4gfIxkk4gcgu4sRzBIm4/mZxfHuo7J+GR6SBVNIb5Xh8aCLlGtgyLqD+o0UmOVFIc4w== react-toast-notifications@2.5.1: version "2.5.1" @@ -10560,9 +11642,9 @@ react-toast-notifications@2.5.1: react-transition-group "^4.4.1" react-transition-group@^4.3.0, react-transition-group@^4.4.1: - version "4.4.2" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" - integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + version "4.4.5" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" + integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== dependencies: "@babel/runtime" "^7.5.5" dom-helpers "^5.0.1" @@ -10579,10 +11661,10 @@ react-truncate-markup@5.1.2: prop-types "^15.6.0" resize-observer-polyfill "1.5.x" -react-use-clipboard@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/react-use-clipboard/-/react-use-clipboard-1.0.8.tgz#7c1a5bcb469a0841dd9d1242af78e51d2ab7221f" - integrity sha512-QbN2kFl9uWEsELU4ONpAM98WASllAUWPSGBocbEVzRlcl1PbSa9EIdgADm6XlrcjYw9g1YQBfnCUb/5HGTOY+w== +react-use-clipboard@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/react-use-clipboard/-/react-use-clipboard-1.0.9.tgz#d34d4d04500f77c606795d3756fc587ec93db8d2" + integrity sha512-OcMzc14usXhqQnAkvzmhCXAbW5WBT2LSgscVh2vKHXZfg72jFsSOsEearqdeC/nUj8YxEfLnziqe7AE7YkWFwA== dependencies: copy-to-clipboard "^3.3.1" @@ -10608,10 +11690,10 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-cmd-shim@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" - integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== +read-cmd-shim@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" @@ -10621,15 +11703,15 @@ read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^4.1.1, read-package-json@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.1.2.tgz#b444d047de7c75d4a160cb056d00c0693c1df703" - integrity sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ== +read-package-json@^5.0.0, read-package-json@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa" + integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q== dependencies: - glob "^7.1.1" - json-parse-even-better-errors "^2.3.0" - normalize-package-data "^3.0.0" - npm-normalize-package-bin "^1.0.0" + glob "^8.0.1" + json-parse-even-better-errors "^2.3.1" + normalize-package-data "^4.0.0" + npm-normalize-package-bin "^2.0.0" read-pkg-up@^7.0.0, read-pkg-up@^7.0.1: version "7.0.1" @@ -10653,7 +11735,7 @@ read-pkg@^5.0.0, read-pkg@^5.2.0: read@1, read@^1.0.7, read@~1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" - integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== dependencies: mute-stream "~0.0.4" @@ -10682,7 +11764,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -10717,7 +11799,7 @@ redent@^3.0.0: redeyed@~2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" - integrity sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs= + integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== dependencies: esprima "~4.0.0" @@ -10726,10 +11808,10 @@ reflect-metadata@0.1.13, reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== +regenerate-unicode-properties@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" + integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== dependencies: regenerate "^1.4.2" @@ -10738,19 +11820,19 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: "@babel/runtime" "^7.8.4" -regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -10764,46 +11846,34 @@ regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^5.0.1: +regexpu-core@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" + integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsgen "^0.7.1" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +registry-auth-token@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" - integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.1.tgz#5e6cd106e6c251135a046650c58476fc03e92833" + integrity sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA== dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + "@pnpm/npm-conf" "^1.0.4" -regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" +regjsgen@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6" + integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" @@ -10879,7 +11949,7 @@ request@^2.87.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -10894,7 +11964,7 @@ resize-observer-polyfill@1.5.x: resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -10916,7 +11986,7 @@ resolve-global@1.0.0, resolve-global@^1.0.0: dependencies: global-dirs "^0.1.1" -resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.1: +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.19.0, resolve@^1.22.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -10925,31 +11995,15 @@ resolve@^1.1.7, resolve@^1.19.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^2.0.0-next.3, resolve@^2.0.0-next.4: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.3: - version "2.0.0-next.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" - integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -10966,7 +12020,7 @@ ret@~0.1.10: retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== retry@^0.13.1: version "0.13.1" @@ -10993,9 +12047,16 @@ rimraf@^3.0.0, rimraf@^3.0.2: rndm@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/rndm/-/rndm-1.2.0.tgz#f33fe9cfb52bbfd520aa18323bc65db110a1b76c" - integrity sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w= + integrity sha512-fJhQQI5tLrQvYIYFpOnFinzv9dwmR7hRnUz1XqP3OJ1jIweTNOd6aTO4jwQSgcBSFUB+/KHJxuGneime+FdzOw== -run-async@^2.2.0, run-async@^2.4.0: +run-applescript@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-3.2.0.tgz#73fb34ce85d3de8076d511ea767c30d4fdfc918b" + integrity sha512-Ep0RsvAjnRcBX1p5vogbaBdAGu/8j/ewpvGqnQYunnLd9SM0vWcPJewPKNnWFggf0hF0pwIgwV5XK7qQ7UZ8Qg== + dependencies: + execa "^0.10.0" + +run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== @@ -11007,24 +12068,10 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.4.0: - version "6.6.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" - integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== - dependencies: - tslib "^1.9.0" - -rxjs@^7.5.1: - version "7.5.6" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" - integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== - dependencies: - tslib "^2.1.0" - -rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" @@ -11050,10 +12097,19 @@ safe-identifier@^0.4.1: resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + safe-stable-stringify@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + version "2.4.2" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz#ec7b037768098bf65310d1d64370de0dc02353aa" + integrity sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA== "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" @@ -11112,6 +12168,13 @@ secure-random@^1.1.2: resolved "https://registry.yarnpkg.com/secure-random/-/secure-random-1.1.2.tgz#ed103b460a851632d420d46448b2a900a41e7f7c" integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ== +selderee@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.10.0.tgz#ec83d6044d9026668dc9bd2561acfde99a4e3a1c" + integrity sha512-DEL/RW/f4qLw/NrVg97xKaEBC8IpzIG2fvxnzCp3Z4yk4jQ3MXom+Imav9wApjxX2dfS3eW7x0DXafJr85i39A== + dependencies: + parseley "^0.11.0" + selderee@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/selderee/-/selderee-0.6.0.tgz#f3bee66cfebcb6f33df98e4a1df77388b42a96f7" @@ -11126,10 +12189,10 @@ semantic-release-docker-buildx@1.0.1: dependencies: execa "^5.0.0" -semantic-release@19.0.3: - version "19.0.3" - resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-19.0.3.tgz#9291053ad9890052f28e7c5921d4741530d516fd" - integrity sha512-HaFbydST1cDKZHuFZxB8DTrBLJVK/AnDExpK0s3EqLIAAUAHUgnd+VSJCUtTYQKkAkauL8G9CucODrVCc7BuAA== +semantic-release@19.0.5: + version "19.0.5" + resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-19.0.5.tgz#d7fab4b33fc20f1288eafd6c441e5d0938e5e174" + integrity sha512-NMPKdfpXTnPn49FDogMBi36SiBfXkSOJqCkk0E4iWOY1tusvvgBwqUmxTX1kmlT6kIYed9YwNKD1sfPpqa5yaA== dependencies: "@semantic-release/commit-analyzer" "^9.0.2" "@semantic-release/error" "^3.0.0" @@ -11168,24 +12231,19 @@ semver-diff@^3.1.1: semver "^6.3.0" semver-regex@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3" - integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ== + version "3.1.4" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.4.tgz#13053c0d4aa11d070a2f2872b6b1e3ae1e1971b4" + integrity sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA== -"semver@2 || 3 || 4 || 5", semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0, semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@7.3.7, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== +semver@7.3.8, semver@^7.0.0, semver@^7.1.1, semver@^7.1.2, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== dependencies: lru-cache "^6.0.0" @@ -11194,12 +12252,10 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.1.2, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== send@0.18.0: version "0.18.0" @@ -11233,7 +12289,7 @@ serve-static@1.15.0: set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.1.1: version "1.1.1" @@ -11253,6 +12309,13 @@ sha.js@^2.4.11: inherits "^2.0.1" safe-buffer "^5.0.1" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -11260,6 +12323,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -11291,14 +12359,14 @@ signale@^1.2.1: simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" simple-update-notifier@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz#7edf75c5bdd04f88828d632f762b2bc32996a9cc" - integrity sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew== + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== dependencies: semver "~7.0.0" @@ -11341,28 +12409,37 @@ slice-ansi@^5.0.0: slick@^1.12.2: version "1.12.2" resolved "https://registry.yarnpkg.com/slick/-/slick-1.12.2.tgz#bd048ddb74de7d1ca6915faa4a57570b3550c2d7" - integrity sha1-vQSN23TefRymkV+qSldXCzVQwtc= + integrity sha512-4qdtOGcBjral6YIBCWJ0ljFSKNLz9KkhbWtuGvUyRowl1kxfuE1x/Z/aJcaiilpb3do9bl5K7/1h9XC5wWpY/A== smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^6.0.0, socks-proxy-agent@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" - integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" - debug "^4.3.1" - socks "^2.6.1" + debug "^4.3.3" + socks "^2.6.2" -socks@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: - ip "^1.1.5" + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" smart-buffer "^4.2.0" sort-keys@^4.0.0: @@ -11382,10 +12459,10 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map@^0.5.0, source-map@^0.5.7: +source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== source-map@^0.6.1: version "0.6.1" @@ -11393,14 +12470,14 @@ source-map@^0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" - integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" - integrity sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk= + integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g== spdx-correct@^3.0.0: version "3.1.1" @@ -11424,9 +12501,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== split2@^3.0.0: version "3.2.2" @@ -11438,7 +12515,7 @@ split2@^3.0.0: split2@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split2/-/split2-1.0.0.tgz#52e2e221d88c75f9a73f90556e263ff96772b314" - integrity sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ= + integrity sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg== dependencies: through2 "~2.0.0" @@ -11452,12 +12529,12 @@ split@^1.0.0: sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sqlite3@5.0.11: - version "5.0.11" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.11.tgz#102c835d70be66da9d95a383fd6ea084a082ef7f" - integrity sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA== +sqlite3@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.4.tgz#35f83d368963168b324ad2f0fffce09f3b8723a7" + integrity sha512-i0UlWAzPlzX3B5XP2cYuhWQJsTtlMD6obOa1PgeEQ4DHEXUuyJkgv50I3isqZAP5oFc2T8OFvakmDh2W6I+YpA== dependencies: "@mapbox/node-pre-gyp" "^1.0.0" node-addon-api "^4.2.0" @@ -11487,6 +12564,13 @@ ssri@^8.0.0, ssri@^8.0.1: dependencies: minipass "^3.1.1" +ssri@^9.0.0, ssri@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -11495,7 +12579,7 @@ stable@^0.1.8: stack-trace@0.0.x: version "0.0.10" resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" - integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== statuses@2.0.1: version "2.0.1" @@ -11505,17 +12589,24 @@ statuses@2.0.1: "statuses@>= 1.5.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + integrity sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" @@ -11539,14 +12630,6 @@ string-argv@^0.3.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -11556,53 +12639,37 @@ string-width@^5.0.0: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + regexp.prototype.flags "^1.4.3" side-channel "^1.0.4" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string_decoder@^1.1.1: version "1.3.0" @@ -11614,7 +12681,7 @@ string_decoder@^1.1.1: string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== string_decoder@~1.1.1: version "1.1.1" @@ -11623,25 +12690,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-package@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" - integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -11664,13 +12712,23 @@ strip-bom@4.0.0, strip-bom@^4.0.0: strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -11678,11 +12736,6 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== - strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" @@ -11691,7 +12744,7 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1. strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== style-to-object@^0.3.0: version "0.3.0" @@ -11700,15 +12753,15 @@ style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -styled-jsx@5.0.4: - version "5.0.4" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.4.tgz#5b1bd0b9ab44caae3dd1361295559706e044aa53" - integrity sha512-sDFWLbg4zR+UkNzfk5lPilyIgtpddfxXEULxhujorr5jtePTUqiPDc5BC0v1NRqTr/WaFBGQQUoYToGlF4B2KQ== +styled-jsx@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.0.7.tgz#be44afc53771b983769ac654d355ca8d019dff48" + integrity sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA== -stylis@4.0.13: - version "4.0.13" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== +stylis@4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.3.tgz#fd2fbe79f5fed17c55269e16ed8da14c84d069f7" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" @@ -11731,15 +12784,10 @@ supports-color@^8.1.1: dependencies: has-flag "^4.0.0" -supports-color@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" - integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== - supports-hyperlinks@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" @@ -11768,26 +12816,28 @@ svgo@^2.8.0: stable "^0.1.8" swagger-ui-dist@>=4.11.0: - version "4.14.0" - resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.14.0.tgz#e34d807464eb84578c43902e393084a1a6fbda52" - integrity sha512-TBzhheU15s+o54Cgk9qxuYcZMiqSm/SkvKnapoGHOF66kz0Y5aGjpzj5BT/vpBbn6rTPJ9tUYXQxuDWfsjiGMw== + version "4.15.5" + resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-4.15.5.tgz#cda226a79db2a9192579cc1f37ec839398a62638" + integrity sha512-V3eIa28lwB6gg7/wfNvAbjwJYmDXy1Jo1POjyTzlB6wPcHiGlRxq39TSjYGVjQrUSAzpv+a7nzp7mDxgNy57xA== -swagger-ui-express@4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.5.0.tgz#feb1314627092eb9c7e6b65ee018927011445530" - integrity sha512-DHk3zFvsxrkcnurGvQlAcLuTDacAVN1JHKDgcba/gr2NFRE4HGwP1YeHIXMiGznkWR4AeS7X5vEblNn4QljuNA== +swagger-ui-express@4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-4.6.0.tgz#fc297d80c614c80f5d7def3dab50b56428cfe1c9" + integrity sha512-ZxpQFp1JR2RF8Ar++CyJzEDdvufa08ujNUJgMVTMWPi86CuQeVdBtvaeO/ysrz6dJAYXf9kbVNhWD7JWocwqsA== dependencies: swagger-ui-dist ">=4.11.0" -swr@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/swr/-/swr-1.3.0.tgz#c6531866a35b4db37b38b72c45a63171faf9f4e8" - integrity sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw== +swr@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/swr/-/swr-2.0.0.tgz#91d999359e2be92de1a41f6b6711d72be20ffdbd" + integrity sha512-IhUx5yPkX+Fut3h0SqZycnaNLXLXsb2ECFq0Y29cxnK7d8r7auY2JWNbCW3IX+EqXUg3rwNJFlhrw5Ye/b6k7w== + dependencies: + use-sync-external-store "^1.2.0" -tailwindcss@3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" - integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== +tailwindcss@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250" + integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ== dependencies: arg "^5.0.2" chokidar "^3.5.3" @@ -11795,31 +12845,32 @@ tailwindcss@3.1.8: detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" - fast-glob "^3.2.11" + fast-glob "^3.2.12" glob-parent "^6.0.2" is-glob "^4.0.3" lilconfig "^2.0.6" + micromatch "^4.0.5" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.14" + postcss "^8.4.18" postcss-import "^14.1.0" postcss-js "^4.0.0" postcss-load-config "^3.1.4" - postcss-nested "5.0.6" + postcss-nested "6.0.0" postcss-selector-parser "^6.0.10" postcss-value-parser "^4.2.0" quick-lru "^5.1.1" resolve "^1.22.1" tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -11853,12 +12904,12 @@ text-hex@1.0.x: text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== dependencies: thenify ">= 3.1.0 < 4" @@ -11892,7 +12943,7 @@ through2@^4.0.0: through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-relative-date@^1.3.0: version "1.3.0" @@ -11909,15 +12960,10 @@ titleize@2: resolved "https://registry.yarnpkg.com/titleize/-/titleize-2.1.0.tgz#5530de07c22147a0488887172b5bd94f5b30a48f" integrity sha512-m+apkYlfiQTKLW+sI4vqUkwMEzfgEUEYSqljx1voUE3Wz/z1ZsxyzSxvH2X8uKVrOp7QkByWt0rA6+gvhCKy6g== -tlds@1.224.0: - version "1.224.0" - resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.224.0.tgz#dc9a5b0bda0708af0302114f6e24458770c5af01" - integrity sha512-Jgdc8SEijbDFUsmCn6Wk/f7E6jBLFZOG3U1xK0amGSfEH55Xx97ItUS/d2NngsuApjn11UeWCWj8Um3VRhseZQ== - -tlds@^1.230.0: - version "1.230.0" - resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.230.0.tgz#9c836528c4062e565b3b58bfaef83d99e09c113d" - integrity sha512-QFuY6JBWZt2bZXlapjqsojul5dv9xfo7Uc8wTUlctJOuF+BS/ICni2f4x7MFiT7muUVmcKC1LvGnU4GWhYO0PQ== +tlds@1.236.0, tlds@^1.230.0: + version "1.236.0" + resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.236.0.tgz#a118eebe33261c577e3a3025144faeabb7dd813c" + integrity sha512-oP2PZ3KeGlgpHgsEfrtva3/K9kzsJUNliQSbCfrJ7JMCWFoCdtG+9YMq/g2AnADQ1v5tVlbtvKJZ4KLpy/P6MA== tmp@^0.0.33: version "0.0.33" @@ -11936,7 +12982,7 @@ tmp@~0.2.1: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -11948,7 +12994,7 @@ to-regex-range@^5.0.1: toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== toidentifier@1.0.0: version "1.0.0" @@ -11963,12 +13009,12 @@ toidentifier@1.0.1: token-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" - integrity sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ= + integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== toposort@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" - integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== touch@^3.1.0: version "3.1.0" @@ -11988,17 +13034,22 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@~0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + version "0.6.7" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" + integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== -treeverse@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" - integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== +treeverse@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca" + integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trim-newlines@^3.0.0: version "3.0.1" @@ -12015,7 +13066,7 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -ts-node@10.9.1: +ts-node@10.9.1, ts-node@^10.8.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -12034,29 +13085,10 @@ ts-node@10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -ts-node@^10.6.0: - version "10.7.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.7.0.tgz#35d503d0fab3e2baa672a0e94f4b40653c2463f5" - integrity sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A== - dependencies: - "@cspotcode/source-map-support" "0.7.0" - "@tsconfig/node10" "^1.0.7" - "@tsconfig/node12" "^1.0.7" - "@tsconfig/node14" "^1.0.0" - "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.0" - yn "3.1.1" - -tsc-alias@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.7.0.tgz#733482751133a25b97608ee424f8a1f085fcaaef" - integrity sha512-n/K6g8S7Ec7Y/A2Z77Ikp2Uv1S1ERtT63ni69XV4W1YPT4rnNmz8ItgIiJYvKfFnKfqcZQ81UPjoKpMTxaC/rg== +tsc-alias@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.8.2.tgz#3cd24bba7333a5e05cb7db3ac206d7bcec079630" + integrity sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg== dependencies: chokidar "^3.5.3" commander "^9.0.0" @@ -12065,12 +13097,12 @@ tsc-alias@1.7.0: normalize-path "^3.0.0" plimit-lit "^1.2.6" -tsconfig-paths@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz#f8ef7d467f08ae3a695335bf1ece088c5538d2c1" - integrity sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow== +tsconfig-paths@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz#4819f861eef82e6da52fb4af1e8c930a39ed979a" + integrity sha512-uhxiMgnXQp1IR622dUXI+9Ehnws7i/y6xvpZB9IbUVOPy0muvdvgXeZOn88UcGPiT98Vp3rJPTa8bFoalZ3Qhw== dependencies: - json5 "^2.2.1" + json5 "^2.2.2" minimist "^1.2.6" strip-bom "^3.0.0" @@ -12084,20 +13116,15 @@ tsconfig-paths@^3.14.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.4.0, tslib@^2.3.1, tslib@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.10.0, tslib@^1.8.1: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.1, tslib@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== tsscmp@1.0.6: version "1.0.6" @@ -12114,14 +13141,14 @@ tsutils@^3.21.0: tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -12178,6 +13205,15 @@ type-is@^1.6.4, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -12188,12 +13224,12 @@ typedarray-to-buffer@^3.1.5: typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typeorm@0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.7.tgz#5776ed5058f0acb75d64723b39ff458d21de64c1" - integrity sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q== +typeorm@0.3.11: + version "0.3.11" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.11.tgz#09b6ab0b0574bf33c1faf7344bab6c363cf28921" + integrity sha512-pzdOyWbVuz/z8Ww6gqvBW4nylsM0KLdUCDExr2gR20/x1khGSVxQkjNV/3YqliG90jrWzrknYbYscpk8yxFJVg== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" @@ -12213,20 +13249,10 @@ typeorm@0.3.7: xml2js "^0.4.23" yargs "^17.3.1" -typescript@4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -typescript@^4.0, typescript@^4.4.3, typescript@^4.5: - version "4.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" - integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== - -typescript@^4.6.4: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== +typescript@4.9.4, typescript@^4.0, typescript@^4.6.4, typescript@^4.7: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== uc.micro@^1.0.1: version "1.0.6" @@ -12234,9 +13260,9 @@ uc.micro@^1.0.1: integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.1.4: - version "3.15.3" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.3.tgz#9aa82ca22419ba4c0137642ba0df800cb06e0471" - integrity sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg== + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== uid-safe@2.1.5, uid-safe@~2.1.5: version "2.1.5" @@ -12245,16 +13271,6 @@ uid-safe@2.1.5, uid-safe@~2.1.5: dependencies: random-bytes "~1.0.0" -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== - dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" - which-boxed-primitive "^1.0.2" - unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -12271,14 +13287,14 @@ undefsafe@^2.0.5: integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== underscore.deep@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/underscore.deep/-/underscore.deep-0.5.1.tgz#072671f48d68735c34223fcfef63e69e5276cc2b" - integrity sha1-ByZx9I1oc1w0Ij/P72PmnlJ2zCs= + version "0.5.3" + resolved "https://registry.yarnpkg.com/underscore.deep/-/underscore.deep-0.5.3.tgz#210969d58025339cecabd2a2ad8c3e8925e5c095" + integrity sha512-4OuSOlFNkiVFVc3khkeG112Pdu1gbitMj7t9B9ENb61uFmN70Jq7Iluhi3oflcSgexkKfDdJ5XAJET2gEq6ikA== underscore@~1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" - integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== + version "1.13.6" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" + integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" @@ -12293,15 +13309,15 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@^10.0.0: version "10.1.2" @@ -12323,6 +13339,13 @@ unique-filename@^1.1.1: dependencies: unique-slug "^2.0.0" +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + unique-slug@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" @@ -12330,6 +13353,13 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -12338,78 +13368,58 @@ unique-string@^2.0.0: crypto-random-string "^2.0.0" unist-builder@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.0.tgz#728baca4767c0e784e1e64bb44b5a5a753021a04" - integrity sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-3.0.1.tgz#258b89dcadd3c973656b2327b347863556907f58" + integrity sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ== dependencies: "@types/unist" "^2.0.0" unist-util-generated@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" - integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== unist-util-is@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" - integrity sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.0.tgz#37eed0617b76c114fd34d44c201aa96fd928b309" + integrity sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ== unist-util-position@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.1.tgz#f8484b2da19a897a0180556d160c28633070dbb9" - integrity sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA== + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" unist-util-stringify-position@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz#5c6aa07c90b1deffd9153be170dce628a869a447" - integrity sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== +unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" - unist-util-visit@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" @@ -12418,17 +13428,17 @@ universalify@^2.0.0: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" - integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -12448,9 +13458,14 @@ url-join@^4.0.0: urlsafe-base64@^1.0.0, urlsafe-base64@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz#23f89069a6c62f46cf3a1d3b00169cefb90be0c6" - integrity sha1-I/iQaabGL0bPOh07ABac77kL4MY= + integrity sha512-RtuPeMy7c1UrHwproMZN9gN6kiZ0SvJwRaEzwZY0j9MypEkFqyBaKv176jvlPtg58Zh36bOkS0NFABXMHvvGCA== -use-sync-external-store@1.2.0: +use-isomorphic-layout-effect@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-sync-external-store@1.2.0, use-sync-external-store@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== @@ -12458,12 +13473,12 @@ use-sync-external-store@1.2.0: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^3.0.0, uuid@^3.3.2: version "3.4.0" @@ -12476,30 +13491,20 @@ uuid@^8.3.2: integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" kleur "^4.0.3" sade "^1.7.3" -v8-compile-cache-lib@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz#0582bcb1c74f3a2ee46487ceecf372e46bce53e8" - integrity sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - valid-data-url@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/valid-data-url/-/valid-data-url-3.0.1.tgz#826c1744e71b5632e847dd15dbd45b9fb38aa34f" @@ -12513,39 +13518,39 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= +validate-npm-package-name@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747" + integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q== dependencies: - builtins "^1.0.3" + builtins "^5.0.0" vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" vfile-message@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.2.tgz#a2908f64d9e557315ec9d7ea3a910f658ac05f7d" - integrity sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.3.tgz#1360c27a99234bebf7bddbbbca67807115e6b0dd" + integrity sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.6" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.6.tgz#61b2e70690cc835a5d0d0fd135beae74e5a39546" + integrity sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" @@ -12555,7 +13560,7 @@ vfile@^5.0.0: void-elements@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" - integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== walk-up-path@^1.0.0: version "1.0.0" @@ -12615,12 +13620,12 @@ web-resource-inliner@^6.0.1: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -12636,7 +13641,29 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which@^1.2.14: +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -12676,11 +13703,12 @@ winston-transport@^4.4.0, winston-transport@^4.5.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.1.tgz#76f15b3478cde170b780234e0c4cf805c5a7fb57" - integrity sha512-r+6YAiCR4uI3N8eQNOg8k3P3PqwAm20cLKlzVD9E66Ch39+LZC+VH1UKf9JemQj2B3QoUHfKD7Poewn0Pr3Y1w== +winston@3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== dependencies: + "@colors/colors" "1.5.0" "@dabh/diagnostics" "^2.0.2" async "^3.2.3" is-stream "^2.0.0" @@ -12710,7 +13738,7 @@ word-wrap@^1.0.3, word-wrap@^1.2.3: wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== wrap-ansi@^6.2.0: version "6.2.0" @@ -12733,7 +13761,7 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" @@ -12746,9 +13774,9 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" @@ -12768,7 +13796,7 @@ write-json-file@^4.3.0: xml2js@0.4.16: version "0.4.16" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.16.tgz#f82fccd2f9540d7e0a9b5dac163e7471195c9db3" - integrity sha1-+C/M0vlUDX4Km12sFj50cRlcnbM= + integrity sha512-9rH7UTUNphxeDRCeJBi4Fxp/z0fd92WeXNQ1dtUYMpqO3PaK59hVDCuUmOGHRZvufJDzcX8TG+Kdty7ylM0t2w== dependencies: sax ">=0.6.0" xmlbuilder "^4.1.0" @@ -12792,7 +13820,7 @@ xml2js@0.4.23, xml2js@^0.4.23: xmlbuilder@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" - integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU= + integrity sha512-oEePiEefhQhAeUnwRnIBLBWmk/fsWWbQ53EEWsRuzECbQ3m5o/Esmq6H47CYYwSLW+Ynt0rS9hd0pd2ogMAWjg== dependencies: lodash "^4.0.0" @@ -12804,7 +13832,7 @@ xmlbuilder@~11.0.0: xmlbuilder@~9.0.1: version "9.0.7" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= + integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" @@ -12816,6 +13844,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -12826,6 +13859,11 @@ yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.3: + version "2.2.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" + integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + yamljs@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.3.0.tgz#dc060bf267447b39f7304e9b2bfbe8b5a7ddb03b" @@ -12847,10 +13885,10 @@ yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0: version "16.2.0" @@ -12865,31 +13903,18 @@ yargs@^16.0.0, yargs@^16.1.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.0: - version "17.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" - integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== +yargs@^17.0.0, yargs@^17.3.1: + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== dependencies: - cliui "^7.0.2" + cliui "^8.0.1" escalade "^3.1.1" get-caller-file "^2.0.5" require-directory "^2.1.1" string-width "^4.2.3" y18n "^5.0.5" - yargs-parser "^21.0.0" - -yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" + yargs-parser "^21.1.1" yauzl@^2.10.0: version "2.10.0" @@ -12921,3 +13946,8 @@ yup@0.32.11: nanoclone "^0.2.1" property-expr "^2.0.4" toposort "^2.0.2" + +zod@3.20.2: + version "3.20.2" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.2.tgz#068606642c8f51b3333981f91c0a8ab37dfc2807" + integrity sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==