diff --git a/.github/workflows/apply-label.yml b/.github/workflows/apply-label.yml deleted file mode 100644 index 18d1c56922..0000000000 --- a/.github/workflows/apply-label.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Apply label -on: - pull_request: - branches: - - main - -jobs: - update-label: - runs-on: ubuntu-latest - outputs: - sdk: ${{ steps.filter.outputs.sdk }} - store: ${{ steps.filter.outputs.store }} - steps: - - uses: actions/checkout@v2 - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - sdk: - - 'packages/hms-video-web/src/**/!(*.test.ts)' - store: - - 'packages/hms-video-store/src/!(test)**/!(*.test.ts)' - react-sdk: - - 'packages/react-sdk/src/**' - roomkit-react: - - 'packages/roomkit-react/src/**' - react-icons: - - 'packages/react-icons/src/**' - sdk-test: - - 'packages/hms-video-web/**/*.(test|spec).ts' - store-test: - - 'packages/hms-video-store/**/*.(test|spec).ts' - noise-suppression: - - 'packages/hms-noise-suppression/src/**' - hls-stats: - - 'packages/hls-stats/src/**' - hls-player: - - 'packages/hls-player/src/**' - virtual-background: - - 'packages/hms-virtual-background/src/**' - cypress: - - 'cypress/**' - build: - - 'scripts/**' - ci: - - '.github/**' - documentation: - - '*.(md|mdx)' - - - name: Apply or remove label - uses: actions/github-script@v5 - env: - CHANGES: ${{ toJSON(steps.filter.outputs) }} - with: - script: | - const script = require('./scripts/labeller.js') - await script({ github, context }) diff --git a/.github/workflows/auto-pr-dev-to-main.yml b/.github/workflows/auto-pr-dev-to-main.yml deleted file mode 100644 index cb3be1d24b..0000000000 --- a/.github/workflows/auto-pr-dev-to-main.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Create PR from dev to main -on: - pull_request: - types: [closed] - branches: - - dev - -jobs: - pull-request: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: pull-request - uses: repo-sync/pull-request@v2 - if: github.event.pull_request.merged == true - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - source_branch: '' - destination_branch: 'main' - pr_title: 'QA Handover PR' - pr_body: ':robot: Automated PR from **${{ github.ref }}** to **main**' - pr_label: 'release' diff --git a/.github/workflows/auto-pr-main-to-dev.yml b/.github/workflows/auto-pr-main-to-dev.yml deleted file mode 100644 index 482d5df6ea..0000000000 --- a/.github/workflows/auto-pr-main-to-dev.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Create PR from main to dev -on: - pull_request: - types: [closed] - branches: - - main - -jobs: - pull-request: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: pull-request - uses: repo-sync/pull-request@v2 - if: github.event.pull_request.merged == true - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - source_branch: '' - destination_branch: 'dev' - pr_title: 'PR for main to dev backmerge' - pr_body: ':robot: Automated PR from **${{ github.ref }}** to **dev**' - pr_label: 'backmerge' diff --git a/.github/workflows/auto-pr-main-to-production.yml b/.github/workflows/auto-pr-main-to-production.yml deleted file mode 100644 index 3beffc66e0..0000000000 --- a/.github/workflows/auto-pr-main-to-production.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Create PR from main to production -on: - pull_request: - types: [closed] - branches: - - main - -jobs: - pull-request: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: pull-request - uses: repo-sync/pull-request@v2 - if: github.event.pull_request.merged == true - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - source_branch: '' - destination_branch: 'production' - pr_title: 'Production release PR' - pr_body: ':robot: Automated PR from **${{ github.ref }}** to **production**' - pr_label: 'release' diff --git a/.github/workflows/auto-pr-production-to-main.yml b/.github/workflows/auto-pr-production-to-main.yml deleted file mode 100644 index 010122df82..0000000000 --- a/.github/workflows/auto-pr-production-to-main.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Create PR from production to main -on: - pull_request: - types: [closed] - branches: - - production - -jobs: - pull-request: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - name: pull-request - uses: repo-sync/pull-request@v2 - if: github.event.pull_request.merged == true - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - source_branch: '' - destination_branch: 'main' - pr_title: 'Hotfix backmerge to main' - pr_body: ':robot: Automated PR from **${{ github.ref }}** to **main**' - pr_label: 'backmerge' diff --git a/.github/workflows/create-release-pr.yml b/.github/workflows/create-release-pr.yml index cbf2e1c972..dc496eaaf8 100644 --- a/.github/workflows/create-release-pr.yml +++ b/.github/workflows/create-release-pr.yml @@ -35,8 +35,7 @@ jobs: lerna -v echo $(lerna version $BUMP --no-git-tag-version --exact --yes --no-private) lerna add @100mslive/hms-video-store --peer --scope=@100mslive/hms-virtual-background --exact - lerna add @100mslive/react-icons --scope=100ms-custom-app --exact - lerna add @100mslive/roomkit-react --scope=100ms-custom-app --exact + lerna add @100mslive/roomkit-react --scope=prebuilt-react-integration --exact - name: Get current version id: version @@ -50,7 +49,6 @@ jobs: commit-message: 'build: update versions for release' title: 'build: update versions for release' body: | - - @100mslive/hms-video-web - ${{ steps.version.outputs.sdk_version }} - @100mslive/hms-video-store - ${{ steps.version.outputs.store_version }} branch: release branch-suffix: short-commit-hash diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml deleted file mode 100644 index 565ddd39f5..0000000000 --- a/.github/workflows/deploy-dev.yml +++ /dev/null @@ -1,103 +0,0 @@ -name: Deploy Dev -on: - workflow_dispatch: - push: - branches: - - dev - paths-ignore: - - 'cypress/**' - - 'playwright/**' - - 'internal-docs/**' - - '.github/**' - -jobs: - build: - runs-on: ubuntu-latest - env: - REACT_APP_TILE_SHAPE: '1-1' - REACT_APP_THEME: 'dark' - REACT_APP_COLOR: '#2F80FF' - REACT_APP_LOGO: '' - REACT_APP_FONT: 'Roboto' - REACT_APP_POLICY_CONFIG: '' - REACT_APP_WEBINAR_PROPS: '{}' - REACT_APP_DEFAULT_APP_DETAILS: '{}' - ENABLE_ROOT_PATH_BUILD_CACHE: '1' - REACT_APP_PUSHER_APP_KEY: ${{ secrets.PUSHER_KEY }} - REACT_APP_AMBIENT_MUSIC: 'https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/Together+With+You.mp3' - REACT_APP_PUSHER_AUTHENDPOINT: 'https://whiteboard-server.vercel.app/api/pusher/auth' - REACT_APP_ZIPY_BLACKLIST: 'peakperformerapp.app.100ms.live,callrockethealth.app.100ms.live,buyume1.app.100ms.live,automation.app.100ms.live,juniorkoder.app.100ms.live,qaroy1.qa-app.100ms.live,kluster.app.100ms.live,pankhuriapp.app.100ms.live,leancrop.app.100ms.live,routes2roots-class.app.100ms.live,liveholofy.app.100ms.live,ulesson.app.100ms.live,truyoga.app.100ms.live' - REACT_APP_PORTRAIT_MODE_DOMAINS: 'whatmorelive-stage.app.100ms.live,arjun.app.100ms.live,koo.app.100ms.live,socialjawn.app.100ms.live' - REACT_APP_AUDIO_PLAYLIST: '[{"name":"Audio1","id":"audio1","metadata":{"description":"Artist1"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio1.mp3","type":"audio"},{"name":"Audio2","id":"audio2","metadata":{"description":"Artist2"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio2.mp3","type":"audio"},{"name":"Audio3","id":"audio3","metadata":{"description":"Artist3"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio3.mp3","type":"audio"},{"name":"Audio4","id":"audio4","metadata":{"description":"Artist4"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio4.mp3","type":"audio"}]' - REACT_APP_VIDEO_PLAYLIST: '[{"name":"100ms-360P","id":"video1","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-360p.mp4","type":"video"},{"name":"100ms-720P","id":"video2","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-720p.mp4","type":"video"},{"name":"Big Buck Bunny","id":"video3","metadata":{"description":"Bunny"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/video2.mp4","type":"video"}]' - REACT_APP_HEADLESS_JOIN: false - REACT_APP_ENABLE_STATS_FOR_NERDS: 'true' - REACT_APP_ENABLE_WHITEBOARD: 'true' - REACT_APP_PDFJS_IFRAME_URL: 'https://pdf-annotation.100ms.live/generic/web/viewer.html' - REACT_APP_ENV: ${{ github.event.inputs.buildEnvForDev }} - REACT_APP_ZIPY_KEY: ${{ secrets.ZIPY_KEY }} - REACT_APP_ENABLE_BEAM_SPEAKERS_LOGGING: 'true' - REACT_APP_INIT_ENDPOINT: https://qa-in2-ipv6.100ms.live/init - REACT_APP_ROOM_LAYOUT_ENDPOINT: https://api-nonprod.100ms.live/v2/layouts/ui - REACT_APP_TOKEN_BY_ROOM_CODE_ENDPOINT: https://auth-nonprod.100ms.live/v2/token - REACT_APP_DASHBOARD_BASE_ENDPOINT: https://qa-in2-ipv6.100ms.live/hmsapi/ - steps: - - name: log inputs - run: | - echo "env: dev, branch: ${{ github.ref_name }}" - - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - - name: Checkout repo - uses: actions/checkout@v3 - - - name: yarn packages cache - uses: actions/cache@v3 - with: - path: | - node_modules - */*/node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install packages - run: yarn install --frozen-lockfile - - - name: Build for Dev - run: yarn build - - - name: 'Upload Build Artifact' - uses: actions/upload-artifact@v3 - with: - name: build-artifact - path: apps/100ms-custom-app/build - - deploy: - needs: build - runs-on: ubuntu-latest - - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }} - aws-region: ${{ secrets.S3_BUCKET_REGION }} - - - name: Download Build artifact - uses: actions/download-artifact@v3 - with: - name: build-artifact - path: build - - - name: Deploy to Dev - env: - BUCKET: ${{ secrets.S3_BUCKET_DEV }} - # upload static folder first and then upload the rest to ensure index.html assets are all present - run: | - aws s3 sync ./build s3://$BUCKET --exclude "index.html" - aws s3 sync ./build s3://$BUCKET --include "index.html" diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml deleted file mode 100644 index 1215a0ef38..0000000000 --- a/.github/workflows/deploy-prod.yml +++ /dev/null @@ -1,139 +0,0 @@ -name: Deploy Prod -on: - workflow_dispatch: - push: - branches: - - production - -jobs: - build: - runs-on: ubuntu-latest - env: - REACT_APP_TILE_SHAPE: '1-1' - REACT_APP_THEME: 'dark' - REACT_APP_COLOR: '#2F80FF' - REACT_APP_LOGO: '' - REACT_APP_FONT: 'Roboto' - REACT_APP_POLICY_CONFIG: '' - REACT_APP_WEBINAR_PROPS: '{}' - REACT_APP_DEFAULT_APP_DETAILS: '{}' - ENABLE_ROOT_PATH_BUILD_CACHE: '1' - REACT_APP_PUSHER_APP_KEY: ${{ secrets.PUSHER_KEY }} - REACT_APP_AMBIENT_MUSIC: 'https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/Together+With+You.mp3' - REACT_APP_PUSHER_AUTHENDPOINT: 'https://whiteboard-server.vercel.app/api/pusher/auth' - REACT_APP_ZIPY_BLACKLIST: 'peakperformerapp.app.100ms.live,callrockethealth.app.100ms.live,buyume1.app.100ms.live,automation.app.100ms.live,juniorkoder.app.100ms.live,kluster.app.100ms.live,pankhuriapp.app.100ms.live,leancrop.app.100ms.live,routes2roots-class.app.100ms.live,liveholofy.app.100ms.live,ulesson.app.100ms.live,truyoga.app.100ms.live,livelink.app.100ms.live,indiaclan.app.100ms.live,slice_test.app.100ms.live,epitomeai.app.100ms.live,jkoder.app.100ms.live,huddleatjf.app.100ms.live,napo-academy.app.100ms.live,alineahealth-prd.app.100ms.live,tutordebbie.app.100ms.live,womensday.app.100ms.live,gaga-live1.app.100ms.live,mypandit.app.100ms.live,allo-prod.app.100ms.live,ganeshaspeaks.app.100ms.live' - REACT_APP_PORTRAIT_MODE_DOMAINS: 'whatmorelive-stage.app.100ms.live,arjun.app.100ms.live,koo.app.100ms.live,socialjawn.app.100ms.live' - REACT_APP_AUDIO_PLAYLIST: '[{"name":"Audio1","id":"audio1","metadata":{"description":"Artist1"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio1.mp3","type":"audio"},{"name":"Audio2","id":"audio2","metadata":{"description":"Artist2"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio2.mp3","type":"audio"},{"name":"Audio3","id":"audio3","metadata":{"description":"Artist3"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio3.mp3","type":"audio"},{"name":"Audio4","id":"audio4","metadata":{"description":"Artist4"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio4.mp3","type":"audio"}]' - REACT_APP_VIDEO_PLAYLIST: '[{"name":"100ms-360P","id":"video1","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-360p.mp4","type":"video"},{"name":"100ms-720P","id":"video2","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-720p.mp4","type":"video"},{"name":"Big Buck Bunny","id":"video3","metadata":{"description":"Bunny"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/video2.mp4","type":"video"}]' - REACT_APP_HEADLESS_JOIN: false - REACT_APP_ENABLE_STATS_FOR_NERDS: 'true' - REACT_APP_ENABLE_WHITEBOARD: 'true' - REACT_APP_PDFJS_IFRAME_URL: 'https://pdf-annotation.100ms.live/generic/web/viewer.html' - REACT_APP_ZIPY_KEY: ${{ secrets.PROD_ZIPY_KEY }} - REACT_APP_ENV: 'prod' - REACT_APP_ENABLE_BEAM_SPEAKERS_LOGGING: 'true' - REACT_APP_DASHBOARD_LINK: https://dashboard.100ms.live/ - - steps: - - name: log inputs - run: | - echo "env: prod, branch: ${{ github.ref_name }}" - - #prod app can only be deployed to from a branch starting with production in its name - - name: Validate branch - if: ${{ (!startsWith(github.ref_name, 'production')) }} - run: exit 1 - - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - - name: Checkout repo - uses: actions/checkout@v3 - - - name: Install packages - run: yarn install --frozen-lockfile - - - name: Build for Production - run: yarn build - - - name: 'Upload Build Artifact' - uses: actions/upload-artifact@v3 - with: - name: build-artifact - path: apps/100ms-custom-app/build - - deploy: - needs: build - runs-on: ubuntu-latest - - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }} - aws-region: ${{ secrets.S3_BUCKET_REGION }} - - - name: Download Build artifact - uses: actions/download-artifact@v3 - with: - name: build-artifact - path: build - - - name: Deploy to Staging - env: - BUCKET: ${{ secrets.S3_BUCKET_STAGING }} - # upload static folder first and then upload the rest to ensure index.html assets are all present - run: | - aws s3 sync ./build s3://$BUCKET --exclude "index.html" - aws s3 sync ./build s3://$BUCKET --include "index.html" - - deploy-prod: - environment: - name: ProductionWithPermissions - needs: deploy - runs-on: ubuntu-latest - - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }} - aws-region: ${{ secrets.S3_BUCKET_REGION }} - - - name: Download Build artifact - uses: actions/download-artifact@v3 - with: - name: build-artifact - path: build - - - name: Deploy to Production - env: - BUCKET: ${{ secrets.S3_BUCKET_PROD }} - # upload static folder first and then upload the rest to ensure index.html assets are all present - run: | - aws s3 sync ./build s3://$BUCKET --exclude "index.html" - aws s3 sync ./build s3://$BUCKET --include "index.html" - - - name: Notify slack success - if: success() - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_DEPLOY_BOT_TOKEN }} - uses: voxmedia/github-action-slack-notify-build@v1 - with: - channel_id: ${{ secrets.SLACK_DEPLOY_PROD_CHANNEL_ID }} - status: Success - color: good - - - name: Notify slack fail - if: failure() - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_DEPLOY_BOT_TOKEN }} - uses: voxmedia/github-action-slack-notify-build@v1 - with: - channel_id: ${{ secrets.SLACK_DEPLOY_PROD_CHANNEL_ID }} - status: Failed - color: danger diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-qa.yml deleted file mode 100644 index 214a513167..0000000000 --- a/.github/workflows/deploy-qa.yml +++ /dev/null @@ -1,109 +0,0 @@ -name: Deploy QA -on: - workflow_dispatch: - push: - branches: - - main - paths-ignore: - - 'cypress/**' - - 'playwright/**' - - 'internal-docs/**' - - '.github/**' - -jobs: - build: - runs-on: ubuntu-latest - env: - REACT_APP_TILE_SHAPE: '1-1' - REACT_APP_THEME: 'dark' - REACT_APP_COLOR: '#2F80FF' - REACT_APP_LOGO: '' - REACT_APP_FONT: 'Roboto' - REACT_APP_POLICY_CONFIG: '' - REACT_APP_WEBINAR_PROPS: '{}' - REACT_APP_DEFAULT_APP_DETAILS: '{}' - ENABLE_ROOT_PATH_BUILD_CACHE: '1' - REACT_APP_PUSHER_APP_KEY: ${{ secrets.PUSHER_KEY }} - REACT_APP_AMBIENT_MUSIC: 'https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/Together+With+You.mp3' - REACT_APP_PUSHER_AUTHENDPOINT: 'https://whiteboard-server.vercel.app/api/pusher/auth' - REACT_APP_ZIPY_BLACKLIST: 'peakperformerapp.app.100ms.live,callrockethealth.app.100ms.live,buyume1.app.100ms.live,automation.app.100ms.live,juniorkoder.app.100ms.live,qaroy1.qa-app.100ms.live,kluster.app.100ms.live,pankhuriapp.app.100ms.live,leancrop.app.100ms.live,routes2roots-class.app.100ms.live,liveholofy.app.100ms.live,ulesson.app.100ms.live,truyoga.app.100ms.live' - REACT_APP_PORTRAIT_MODE_DOMAINS: 'whatmorelive-stage.app.100ms.live,arjun.app.100ms.live,koo.app.100ms.live,socialjawn.app.100ms.live' - REACT_APP_AUDIO_PLAYLIST: '[{"name":"Audio1","id":"audio1","metadata":{"description":"Artist1"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio1.mp3","type":"audio"},{"name":"Audio2","id":"audio2","metadata":{"description":"Artist2"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio2.mp3","type":"audio"},{"name":"Audio3","id":"audio3","metadata":{"description":"Artist3"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio3.mp3","type":"audio"},{"name":"Audio4","id":"audio4","metadata":{"description":"Artist4"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/audio4.mp3","type":"audio"}]' - REACT_APP_VIDEO_PLAYLIST: '[{"name":"100ms-360P","id":"video1","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-360p.mp4","type":"video"},{"name":"100ms-720P","id":"video2","metadata":{"description":"100ms"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/100ms-720p.mp4","type":"video"},{"name":"Big Buck Bunny","id":"video3","metadata":{"description":"Bunny"},"url":"https://d2qi07yyjujoxr.cloudfront.net/webapp/playlist/video2.mp4","type":"video"}]' - REACT_APP_HEADLESS_JOIN: false - REACT_APP_ENABLE_STATS_FOR_NERDS: 'true' - REACT_APP_ENABLE_WHITEBOARD: 'true' - REACT_APP_ENV: 'qa' - REACT_APP_ZIPY_KEY: ${{ secrets.ZIPY_KEY }} - REACT_APP_ENABLE_BEAM_SPEAKERS_LOGGING: 'true' - REACT_APP_ENABLE_TRANSCRIPTION: 'true' - REACT_APP_TRANSCRIPTION_PUSHER_AUTHENDPOINT: 'https://whiteboard-server.vercel.app/api/pusher/auth' - REACT_APP_TRANSCRIPTION_PUSHER_APP_KEY: ${{ secrets.PUSHER_KEY }} - REACT_APP_DYNAMIC_STT_TOKEN_GENERATION_ENDPOINT: ${{ secrets.ASSEMBLY_AI_TOKEN_ENDPOINT }} - REACT_APP_TRANSCRIPTION_ROOM_ID: '644df1027cebfa471fcc52fd' - REACT_APP_PDFJS_IFRAME_URL: 'https://pdf-annotation-qa.100ms.live/generic/web/viewer.html' - REACT_APP_INIT_ENDPOINT: https://qa-in2-ipv6.100ms.live/init - REACT_APP_ROOM_LAYOUT_ENDPOINT: https://api-nonprod.100ms.live/v2/layouts/ui - REACT_APP_TOKEN_BY_ROOM_CODE_ENDPOINT: https://auth-nonprod.100ms.live/v2/token - REACT_APP_DASHBOARD_BASE_ENDPOINT: https://qa-in2-ipv6.100ms.live/hmsapi/ - REACT_APP_DASHBOARD_LINK: https://app-qa.100ms.live/ - steps: - - name: log inputs - run: | - echo "env: qa, branch: ${{ github.ref_name }}" - - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - - name: Checkout repo - uses: actions/checkout@v3 - - - name: yarn packages cache - uses: actions/cache@v3 - with: - path: | - node_modules - */*/node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Install packages - run: yarn install --frozen-lockfile - - - name: Build for QA - run: yarn build - - - name: 'Upload Build Artifact' - uses: actions/upload-artifact@v3 - with: - name: build-artifact - path: apps/100ms-custom-app/build - - deploy: - needs: build - runs-on: ubuntu-latest - - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }} - aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }} - aws-region: ${{ secrets.S3_BUCKET_REGION }} - - - name: Download Build artifact - uses: actions/download-artifact@v3 - with: - name: build-artifact - path: build - - - name: Deploy to QA - env: - BUCKET: ${{ secrets.S3_BUCKET }} - # upload static folder first and then upload the rest to ensure index.html assets are all present - run: | - aws s3 sync ./build s3://$BUCKET --exclude "index.html" - aws s3 sync ./build s3://$BUCKET --include "index.html" diff --git a/.github/workflows/npm-install.yml b/.github/workflows/npm-install.yml deleted file mode 100644 index b02804c7de..0000000000 --- a/.github/workflows/npm-install.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: npm-install -run-name: ${{ github.actor }} is checking if npm install is working! -on: - push: - branches: - - main - paths-ignore: - - 'cypress/**' - - 'playwright/**' - - 'internal-docs/**' - - '.github/**' - -jobs: - install-npm: - strategy: - matrix: - node: [ 17, 18 ] - os: [ubuntu-latest, windows-latest] - runs-on: ${{ matrix.os }} - name: Testing Node - ${{ matrix.node }} on ${{ matrix.os }} - steps: - - uses: Bhacaz/checkout-files@v2 - with: - files: apps/100ms-web - - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node }} - - name: npm install - working-directory: apps/100ms-web - run: npm install diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml deleted file mode 100644 index b90354b68c..0000000000 --- a/.github/workflows/playwright.yml +++ /dev/null @@ -1,80 +0,0 @@ -name: Web Automation Tests - -on: - repository_dispatch: - types: [automation] - workflow_dispatch: - inputs: - region: - description: 'Region to run the test for' - required: true - default: 'prod-in' - schedule: - - cron: '*/50 * * * *' - - push: - branches: [main] - paths: - - 'playwright/*' - pull_request: - branches: [main] - paths: - - ".github/workflows/playwright.yml" -jobs: - test: - timeout-minutes: 15 - runs-on: ubuntu-latest - - steps: - # Figure out the region where test needs to be run - - - name: Input from workflow dispatch - if: github.event_name == 'workflow_dispatch' - run: echo "REGION=${{ github.event.inputs.region }}" >> $GITHUB_ENV - - - name: (From Cron) PROD-IN - if: github.event.schedule == '*/50 * * * *' - run: echo "REGION=prod-in" >> $GITHUB_ENV - - - name: print selected region - run: echo "selected region for test = ${{ env.REGION }}" - - # Run test in the above selected region - - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '16' - - run: | - cd playwright - yarn install - npx playwright install - - - name: Test in Region - "${{ env.REGION }}" - run: | - cd playwright - yarn "${{ env.REGION }}" - - - name: Push test result - if: always() - uses: cpina/github-action-push-to-another-repository@main - env: - API_TOKEN_GITHUB: ${{ secrets.DOCKER_GIT_TOKEN }} - with: - source-directory: 'playwright/playwright-report' - destination-github-username: '100mslive' - destination-repository-name: 'automation-reports' - target-branch: '${{ env.REGION }}' - target-directory: 'web' - user-name: 'github-actions[bot]' - user-email: 41898282+github-actions[bot]@users.noreply.github.com - - - name: Send custom test result - if: always() - id: slack - uses: slackapi/slack-github-action@v1.19.0 - with: - payload-file-path: './playwright/slackMessage.json' - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK diff --git a/DEVELOPER.MD b/DEVELOPER.MD index 2ee60cf8fb..c04b14caa6 100644 --- a/DEVELOPER.MD +++ b/DEVELOPER.MD @@ -123,13 +123,9 @@ be putting it in. - If you can't think of a way to avoid media query(should be really rare for roomkit-react), make variants, and use media query from app. -- No fixed height, width in pixels, avoid anything in pixels, rem, percet are fine. +- No fixed height, width in pixels, avoid anything in pixels, rem, percent are fine. - There is almost always a better and more responsive solution using css properties than going for pixel based dimensions or media queries. - -## Coding Guidelines(100ms-web, 100ms-custom-app) - -- Everything react related from above - Write code which is easy to read, understand and customise not only as a whole piece but also when broken down in multiple pieces - No quick POCs with hacky code for merging to main diff --git a/packages/hms-video-store/LICENSE b/LICENSE similarity index 100% rename from packages/hms-video-store/LICENSE rename to LICENSE diff --git a/README.md b/README.md index d4c8231c49..dd8aa847fe 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,6 @@ This monorepo contains all the packages required to integrate 100ms on web ### Local Setup -To setup locally, install lerna globally - -`npm install -g lerna@5` - Clone the repo locally and run yarn install ``` @@ -24,22 +20,6 @@ yarn install yarn test ``` -### Running playwright tests - -Navigate to playwright directory before running below commands. - -## Install packages - -``` -yarn install -``` - -## Run for say qa-in - -``` - yarn qa-in -``` - ### Lint Runs eslint across all packages @@ -48,22 +28,20 @@ Runs eslint across all packages yarn lint ``` -### Running dev server - -Run whatever things you're changing in below in different terminal instances. For other packages you can navigate to -the folder directly and run `yarn start`. +### Running Sample Prebuilt ``` -# for hms-video-store -> yarn store - -# for react-sdk -> yarn reactsdk - -# for roomkit-react -> yarn prebuilt +# do this at the root level +yarn install +yarn build +cd examples/prebuilt-react-integration +yarn dev ``` +You can get a roomCode from [100ms dashboard](https://dashboard.100ms.live) and append at the end + +if you want to make changes in a particular package and want to automatically update the above app, navigate to the package and call yarn start +or use the scripts from the top level package.json ### Update a packages version diff --git a/apps/100ms-custom-app/.dockerignore b/apps/100ms-custom-app/.dockerignore deleted file mode 100644 index b512c09d47..0000000000 --- a/apps/100ms-custom-app/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -node_modules \ No newline at end of file diff --git a/apps/100ms-custom-app/.eslintrc b/apps/100ms-custom-app/.eslintrc deleted file mode 100644 index 5067ea063a..0000000000 --- a/apps/100ms-custom-app/.eslintrc +++ /dev/null @@ -1,79 +0,0 @@ -{ - "extends": [ - "eslint:recommended", - "plugin:import/recommended", - "react-app", - "react-app/jest" - ], - "plugins": ["prettier", "simple-import-sort"], - "rules": { - "no-unused-vars": [ - "error", - { - "vars": "all", - "args": "none", - "ignoreRestSiblings": false - } - ], - "react/jsx-curly-brace-presence": [ - 2, - { - "props": "never" - } - ], - "react/self-closing-comp": [ - "error", - { - "component": true, - "html": false - } - ], - "prettier/prettier": [ - "error", - { - "endOfLine": "auto" // This is need to handle different end-of-line in windows/mac - } - ], - "import/first": "error", - "import/no-duplicates": "error", - "simple-import-sort/imports": [ - "error", - { - "groups": [ - [ - // Packages `react` related packages come first. - "^react", - "^@?\\w", - // Internal packages. - "^@100mslive/react-sdk", - "^@100mslive/react-icons", - "^@100mslive/roomkit-react", - // Side effect imports. - "^\\u0000", - - "(components)", - // Other relative imports. Put same-folder imports and `.`. - "^\\./(?=.*/)(?!/?$)", - "^\\.(?!/?$)", - "^\\./?$", - "(components)?(.*)(/use.*)", - ".*(hooks)", - "(utils)", - "(constants)", - "(assets)", - // Style imports. - "^.+\\.?(css)$" - ] - ] - } - ] - }, - "settings": { - "import/resolver": { - "node": { - "extensions": [".js", ".jsx"] - } - } - }, - "ignorePatterns": ["src/*.css", "src/images/*"] -} diff --git a/apps/100ms-custom-app/.gitignore b/apps/100ms-custom-app/.gitignore deleted file mode 100644 index b112606638..0000000000 --- a/apps/100ms-custom-app/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -tailwind.css - -.idea/ -.env \ No newline at end of file diff --git a/apps/100ms-custom-app/.prettierrc b/apps/100ms-custom-app/.prettierrc deleted file mode 100644 index a97371e802..0000000000 --- a/apps/100ms-custom-app/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "printWidth": 80, - "tabWidth": 2, - "trailingComma": "es5", - "semi": true, - "singleQuote": true, - "arrowParens": "avoid" -} diff --git a/apps/100ms-custom-app/Dockerfile b/apps/100ms-custom-app/Dockerfile deleted file mode 100644 index 8a5df2c65d..0000000000 --- a/apps/100ms-custom-app/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM node:18 - -WORKDIR /app - -COPY package.json ./ - -COPY yarn.lock ./ - -RUN yarn install --frozen-lockfile - -COPY . . - -ENV PORT=8080 - -EXPOSE 8080 - -CMD ["npx", "http-server", "build"] \ No newline at end of file diff --git a/apps/100ms-custom-app/README.md b/apps/100ms-custom-app/README.md deleted file mode 100644 index 8029d0a492..0000000000 --- a/apps/100ms-custom-app/README.md +++ /dev/null @@ -1,78 +0,0 @@ -## About - -This repository holds the code for apps deployed using 100ms dashboard. It uses the web app as a git submodule and adds some extra features over it for customization. - - - - - -# Getting Started with Create React App - -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. - -The page will reload if you make edits.\ -You will also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! - -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** - -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. - -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Learn More - -You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). - -To learn React, check out the [React documentation](https://reactjs.org/). - -### Code Splitting - -This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) - -### Analyzing the Bundle Size - -This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) - -### Making a Progressive Web App - -This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) - -### Advanced Configuration - -This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) - -### Deployment - -This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) - -### `npm run build` fails to minify - -This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/apps/100ms-custom-app/example.env b/apps/100ms-custom-app/example.env deleted file mode 100644 index b1704f9530..0000000000 --- a/apps/100ms-custom-app/example.env +++ /dev/null @@ -1,7 +0,0 @@ -REACT_APP_ENV= -REACT_APP_HOST_NAME= -REACT_APP_TOKEN_BY_ROOM_CODE_ENDPOINT= -REACT_APP_ROOM_LAYOUT_ENDPOINT= -REACT_APP_INIT_ENDPOINT= -REACT_APP_DASHBOARD_BASE_ENDPOINT= -REACT_APP_PUSHER_CLUSTER='' \ No newline at end of file diff --git a/apps/100ms-custom-app/package.json b/apps/100ms-custom-app/package.json deleted file mode 100644 index 655bfb968d..0000000000 --- a/apps/100ms-custom-app/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "100ms-custom-app", - "version": "0.1.0", - "private": true, - "dependencies": { - "@100mslive/react-icons": "0.9.0", - "@100mslive/roomkit-react": "0.2.0", - "axios": "^0.21.1", - "js-cookies": "^1.0.4", - "lodash.merge": "^4.6.2", - "react": "^18.1.0", - "react-dom": "^18.1.0", - "react-use": "^17.4.0", - "web-vitals": "^1.0.1", - "zipyai": "^1.3.24" - }, - "scripts": { - "start": "webpack serve", - "build": "webpack --node-env production", - "lint": "eslint -c .eslintrc --no-error-on-unmatched-pattern src --ext .js --ext jsx", - "lint:fix": "yarn lint --fix", - "format": "prettier -w src" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "devDependencies": { - "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "autoprefixer": "^10.4.2", - "copy-webpack-plugin": "^10.2.1", - "css-loader": "^6.5.1", - "cssnano": "^5.0.15", - "dotenv": "^14.2.0", - "esbuild-loader": "^3.0.0", - "eslint-webpack-plugin": "^3.1.1", - "html-webpack-plugin": "^5.5.0", - "mini-css-extract-plugin": "^2.5.2", - "postcss": "^8.4.5", - "source-map-loader": "^3.0.1", - "terser-webpack-plugin": "^5.3.1" - } -} diff --git a/apps/100ms-custom-app/postcss.config.js b/apps/100ms-custom-app/postcss.config.js deleted file mode 100644 index df1774888a..0000000000 --- a/apps/100ms-custom-app/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - autoprefixer: {}, - cssnano: {}, - }, -}; diff --git a/apps/100ms-custom-app/public/.well-known/apple-app-site-association b/apps/100ms-custom-app/public/.well-known/apple-app-site-association deleted file mode 100644 index e9b9d40ab0..0000000000 --- a/apps/100ms-custom-app/public/.well-known/apple-app-site-association +++ /dev/null @@ -1,42 +0,0 @@ -{ - "applinks": { - "apps": [], - "details": [ - { - "appID": "5N85PP82A9.live.100ms.videoapp", - "paths": [ - "*/meeting/*", - "*/preview/*" - ] - }, - { - "appID": "5N85PP82A9.com.brytecam.app", - "paths": [ - "*/meeting/*", - "*/preview/*" - ] - }, - { - "appID": "5N85PP82A9.live.100ms.reactnative", - "paths": [ - "*/meeting/*", - "*/preview/*" - ] - }, - { - "appID": "5N85PP82A9.live.100ms.flutter", - "paths": [ - "*/meeting/*", - "*/preview/*" - ] - }, - { - "appID": "5N85PP82A9.live.100ms.videoapp.roomkit", - "paths": [ - "*/meeting/*", - "*/preview/*" - ] - } - ] - } -} diff --git a/apps/100ms-custom-app/public/android-chrome-192x192.png b/apps/100ms-custom-app/public/android-chrome-192x192.png deleted file mode 100644 index 4569a1b512..0000000000 Binary files a/apps/100ms-custom-app/public/android-chrome-192x192.png and /dev/null differ diff --git a/apps/100ms-custom-app/public/android-chrome-512x512.png b/apps/100ms-custom-app/public/android-chrome-512x512.png deleted file mode 100644 index b48ff26234..0000000000 Binary files a/apps/100ms-custom-app/public/android-chrome-512x512.png and /dev/null differ diff --git a/apps/100ms-custom-app/public/apple-touch-icon.png b/apps/100ms-custom-app/public/apple-touch-icon.png deleted file mode 100644 index 5dba091d95..0000000000 Binary files a/apps/100ms-custom-app/public/apple-touch-icon.png and /dev/null differ diff --git a/apps/100ms-custom-app/public/error-bg-dark.svg b/apps/100ms-custom-app/public/error-bg-dark.svg deleted file mode 100644 index 5b605741bd..0000000000 --- a/apps/100ms-custom-app/public/error-bg-dark.svg +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/apps/100ms-custom-app/public/error-bg-light.svg b/apps/100ms-custom-app/public/error-bg-light.svg deleted file mode 100644 index bf3a82411e..0000000000 --- a/apps/100ms-custom-app/public/error-bg-light.svg +++ /dev/null @@ -1,14 +0,0 @@ - diff --git a/apps/100ms-custom-app/public/favicon-16x16.png b/apps/100ms-custom-app/public/favicon-16x16.png deleted file mode 100644 index 28634ddc8f..0000000000 Binary files a/apps/100ms-custom-app/public/favicon-16x16.png and /dev/null differ diff --git a/apps/100ms-custom-app/public/favicon-32x32.png b/apps/100ms-custom-app/public/favicon-32x32.png deleted file mode 100644 index 9fad489cdf..0000000000 Binary files a/apps/100ms-custom-app/public/favicon-32x32.png and /dev/null differ diff --git a/apps/100ms-custom-app/public/index.html b/apps/100ms-custom-app/public/index.html deleted file mode 100644 index 823909161f..0000000000 --- a/apps/100ms-custom-app/public/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - -
- - - - - - - - -[^/]+)/;
- const roomCode = path.match(regex)?.groups?.code || null;
- return isRoomCode(roomCode) ? roomCode : null;
-};
-
-export const getRoomIdRoleFromUrl = () => {
- const path = window.location.pathname;
- const regex =
- /(\/streaming)?(\/(preview|meeting))?\/(?[^/]+)\/(?[^/]+)/;
- const roomId = path.match(regex)?.groups?.roomId || null;
- const role = path.match(regex)?.groups?.role || null;
- return {
- roomId,
- role,
- };
-};
-
-export const getAuthInfo = () => {
- let info = { token: undefined, userEmail: undefined };
- try {
- const cookieName =
- process.env.REACT_APP_ENV === 'qa' ? 'authUser-qa' : 'authUser';
- const authUser = JSON.parse(cookies.getItem(cookieName));
- info.token = authUser?.token;
- info.userEmail = authUser?.email;
- } catch (e) {
- // user not logged in
- console.log(e);
- }
- return info;
-};
-
-const env = process.env.REACT_APP_ENV || 'prod';
-export const apiBasePath =
- process.env.REACT_APP_DASHBOARD_BASE_ENDPOINT ||
- `https://${env}-in2.100ms.live/hmsapi/`;
-
-export const getWithRetry = async (url, headers) => {
- const MAX_RETRIES = 4;
- let error = Error('something went wrong');
- for (let i = 0; i < MAX_RETRIES; i++) {
- try {
- return await fetch(url, { method: 'GET', headers: headers });
- } catch (err) {
- error = err;
- }
- }
- console.error('max retry done for get-details', error);
- throw error;
-};
-
-export const getAuthTokenUsingRoomIdRole = async function ({
- subdomain = '',
- roomId = '',
- role = '',
- userId = '',
-}) {
- try {
- if (roomId && role) {
- const resp = await fetch(`${apiBasePath}${subdomain}/api/token`, {
- method: 'POST',
- body: JSON.stringify({
- room_id: roomId,
- role,
- user_id: userId,
- }),
- });
- const { token = '' } = await resp.json();
- return token;
- }
- } catch (e) {
- console.error('failed to getAuthTokenUsingRoomIdRole', e);
- throw Error('failed to get auth token using roomid and role');
- }
-};
-
-export const fetchData = (
- subdomain,
- roomCode,
- setOnlyEmail,
- setData,
- setShowHeader
-) => {
- const jwt = getAuthInfo().token;
-
- const url = `${apiBasePath}apps/get-details?domain=${subdomain}&room_id=${roomCode}`;
- const headers = new Headers();
- if (jwt) {
- headers.set('Authorization', `Bearer ${jwt}`);
- }
- headers.set('Content-Type', 'application/json');
-
- return getWithRetry(url, headers)
- .then(res => res.json())
- .then(res => {
- if (res.success) {
- setOnlyEmail(res.same_user);
- setShowHeader(true);
- setData({
- roomLinks: res.room_links,
- policyID: res.policy_id,
- theme: res.theme,
- });
- }
- })
- .catch(err => {
- setShowHeader(false);
- const errorMessage = `[Get Details] ${err.message}`;
- console.error(errorMessage);
- });
-};
diff --git a/apps/100ms-custom-app/webpack.config.js b/apps/100ms-custom-app/webpack.config.js
deleted file mode 100644
index 058ef4d336..0000000000
--- a/apps/100ms-custom-app/webpack.config.js
+++ /dev/null
@@ -1,168 +0,0 @@
-const path = require('path');
-const webpack = require('webpack');
-const HtmlWebpackPlugin = require('html-webpack-plugin');
-const TerserPlugin = require('terser-webpack-plugin');
-const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-const ESLintPlugin = require('eslint-webpack-plugin');
-const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
-const CopyPlugin = require('copy-webpack-plugin');
-// const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
-require('dotenv').config();
-
-const isProduction = process.env.NODE_ENV === 'production';
-module.exports = {
- mode: isProduction ? 'production' : 'development',
- context: path.resolve(__dirname, 'src'),
- entry: './index.js',
- output: {
- path: path.resolve(__dirname, './build'),
- filename: 'static/js/[name].[chunkhash:8].js',
- assetModuleFilename: 'static/media/[name].[hash][ext]',
- publicPath: '/',
- clean: true,
- devtoolModuleFilenameTemplate: info => {
- return path
- .relative(path.resolve(__dirname, 'src'), info.absoluteResourcePath)
- .replace(/\\/g, '/');
- },
- },
- devtool: isProduction ? 'source-map' : 'cheap-module-source-map',
- target: 'web',
- resolve: {
- extensions: ['.js', '.jsx', '.css', '.svg'],
- fallback: {
- path: false,
- fs: false,
- events: false,
- crypto: false,
- },
- },
- ignoreWarnings: [/Failed to parse source map/], // some libraries do not provide proper source maps which throws this warning
- module: {
- rules: [
- {
- test: /\.js$/,
- enforce: 'pre',
- use: ['source-map-loader'],
- },
- {
- test: /\.jsx?$/,
- use: [
- {
- loader: 'esbuild-loader',
- options: {
- loader: 'jsx',
- target: 'es6',
- },
- },
- ],
- },
- {
- test: /\.css$/i,
- use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader'],
- },
- {
- test: /\.(?:ico|gif|png|jpg|jpeg|svg)$/i,
- type: 'asset/resource',
- },
- {
- test: /\.(woff(2)?|eot|ttf|otf|)$/,
- type: 'asset/inline',
- },
- ],
- },
- optimization: {
- splitChunks: {
- /* chunks: 'all',
- cacheGroups: {
- react: {
- name: 'react',
- enforce: true,
- test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
- reuseExistingChunk: true,
- },
- vendor: {
- name(module) {
- // get the name. E.g. node_modules/packageName/not/this/part.js
- // or node_modules/packageName
- const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
- // npm package names are URL-safe, but some servers don't like @ symbols
- return `vendor-${packageName.replace('@', '')}`;
- },
- enforce: true,
- test: /[\\/]node_modules[\\/](?!react|react-dom)/,
- reuseExistingChunk: true,
- maxSize: 204800,
- },
- default: {
- reuseExistingChunk: true,
- },
- }, */
- },
- runtimeChunk: false,
- minimize: isProduction,
- minimizer: [
- new TerserPlugin({
- minify: TerserPlugin.esbuildMinify,
- }),
- ],
- },
- plugins: [
- new webpack.ProgressPlugin(),
- new ESLintPlugin({ fix: true }),
- new WebpackManifestPlugin({
- fileName: 'asset-manifest.json',
- publicPath: '/',
- generate: (seed, files, entrypoints) => {
- const manifestFiles = files.reduce((manifest, file) => {
- manifest[file.name] = file.path;
- return manifest;
- }, seed);
- const entrypointFiles = entrypoints.main.filter(
- fileName => !fileName.endsWith('.map')
- );
-
- return {
- files: manifestFiles,
- entrypoints: entrypointFiles,
- };
- },
- }),
- // ...(process.env.NODE_ENV !== 'production' ? [new BundleAnalyzerPlugin()] : []),
- new MiniCssExtractPlugin({
- filename: 'static/css/[name].[chunkhash:8].css',
- }),
- new CopyPlugin({
- patterns: [
- {
- from: path.resolve(__dirname, './public'),
- to: path.resolve(__dirname, './build'),
- filter: async resourcePath => {
- if (/index.html/.test(resourcePath)) {
- return false;
- }
- return true;
- },
- },
- ],
- }),
- new HtmlWebpackPlugin({
- template: path.resolve(__dirname, './public/index.html'),
- base: '/',
- }),
- new webpack.ProvidePlugin({
- React: 'react',
- }),
- new webpack.DefinePlugin({
- 'process.env': JSON.stringify(process.env),
- }),
- ],
- devServer: {
- historyApiFallback: true,
- static: path.resolve(__dirname, './public'),
- open: true,
- compress: true,
- hot: true,
- port: 3001,
- },
-};
diff --git a/examples/prebuilt-react-integration/.eslintrc.cjs b/examples/prebuilt-react-integration/.eslintrc.cjs
new file mode 100644
index 0000000000..4dcb43901a
--- /dev/null
+++ b/examples/prebuilt-react-integration/.eslintrc.cjs
@@ -0,0 +1,20 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:react/recommended',
+ 'plugin:react/jsx-runtime',
+ 'plugin:react-hooks/recommended',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
+ settings: { react: { version: '18.2' } },
+ plugins: ['react-refresh'],
+ rules: {
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+}
diff --git a/examples/prebuilt-react-integration/.gitignore b/examples/prebuilt-react-integration/.gitignore
new file mode 100644
index 0000000000..a547bf36d8
--- /dev/null
+++ b/examples/prebuilt-react-integration/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/examples/prebuilt-react-integration/README.md b/examples/prebuilt-react-integration/README.md
new file mode 100644
index 0000000000..375059f0b5
--- /dev/null
+++ b/examples/prebuilt-react-integration/README.md
@@ -0,0 +1,5 @@
+### Running locally
+
+run `yarn build` at the root level of the repo.
+
+Then navigate to this folder and run `yarn dev`
\ No newline at end of file
diff --git a/examples/prebuilt-react-integration/index.html b/examples/prebuilt-react-integration/index.html
new file mode 100644
index 0000000000..895cbcd8ce
--- /dev/null
+++ b/examples/prebuilt-react-integration/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 100ms Prebuilt Integration
+
+
+
+
+
+
diff --git a/examples/prebuilt-react-integration/package.json b/examples/prebuilt-react-integration/package.json
new file mode 100644
index 0000000000..b36bae3a9e
--- /dev/null
+++ b/examples/prebuilt-react-integration/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "prebuilt-react-integration",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@100mslive/roomkit-react": "0.1.19",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.43",
+ "@types/react-dom": "^18.2.17",
+ "@vitejs/plugin-react-swc": "^3.5.0",
+ "eslint": "^8.55.0",
+ "eslint-plugin-react": "^7.33.2",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.5",
+ "vite": "^5.0.8"
+ }
+}
diff --git a/apps/100ms-custom-app/public/favicon.ico b/examples/prebuilt-react-integration/public/favicon.ico
similarity index 100%
rename from apps/100ms-custom-app/public/favicon.ico
rename to examples/prebuilt-react-integration/public/favicon.ico
diff --git a/examples/prebuilt-react-integration/src/App.jsx b/examples/prebuilt-react-integration/src/App.jsx
new file mode 100644
index 0000000000..36892410ef
--- /dev/null
+++ b/examples/prebuilt-react-integration/src/App.jsx
@@ -0,0 +1,12 @@
+import { HMSPrebuilt } from '@100mslive/roomkit-react';
+import { getRoomCodeFromUrl } from './utils';
+
+export default function App() {
+ const roomCode = getRoomCodeFromUrl();
+
+ return (
+
+ )
+}
+
+
diff --git a/examples/prebuilt-react-integration/src/main.css b/examples/prebuilt-react-integration/src/main.css
new file mode 100644
index 0000000000..a38f4942b1
--- /dev/null
+++ b/examples/prebuilt-react-integration/src/main.css
@@ -0,0 +1,19 @@
+html,
+body,
+#root {
+ height: 100%;
+}
+
+body {
+ margin: 0;
+ padding: env(safe-area-inset);
+}
+
+#root {
+ overscroll-behavior-y: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ margin: 0;
+}
\ No newline at end of file
diff --git a/examples/prebuilt-react-integration/src/main.jsx b/examples/prebuilt-react-integration/src/main.jsx
new file mode 100644
index 0000000000..88d3eb0523
--- /dev/null
+++ b/examples/prebuilt-react-integration/src/main.jsx
@@ -0,0 +1,10 @@
+import React from 'react'
+import ReactDOM from 'react-dom/client'
+import App from './App.jsx'
+import './main.css';
+
+ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+ ,
+)
diff --git a/examples/prebuilt-react-integration/src/utils.js b/examples/prebuilt-react-integration/src/utils.js
new file mode 100644
index 0000000000..03ef9eeae7
--- /dev/null
+++ b/examples/prebuilt-react-integration/src/utils.js
@@ -0,0 +1,11 @@
+function isRoomCode(str) {
+ const regex = /^[A-Za-z]*(-[A-Za-z]*){2}$/;
+ return regex.test(str);
+}
+
+export const getRoomCodeFromUrl = () => {
+ const path = window.location.pathname;
+ const regex = /(\/streaming)?(\/(preview|meeting))?\/(?[^/]+)/;
+ const roomCode = path.match(regex)?.groups?.code || null;
+ return isRoomCode(roomCode) ? roomCode : null;
+};
diff --git a/examples/prebuilt-react-integration/vercel.json b/examples/prebuilt-react-integration/vercel.json
new file mode 100644
index 0000000000..9ff22cb4f1
--- /dev/null
+++ b/examples/prebuilt-react-integration/vercel.json
@@ -0,0 +1,9 @@
+{
+ "rewrites": [
+ {
+ "source": "/(.*)",
+ "destination": "/index.html"
+ }
+ ],
+ "outputDirectory": "dist"
+}
diff --git a/examples/prebuilt-react-integration/vite.config.js b/examples/prebuilt-react-integration/vite.config.js
new file mode 100644
index 0000000000..a3a7525363
--- /dev/null
+++ b/examples/prebuilt-react-integration/vite.config.js
@@ -0,0 +1,8 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react-swc'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+
+})
diff --git a/package.json b/package.json
index b8c37b8bdc..9958ebf520 100644
--- a/package.json
+++ b/package.json
@@ -35,12 +35,7 @@
"tslib": "^2.2.0",
"typedoc": "^0.24.8",
"typedoc-plugin-markdown": "^3.14.0",
- "typescript": "~4.7.4",
- "webpack": "^5.76.0",
- "webpack-bundle-analyzer": "^4.5.0",
- "webpack-cli": "^4.9.2",
- "webpack-dev-server": "^4.7.4",
- "webpack-manifest-plugin": "^4.1.1"
+ "typescript": "~4.7.4"
},
"scripts": {
"lint": "lerna run lint",
@@ -54,8 +49,6 @@
"build:only": "lerna run build:only --stream",
"postinstall": "husky install && lerna bootstrap",
"cypress:open": "cypress open",
- "app": "cd apps/100ms-web && yarn start",
- "app:custom": "cd apps/100ms-custom-app && yarn start",
"store": "cd packages/hms-video-store && yarn start",
"reactsdk": "cd packages/react-sdk && yarn start",
"prebuilt": "cd packages/roomkit-react && yarn start",
@@ -69,8 +62,7 @@
},
"workspaces": [
"packages/*",
- "apps/*",
- "playwright/*"
+ "examples/*"
],
"engines": {
"node": ">=16"
diff --git a/packages/roomkit-react/.storybook/preview.tsx b/packages/roomkit-react/.storybook/preview.tsx
index 89f8c112fb..5b454e5e8b 100644
--- a/packages/roomkit-react/.storybook/preview.tsx
+++ b/packages/roomkit-react/.storybook/preview.tsx
@@ -33,7 +33,7 @@ export const decorators: DecoratorFn[] = [
return (
//@ts-ignore
- {Story()}
+ {Story()}
);
},
diff --git a/packages/roomkit-react/package.json b/packages/roomkit-react/package.json
index e1ea7abc92..95b9d7064e 100644
--- a/packages/roomkit-react/package.json
+++ b/packages/roomkit-react/package.json
@@ -65,6 +65,7 @@
"@types/react-window": "^1.8.5",
"babel-loader": "^8.2.5",
"babel-plugin-react-require": "3.1.3",
+ "esbuild-loader": "^4.0.2",
"react": "^18.1.0",
"rollup": "^2.70.1",
"rollup-plugin-esbuild": "^5.0.0",
diff --git a/packages/roomkit-react/src/Introduction/Integrating.stories.mdx b/packages/roomkit-react/src/Introduction/Integrating.stories.mdx
index ad78ebe280..59cb5a2f1f 100644
--- a/packages/roomkit-react/src/Introduction/Integrating.stories.mdx
+++ b/packages/roomkit-react/src/Introduction/Integrating.stories.mdx
@@ -8,7 +8,7 @@ You can use either npm or yarn to install the dependencies. Please install the r
you're planning to use with react or other framework/plain JavaScript.
```bash
-npm install --save @100mslive/hms-video @100mslive/hms-video-store
+npm install --save @100mslive/hms-video-store
```
```bash
diff --git a/playwright/.gitignore b/playwright/.gitignore
deleted file mode 100644
index 75e854d8dc..0000000000
--- a/playwright/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-node_modules/
-/test-results/
-/playwright-report/
-/playwright/.cache/
diff --git a/playwright/dev.md b/playwright/dev.md
deleted file mode 100644
index 89b9fd5ce1..0000000000
--- a/playwright/dev.md
+++ /dev/null
@@ -1,33 +0,0 @@
-## Open Questions
-
-- how to integrate with webhooks, when peer joins, peer join webhook comes, recording webhooks,hls- play and download etc.
-- speeding up tests - browser opening and closing everytime, join, leave happens for every test which is taking time, can we test everything in one session cleanly
-- can we parallely run tests for beam/rtmp and everything else.
-- can we parallelize tests which need only one tab making them use different rooms
-- connect API calls, UI, and webhooks
-- should we structure tests by feature
-
-## Code Improvements
-
-- wrap page to allow for syntax like, page.click(btn)- (code redability)
-- remove hardcoded strings for logging and print the selector string itself
-- make top level tests super simple to write and read
-
-## Next things
-
-- beam url test(P0)
-- checking tracks, directly connecting to store
-- trigger web-sdk on commits
-- Eslint for linting
-- Prettier for formatting
-- move to typscript(add this rule - no-floating-promises)
-- update branch corresponding to env for which test was run
-- common workflow file
-- prod should not
-
-
-
-
-## External issues
-- beam race condition where state is desynced, starting hls gives already started error but room state shows started as false
- (workaround to stop, run this in console - window.__hms.actions.stopHLSStreaming())
diff --git a/playwright/env/.env.prod-eu b/playwright/env/.env.prod-eu
deleted file mode 100644
index fa466f3f81..0000000000
--- a/playwright/env/.env.prod-eu
+++ /dev/null
@@ -1,13 +0,0 @@
-peer_name=peer_
-
-base_url=https://automation.app.100ms.live/meeting
-room_ids=61de7432acfbf593f599bd09,628c92f8b873787aa26f3722,628c930eb873787aa26f3723,628c9321b873787aa26f3726,628c93352630221c75a2df4b,628c934ab873787aa26f372b,628c935e2630221c75a2df4f,628c93742630221c75a2df50
-
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=180*1000
-
-multi_peer_count=3
\ No newline at end of file
diff --git a/playwright/env/.env.prod-in b/playwright/env/.env.prod-in
deleted file mode 100644
index 31e4cfa3fa..0000000000
--- a/playwright/env/.env.prod-in
+++ /dev/null
@@ -1,13 +0,0 @@
-peer_name=peer_
-
-base_url=https://automation-in.app.100ms.live/meeting
-room_ids=6418355c4f410525264f068c,6418354061de6d2e46a80327,6418352c61de6d2e46a80326,641835194f410525264f068b,641835034f410525264f068a,6418344f4f410525264f0689,6418343961de6d2e46a80325,641834164f410525264f0688
-
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=180*1000
-
-multi_peer_count=3
diff --git a/playwright/env/.env.prod-us b/playwright/env/.env.prod-us
deleted file mode 100644
index 75f78195fd..0000000000
--- a/playwright/env/.env.prod-us
+++ /dev/null
@@ -1,13 +0,0 @@
-peer_name=peer_
-
-base_url=https://automation.app.100ms.live/meeting
-room_ids=61de740facfbf593f599bd08,628c9248b873787aa26f3717,628c926eb873787aa26f3719,628c927e2630221c75a2df41,628c92922630221c75a2df42,628c92a62630221c75a2df44,628c92bcb873787aa26f371c,628c92ccb873787aa26f371f
-
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=180*1000
-
-multi_peer_count=3
\ No newline at end of file
diff --git a/playwright/env/.env.qa-in b/playwright/env/.env.qa-in
deleted file mode 100644
index 84b3fd39eb..0000000000
--- a/playwright/env/.env.qa-in
+++ /dev/null
@@ -1,12 +0,0 @@
-peer_name=peer_
-
-base_url=https://prebuilt-automation.qa-app.100ms.live/preview
-room_ids=651d164fa1eeca31647ebc6f
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=500*1000
-
-multi_peer_count=3
\ No newline at end of file
diff --git a/playwright/env/.env.qa-us b/playwright/env/.env.qa-us
deleted file mode 100644
index dbb645c0ac..0000000000
--- a/playwright/env/.env.qa-us
+++ /dev/null
@@ -1,13 +0,0 @@
-peer_name=peer_
-
-base_url=https://qaroy1.qa-app.100ms.live/meeting
-room_ids=61de7826ac305301da5982a0,628c8fea05c6487f9e5564c0,628c900a119d5dbdd03ac0b0,628c902c05c6487f9e5564c1,628c904b05c6487f9e5564c2,628c906905c6487f9e5564c3,628c908505c6487f9e5564c4,628c90a0119d5dbdd03ac0b1
-
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=300*1000
-
-multi_peer_count=3
\ No newline at end of file
diff --git a/playwright/env/.env.stag-in b/playwright/env/.env.stag-in
deleted file mode 100644
index a9aef22aed..0000000000
--- a/playwright/env/.env.stag-in
+++ /dev/null
@@ -1,13 +0,0 @@
-peer_name=peer_
-
-base_url=https://automation-in.staging-app.100ms.live/meeting
-room_ids=6418355c4f410525264f068c,6418354061de6d2e46a80327,6418352c61de6d2e46a80326,641835194f410525264f068b,641835034f410525264f068a,6418344f4f410525264f0689,6418343961de6d2e46a80325,641834164f410525264f0688
-
-twitch_rtmp_url=rtmp://bom01.contribute.live-video.net/app
-twitch_rtmp_key=live_739264700_ANrHsQbCzlLmf6LjtHV7Cc8AKcozWC
-
-yt_rtmp_url=rtmp://a.rtmp.youtube.com/live2/q466-7u7z-x5db-2v2j-e2x4
-
-beam_wait_timeout=180*1000
-
-multi_peer_count=3
diff --git a/playwright/package.json b/playwright/package.json
deleted file mode 100644
index e2726ca3c0..0000000000
--- a/playwright/package.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "name": "web-automation",
- "version": "1.0.0",
- "description": "",
- "main": "index.js",
- "scripts": {
- "qa-in": "APP_ENV=qa ENV_PATH=env/.env.qa-in playwright test",
- "qa-us": "APP_ENV=qa ENV_PATH=env/.env.qa-us playwright test ",
- "qa-eu": "APP_ENV=qa ENV_PATH=env/.env.qa-eu playwright test ",
- "prod-in": "APP_ENV=prod ENV_PATH=env/.env.prod-in playwright test --grep-invert @qaonly",
- "prod-us": "APP_ENV=prod ENV_PATH=env/.env.prod-us playwright test --grep-invert @qaonly",
- "prod-eu": "APP_ENV=prod ENV_PATH=env/.env.prod-eu playwright test --grep-invert @qaonly",
- "stag-in": "APP_ENV=prod ENV_PATH=env/.env.stag-in playwright test --grep-invert @qaonly",
- "prod-sanity": "APP_ENV=prod ENV_PATH=env/.env.prod-in playwright test --grep-invert @ignore",
- "lint": "eslint src/**",
- "lint:fix": "eslint src/** --fix",
- "format": "prettier --write src/**/*.ts"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "devDependencies": {
- "@playwright/test": "^1.33.0",
- "@typescript-eslint/eslint-plugin": "^5.25.0",
- "@typescript-eslint/parser": "^5.25.0",
- "dotenv": "^16.0.0",
- "eslint": "^8.15.0",
- "eslint-plugin-prettier": "^4.0.0",
- "eslint-plugin-react": "^7.29.4",
- "handlebars": "^4.7.7",
- "playwright-watch": "^1.3.23",
- "prettier": "2.6.2",
- "typescript": "^4.6.4",
- "uuid":"9.0.1",
- "jsonwebtoken":"9.0.2"
- }
-}
\ No newline at end of file
diff --git a/playwright/playwright.config.ts b/playwright/playwright.config.ts
deleted file mode 100644
index 835e589841..0000000000
--- a/playwright/playwright.config.ts
+++ /dev/null
@@ -1,169 +0,0 @@
-import { PlaywrightTestConfig } from '@playwright/test';
-
-const envPath = process.env.ENV_PATH;
-require('dotenv').config({ path: envPath });
-/**
- * Read environment variables from file.
- * https://github.com/motdotla/dotenv
- */
-// require('dotenv').config();
-
-let workers = 2;
-if (process.env.room_ids) {
- // number of workers will be equal to number of room ids given
- // find number of commas and add 1
- workers = (process.env.room_ids.match(/,/g) || []).length + 1;
- if (process.env.CI) {
- workers = 8;
- }
- console.log('using number of workers', workers);
-}
-
-const isCI = !!process.env.CI;
-
-/**
- * @see https://playwright.dev/docs/test-configuration
- */
-const config: PlaywrightTestConfig = {
- //globalSetup: require.resolve('./global-setup'),
- testDir: './src/app/tests',
- // testMatch: '**.test.js',
-
- /* Maximum time one test can run for. */
-
- timeout: 500 * 1000,
-
- expect: {
- /**
- * Maximum time expect() should wait for the condition to be met.
- * For example in `await expect(locator).toHaveText();`
- */
- timeout: isCI ? 30000 : 10000,
- },
- /* Fail the build on CI if you accidentally left test.only in the source code. */
- // forbidOnly: isCI,
- /* Retry on CI only */
- retries: 1,
- /* Opt out of parallel tests on CI. */
- workers: 1,
- // workers: 1,
- /* Reporter to use. See https://playwright.dev/docs/test-reporters */
- // reporter: process.env.CI ? 'allure-playwright' : 'github',
- reporter: [['html', { open: 'never', outputFolder: 'playwright-report' }], ['./src/slackReporter.ts'], ['dot']],
-
- /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
- use: {
- /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
- actionTimeout: isCI ? 30000 : 30000,
- /* Base URL to use in actions like `await page.goto('/')`. */
- baseURL: process.env.BASE_URL,
- headless: isCI,
- /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
- trace: 'retain-on-failure',
- // Tell all tests to load signed-in state from 'storageState.json'.
- // storageState: `auth${env}.json`,
- screenshot: 'only-on-failure',
- // capturing and discarding video takes CPU, avoid it on CI
- video: isCI ? 'on-first-retry' : 'retain-on-failure',
- permissions: ['microphone', 'camera'],
- },
-
- /* Configure projects for major browsers */
- projects: [
- // {
- // name: 'chromium',
- // use: {
- // ...devices['Desktop Chrome'],
- // },
- // },
-
- // {
- // name: 'firefox',
- // use: {
- // ...devices['Desktop Firefox'],
- // },
- // },
-
- // {
- // name: 'webkit',
- // use: {
- // ...devices['Desktop Safari'],
- // },
- // },
-
- /* Test against mobile viewports. */
- // {
- // name: 'Mobile Chrome',
- // use: {
- // ...devices['Pixel 5'],
- // },
- // },
-
- // {
- // name: 'Mobile Safari',
- // use: {
- // ...devices['iPhone 12'],
- // },
- // },
-
- /* Test against branded browsers. */
- // {
- // name: 'Microsoft Edge',
- // use: {
- // channel: 'msedge',
- // },
- // },
-
- {
- name: 'Google Chrome',
- use: {
- channel: 'chrome',
- launchOptions: {
- args: [
- '--use-fake-device-for-media-stream',
- '--use-fake-ui-for-media-stream',
- '--autoplay-policy=no-user-gesture-required',
- ],
- },
- },
- },
- ],
-
- /* Folder for test artifacts such as screenshots, videos, traces, etc. */
- // outputDir: "detailed-report",
-
- /* Run your local dev server before starting the tests */
- // webServer: {
- // command: 'npm run start',
- // port: 3000,
- // },
-};
-
-const setupEnv = () => {
- const workerIndex = Number(process.env.TEST_PARALLEL_INDEX);
- const roomIDsStr = process.env.room_ids;
- if (roomIDsStr && workerIndex !== undefined) {
- const roomIds = roomIDsStr.split(',');
- const roomId = roomIds[workerIndex];
- const baseUrl = process.env.base_url;
-
- const getUrl = (role: string) => {
- return `${baseUrl}/${roomId}/${role}`;
- };
-
- console.log('env setup before all tests for worker - ', workerIndex, baseUrl, roomId);
-
- process.env.broadcaster = getUrl('broadcaster');
- process.env.co_broadcaster = getUrl('co-broadcaster');
- process.env.viewer_near_realtime = getUrl('viewer-near-realtime');
- process.env.viewer_realtime = getUrl('viewer-realtime');
- process.env.viewer_on_stage = getUrl('viewer-on-stage');
-
- const randomNumber = Math.floor(Math.random() * 10000);
- process.env.peer_name = `peer_${randomNumber}_`;
- }
-};
-
-setupEnv();
-
-module.exports = config;
diff --git a/playwright/src/app/PageActions.ts b/playwright/src/app/PageActions.ts
deleted file mode 100644
index 02808493e8..0000000000
--- a/playwright/src/app/PageActions.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Selectors } from "./selectors/Selectors";
-
-let selectors = new Selectors();
-export class PageActions {
-
- async endSession(page: any) {
- await page.getByTestId(selectors.DropDown).click();
- await page.getByTestId(selectors.EndSessionOption).click();
- await page.getByTestId(selectors.EndSession).click();
- }
-
- async stopRecording(page: any) {
- await page.getByText(selectors.StopRec).click();
- await page.getByText(selectors.StopRecConfirmText).isVisible();
- await page.getByTestId(selectors.StopRecButton).click();
- }
-
- async joinRoom(page: any, name: string) {
- await page.getByPlaceholder('Enter name').fill(name);
- await page.getByText(selectors.JoinBtn).click();
- await page.waitForTimeout(2000);
- }
-
- async goLive(page: any, name: string) {
- await page.getByPlaceholder('Enter name').fill(name);
- await page.getByText(selectors.GoLive).click();
- await page.waitForTimeout(2000);
- }
-
- async createNewPoll(name: string, page:any) {
- await page.getByTestId(selectors.PollsMenuBtn).click();
- await page.locator(selectors.PollName).fill(name);
- await page.getByText(selectors.CreatePollBtn).click();
- await page.getByPlaceholder(selectors.QuestionName).fill('question no 1');
- await page.getByPlaceholder('Option 1').fill('Option1');
- await page.getByPlaceholder('Option 2').fill('Option2');
- await page.getByText('Save').click();
- await page.getByText(selectors.LaunchPollBtn).click();
- }
-
- async createNewQuiz(name: string, page:any) {
- await page.getByTestId(selectors.PollsMenuBtn).click();
- await page.getByText('Quiz').nth(1).click();
- await page.locator(selectors.QuizName).fill(name);
- await page.getByText(selectors.CreateQuizBtn).click();
- await page.getByPlaceholder(selectors.QuestionName).fill('question no 1');
- await page.getByPlaceholder('Option 1').fill('Option1');
- await page.getByPlaceholder('Option 2').fill('Option2');
- await page.locator('button[role=radio]').nth(1).click();
- await page.getByText('Save').click();
- await page.getByText(selectors.LaunchQuizBtn).click();
- }
- async vote(page: any, isQuiz: boolean) {
- await page.getByTestId(selectors.PollsMenuBtn).click();
- await page.getByText('View').click();
- await page.locator('button[role=radio]').nth(1).click();
- if(isQuiz)
- await page.getByText(selectors.AnswerBtn).click();
- else
- await page.getByText(selectors.VoteBtn).click();
- }
-
- async turnOnStatsForNerds(page: any){
- await page.getByTestId(selectors.MoreSettingsBtn).click();
- await page.getByText(selectors.StatsForNerdsMenu).click();
- await page.locator(selectors.ShowStatsBtn).click();
- await page.getByTestId(selectors.StatsForNerdsCloseBtn).click();
- }
-}
diff --git a/playwright/src/app/PageWrapper.ts b/playwright/src/app/PageWrapper.ts
deleted file mode 100644
index 4980a7d551..0000000000
--- a/playwright/src/app/PageWrapper.ts
+++ /dev/null
@@ -1,339 +0,0 @@
-import { BrowserContext, ChromiumBrowserContext, Dialog, expect, Page as PlaywrightPage } from '@playwright/test';
-import { PreviewPage } from './selectors/PreviewPage';
-import { PrePreviewPage } from './selectors/PrePreviewPage';
-import { HlsViewerPage } from './selectors/HlsViewerPage';
-import { Header } from './selectors/Header';
-import { Center } from './selectors/Center';
-import { Footer } from './selectors/Footer';
-
-export class PageWrapper {
- [x: string]: any;
- private page: PlaywrightPage;
- localName: string;
- prepreview: PrePreviewPage;
- preview: PreviewPage;
- hlsViewer: HlsViewerPage;
- header: Header;
- center: Center;
- footer: Footer;
-
- constructor(page: PlaywrightPage) {
- this.page = page;
- this.localName = '';
- this.preview = new PreviewPage(this);
- this.prepreview = new PrePreviewPage(this);
- this.header = new Header(this);
- this.footer = new Footer(this);
- this.center = new Center(this);
- this.hlsViewer = new HlsViewerPage(this);
- }
-
- static async openMeetingPage(nativePage: PlaywrightPage, joinConfig?: JoinConfig) {
- const page = new PageWrapper(nativePage);
- await page.gotoMeetingRoom(joinConfig);
- return page;
- }
-
- static async openHLSMeetingPage(nativePage: PlaywrightPage, joinConfig?: JoinConfig) {
- const page = new PageWrapper(nativePage);
- await page.gotoHLSMeetingRoom(joinConfig);
- return page;
- }
-
- /**
- * open n number of pages and goto meeting room in all of them
- */
- static async openPages(context: BrowserContext, roles: string[], joinConfig?: JoinConfig) {
- const pages = [];
- const promises = [];
- for (let i = 0; i < roles.length; i++) {
- joinConfig = joinConfig || {};
- joinConfig.name = process.env.peer_name + i;
- joinConfig.role = roles[i];
- pages[i] = new PageWrapper(await context.newPage());
- promises.push(pages[i].gotoMeetingRoom(joinConfig));
- }
- await Promise.all(promises);
- return pages;
- }
-
- acceptDialogWhenPrompted() {
- this.page.on('dialog', async (dialog: Dialog) => {
- console.log('Dialog opened', dialog.message());
- await dialog.accept();
- });
- }
-
- async gotoMeetingRoom({ url, name, mic, cam, role }: JoinConfig = {}) {
- console.log(role);
- switch(role) {
- case 'co-broadcaster':
- url = url || process.env.co_broadcaster;
- break;
- case 'viewer-near-realtime':
- url = url || process.env.viewer_near_realtime;
- break;
- case 'viewer-realtime':
- url = url || process.env.viewer_realtime;
- break;
- case 'viewer-on-stage':
- url = url || process.env.viewer_on_stage;
- break;
- default:
- url = url || process.env.broadcaster;
- }
-
- name = name || `${process.env.peer_name}0`;
- if (mic === undefined) {
- mic = false;
- }
- if (cam === undefined) {
- cam = false;
- }
- await this.preview.gotoMeetingRoom(url, name, mic, cam);
- this.localName = name;
- }
-
- async gotoHLSMeetingRoom({ url, name }: JoinConfig = {}) {
- url = url || `${process.env.hls_viewer_url}`;
- name = name || `${process.env.peer_name}0`;
- await this.hlsViewer.gotoHLSMeetingRoom(url, name);
- this.localName = name;
- }
-
- async click(...elementIds: string[]) {
- for (const element of elementIds) {
- await this.clickOnce(element);
- }
- }
-
- async clickWithTimeout(timeoutMs: number, ...elementIds: string[]) {
- for (const element of elementIds) {
- await this.page.locator(element).click({ timeout: timeoutMs });
- }
- }
-
- async assertEnabled(elementId: string) {
- await this.page.locator(elementId).isEnabled();
- }
-
- async assertDisabled(elementId: string) {
- await this.page.locator(elementId).isDisabled();
- }
-
- async assertVisible(elementId: string) {
- console.log('going to assert visibility', elementId);
- await this.page.waitForSelector(elementId, { state: 'visible' });
- console.log('asserted visibility for', elementId);
- }
-
- async checkScreenMode() {
- const isFullScreen = await this.page.evaluate(() => {
- return document.fullscreenElement !== null;
- });
- return isFullScreen;
- }
-
- locator(elementSelector: string) {
- return this.page.locator(elementSelector);
- }
-
- async assertNotVisible(elementId: string) {
- console.log('going to assert non visibility', elementId);
- await expect(this.page.locator(elementId)).toBeHidden();
- console.log('asserted non visibility for', elementId);
- }
-
- async sendText(elementId: string, text: string) {
- await this.page.locator(elementId).fill(text);
- console.log('Text sent: ', text, 'to element', elementId);
- }
-
- async hasText(elementId: string, msgSent: string) {
- const innerText = (await this.getText(elementId)) as string;
- expect(innerText.includes(msgSent)).toBeTruthy();
- }
-
- async hasValue(elementId: string, msgSent: string) {
- const innerValue = (await this.getValue(elementId)) as string;
- expect(innerValue.includes(msgSent)).toBeTruthy();
- }
-
- async hasLink(elementId: string, hrefLink: string){
- const emojiHref = await this.page.locator(elementId).getAttribute('href');
- expect(emojiHref?.includes(hrefLink))
- }
-
- /**
- * @returns {String}
- */
- async getText(elementId: string) {
- const text = await this.page.locator(elementId).textContent();
- console.log('Text Found- ', text);
- return text;
- }
-
- async getValue(elementId: string) {
- const value = await this.page.locator(elementId).getAttribute('value');
- console.log('Value Found- ', value);
- return value;
- }
-
- async gotoPreviewPage() {
- await this.prepreview.gotoPreviewPage(this.localName);
- }
-
- async goto({ url }: { url?: string } = {}) {
- url = url || process.env.broadcaster;
- await this.page.goto(url);
- }
-
- async timeout(timeMs: number) {
- await this.page.waitForTimeout(timeMs);
- }
-
- async close() {
- await this.page.close({ runBeforeUnload: true });
- }
-
- async evaluateCommand(command: string) {
- await this.page.evaluate(command);
- }
-
- async endRoom() {
- try {
- await this.footer.endRoom();
- } catch (e) {
- console.log('No room to end', e);
- }
- }
-
- async getUrl() {
- const currentUrl = this.page.url();
- console.log('currentURL: ', currentUrl);
- return currentUrl;
- }
-
- // async selectPopupOption(selectId: string, locatorId: string) {
- // await this.page.locator(locatorId).selectOption(selectId);
- // }
-
- async assertLocalAudioState(enabled?: boolean) {
- await this.footer.assertLocalAudioState(enabled);
- }
-
- async assertLocalVideoState(enabled?: boolean) {
- await this.footer.assertLocalVideoState(enabled);
- }
-
- /**
- * @internal
- * @private
- */
- async clickOnce(elementId: string) {
- // await expect(this.page.locator(elementId)).toBeEnabled();
- await this.page.locator(elementId).nth(0).click();
- console.log('Clicked: ', elementId);
- }
-
- async hover(elementId: string) {
- await this.page.hover(elementId);
- console.log('Hovered: ', elementId);
- }
-
- async setInternetEnabled(enabled: boolean) {
- const isOffline = !enabled;
- if (enabled) {
- this.emulateNetwork(isOffline, 0, 500, 500);
- } else {
- this.emulateNetwork(isOffline, -1, -1, -1);
- }
- console.log('Internet enabled: ', enabled);
- }
-
- /**
- * function to emulate network traffic
- * pass offline : true for making page offline
- */
- async emulateNetwork(offline: boolean, latency: number, downloadThroughput: number, uploadThroughput: number) {
- const context = this.page.context() as ChromiumBrowserContext;
- const client = await context.newCDPSession(this.page);
- await client.send('Network.emulateNetworkConditions', {
- offline: offline,
- latency: latency,
- downloadThroughput: downloadThroughput,
- uploadThroughput: uploadThroughput,
- });
- }
-
- async delay(ms: number) {
- return new Promise(resolve => setTimeout(resolve, ms));
- }
-
- /**
- * accepts string values like F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal,
- * Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp
- */
- async pressKey(key: string) {
- await this.page.keyboard.press(key);
- }
-
- /**
- * function to send message in chat to all, any peer or
- * peers with specific role. Pass msg and "all", or "peername" or "roleName" for sending
- * message to all or particular peer or peers with specific role.
- */
- async sendMessage(msg: string) {
- await this.sendText(this.footer.chat_placeholder, msg);
- await this.pressKey('Enter');
- }
-
- /**
- * function to select peer or role in chat
- * pass peer name or role name to chat with
- */
- async selectPeerOrRole(name: string) {
- await this.page.click(this.footer.chat_peer_selector);
- await this.page.click(`text=${name}`);
- }
-
- async interceptAndMockLayoutApi(data: any) {
- await this.page.route('*/**/v2/layouts/ui', async route => {
- if(route.request().method() == "GET") {
- const response = await route.fetch();
- let json = require('./../../test-data/layouts.json');
- if(data.feature == 'chatPanel')
- json.data[0].screens.conferencing.default.elements.chat = data.value
- if((data.feature == 'participantList') && (data.state == 'hidden')) {
- console.log('deleting... ', data.feature);
- delete json.data[0].screens.conferencing.default.elements.participant_list;
- }
- if((data.feature == 'emojiReactions') && (data.state == 'hidden')) {
- console.log('deleting... ', data.feature);
- delete json.data[0].screens.conferencing.default.elements.emoji_reactions;
- }
- if(data.feature == 'title')
- json.data[0].screens.preview.default.elements.preview_header.title = data.value;
- if(data.feature == 'subTitle')
- json.data[0].screens.preview.default.elements.preview_header.sub_title = data.value
- if(data.feature == 'joinButton')
- json.data[0].screens.preview.default.elements.join_form.join_btn_type = data.value
-
- await route.fulfill({ response, json });
- }
- });
- }
-
- async openMessageOptions() {
- await this.page.click(this.footer.chat_msg);
- await this.page.click(this.footer.chat_msg_options);
- }
-}
-
-export interface JoinConfig {
- url?: string;
- name?: string;
- cam?: boolean;
- mic?: boolean;
- role?: string;
-}
diff --git a/playwright/src/app/old_tests/Chat/Chat.test.ts b/playwright/src/app/old_tests/Chat/Chat.test.ts
deleted file mode 100644
index 5cc053f1cd..0000000000
--- a/playwright/src/app/old_tests/Chat/Chat.test.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-const peersCount = Number(process.env.multi_peer_count);
-let pages: PageWrapper[];
-test.beforeEach(async ({ context }) => {
- pages = await PageWrapper.openPages(context, peersCount);
-});
-
-test.afterEach(async () => {
- pages[0].endRoom();
-});
-
-test(`Send msg to everyone`, async () => {
- const msg = 'Hello, how are you ?';
- await pages[0].sendMessage(msg, 'all');
- for (let i = 1; i < peersCount; i++) {
- await pages[i].click(pages[i].footer.chat_btn);
- await pages[i].hasText(pages[i].footer.first_chat_msg, msg);
- }
-});
-
-// to be fixed
-test.skip(`Send msg to particular peer`, async () => {
- const msg = 'Hello, how are you ?';
- const peerName = pages[1].localName;
- await pages[0].sendMessage(msg, peerName);
- for (let i = 1; i < peersCount; i++) {
- await pages[i].click(pages[i].footer.chat_btn);
- }
- await pages[1].hasText(pages[1].footer.first_chat_msg, msg);
-});
-
-test(`Send msg to peers with specific role`, async () => {
- const msg = 'Hello, how are you ?';
- const roleName = 'audio-video-sshare';
- await pages[0].sendMessage(msg, roleName);
- for (let i = 1; i < peersCount; i++) {
- await pages[i].click(pages[i].footer.chat_btn);
- await pages[i].hasText(pages[i].footer.first_chat_msg, msg);
- await pages[i].hasText(pages[i].footer.first_chat_msg, 'TOaudio-video-sshare');
- }
-});
diff --git a/playwright/src/app/old_tests/InRoom/InRoom.test.ts b/playwright/src/app/old_tests/InRoom/InRoom.test.ts
deleted file mode 100644
index cacbe6f8da..0000000000
--- a/playwright/src/app/old_tests/InRoom/InRoom.test.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { expect, test } from "@playwright/test";
-
-let page: PageWrapper;
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {});
-
-test(`Verify greeting tile for first participant`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.assertVisible(page.center.first_person_img);
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify room URL`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- const currentURL = await page.getUrl();
- const meetingURL = currentURL.replace("preview", "meeting");
- expect(meetingURL).toContain(process.env.audio_video_screenshare_url);
- await page.endRoom();
-});
-
-const peersCount = Number(process.env.multi_peer_count);
-
-//publishing role and non publishing role
-test(`Verify Join peers`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, peersCount);
-
- for (let i = 0; i < peersCount; i++) {
- await pages[i].click(pages[i].header.participant_list);
- for (let j = 0; j < peersCount; j++) {
- const participantName = pages[i].header.participant_name.replace("?", pages[j].localName);
- await pages[i].assertVisible(participantName);
- await pages[i].hasText(participantName, process.env.peer_name + j);
- }
- await pages[i].click("html");
- }
- // await pages[0].click(pages[0].header.participant_number.replace("?","0"))
- await pages[0].endRoom();
- await context.close();
-});
-
-test(`Verify network on tile and peerlist`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, 2, { mic: true, cam: true });
- for (let i = 0; i < 2; i++) {
- await pages[i].click(
- pages[i].header.participant_list,
- pages[i].header.peerlist_network.replace("?", pages[i].localName)
- );
- await pages[i].assertVisible(pages[i].center.network_ontile.replace("?", pages[i].localName));
- }
- await pages[0].endRoom();
- await context.close();
-});
-
-
-test(`Verify emoji container text and is clickable`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.assertVisible(page.footer.emoji_btn);
- await page.click(page.footer.emoji_btn);
- await page.assertVisible(page.footer.emoji_container);
-
- //verify emoji container text
- await page.hasText(page.footer.emoji_container_text, page.footer.expected_emoji_container_text);
- await page.hasText(page.footer.emoji_container_href, page.footer.expected_emoji_container_href_text);
- await page.hasLink(page.footer.emoji_container_href, page.footer.expected_emoji_href_link);
-
- //verify emojis are clickable through iteration
- let emojis = page.locator(page.footer.emoji_container);
- let emojiCount = await emojis.count();
- for (let emoji = 0; emoji < emojiCount; emoji++) {
- await emojis.nth(emoji).click();
- }
- // close emoji container
- await page.click("html");
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify SFN cta in advanced settings`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.click(page.footer.more_settings_btn, page.footer.stats_for_nreds_btn)
- await page.hasText(page.center.sfn_onText, page.center.expected_sfn_header)
- let SFNDialogText = page.locator(page.center.sfn_dialog_texts)
- expect(await SFNDialogText.count()).not.toEqual(0);
- await page.click(page.footer.enable_sfn, page.footer.close_sfn_modal)
- await page.assertVisible(page.center.sfn_onTile)
- let SFNContent = page.locator(page.center.sfn_onTile);
- expect(await SFNContent.count()).not.toEqual(0);
- await page.endRoom();
- await page.close();
-});
-
-
-test.skip(`Verify full screen page`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- // switch to full screen mode
- await page.click(page.footer.more_settings_btn, page.footer.full_screen_btn);
- let isFullScreen = await page.checkScreenMode();
- expect(isFullScreen).toBeTruthy();
- // switch to normal screen mode
- await page.click(page.footer.more_settings_btn, page.footer.full_screen_btn);
- isFullScreen = await page.checkScreenMode();
- expect(isFullScreen).not.toBeTruthy();
- await page.endRoom();
- await page.close();
-});
-
-//Disabled it on 24th July as this feature(Just embed) doesn't exist anymore
-test.skip(`Verify valid embed url and stop embed`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta);
- await page.sendText(page.footer.embed_url_text_field, page.footer.valid_embed_url)
- await page.click(page.footer.embed_share_cta);
- await page.assertNotVisible(page.center.first_person_img);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta, page.footer.stop_embed_cta);
- await page.endRoom();
- await page.close();
-});
-
-//Disabled it on 24th July as this feature(Just embed) doesn't exist anymore
-test.skip(`Verify invalid embed url`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta);
- await page.sendText(page.footer.embed_url_text_field, page.footer.invalid_embed_url)
- await page.click(page.footer.embed_cta)
- await page.assertNotVisible(page.center.first_person_img)
- expect(page.locator(page.footer.invalid_embed_link_header).isVisible).toBeTruthy();
- expect(page.locator(page.footer.inavlid_embed_link_subject).isVisible).toBeTruthy();
- await page.endRoom();
- await page.close();
-});
-
-//Disabled it on 24th July as this feature(Just embed) doesn't exist anymore
-test.skip(`Update embed url`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta);
- await page.sendText(page.footer.embed_url_text_field, page.footer.valid_embed_url);
- await page.click(page.footer.embed_share_cta);
- await page.assertNotVisible(page.center.first_person_img);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta);
- await page.sendText(page.footer.embed_url_text_field, page.footer.invalid_embed_url);
- await page.click(page.footer.update_embed_cta);
- await page.click(page.footer.more_settings_btn, page.footer.embed_url_cta);
- await page.hasValue(page.footer.embed_url_text_field, page.footer.invalid_embed_url);
- await page.click(page.footer.stop_embed_cta);
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify PIP mode button is displayed and visible`, async({page: nativePage}) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await expect(page.locator(page.header.pip_btn)).toBeEnabled();
-});
diff --git a/playwright/src/app/old_tests/InRoom/ParticipantList.test.ts b/playwright/src/app/old_tests/InRoom/ParticipantList.test.ts
deleted file mode 100644
index 20f3199b0e..0000000000
--- a/playwright/src/app/old_tests/InRoom/ParticipantList.test.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-const peersCount = Number(process.env.multi_peer_count);
-
-test(`Verify Number & Name in Participant list`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.assertVisible(page.header.participant_list);
- await page.hasText(page.header.participant_list, '1');
-
- await page.click(page.header.participant_list);
- const participant = page.header.participant_name.replace('?', page.localName);
-
- await page.assertVisible(participant);
- await page.hasText(participant, page.localName);
- await page.click('html');
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify Number of multiple participants`, async ({ context }, testInfo) => {
- if (testInfo.retry) {
- const page = await PageWrapper.openPages(context, 1);
- await page[0].endRoom();
- }
- const pages = await PageWrapper.openPages(context, peersCount);
- await pages[0].delay(5000);
- for (let i = 0; i < peersCount; i++) {
- await pages[i].hasText(pages[i].header.participant_list, `${peersCount}`);
- }
- await pages[0].endRoom();
-});
diff --git a/playwright/src/app/old_tests/InRoom/xyz.test.ts b/playwright/src/app/old_tests/InRoom/xyz.test.ts
deleted file mode 100644
index f6e4a5e3cd..0000000000
--- a/playwright/src/app/old_tests/InRoom/xyz.test.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from '@playwright/test';
-
-
-let page: PageWrapper;
-
-test(`Verify greeting tile for first participant @mock`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-
- await page.delay(40000);
-
-});
diff --git a/playwright/src/app/old_tests/LocalUpdates/ChangeName.test.ts b/playwright/src/app/old_tests/LocalUpdates/ChangeName.test.ts
deleted file mode 100644
index 07f55967b3..0000000000
--- a/playwright/src/app/old_tests/LocalUpdates/ChangeName.test.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test(`Change name check`, async () => {
- const oldName = page.localName;
- const newName = 'peer_new_name';
-
- await page.center.assertTilePresence(oldName, true);
- await page.header.assertPeerInPeerList(oldName, true);
-
- await page.footer.changeName(newName);
-
- // name changed for both tile and participant list
- await page.header.assertPeerInPeerList(oldName, false);
- await page.center.assertTilePresence(oldName, false);
-
- await page.header.assertPeerInPeerList(newName, true);
- await page.center.assertTilePresence(newName, true);
-
- // const peerTileName = page.center.getNameOnTile(0);
- // await page.hasText(peerTileName, "peer_2");
-});
diff --git a/playwright/src/app/old_tests/LocalUpdates/ChangeSelfRole.test.ts b/playwright/src/app/old_tests/LocalUpdates/ChangeSelfRole.test.ts
deleted file mode 100644
index 762f16a821..0000000000
--- a/playwright/src/app/old_tests/LocalUpdates/ChangeSelfRole.test.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {});
-
-test(`Change self Role`, async () => {
- //Chech abscence and prescence of tracks
- //change role permission not present
- for (let i = 0; i <= 5; i++) {
- if (i === 3) {
- continue;
- }
- await page.click(page.footer.more_settings_btn, page.footer.change_my_role_btn);
-
- const changeRole = page.footer.change_to_role_.replace("?", page.header.role_list[i]);
-
- const bottom_center_role = await page.getText(changeRole);
- await page.click(changeRole);
-
- await page.click(page.header.participant_list);
- await page.assertVisible(
- page.header.participant_role_heading.replace("?", bottom_center_role!)
- );
- await page.click("html");
- }
- await page.endRoom();
- await page.close();
-});
diff --git a/playwright/src/app/old_tests/LocalUpdates/DeviceSettings.test.ts b/playwright/src/app/old_tests/LocalUpdates/DeviceSettings.test.ts
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/playwright/src/app/old_tests/LocalUpdates/LeaveRoom.test.ts b/playwright/src/app/old_tests/LocalUpdates/LeaveRoom.test.ts
deleted file mode 100644
index 418aef5f7a..0000000000
--- a/playwright/src/app/old_tests/LocalUpdates/LeaveRoom.test.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-//leave and join again
-test(`Verify leave room`, async () => {
- await page.footer.leaveRoom();
- await page.assertVisible(page.center.left_room_message);
- await page.click(page.center.join_again_btn);
- await page.assertVisible(page.preview.preview_join_btn);
-});
diff --git a/playwright/src/app/old_tests/LocalUpdates/LocalTrack.test.ts b/playwright/src/app/old_tests/LocalUpdates/LocalTrack.test.ts
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/playwright/src/app/old_tests/LocalUpdates/PinTile.test.ts b/playwright/src/app/old_tests/LocalUpdates/PinTile.test.ts
deleted file mode 100644
index d5c766d8d9..0000000000
--- a/playwright/src/app/old_tests/LocalUpdates/PinTile.test.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let pages: PageWrapper[];
-let local_name: string;
-let tile_name: string;
-
-test.beforeEach(async ({ context }) => {
- pages = await PageWrapper.openPages(context, 2, {
- mic: true,
- cam: true,
- });
- await pages[0].delay(2000);
- local_name = pages[0].localName;
- tile_name = pages[0].center.participant_tile.replace('?', local_name);
-});
-
-test.afterEach(async ({ context }) => {
- await pages[0].endRoom();
- await context.close();
-});
-
-test(`Pin/unpin tile for yourself`, async () => {
- await pages[0].hover(tile_name);
- await pages[0].click(pages[0].center.participant_tile_menu_btn.replace('?', local_name));
- await pages[0].click(pages[0].center.tile_menu_pin_tile);
- await pages[0].delay(1000);
- await pages[0].hover(tile_name);
- await pages[0].click(pages[0].center.participant_tile_menu_btn.replace('?', local_name));
- await pages[0].click(pages[0].center.tile_menu_unpin_tile);
-});
diff --git a/playwright/src/app/old_tests/LocalUpdates/RaisehandBRB.test.ts b/playwright/src/app/old_tests/LocalUpdates/RaisehandBRB.test.ts
deleted file mode 100644
index 3b8956a007..0000000000
--- a/playwright/src/app/old_tests/LocalUpdates/RaisehandBRB.test.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify Raise Hand Brb on Tile`, async () => {
- for (let i = 0; i < 3; i++) {
- await page.timeout(3000);
- await page.click(page.footer.raise_hand_btn);
- await page.assertVisible(page.center.raiseHand_icon_onTile);
- await page.assertNotVisible(page.center.brb_icon_onTile);
- await page.timeout(3000);
- await page.click(page.footer.brb_btn);
- await page.assertVisible(page.center.brb_icon_onTile);
- await page.assertNotVisible(page.center.raiseHand_icon_onTile);
- }
-});
diff --git a/playwright/src/app/old_tests/Outputs/Beam.test.ts b/playwright/src/app/old_tests/Outputs/Beam.test.ts
deleted file mode 100644
index 2a5c9cd69d..0000000000
--- a/playwright/src/app/old_tests/Outputs/Beam.test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { test } from "@playwright/test";
-import { PageWrapper } from "../../PageWrapper";
-
-test(`Beam skip preview Url check`, async ({ page: nativePage }) => {
- let url = `${process.env.audio_video_screenshare_url}?skip_preview=true`;
- url = url.replace("meeting", "preview");
- console.log("beam url", url);
- const page = new PageWrapper(nativePage);
- await page.goto({ url });
- await assertCommonBeam(page, "Beam");
- await page.assertVisible(page.center.first_person_img);
- await page.close();
-});
-
-test(`Beam skip preview + name + active speaker url check`, async ({ page: nativePage }) => {
- const peerName = `name_${Math.random()}`;
- let url = `${process.env.audio_video_screenshare_url}?skip_preview=true&name=${peerName}&ui_mode=activespeaker`;
- url = url.replace("meeting", "preview");
- console.log("beam url", url);
- const page = new PageWrapper(nativePage);
- await page.goto({ url });
- await assertCommonBeam(page, peerName);
- await page.assertNotVisible(page.center.first_person_img);
- await page.close();
-});
-
-async function assertCommonBeam(page: PageWrapper, peerName: string) {
- await page.center.assertTilePresence(peerName, true);
- await page.assertNotVisible(page.header.header);
- await page.assertNotVisible(page.footer.footer);
- await page.assertVisible(page.center.conferencing);
-}
diff --git a/playwright/src/app/old_tests/Outputs/RtmpHls.test.ts b/playwright/src/app/old_tests/Outputs/RtmpHls.test.ts
deleted file mode 100644
index 0ad3830766..0000000000
--- a/playwright/src/app/old_tests/Outputs/RtmpHls.test.ts
+++ /dev/null
@@ -1,187 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-import { expect } from '@playwright/test';
-//import exp = require('constants');
-import exp from 'constants';
-
-
-let page: PageWrapper;
-const beamWaitTimeout = Number(process.env.beam_wait_timeout);
-
-const testData = [{width:"720", height:"720"}, {width:"1280",height:"1080"},{width:"720",height:"480"},{width:"0",height:"0"}]
-const invalidRes = [{width:"20", height:"20"}, {width:"20",height:"0"} ] //{width:"-720",height:"-1080"},{width:"-720",height:"1080"},
-
-test.beforeEach(async ({ page: nativePage }, testInfo) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- if (testInfo.retry) {
- await page.delay(5000);
- await page.evaluateCommand('window.__hms.actions.stopHLSStreaming()');
- }
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test.skip(`Start and Stop Browser Recording`, async () => {
-
- await page.click(page.header.start_recording_btn, page.header.start_recording_confirm_btn);
- await expect(page.locator(page.header.go_live_btn)).toBeDisabled();
- await page.clickWithTimeout(beamWaitTimeout, page.header.stop_recording_btn, page.header.stop_recording_confirm_btn);
- await expect(page.locator(page.header.go_live_btn)).toBeEnabled();
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
-});
-
-invalidRes.forEach(data =>{
- test.skip(`Start recording only with invalid resolutions ${data.width}X${data.height}`, async() => {
-
- await page.click(page.header.start_recording_btn);
-
- await page.sendText(page.header.recording_resolution_width_btn, data.width);
- await page.sendText(page.header.recording_resolution_height_btn, data.height);
-
- await page.click(page.header.start_recording_confirm_btn);
-
- await page.assertVisible(page.footer.error_message);
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- });})
-
-testData.forEach(data =>{
- test.skip(`Start recording only with different resolutions ${data.width}X${data.height}`, async() => {
-
- await page.click(page.header.start_recording_btn);
-
- await page.sendText(page.header.recording_resolution_width_btn, data.width);
- await page.sendText(page.header.recording_resolution_height_btn, data.height);
-
- await page.click(page.header.start_recording_confirm_btn);
- await expect(page.locator(page.header.go_live_btn)).toBeDisabled();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.stop_recording_btn, page.header.stop_recording_confirm_btn);
- await expect(page.locator(page.header.go_live_btn)).toBeEnabled();
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
-
- });})
-
-test.skip(`Start and Stop HLS stream only`, async () => {
- await page.click(page.header.go_live_btn, page.header.hls_stream_btn, page.header.start_hls_btn);
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn,page.header.end_stream_btn)
- await expect(page.locator(page.header.go_live_btn)).toBeHidden();
- await expect(page.locator(page.header.live_indicator)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn,page.header.end_stream_btn, page.header.stop_hls_btn);
- await expect(page.locator(page.header.go_live_btn)).toBeEnabled();
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.live_indicator)).toBeHidden();
-});
-
-test.skip(`Start and Stop HLS Recording`, async () => {
- await page.click(
- page.header.go_live_btn,
- page.header.hls_stream_btn,
- page.header.hls_recording_toggle,
- page.header.start_hls_btn,
- );
- await expect(page.locator(page.header.go_live_btn)).toBeHidden();
- await expect(page.locator(page.header.live_indicator)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn, page.header.end_stream_btn, page.header.stop_hls_btn);
-
- await expect(page.locator(page.header.go_live_btn)).toBeEnabled();
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.live_indicator)).toBeHidden();
-});
-
-test.skip(`Start and Stop Rtmp`, async () => {
- await page.click(page.header.go_live_btn, page.header.rtmp_stream_btn);
- await page.sendText(page.header.rtmp_url_btn, process.env.twitch_rtmp_url);
- await page.sendText(page.header.rtmp_key_btn, process.env.twitch_rtmp_key);
- await page.click(page.header.start_rtmp_btn);
-
- await expect(page.locator(page.header.start_recording_btn)).toBeDisabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn, page.header.end_stream_btn, page.header.stop_rtmp_btn);
-
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeHidden();
-});
-
-test.skip(`Start and Stop Rtmp Recording`, async () => {
- await page.click(page.header.go_live_btn, page.header.rtmp_stream_btn);
-
- await page.sendText(page.header.rtmp_url_btn, process.env.twitch_rtmp_url);
- await page.sendText(page.header.rtmp_key_btn, process.env.twitch_rtmp_key);
-
- await page.click(page.header.rtmp_recording_btn, page.header.start_rtmp_btn);
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn, page.header.end_stream_btn);
-
- await expect(page.locator(page.header.start_recording_btn)).toBeHidden();
- await expect(page.locator(page.header.rtmp_indicator)).toBeVisible();
- await expect(page.locator(page.header.stop_recording_btn)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn, page.header.end_stream_btn, page.header.stop_rtmp_btn);
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeHidden();
- await expect(page.locator(page.header.stop_recording_btn)).toBeHidden();
-
-});
-
-
-testData.forEach(data =>{
-test.skip(`Start RTMP only with different resolutions ${data.width}X${data.height}`, async() => {
- await page.click(page.header.go_live_btn, page.header.rtmp_stream_btn);
-
- await page.sendText(page.header.rtmp_url_btn, process.env.twitch_rtmp_url);
- await page.sendText(page.header.rtmp_key_btn, process.env.twitch_rtmp_key);
-
- await page.sendText(page.header.rtmp_resolution_width_btn, data.width);
- await page.sendText(page.header.rtmp_resolution_height_btn, data.height);
-
- await page.click(page.header.start_rtmp_btn);
-
- await expect(page.locator(page.header.start_recording_btn)).toBeDisabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout,page.header.end_stream_btn ,page.header.end_stream_btn, page.header.stop_rtmp_btn);
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeHidden();
-
-});})
-
-testData.forEach(data =>{
- test.skip(`Start RTMP with recording with different resulutions ${data.width}X${data.height}`, async() => {
- await page.click(page.header.go_live_btn, page.header.rtmp_stream_btn);
-
- await page.sendText(page.header.rtmp_url_btn, process.env.twitch_rtmp_url);
- await page.sendText(page.header.rtmp_key_btn, process.env.twitch_rtmp_key);
-
- await page.sendText(page.header.rtmp_resolution_width_btn, data.width);
- await page.sendText(page.header.rtmp_resolution_height_btn, data.height);
-
- await page.click(page.header.rtmp_recording_btn, page.header.start_rtmp_btn);
-
- await expect(page.locator(page.header.start_recording_btn)).toBeHidden();
- await expect(page.locator(page.header.rtmp_indicator)).toBeVisible();
- await expect(page.locator(page.header.stop_recording_btn)).toBeVisible();
-
- await page.clickWithTimeout(beamWaitTimeout, page.header.end_stream_btn,page.header.end_stream_btn, page.header.stop_rtmp_btn);
- await expect(page.locator(page.header.start_recording_btn)).toBeEnabled();
- await expect(page.locator(page.header.rtmp_indicator)).toBeHidden();
-
- });})
-
-invalidRes.forEach(data =>{
-test(`Start rtmp with invalid resolutions ${data.width}X${data.height}`,async () => {
- await page.click(page.header.go_live_btn, page.header.rtmp_stream_btn);
-
- await page.sendText(page.header.rtmp_url_btn, process.env.twitch_rtmp_url);
- await page.sendText(page.header.rtmp_key_btn, process.env.twitch_rtmp_key);
-
- await page.sendText(page.header.rtmp_resolution_width_btn, data.width);
- await page.sendText(page.header.rtmp_resolution_height_btn, data.height);
-
-});})
\ No newline at end of file
diff --git a/playwright/src/app/old_tests/Preview/JoinRoom.test.ts b/playwright/src/app/old_tests/Preview/JoinRoom.test.ts
deleted file mode 100644
index a99bbed0e8..0000000000
--- a/playwright/src/app/old_tests/Preview/JoinRoom.test.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { expect, test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {
- console.log('aftereach');
- await page.endRoom();
- await page.close();
-});
-
-test.describe('verify join', () => {
- test(`Verify Join Mic-On Cam-On`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage, {
- mic: true,
- cam: true,
- });
-
- await page.assertVisible(page.footer.meeting_audio_on_btn);
- await page.click(page.footer.meeting_audio_btn);
- await page.assertVisible(page.footer.meeting_audio_off_btn);
- await page.click(page.footer.meeting_audio_btn);
-
- await page.assertVisible(page.footer.meeting_video_on_btn);
- await page.click(page.footer.meeting_video_btn);
- await page.assertVisible(page.footer.meeting_video_off_btn);
- await page.click(page.footer.meeting_video_btn);
- });
-
- test(`Verify Join Mic-On Cam-Off`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage, {
- mic: true,
- cam: false,
- });
-
- await page.assertVisible(page.footer.meeting_audio_on_btn);
- await page.click(page.footer.meeting_audio_btn);
- await page.assertVisible(page.footer.meeting_audio_off_btn);
- await page.click(page.footer.meeting_audio_btn);
-
- await page.assertVisible(page.footer.meeting_video_off_btn);
- await page.click(page.footer.meeting_video_btn);
- await page.assertVisible(page.footer.meeting_video_on_btn);
- await page.click(page.footer.meeting_video_btn);
- });
-
- test(`Verify Join Mic-Off Cam-On`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage, {
- mic: false,
- cam: true,
- });
-
- await page.assertVisible(page.footer.meeting_audio_off_btn);
- await page.click(page.footer.meeting_audio_btn);
- await page.assertVisible(page.footer.meeting_audio_on_btn);
- await page.click(page.footer.meeting_audio_btn);
-
- await page.assertVisible(page.footer.meeting_video_on_btn);
- await page.click(page.footer.meeting_video_btn);
- await page.assertVisible(page.footer.meeting_video_off_btn);
- await page.click(page.footer.meeting_video_btn);
- });
-
- test(`Verify Join Mic-Off Cam-Off`, async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage, {
- mic: false,
- cam: false,
- });
- await page.assertVisible(page.footer.meeting_audio_off_btn);
- await page.click(page.footer.meeting_audio_btn);
- await page.assertVisible(page.footer.meeting_audio_on_btn);
- await page.click(page.footer.meeting_audio_btn);
-
- await page.assertVisible(page.footer.meeting_video_off_btn);
- await page.click(page.footer.meeting_video_btn);
- await page.assertVisible(page.footer.meeting_video_on_btn);
- await page.click(page.footer.meeting_video_btn);
- });
-
- test(`Measure Join Time`, async ({ page: nativePage }) => {
- const url = process.env.audio_video_screenshare_url.replace('meeting', 'leave');
- page = new PageWrapper(nativePage);
- await page.goto({ url });
-
- await page.click(page.center.join_again_btn);
- console.log('Calculating Join Time');
- const start = performance.now();
- await page.gotoMeetingRoom();
- const diff = performance.now() - start;
- console.log(`Join Time Difference = ${diff}`);
- expect(diff).toBeLessThan(10000);
- });
-});
diff --git a/playwright/src/app/old_tests/Preview/NameJoin.test.ts b/playwright/src/app/old_tests/Preview/NameJoin.test.ts
deleted file mode 100644
index db768b43fb..0000000000
--- a/playwright/src/app/old_tests/Preview/NameJoin.test.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { expect, test } from '@playwright/test';
-
-let page: PageWrapper;
-
-const url = process.env.audio_video_screenshare_url;
-const name = `${process.env.peer_name}1`;
-test.beforeEach(async ({ page: nativePage }) => {
- page = new PageWrapper(nativePage);
- await page.prepreview.gotoPreviewPage(name);
-});
-
-test.afterEach(async () => {
- // await page.endRoom();
- await page.close();
-});
-
-test(`Verify Name Field and Join Button and Room`, async () => {
- await page.click(page.preview.preview_join_btn);
- await page.endRoom();
-});
-
-test(`Verify room URL`, async () => {
- const meetingURL = (await page.getUrl()).replace('preview', 'meeting');
- console.log(meetingURL);
- expect(meetingURL).toBe(url);
- await page.close();
-});
diff --git a/playwright/src/app/old_tests/Preview/PeerList.test.ts b/playwright/src/app/old_tests/Preview/PeerList.test.ts
deleted file mode 100644
index 0559a63fd9..0000000000
--- a/playwright/src/app/old_tests/Preview/PeerList.test.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {});
-
-const peersCount = Number(process.env.multi_peer_count);
-
-test(`Verify Peerlist in Preview Page`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, peersCount);
-
- const newPage = new PageWrapper(await context.newPage());
- await newPage.gotoPreviewPage();
- await newPage.header.openParticipantList();
-
- for (let i = 0; i < peersCount; i++) {
- await newPage.header.assertPeerInOpenPeerList(pages[i].localName, true);
- }
- await pages[0].endRoom();
- await context.close();
-});
diff --git a/playwright/src/app/old_tests/Preview/PreviewTile.test.ts b/playwright/src/app/old_tests/Preview/PreviewTile.test.ts
deleted file mode 100644
index 5368f903d0..0000000000
--- a/playwright/src/app/old_tests/Preview/PreviewTile.test.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-const name = `${process.env.peer_name}`;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = new PageWrapper(nativePage);
- await page.prepreview.gotoPreviewPage(name);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-test(`Verify MicBtn on off`, async () => {
- await page.assertVisible(page.preview.preview_audio_on_btn);
- await page.click(page.preview.preview_audio_btn);
- await page.assertVisible(page.preview.preview_audio_off_btn);
- await page.click(page.preview.preview_audio_btn);
- await page.assertVisible(page.preview.preview_audio_on_btn);
-});
-
-test(`Verify CamBtn on off`, async () => {
- await page.assertVisible(page.preview.preview_video_on_btn);
- await page.click(page.preview.preview_video_btn);
- await page.assertVisible(page.preview.preview_video_off_btn);
- await page.click(page.preview.preview_video_btn);
- await page.assertVisible(page.preview.preview_video_on_btn);
-});
-
-test(`Verify video tile and avatar tile`, async () => {
- // await previewPage.SendName(page, name);
- await page.assertVisible(page.preview.preview_video_on_btn);
- await page.assertVisible(page.preview.preview_tile);
- await page.assertNotVisible(page.preview.preview_avatar_tile);
-
- await page.click(page.preview.preview_video_btn);
- await page.assertVisible(page.preview.preview_video_off_btn);
- await page.assertVisible(page.preview.preview_avatar_tile);
-});
-
-test(`Verify network status is displayed`, async () => {
- await page.assertVisible(page.preview.preview_network_status);
-});
-
-test(`Verify name textbox is displayed`, async () => {
- await page.assertVisible(page.preview.preview_name_field);
-});
diff --git a/playwright/src/app/old_tests/Preview/SettingNetwork.test.ts b/playwright/src/app/old_tests/Preview/SettingNetwork.test.ts
deleted file mode 100644
index 8f12ff43a6..0000000000
--- a/playwright/src/app/old_tests/Preview/SettingNetwork.test.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-const name = `${process.env.peer_name}1`;
-test.beforeEach(async ({ page: nativePage }) => {
- page = new PageWrapper(nativePage);
- await page.prepreview.gotoPreviewPage(name);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-test(`Verify Network Btn`, async () => {
- await page.assertVisible(page.preview.preview_tile_network);
-});
-
-test(`Verify Preview Settings Btn`, async () => {
- await page.click(page.preview.preview_audio_btn, page.preview.preview_setting_btn);
-
- for (let i = 0; i < page.preview.preview_setting_btn_list.length; i++) {
- await page.assertVisible(
- page.preview.dialoge_select_settings.replace('?', page.preview.preview_setting_btn_list[i]),
- );
- }
- await page.click(page.preview.dialoge_cross_icon);
-});
diff --git a/playwright/src/app/old_tests/PublishSubscribe/ChangePeerRole.test.ts b/playwright/src/app/old_tests/PublishSubscribe/ChangePeerRole.test.ts
deleted file mode 100644
index 9ef2fff88a..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/ChangePeerRole.test.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-test.skip(`Change peer Role`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, 2);
-
- for (let i = 0; i < pages[0].header.role_list.length; i++) {
- if (i === 2) {
- continue;
- }
- await pages[0].timeout(3000);
- await pages[0].click(pages[0].header.participant_list);
- await pages[0].timeout(3000);
-
- await pages[0].click(pages[0].header.participant_setting.replace('?', pages[1].localName));
- await pages[0].timeout(3000);
-
- await pages[0].click(pages[0].header.dialog_select_change_role_to);
-
- // await pages[0].clickWithTimeout(
- // 3000,
- // pages[0].header.participant_list,
- // pages[0].header.participant_setting.replace('?', pages[1].localName),
- // pages[0].header.dialog_select_change_role_to,
- // );
- await pages[0].timeout(3000);
-
- await pages[0].click(pages[0].header.participant_dropdown);
- await pages[0].timeout(3000);
- await pages[0].click('div[data-testid=?]'.replace('?', pages[0].header.role_list[i]));
-
- await pages[1].timeout(2000);
-
- await pages[0].click(pages[0].center.dialog_change_button);
-
- //page2 check
- await pages[1].timeout(2000);
- await pages[1].click(pages[1].center.dialog_accept, pages[1].header.participant_list);
- await pages[1].assertVisible(pages[1].header.participant_role_heading.replace('?', pages[1].header.role_list[i]));
- await pages[1].click('html');
- await pages[1].timeout(2000);
-
- await pages[0].click(
- pages[0].header.participant_list,
- pages[0].header.participant_setting.replace('?', pages[1].localName),
- pages[0].header.dialog_select_change_role_to,
- );
-
- // await pages[0].selectPopupOption(pages[0].header.role_list[2]);
- await pages[0].click(pages[0].center.dialog_confirm);
-
- //page2 click Accept
- await pages[1].click(pages[1].center.dialog_accept);
- }
-
- await pages[0].endRoom();
- await context.close();
-});
diff --git a/playwright/src/app/old_tests/PublishSubscribe/NoiseSuppVirtualBG.test.ts b/playwright/src/app/old_tests/PublishSubscribe/NoiseSuppVirtualBG.test.ts
deleted file mode 100644
index 09d3f0fa59..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/NoiseSuppVirtualBG.test.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { expect, test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage, { cam: true });
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test(`Verify virtual background`, async () => {
- const virtualBg = page.locator(page.footer.virtual_bg_btn);
- const btnDisabled = /active-true/;
- const btnEnabled = /active-false/;
- await expect(virtualBg).toHaveClass(btnDisabled);
- await virtualBg.click();
- await page.delay(3000);
- await expect(virtualBg).toHaveClass(btnEnabled);
- await virtualBg.click();
- await page.delay(3000);
- await expect(virtualBg).toHaveClass(btnDisabled);
-});
diff --git a/playwright/src/app/old_tests/PublishSubscribe/PlaylistAudio.test.ts b/playwright/src/app/old_tests/PublishSubscribe/PlaylistAudio.test.ts
deleted file mode 100644
index c40fbfa4a5..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/PlaylistAudio.test.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-let timeout: 2000;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test(`Playlist Audio`, async () => {
- await page.timeout(5000);
-
- await page.click(page.footer.audio_playlist, page.footer.audio_playlist_item.replace("?", "1"));
-
- for (let i = 0; i < 3; i++) {
- await page.click(
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_next_btn
- );
- await page.timeout(2000);
- }
- for (let j = 0; j < 3; j++) {
- await page.click(
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_prev_btn
- );
- await page.timeout(2000);
- }
- await page.click(page.footer.playlist_cross_btn);
-});
-
-//webhook track added in webhook
-test(`Playlist Audio check header`, async () => {
- await page.clickWithTimeout(
- timeout,
- page.footer.audio_playlist,
- page.footer.audio_playlist_item.replace("?", "1")
- );
- await page.click("html");
-
- await page.click(
- page.header.record_status_dropdown,
- page.header.playlist_playing_play,
- page.header.record_status_dropdown,
- page.header.playlist_playing_pause
- );
-
- await page.assertVisible(page.header.playlist_playing);
- await page.click("html");
-});
diff --git a/playwright/src/app/old_tests/PublishSubscribe/PlaylistVideo.test.ts b/playwright/src/app/old_tests/PublishSubscribe/PlaylistVideo.test.ts
deleted file mode 100644
index fb937a2df3..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/PlaylistVideo.test.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-let timeout: 2000;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-test(`Playlist Video`, async () => {
- await page.clickWithTimeout(
- timeout,
- page.footer.video_playlist,
- page.footer.audio_playlist_item.replace("?", "1")
- );
-
- await page.click(
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_next_btn
- );
- await page.timeout(2000);
-
- await page.click(
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_play_pause_btn,
- page.footer.playlist_prev_btn
- );
- await page.click(page.footer.videoplayer_cross_btn);
-});
diff --git a/playwright/src/app/old_tests/PublishSubscribe/ScreenShare.test.ts b/playwright/src/app/old_tests/PublishSubscribe/ScreenShare.test.ts
deleted file mode 100644
index f8c837cfd6..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/ScreenShare.test.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-// doesn't work in headless mode
-test.skip(`Screenshare check`, async () => {
- page.acceptDialogWhenPrompted(); // for screenshare
- await page.click(page.footer.screen_share_btn);
- await page.click(page.footer.stop_screen_share_btn);
-});
-
-test(`Verify screenshare button is displayed`, async () => {
- await page.assertVisible(page.footer.screen_share_btn);
-});
\ No newline at end of file
diff --git a/playwright/src/app/old_tests/PublishSubscribe/WhiteBoard.test.ts b/playwright/src/app/old_tests/PublishSubscribe/WhiteBoard.test.ts
deleted file mode 100644
index 431692ce93..0000000000
--- a/playwright/src/app/old_tests/PublishSubscribe/WhiteBoard.test.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.endRoom();
- await page.close();
-});
-
-//not present in prod
-test.skip(`white board check`, async () => {
- await page.click(
- page.footer.white_board_btn,
- page.footer.white_board_btn,
- page.footer.white_board_btn
- );
-
- await page.click(page.header.record_status_dropdown);
- await page.assertVisible(page.header.whiteboard_owner);
- await page.click(page.header.whiteboard_stop);
-});
diff --git a/playwright/src/app/old_tests/Superpowers/BulkRole.test.ts b/playwright/src/app/old_tests/Superpowers/BulkRole.test.ts
deleted file mode 100644
index ef63e622de..0000000000
--- a/playwright/src/app/old_tests/Superpowers/BulkRole.test.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-test(`Verify bulk role change`, async() => {
- await page.footer.openMoreSettings();
- await page.footer.openBulkRoleChange();
- await page.footer.openRoleForChange();
- await page.footer.selectForRoleForChange();
- await page.click(page.footer.for_role_label);
- await page.footer.selectToRoleDropdown();
- await page.footer.selectToRole();
- await page.footer.clickApplyButton();
- await page.header.openParticipantList();
- await page.assertVisible(
- page.header.participant_role_heading.replace("?","audio-video")
- );
-});
\ No newline at end of file
diff --git a/playwright/src/app/old_tests/Superpowers/ChangeLayout.test.ts b/playwright/src/app/old_tests/Superpowers/ChangeLayout.test.ts
deleted file mode 100644
index fb5605a5f7..0000000000
--- a/playwright/src/app/old_tests/Superpowers/ChangeLayout.test.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-import { expect } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }, testInfo) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- if (testInfo.retry) {
- await page.delay(2000);
- }
- });
-
- test.afterEach(async () => {
- await page.endRoom();
- await page.close();
- });
-
-
- test(`Verify change layout window`, async () => {
-
- await page.footer.openMoreSettings();
- await page.click(page.footer.device_settings_btn);
- await expect(page.locator(page.footer.layout_button)).toBeEnabled();
- await page.click(page.footer.layout_button);
-
- await expect(page.locator(page.footer.activespeaker_toggle)).toBeEnabled();
- //await expect(page.locator(page.footer.activespeakersorting_toggle)).toBeEnabled();
- await expect(page.locator(page.footer.audioonly_toggle)).toBeEnabled();
- await expect(page.locator(page.footer.mirrorlocal_toggle)).toBeEnabled();
- await expect(page.locator(page.footer.hidelocal_toggle)).toBeEnabled();
- await expect(page.locator(page.footer.tilesinview_bar)).toBeEnabled();
-
- });
-
\ No newline at end of file
diff --git a/playwright/src/app/old_tests/Superpowers/EndRoom.test.ts b/playwright/src/app/old_tests/Superpowers/EndRoom.test.ts
deleted file mode 100644
index 3d81338f9b..0000000000
--- a/playwright/src/app/old_tests/Superpowers/EndRoom.test.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-test(`Verify End room for all`, async () => {
- await page.footer.endRoom();
- await page.click(page.center.join_again_btn);
- await page.assertVisible(page.preview.preview_join_btn);
-});
diff --git a/playwright/src/app/old_tests/Superpowers/MuteAll.test.ts b/playwright/src/app/old_tests/Superpowers/MuteAll.test.ts
deleted file mode 100644
index 5dd557df5d..0000000000
--- a/playwright/src/app/old_tests/Superpowers/MuteAll.test.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {});
-
-const peersCount = Number(process.env.multi_peer_count);
-
-test(`Mute All`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, peersCount, {
- mic: true,
- cam: true,
- });
- await pages[0].timeout(5000);
- await pages[0].footer.muteAll();
-
- // peer tile has muted
- for (let i = 1; i < peersCount; i++) {
- // my footer is showing me muted
- await pages[i].assertLocalAudioState(false);
- await pages[i].assertLocalVideoState(false);
-
- // others are seeing me as muted on video tile
- for (let j = 0; j < peersCount; j++) {
- await pages[j].center.assertAudioState(pages[i].localName, false);
- }
- }
-
- await pages[0].endRoom();
- await context.close();
-});
diff --git a/playwright/src/app/old_tests/Superpowers/RemoteMute.test.ts b/playwright/src/app/old_tests/Superpowers/RemoteMute.test.ts
deleted file mode 100644
index 7235a60040..0000000000
--- a/playwright/src/app/old_tests/Superpowers/RemoteMute.test.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {});
-
-test(`Remote Mute/Unmute Audio`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, 2, {
- mic: true,
- cam: true,
- });
-
- await pages[0].hover(pages[0].center.participant_tile.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.participant_tile_menu_btn.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.tile_menu_mute_audio);
- await pages[1].assertLocalAudioState(false);
-
- await pages[0].click(pages[0].center.tile_menu_mute_audio);
- await pages[1].timeout(2000);
- await pages[1].click(pages[0].center.dialog_accept);
- await pages[1].assertLocalAudioState(true);
-
- //add more verify
- await pages[0].endRoom();
- await context.close();
-});
-
-test(`Remote Mute/Unmute Video`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, 2, {
- mic: true,
- cam: true,
- });
-
- await pages[0].hover(pages[0].center.participant_tile.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.participant_tile_menu_btn.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.tile_menu_mute_video);
- await pages[1].assertLocalVideoState(false);
-
- await pages[0].click(pages[0].center.tile_menu_unmute_video);
- await pages[1].timeout(2000);
- await pages[1].click(pages[0].center.dialog_accept);
- await pages[1].assertLocalVideoState(true);
-
- //add more verify
- await pages[0].endRoom();
- await context.close();
-});
diff --git a/playwright/src/app/old_tests/Superpowers/RemovePeer.test.ts b/playwright/src/app/old_tests/Superpowers/RemovePeer.test.ts
deleted file mode 100644
index c7b8f227b1..0000000000
--- a/playwright/src/app/old_tests/Superpowers/RemovePeer.test.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { PageWrapper } from "../../PageWrapper";
-import { test } from "@playwright/test";
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {});
-
-test(`Remove Peer`, async ({ context }) => {
- const pages = await PageWrapper.openPages(context, 2, {
- mic: true,
- cam: true,
- });
- await pages[0].hover(pages[0].center.participant_tile.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.participant_tile_menu_btn.replace("?", pages[1].localName));
- await pages[0].click(pages[0].center.tile_menu_remove_participant);
-
- await pages[0].assertNotVisible(
- pages[0].center.participant_tile.replace("?", pages[1].localName)
- );
- await pages[1].assertVisible(pages[1].center.join_again_btn);
- //add verify and the other peer is still in the room
-
- await pages[0].endRoom();
- await context.close();
-});
diff --git a/playwright/src/app/old_tests/hls/HlsPlayer.test.ts b/playwright/src/app/old_tests/hls/HlsPlayer.test.ts
deleted file mode 100644
index a9c7ed213e..0000000000
--- a/playwright/src/app/old_tests/hls/HlsPlayer.test.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-let hlsViewerPage: any;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = await PageWrapper.openMeetingPage(nativePage);
- await page.click(page.header.go_live_btn, page.header.hls_stream_btn, page.header.start_hls_btn);
-});
-
-test.afterEach(async ({ context }) => {
- await page.endRoom();
- await context.close();
-});
-
-test(`Verify HLS stats for hls viewer`, async ({ browser }) => {
- const hlsViewerNativePage = await browser.newPage();
- hlsViewerPage = new PageWrapper(hlsViewerNativePage);
- PageWrapper.openHLSMeetingPage(hlsViewerNativePage, {});
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_play_pause_btn);
- await hlsViewerPage.click(hlsViewerPage.hlsViewer.hls_viewer_more_settings_btn);
- await hlsViewerPage.click(hlsViewerPage.hlsViewer.hls_viewer_hls_stats);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_url);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_video_size);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_buffer_duration);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_connection_speed);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_bitrate);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_distance_from_live);
- await hlsViewerPage.assertVisible(hlsViewerPage.hlsViewer.hls_viewer_stats_dropped_frames);
-});
diff --git a/playwright/src/app/old_tests/hls/no_stream.test.ts b/playwright/src/app/old_tests/hls/no_stream.test.ts
deleted file mode 100644
index 197ebe1031..0000000000
--- a/playwright/src/app/old_tests/hls/no_stream.test.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { test } from "@playwright/test";
-import { PageWrapper } from "../../PageWrapper";
-
-test(`Verify text when no stream running`, async ({ page: nativePage }) => {
- const page = await PageWrapper.openHLSMeetingPage(nativePage,{});
- await page.hasText(page.center.no_stream_text, page.hlsViewer.waiting_stream_start_text);
- await page.close();
-});
diff --git a/playwright/src/app/old_tests/network/PreviewPageEmulation.test.ts b/playwright/src/app/old_tests/network/PreviewPageEmulation.test.ts
deleted file mode 100644
index 315f9c6d31..0000000000
--- a/playwright/src/app/old_tests/network/PreviewPageEmulation.test.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let page: PageWrapper;
-
-test.beforeEach(async ({ page: nativePage }) => {
- page = new PageWrapper(nativePage);
- await page.prepreview.gotoPreviewPage(page.localName);
-});
-
-test.afterEach(async () => {
- await page.close();
-});
-
-test.skip(`Verify network connection/disconnection notification on preview page`, async () => {
- await page.assertVisible(page.preview.preview_audio_on_btn);
- await page.setInternetEnabled(false);
- await page.assertVisible(page.center.network_offline_notification);
- await page.delay(5000);
- await page.setInternetEnabled(true);
- await page.assertVisible(page.center.network_connected_notification);
-});
diff --git a/playwright/src/app/old_tests/network/RoomEmulation.test.ts b/playwright/src/app/old_tests/network/RoomEmulation.test.ts
deleted file mode 100644
index 0cec81f030..0000000000
--- a/playwright/src/app/old_tests/network/RoomEmulation.test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { PageWrapper } from '../../PageWrapper';
-import { test } from '@playwright/test';
-
-let pages: PageWrapper[];
-
-test.beforeEach(async () => {});
-
-test.afterEach(async () => {
- [0, 1].forEach(async i => {
- await pages[i].close();
- });
-});
-
-test(`Verify network disconnection notifications`, async ({ context }) => {
- pages = await PageWrapper.openPages(context, 2, {
- mic: true,
- });
- await pages[0].delay(10000);
- await pages[0].setInternetEnabled(false);
- await pages[0].assertVisible(pages[0].center.network_offline_notification);
-});
diff --git a/playwright/src/app/selectors/Center.ts b/playwright/src/app/selectors/Center.ts
deleted file mode 100644
index e5bcbd1d24..0000000000
--- a/playwright/src/app/selectors/Center.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class Center {
- private page: PageWrapper;
-
- participants = 'text=Participants';
- conferencing = 'div[data-testid="conferencing"]';
- participant_tile = 'div[data-testid="participant_tile_?"]';
- audio_mute_icon_onTile = 'div[data-testid="participant_audio_mute_icon"]';
- raiseHand_icon_onTile = 'div[data-testid="raiseHand_icon_onTile"]';
- brb_icon_onTile = 'div[data-testid="brb_icon_onTile"]';
- name_onTile = 'div[data-testid=participant_tile_?] div[data-testid=participant_name_onTile]';
- first_person_img = 'div[data-testid="first_person_img"]';
- network_ontile = 'div[data-testid="participant_tile_?"] span[data-testid="tile_network"]';
- mute_ontile = 'div[data-testid="participant_tile_?"] div[data-testid="participant_audio_mute_icon"]';
- sfn_onTile = 'table tbody tr td'
- no_stream_text = '[data-testid="conferencing"] p';
- sfn_onText = 'h2 div p'
- expected_sfn_header = 'Stats For Nerds'
- sfn_dialog_texts = '[role="dialog"] div p'
- stream_yet_to_start = 'text=Stream yet to start'
-
- participant_tile_menu_btn = 'div[data-testid="participant_tile_?"] button[data-testid="participant_menu_btn"]';
- tile_menu_remove_participant = 'button[data-testid="remove_participant_btn"]';
- tile_menu_mute_video = 'button[data-testid="mute_video_participant_btn"]';
- tile_menu_unmute_video = 'button[data-testid="unmute_video_participant_btn"]';
- tile_menu_mute_audio = 'button[data-testid="mute_audio_participant_btn"]';
- tile_menu_pin_tile = 'text="Pin Tile for myself"';
- tile_menu_unpin_tile = 'text="Unpin Tile for myself"';
-
- //after end room
- join_again_btn = 'button[data-testid="join_again_btn"]';
- go_to_dashboard_btn = 'button[data-testid="go_to_dashboard_btn"]';
- left_room_message = 'text="You left the room"';
-
- //dialoge
- dialog_confirm = 'text=Confirm';
- dialog_accept = 'text=Accept';
- dialog_change_button = '//button[@data-testid="change_button"]';
-
- //network
- network_offline_notification =
- 'text=You lost your network connection. Trying to reconnect.';
- network_connected_notification = 'text=You are now connected';
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async assertTilePresence(peerName: string, present: boolean) {
- if (present) {
- await this.page.assertVisible(this.participant_tile.replace('?', peerName));
- } else {
- await this.page.assertNotVisible(this.participant_tile.replace('?', peerName));
- }
- }
-
- async assertAudioState(peerName: string, enabled: boolean) {
- if (!enabled) {
- await this.page.assertVisible(this.mute_ontile.replace('?', peerName));
- }
- }
-}
diff --git a/playwright/src/app/selectors/Footer.ts b/playwright/src/app/selectors/Footer.ts
deleted file mode 100644
index 06d5b4e204..0000000000
--- a/playwright/src/app/selectors/Footer.ts
+++ /dev/null
@@ -1,213 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class Footer {
- private page: PageWrapper;
- footer = 'div[data-testid="footer"]';
-
- meeting_audio_btn = 'button[data-testid="audio_btn"]';
- meeting_audio_on_btn = 'button[data-testid="audio_btn"] > svg[data-testid="audio_on_btn"]';
- meeting_audio_off_btn = 'button[data-testid="audio_btn"] > svg[data-testid="audio_off_btn"]';
-
- meeting_video_btn = 'button[data-testid="video_btn"]';
- meeting_video_on_btn = 'button[data-testid="video_btn"] > svg[data-testid="video_on_btn"]';
- meeting_video_off_btn = 'button[data-testid="video_btn"] > svg[data-testid="video_off_btn"]';
-
- leave_room_dropdown = 'button[data-testid="leave_end_dropdown_trigger"]';
- leave_room_btn = 'button[data-testid="leave_room_btn"]';
- just_leave_btn = 'div[data-testid="just_leave_btn"]';
- end_room_btn = "text='End Room for All'";
- lock_end_room = 'button[data-testid="lock_end_room"]';
-
- screen_share_btn = 'div > button:right-of(button[data-testid="video_btn"])';
- stop_screen_share_btn = 'button[data-testid="stop_screen_share_btn"]';
-
- more_settings_btn = 'button[data-testid="more_settings_btn"]';
-
- change_name_btn = 'div[data-testid="change_name_btn"]';
- change_name_field = 'input[data-testid="change_name_field"]';
- popup_change_btn = 'button[data-testid="popup_change_btn"]';
-
- //bulk role ids
- bulk_role_change_btn = 'div[data-testid="bulk_role_change_btn"]';
- for_role_dropdown = 'div[data-testid="Select Multiple Roles_selector"]';
- for_role_checkbox = "text='audio-video-sshare'"
- for_role_label = "text='For Roles:'"
- to_role_dropdown = 'div[data-testid="Select Role_selector"]';
- to_role = "text='audio-video'"
- apply_btn = "text='Apply'";
-
- streaming_recording_btn = 'div[data-testid="streaming_recording_btn"]';
- streaming_metting_url_field = 'input[data-testid="metting_url_field"]';
- streaming_rtmp_url_field = 'input[data-testid="rtmp_url_field"]';
- rtmp_recording_stop_btn = 'button[data-testid="rtmp_recording_stop"]';
- rtmp_recording_start_btn = 'button[data-testid="rtmp_recording_start"]';
- hls_checkbox = '#hlsCheckbox';
- recording_checkbox = '#recordingCheckbox';
-
- twitch_live_now = '(//div[@class="Layout-sc-nxg1ff-0 KEuEf"])[1]';
- twitch_url = 'https://www.twitch.tv/ronit100ms';
-
- full_screen_btn = 'div[data-testid="full_screen_btn"]';
- mute_all_btn = 'div[data-testid="mute_all_btn"]';
- mute_all_apply_btn = 'text=Apply';
-
- embed_url_cta = '[data-testid="embed_url_btn"]';
- embed_url_text_field = 'input[placeholder="https://www.tldraw.com/"]';
- valid_embed_url = 'https://www.100ms.live/';
- invalid_embed_url = 'sdet.qa';
- embed_cta = 'text="Just Embed"';
- update_embed_cta = 'text="Update Embed"'
- stop_embed_cta = 'text="Stop Embed"'
- embed_share_cta = 'text="Embed and Share"';
- invalid_embed_link_header = 'text="Link is invalid"'
- inavlid_embed_link_subject = 'text="The room code does not exist. Please check the room code."';
-
- ui_settings_btn = 'div[data-testid="ui_settings_btn"]';
- device_settings_btn = 'div[data-testid="device_settings_btn"]';
- stats_for_nreds_btn = 'div[data-testid="stats_for_nreds_btn"]';
- enable_sfn = '[role="switch"]'
- close_sfn_modal = '[data-testid="stats_dialog_close_icon"]'
-
- change_my_role_btn = 'div[data-testid="change_my_role_btn"]';
- change_to_role_ = 'div[data-testid="change_to_role_?"]';
-
- dialoge_cross_icon = 'button[data-testid="dialoge_cross_icon"]';
-
- //bottom right corner
- raise_hand_btn = 'button[data-testid="hand_raise_btn"]';
- brb_btn = '(//button[@data-testid="brb_btn"])[2]';
- chat_btn = '[data-testid="chat_btn"] >> visible=true';
- chat_placeholder = 'css=[placeholder="Send a message...."]';
- emoji_btn = '[data-testid="emoji_reaction_btn"]';
- emoji_container = '[class="emoji-mart-emoji"]';
- expected_emoji_container_text = 'Reactions will be timed for Live Streaming viewers.';
- expected_emoji_container_href_text = 'Learn more';
- emoji_container_text = '//*[@role="menu"]/div[3]/p[1]'
- emoji_container_href = '[role="menu"] div p a'
- expected_emoji_href_link = 'https://www.100ms.live/docs/javascript/v2/how--to-guides/record-and-live-stream/hls/hls-timed-metadata'
-
- first_chat_msg = 'div[data-testid="chat_msg"]';
-
- chat_peer_selector = 'text=Everyone';
- chat_to_text = '[data-testid="chat_msg"] >> p >> nth=1';
- chat_msg = '[data-testid="chat_msg"]';
- chat_msg_options = '[data-testid="chat_msg"] >> button';
- pin_message = 'text=Pin Message'
-
- //bottom left corner
- screenshare_audio = 'button[data-testid="screenshare_audio"]';
- audio_playlist = 'button[data-testid="audio_playlist"]';
- video_playlist = 'button[data-testid="video_playlist"]';
-
- playlist_play_pause_btn = 'button[data-testid="playlist_play_pause_btn"]';
- playlist_next_btn = 'button[data-testid="playlist_next_btn"]';
- playlist_prev_btn = 'button[data-testid="playlist_prev_btn"]';
- playlist_cross_btn = 'text=Audio PlayerBrowse >> button';
- videoplayer_cross_btn = 'button[data-testid="videoplaylist_cross_btn"]';
-
- white_board_btn = 'button[data-testid="white_board_btn"]';
- virtual_bg_btn = 'button[data-testid="virtual_bg_btn"]';
- noise_supp_btn = 'button[data-testid="noise_suppression_btn"]';
-
- audio_playlist_item = 'div[role="menuitem"]:nth-child(?)';
-
- error_message = 'text=Resolution not supported';
-
- //Layout
- layout_button = 'button[id*="trigger-layout"]';
- activespeaker_toggle = 'button[id="activeSpeakerMode"]';
- activespeakersorting_toggle = 'button[id="activeSpeakerSortingMode"]';
- audioonly_toggle = 'button[id="audioOnlyMode"]';
- mirrorlocal_toggle = 'button[id="mirrorMode"]';
- hidelocal_toggle = 'button[id="hideLocalVideo"]';
- tilesinview_bar = 'span[dir="ltr"]';
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async leaveRoom() {
- await this.page.click(this.leave_room_dropdown, this.just_leave_btn);
- }
-
- async endRoom() {
- await this.page.click(this.leave_room_dropdown, this.end_room_btn, this.lock_end_room);
- }
-
- /**
- * enabled = true => audio unmuted
- * enabled = false => audio muted
- * enabled = undefined => audio button not visible
- */
- async assertLocalAudioState(enabled?: boolean) {
- if (enabled) {
- await this.page.assertVisible(this.meeting_audio_on_btn);
- } else if (enabled === false) {
- await this.page.assertVisible(this.meeting_audio_off_btn);
- } else {
- await this.page.assertNotVisible(this.meeting_audio_btn);
- }
- }
-
- /**
- * enabled = true => audio unmuted
- * enabled = false => audio muted
- * enabled = undefined => audio button not visible
- */
- async assertLocalVideoState(enabled?: boolean) {
- if (enabled) {
- await this.page.assertVisible(this.meeting_video_on_btn);
- } else if (enabled === false) {
- await this.page.assertVisible(this.meeting_video_off_btn);
- } else {
- await this.page.assertNotVisible(this.meeting_video_btn);
- }
- }
-
- /**
- * TODO: take {source: string, type: "audio/video", state: true/false}
- */
- async muteAll() {
- await this.openMoreSettings();
- await this.page.click(this.mute_all_btn, this.mute_all_apply_btn);
- }
-
- async changeName(newName: string) {
- await this.openMoreSettings();
- await this.page.click(this.change_name_btn);
- await this.page.sendText(this.change_name_field, newName);
- await this.page.click(this.popup_change_btn);
- }
-
- /**
- * @private
- */
- async openMoreSettings() {
- await this.page.click(this.more_settings_btn);
- }
-
- async openBulkRoleChange(){
- await this.page.click(this.bulk_role_change_btn);
- }
-
- async openRoleForChange(){
- await this.page.click(this.for_role_dropdown);
- }
-
- async selectForRoleForChange(){
- await this.page.click(this.for_role_checkbox);
- }
-
- async selectToRoleDropdown(){
- await this.page.click(this.to_role_dropdown);
- }
-
- async selectToRole(){
- await this.page.click(this.to_role);
- }
-
- async clickApplyButton(){
- await this.page.click(this.apply_btn);
- }
-
-}
diff --git a/playwright/src/app/selectors/Header.ts b/playwright/src/app/selectors/Header.ts
deleted file mode 100644
index 2490321a6c..0000000000
--- a/playwright/src/app/selectors/Header.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class Header {
- private page: PageWrapper;
-
- header = 'div[data-testid="header"]';
- pip_btn = 'button[data-testid="pip_btn"]';
-
- //rtmp, hls, recording, playlist dropdown
- record_status_dropdown = 'div[data-testid="record_status_dropdown"]';
- playlist_playing = 'text=Playlist is playing';
- playlist_playing_play = 'text=Play';
- playlist_playing_pause = 'text=Pause';
- whiteboard_owner = 'text=Whiteboard Owner -';
- whiteboard_stop = 'text=Stop';
- streaming_rtmp = 'div[role="menuitem"]:has-text("Streaming (RTMP)")';
- streaming_hls = 'div[role="menuitem"]:has-text("Streaming (HLS)")';
- browser_recording = 'div[role="menuitem"]:has-text("Recording (Browser)")';
- hls_recording = 'div[role="menuitem"]:has-text("Recording (HLS)")';
-
- //participant list dropdown
- participant_list = 'button[data-testid="participant_list"]';
- participant_name = 'div[data-testid="participant_?"]';
-
- participant_setting = 'div[data-testid="participant_?"] div p[data-testid="participant_more_actions"]';
- participant_dropdown = 'div[data-testid="open_role_selection_dropdown"]';
- participant_role_heading = 'text=?';
- dialog_select_change_role_to = '//p[text()="Change Role"]';
- role_list = ['audio', 'audio-video', 'audio-video-sshare', 'hls-viewer', 'screenshare', 'video', 'viewer'];
- setting_role_peer = 'div[role="menuitem"]:nth-child(?) button';
- peerlist_network = 'div[data-testid="participant_?"] span[data-testid="tile_network"]';
-
- //recording
- start_recording_btn = 'button[data-testid="start_recording"]';
- start_recording_confirm_btn = 'button[data-testid="start_recording_confirm"]';
- recording_resolution_width_btn = 'input[data-testid="recording_resolution_width"]';
- recording_resolution_height_btn = 'input[data-testid="recording_resolution_height"]';
- stop_recording_btn = 'button[data-testid="stop_recording"]';
- stop_recording_confirm_btn = 'button[data-testid="stop_recording_confirm"]';
-
- //hls
- go_live_btn = 'button[data-testid="go_live"]';
- hls_stream_btn = 'div[data-testid="hls_stream"]';
- hls_recording_toggle = 'button[data-testid="hls-recording"]';
- start_hls_btn = 'button[data-testid="start_hls"]';
- stop_hls_btn = 'button[data-testid="stop_hls"]';
- end_stream_btn = 'button[data-testid="end_stream"]';
- live_indicator = 'text=Live with HLS';
-
- //rtmp
- rtmp_stream_btn = 'div[data-testid="rtmp_stream"]';
- rtmp_url_btn = 'input[data-testid="0_rtmp_url"]';
- rtmp_key_btn = 'input[data-testid="0_rtmp_key"]';
- rtmp_resolution_width_btn = 'input[data-testid="rtmp_resolution_width"]';
- rtmp_resolution_height_btn = 'input[data-testid="rtmp_resolution_height"]';
- rtmp_recording_btn = 'button[data-testid="rtmp_recording"]';
- add_stream_btn = 'div[data-testid="add_stream"]';
- start_rtmp_btn = 'button[data-testid="start_rtmp"]';
- stop_rtmp_btn = 'button[data-testid="stop_rtmp"]';
- rtmp_indicator = 'text=Live with RTMP';
-
- //close stream popup
- close_stream_section = 'div[data-testid="close_stream_section"]';
- go_back_btn = 'div[data-testid="go_back"]';
- close_streaming_btn = 'div[data-testid="close_streaming"]';
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async assertPeerInPeerList(peerName: string, present: boolean) {
- await this.openParticipantList();
- try {
- await this.assertPeerInOpenPeerList(peerName, present);
- } finally {
- await this.closeParticipantList();
- }
- }
-
- async assertPeerInOpenPeerList(peerName: string, present: boolean) {
- if (present) {
- await this.page.assertVisible(this.participant_name.replace('?', peerName));
- } else {
- await this.page.assertNotVisible(this.participant_name.replace('?', peerName));
- }
- }
-
- /**
- * @private
- */
- async openParticipantList() {
- await this.page.click(this.participant_list);
- }
-
- /**
- * @private
- */
- async closeParticipantList() {
- await this.page.click('html');
- }
-}
diff --git a/playwright/src/app/selectors/HlsViewerPage.ts b/playwright/src/app/selectors/HlsViewerPage.ts
deleted file mode 100644
index 574afcf47a..0000000000
--- a/playwright/src/app/selectors/HlsViewerPage.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class HlsViewerPage {
- private page: PageWrapper;
-
- hls_viewer_name_field = 'input[placeholder="Enter your name"]';
- hls_viewer_get_started_btn = 'text="Join Room"';
- hls_viewer_play_pause_btn = 'button[data-testid="play_pause_btn"]';
- hls_viewer_full_screen_btn = 'button[data-testid="fullscreen_btn"]';
- hls_viewer_leave_room_btn = 'button[data-testid="leave_room_btn"]';
- hls_viewer_more_settings_btn = 'button[data-testid="more_settings_btn"]';
- hls_viewer_hls_stats = 'text="Show HLS Stats"';
- hls_viewer_stats_url = 'text="URL"';
- hls_viewer_stats_video_size = 'text="Video size"';
- hls_viewer_stats_buffer_duration = 'text="Buffer duration"';
- hls_viewer_stats_connection_speed = 'text="Connection speed"';
- hls_viewer_stats_bitrate = 'text="Bitrate"';
- hls_viewer_stats_distance_from_live = 'text="distance from live"';
- hls_viewer_stats_dropped_frames = 'text="Dropped frames"';
- waiting_stream_start_text = 'Waiting for the stream to start...';
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async gotoHLSMeetingRoom(url: string, name: string) {
- await this.page.goto({ url });
- await this.page.sendText(this.hls_viewer_name_field, name);
- await this.page.click(this.hls_viewer_get_started_btn);
- }
-}
diff --git a/playwright/src/app/selectors/PrePreviewPage.ts b/playwright/src/app/selectors/PrePreviewPage.ts
deleted file mode 100644
index 3ad49ff8d3..0000000000
--- a/playwright/src/app/selectors/PrePreviewPage.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class PrePreviewPage {
- private page: PageWrapper;
-
- pre_preview_name_field = 'input[placeholder="Enter your name"]';
- pre_preview_get_started_btn = 'text="Get Started "';
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async gotoPreviewPage(name: string) {
- await this.page.goto();
- await this.page.sendText(this.pre_preview_name_field, name);
- await this.page.click(this.pre_preview_get_started_btn);
- }
-}
diff --git a/playwright/src/app/selectors/PreviewPage.ts b/playwright/src/app/selectors/PreviewPage.ts
deleted file mode 100644
index 1674b9805e..0000000000
--- a/playwright/src/app/selectors/PreviewPage.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { PageWrapper } from '../PageWrapper';
-
-export class PreviewPage {
- private page: PageWrapper;
-
- preview_name_field = 'input[placeholder="Enter your name"]';
- preview_get_started_btn = 'text="Get Started "';
- preview_join_btn = 'text="Join Room"';
- preview_audio_btn = 'button[data-testid="audio_btn"]';
- preview_audio_on_btn = 'button[data-testid="audio_btn"] > svg[data-testid="audio_on_btn"]';
- preview_audio_off_btn = 'button[data-testid="audio_btn"] > svg[data-testid="audio_off_btn"]';
- preview_video_btn = 'button[data-testid="video_btn"]';
- preview_video_on_btn = 'button[data-testid="video_btn"] > svg[data-testid="video_on_btn"]';
- preview_video_off_btn = 'button[data-testid="video_btn"] > svg[data-testid="video_off_btn"]';
- preview_setting_btn = 'button[data-testid="preview_setting_btn"]';
- preview_tile_network = 'span[data-testid="tile_network"]';
- preview_tile = 'video[data-testid="preview_tile"]';
- preview_avatar_tile = 'div[data-testid="preview_avatar_tile"]';
- dialoge_cross_icon = 'div[data-testid="dialog_cross_icon"]';
- dialoge_select_settings = 'div[data-testid="?_selector"]';
- preview_setting_btn_list = ['fake_device_0', 'Fake Default Audio Input', 'Fake Default Audio Output'];
- preview_network_status = 'span[data-testid="tile_network"]';
-
-
- constructor(page: PageWrapper) {
- this.page = page;
- }
-
- async gotoMeetingRoom(url: string, name: string, mic: boolean, cam: boolean) {
- if (!mic && !cam) {
- url = url.replace('meeting', 'preview');
- url += `?skip_preview_headful=true&name=${name}`;
- await this.page.goto({ url });
- } else {
- await this.page.goto({ url });
- await this.page.sendText(this.preview_name_field, name);
- await this.page.click(this.preview_get_started_btn);
- if (!cam) {
- await this.page.click(this.preview_video_btn);
- }
- if (!mic) {
- await this.page.click(this.preview_audio_btn);
- }
- await this.page.click(this.preview_join_btn);
- }
- console.log('Joined room with : ', 'mic:', mic, ' cam:', cam);
- }
-}
diff --git a/playwright/src/app/selectors/Selectors.ts b/playwright/src/app/selectors/Selectors.ts
deleted file mode 100644
index a1d32e4452..0000000000
--- a/playwright/src/app/selectors/Selectors.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-export class Selectors {
- StartRec = 'Start Recording';
- StopRec = 'Stop Recording';
- StopRecConfirmText = 'Are you sure you want to end the recording?';
- StopRecButton = 'stop_recording_confirm';
- JoinBtn = 'Join Now';
- GoLive = 'Go Live';
- DropDown = 'leave_end_dropdown_trigger';
- EndSessionOption = 'end_room_btn';
- EndSession = 'stop_stream_btn';
- LeaveRoom = 'leave_room_btn';
-
-
- // Polls & Quizzes
- PollName = 'input:below(:text("Name this poll"))';
- QuizName = 'input:below(:text("Name this quiz"))';
- CreatePollBtn = 'Create Poll';
- CreateQuizBtn = 'Create Quiz';
- QuestionName = 'Ask a question';
- LaunchPollBtn = 'Launch poll';
- LaunchQuizBtn = 'Launch quiz';
- VoteBtn = 'Vote';
- AnswerBtn = 'Answer';
- PollsMenuBtn = 'polls_btn';
- EndPollBtn = 'End poll';
- EndQuizBtn = 'End quiz';
-
- //settings
- MoreSettingsBtn = 'more_settings_btn';
- ShowStatsBtn = 'button:near(:text("Show Stats on Tiles"))';
- StatsForNerdsMenu = 'Stats for Nerds';
- StatsForNerdsCloseBtn = 'stats_dialog_close_icon';
-
-
-
-}
diff --git a/playwright/src/app/tests/Chat.test.ts b/playwright/src/app/tests/Chat.test.ts
deleted file mode 100644
index 90f9d3bd1e..0000000000
--- a/playwright/src/app/tests/Chat.test.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { test } from '@playwright/test';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-test(`Test peer can send and receive chat message`, async ({ context }) => {
-
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/kwq-tstr-tji';
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/wuu-xevt-jfv';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/off-okil-uiy';
- const webrtcviewer = 'https://automation-live-stream.app.100ms.live/streaming/meeting/tiv-dsbn-kpt';
-
- const page_b = await context.newPage();
- await page_b.goto(broadcasterUrl);
- await page_b.getByPlaceholder('Enter name').fill('broadcaster');
- await page_b.getByText("Go Live").click();
- await page_b.waitForTimeout(3000);
-
- const page_cb = await context.newPage();
- await page_cb.goto(cobroadcasterUrl);
- await page_cb.getByPlaceholder('Enter name').fill('co-broadcaster');
- await page_cb.getByText("Join Now").click();
- await page_cb.waitForTimeout(2000);
-
- const page_vnrt = await context.newPage();
- await page_vnrt.goto(viewerNRTUrl);
- await page_vnrt.getByPlaceholder('Enter name').fill('vnrt');
- await page_vnrt.getByText("Join Now").click();
- await page_vnrt.waitForTimeout(2000);
-
- const page_vrt = await context.newPage();
- await page_vrt.goto(webrtcviewer);
- await page_vrt.getByPlaceholder('Enter name').fill('vrt');
- await page_vrt.getByText("Join Now").click();
- await page_vrt.waitForTimeout(2000);
-
- await page_b.bringToFront();
- await page_b.locator("//textarea").fill('broadcastermsg');
- await page_b.getByTestId('send_msg_btn').click();
-
- await page_cb.bringToFront();
- await page_cb.locator("//div[@data-testid='chat_msg']//p[text()='broadcastermsg']").isVisible();
- await page_cb.locator("//textarea").fill('co-broadcastermsg');
- await page_cb.getByTestId('send_msg_btn').click();
-
- await page_vnrt.bringToFront();
- await page_vnrt.locator("//div[@data-testid='chat_msg']//p[text()='broadcastermsg']").isVisible();
- await page_vnrt.locator("//div[@data-testid='chat_msg']//p[text()='co-broadcastermsg']").isVisible();
-
- await page_vnrt.locator("//textarea").fill('vnrtmsg');
- await page_vnrt.getByTestId('send_msg_btn').click();
-
- await page_vrt.bringToFront();
- await page_vrt.locator("//div[@data-testid='chat_msg']//p[text()='broadcastermsg']").isVisible();
- await page_vrt.locator("//div[@data-testid='chat_msg']//p[text()='co-broadcastermsg']").isVisible();
- await page_vrt.locator("//div[@data-testid='chat_msg']//p[text()='vnrtmsg']").isVisible();
-
- await page_vrt.locator("//textarea").fill('vrtmsg');
- await page_vrt.getByTestId('send_msg_btn').click();
-
- await page_vnrt.bringToFront();
- await page_vnrt.locator("//div[@data-testid='chat_msg']//p[text()='vrtmsg']").isVisible();
-
- await page_cb.bringToFront();
- await page_cb.locator("//div[@data-testid='chat_msg']//p[text()='vrtmsg']").isVisible();
- await page_vrt.locator("//div[@data-testid='chat_msg']//p[text()='vnrtmsg']").isVisible();
-
- await page_b.bringToFront();
- await page_b.locator("//div[@data-testid='chat_msg']//p[text()='co-broadcastermsg']").isVisible();
- await page_b.locator("//div[@data-testid='chat_msg']//p[text()='vnrtmsg']").isVisible();
- await page_cb.locator("//div[@data-testid='chat_msg']//p[text()='vrtmsg']").isVisible();
-
- await page_b.getByTestId('leave_end_dropdown_trigger').click();
- await page_b.getByTestId('end_room_btn').click();
- await page_b.getByTestId('stop_stream_btn').click();
-});
-
-
-test.skip(`Verify pin/unpin chat reflect to local+remote peer`, async({context}) => {
-
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lqh-lcej-ong';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/ylx-frpu-klf';
-
- const page_cb = await context.newPage();
- await page_cb.goto(cobroadcasterUrl);
- await page_cb.getByPlaceholder('Enter name').fill('cb1');
- await page_cb.getByText("Join Now").click();
- await page_cb.waitForTimeout(2000);
-
- const page_vnrt = await context.newPage();
- await page_vnrt.goto(viewerNRTUrl);
- await page_vnrt.getByPlaceholder('Enter name').fill('vnrt');
- await page_vnrt.getByText("Join Now").click();
- await page_vnrt.waitForTimeout(2000);
-
- await page_cb.bringToFront();
- await page_cb.locator("//textarea").fill('Hello');
- await page_cb.getByTestId('send_msg_btn').click();
-
- await page_cb.getByTestId('chat_msg').hover();
- await page_cb.getByTestId('pin_message_btn').click();
- await page_cb.locator("//div[@title='cb1: Hello']").isVisible();
-
- await page_vnrt.bringToFront();
- await page_vnrt.locator("//div[@title='cb1: Hello']").isVisible();
-
- await page_cb.bringToFront();
- await page_cb.locator("//div[@title='Unpin Message']").click();
- await page_vnrt.locator("//div[@title='cb1: Hello']").isHidden();
-
- await page_vnrt.bringToFront();
- await page_vnrt.locator("//div[@title='cb1: Hello']").isHidden();
-
- await page_cb.bringToFront();
- await page_cb.getByTestId('leave_end_dropdown_trigger').click();
- await page_cb.getByTestId('end_room_btn').click();
- await page_cb.getByTestId('stop_stream_btn').click();
-});
diff --git a/playwright/src/app/tests/ForceRoleChange.test.ts b/playwright/src/app/tests/ForceRoleChange.test.ts
deleted file mode 100644
index e5971ed493..0000000000
--- a/playwright/src/app/tests/ForceRoleChange.test.ts
+++ /dev/null
@@ -1,105 +0,0 @@
-import { test, expect } from '@playwright/test';
-import { Selectors } from '../selectors/Selectors';
-
-
-const selectors = new Selectors();
-let page_host : any ;
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
- await context.close();
-});
-
-test('Broadcaster is able to invite VNRT on stage with one click/force. @qaonly', async({context}) => {
- const broadcasterUrl = 'https://sahil-livestream-1207.app.100ms.live/streaming/meeting/sim-sbtw-svm';
- const hlsviewerUrl = 'https://sahil-livestream-1207.app.100ms.live/streaming/meeting/cfn-mafp-ewd';
-
- page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText(selectors.GoLive).click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(selectors.JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
-
- //Hand raise for vnrt
- await page.getByTestId('hand_raise_btn').click();
-
- //Go to broadcaster and click brint to stage notification
- await page_host.bringToFront();
- await page_host.getByText('Bring to stage').click();
-
-
- // viewer on stage assertions for broadcaster
-
- await page_host.getByTestId('participant_avatar_icon').isVisible();
- await page_host.getByTestId('participant_audio_mute_icon').isVisible();
- await expect(page_host.locator('data-testid=participant_video_tile')).toHaveCount(2);
-
- // viewer on stage assertions for vnrt
- await page.bringToFront();
-
- await page.getByTestId('participant_avatar_icon').isVisible();
- await page.getByTestId('participant_audio_mute_icon').isVisible();
- await expect(page.locator('data-testid=participant_video_tile')).toHaveCount(2);
- await expect(page.locator('text=Live')).toHaveCount(2);
-
-})
-
-test('Broadcaster is able to invite VRT on stage with one click/force. @qaonly', async({context}) => {
- const broadcasterUrl = 'https://sahil-livestream-1207.app.100ms.live/streaming/meeting/sim-sbtw-svm';
- const hlsviewerUrl = 'https://sahil-livestream-1207.app.100ms.live/streaming/meeting/cbg-ojjo-usk';
-
- page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText(selectors.GoLive).click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vrt');
- await page.getByText(selectors.JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
-
- //Hand raise for vrt
- await page.getByTestId('hand_raise_btn').click();
-
- //Go to broadcaster and click brint to stage notification
- await page_host.bringToFront();
- await page_host.getByText('Bring to stage').click();
-
-
- // viewer on stage assertions for broadcaster
-
- await page_host.getByTestId('participant_avatar_icon').isVisible();
- await page_host.getByTestId('participant_audio_mute_icon').isVisible();
- await expect(page_host.locator('data-testid=participant_video_tile')).toHaveCount(2);
-
- // viewer on stage assertions for vnrt
- await page.bringToFront();
-
- await page.getByTestId('participant_avatar_icon').isVisible();
- await page.getByTestId('participant_audio_mute_icon').isVisible();
- await expect(page.locator('data-testid=participant_video_tile')).toHaveCount(2);
-
-})
diff --git a/playwright/src/app/tests/Hls.test.ts b/playwright/src/app/tests/Hls.test.ts
deleted file mode 100644
index 9964e57310..0000000000
--- a/playwright/src/app/tests/Hls.test.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { request, test,expect } from '@playwright/test';
-import { v4 as uuidv4 } from 'uuid';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-
-test(`Verify play and pause recording for hls via API @hls`, async({context}) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/rtc-qzif-int';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lqv-fdww-qyu';
- const room_id = '657fdd247811c6f89a7995aa';
- var mtoken: string | null=null;
-
- //Get managemnet token
- var jwt = require('jsonwebtoken');
-
- var app_access_key = '641833fba6951482ad80c6a3';
- var app_secret = 'ojdwZLsDI_FqpmUipJULMK8mfRhAiVQpXMNEay0ddIeXY7uVJZQiExyyUFKLt5_GM1EZSrsjvoal8UVDSSYMVItATfShp5LBbdUJwbPoUpOmXTtXRbcC70Gpv9qgnoTemTRRSXUTzxLcSGp8ZZZ1XBV4YKwkIbRdYuRp67G7uJk=';
- var payload = {
- access_key: app_access_key,
- type: 'management',
- version: 2,
- iat: Math.floor(Date.now() / 1000),
- nbf: Math.floor(Date.now() / 1000)
- };
-
- jwt.sign(
- payload,
- app_secret,
- {
- algorithm: 'HS256',
- expiresIn: '24h',
- jwtid: uuidv4()
- },
- function (err:any,token: any) {
- mtoken = token;
- //console.log(mtoken);
- }
- );
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(10000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(viewerNRTUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText("Join Now").click();
- await page.waitForTimeout(5000);
-
- //Get stream id
- const api_context = await request.newContext();
-
- const resp = await api_context.get('https://api.100ms.live/v2/live-streams?room_id=657fdd247811c6f89a7995aa',{
- headers: {
- 'Authorization': `Bearer `+mtoken
- }
- });
- const respbody = JSON.parse(await resp.text());
- console.log(respbody);
- const stream_id = respbody.data[0].id;
- console.log("Stream id is "+stream_id);
-
- //Send pause
- const resp_pause = await api_context.post('https://api.100ms.live/v2/live-streams/'+stream_id+'/pause-recording',{
- headers: {
- 'Authorization': `Bearer `+mtoken
- }
- });
- await page.waitForTimeout(2000);
- console.log("Status is ==> ",await resp_pause.status());
-
- // Verify on vnrt
- const count = await page.locator("//div[@data-testid='header']/div/div[2]/div/div/div").count();
- await expect.soft(count).toEqual(3);
-
- //Send resume
- const resp_resume = await api_context.post('https://api.100ms.live/v2/live-streams/'+stream_id+'/resume-recording',{
- headers: {
- 'Authorization': `Bearer `+mtoken
- }
- });
- console.log("Status is ==> ",await resp_resume.status());
- await page.waitForTimeout(2000);
-
- // Verify on vnrt
- const count1 = await page.locator("//div[@data-testid='header']/div/div[2]/div/div/div").count();
- await expect.soft(count1).toEqual(2);
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
\ No newline at end of file
diff --git a/playwright/src/app/tests/InRoom.test.ts b/playwright/src/app/tests/InRoom.test.ts
deleted file mode 100644
index 35c6e32ce9..0000000000
--- a/playwright/src/app/tests/InRoom.test.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { test } from '@playwright/test';
-import { Selectors } from '../selectors/Selectors';
-import { PageActions } from '../PageActions';
-
-const URL = 'https://automation2.app.100ms.live/meeting/lnt-vqbj-sxl';
-
-let selectors = new Selectors();
-let pageActions = new PageActions();
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ page: nativePage }) => {
- await pageActions.endSession(nativePage);
-});
-
-
- test(`User is start/stop browser recording`, async ({ page: nativePage }) => {
- console.log(`URL - `, URL);
- await nativePage.goto(URL);
- await pageActions.joinRoom(nativePage, 'Automation User');
- await nativePage.getByTestId('participant_video_tile').isVisible();
- await nativePage.getByText(selectors.StartRec).click();
- await pageActions.stopRecording(nativePage);
- await nativePage.getByText(selectors.StartRec).isVisible();
- });
diff --git a/playwright/src/app/tests/JoinRoom.test.ts b/playwright/src/app/tests/JoinRoom.test.ts
deleted file mode 100644
index cb3d2fea4a..0000000000
--- a/playwright/src/app/tests/JoinRoom.test.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { test } from '@playwright/test';
-
-const roomCodes = {
- in: 'vyc-uptg-icu',
- us: 'gmo-cosl-ecj',
- eu: 'sxf-icek-ecp',
-};
-const baseUrl = 'https://automation2.app.100ms.live/meeting/';
-const JoinBtn = 'Join Now';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-const regions = ['in', 'eu', 'us'];
-
-regions.forEach(data => {
- test(`User is able to join ${data} room.`, async ({ page: nativePage }) => {
- const region = `${data}`;
- const URL = baseUrl + roomCodes[region];
- console.log(`Region - `, region);
- console.log(`URL - `, URL);
- await nativePage.goto(URL);
- await nativePage.getByPlaceholder('Enter name').fill('Automation User');
- await nativePage.getByText(JoinBtn).click();
- await nativePage.waitForTimeout(2000);
- await nativePage.getByTestId('participant_video_tile').isVisible();
- await nativePage.getByTestId('footer').isVisible();
- await nativePage.getByTestId('header').isVisible();
- });
-});
diff --git a/playwright/src/app/tests/MultiPeer.test.ts b/playwright/src/app/tests/MultiPeer.test.ts
deleted file mode 100644
index ba81d89b9a..0000000000
--- a/playwright/src/app/tests/MultiPeer.test.ts
+++ /dev/null
@@ -1,534 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { test } from '@playwright/test';
-
-const hostUrl = 'https://automation-in.app.100ms.live/meeting/viq-mewq-usf';
-const hlsViewerUrl = 'https://automation-in.app.100ms.live/meeting/zxk-oohm-shw';
-const JoinBtn = 'Join Now';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-
-test(`Verify viewer is not getting removed from peer list on raising hand-LIVE-173`, async ({ context }) => {
-
- const page_host = await context.newPage();
- await page_host.goto(hostUrl);
- await page_host.getByPlaceholder('Enter name').fill('host');
- await page_host.getByText(JoinBtn).click();
- await page_host.waitForTimeout(5000);
-
- const page = await context.newPage();
- await page.goto(hlsViewerUrl);
- await page.getByPlaceholder('Enter name').fill('new hls viewer');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hand_raise_btn').click();
- await page.waitForTimeout(2000);
- await page.getByTestId('hand_raise_btn').click();
-
- await page_host.bringToFront();
- await page_host.getByTestId('participant_list').click();
- const peer_list_dropdown = page_host.locator("//div[@role='tabpanel' and @data-state='active']//h3").nth(1);
- await peer_list_dropdown.click();
-
- await page_host.getByText('new hls viewer',{ exact: true }).isVisible();
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-
-});
-
-test(`Verify Peer does not disappear from the list after moving offstage-LIVE-1737`,async ({ context }) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lni-ylib-xho';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/jay-mnzo-czl';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Join Now").click();
- await page_host.waitForTimeout(10000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(viewerNRTUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- //Hand raise for vnrt
- await page.getByTestId('hand_raise_btn').click();
- await page.waitForTimeout(2000);
-
- //Go to broadcaster and click brint to stage notification
- await page_host.bringToFront();
- await page_host.getByText('Bring to stage').click();
-
- //Accpet invite
- await page.bringToFront();
- await page.getByText('Accept').click();
- await page.waitForTimeout(5000);
-
- //Go back to broadcaster
- await page_host.bringToFront();
- await page_host.getByTestId('participant_list').click();
- const peer_list_dropdown = page_host.locator("//div[contains(@id,'Participants')]//h3[contains(.,'stage')]");
- await peer_list_dropdown.click();
-
- const vnrt_list = page_host.locator("//div[@data-testid='participant_vnrt']");
- await vnrt_list.hover();
-
- const peer_menu = page_host.locator("//div[@data-testid='participant_vnrt']//div[@data-testid='participant_more_actions']");
- await peer_menu.click();
- await page_host.getByText('Remove from stage').click();
- await page.waitForTimeout(5000);
-
- const new_peer_list_dropdown = page_host.locator("//div[contains(@id,'Participants')]//h3[contains(.,'realtime')]");
- await new_peer_list_dropdown.click();
-
- await page_host.getByTestId('participant_vnrt').isVisible();
-
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
-
-test(`Verify HLS starts on room-LIVE-1856`,async ({ context }) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/phc-vxhk-bvz';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/dhl-gywb-xyc';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(10000);
-
- await page_host.getByTestId('header').getByText('LIVE').isVisible();
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(viewerNRTUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- //Check if live status is shown or not
- await page.getByTestId('header').getByText('LIVE').isVisible();
- const player = page.locator("//div[@data-testid='hms-video']//video");
- await player.isVisible();
-
- await page.getByTestId('leave_room_btn').click();
- await page.getByTestId('leave_room').click();
-
- await page.getByTestId('join_again_btn').isVisible();
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
-
-test(`Verify Webrtc viewer can join room and leave`, async({context}) => {
- const cobroadcaster = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lni-ylib-xho';
- const webrtcviewer = 'https://automation-live-stream.app.100ms.live/streaming/meeting/vfi-zkyi-gzj';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(cobroadcaster);
- await page_host.getByPlaceholder('Enter name').fill('co-broadcaster');
- await page_host.getByText("Join Now").click();
- await page_host.waitForTimeout(5000);
-
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(webrtcviewer);
- await page.getByPlaceholder('Enter name').fill('vrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('participant_video_tile').isVisible();
- await page.getByTestId('leave_room_btn').click();
- await page.getByTestId('leave_room').click();
-
- await page.getByTestId('join_again_btn').isVisible();
- await page.getByTestId('join_again_btn').click();
-
- await page.getByPlaceholder('Enter name').fill('vrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('participant_video_tile').isVisible();
-});
-
-test(`Verify co-broadcaster can end room`, async({context}) => {
- const cobroadcaster = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lni-ylib-xho';
- const webrtcviewer = 'https://automation-live-stream.app.100ms.live/streaming/meeting/vfi-zkyi-gzj';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(cobroadcaster);
- await page_host.getByPlaceholder('Enter name').fill('co-broadcaster');
- await page_host.getByText("Join Now").click();
- await page_host.waitForTimeout(5000);
-
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(webrtcviewer);
- await page.getByPlaceholder('Enter name').fill('vrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-
- await page_host.getByTestId('join_again_btn').isVisible();
-
- await page.bringToFront();
- await page.getByTestId('join_again_btn').isVisible();
-});
-
-test(`Verify broadcaster can end the session`, async({context}) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/dtr-ndny-sug';
- const viewerNRTUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/byc-pkcu-qjn';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(10000);
-
- await page_host.getByTestId('header').getByText('LIVE').isVisible();
-
- const page_host2 = await context.newPage();
-
- //Join as broadcaster
- await page_host2.goto(broadcasterUrl);
- await page_host2.getByPlaceholder('Enter name').fill('broadcaster2');
- await page_host2.getByText("Join Now").click();
- await page_host2.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(viewerNRTUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
- await page.waitForTimeout(1000);
-
- await page_host2.bringToFront();
- await page_host2.getByTestId('leave_end_dropdown_trigger').click();
- await page_host2.getByTestId('end_room_btn').click();
- await page_host2.getByTestId('stop_stream_btn').click();
- await page.waitForTimeout(1000);
-
- await page.bringToFront();
- await page.getByTestId('join_again_btn').isVisible();
-});
-
-test(`Verify broadcaster and co-broadcaster can leave and rejoin room` , async({context}) => {
-
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/dtr-ndny-sug';
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/gsg-hneq-lmy';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(10000);
-
- await page_host.getByTestId('header').getByText('LIVE').isVisible();
-
- const page_host2 = await context.newPage();
-
- //Join as co-broadcaster
- await page_host2.goto(cobroadcasterUrl);
- await page_host2.getByPlaceholder('Enter name').fill('co-broadcaster');
- await page_host2.getByText("Join Now").click();
- await page_host2.waitForTimeout(2000);
-
- await page_host2.getByTestId('leave_room_btn').click();
- await page_host2.getByTestId('leave_room').click();
-
- await page_host2.getByTestId('join_again_btn').isVisible();
- await page_host2.getByTestId('join_again_btn').click();
-
- await page_host2.getByPlaceholder('Enter name').fill('co-broadcaster');
- await page_host2.getByText("Join Now").click();
- await page_host2.waitForTimeout(1000);
- await page_host2.getByTestId('header').getByText('LIVE').isVisible();
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_room_btn').click();
- await page_host.getByTestId('leave_room').click();
-
- await page_host.getByTestId('join_again_btn').isVisible();
- await page_host.getByTestId('join_again_btn').click();
-
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(10000);
-
- await page_host.getByTestId('header').getByText('LIVE').isVisible();
-
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-
-});
-
-test(`Verify hls viewer can join room and leave`, async({context}) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/hih-ovsh-xru';
- const hlsviewerUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/eqe-gdip-nyp';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
- await page.getByTestId('leave_room_btn').click();
- await page.getByTestId('leave_room').click();
-
- await page.getByTestId('join_again_btn').isVisible();
- await page.getByTestId('join_again_btn').click();
-
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
-
-
-test(`Verify on-stage can join room and leave`, async({context}) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/hih-ovsh-xru';
- const hlsviewerUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/eqe-gdip-nyp';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
-
- //Hand raise for vnrt
- await page.getByTestId('hand_raise_btn').click();
- await page.waitForTimeout(2000);
-
- //Go to broadcaster and click brint to stage notification
- await page_host.bringToFront();
- await page_host.getByText('Bring to stage').click();
-
- //Accpet invite
- await page.bringToFront();
- await page.getByText('Accept').click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('leave_room_btn').click();
- await page.getByTestId('leave_room').click();
-
- await page.getByTestId('join_again_btn').isVisible();
- await page.getByTestId('join_again_btn').click();
-
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
-
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
-
-
-test(`Verify stream is running in highest quality`, async({context}) => {
-
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/hih-ovsh-xru';
- const hlsviewerUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/eqe-gdip-nyp';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(5000);
-
- await page.getByTestId('hms-video').isVisible();
- await page.getByTestId('hms-video').hover();
-
- page.locator("//div[@data-testid='quality_selector']//p[contains(.,'720')]").isVisible();
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
-});
-
-test(`Verify peer can remove other peer`, async({context}) => {
- const broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/ped-ztfm-rai';
- const hlsviewerUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/ldm-kuwn-ybe';
-
- const page_host = await context.newPage();
-
- //Join as broadcaster
- await page_host.goto(broadcasterUrl);
- await page_host.getByPlaceholder('Enter name').fill('broadcaster');
- await page_host.getByText("Go Live").click();
- await page_host.waitForTimeout(5000);
-
- //Join as vnrt
- const page = await context.newPage();
- await page.goto(hlsviewerUrl);
- await page.getByPlaceholder('Enter name').fill('vnrt');
- await page.getByText(JoinBtn).click();
- await page.waitForTimeout(2000);
-
- await page_host.bringToFront();
- await page_host.getByTestId('participant_list').click();
- await page_host.locator("//div[contains(@id,'Participants')]//h3[contains(.,'viewer-near-realtime')]").click();
-
- await page_host.getByTestId('participant_vnrt').hover();
- const peer_menu = page_host.locator("//div[@data-testid='participant_vnrt']//div[@data-testid='participant_more_actions']");
- await peer_menu.click();
- await page_host.getByText('Remove Participant').click();
-
- await page.bringToFront();
- await page.getByTestId('join_again_btn').isVisible();
-
-});
-
-test.skip(`Verify peer mute and unmute peers`, async({context}) => {
- const co_broadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/gno-sbuc-lyw';
-
- const page_b = await context.newPage();
-
- //Join as broadcaster
- await page_b.goto(co_broadcasterUrl);
- await page_b.getByPlaceholder('Enter name').fill('broadcaster');
- await page_b.getByText("Join Now").click();
- await page_b.waitForTimeout(5000);
-
- const page_cb = await context.newPage();
-
- //Join as co_broadcaster
- await page_cb.goto(co_broadcasterUrl);
- await page_cb.getByPlaceholder('Enter name').fill('cobroadcaster');
- await page_cb.getByText("Join Now").click();
- await page_cb.waitForTimeout(5000);
-
- await page_b.bringToFront();
- await page_b.getByTestId('participant_tile_cobroadcaster').hover();
- await page_b.getByTestId('participant_menu_btn').click();
- await page_b.getByTestId('mute_video_participant_btn').click();
-
- await page_b.getByTestId('participant_tile_broadcaster').hover();
- await page_b.getByTestId('participant_tile_cobroadcaster').hover();
- await page_b.getByTestId('participant_menu_btn').click();
- await page_b.getByTestId('mute_audio_participant_btn').click();
-
- await page_b.locator("//div[@data-testid='participant_audio_mute_icon']//div[@data-testid='participant_audio_mute_icon']").isVisible();
- await page_b.locator("//div[@data-testid='participant_audio_mute_icon']//div[@data-testid='participant_avatar_icon']").isVisible();
-
- await page_b.getByTestId('participant_tile_broadcaster').hover();
- await page_b.getByTestId('participant_tile_cobroadcaster').hover();
- await page_b.getByTestId('participant_menu_btn').click();
- await page_b.getByTestId('unmute_video_participant_btn').click();
-
- await page_cb.bringToFront();
- await page_cb.getByText('Accept').click();
-
- await page_b.bringToFront();
- await page_b.getByTestId('participant_tile_cobroadcaster').hover();
- await page_b.getByTestId('participant_menu_btn').click();
- await page_b.getByTestId('unmute_audio_participant_btn').click();
-
- await page_cb.bringToFront();
- await page_cb.getByText('Accept').click();
-
- await page_b.bringToFront();
- await page_b.locator("//div[@data-testid='participant_audio_mute_icon']//div[@data-testid='participant_audio_mute_icon']").isHidden();
- await page_b.locator("//div[@data-testid='participant_audio_mute_icon']//div[@data-testid='participant_avatar_icon']").isHidden();
-});
-
-test(`Check role limit test`, async({context}) => {
-
- const hostUrl = "https://role-limit-check.app.100ms.live/meeting/ifb-edpm-pcv"
-
- const page_b = await context.newPage();
-
- //Join as broadcaster
- await page_b.goto(hostUrl);
- await page_b.getByPlaceholder('Enter name').fill('host1');
- await page_b.getByText("Join Now").click();
- await page_b.waitForTimeout(1000);
-
- const page_a = await context.newPage();
-
- //Join as broadcaster
- await page_a.goto(hostUrl);
- await page_a.getByPlaceholder('Enter name').fill('host1');
- await page_a.getByText("Join Now").click();
- await page_a.getByText('The room is currently full,try joining later').isVisible();
-
- await page_a.getByTestId('join_again_btn').isVisible();
-});
-
-
diff --git a/playwright/src/app/tests/Participant.test.ts b/playwright/src/app/tests/Participant.test.ts
deleted file mode 100644
index 9da97eba59..0000000000
--- a/playwright/src/app/tests/Participant.test.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { test } from '@playwright/test';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-test(`verify participant count`, async({context}) => {
-
- const broadcasterUrl = 'https://participant.app.100ms.live/streaming/meeting/ltu-hbsq-ljk';
- const cobroadcasterUrl = 'https://participant.app.100ms.live/streaming/meeting/kla-pfjb-iqi';
- const vnrtUrl = 'https://participant.app.100ms.live/streaming/meeting/zlf-cfqp-lde';
- const vrtUrl = 'https://participant.app.100ms.live/streaming/meeting/krn-ixnf-bsl';
-
- const broadcast = await context.newPage();
- await broadcast.goto(broadcasterUrl);
- await broadcast.getByPlaceholder('Enter name').fill('b1');
- await broadcast.getByText("Join Now").click();
-
- const cobroadcast1 = await context.newPage();
- await cobroadcast1.goto(cobroadcasterUrl);
- await cobroadcast1.getByPlaceholder('Enter name').fill('cb1');
- await cobroadcast1.getByText("Join Now").click();
-
- const cobroadcast2 = await context.newPage();
- await cobroadcast2.goto(cobroadcasterUrl);
- await cobroadcast2.getByPlaceholder('Enter name').fill('cb2');
- await cobroadcast2.getByText("Join Now").click();
-
-
- const vnrt1 = await context.newPage();
- await vnrt1.goto(vnrtUrl);
- await vnrt1.getByPlaceholder('Enter name').fill('vnrt1');
- await vnrt1.getByText("Join Now").click();
-
-
- const vnrt2 = await context.newPage();
- await vnrt2.goto(vnrtUrl);
- await vnrt2.getByPlaceholder('Enter name').fill('vnrt2');
- await vnrt2.getByText("Join Now").click();
-
- const vnrt3 = await context.newPage();
- await vnrt3.goto(vnrtUrl);
- await vnrt3.getByPlaceholder('Enter name').fill('vnrt3');
- await vnrt3.getByText("Join Now").click();
-
- const vrt1 = await context.newPage();
- await vrt1.goto(vrtUrl);
- await vrt1.getByPlaceholder('Enter name').fill('vrt1');
- await vrt1.getByText("Join Now").click();
-
- const vrt2 = await context.newPage();
- await vrt2.goto(vrtUrl);
- await vrt2.getByPlaceholder('Enter name').fill('vrt2');
- await vrt2.getByText("Join Now").click();
-
- const vrt3 = await context.newPage();
- await vrt3.goto(vrtUrl);
- await vrt3.getByPlaceholder('Enter name').fill('vrt3');
- await vrt3.getByText("Join Now").click();
-
- //check for broadcaster
- await broadcast.bringToFront();
- await broadcast.getByTestId("participant_list").click();
- await broadcast.getByText("Participant (9)").isVisible();
- await broadcast.getByText("Broadcaster (1)").isVisible();
- await broadcast.getByText("Co-Broadcaster (2)").isVisible();
- await broadcast.getByText("Viewer-Realtime (3)").isVisible();
- await broadcast.getByText("Viewer-Near-Realtime (3)").isVisible();
-
-
- await cobroadcast1.bringToFront();
- await broadcast.getByTestId("participant_list").click();
- await broadcast.getByText("Participant (9)").isVisible();
- await broadcast.getByText("Broadcaster (1)").isVisible();
- await broadcast.getByText("Co-Broadcaster (2)").isVisible();
- await broadcast.getByText("Viewer-Realtime (3)").isVisible();
- await broadcast.getByText("Viewer-Near-Realtime (3)").isVisible();
-
- await vnrt1.bringToFront();
- await vnrt1.getByTestId("participant_list").click();
- await vnrt1.getByText("Participant (9)").isVisible();
- await vnrt1.getByText("Broadcaster (1)").isVisible();
- await vnrt1.getByText("Co-Broadcaster (2)").isVisible();
- await vnrt1.getByText("Viewer-Realtime (3)").isVisible();
- await vnrt1.getByText("Viewer-Near-Realtime (3)").isVisible();
-
- await vrt1.bringToFront();
- await vrt1.getByTestId("participant_list").click();
- await vrt1.getByText("Participant (9)").isVisible();
- await vrt1.getByText("Broadcaster (1)").isVisible();
- await vrt1.getByText("Co-Broadcaster (2)").isVisible();
- await vrt1.getByText("Viewer-Realtime (3)").isVisible();
- await vrt1.getByText("Viewer-Near-Realtime (3)").isVisible();
-
- await broadcast.bringToFront();
- await broadcast.getByTestId('leave_end_dropdown_trigger').click();
- await broadcast.getByTestId('end_room_btn').click();
- await broadcast.getByTestId('stop_stream_btn').click();
-
-});
-
-
-test(`Verify participant search`, async({context}) => {
-
- const broadcasterUrl = 'https://participant.app.100ms.live/streaming/meeting/eqe-yolf-czn';
- const cobroadcasterUrl = 'https://participant.app.100ms.live/streaming/meeting/ohz-ugim-zpu';
-
- const broadcast = await context.newPage();
- await broadcast.goto(broadcasterUrl);
- await broadcast.getByPlaceholder('Enter name').fill('broadcaster');
- await broadcast.getByText("Join Now").click();
-
- const cobroadcast = await context.newPage();
- await cobroadcast.goto(cobroadcasterUrl);
- await cobroadcast.getByPlaceholder('Enter name').fill('cobro1');
- await cobroadcast.getByText("Join Now").click();
-
- const cobroadcast2 = await context.newPage();
- await cobroadcast2.goto(cobroadcasterUrl);
- await cobroadcast2.getByPlaceholder('Enter name').fill('cobro2');
- await cobroadcast2.getByText("Join Now").click();
-
- await broadcast.bringToFront();
- await broadcast.getByTestId("participant_list").click();
- await broadcast.locator("//input[@type='text']").fill("broadcaster");
- await broadcast.getByText("Broadcaster (1)")
-
- await broadcast.locator("//input[@type='text']").fill("cobro");
- await broadcast.getByText("Co-Broadcaster (2)")
-
- await broadcast.locator("//input[@type='text']").fill("cobro1");
- await broadcast.getByText("Co-Broadcaster (1)")
-
-});
\ No newline at end of file
diff --git a/playwright/src/app/tests/PollsQuizzes.test.ts b/playwright/src/app/tests/PollsQuizzes.test.ts
deleted file mode 100644
index c3a78445cf..0000000000
--- a/playwright/src/app/tests/PollsQuizzes.test.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import { test } from '@playwright/test';
-import { Selectors } from '../selectors/Selectors';
-import { PageActions } from '../PageActions';
-
-const URL = 'https://automation-live-stream.app.100ms.live/streaming/meeting/vtf-ypzy-swn';
-const VNRT_URL = 'https://automation-live-stream.app.100ms.live/streaming/meeting/vat-suuw-twk';
-
-let selectors = new Selectors();
-let pageActions = new PageActions();
-
-test.beforeEach(async () => {});
-
-
- test(`User is able to create new Poll and Viewers can vote.`, async ({ context }) => {
- console.log(`URL - `, URL);
- const broadcaster_page = await context.newPage();
- await broadcaster_page.goto(URL);
- await pageActions.goLive(broadcaster_page, 'Automation User');
-
- await pageActions.createNewPoll('Test Poll', broadcaster_page);
-
- // new poll assertions
- await broadcaster_page.getByText('Live').isVisible();
- await broadcaster_page.getByText(selectors.EndPollBtn).isVisible();
- await broadcaster_page.getByText('Automation User started a new poll');
-
-
-
-
-
- const vnrt_page = await context.newPage();
- await vnrt_page.goto(VNRT_URL);
- await vnrt_page.getByPlaceholder('Enter name').fill('VNRT viewer');
- await vnrt_page.getByText(selectors.JoinBtn).click();
- await pageActions.vote(vnrt_page, false);
-
- await vnrt_page.getByText('Voted').isVisible();
- await broadcaster_page.bringToFront();
- await broadcaster_page.getByText(selectors.EndPollBtn).click();
- await broadcaster_page.getByText('Ended').isVisible();
- await broadcaster_page.getByText('1 Vote').isVisible();
- await pageActions.endSession(broadcaster_page);
-
- });
-
- test(`User is able to create new Quiz and Viewers can vote`, async ({ context }) => {
- console.log(`URL - `, URL);
- const broadcaster_page = await context.newPage();
- await broadcaster_page.goto(URL);
- await pageActions.goLive(broadcaster_page, 'Automation User');
-
- await pageActions.createNewQuiz('Test Poll', broadcaster_page);
- // new quiz assertions
- await broadcaster_page.getByText('Live').isVisible();
- await broadcaster_page.getByText(selectors.EndQuizBtn).isVisible();
- await broadcaster_page.getByText('Automation User started a new quiz');
-
-
-
-
-
- const vnrt_page = await context.newPage();
- await vnrt_page.goto(VNRT_URL);
- await vnrt_page.getByPlaceholder('Enter name').fill('VNRT viewer');
- await vnrt_page.getByText(selectors.JoinBtn).click();
- await pageActions.vote(vnrt_page, true);
-
- await vnrt_page.getByText('Answered').isVisible();
- await broadcaster_page.bringToFront();
- await broadcaster_page.getByText(selectors.EndQuizBtn).click();
- await broadcaster_page.getByText('Ended').isVisible();
- await broadcaster_page.getByText('1 Vote').isVisible();
- await broadcaster_page.getByText('View Leaderboard').isVisible();
- await pageActions.endSession(broadcaster_page);
- });
diff --git a/playwright/src/app/tests/Preview.test.ts b/playwright/src/app/tests/Preview.test.ts
deleted file mode 100644
index 59b551450d..0000000000
--- a/playwright/src/app/tests/Preview.test.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { test } from '@playwright/test';
-
-const baseUrl = 'https://automation2.app.100ms.live/meeting/';
-const JoinBtn = 'Join Now';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-
- test(`Verify Virtual background button on preview and in Room`, async ({ page: nativePage }) => {
- const URL = baseUrl + 'ufx-vfgw-yge';
- console.log(`URL - `, URL);
- await nativePage.goto(URL);
- await nativePage.getByPlaceholder('Enter name').fill('Automation User');
- await nativePage.getByTestId('virtual_bg_btn').isVisible();
- await nativePage.getByText(JoinBtn).click();
- await nativePage.waitForTimeout(2000);
- await nativePage.getByTestId('virtual_bg_btn').isVisible();
- });
diff --git a/playwright/src/app/tests/SessionMeta.test.ts b/playwright/src/app/tests/SessionMeta.test.ts
deleted file mode 100644
index 95bd74b8db..0000000000
--- a/playwright/src/app/tests/SessionMeta.test.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { test } from '@playwright/test';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-
-test(`Verify BRB and hand raise is displayed for other peers`, async({context}) => {
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/pjk-bqfv-yhv';
-
- const cb_1 = await context.newPage();
-
- //Join as cb1
- await cb_1.goto(cobroadcasterUrl);
- await cb_1.getByPlaceholder('Enter name').fill('cb1');
- await cb_1.getByText("Join Now").click();
-
- //Join as cb2
- const cb_2 = await context.newPage();
- await cb_2.goto(cobroadcasterUrl);
- await cb_2.getByPlaceholder('Enter name').fill('cb2');
- await cb_2.getByText("Join Now").click();
-
- await cb_2.getByTestId("hand_raise_btn").click();
- await cb_1.bringToFront();
-
- await cb_1.getByText("cb1 raised hand").isVisible();
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']//div[@data-testid='raiseHand_icon_onTile']/svg").isVisible();
-
- await cb_2.bringToFront();
- await cb_2.getByTestId("hand_raise_btn").click();
-
- await cb_2.getByTestId("chat_btn").click();
- await cb_2.getByTestId("more_settings_btn").click();
- await cb_2.getByTestId("brb_btn").click();
-
- await cb_1.bringToFront();
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']//div[@data-testid='brb_icon_onTile']/svg").isVisible();
-
- await cb_1.getByTestId('leave_end_dropdown_trigger').click();
- await cb_1.getByTestId('end_room_btn').click();
- await cb_1.getByTestId('stop_stream_btn').click();
-});
-
-test(`Verify pin tile works for peer`, async({context}) => {
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/nyx-qmia-mna';
-
- const cb_1 = await context.newPage();
-
- //Join as cb1
- await cb_1.goto(cobroadcasterUrl);
- await cb_1.getByPlaceholder('Enter name').fill('cb1');
- await cb_1.getByText("Join Now").click();
-
- //Join as cb2
- const cb_2 = await context.newPage();
- await cb_2.goto(cobroadcasterUrl);
- await cb_2.getByPlaceholder('Enter name').fill('cb2');
- await cb_2.getByText("Join Now").click();
-
- await cb_1.bringToFront();
- await cb_1.getByTestId("participant_tile_cb2").click();
- await cb_1.getByTestId("participant_menu_btn").click();
- await cb_1.getByText("Pin Tile for myself").click();
-
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isVisible();
-
- await cb_1.getByTestId("participant_tile_cb2").click();
- await cb_1.getByTestId("participant_menu_btn").click();
- await cb_1.getByText("Unpin Tile for myself").click();
-
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isHidden();
- await cb_1.getByTestId('leave_end_dropdown_trigger').click();
- await cb_1.getByTestId('end_room_btn').click();
- await cb_1.getByTestId('stop_stream_btn').click();
-});
-
-test(`Verify spotlight reflect to local and remote peer`,async({context}) => {
-
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/slq-lfhh-hjv';
-
- const cb_1 = await context.newPage();
-
- //Join as cb1
- await cb_1.goto(cobroadcasterUrl);
- await cb_1.getByPlaceholder('Enter name').fill('cb1');
- await cb_1.getByText("Join Now").click();
-
- //Join as cb2
- const cb_2 = await context.newPage();
- await cb_2.goto(cobroadcasterUrl);
- await cb_2.getByPlaceholder('Enter name').fill('cb2');
- await cb_2.getByText("Join Now").click();
-
- await cb_1.bringToFront();
- await cb_1.getByTestId("participant_tile_cb2").click();
- await cb_1.getByTestId("participant_menu_btn").click();
- await cb_1.getByText("Spotlight Tile for everyone").click();
-
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isVisible();
-
- await cb_2.bringToFront();
- await cb_2.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isVisible();
-
- await cb_1.bringToFront();
- await cb_1.getByTestId("participant_tile_cb2").click();
- await cb_1.getByTestId("participant_menu_btn").click();
- await cb_1.getByText("Remove from Spotlight").click();
-
- await cb_1.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isHidden();
-
- await cb_2.bringToFront();
- await cb_2.locator("//div[@data-testid='participant_tile_cb2']/div/div[3]/div/div").isHidden();
-
- await cb_2.getByTestId('leave_end_dropdown_trigger').click();
- await cb_2.getByTestId('end_room_btn').click();
- await cb_2.getByTestId('stop_stream_btn').click();
-});
diff --git a/playwright/src/app/tests/VideoQuality.test.ts b/playwright/src/app/tests/VideoQuality.test.ts
deleted file mode 100644
index d2bb5fb951..0000000000
--- a/playwright/src/app/tests/VideoQuality.test.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-
-import { test, expect, Page } from '@playwright/test';
-import { Selectors } from '../selectors/Selectors';
-import { PageActions } from '../PageActions';
-
-
-const selectors = new Selectors();
-const pageActions = new PageActions();
-let page_host: Page;
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await page_host.bringToFront();
- await page_host.getByTestId('leave_end_dropdown_trigger').click();
- await page_host.getByTestId('end_room_btn').click();
- await page_host.getByTestId('stop_stream_btn').click();
- await context.close();
-});
-
-test('User should be able to subscribe to highest video quality in inset mode', async({context}) => {
- const hostUrl = 'https://sahil-videoconf-1501.app.100ms.live/meeting/sqw-exrv-qci';
- const guestUrl = 'https://sahil-videoconf-1501.app.100ms.live/meeting/auc-nvjm-sss';
-
- page_host = await context.newPage();
-
- //Join as host
- await page_host.goto(hostUrl);
- await page_host.getByPlaceholder('Enter name').fill('host');
- await page_host.getByText(selectors.JoinBtn).click();
- await page_host.waitForTimeout(2000);
-
- //Join as guest
- const page_guest = await context.newPage();
- await page_guest.goto(guestUrl);
- await page_guest.getByPlaceholder('Enter name').fill('guest');
- await page_guest.getByText(selectors.JoinBtn).click();
- await page_guest.waitForTimeout(2000);
-
- await pageActions.turnOnStatsForNerds(page_guest);
- await page_guest.waitForTimeout(2000);
- const table = await page_guest.locator('table').nth(0);
- const text = await table.locator('td').allInnerTexts();
- expect(text[0]).toEqual('Width');
- expect(text[1]).toEqual('1280');
- expect(text[2]).toEqual('Height');
- expect(text[3]).toEqual('720');
-
-})
-
-
diff --git a/playwright/src/app/tests/Videotile.test.ts b/playwright/src/app/tests/Videotile.test.ts
deleted file mode 100644
index 677ed1225b..0000000000
--- a/playwright/src/app/tests/Videotile.test.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-// eslint-disable-line
-/* eslint-disable */
-import { test } from '@playwright/test';
-
-test.beforeEach(async () => {});
-
-test.afterEach(async ({ context }) => {
- await context.close();
-});
-
-test(`Verify simulcast layer getting published as set in template @sim`, async({context}) => {
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/lnw-zfmy-rzo';
-
- const page_cb1 = await context.newPage();
- await page_cb1.goto(cobroadcasterUrl);
- await page_cb1.getByPlaceholder('Enter name').fill('cb1');
- await page_cb1.getByText("Join Now").click();
- await page_cb1.waitForTimeout(2000);
-
- const page_cb2 = await context.newPage();
- await page_cb2.goto(cobroadcasterUrl);
- await page_cb2.getByPlaceholder('Enter name').fill('cb2');
- await page_cb2.getByText("Join Now").click();
- await page_cb2.waitForTimeout(2000);
-
- await page_cb1.bringToFront();
- await page_cb1.getByTestId("participant_tile_cb2").hover();
- await page_cb1.getByTestId("participant_menu_btn").click();
- //await page_cb1.getByText("Currently streaming: High (1270x720)").click();
-
- await page_cb1.getByText("Remove Participant").scrollIntoViewIfNeeded;
- await page_cb1.getByText("low").isVisible();
- await page_cb1.getByText("medium").isVisible();
- await page_cb1.getByText("high").isVisible();
-
- await page_cb1.getByText("320x180").isVisible();
- await page_cb1.getByText("640x360").isVisible();
- await page_cb1.getByText("1280x720").isVisible();
-
- await page_cb1.getByTestId('leave_end_dropdown_trigger').click();
- await page_cb1.getByTestId('end_room_btn').click();
- await page_cb1.getByTestId('stop_stream_btn').click();
-
-});
-
-test(`Verify simulcast layer getting published as set in template`, async({context}) => {
- const cobroadcasterUrl = 'https://automation-live-stream.app.100ms.live/streaming/meeting/jsw-bywh-usa';
-
- const page_cb1 = await context.newPage();
- await page_cb1.goto(cobroadcasterUrl);
- await page_cb1.getByTestId('video_on_btn').click();
- await page_cb1.getByTestId('virtual_bg_btn').isHidden();
-
- await page_cb1.getByTestId('video_off_btn').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByTestId('none').isVisible();
- await page_cb1.getByTestId('blur').isVisible();
-
- await page_cb1.getByTestId('virtual_bg_option-0').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByTestId('virtual_bg_btn').click();
- await page_cb1.getByTestId('none').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByPlaceholder('Enter name').fill('cb1');
- await page_cb1.getByText("Join Now").click();
- await page_cb1.waitForTimeout(2000);
-
- await page_cb1.getByTestId('video_on_btn').click();
- await page_cb1.getByTestId('virtual_bg_btn').isHidden();
-
- await page_cb1.getByTestId('video_off_btn').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByTestId('none').isVisible();
- await page_cb1.getByTestId('blur').isVisible();
-
- await page_cb1.getByTestId('virtual_bg_option-0').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByTestId('virtual_bg_btn').click();
- await page_cb1.getByTestId('none').click();
- await page_cb1.getByTestId('virtual_bg_btn').click();
-
- await page_cb1.getByTestId('leave_end_dropdown_trigger').click();
- await page_cb1.getByTestId('end_room_btn').click();
- await page_cb1.getByTestId('stop_stream_btn').click();
-});
\ No newline at end of file
diff --git a/playwright/src/environment.d.ts b/playwright/src/environment.d.ts
deleted file mode 100644
index 159a862626..0000000000
--- a/playwright/src/environment.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-declare global {
- namespace NodeJS {
- interface ProcessEnv {
- audio_video_screenshare_url: string;
- peer_name: string;
- beam_wait_timeout: string;
- twitch_rtmp_url: string;
- twitch_rtmp_key: string;
- yt_rtmp_url: string;
- multi_peer_count: string;
- }
- }
-}
-
-// If this file has no import/export statements (i.e. is a script)
-// convert it into a module by adding an empty export statement.
-export {};
diff --git a/playwright/src/slackReporter.ts b/playwright/src/slackReporter.ts
deleted file mode 100644
index 7f6263a13e..0000000000
--- a/playwright/src/slackReporter.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import { FullConfig, FullResult, Reporter, Suite, TestCase, TestResult, TestStatus } from '@playwright/test/reporter';
-import { writeFileSync } from 'fs';
-import * as HandleBars from 'handlebars';
-
-class slackReporter implements Reporter {
- private message = '';
- private counters: Record = {
- passed: 0,
- skipped: 0,
- };
- private flaky: string[] = [];
- private failures: string[] = [];
- private timedOut: string[] = [];
-
- onBegin(config: FullConfig, suite: Suite): void {
- this.addCountToMessage('Total', suite.allTests().length);
- }
-
- // eslint-disable-next-line complexity
- onTestEnd(test: TestCase, result: TestResult): void {
- // test is flaky when it had some failures but passed in retries
- if (test.outcome() === 'flaky') {
- this.failures = this.failures.filter(title => title !== test.title);
- this.timedOut = this.timedOut.filter(title => title !== test.title);
- this.flaky.push(test.title);
- } else if (result.status === 'failed' && !this.failures.includes(test.title)) {
- this.failures.push(test.title);
- } else if (result.status === 'timedOut' && !this.timedOut.includes(test.title)) {
- this.timedOut.push(test.title);
- } else if (!['failed', 'timedOut'].includes(result.status)) {
- this.counters[result.status]++;
- }
- console.log(`Finished test ${test.title}: ${result.status}`);
- }
-
- onEnd(result: FullResult): void {
- this.counters.failed = this.failures.length;
- this.counters.flaky = this.flaky.length;
- this.counters.timedOut = this.timedOut.length;
-
- Object.entries(this.counters).forEach(([status, statusCount]) => {
- this.addCountToMessage(status, statusCount);
- });
-
- if (this.counters['failed'] > 0) {
- slackPayload.attachments[0].color = '#af0e20';
- this.message += '\n*Failed Tests - *\n';
- this.message += `${this.failures.join('\n')}\n`;
- }
- if (this.counters['flaky'] > 0) {
- this.message += '\n*Flaky Tests - *\n';
- this.message += `${this.flaky.join('\n')}\n`;
- }
- if (this.counters['timedOut'] > 0) {
- slackPayload.attachments[0].color = '#af0e20';
- this.message += '\n*TimedOut Tests - *\n';
- this.message += `${this.timedOut.join('\n')}\n`;
- }
-
- console.log(`Finished the run: ${result.status}`);
- slackText.text = this.message;
- let slackJson = JSON.stringify(slackPayload, null, 2);
- const emoji = result.status === 'passed' ? ':tada:' : ':cry:';
- slackJson = this.interpolateSlackTemplate(slackJson, { jobStatus: result.status, emoji });
- console.log('slack message payload', slackJson);
- writeFileSync('slackMessage.json', slackJson);
- }
-
- interpolateSlackTemplate(payload: string, variables: Record) {
- payload = payload.replaceAll('$', '');
- const context = {
- env: process.env,
- ...variables,
- };
- const template = HandleBars.compile(payload);
- return template(context);
- }
-
- addCountToMessage(label: string, count: number) {
- if (count) {
- this.message += `*${label}:* ${count}\n`;
- }
- }
-}
-
-const slackText = {
- type: 'mrkdwn',
- text: '',
-};
-
-const slackPayload = {
- attachments: [
- {
- color: '#1cba2c',
- blocks: [
- {
- type: 'section',
- text: {
- type: 'mrkdwn',
- text: '*Pre-built Web app P0 tests automation report: ${{jobStatus}} ${{emoji}}*',
- },
- },
- {
- type: 'section',
- text: slackText,
- },
- {
- type: 'divider',
- },
- {
- type: 'actions',
- elements: [
- {
- type: 'button',
- text: {
- type: 'plain_text',
- text: 'Test Run',
- emoji: true,
- },
- url: '${{env.GITHUB_SERVER_URL}}/${{env.GITHUB_REPOSITORY}}/actions/runs/${{env.GITHUB_RUN_ID}}',
- },
- {
- type: 'button',
- text: {
- type: 'plain_text',
- text: 'Results',
- emoji: true,
- },
- url: 'https://web-automation-git-${{env.REGION}}-100mslive.vercel.app/',
- },
- ],
- },
- ],
- },
- ],
-};
-
-export default slackReporter;
diff --git a/playwright/test-data/layouts.json b/playwright/test-data/layouts.json
deleted file mode 100644
index fc833ab4ca..0000000000
--- a/playwright/test-data/layouts.json
+++ /dev/null
@@ -1,483 +0,0 @@
-{
- "data": [
- {
- "id": "6523d471680819d59dc33ace",
- "role_id": "308dfcdd-8806-4bd4-9f63-d7f97d8cf759",
- "template_id": "6523d471a1fa4b5ebc633383",
- "app_id": "62822daf05c6487f9e556453",
- "themes": [
- {
- "name": "default",
- "default": true,
- "palette": {
- "primary_default": "#2572ed",
- "primary_bright": "#538dff",
- "primary_dim": "#002d6d",
- "primary_disabled": "#004299",
- "on_primary_high": "#FFFFFF",
- "on_primary_medium": "#CCDAFF",
- "on_primary_low": "#84AAFF",
- "secondary_default": "#444954",
- "secondary_bright": "#70778B",
- "secondary_dim": "#293042",
- "secondary_disabled": "#404759",
- "on_secondary_high": "#FFFFFF",
- "on_secondary_medium": "#D3D9F0",
- "on_secondary_low": "#A4ABC0",
- "background_default": "#0B0E15",
- "background_dim": "#000000",
- "surface_default": "#191B23",
- "surface_bright": "#272A31",
- "surface_brighter": "#2E3038",
- "surface_dim": "#11131A",
- "on_surface_high": "#EFF0FA",
- "on_surface_medium": "#C5C6D0",
- "on_surface_low": "#8F9099",
- "border_default": "#1D1F27",
- "border_bright": "#272A31",
- "alert_success": "#36B37E",
- "alert_warning": "#FFAB00",
- "alert_error_default": "#C74E5B",
- "alert_error_bright": "#FFB2B6",
- "alert_error_brighter": "#FFEDEC",
- "alert_error_dim": "#270005"
- },
- "theme_type": "THEME_TYPE_DARK"
- }
- ],
- "typography": {
- "font_family": "Inter"
- },
- "logo": {
- "url": "https://storage.googleapis.com/100ms-cms-prod/cms/100ms_18a29f69f2/100ms_18a29f69f2.png"
- },
- "screens": {
- "preview": {
- "default": {
- "elements": {
- "preview_header": {
- "title": "Get Started",
- "sub_title": "Setup your audio and video before joining"
- },
- "join_form": {
- "join_btn_type": "JOIN_BTN_TYPE_JOIN_AND_GO_LIVE",
- "join_btn_label": "Join Now",
- "go_live_btn_label": "Go Live"
- }
- }
- }
- },
- "conferencing": {
- "default": {
- "elements": {
- "chat": {
- "initial_state": "CHAT_STATE_CLOSE",
- "is_overlay": true,
- "allow_pinning_messages": true
- },
- "participant_list": {},
- "video_tile_layout": {
- "grid": {
- "enable_local_tile_inset": false,
- "prominent_roles": [],
- "enable_spotlighting_peer": true
- }
- },
- "emoji_reactions": {},
- "on_stage_exp": {
- "bring_to_stage_label": "Bring to stage",
- "remove_from_stage_label": "Remove from stage",
- "on_stage_role": "viewer-on-stage",
- "off_stage_roles": [
- "viewer-near-realtime",
- "viewer-realtime"
- ]
- },
- "brb": {}
- }
- }
- },
- "leave": {}
- },
- "role": "broadcaster",
- "options": {}
- },
- {
- "id": "6523d472680819d59dc33acf",
- "role_id": "e1930948-445a-4d83-92c6-6ad1603613f5",
- "template_id": "6523d471a1fa4b5ebc633383",
- "app_id": "62822daf05c6487f9e556453",
- "themes": [
- {
- "name": "default",
- "default": true,
- "palette": {
- "primary_default": "#2572ed",
- "primary_bright": "#538dff",
- "primary_dim": "#002d6d",
- "primary_disabled": "#004299",
- "on_primary_high": "#FFFFFF",
- "on_primary_medium": "#CCDAFF",
- "on_primary_low": "#84AAFF",
- "secondary_default": "#444954",
- "secondary_bright": "#70778B",
- "secondary_dim": "#293042",
- "secondary_disabled": "#404759",
- "on_secondary_high": "#FFFFFF",
- "on_secondary_medium": "#D3D9F0",
- "on_secondary_low": "#A4ABC0",
- "background_default": "#0B0E15",
- "background_dim": "#000000",
- "surface_default": "#191B23",
- "surface_bright": "#272A31",
- "surface_brighter": "#2E3038",
- "surface_dim": "#11131A",
- "on_surface_high": "#EFF0FA",
- "on_surface_medium": "#C5C6D0",
- "on_surface_low": "#8F9099",
- "border_default": "#1D1F27",
- "border_bright": "#272A31",
- "alert_success": "#36B37E",
- "alert_warning": "#FFAB00",
- "alert_error_default": "#C74E5B",
- "alert_error_bright": "#FFB2B6",
- "alert_error_brighter": "#FFEDEC",
- "alert_error_dim": "#270005"
- },
- "theme_type": "THEME_TYPE_DARK"
- }
- ],
- "typography": {
- "font_family": "Inter"
- },
- "logo": {
- "url": "https://storage.googleapis.com/100ms-cms-prod/cms/100ms_18a29f69f2/100ms_18a29f69f2.png"
- },
- "screens": {
- "preview": {
- "default": {
- "elements": {
- "preview_header": {
- "title": "Get Started",
- "sub_title": "Setup your audio and video before joining"
- },
- "join_form": {
- "join_btn_type": "JOIN_BTN_TYPE_JOIN_ONLY",
- "join_btn_label": "Join Now",
- "go_live_btn_label": "Go Live"
- }
- }
- }
- },
- "conferencing": {
- "default": {
- "elements": {
- "chat": {
- "initial_state": "CHAT_STATE_OPEN",
- "is_overlay": true,
- "allow_pinning_messages": true
- },
- "participant_list": {},
- "video_tile_layout": {
- "grid": {
- "enable_local_tile_inset": false,
- "prominent_roles": [],
- "enable_spotlighting_peer": true
- }
- },
- "emoji_reactions": {},
- "on_stage_exp": {
- "bring_to_stage_label": "Bring to stage",
- "remove_from_stage_label": "Remove from stage",
- "on_stage_role": "viewer-on-stage",
- "off_stage_roles": [
- "viewer-near-realtime",
- "viewer-realtime"
- ]
- },
- "brb": {}
- }
- }
- },
- "leave": {}
- },
- "role": "co-broadcaster",
- "options": {}
- },
- {
- "id": "6523d472680819d59dc33ad0",
- "role_id": "8882acd9-9aae-4c65-ab9c-b327f3e4394b",
- "template_id": "6523d471a1fa4b5ebc633383",
- "app_id": "62822daf05c6487f9e556453",
- "themes": [
- {
- "name": "default",
- "default": true,
- "palette": {
- "primary_default": "#2572ed",
- "primary_bright": "#538dff",
- "primary_dim": "#002d6d",
- "primary_disabled": "#004299",
- "on_primary_high": "#FFFFFF",
- "on_primary_medium": "#CCDAFF",
- "on_primary_low": "#84AAFF",
- "secondary_default": "#444954",
- "secondary_bright": "#70778B",
- "secondary_dim": "#293042",
- "secondary_disabled": "#404759",
- "on_secondary_high": "#FFFFFF",
- "on_secondary_medium": "#D3D9F0",
- "on_secondary_low": "#A4ABC0",
- "background_default": "#0B0E15",
- "background_dim": "#000000",
- "surface_default": "#191B23",
- "surface_bright": "#272A31",
- "surface_brighter": "#2E3038",
- "surface_dim": "#11131A",
- "on_surface_high": "#EFF0FA",
- "on_surface_medium": "#C5C6D0",
- "on_surface_low": "#8F9099",
- "border_default": "#1D1F27",
- "border_bright": "#272A31",
- "alert_success": "#36B37E",
- "alert_warning": "#FFAB00",
- "alert_error_default": "#C74E5B",
- "alert_error_bright": "#FFB2B6",
- "alert_error_brighter": "#FFEDEC",
- "alert_error_dim": "#270005"
- },
- "theme_type": "THEME_TYPE_DARK"
- }
- ],
- "typography": {
- "font_family": "Inter"
- },
- "logo": {
- "url": "https://storage.googleapis.com/100ms-cms-prod/cms/100ms_18a29f69f2/100ms_18a29f69f2.png"
- },
- "screens": {
- "preview": {
- "default": {
- "elements": {
- "preview_header": {
- "title": "Get Started",
- "sub_title": "Setup your audio and video before joining"
- },
- "join_form": {
- "join_btn_type": "JOIN_BTN_TYPE_JOIN_ONLY",
- "join_btn_label": "Join Now",
- "go_live_btn_label": "Go Live"
- }
- }
- }
- },
- "conferencing": {
- "default": {
- "elements": {
- "chat": {
- "initial_state": "CHAT_STATE_OPEN",
- "is_overlay": true,
- "allow_pinning_messages": false
- },
- "participant_list": {},
- "video_tile_layout": {
- "grid": {
- "enable_local_tile_inset": false,
- "prominent_roles": [],
- "enable_spotlighting_peer": false
- }
- },
- "emoji_reactions": {},
- "on_stage_exp": null,
- "brb": {}
- }
- }
- },
- "leave": {}
- },
- "role": "viewer-on-stage",
- "options": {}
- },
- {
- "id": "6523d472680819d59dc33ad1",
- "role_id": "cf8a6ee2-73b1-4a7c-a918-7182cc877c1d",
- "template_id": "6523d471a1fa4b5ebc633383",
- "app_id": "62822daf05c6487f9e556453",
- "themes": [
- {
- "name": "default",
- "default": true,
- "palette": {
- "primary_default": "#2572ed",
- "primary_bright": "#538dff",
- "primary_dim": "#002d6d",
- "primary_disabled": "#004299",
- "on_primary_high": "#FFFFFF",
- "on_primary_medium": "#CCDAFF",
- "on_primary_low": "#84AAFF",
- "secondary_default": "#444954",
- "secondary_bright": "#70778B",
- "secondary_dim": "#293042",
- "secondary_disabled": "#404759",
- "on_secondary_high": "#FFFFFF",
- "on_secondary_medium": "#D3D9F0",
- "on_secondary_low": "#A4ABC0",
- "background_default": "#0B0E15",
- "background_dim": "#000000",
- "surface_default": "#191B23",
- "surface_bright": "#272A31",
- "surface_brighter": "#2E3038",
- "surface_dim": "#11131A",
- "on_surface_high": "#EFF0FA",
- "on_surface_medium": "#C5C6D0",
- "on_surface_low": "#8F9099",
- "border_default": "#1D1F27",
- "border_bright": "#272A31",
- "alert_success": "#36B37E",
- "alert_warning": "#FFAB00",
- "alert_error_default": "#C74E5B",
- "alert_error_bright": "#FFB2B6",
- "alert_error_brighter": "#FFEDEC",
- "alert_error_dim": "#270005"
- },
- "theme_type": "THEME_TYPE_DARK"
- }
- ],
- "typography": {
- "font_family": "Inter"
- },
- "logo": {
- "url": "https://storage.googleapis.com/100ms-cms-prod/cms/100ms_18a29f69f2/100ms_18a29f69f2.png"
- },
- "screens": {
- "preview": {
- "default": {
- "elements": {
- "preview_header": {
- "title": "Get Started",
- "sub_title": "Enter your name before joining"
- },
- "join_form": {
- "join_btn_type": "JOIN_BTN_TYPE_JOIN_ONLY",
- "join_btn_label": "Join Now",
- "go_live_btn_label": "Go Live"
- }
- }
- }
- },
- "conferencing": {
- "default": {
- "elements": {
- "chat": {
- "initial_state": "CHAT_STATE_OPEN",
- "is_overlay": true,
- "allow_pinning_messages": false
- },
- "participant_list": {},
- "video_tile_layout": {
- "grid": {
- "enable_local_tile_inset": false,
- "prominent_roles": [],
- "enable_spotlighting_peer": false
- }
- },
- "emoji_reactions": {},
- "on_stage_exp": null,
- "brb": {}
- }
- }
- },
- "leave": {}
- },
- "role": "viewer-realtime",
- "options": {}
- },
- {
- "id": "6523d472680819d59dc33ad2",
- "role_id": "9f3d10d2-bba7-497f-ae28-e2678b7ecd3c",
- "template_id": "6523d471a1fa4b5ebc633383",
- "app_id": "62822daf05c6487f9e556453",
- "themes": [
- {
- "name": "default",
- "default": true,
- "palette": {
- "primary_default": "#2572ed",
- "primary_bright": "#538dff",
- "primary_dim": "#002d6d",
- "primary_disabled": "#004299",
- "on_primary_high": "#FFFFFF",
- "on_primary_medium": "#CCDAFF",
- "on_primary_low": "#84AAFF",
- "secondary_default": "#444954",
- "secondary_bright": "#70778B",
- "secondary_dim": "#293042",
- "secondary_disabled": "#404759",
- "on_secondary_high": "#FFFFFF",
- "on_secondary_medium": "#D3D9F0",
- "on_secondary_low": "#A4ABC0",
- "background_default": "#0B0E15",
- "background_dim": "#000000",
- "surface_default": "#191B23",
- "surface_bright": "#272A31",
- "surface_brighter": "#2E3038",
- "surface_dim": "#11131A",
- "on_surface_high": "#EFF0FA",
- "on_surface_medium": "#C5C6D0",
- "on_surface_low": "#8F9099",
- "border_default": "#1D1F27",
- "border_bright": "#272A31",
- "alert_success": "#36B37E",
- "alert_warning": "#FFAB00",
- "alert_error_default": "#C74E5B",
- "alert_error_bright": "#FFB2B6",
- "alert_error_brighter": "#FFEDEC",
- "alert_error_dim": "#270005"
- },
- "theme_type": "THEME_TYPE_DARK"
- }
- ],
- "typography": {
- "font_family": "Inter"
- },
- "logo": {
- "url": "https://storage.googleapis.com/100ms-cms-prod/cms/100ms_18a29f69f2/100ms_18a29f69f2.png"
- },
- "screens": {
- "preview": {
- "default": {
- "elements": {
- "preview_header": {
- "title": "Get Started",
- "sub_title": "Enter your name before joining"
- },
- "join_form": {
- "join_btn_type": "JOIN_BTN_TYPE_JOIN_ONLY",
- "join_btn_label": "Join Now",
- "go_live_btn_label": "Go Live"
- }
- }
- }
- },
- "conferencing": {
- "hls_live_streaming": {
- "elements": {
- "chat": {
- "initial_state": "CHAT_STATE_OPEN",
- "is_overlay": true,
- "allow_pinning_messages": false
- },
- "participant_list": {},
- "emoji_reactions": {}
- }
- }
- },
- "leave": {}
- },
- "role": "viewer-near-realtime",
- "options": {}
- }
- ],
- "limit": "0",
- "last": "6523d472680819d59dc33ad2"
-}
\ No newline at end of file
diff --git a/playwright/tests-examples/demo-todo-app.spec.ts b/playwright/tests-examples/demo-todo-app.spec.ts
deleted file mode 100644
index 2fd6016fe8..0000000000
--- a/playwright/tests-examples/demo-todo-app.spec.ts
+++ /dev/null
@@ -1,437 +0,0 @@
-import { test, expect, type Page } from '@playwright/test';
-
-test.beforeEach(async ({ page }) => {
- await page.goto('https://demo.playwright.dev/todomvc');
-});
-
-const TODO_ITEMS = [
- 'buy some cheese',
- 'feed the cat',
- 'book a doctors appointment'
-];
-
-test.describe('New Todo', () => {
- test('should allow me to add todo items', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- // Create 1st todo.
- await newTodo.fill(TODO_ITEMS[0]);
- await newTodo.press('Enter');
-
- // Make sure the list only has one todo item.
- await expect(page.getByTestId('todo-title')).toHaveText([
- TODO_ITEMS[0]
- ]);
-
- // Create 2nd todo.
- await newTodo.fill(TODO_ITEMS[1]);
- await newTodo.press('Enter');
-
- // Make sure the list now has two todo items.
- await expect(page.getByTestId('todo-title')).toHaveText([
- TODO_ITEMS[0],
- TODO_ITEMS[1]
- ]);
-
- await checkNumberOfTodosInLocalStorage(page, 2);
- });
-
- test('should clear text input field when an item is added', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- // Create one todo item.
- await newTodo.fill(TODO_ITEMS[0]);
- await newTodo.press('Enter');
-
- // Check that input is empty.
- await expect(newTodo).toBeEmpty();
- await checkNumberOfTodosInLocalStorage(page, 1);
- });
-
- test('should append new items to the bottom of the list', async ({ page }) => {
- // Create 3 items.
- await createDefaultTodos(page);
-
- // create a todo count locator
- const todoCount = page.getByTestId('todo-count')
-
- // Check test using different methods.
- await expect(page.getByText('3 items left')).toBeVisible();
- await expect(todoCount).toHaveText('3 items left');
- await expect(todoCount).toContainText('3');
- await expect(todoCount).toHaveText(/3/);
-
- // Check all items in one call.
- await expect(page.getByTestId('todo-title')).toHaveText(TODO_ITEMS);
- await checkNumberOfTodosInLocalStorage(page, 3);
- });
-});
-
-test.describe('Mark all as completed', () => {
- test.beforeEach(async ({ page }) => {
- await createDefaultTodos(page);
- await checkNumberOfTodosInLocalStorage(page, 3);
- });
-
- test.afterEach(async ({ page }) => {
- await checkNumberOfTodosInLocalStorage(page, 3);
- });
-
- test('should allow me to mark all items as completed', async ({ page }) => {
- // Complete all todos.
- await page.getByLabel('Mark all as complete').check();
-
- // Ensure all todos have 'completed' class.
- await expect(page.getByTestId('todo-item')).toHaveClass(['completed', 'completed', 'completed']);
- await checkNumberOfCompletedTodosInLocalStorage(page, 3);
- });
-
- test('should allow me to clear the complete state of all items', async ({ page }) => {
- const toggleAll = page.getByLabel('Mark all as complete');
- // Check and then immediately uncheck.
- await toggleAll.check();
- await toggleAll.uncheck();
-
- // Should be no completed classes.
- await expect(page.getByTestId('todo-item')).toHaveClass(['', '', '']);
- });
-
- test('complete all checkbox should update state when items are completed / cleared', async ({ page }) => {
- const toggleAll = page.getByLabel('Mark all as complete');
- await toggleAll.check();
- await expect(toggleAll).toBeChecked();
- await checkNumberOfCompletedTodosInLocalStorage(page, 3);
-
- // Uncheck first todo.
- const firstTodo = page.getByTestId('todo-item').nth(0);
- await firstTodo.getByRole('checkbox').uncheck();
-
- // Reuse toggleAll locator and make sure its not checked.
- await expect(toggleAll).not.toBeChecked();
-
- await firstTodo.getByRole('checkbox').check();
- await checkNumberOfCompletedTodosInLocalStorage(page, 3);
-
- // Assert the toggle all is checked again.
- await expect(toggleAll).toBeChecked();
- });
-});
-
-test.describe('Item', () => {
-
- test('should allow me to mark items as complete', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- // Create two items.
- for (const item of TODO_ITEMS.slice(0, 2)) {
- await newTodo.fill(item);
- await newTodo.press('Enter');
- }
-
- // Check first item.
- const firstTodo = page.getByTestId('todo-item').nth(0);
- await firstTodo.getByRole('checkbox').check();
- await expect(firstTodo).toHaveClass('completed');
-
- // Check second item.
- const secondTodo = page.getByTestId('todo-item').nth(1);
- await expect(secondTodo).not.toHaveClass('completed');
- await secondTodo.getByRole('checkbox').check();
-
- // Assert completed class.
- await expect(firstTodo).toHaveClass('completed');
- await expect(secondTodo).toHaveClass('completed');
- });
-
- test('should allow me to un-mark items as complete', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- // Create two items.
- for (const item of TODO_ITEMS.slice(0, 2)) {
- await newTodo.fill(item);
- await newTodo.press('Enter');
- }
-
- const firstTodo = page.getByTestId('todo-item').nth(0);
- const secondTodo = page.getByTestId('todo-item').nth(1);
- const firstTodoCheckbox = firstTodo.getByRole('checkbox');
-
- await firstTodoCheckbox.check();
- await expect(firstTodo).toHaveClass('completed');
- await expect(secondTodo).not.toHaveClass('completed');
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
-
- await firstTodoCheckbox.uncheck();
- await expect(firstTodo).not.toHaveClass('completed');
- await expect(secondTodo).not.toHaveClass('completed');
- await checkNumberOfCompletedTodosInLocalStorage(page, 0);
- });
-
- test('should allow me to edit an item', async ({ page }) => {
- await createDefaultTodos(page);
-
- const todoItems = page.getByTestId('todo-item');
- const secondTodo = todoItems.nth(1);
- await secondTodo.dblclick();
- await expect(secondTodo.getByRole('textbox', { name: 'Edit' })).toHaveValue(TODO_ITEMS[1]);
- await secondTodo.getByRole('textbox', { name: 'Edit' }).fill('buy some sausages');
- await secondTodo.getByRole('textbox', { name: 'Edit' }).press('Enter');
-
- // Explicitly assert the new text value.
- await expect(todoItems).toHaveText([
- TODO_ITEMS[0],
- 'buy some sausages',
- TODO_ITEMS[2]
- ]);
- await checkTodosInLocalStorage(page, 'buy some sausages');
- });
-});
-
-test.describe('Editing', () => {
- test.beforeEach(async ({ page }) => {
- await createDefaultTodos(page);
- await checkNumberOfTodosInLocalStorage(page, 3);
- });
-
- test('should hide other controls when editing', async ({ page }) => {
- const todoItem = page.getByTestId('todo-item').nth(1);
- await todoItem.dblclick();
- await expect(todoItem.getByRole('checkbox')).not.toBeVisible();
- await expect(todoItem.locator('label', {
- hasText: TODO_ITEMS[1],
- })).not.toBeVisible();
- await checkNumberOfTodosInLocalStorage(page, 3);
- });
-
- test('should save edits on blur', async ({ page }) => {
- const todoItems = page.getByTestId('todo-item');
- await todoItems.nth(1).dblclick();
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages');
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).dispatchEvent('blur');
-
- await expect(todoItems).toHaveText([
- TODO_ITEMS[0],
- 'buy some sausages',
- TODO_ITEMS[2],
- ]);
- await checkTodosInLocalStorage(page, 'buy some sausages');
- });
-
- test('should trim entered text', async ({ page }) => {
- const todoItems = page.getByTestId('todo-item');
- await todoItems.nth(1).dblclick();
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill(' buy some sausages ');
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter');
-
- await expect(todoItems).toHaveText([
- TODO_ITEMS[0],
- 'buy some sausages',
- TODO_ITEMS[2],
- ]);
- await checkTodosInLocalStorage(page, 'buy some sausages');
- });
-
- test('should remove the item if an empty text string was entered', async ({ page }) => {
- const todoItems = page.getByTestId('todo-item');
- await todoItems.nth(1).dblclick();
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('');
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Enter');
-
- await expect(todoItems).toHaveText([
- TODO_ITEMS[0],
- TODO_ITEMS[2],
- ]);
- });
-
- test('should cancel edits on escape', async ({ page }) => {
- const todoItems = page.getByTestId('todo-item');
- await todoItems.nth(1).dblclick();
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).fill('buy some sausages');
- await todoItems.nth(1).getByRole('textbox', { name: 'Edit' }).press('Escape');
- await expect(todoItems).toHaveText(TODO_ITEMS);
- });
-});
-
-test.describe('Counter', () => {
- test('should display the current number of todo items', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- // create a todo count locator
- const todoCount = page.getByTestId('todo-count')
-
- await newTodo.fill(TODO_ITEMS[0]);
- await newTodo.press('Enter');
-
- await expect(todoCount).toContainText('1');
-
- await newTodo.fill(TODO_ITEMS[1]);
- await newTodo.press('Enter');
- await expect(todoCount).toContainText('2');
-
- await checkNumberOfTodosInLocalStorage(page, 2);
- });
-});
-
-test.describe('Clear completed button', () => {
- test.beforeEach(async ({ page }) => {
- await createDefaultTodos(page);
- });
-
- test('should display the correct text', async ({ page }) => {
- await page.locator('.todo-list li .toggle').first().check();
- await expect(page.getByRole('button', { name: 'Clear completed' })).toBeVisible();
- });
-
- test('should remove completed items when clicked', async ({ page }) => {
- const todoItems = page.getByTestId('todo-item');
- await todoItems.nth(1).getByRole('checkbox').check();
- await page.getByRole('button', { name: 'Clear completed' }).click();
- await expect(todoItems).toHaveCount(2);
- await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]);
- });
-
- test('should be hidden when there are no items that are completed', async ({ page }) => {
- await page.locator('.todo-list li .toggle').first().check();
- await page.getByRole('button', { name: 'Clear completed' }).click();
- await expect(page.getByRole('button', { name: 'Clear completed' })).toBeHidden();
- });
-});
-
-test.describe('Persistence', () => {
- test('should persist its data', async ({ page }) => {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- for (const item of TODO_ITEMS.slice(0, 2)) {
- await newTodo.fill(item);
- await newTodo.press('Enter');
- }
-
- const todoItems = page.getByTestId('todo-item');
- const firstTodoCheck = todoItems.nth(0).getByRole('checkbox');
- await firstTodoCheck.check();
- await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]);
- await expect(firstTodoCheck).toBeChecked();
- await expect(todoItems).toHaveClass(['completed', '']);
-
- // Ensure there is 1 completed item.
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
-
- // Now reload.
- await page.reload();
- await expect(todoItems).toHaveText([TODO_ITEMS[0], TODO_ITEMS[1]]);
- await expect(firstTodoCheck).toBeChecked();
- await expect(todoItems).toHaveClass(['completed', '']);
- });
-});
-
-test.describe('Routing', () => {
- test.beforeEach(async ({ page }) => {
- await createDefaultTodos(page);
- // make sure the app had a chance to save updated todos in storage
- // before navigating to a new view, otherwise the items can get lost :(
- // in some frameworks like Durandal
- await checkTodosInLocalStorage(page, TODO_ITEMS[0]);
- });
-
- test('should allow me to display active items', async ({ page }) => {
- const todoItem = page.getByTestId('todo-item');
- await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check();
-
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
- await page.getByRole('link', { name: 'Active' }).click();
- await expect(todoItem).toHaveCount(2);
- await expect(todoItem).toHaveText([TODO_ITEMS[0], TODO_ITEMS[2]]);
- });
-
- test('should respect the back button', async ({ page }) => {
- const todoItem = page.getByTestId('todo-item');
- await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check();
-
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
-
- await test.step('Showing all items', async () => {
- await page.getByRole('link', { name: 'All' }).click();
- await expect(todoItem).toHaveCount(3);
- });
-
- await test.step('Showing active items', async () => {
- await page.getByRole('link', { name: 'Active' }).click();
- });
-
- await test.step('Showing completed items', async () => {
- await page.getByRole('link', { name: 'Completed' }).click();
- });
-
- await expect(todoItem).toHaveCount(1);
- await page.goBack();
- await expect(todoItem).toHaveCount(2);
- await page.goBack();
- await expect(todoItem).toHaveCount(3);
- });
-
- test('should allow me to display completed items', async ({ page }) => {
- await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check();
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
- await page.getByRole('link', { name: 'Completed' }).click();
- await expect(page.getByTestId('todo-item')).toHaveCount(1);
- });
-
- test('should allow me to display all items', async ({ page }) => {
- await page.getByTestId('todo-item').nth(1).getByRole('checkbox').check();
- await checkNumberOfCompletedTodosInLocalStorage(page, 1);
- await page.getByRole('link', { name: 'Active' }).click();
- await page.getByRole('link', { name: 'Completed' }).click();
- await page.getByRole('link', { name: 'All' }).click();
- await expect(page.getByTestId('todo-item')).toHaveCount(3);
- });
-
- test('should highlight the currently applied filter', async ({ page }) => {
- await expect(page.getByRole('link', { name: 'All' })).toHaveClass('selected');
-
- //create locators for active and completed links
- const activeLink = page.getByRole('link', { name: 'Active' });
- const completedLink = page.getByRole('link', { name: 'Completed' });
- await activeLink.click();
-
- // Page change - active items.
- await expect(activeLink).toHaveClass('selected');
- await completedLink.click();
-
- // Page change - completed items.
- await expect(completedLink).toHaveClass('selected');
- });
-});
-
-async function createDefaultTodos(page: Page) {
- // create a new todo locator
- const newTodo = page.getByPlaceholder('What needs to be done?');
-
- for (const item of TODO_ITEMS) {
- await newTodo.fill(item);
- await newTodo.press('Enter');
- }
-}
-
-async function checkNumberOfTodosInLocalStorage(page: Page, expected: number) {
- return await page.waitForFunction(e => {
- return JSON.parse(localStorage['react-todos']).length === e;
- }, expected);
-}
-
-async function checkNumberOfCompletedTodosInLocalStorage(page: Page, expected: number) {
- return await page.waitForFunction(e => {
- return JSON.parse(localStorage['react-todos']).filter((todo: any) => todo.completed).length === e;
- }, expected);
-}
-
-async function checkTodosInLocalStorage(page: Page, title: string) {
- return await page.waitForFunction(t => {
- return JSON.parse(localStorage['react-todos']).map((todo: any) => todo.title).includes(t);
- }, title);
-}
diff --git a/playwright/tests/example.spec.ts b/playwright/tests/example.spec.ts
deleted file mode 100644
index c511525c13..0000000000
--- a/playwright/tests/example.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { test, expect } from '@playwright/test';
-
-test('has title', async ({ page }) => {
- await page.goto('https://playwright.dev/');
-
- // Expect a title "to contain" a substring.
- await expect(page).toHaveTitle(/Playwright/);
-});
-
-test('get started link', async ({ page }) => {
- await page.goto('https://playwright.dev/');
-
- // Click the get started link.
- await page.getByRole('link', { name: 'Get started' }).click();
-
- // Expects the URL to contain intro.
- await expect(page).toHaveURL(/.*intro/);
-});
diff --git a/playwright/tsconfig.json b/playwright/tsconfig.json
deleted file mode 100644
index ba8c2cd1ac..0000000000
--- a/playwright/tsconfig.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "compilerOptions": {
- "allowJs": true,
- "checkJs": true,
- "target": "ESNext",
- "module": "commonjs",
- "moduleResolution": "node",
- "sourceMap": true,
- "noImplicitAny": true,
- "strictNullChecks": true
- },
- "include": ["src/**/*"]
-}
diff --git a/playwright/yarn.lock b/playwright/yarn.lock
deleted file mode 100644
index 2a7d87b396..0000000000
--- a/playwright/yarn.lock
+++ /dev/null
@@ -1,1707 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@babel/code-frame@^7.0.0":
- "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q=="
- "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz"
- "version" "7.18.6"
- dependencies:
- "@babel/highlight" "^7.18.6"
-
-"@babel/helper-validator-identifier@^7.18.6":
- "integrity" "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
- "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz"
- "version" "7.18.6"
-
-"@babel/highlight@^7.18.6":
- "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g=="
- "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz"
- "version" "7.18.6"
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- "chalk" "^2.0.0"
- "js-tokens" "^4.0.0"
-
-"@eslint/eslintrc@^1.3.0":
- "integrity" "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw=="
- "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz"
- "version" "1.3.0"
- dependencies:
- "ajv" "^6.12.4"
- "debug" "^4.3.2"
- "espree" "^9.3.2"
- "globals" "^13.15.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"
-
-"@humanwhocodes/config-array@^0.10.4":
- "integrity" "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw=="
- "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz"
- "version" "0.10.4"
- dependencies:
- "@humanwhocodes/object-schema" "^1.2.1"
- "debug" "^4.1.1"
- "minimatch" "^3.0.4"
-
-"@humanwhocodes/gitignore-to-minimatch@^1.0.2":
- "integrity" "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA=="
- "resolved" "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz"
- "version" "1.0.2"
-
-"@humanwhocodes/object-schema@^1.2.1":
- "integrity" "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
- "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
- "version" "1.2.1"
-
-"@nodelib/fs.scandir@2.1.5":
- "integrity" "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="
- "resolved" "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
- "version" "2.1.5"
- dependencies:
- "@nodelib/fs.stat" "2.0.5"
- "run-parallel" "^1.1.9"
-
-"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
- "integrity" "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
- "resolved" "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
- "version" "2.0.5"
-
-"@nodelib/fs.walk@^1.2.3":
- "integrity" "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="
- "resolved" "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
- "version" "1.2.8"
- dependencies:
- "@nodelib/fs.scandir" "2.1.5"
- "fastq" "^1.6.0"
-
-"@playwright/test@^1.33.0":
- "integrity" "sha512-YunBa2mE7Hq4CfPkGzQRK916a4tuZoVx/EpLjeWlTVOnD4S2+fdaQZE0LJkbfhN5FTSKNLdcl7MoT5XB37bTkg=="
- "resolved" "https://registry.npmjs.org/@playwright/test/-/test-1.33.0.tgz"
- "version" "1.33.0"
- dependencies:
- "@types/node" "*"
- "playwright-core" "1.33.0"
- optionalDependencies:
- "fsevents" "2.3.2"
-
-"@types/json-schema@^7.0.9":
- "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
- "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz"
- "version" "7.0.11"
-
-"@types/node@*":
- "integrity" "sha512-I4BD3L+6AWiUobfxZ49DlU43gtI+FTHSv9pE2Zekg6KjMpre4ByusaljW3vYSLJrvQ1ck1hUaeVu8HVlY3vzHg=="
- "resolved" "https://registry.npmjs.org/@types/node/-/node-18.6.4.tgz"
- "version" "18.6.4"
-
-"@types/parse-json@^4.0.0":
- "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
- "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
- "version" "4.0.0"
-
-"@typescript-eslint/eslint-plugin@^5.25.0":
- "integrity" "sha512-CHLuz5Uz7bHP2WgVlvoZGhf0BvFakBJKAD/43Ty0emn4wXWv5k01ND0C0fHcl/Im8Td2y/7h44E9pca9qAu2ew=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/scope-manager" "5.32.0"
- "@typescript-eslint/type-utils" "5.32.0"
- "@typescript-eslint/utils" "5.32.0"
- "debug" "^4.3.4"
- "functional-red-black-tree" "^1.0.1"
- "ignore" "^5.2.0"
- "regexpp" "^3.2.0"
- "semver" "^7.3.7"
- "tsutils" "^3.21.0"
-
-"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.25.0":
- "integrity" "sha512-IxRtsehdGV9GFQ35IGm5oKKR2OGcazUoiNBxhRV160iF9FoyuXxjY+rIqs1gfnd+4eL98OjeGnMpE7RF/NBb3A=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/scope-manager" "5.32.0"
- "@typescript-eslint/types" "5.32.0"
- "@typescript-eslint/typescript-estree" "5.32.0"
- "debug" "^4.3.4"
-
-"@typescript-eslint/scope-manager@5.32.0":
- "integrity" "sha512-KyAE+tUON0D7tNz92p1uetRqVJiiAkeluvwvZOqBmW9z2XApmk5WSMV9FrzOroAcVxJZB3GfUwVKr98Dr/OjOg=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/types" "5.32.0"
- "@typescript-eslint/visitor-keys" "5.32.0"
-
-"@typescript-eslint/type-utils@5.32.0":
- "integrity" "sha512-0gSsIhFDduBz3QcHJIp3qRCvVYbqzHg8D6bHFsDMrm0rURYDj+skBK2zmYebdCp+4nrd9VWd13egvhYFJj/wZg=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/utils" "5.32.0"
- "debug" "^4.3.4"
- "tsutils" "^3.21.0"
-
-"@typescript-eslint/types@5.32.0":
- "integrity" "sha512-EBUKs68DOcT/EjGfzywp+f8wG9Zw6gj6BjWu7KV/IYllqKJFPlZlLSYw/PTvVyiRw50t6wVbgv4p9uE2h6sZrQ=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.32.0.tgz"
- "version" "5.32.0"
-
-"@typescript-eslint/typescript-estree@5.32.0":
- "integrity" "sha512-ZVAUkvPk3ITGtCLU5J4atCw9RTxK+SRc6hXqLtllC2sGSeMFWN+YwbiJR9CFrSFJ3w4SJfcWtDwNb/DmUIHdhg=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/types" "5.32.0"
- "@typescript-eslint/visitor-keys" "5.32.0"
- "debug" "^4.3.4"
- "globby" "^11.1.0"
- "is-glob" "^4.0.3"
- "semver" "^7.3.7"
- "tsutils" "^3.21.0"
-
-"@typescript-eslint/utils@5.32.0":
- "integrity" "sha512-W7lYIAI5Zlc5K082dGR27Fczjb3Q57ECcXefKU/f0ajM5ToM0P+N9NmJWip8GmGu/g6QISNT+K6KYB+iSHjXCQ=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@types/json-schema" "^7.0.9"
- "@typescript-eslint/scope-manager" "5.32.0"
- "@typescript-eslint/types" "5.32.0"
- "@typescript-eslint/typescript-estree" "5.32.0"
- "eslint-scope" "^5.1.1"
- "eslint-utils" "^3.0.0"
-
-"@typescript-eslint/visitor-keys@5.32.0":
- "integrity" "sha512-S54xOHZgfThiZ38/ZGTgB2rqx51CMJ5MCfVT2IplK4Q7hgzGfe0nLzLCcenDnc/cSjP568hdeKfeDcBgqNHD/g=="
- "resolved" "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.32.0.tgz"
- "version" "5.32.0"
- dependencies:
- "@typescript-eslint/types" "5.32.0"
- "eslint-visitor-keys" "^3.3.0"
-
-"acorn-jsx@^5.3.2":
- "integrity" "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
- "resolved" "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
- "version" "5.3.2"
-
-"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^8.8.0":
- "integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
- "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz"
- "version" "8.8.0"
-
-"ajv@^6.10.0", "ajv@^6.12.4":
- "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
- "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
- "version" "6.12.6"
- dependencies:
- "fast-deep-equal" "^3.1.1"
- "fast-json-stable-stringify" "^2.0.0"
- "json-schema-traverse" "^0.4.1"
- "uri-js" "^4.2.2"
-
-"ansi-regex@^5.0.1":
- "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
- "version" "5.0.1"
-
-"ansi-styles@^3.2.1":
- "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
- "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
- "version" "3.2.1"
- dependencies:
- "color-convert" "^1.9.0"
-
-"ansi-styles@^4.0.0", "ansi-styles@^4.1.0":
- "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="
- "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
- "version" "4.3.0"
- dependencies:
- "color-convert" "^2.0.1"
-
-"anymatch@~3.1.2":
- "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg=="
- "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
- "version" "3.1.2"
- dependencies:
- "normalize-path" "^3.0.0"
- "picomatch" "^2.0.4"
-
-"argparse@^2.0.1":
- "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
- "version" "2.0.1"
-
-"array-includes@^3.1.5":
- "integrity" "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ=="
- "resolved" "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz"
- "version" "3.1.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.4"
- "es-abstract" "^1.19.5"
- "get-intrinsic" "^1.1.1"
- "is-string" "^1.0.7"
-
-"array-union@^2.1.0":
- "integrity" "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
- "resolved" "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
- "version" "2.1.0"
-
-"array.prototype.flatmap@^1.3.0":
- "integrity" "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg=="
- "resolved" "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz"
- "version" "1.3.0"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.2"
- "es-shim-unscopables" "^1.0.0"
-
-"balanced-match@^1.0.0":
- "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
- "version" "1.0.2"
-
-"binary-extensions@^2.0.0":
- "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
- "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
- "version" "2.2.0"
-
-"brace-expansion@^1.1.7":
- "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
- "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
- "version" "1.1.11"
- dependencies:
- "balanced-match" "^1.0.0"
- "concat-map" "0.0.1"
-
-"braces@^3.0.2", "braces@~3.0.2":
- "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A=="
- "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
- "version" "3.0.2"
- dependencies:
- "fill-range" "^7.0.1"
-
-"call-bind@^1.0.0", "call-bind@^1.0.2":
- "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
- "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
- "version" "1.0.2"
- dependencies:
- "function-bind" "^1.1.1"
- "get-intrinsic" "^1.0.2"
-
-"callsites@^3.0.0":
- "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
- "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
- "version" "3.1.0"
-
-"chalk@^2.0.0":
- "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="
- "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
- "version" "2.4.2"
- dependencies:
- "ansi-styles" "^3.2.1"
- "escape-string-regexp" "^1.0.5"
- "supports-color" "^5.3.0"
-
-"chalk@^4.0.0":
- "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="
- "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
- "version" "4.1.2"
- dependencies:
- "ansi-styles" "^4.1.0"
- "supports-color" "^7.1.0"
-
-"chokidar@^3.5.2":
- "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
- "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
- "version" "3.5.3"
- dependencies:
- "anymatch" "~3.1.2"
- "braces" "~3.0.2"
- "glob-parent" "~5.1.2"
- "is-binary-path" "~2.1.0"
- "is-glob" "~4.0.1"
- "normalize-path" "~3.0.0"
- "readdirp" "~3.6.0"
- optionalDependencies:
- "fsevents" "~2.3.2"
-
-"cliui@^7.0.2":
- "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
- "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
- "version" "7.0.4"
- dependencies:
- "string-width" "^4.2.0"
- "strip-ansi" "^6.0.0"
- "wrap-ansi" "^7.0.0"
-
-"color-convert@^1.9.0":
- "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
- "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
- "version" "1.9.3"
- dependencies:
- "color-name" "1.1.3"
-
-"color-convert@^2.0.1":
- "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="
- "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
- "version" "2.0.1"
- dependencies:
- "color-name" "~1.1.4"
-
-"color-name@~1.1.4":
- "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
- "version" "1.1.4"
-
-"color-name@1.1.3":
- "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
- "version" "1.1.3"
-
-"concat-map@0.0.1":
- "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
- "version" "0.0.1"
-
-"cosmiconfig@^7.0.1":
- "integrity" "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ=="
- "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz"
- "version" "7.0.1"
- dependencies:
- "@types/parse-json" "^4.0.0"
- "import-fresh" "^3.2.1"
- "parse-json" "^5.0.0"
- "path-type" "^4.0.0"
- "yaml" "^1.10.0"
-
-"cross-spawn@^7.0.2":
- "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
- "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
- "version" "7.0.3"
- dependencies:
- "path-key" "^3.1.0"
- "shebang-command" "^2.0.0"
- "which" "^2.0.1"
-
-"debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
- "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
- "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
- "version" "4.3.4"
- dependencies:
- "ms" "2.1.2"
-
-"deep-is@^0.1.3":
- "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
- "version" "0.1.4"
-
-"define-properties@^1.1.3", "define-properties@^1.1.4":
- "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA=="
- "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"
- "version" "1.1.4"
- dependencies:
- "has-property-descriptors" "^1.0.0"
- "object-keys" "^1.1.1"
-
-"dir-glob@^3.0.1":
- "integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
- "resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
- "version" "3.0.1"
- dependencies:
- "path-type" "^4.0.0"
-
-"doctrine@^2.1.0":
- "integrity" "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw=="
- "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz"
- "version" "2.1.0"
- dependencies:
- "esutils" "^2.0.2"
-
-"doctrine@^3.0.0":
- "integrity" "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="
- "resolved" "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
- "version" "3.0.0"
- dependencies:
- "esutils" "^2.0.2"
-
-"dotenv@^16.0.0":
- "integrity" "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ=="
- "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz"
- "version" "16.0.1"
-
-"emoji-regex@^8.0.0":
- "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
- "version" "8.0.0"
-
-"error-ex@^1.3.1":
- "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
- "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
- "version" "1.3.2"
- dependencies:
- "is-arrayish" "^0.2.1"
-
-"es-abstract@^1.19.0", "es-abstract@^1.19.1", "es-abstract@^1.19.2", "es-abstract@^1.19.5":
- "integrity" "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA=="
- "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz"
- "version" "1.20.1"
- dependencies:
- "call-bind" "^1.0.2"
- "es-to-primitive" "^1.2.1"
- "function-bind" "^1.1.1"
- "function.prototype.name" "^1.1.5"
- "get-intrinsic" "^1.1.1"
- "get-symbol-description" "^1.0.0"
- "has" "^1.0.3"
- "has-property-descriptors" "^1.0.0"
- "has-symbols" "^1.0.3"
- "internal-slot" "^1.0.3"
- "is-callable" "^1.2.4"
- "is-negative-zero" "^2.0.2"
- "is-regex" "^1.1.4"
- "is-shared-array-buffer" "^1.0.2"
- "is-string" "^1.0.7"
- "is-weakref" "^1.0.2"
- "object-inspect" "^1.12.0"
- "object-keys" "^1.1.1"
- "object.assign" "^4.1.2"
- "regexp.prototype.flags" "^1.4.3"
- "string.prototype.trimend" "^1.0.5"
- "string.prototype.trimstart" "^1.0.5"
- "unbox-primitive" "^1.0.2"
-
-"es-shim-unscopables@^1.0.0":
- "integrity" "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w=="
- "resolved" "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz"
- "version" "1.0.0"
- dependencies:
- "has" "^1.0.3"
-
-"es-to-primitive@^1.2.1":
- "integrity" "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA=="
- "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
- "version" "1.2.1"
- dependencies:
- "is-callable" "^1.1.4"
- "is-date-object" "^1.0.1"
- "is-symbol" "^1.0.2"
-
-"escalade@^3.1.1":
- "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
- "version" "3.1.1"
-
-"escape-string-regexp@^1.0.5":
- "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
- "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
- "version" "1.0.5"
-
-"escape-string-regexp@^4.0.0":
- "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
- "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
- "version" "4.0.0"
-
-"eslint-plugin-prettier@^4.0.0":
- "integrity" "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ=="
- "resolved" "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz"
- "version" "4.2.1"
- dependencies:
- "prettier-linter-helpers" "^1.0.0"
-
-"eslint-plugin-react@^7.29.4":
- "integrity" "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg=="
- "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz"
- "version" "7.30.1"
- dependencies:
- "array-includes" "^3.1.5"
- "array.prototype.flatmap" "^1.3.0"
- "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"
- "prop-types" "^15.8.1"
- "resolve" "^2.0.0-next.3"
- "semver" "^6.3.0"
- "string.prototype.matchall" "^4.0.7"
-
-"eslint-scope@^5.1.1":
- "integrity" "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw=="
- "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz"
- "version" "5.1.1"
- dependencies:
- "esrecurse" "^4.3.0"
- "estraverse" "^4.1.1"
-
-"eslint-scope@^7.1.1":
- "integrity" "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw=="
- "resolved" "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz"
- "version" "7.1.1"
- dependencies:
- "esrecurse" "^4.3.0"
- "estraverse" "^5.2.0"
-
-"eslint-utils@^3.0.0":
- "integrity" "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA=="
- "resolved" "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz"
- "version" "3.0.0"
- dependencies:
- "eslint-visitor-keys" "^2.0.0"
-
-"eslint-visitor-keys@^2.0.0":
- "integrity" "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw=="
- "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
- "version" "2.1.0"
-
-"eslint-visitor-keys@^3.3.0":
- "integrity" "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA=="
- "resolved" "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
- "version" "3.3.0"
-
-"eslint@*", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^8.15.0", "eslint@>=5", "eslint@>=7.28.0":
- "integrity" "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA=="
- "resolved" "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz"
- "version" "8.21.0"
- dependencies:
- "@eslint/eslintrc" "^1.3.0"
- "@humanwhocodes/config-array" "^0.10.4"
- "@humanwhocodes/gitignore-to-minimatch" "^1.0.2"
- "ajv" "^6.10.0"
- "chalk" "^4.0.0"
- "cross-spawn" "^7.0.2"
- "debug" "^4.3.2"
- "doctrine" "^3.0.0"
- "escape-string-regexp" "^4.0.0"
- "eslint-scope" "^7.1.1"
- "eslint-utils" "^3.0.0"
- "eslint-visitor-keys" "^3.3.0"
- "espree" "^9.3.3"
- "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"
- "grapheme-splitter" "^1.0.4"
- "ignore" "^5.2.0"
- "import-fresh" "^3.0.0"
- "imurmurhash" "^0.1.4"
- "is-glob" "^4.0.0"
- "js-yaml" "^4.1.0"
- "json-stable-stringify-without-jsonify" "^1.0.1"
- "levn" "^0.4.1"
- "lodash.merge" "^4.6.2"
- "minimatch" "^3.1.2"
- "natural-compare" "^1.4.0"
- "optionator" "^0.9.1"
- "regexpp" "^3.2.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.2", "espree@^9.3.3":
- "integrity" "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng=="
- "resolved" "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz"
- "version" "9.3.3"
- dependencies:
- "acorn" "^8.8.0"
- "acorn-jsx" "^5.3.2"
- "eslint-visitor-keys" "^3.3.0"
-
-"esquery@^1.4.0":
- "integrity" "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w=="
- "resolved" "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
- "version" "1.4.0"
- dependencies:
- "estraverse" "^5.1.0"
-
-"esrecurse@^4.3.0":
- "integrity" "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="
- "resolved" "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
- "version" "4.3.0"
- dependencies:
- "estraverse" "^5.2.0"
-
-"estraverse@^4.1.1":
- "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
- "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
- "version" "4.3.0"
-
-"estraverse@^5.1.0", "estraverse@^5.2.0", "estraverse@^5.3.0":
- "integrity" "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
- "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
- "version" "5.3.0"
-
-"esutils@^2.0.2":
- "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
- "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
- "version" "2.0.3"
-
-"fast-deep-equal@^3.1.1", "fast-deep-equal@^3.1.3":
- "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
- "version" "3.1.3"
-
-"fast-diff@^1.1.2":
- "integrity" "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w=="
- "resolved" "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
- "version" "1.2.0"
-
-"fast-glob@^3.2.9":
- "integrity" "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew=="
- "resolved" "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz"
- "version" "3.2.11"
- dependencies:
- "@nodelib/fs.stat" "^2.0.2"
- "@nodelib/fs.walk" "^1.2.3"
- "glob-parent" "^5.1.2"
- "merge2" "^1.3.0"
- "micromatch" "^4.0.4"
-
-"fast-json-stable-stringify@^2.0.0":
- "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
- "version" "2.1.0"
-
-"fast-levenshtein@^2.0.6":
- "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
- "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
- "version" "2.0.6"
-
-"fastq@^1.6.0":
- "integrity" "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw=="
- "resolved" "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
- "version" "1.13.0"
- dependencies:
- "reusify" "^1.0.4"
-
-"file-entry-cache@^6.0.1":
- "integrity" "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
- "resolved" "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
- "version" "6.0.1"
- dependencies:
- "flat-cache" "^3.0.4"
-
-"fill-range@^7.0.1":
- "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
- "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
- "version" "7.0.1"
- dependencies:
- "to-regex-range" "^5.0.1"
-
-"find-up@^5.0.0":
- "integrity" "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="
- "resolved" "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
- "version" "5.0.0"
- dependencies:
- "locate-path" "^6.0.0"
- "path-exists" "^4.0.0"
-
-"flat-cache@^3.0.4":
- "integrity" "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
- "resolved" "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
- "version" "3.0.4"
- dependencies:
- "flatted" "^3.1.0"
- "rimraf" "^3.0.2"
-
-"flatted@^3.1.0":
- "integrity" "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ=="
- "resolved" "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz"
- "version" "3.2.6"
-
-"fs.realpath@^1.0.0":
- "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
- "version" "1.0.0"
-
-"fsevents@~2.3.2", "fsevents@2.3.2":
- "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
- "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
- "version" "2.3.2"
-
-"function-bind@^1.1.1":
- "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
- "version" "1.1.1"
-
-"function.prototype.name@^1.1.5":
- "integrity" "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA=="
- "resolved" "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
- "version" "1.1.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.0"
- "functions-have-names" "^1.2.2"
-
-"functional-red-black-tree@^1.0.1":
- "integrity" "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
- "resolved" "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
- "version" "1.0.1"
-
-"functions-have-names@^1.2.2":
- "integrity" "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
- "resolved" "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
- "version" "1.2.3"
-
-"get-caller-file@^2.0.5":
- "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
- "version" "2.0.5"
-
-"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1":
- "integrity" "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA=="
- "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz"
- "version" "1.1.2"
- dependencies:
- "function-bind" "^1.1.1"
- "has" "^1.0.3"
- "has-symbols" "^1.0.3"
-
-"get-symbol-description@^1.0.0":
- "integrity" "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw=="
- "resolved" "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
- "version" "1.0.0"
- dependencies:
- "call-bind" "^1.0.2"
- "get-intrinsic" "^1.1.1"
-
-"glob-parent@^5.1.2":
- "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
- "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
- "version" "5.1.2"
- dependencies:
- "is-glob" "^4.0.1"
-
-"glob-parent@^6.0.1":
- "integrity" "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="
- "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
- "version" "6.0.2"
- dependencies:
- "is-glob" "^4.0.3"
-
-"glob-parent@~5.1.2":
- "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="
- "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
- "version" "5.1.2"
- dependencies:
- "is-glob" "^4.0.1"
-
-"glob@^7.1.3":
- "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
- "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
- "version" "7.2.3"
- dependencies:
- "fs.realpath" "^1.0.0"
- "inflight" "^1.0.4"
- "inherits" "2"
- "minimatch" "^3.1.1"
- "once" "^1.3.0"
- "path-is-absolute" "^1.0.0"
-
-"globals@^13.15.0":
- "integrity" "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw=="
- "resolved" "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz"
- "version" "13.17.0"
- dependencies:
- "type-fest" "^0.20.2"
-
-"globby@^11.1.0":
- "integrity" "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="
- "resolved" "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
- "version" "11.1.0"
- dependencies:
- "array-union" "^2.1.0"
- "dir-glob" "^3.0.1"
- "fast-glob" "^3.2.9"
- "ignore" "^5.2.0"
- "merge2" "^1.4.1"
- "slash" "^3.0.0"
-
-"grapheme-splitter@^1.0.4":
- "integrity" "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
- "resolved" "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz"
- "version" "1.0.4"
-
-"handlebars@^4.7.7":
- "integrity" "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA=="
- "resolved" "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz"
- "version" "4.7.7"
- dependencies:
- "minimist" "^1.2.5"
- "neo-async" "^2.6.0"
- "source-map" "^0.6.1"
- "wordwrap" "^1.0.0"
- optionalDependencies:
- "uglify-js" "^3.1.4"
-
-"has-bigints@^1.0.1", "has-bigints@^1.0.2":
- "integrity" "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
- "resolved" "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
- "version" "1.0.2"
-
-"has-flag@^3.0.0":
- "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
- "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
- "version" "3.0.0"
-
-"has-flag@^4.0.0":
- "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
- "version" "4.0.0"
-
-"has-property-descriptors@^1.0.0":
- "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ=="
- "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
- "version" "1.0.0"
- dependencies:
- "get-intrinsic" "^1.1.1"
-
-"has-symbols@^1.0.2", "has-symbols@^1.0.3":
- "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
- "version" "1.0.3"
-
-"has-tostringtag@^1.0.0":
- "integrity" "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ=="
- "resolved" "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
- "version" "1.0.0"
- dependencies:
- "has-symbols" "^1.0.2"
-
-"has@^1.0.3":
- "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
- "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
- "version" "1.0.3"
- dependencies:
- "function-bind" "^1.1.1"
-
-"ignore@^5.2.0":
- "integrity" "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
- "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
- "version" "5.2.0"
-
-"import-fresh@^3.0.0", "import-fresh@^3.2.1":
- "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw=="
- "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
- "version" "3.3.0"
- dependencies:
- "parent-module" "^1.0.0"
- "resolve-from" "^4.0.0"
-
-"imurmurhash@^0.1.4":
- "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
- "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
- "version" "0.1.4"
-
-"inflight@^1.0.4":
- "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
- "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
- "version" "1.0.6"
- dependencies:
- "once" "^1.3.0"
- "wrappy" "1"
-
-"inherits@2":
- "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
- "version" "2.0.4"
-
-"internal-slot@^1.0.3":
- "integrity" "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA=="
- "resolved" "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"
- "version" "1.0.3"
- dependencies:
- "get-intrinsic" "^1.1.0"
- "has" "^1.0.3"
- "side-channel" "^1.0.4"
-
-"is-arrayish@^0.2.1":
- "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
- "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
- "version" "0.2.1"
-
-"is-bigint@^1.0.1":
- "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg=="
- "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
- "version" "1.0.4"
- dependencies:
- "has-bigints" "^1.0.1"
-
-"is-binary-path@~2.1.0":
- "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw=="
- "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
- "version" "2.1.0"
- dependencies:
- "binary-extensions" "^2.0.0"
-
-"is-boolean-object@^1.1.0":
- "integrity" "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA=="
- "resolved" "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
- "version" "1.1.2"
- dependencies:
- "call-bind" "^1.0.2"
- "has-tostringtag" "^1.0.0"
-
-"is-callable@^1.1.4", "is-callable@^1.2.4":
- "integrity" "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
- "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
- "version" "1.2.4"
-
-"is-core-module@^2.9.0":
- "integrity" "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg=="
- "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz"
- "version" "2.10.0"
- dependencies:
- "has" "^1.0.3"
-
-"is-date-object@^1.0.1":
- "integrity" "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ=="
- "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
- "version" "1.0.5"
- dependencies:
- "has-tostringtag" "^1.0.0"
-
-"is-extglob@^2.1.1":
- "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
- "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
- "version" "2.1.1"
-
-"is-fullwidth-code-point@^3.0.0":
- "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
- "version" "3.0.0"
-
-"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1":
- "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
- "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
- "version" "4.0.3"
- dependencies:
- "is-extglob" "^2.1.1"
-
-"is-negative-zero@^2.0.2":
- "integrity" "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
- "resolved" "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
- "version" "2.0.2"
-
-"is-number-object@^1.0.4":
- "integrity" "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ=="
- "resolved" "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
- "version" "1.0.7"
- dependencies:
- "has-tostringtag" "^1.0.0"
-
-"is-number@^7.0.0":
- "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
- "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
- "version" "7.0.0"
-
-"is-regex@^1.1.4":
- "integrity" "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg=="
- "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
- "version" "1.1.4"
- dependencies:
- "call-bind" "^1.0.2"
- "has-tostringtag" "^1.0.0"
-
-"is-shared-array-buffer@^1.0.2":
- "integrity" "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA=="
- "resolved" "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
- "version" "1.0.2"
- dependencies:
- "call-bind" "^1.0.2"
-
-"is-string@^1.0.5", "is-string@^1.0.7":
- "integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
- "resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
- "version" "1.0.7"
- dependencies:
- "has-tostringtag" "^1.0.0"
-
-"is-symbol@^1.0.2", "is-symbol@^1.0.3":
- "integrity" "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg=="
- "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
- "version" "1.0.4"
- dependencies:
- "has-symbols" "^1.0.2"
-
-"is-weakref@^1.0.2":
- "integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
- "resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
- "version" "1.0.2"
- dependencies:
- "call-bind" "^1.0.2"
-
-"isexe@^2.0.0":
- "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
- "version" "2.0.0"
-
-"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
- "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
- "version" "4.0.0"
-
-"js-yaml@^4.1.0":
- "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="
- "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
- "version" "4.1.0"
- dependencies:
- "argparse" "^2.0.1"
-
-"json-parse-even-better-errors@^2.3.0":
- "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
- "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
- "version" "2.3.1"
-
-"json-schema-traverse@^0.4.1":
- "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
- "version" "0.4.1"
-
-"json-stable-stringify-without-jsonify@^1.0.1":
- "integrity" "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
- "resolved" "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
- "version" "1.0.1"
-
-"jsx-ast-utils@^2.4.1 || ^3.0.0":
- "integrity" "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q=="
- "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz"
- "version" "3.3.2"
- dependencies:
- "array-includes" "^3.1.5"
- "object.assign" "^4.1.2"
-
-"levn@^0.4.1":
- "integrity" "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="
- "resolved" "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
- "version" "0.4.1"
- dependencies:
- "prelude-ls" "^1.2.1"
- "type-check" "~0.4.0"
-
-"lines-and-columns@^1.1.6":
- "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
- "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
- "version" "1.2.4"
-
-"locate-path@^6.0.0":
- "integrity" "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="
- "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
- "version" "6.0.0"
- dependencies:
- "p-locate" "^5.0.0"
-
-"lodash.merge@^4.6.2":
- "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
- "version" "4.6.2"
-
-"loose-envify@^1.4.0":
- "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
- "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
- "version" "1.4.0"
- dependencies:
- "js-tokens" "^3.0.0 || ^4.0.0"
-
-"lru-cache@^6.0.0":
- "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
- "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
- "version" "6.0.0"
- dependencies:
- "yallist" "^4.0.0"
-
-"merge2@^1.3.0", "merge2@^1.4.1":
- "integrity" "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
- "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
- "version" "1.4.1"
-
-"micromatch@^4.0.4":
- "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA=="
- "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
- "version" "4.0.5"
- dependencies:
- "braces" "^3.0.2"
- "picomatch" "^2.3.1"
-
-"minimatch@^3.0.4", "minimatch@^3.1.1", "minimatch@^3.1.2":
- "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
- "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
- "version" "3.1.2"
- dependencies:
- "brace-expansion" "^1.1.7"
-
-"minimist@^1.2.5":
- "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
- "version" "1.2.6"
-
-"ms@2.1.2":
- "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
- "version" "2.1.2"
-
-"natural-compare@^1.4.0":
- "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
- "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
- "version" "1.4.0"
-
-"neo-async@^2.6.0":
- "integrity" "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- "resolved" "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz"
- "version" "2.6.2"
-
-"normalize-path@^3.0.0", "normalize-path@~3.0.0":
- "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
- "version" "3.0.0"
-
-"object-assign@^4.1.1":
- "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
- "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
- "version" "4.1.1"
-
-"object-inspect@^1.12.0", "object-inspect@^1.9.0":
- "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
- "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
- "version" "1.12.2"
-
-"object-keys@^1.1.1":
- "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
- "version" "1.1.1"
-
-"object.assign@^4.1.2":
- "integrity" "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA=="
- "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz"
- "version" "4.1.3"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.4"
- "has-symbols" "^1.0.3"
- "object-keys" "^1.1.1"
-
-"object.entries@^1.1.5":
- "integrity" "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g=="
- "resolved" "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz"
- "version" "1.1.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.1"
-
-"object.fromentries@^2.0.5":
- "integrity" "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw=="
- "resolved" "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz"
- "version" "2.0.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.1"
-
-"object.hasown@^1.1.1":
- "integrity" "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A=="
- "resolved" "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz"
- "version" "1.1.1"
- dependencies:
- "define-properties" "^1.1.4"
- "es-abstract" "^1.19.5"
-
-"object.values@^1.1.5":
- "integrity" "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg=="
- "resolved" "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz"
- "version" "1.1.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.1"
-
-"once@^1.3.0":
- "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
- "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
- "version" "1.4.0"
- dependencies:
- "wrappy" "1"
-
-"optionator@^0.9.1":
- "integrity" "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw=="
- "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
- "version" "0.9.1"
- dependencies:
- "deep-is" "^0.1.3"
- "fast-levenshtein" "^2.0.6"
- "levn" "^0.4.1"
- "prelude-ls" "^1.2.1"
- "type-check" "^0.4.0"
- "word-wrap" "^1.2.3"
-
-"p-limit@^3.0.2":
- "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="
- "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
- "version" "3.1.0"
- dependencies:
- "yocto-queue" "^0.1.0"
-
-"p-locate@^5.0.0":
- "integrity" "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="
- "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
- "version" "5.0.0"
- dependencies:
- "p-limit" "^3.0.2"
-
-"parent-module@^1.0.0":
- "integrity" "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="
- "resolved" "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
- "version" "1.0.1"
- dependencies:
- "callsites" "^3.0.0"
-
-"parse-json@^5.0.0":
- "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="
- "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
- "version" "5.2.0"
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "error-ex" "^1.3.1"
- "json-parse-even-better-errors" "^2.3.0"
- "lines-and-columns" "^1.1.6"
-
-"path-exists@^4.0.0":
- "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
- "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
- "version" "4.0.0"
-
-"path-is-absolute@^1.0.0":
- "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
- "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
- "version" "1.0.1"
-
-"path-key@^3.1.0":
- "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
- "version" "3.1.1"
-
-"path-parse@^1.0.7":
- "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
- "version" "1.0.7"
-
-"path-type@^4.0.0":
- "integrity" "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
- "resolved" "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
- "version" "4.0.0"
-
-"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.3.1":
- "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
- "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
- "version" "2.3.1"
-
-"playwright-core@1.33.0":
- "integrity" "sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw=="
- "resolved" "https://registry.npmjs.org/playwright-core/-/playwright-core-1.33.0.tgz"
- "version" "1.33.0"
-
-"playwright-core@1.40.0":
- "integrity" "sha512-fvKewVJpGeca8t0ipM56jkVSU6Eo0RmFvQ/MaCQNDYm+sdvKkMBBWTE1FdeMqIdumRaXXjZChWHvIzCGM/tA/Q=="
- "resolved" "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.0.tgz"
- "version" "1.40.0"
-
-"playwright-watch@^1.3.23":
- "integrity" "sha512-/eAsrZSqxmAluB5C+U9eRDATGIMdhgtHK1Rdb9n/RUOliaS6mLcut3kUNAVsVM4iQYp2bYJnYEa7L3Jchqp8Tw=="
- "resolved" "https://registry.npmjs.org/playwright-watch/-/playwright-watch-1.3.23.tgz"
- "version" "1.3.23"
- dependencies:
- "chokidar" "^3.5.2"
- "cosmiconfig" "^7.0.1"
- "yargs" "^17.1.1"
-
-"playwright@>=1":
- "integrity" "sha512-gyHAgQjiDf1m34Xpwzaqb76KgfzYrhK7iih+2IzcOCoZWr/8ZqmdBw+t0RU85ZmfJMgtgAiNtBQ/KS2325INXw=="
- "resolved" "https://registry.npmjs.org/playwright/-/playwright-1.40.0.tgz"
- "version" "1.40.0"
- dependencies:
- "playwright-core" "1.40.0"
- optionalDependencies:
- "fsevents" "2.3.2"
-
-"prelude-ls@^1.2.1":
- "integrity" "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
- "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
- "version" "1.2.1"
-
-"prettier-linter-helpers@^1.0.0":
- "integrity" "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w=="
- "resolved" "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
- "version" "1.0.0"
- dependencies:
- "fast-diff" "^1.1.2"
-
-"prettier@>=2.0.0", "prettier@2.6.2":
- "integrity" "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew=="
- "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz"
- "version" "2.6.2"
-
-"prop-types@^15.8.1":
- "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
- "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
- "version" "15.8.1"
- dependencies:
- "loose-envify" "^1.4.0"
- "object-assign" "^4.1.1"
- "react-is" "^16.13.1"
-
-"punycode@^2.1.0":
- "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
- "version" "2.1.1"
-
-"queue-microtask@^1.2.2":
- "integrity" "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
- "resolved" "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
- "version" "1.2.3"
-
-"react-is@^16.13.1":
- "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
- "version" "16.13.1"
-
-"readdirp@~3.6.0":
- "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="
- "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
- "version" "3.6.0"
- dependencies:
- "picomatch" "^2.2.1"
-
-"regexp.prototype.flags@^1.4.1", "regexp.prototype.flags@^1.4.3":
- "integrity" "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA=="
- "resolved" "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
- "version" "1.4.3"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "functions-have-names" "^1.2.2"
-
-"regexpp@^3.2.0":
- "integrity" "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
- "resolved" "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz"
- "version" "3.2.0"
-
-"require-directory@^2.1.1":
- "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
- "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
- "version" "2.1.1"
-
-"resolve-from@^4.0.0":
- "integrity" "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
- "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
- "version" "4.0.0"
-
-"resolve@^2.0.0-next.3":
- "integrity" "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ=="
- "resolved" "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz"
- "version" "2.0.0-next.4"
- dependencies:
- "is-core-module" "^2.9.0"
- "path-parse" "^1.0.7"
- "supports-preserve-symlinks-flag" "^1.0.0"
-
-"reusify@^1.0.4":
- "integrity" "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
- "resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
- "version" "1.0.4"
-
-"rimraf@^3.0.2":
- "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
- "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
- "version" "3.0.2"
- dependencies:
- "glob" "^7.1.3"
-
-"run-parallel@^1.1.9":
- "integrity" "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="
- "resolved" "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
- "version" "1.2.0"
- dependencies:
- "queue-microtask" "^1.2.2"
-
-"semver@^6.3.0":
- "integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
- "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
- "version" "6.3.1"
-
-"semver@^7.3.7":
- "integrity" "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA=="
- "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz"
- "version" "7.5.4"
- dependencies:
- "lru-cache" "^6.0.0"
-
-"shebang-command@^2.0.0":
- "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="
- "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
- "version" "2.0.0"
- dependencies:
- "shebang-regex" "^3.0.0"
-
-"shebang-regex@^3.0.0":
- "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
- "version" "3.0.0"
-
-"side-channel@^1.0.4":
- "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
- "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
- "version" "1.0.4"
- dependencies:
- "call-bind" "^1.0.0"
- "get-intrinsic" "^1.0.2"
- "object-inspect" "^1.9.0"
-
-"slash@^3.0.0":
- "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
- "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
- "version" "3.0.0"
-
-"source-map@^0.6.1":
- "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
- "version" "0.6.1"
-
-"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3":
- "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
- "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
- "version" "4.2.3"
- dependencies:
- "emoji-regex" "^8.0.0"
- "is-fullwidth-code-point" "^3.0.0"
- "strip-ansi" "^6.0.1"
-
-"string.prototype.matchall@^4.0.7":
- "integrity" "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg=="
- "resolved" "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz"
- "version" "4.0.7"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.3"
- "es-abstract" "^1.19.1"
- "get-intrinsic" "^1.1.1"
- "has-symbols" "^1.0.3"
- "internal-slot" "^1.0.3"
- "regexp.prototype.flags" "^1.4.1"
- "side-channel" "^1.0.4"
-
-"string.prototype.trimend@^1.0.5":
- "integrity" "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog=="
- "resolved" "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz"
- "version" "1.0.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.4"
- "es-abstract" "^1.19.5"
-
-"string.prototype.trimstart@^1.0.5":
- "integrity" "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg=="
- "resolved" "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz"
- "version" "1.0.5"
- dependencies:
- "call-bind" "^1.0.2"
- "define-properties" "^1.1.4"
- "es-abstract" "^1.19.5"
-
-"strip-ansi@^6.0.0", "strip-ansi@^6.0.1":
- "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
- "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
- "version" "6.0.1"
- dependencies:
- "ansi-regex" "^5.0.1"
-
-"strip-json-comments@^3.1.0", "strip-json-comments@^3.1.1":
- "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
- "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
- "version" "3.1.1"
-
-"supports-color@^5.3.0":
- "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="
- "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
- "version" "5.5.0"
- dependencies:
- "has-flag" "^3.0.0"
-
-"supports-color@^7.1.0":
- "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="
- "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
- "version" "7.2.0"
- dependencies:
- "has-flag" "^4.0.0"
-
-"supports-preserve-symlinks-flag@^1.0.0":
- "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
- "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
- "version" "1.0.0"
-
-"text-table@^0.2.0":
- "integrity" "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
- "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
- "version" "0.2.0"
-
-"to-regex-range@^5.0.1":
- "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
- "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
- "version" "5.0.1"
- dependencies:
- "is-number" "^7.0.0"
-
-"tslib@^1.8.1":
- "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
- "version" "1.14.1"
-
-"tsutils@^3.21.0":
- "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA=="
- "resolved" "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz"
- "version" "3.21.0"
- dependencies:
- "tslib" "^1.8.1"
-
-"type-check@^0.4.0", "type-check@~0.4.0":
- "integrity" "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="
- "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
- "version" "0.4.0"
- dependencies:
- "prelude-ls" "^1.2.1"
-
-"type-fest@^0.20.2":
- "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
- "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
- "version" "0.20.2"
-
-"typescript@^4.6.4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta":
- "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
- "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz"
- "version" "4.7.4"
-
-"uglify-js@^3.1.4":
- "integrity" "sha512-uVbFqx9vvLhQg0iBaau9Z75AxWJ8tqM9AV890dIZCLApF4rTcyHwmAvLeEdYRs+BzYWu8Iw81F79ah0EfTXbaw=="
- "resolved" "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.3.tgz"
- "version" "3.16.3"
-
-"unbox-primitive@^1.0.2":
- "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
- "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
- "version" "1.0.2"
- dependencies:
- "call-bind" "^1.0.2"
- "has-bigints" "^1.0.2"
- "has-symbols" "^1.0.3"
- "which-boxed-primitive" "^1.0.2"
-
-"uri-js@^4.2.2":
- "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="
- "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
- "version" "4.4.1"
- dependencies:
- "punycode" "^2.1.0"
-
-"uuid@^9.0.1":
- "integrity" "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
- "resolved" "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz"
- "version" "9.0.1"
-
-"v8-compile-cache@^2.0.3":
- "integrity" "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA=="
- "resolved" "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
- "version" "2.3.0"
-
-"which-boxed-primitive@^1.0.2":
- "integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
- "resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
- "version" "1.0.2"
- dependencies:
- "is-bigint" "^1.0.1"
- "is-boolean-object" "^1.1.0"
- "is-number-object" "^1.0.4"
- "is-string" "^1.0.5"
- "is-symbol" "^1.0.3"
-
-"which@^2.0.1":
- "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
- "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
- "version" "2.0.2"
- dependencies:
- "isexe" "^2.0.0"
-
-"word-wrap@^1.2.3":
- "integrity" "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA=="
- "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz"
- "version" "1.2.4"
-
-"wordwrap@^1.0.0":
- "integrity" "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
- "resolved" "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
- "version" "1.0.0"
-
-"wrap-ansi@^7.0.0":
- "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="
- "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
- "version" "7.0.0"
- dependencies:
- "ansi-styles" "^4.0.0"
- "string-width" "^4.1.0"
- "strip-ansi" "^6.0.0"
-
-"wrappy@1":
- "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
- "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
- "version" "1.0.2"
-
-"y18n@^5.0.5":
- "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
- "version" "5.0.8"
-
-"yallist@^4.0.0":
- "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
- "version" "4.0.0"
-
-"yaml@^1.10.0":
- "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
- "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
- "version" "1.10.2"
-
-"yargs-parser@^21.0.0":
- "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
- "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
- "version" "21.1.1"
-
-"yargs@^17.1.1":
- "integrity" "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA=="
- "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz"
- "version" "17.5.1"
- 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"
-
-"yocto-queue@^0.1.0":
- "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
- "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
- "version" "0.1.0"
diff --git a/scripts/update-versions.sh b/scripts/update-versions.sh
index 9299cf295c..68af3cf5de 100755
--- a/scripts/update-versions.sh
+++ b/scripts/update-versions.sh
@@ -1,4 +1,3 @@
lerna version $1 --no-git-tag-version --exact --yes --no-private
lerna add @100mslive/hms-video-store --peer --scope=@100mslive/hms-virtual-background --exact
-lerna add @100mslive/react-icons --scope=100ms-custom-app --exact
-lerna add @100mslive/roomkit-react --scope=100ms-custom-app --exact
\ No newline at end of file
+lerna add @100mslive/roomkit-react --scope=prebuilt-react-integration --exact
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f74c78be85..77b8ec6086 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,116 @@
# yarn lockfile v1
+"@100mslive/hls-player@0.1.28":
+ version "0.1.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/hls-player/-/hls-player-0.1.28.tgz#9cf5a2dfedc6929373cfb74f7ff3f41b3520010f"
+ integrity sha512-f0dquinRe3l0SwKJhjwsUAUt86cPGqqmbss/o6MFFS7ngaTqxKPpEMQUrs4I4fs+8WVE0z9YVbJCdOXPOA5Yeg==
+ dependencies:
+ "@100mslive/hls-stats" "0.2.28"
+ eventemitter2 "^6.4.7"
+ hls.js "1.4.12"
+
+"@100mslive/hls-stats@0.2.28":
+ version "0.2.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/hls-stats/-/hls-stats-0.2.28.tgz#16609e8194d250b6ed59128e82c93b73287446d0"
+ integrity sha512-3TQZcEDFu+FF229SB7D+kkVHbZDi1VH54IyibC1/IATIKMElxN0X7PIwgNZsVVcBAL/etnYMwBKk/OF8yt8yeQ==
+
+"@100mslive/hms-video-store@0.10.28":
+ version "0.10.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/hms-video-store/-/hms-video-store-0.10.28.tgz#7527f072247eb8c65db858d990c2e7d5d9b7b30e"
+ integrity sha512-NVRV5GMIU0zuiT+b57LU+wBweppQb0OSEpELKrdbyYErvhtECHbWxtKKApg1xbXbKt7faAlHrdWnkpQucFi5+A==
+ dependencies:
+ "@100mslive/hms-video" "0.9.28"
+ eventemitter2 "^6.4.7"
+ immer "^9.0.6"
+ reselect "4.0.0"
+ zustand "3.5.7"
+
+"@100mslive/hms-video@0.9.28":
+ version "0.9.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/hms-video/-/hms-video-0.9.28.tgz#0af509058c4cf991e972276d1b4466cf84369c3d"
+ integrity sha512-3YZsOgWuMLxS5+MECK+Ui9zZBdmbOj7JEfYN8KpZ6bHc+Q6wLpXvRyuTOj6qP/nWzDiGqn1UxXtIAY38NP0pcQ==
+ dependencies:
+ eventemitter2 "^6.4.7"
+ sdp-transform "^2.14.1"
+ ua-parser-js "^1.0.1"
+ uuid "^8.3.2"
+ webrtc-adapter "^8.0.0"
+
+"@100mslive/hms-virtual-background@1.11.28":
+ version "1.11.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/hms-virtual-background/-/hms-virtual-background-1.11.28.tgz#1d0e512ef2da7080da24ed0082db528c331af7f1"
+ integrity sha512-wcdBUA/UdubnfT1eH1337+dqN6sMyqLnAVDDgkhSBFaQyjtZICotEumPo/LT0Z0GeLUhH2iO5owQ9F/uoRufzw==
+ dependencies:
+ "@mediapipe/selfie_segmentation" "^0.1.1632777926"
+ "@tensorflow-models/body-segmentation" "^1.0.1"
+ "@tensorflow/tfjs-backend-webgl" "^3.3.0"
+ "@tensorflow/tfjs-converter" "^3.19.0"
+ "@tensorflow/tfjs-core" "^3.19.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.11.1"
+ "@webassemblyjs/wasm-gen" "1.11.1"
+ effects-sdk "2.6.8"
+ gifuct-js "^2.1.2"
+ wasm-check "^2.0.2"
+
+"@100mslive/react-icons@0.8.28":
+ version "0.8.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/react-icons/-/react-icons-0.8.28.tgz#9b85627cc1580ae4a10e03df99f917ebb295c7c1"
+ integrity sha512-4W36IiwmMlcE3eHmpYwITfR/wtr9XVjF2wEmsJnCfp/a0ydnr6OPJfipUI3Ndn4X+wcFdReR2GTqmQzgFIFjkw==
+
+"@100mslive/react-sdk@0.8.28":
+ version "0.8.28"
+ resolved "https://registry.yarnpkg.com/@100mslive/react-sdk/-/react-sdk-0.8.28.tgz#9e3d14e19d2678a08a91497fd8da6ea7cf995c1e"
+ integrity sha512-O+Czzi7W/zocf4tKyQ1y3k5dxaGbOBTGaCxzN82FEl8GhX6/ma0Tpx98sfE7DRIqPc6OqiFN3Pg7GWeooObKaQ==
+ dependencies:
+ "@100mslive/hms-video-store" "0.10.28"
+ react-resize-detector "^7.0.0"
+ zustand "^3.6.2"
+
+"@100mslive/roomkit-react@0.1.19":
+ version "0.1.19"
+ resolved "https://registry.yarnpkg.com/@100mslive/roomkit-react/-/roomkit-react-0.1.19.tgz#fe6d33bf82dab3d27c57e73a9de651f26d20a96f"
+ integrity sha512-dDevv3IjmKCJKrMonbGFb864O6GjbqomZa7RyNNIqV1EkSzd403BJa3SmjRDu3f0lH/pWjkP9Mhl4Sd9KZvKig==
+ dependencies:
+ "@100mslive/hls-player" "0.1.28"
+ "@100mslive/hms-virtual-background" "1.11.28"
+ "@100mslive/react-icons" "0.8.28"
+ "@100mslive/react-sdk" "0.8.28"
+ "@100mslive/types-prebuilt" "0.12.5"
+ "@emoji-mart/data" "^1.0.6"
+ "@emoji-mart/react" "^1.0.1"
+ "@radix-ui/react-accordion" "1.0.0"
+ "@radix-ui/react-checkbox" "1.0.0"
+ "@radix-ui/react-collapsible" "1.0.0"
+ "@radix-ui/react-dialog" "1.0.4"
+ "@radix-ui/react-dropdown-menu" "2.0.5"
+ "@radix-ui/react-label" "1.0.0"
+ "@radix-ui/react-popover" "1.0.6"
+ "@radix-ui/react-progress" "1.0.0"
+ "@radix-ui/react-radio-group" "1.0.0"
+ "@radix-ui/react-select" "1.0.0"
+ "@radix-ui/react-slider" "1.0.0"
+ "@radix-ui/react-switch" "1.0.0"
+ "@radix-ui/react-tabs" "1.0.0"
+ "@radix-ui/react-toast" "1.0.0"
+ "@radix-ui/react-tooltip" "1.0.6"
+ "@stitches/react" "^1.2.8"
+ emoji-mart "^5.2.2"
+ eventemitter2 "^6.4.7"
+ lodash.merge "^4.6.2"
+ pusher-js "^7.0.3"
+ qrcode.react "^3.1.0"
+ react-draggable "^4.4.5"
+ react-intersection-observer "^9.4.3"
+ react-swipeable "^7.0.1"
+ react-use "^17.4.0"
+ react-virtualized-auto-sizer "^1.0.7"
+ react-window "^1.8.7"
+ recordrtc "^5.6.2"
+ screenfull "^5.1.0"
+ uuid "^8.3.2"
+ worker-timers "^7.0.40"
+
"@100mslive/types-prebuilt@0.12.5":
version "0.12.5"
resolved "https://registry.yarnpkg.com/@100mslive/types-prebuilt/-/types-prebuilt-0.12.5.tgz#505d19e228f7e2929eb93c489a0f886d628df02f"
@@ -103,7 +213,7 @@
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
-"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5":
+"@babel/helper-annotate-as-pure@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
@@ -128,7 +238,7 @@
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.22.10", "@babel/helper-create-class-features-plugin@^7.22.5":
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.10", "@babel/helper-create-class-features-plugin@^7.22.5":
version "7.22.10"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3"
integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==
@@ -411,16 +521,6 @@
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
-"@babel/plugin-proposal-private-property-in-object@^7.21.11":
- version "7.21.11"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz#69d597086b6760c4126525cfa154f34631ff272c"
- integrity sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-create-class-features-plugin" "^7.21.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-
"@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"
@@ -1438,7 +1538,7 @@
debug "^3.1.0"
lodash.once "^4.1.1"
-"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0", "@discoveryjs/json-ext@^0.5.3":
+"@discoveryjs/json-ext@^0.5.3":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
@@ -1468,225 +1568,230 @@
ts-node "^9"
tslib "^2"
+"@esbuild/aix-ppc64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3"
+ integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==
+
"@esbuild/android-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
-"@esbuild/android-arm64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.1.tgz#3803e259bb50a82a820a5e339832d42ffba02ffa"
- integrity sha512-CqhrKvDSt76I0so/5afqgKrMv41FjbfUKFrcZddMnrZKqJU70I1MWLVJrImJuYMaY4Yb9rn4UKfF7oZ0BOleVw==
+"@esbuild/android-arm64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220"
+ integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==
"@esbuild/android-arm@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
-"@esbuild/android-arm@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.1.tgz#131a3bf5681fb50e1e873b79fce8eae98043606b"
- integrity sha512-yjTucwcOua52z14RL30JMwmCdylsQ5WrErGkAb6VL0MWPbnwJyLejydaRcUqkPO6g0MowlzavdxrR7AcfCW+yA==
+"@esbuild/android-arm@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c"
+ integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==
"@esbuild/android-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
-"@esbuild/android-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.1.tgz#d8b5aa54142c04d2fa8dfdd7781929cf50f0246a"
- integrity sha512-VA29h01MrPkymIL1bFtvL2L4WPogiMGW2N/M+vXZHHOv6LgA9vjzVskTt0v5LjeCjx1PFDcR0ASKy8Y7Gm+iIA==
+"@esbuild/android-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2"
+ integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==
"@esbuild/darwin-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
-"@esbuild/darwin-arm64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.1.tgz#ce472269315da5342811b7bad901f6be0d456642"
- integrity sha512-Be4Cf6WDH7QkLHEpfzQOlBOFdqmqYTSqw2yG3SVmzB3++wy3K7wiNGedezL+q6Jb4weqT9tchO5kkLDC08Jnzg==
+"@esbuild/darwin-arm64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf"
+ integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==
"@esbuild/darwin-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
-"@esbuild/darwin-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.1.tgz#445017aec28152dd340464565a6796276adbd234"
- integrity sha512-SewtenJi6zCEfZRSUchb+LgJ/IQw8QvnKECPu/qHII1fLQKnVPUVR+VH2IuS03DD9WWnAi3yfOvBNwtrp3WXtg==
+"@esbuild/darwin-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e"
+ integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==
"@esbuild/freebsd-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
-"@esbuild/freebsd-arm64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.1.tgz#61f70529c0aa2432e0a652b63f99ef1e1f83f7d6"
- integrity sha512-TadKO0AaTDAPV2RyGZQ0AaiDTVYg7RsgNaA6OJjXXmoLbTs++NwHtzAmVFBq8Q/P9A11wgkv36HeyAYhWHbW1w==
+"@esbuild/freebsd-arm64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a"
+ integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==
"@esbuild/freebsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
-"@esbuild/freebsd-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.1.tgz#f7658f988c88d6b63777678b89fb8137a07a9df6"
- integrity sha512-DrFMGLF0/aAcZgwhtZr1cby7aHlalpFjLCe5CiI8mm0Kqhhc8gyNZKreaZzvir8CQe0H17p9xx6M9ben5R3r0g==
+"@esbuild/freebsd-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2"
+ integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==
"@esbuild/linux-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
-"@esbuild/linux-arm64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.1.tgz#4245701cda66bfaeaf886d3c065729c98499d7de"
- integrity sha512-6ku/R2EzsdjyBaqQn+xGOPbv+BBYBXQYzlA04/46YQLmXkdApi0GYyUwiCXYBxm578iyywzGmM0rep1/q8tuFQ==
+"@esbuild/linux-arm64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545"
+ integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==
"@esbuild/linux-arm@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
-"@esbuild/linux-arm@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.1.tgz#16ab51f1928c5631cbd40b86997198691201fe4c"
- integrity sha512-lCWDVPpQO/Dt5MEqctKujgtUVmwQx7J2Q83EqX/9BejN7BIX4fGJ0QKMiIyy21PFh+/64ArN+Ovh1tzYkTt2wg==
+"@esbuild/linux-arm@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3"
+ integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==
"@esbuild/linux-ia32@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
-"@esbuild/linux-ia32@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.1.tgz#860b8c9e15259117c2adc3c510eac1fcf4b96e9a"
- integrity sha512-8AKFBk9v/zBDsADvK/0BWZUxkjEc0QDwO8rvbHJKqAZx6DF/VSeBxTRmqWeecrJmx+n3kemEwML9z0eD9IHweQ==
+"@esbuild/linux-ia32@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4"
+ integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==
"@esbuild/linux-loong64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
-"@esbuild/linux-loong64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.1.tgz#09b4dc90479af7aa62babbdf451cbd1bdc0c76ad"
- integrity sha512-6mOS5CxTGD8qOymp2y4KoM4ir+/REgjdJQFYpwP+WqjrWBo+PUevDGeHHjzCdw/R19PkFqS1bRzv8cTCmB/5kA==
+"@esbuild/linux-loong64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121"
+ integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==
"@esbuild/linux-mips64el@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
-"@esbuild/linux-mips64el@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.1.tgz#92b242fde2d7d9875d3aa249d57f3508f9058934"
- integrity sha512-Bzmv6rRMzR4ErG2k/jwfj5jKNzVMVEI1tThuirFdAoE+duUv+jlDnlwxsN3s1eqMzADTOV2sSIcUUOfgv++Dgg==
+"@esbuild/linux-mips64el@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9"
+ integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==
"@esbuild/linux-ppc64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
-"@esbuild/linux-ppc64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.1.tgz#43d07d27dde2819ab6e0dd200174b9a7dd25cb1f"
- integrity sha512-mPOxA7bd3nmx8TkuO/9M/tE0fnvmuX0wlpwnTL6DPLgkb/Z/KkupexSIw4cLfznn/fPzD89y17VWBjlVNyrpCQ==
+"@esbuild/linux-ppc64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912"
+ integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==
"@esbuild/linux-riscv64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
-"@esbuild/linux-riscv64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.1.tgz#293e3027e996446d9d303d61605b5b0c14c238f9"
- integrity sha512-znYb2Mhe9xKIDeIYuTD6vCcUltvYzRT5Yq6sVcdhPrGu8DRdsNZS04B2tSeM+j7T03jL4yY+7/G/jxSJJ9LX2A==
+"@esbuild/linux-riscv64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916"
+ integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==
"@esbuild/linux-s390x@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
-"@esbuild/linux-s390x@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.1.tgz#ac6876f7b0221237792001fd644ca6523a82d5a7"
- integrity sha512-BBIE32cyqAYhMOQ42/jnecoF5P/S5lMob2vXSUiFpD3xCFbXOFkjP1OjfFKnalSO9+B5emvPTQFfNQXuLeVGEw==
+"@esbuild/linux-s390x@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8"
+ integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==
"@esbuild/linux-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
-"@esbuild/linux-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.1.tgz#f2761e507bfb5a975ae89cb0b95b7c10fa283d8b"
- integrity sha512-PoCvKdHTIbnHmVJ5OEdewGMSw40HDFRTrC/imwh8vrp695RbSUpOqBqNBT45neK0FQleGFbSE/A9X6HlXPDhqA==
+"@esbuild/linux-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766"
+ integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==
"@esbuild/netbsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
-"@esbuild/netbsd-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.1.tgz#c1f948931b14b96cf958c783c7dbec0409782a0c"
- integrity sha512-4OrGMPorHCq9h52VLtyyyAmPjC2ZlANx54VDYyCrqXUOi+k0qxnPKXKKprVES67w2mE7TZJx9qZmT+jHeiZbHQ==
+"@esbuild/netbsd-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d"
+ integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==
"@esbuild/openbsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
-"@esbuild/openbsd-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.1.tgz#1d863e5c54a6a8a03e585ab3e3240863fc3a5e58"
- integrity sha512-3a7ZYMjBC4P3FKdTmUZHJw7Mhzp71m+iSFFhX1PnLZ03qmyaB2K+vJZCk4PjRjAvm5lSupJQQtM/AFMyLgKlxQ==
+"@esbuild/openbsd-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2"
+ integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==
"@esbuild/sunos-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
-"@esbuild/sunos-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.1.tgz#ee66c195f07527eb098d72e3a298398513128f67"
- integrity sha512-29yWBN5XfEjXT8yoeVb8cXfN1jAQLB+uskog1vBMhFR+YWOYvsrwPnh4hspETC/JnF95J+iETrvxgOUlICTWIw==
+"@esbuild/sunos-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767"
+ integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==
"@esbuild/win32-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
-"@esbuild/win32-arm64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.1.tgz#810ac7fcc15e4c0b606acdb39cd5cf342ba16dd7"
- integrity sha512-9Hb/WUXgyXlL55w3iNVyLkN9gq9x+agv3kk80foWbfpOwe7Qw4Vx6JGB+XQdsIfvvP1kShVQPIvBgVj0TxLlVw==
+"@esbuild/win32-arm64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee"
+ integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==
"@esbuild/win32-ia32@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
-"@esbuild/win32-ia32@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.1.tgz#c8ae19f2f87d9a6dd4b6c1a490d2c2c010ed315b"
- integrity sha512-VGdtEcXX/f01NgoM8emDnpdOyrZCQ7VTwLv89MOl3mvJ5fbCOBMNCa8t7RZS4lf12RS87qOuJFX7Bh9aLTbSxg==
+"@esbuild/win32-ia32@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c"
+ integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==
"@esbuild/win32-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
-"@esbuild/win32-x64@0.19.1":
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.1.tgz#8689ddff5792349df358d38d239a73ce58f274ab"
- integrity sha512-H6u8OHmJkKJubLbukVOyi9yA5lzK8VE4TFEkZj2vgusTUPvFeMQ8YnWviVc9F6PuKS6ZIpOvi2/sfiW8tQZQ2g==
+"@esbuild/win32-x64@0.19.11":
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04"
+ integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==
"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
@@ -1715,6 +1820,26 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/eslintrc@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
+ integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+ dependencies:
+ ajv "^6.12.4"
+ debug "^4.3.2"
+ espree "^9.6.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"
+
+"@eslint/js@8.56.0":
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b"
+ integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==
+
"@eslint/js@^8.47.0":
version "8.47.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d"
@@ -1766,6 +1891,15 @@
debug "^4.1.1"
minimatch "^3.0.5"
+"@humanwhocodes/config-array@^0.11.13":
+ version "0.11.13"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297"
+ integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==
+ dependencies:
+ "@humanwhocodes/object-schema" "^2.0.1"
+ debug "^4.1.1"
+ minimatch "^3.0.5"
+
"@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"
@@ -1776,6 +1910,11 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@humanwhocodes/object-schema@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044"
+ integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==
+
"@hutson/parse-repository-url@^3.0.0":
version "3.0.2"
resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340"
@@ -2089,11 +2228,6 @@
resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60"
integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==
-"@leichtgewicht/ip-codec@^2.0.1":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b"
- integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==
-
"@lerna/add@5.6.2":
version "5.6.2"
resolved "https://registry.yarnpkg.com/@lerna/add/-/add-5.6.2.tgz#d0e25fd4900b6f8a9548f940cc016ce8a3e2d2ba"
@@ -3197,11 +3331,6 @@
schema-utils "^3.0.0"
source-map "^0.7.3"
-"@polka/url@^1.0.0-next.20":
- version "1.0.0-next.21"
- resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
- integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
-
"@r2wc/core@^1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@r2wc/core/-/core-1.0.1.tgz#5f1c55b3f0ef63787034382a27204959818c8011"
@@ -4014,12 +4143,70 @@
estree-walker "^2.0.2"
picomatch "^2.3.1"
-"@rrweb/types@^2.0.0-alpha.7":
- version "2.0.0-alpha.10"
- resolved "https://registry.yarnpkg.com/@rrweb/types/-/types-2.0.0-alpha.10.tgz#59227a6afb6c0ace223b90d31efee05a75a92b47"
- integrity sha512-SjpFUq7XJVmMZXuntngmsNH6KCIsFH39tq+vTB96J/tfPkeUsEHszhc4HbeKbcs2TBa+FxAWLb3VQ4fX00Bddg==
- dependencies:
- rrweb-snapshot "^2.0.0-alpha.10"
+"@rollup/rollup-android-arm-eabi@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.4.tgz#b1094962742c1a0349587040bc06185e2a667c9b"
+ integrity sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==
+
+"@rollup/rollup-android-arm64@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.4.tgz#96eb86fb549e05b187f2ad06f51d191a23cb385a"
+ integrity sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==
+
+"@rollup/rollup-darwin-arm64@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.4.tgz#2456630c007cc5905cb368acb9ff9fc04b2d37be"
+ integrity sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==
+
+"@rollup/rollup-darwin-x64@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.4.tgz#97742214fc7dfd47a0f74efba6f5ae264e29c70c"
+ integrity sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==
+
+"@rollup/rollup-linux-arm-gnueabihf@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.4.tgz#cd933e61d6f689c9cdefde424beafbd92cfe58e2"
+ integrity sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==
+
+"@rollup/rollup-linux-arm64-gnu@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.4.tgz#33b09bf462f1837afc1e02a1b352af6b510c78a6"
+ integrity sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==
+
+"@rollup/rollup-linux-arm64-musl@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.4.tgz#50257fb248832c2308064e3764a16273b6ee4615"
+ integrity sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==
+
+"@rollup/rollup-linux-riscv64-gnu@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.4.tgz#09589e4e1a073cf56f6249b77eb6c9a8e9b613a8"
+ integrity sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==
+
+"@rollup/rollup-linux-x64-gnu@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.4.tgz#bd312bb5b5f02e54d15488605d15cfd3f90dda7c"
+ integrity sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==
+
+"@rollup/rollup-linux-x64-musl@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.4.tgz#25b3bede85d86438ce28cc642842d10d867d40e9"
+ integrity sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==
+
+"@rollup/rollup-win32-arm64-msvc@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.4.tgz#95957067eb107f571da1d81939f017d37b4958d3"
+ integrity sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==
+
+"@rollup/rollup-win32-ia32-msvc@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.4.tgz#71b6facad976db527863f698692c6964c0b6e10e"
+ integrity sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==
+
+"@rollup/rollup-win32-x64-msvc@4.9.4":
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.4.tgz#16295ccae354707c9bc6842906bdeaad4f3ba7a5"
+ integrity sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==
"@rushstack/eslint-patch@^1.1.0":
version "1.3.3"
@@ -4988,51 +5175,101 @@
deepmerge "^4.2.2"
svgo "^2.8.0"
+"@swc/core-darwin-arm64@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.102.tgz#2bbd90a8751e6eee981f857ec3f0b6233208da37"
+ integrity sha512-CJDxA5Wd2cUMULj3bjx4GEoiYyyiyL8oIOu4Nhrs9X+tlg8DnkCm4nI57RJGP8Mf6BaXPIJkHX8yjcefK2RlDA==
+
"@swc/core-darwin-arm64@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.76.tgz#757f10c6482a44b8cea3e85b8ae714ce9b31b4b5"
integrity sha512-ovviEhZ/1E81Z9OGrO0ivLWk4VCa3I3ZzM+cd3gugglRRwVwtlIaoIYqY5S3KiCAupDd1+UCl5X7Vbio7a/V8g==
+"@swc/core-darwin-x64@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.102.tgz#df16d51f45771d3c9cca8554b28a3190cdb075cf"
+ integrity sha512-X5akDkHwk6oAer49oER0qZMjNMkLH3IOZaV1m98uXIasAGyjo5WH1MKPeMLY1sY6V6TrufzwiSwD4ds571ytcg==
+
"@swc/core-darwin-x64@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.76.tgz#edba4a4dbbc7454bc914fc8cf61545a74622d46f"
integrity sha512-tcySTDqs0SHCebtW35sCdcLWsmTEo7bEwx0gNL/spetqVT9fpFi6qU8qcnt7i2KaZHbeNl9g1aadu+Yrni+GzA==
+"@swc/core-linux-arm-gnueabihf@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.102.tgz#eb71697590c56ea261fa9a4b198c45304c7ece39"
+ integrity sha512-kJH3XtZP9YQdjq/wYVBeFuiVQl4HaC4WwRrIxAHwe2OyvrwUI43dpW3LpxSggBnxXcVCXYWf36sTnv8S75o2Gw==
+
"@swc/core-linux-arm-gnueabihf@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.76.tgz#d998f0e51ebec03e8666f02cee3fc6e40ceaf680"
integrity sha512-apgzpGWy1AwoMF4urAAASsAjE7rEzZFIF+p6utuxhS7cNHzE0AyEVDYJbo+pzBdlZ8orBdzzsHtFwoEgKOjebA==
+"@swc/core-linux-arm64-gnu@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.102.tgz#75d72d5253d56723fa7054e1a8f313bf3d17b1a2"
+ integrity sha512-flQP2WDyCgO24WmKA1wjjTx+xfCmavUete2Kp6yrM+631IHLGnr17eu7rYJ/d4EnDBId/ytMyrnWbTVkaVrpbQ==
+
"@swc/core-linux-arm64-gnu@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.76.tgz#4f4d98f699e92ebafb10ed75e468384a81ab128c"
integrity sha512-c3c0zz6S0eludqidDpuqbadE0WT3OZczyQxe9Vw8lFFXES85mvNGtwYzyGK2o7TICpsuHrndwDIoYpmpWk879g==
+"@swc/core-linux-arm64-musl@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.102.tgz#7db86022fec57c1e06c573d45cef5e911bcc420e"
+ integrity sha512-bQEQSnC44DyoIGLw1+fNXKVGoCHi7eJOHr8BdH0y1ooy9ArskMjwobBFae3GX4T1AfnrTaejyr0FvLYIb0Zkog==
+
"@swc/core-linux-arm64-musl@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.76.tgz#4341ca15e4a398de73af149c52c4d45b8cf5c4c8"
integrity sha512-Is3bpq7F2qtlnkzEeOD6HIZJPpOmu3q6c82lKww90Q0NnrlSluVMozTHJgwVoFZyizH7uLnk0LuNcEAWLnmJIw==
+"@swc/core-linux-x64-gnu@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.102.tgz#298a25aa854924bedc7e4b69da52da19f84fc7a8"
+ integrity sha512-dFvnhpI478svQSxqISMt00MKTDS0e4YtIr+ioZDG/uJ/q+RpcNy3QI2KMm05Fsc8Y0d4krVtvCKWgfUMsJZXAg==
+
"@swc/core-linux-x64-gnu@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.76.tgz#cc2e6f0f90f0e9d6dcb8bc62cd31172e0967b396"
integrity sha512-iwCeRzd9oSvUzqt7nU6p/ztceAWfnO9XVxBn502R5gs6QCBbE1HCKrWHDO77aKPK7ss+0NcIGHvXTd9L8/wRzw==
+"@swc/core-linux-x64-musl@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.102.tgz#1bcd911aaa88b96f3bb665b0fd84ef4d21adf886"
+ integrity sha512-+a0M3CvjeIRNA/jTCzWEDh2V+mhKGvLreHOL7J97oULZy5yg4gf7h8lQX9J8t9QLbf6fsk+0F8bVH1Ie/PbXjA==
+
"@swc/core-linux-x64-musl@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.76.tgz#ebc327df5e07aa02e41309e56590f505f1fc64c0"
integrity sha512-a671g4tW8kyFeuICsgq4uB9ukQfiIyXJT4V6YSnmqhCTz5mazWuDxZ5wKnx/1g5nXTl+U5cWH2TZaCJatp4GKA==
+"@swc/core-win32-arm64-msvc@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.102.tgz#59084786364d03fa4a120bdd589a557a00caedeb"
+ integrity sha512-w76JWLjkZNOfkB25nqdWUNCbt0zJ41CnWrJPZ+LxEai3zAnb2YtgB/cCIrwxDebRuMgE9EJXRj7gDDaTEAMOOQ==
+
"@swc/core-win32-arm64-msvc@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.76.tgz#34fb884d2ee2eec3382c01f712bde0f05e058a3b"
integrity sha512-+swEFtjdMezS0vKUhJC3psdSDtOJGY5pEOt4e8XOPvn7aQpKQ9LfF49XVtIwDSk5SGuWtVoLFzkSY3reWUJCyg==
+"@swc/core-win32-ia32-msvc@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.102.tgz#27954889d940a63796d58ff7753f5f27ed381a1f"
+ integrity sha512-vlDb09HiGqKwz+2cxDS9T5/461ipUQBplvuhW+cCbzzGuPq8lll2xeyZU0N1E4Sz3MVdSPx1tJREuRvlQjrwNg==
+
"@swc/core-win32-ia32-msvc@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.76.tgz#a0dc94357d72eca6572522ed1202b6476222c249"
integrity sha512-5CqwAykpGBJ3PqGLOlWGLGIPpBAG1IwWVDUfro3hhjQ7XJxV5Z1aQf5V5OJ90HJVtrEAVx2xx59UV/Dh081LOg==
+"@swc/core-win32-x64-msvc@1.3.102":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.102.tgz#477da542e6b01b3eb64476ec9a78f497a9b87807"
+ integrity sha512-E/jfSD7sShllxBwwgDPeXp1UxvIqehj/ShSUqq1pjR/IDRXngcRSXKJK92mJkNFY7suH6BcCWwzrxZgkO7sWmw==
+
"@swc/core-win32-x64-msvc@1.3.76":
version "1.3.76"
resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.76.tgz#eea647407895a5a410a459b2abf8572adb147927"
@@ -5054,6 +5291,35 @@
"@swc/core-win32-ia32-msvc" "1.3.76"
"@swc/core-win32-x64-msvc" "1.3.76"
+"@swc/core@^1.3.96":
+ version "1.3.102"
+ resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.102.tgz#870874bcf1d78cd7bb1bc66b31bf2b1a87c1a667"
+ integrity sha512-OAjNLY/f6QWKSDzaM3bk31A+OYHu6cPa9P/rFIx8X5d24tHXUpRiiq6/PYI6SQRjUPlB72GjsjoEU8F+ALadHg==
+ dependencies:
+ "@swc/counter" "^0.1.1"
+ "@swc/types" "^0.1.5"
+ optionalDependencies:
+ "@swc/core-darwin-arm64" "1.3.102"
+ "@swc/core-darwin-x64" "1.3.102"
+ "@swc/core-linux-arm-gnueabihf" "1.3.102"
+ "@swc/core-linux-arm64-gnu" "1.3.102"
+ "@swc/core-linux-arm64-musl" "1.3.102"
+ "@swc/core-linux-x64-gnu" "1.3.102"
+ "@swc/core-linux-x64-musl" "1.3.102"
+ "@swc/core-win32-arm64-msvc" "1.3.102"
+ "@swc/core-win32-ia32-msvc" "1.3.102"
+ "@swc/core-win32-x64-msvc" "1.3.102"
+
+"@swc/counter@^0.1.1":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e"
+ integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==
+
+"@swc/types@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a"
+ integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==
+
"@tensorflow-models/body-segmentation@^1.0.1":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@tensorflow-models/body-segmentation/-/body-segmentation-1.0.2.tgz#3892f87b05e29ead61f66eaefdda113cc19a31b0"
@@ -5200,21 +5466,6 @@
"@types/connect" "*"
"@types/node" "*"
-"@types/bonjour@^3.5.9":
- version "3.5.10"
- resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.10.tgz#0f6aadfe00ea414edc86f5d106357cda9701e275"
- integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==
- dependencies:
- "@types/node" "*"
-
-"@types/connect-history-api-fallback@^1.3.5":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#9fd20b3974bdc2bcd4ac6567e2e0f6885cb2cf41"
- integrity sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==
- dependencies:
- "@types/express-serve-static-core" "*"
- "@types/node" "*"
-
"@types/connect@*":
version "3.4.35"
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
@@ -5229,11 +5480,6 @@
dependencies:
"@types/node" "*"
-"@types/css-font-loading-module@0.0.7":
- version "0.0.7"
- resolved "https://registry.yarnpkg.com/@types/css-font-loading-module/-/css-font-loading-module-0.0.7.tgz#2f98ede46acc0975de85c0b7b0ebe06041d24601"
- integrity sha512-nl09VhutdjINdWyXxHWN/w9zlNCfr60JUqJbd24YXUuCwgeL0TpFSdElCwb6cxfB6ybE19Gjj4g0jsgkXxKv1Q==
-
"@types/detect-port@^1.3.0":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.3.tgz#124c5d4c283f48a21f80826bcf39433b3e64aa81"
@@ -5272,7 +5518,7 @@
"@types/eslint" "*"
"@types/estree" "*"
-"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1":
+"@types/eslint@*":
version "8.44.2"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a"
integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==
@@ -5290,12 +5536,26 @@
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+"@types/estree@1.0.5":
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+ integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
+
"@types/estree@^0.0.51":
version "0.0.51"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
-"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33":
+"@types/express-serve-static-core@4.17.28":
+ 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==
+ dependencies:
+ "@types/node" "*"
+ "@types/qs" "*"
+ "@types/range-parser" "*"
+
+"@types/express-serve-static-core@^4.17.33":
version "4.17.35"
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f"
integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==
@@ -5305,7 +5565,7 @@
"@types/range-parser" "*"
"@types/send" "*"
-"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.7.0":
+"@types/express@^4.7.0":
version "4.17.17"
resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4"
integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==
@@ -5337,13 +5597,6 @@
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65"
integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==
-"@types/http-proxy@^1.17.8":
- version "1.17.11"
- resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293"
- integrity sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==
- dependencies:
- "@types/node" "*"
-
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@@ -5501,6 +5754,13 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
+"@types/react-dom@^18.2.17":
+ version "18.2.18"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.18.tgz#16946e6cd43971256d874bc3d0a72074bb8571dd"
+ integrity sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==
+ dependencies:
+ "@types/react" "*"
+
"@types/react-window@^1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.5.tgz#285fcc5cea703eef78d90f499e1457e9b5c02fc1"
@@ -5517,6 +5777,15 @@
"@types/scheduler" "*"
csstype "^3.0.2"
+"@types/react@^18.2.43":
+ version "18.2.47"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.47.tgz#85074b27ab563df01fbc3f68dc64bf7050b0af40"
+ integrity sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
"@types/resolve@1.17.1":
version "1.17.1"
resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
@@ -5524,11 +5793,6 @@
dependencies:
"@types/node" "*"
-"@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.3"
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
@@ -5557,14 +5821,7 @@
"@types/mime" "^1"
"@types/node" "*"
-"@types/serve-index@^1.9.1":
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.1.tgz#1b5e85370a192c01ec6cec4735cf2917337a6278"
- integrity sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==
- dependencies:
- "@types/express" "*"
-
-"@types/serve-static@*", "@types/serve-static@^1.13.10":
+"@types/serve-static@*":
version "1.15.2"
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.2.tgz#3e5419ecd1e40e7405d34093f10befb43f63381a"
integrity sha512-J2LqtvFYCzaj8pVYKw8klQXrLLk7TBZmQ4ShlcdkELFKGwGMfevMLneMMRkMgZxotOD9wg497LpC7O8PcvAmfw==
@@ -5583,13 +5840,6 @@
resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef"
integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==
-"@types/sockjs@^0.3.33":
- version "0.3.33"
- resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.33.tgz#570d3a0b99ac995360e3136fd6045113b1bd236f"
- integrity sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==
- dependencies:
- "@types/node" "*"
-
"@types/stack-utils@^2.0.0":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c"
@@ -5620,13 +5870,6 @@
resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6"
integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ==
-"@types/ws@^8.5.5":
- version "8.5.5"
- resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.5.tgz#af587964aa06682702ee6dcbc7be41a80e4b28eb"
- integrity sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==
- dependencies:
- "@types/node" "*"
-
"@types/yargs-parser@*":
version "21.0.0"
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
@@ -5751,6 +5994,18 @@
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
+"@ungap/structured-clone@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
+ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+
+"@vitejs/plugin-react-swc@^3.5.0":
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.5.0.tgz#1fadff5148003e8091168c431e44c850f9a39e74"
+ integrity sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==
+ dependencies:
+ "@swc/core" "^1.3.96"
+
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@@ -5939,33 +6194,11 @@
resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.16.tgz#1f05497b95b7c013facf7035c8e21784645f5cc4"
integrity sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A==
-"@webpack-cli/configtest@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5"
- integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==
-
-"@webpack-cli/info@^1.5.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1"
- integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==
- dependencies:
- envinfo "^7.7.3"
-
-"@webpack-cli/serve@^1.7.0":
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1"
- integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==
-
"@xobotyi/scrollbar-width@^1.9.5":
version "1.9.5"
resolved "https://registry.yarnpkg.com/@xobotyi/scrollbar-width/-/scrollbar-width-1.9.5.tgz#80224a6919272f405b87913ca13b92929bdf3c4d"
integrity sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==
-"@xstate/fsm@^1.4.0":
- version "1.6.5"
- resolved "https://registry.yarnpkg.com/@xstate/fsm/-/fsm-1.6.5.tgz#f599e301997ad7e3c572a0b1ff0696898081bea5"
- integrity sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw==
-
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
@@ -6037,7 +6270,7 @@ abbrev@1, abbrev@^1.0.0:
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
+accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
@@ -6068,7 +6301,7 @@ acorn-walk@^7.1.1, acorn-walk@^7.2.0:
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-acorn-walk@^8.0.0, acorn-walk@^8.1.1:
+acorn-walk@^8.1.1:
version "8.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
@@ -6078,7 +6311,7 @@ acorn@^7.1.1, acorn@^7.4.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.0.4, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
+acorn@^8.2.4, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
version "8.10.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
@@ -6325,11 +6558,6 @@ array-flatten@1.1.1:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-array-flatten@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
- integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
-
array-ify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
@@ -6351,11 +6579,6 @@ 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-union@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975"
- integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==
-
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
@@ -6415,6 +6638,19 @@ arraybuffer.prototype.slice@^1.0.1:
is-array-buffer "^3.0.2"
is-shared-array-buffer "^1.0.2"
+arraybuffer.prototype.slice@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12"
+ integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
+ is-array-buffer "^3.0.2"
+ is-shared-array-buffer "^1.0.2"
+
arrify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -6498,6 +6734,13 @@ async@^3.2.0, async@^3.2.3:
resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
+asynciterator.prototype@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62"
+ integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==
+ dependencies:
+ has-symbols "^1.0.3"
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -6513,7 +6756,7 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^10.2.5, autoprefixer@^10.4.2:
+autoprefixer@^10.2.5:
version "10.4.14"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
@@ -6545,13 +6788,6 @@ axe-core@^4.2.0, axe-core@^4.6.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.2.tgz#040a7342b20765cb18bb50b628394c21bccc17a0"
integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==
-axios@^0.21.1:
- version "0.21.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
- integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
- dependencies:
- follow-redirects "^1.14.0"
-
axios@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.4.0.tgz#38a7bf1224cd308de271146038b551d725f0be1f"
@@ -6741,11 +6977,6 @@ balanced-match@^1.0.0:
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-base64-arraybuffer@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc"
- integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==
-
base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
@@ -6764,11 +6995,6 @@ base@^0.11.1:
mixin-deep "^1.2.0"
pascalcase "^0.1.1"
-batch@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
- integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==
-
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
@@ -6852,16 +7078,6 @@ body-parser@1.20.1:
type-is "~1.6.18"
unpipe "1.0.0"
-bonjour-service@^1.0.11:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135"
- integrity sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==
- dependencies:
- array-flatten "^2.1.2"
- dns-equal "^1.0.0"
- fast-deep-equal "^3.1.3"
- multicast-dns "^7.2.5"
-
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
@@ -6929,7 +7145,7 @@ browserify-zlib@^0.1.4:
dependencies:
pako "~0.2.0"
-browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9:
+browserslist@^4.14.5, browserslist@^4.21.5, browserslist@^4.21.9:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
@@ -7096,6 +7312,15 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
+call-bind@^1.0.4, call-bind@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
+ integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
+ dependencies:
+ function-bind "^1.1.2"
+ get-intrinsic "^1.2.1"
+ set-function-length "^1.1.1"
+
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -7128,17 +7353,7 @@ camelcase@^6.0.0, camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-api@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
- integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
- dependencies:
- browserslist "^4.0.0"
- caniuse-lite "^1.0.0"
- lodash.memoize "^4.1.2"
- lodash.uniq "^4.5.0"
-
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001517:
+caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001517:
version "1.0.30001520"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001520.tgz#62e2b7a1c7b35269594cf296a80bdf8cb9565006"
integrity sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==
@@ -7419,12 +7634,7 @@ color-support@^1.1.3:
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-colord@^2.9.1:
- version "2.9.3"
- resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
- integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
-
-colorette@^2.0.10, colorette@^2.0.14, colorette@^2.0.16, colorette@^2.0.19:
+colorette@^2.0.10, colorette@^2.0.16, colorette@^2.0.19:
version "2.0.20"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
@@ -7459,7 +7669,7 @@ commander@^6.2.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
-commander@^7.0.0, commander@^7.2.0:
+commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
@@ -7579,11 +7789,6 @@ confusing-browser-globals@^1.0.11:
resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
-connect-history-api-fallback@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
- integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
-
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"
@@ -7736,18 +7941,6 @@ copy-to-clipboard@^3.3.1:
dependencies:
toggle-selection "^1.0.6"
-copy-webpack-plugin@^10.2.1:
- version "10.2.4"
- resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe"
- integrity sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==
- dependencies:
- fast-glob "^3.2.7"
- glob-parent "^6.0.1"
- globby "^12.0.2"
- normalize-path "^3.0.0"
- schema-utils "^4.0.0"
- serialize-javascript "^6.0.0"
-
core-js-compat@^3.31.0:
version "3.32.0"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90"
@@ -7811,11 +8004,6 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-css-declaration-sorter@^6.3.1:
- version "6.4.1"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71"
- integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==
-
css-in-js-utils@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-3.1.0.tgz#640ae6a33646d401fc720c54fc61c42cd76ae2bb"
@@ -7823,7 +8011,7 @@ css-in-js-utils@^3.1.0:
dependencies:
hyphenate-style-name "^1.0.3"
-css-loader@^6.5.1, css-loader@^6.7.1:
+css-loader@^6.7.1:
version "6.8.1"
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88"
integrity sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==
@@ -7871,55 +8059,6 @@ cssfontparser@^1.2.1:
resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3"
integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==
-cssnano-preset-default@^5.2.14:
- version "5.2.14"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8"
- integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==
- dependencies:
- css-declaration-sorter "^6.3.1"
- cssnano-utils "^3.1.0"
- postcss-calc "^8.2.3"
- postcss-colormin "^5.3.1"
- postcss-convert-values "^5.1.3"
- postcss-discard-comments "^5.1.2"
- postcss-discard-duplicates "^5.1.0"
- postcss-discard-empty "^5.1.1"
- postcss-discard-overridden "^5.1.0"
- postcss-merge-longhand "^5.1.7"
- postcss-merge-rules "^5.1.4"
- postcss-minify-font-values "^5.1.0"
- postcss-minify-gradients "^5.1.1"
- postcss-minify-params "^5.1.4"
- postcss-minify-selectors "^5.2.1"
- postcss-normalize-charset "^5.1.0"
- postcss-normalize-display-values "^5.1.0"
- postcss-normalize-positions "^5.1.1"
- postcss-normalize-repeat-style "^5.1.1"
- postcss-normalize-string "^5.1.0"
- postcss-normalize-timing-functions "^5.1.0"
- postcss-normalize-unicode "^5.1.1"
- postcss-normalize-url "^5.1.0"
- postcss-normalize-whitespace "^5.1.1"
- postcss-ordered-values "^5.1.3"
- postcss-reduce-initial "^5.1.2"
- postcss-reduce-transforms "^5.1.0"
- postcss-svgo "^5.1.0"
- postcss-unique-selectors "^5.1.1"
-
-cssnano-utils@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
- integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
-
-cssnano@^5.0.15:
- version "5.1.15"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf"
- integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==
- dependencies:
- cssnano-preset-default "^5.2.14"
- lilconfig "^2.0.3"
- yaml "^1.10.2"
-
csso@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
@@ -8149,13 +8288,6 @@ default-browser-id@3.0.0:
bplist-parser "^0.2.0"
untildify "^4.0.0"
-default-gateway@^6.0.3:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
- integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
- dependencies:
- execa "^5.0.0"
-
defaults@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
@@ -8163,6 +8295,15 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
+define-data-property@^1.0.1, define-data-property@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
+ integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
+ dependencies:
+ get-intrinsic "^1.2.1"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+
define-lazy-prop@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
@@ -8176,6 +8317,15 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0:
has-property-descriptors "^1.0.0"
object-keys "^1.1.1"
+define-properties@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
+ integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
+ dependencies:
+ define-data-property "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ object-keys "^1.1.1"
+
define-property@^0.2.5:
version "0.2.5"
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -8232,11 +8382,6 @@ depd@2.0.0:
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
-depd@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
- integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
-
deprecation@^2.0.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
@@ -8272,11 +8417,6 @@ detect-node-es@^1.1.0:
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
-detect-node@^2.0.4:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
- integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
-
detect-package-manager@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8"
@@ -8322,18 +8462,6 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-dns-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
- integrity sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==
-
-dns-packet@^5.2.2:
- version "5.6.0"
- resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.0.tgz#2202c947845c7a63c23ece58f2f70ff6ab4c2f7d"
- integrity sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==
- dependencies:
- "@leichtgewicht/ip-codec" "^2.0.1"
-
doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
@@ -8439,7 +8567,7 @@ dotenv@~10.0.0:
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
-duplexer@^0.1.1, duplexer@^0.1.2:
+duplexer@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
@@ -8656,6 +8784,51 @@ es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2:
unbox-primitive "^1.0.2"
which-typed-array "^1.1.10"
+es-abstract@^1.22.1:
+ version "1.22.3"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32"
+ integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==
+ dependencies:
+ array-buffer-byte-length "^1.0.0"
+ arraybuffer.prototype.slice "^1.0.2"
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.5"
+ es-set-tostringtag "^2.0.1"
+ es-to-primitive "^1.2.1"
+ function.prototype.name "^1.1.6"
+ get-intrinsic "^1.2.2"
+ get-symbol-description "^1.0.0"
+ globalthis "^1.0.3"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+ internal-slot "^1.0.5"
+ is-array-buffer "^3.0.2"
+ 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.12"
+ is-weakref "^1.0.2"
+ object-inspect "^1.13.1"
+ object-keys "^1.1.1"
+ object.assign "^4.1.4"
+ regexp.prototype.flags "^1.5.1"
+ safe-array-concat "^1.0.1"
+ safe-regex-test "^1.0.0"
+ string.prototype.trim "^1.2.8"
+ string.prototype.trimend "^1.0.7"
+ string.prototype.trimstart "^1.0.7"
+ typed-array-buffer "^1.0.0"
+ typed-array-byte-length "^1.0.0"
+ typed-array-byte-offset "^1.0.0"
+ typed-array-length "^1.0.4"
+ unbox-primitive "^1.0.2"
+ which-typed-array "^1.1.13"
+
es-get-iterator@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
@@ -8671,6 +8844,26 @@ es-get-iterator@^1.1.3:
isarray "^2.0.5"
stop-iteration-iterator "^1.0.0"
+es-iterator-helpers@^1.0.12:
+ version "1.0.15"
+ resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40"
+ integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==
+ dependencies:
+ asynciterator.prototype "^1.0.0"
+ call-bind "^1.0.2"
+ define-properties "^1.2.1"
+ es-abstract "^1.22.1"
+ es-set-tostringtag "^2.0.1"
+ function-bind "^1.1.1"
+ get-intrinsic "^1.2.1"
+ globalthis "^1.0.3"
+ has-property-descriptors "^1.0.0"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ internal-slot "^1.0.5"
+ iterator.prototype "^1.1.2"
+ safe-array-concat "^1.0.1"
+
es-module-lexer@^0.9.3:
version "0.9.3"
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
@@ -8711,13 +8904,13 @@ es6-object-assign@^1.1.0:
resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==
-esbuild-loader@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-3.2.0.tgz#78f11e1a2fd651758de490860acebda1c7e10131"
- integrity sha512-lnIdRMQpk50alCa0QoW0ozc0D3rjJXl02mtMsk9INIcW25RPZhDja332bu85ixwVNbhQ7VfBRcQyZ/qza8mWiA==
+esbuild-loader@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-4.0.2.tgz#5452fb40919d9a0959655522cd2732dc4c383e13"
+ integrity sha512-kj88m0yrtTEJDeUEF+3TZsq7t9VPzQQj7UmXAzUbIaipoYSrd0UxKAcg4l9CBgP8uVoploiw+nKr8DIv6Y9gXw==
dependencies:
esbuild "^0.19.0"
- get-tsconfig "^4.6.2"
+ get-tsconfig "^4.7.0"
loader-utils "^2.0.4"
webpack-sources "^1.4.3"
@@ -8776,33 +8969,34 @@ esbuild@^0.18.0, esbuild@^0.18.13:
"@esbuild/win32-ia32" "0.18.20"
"@esbuild/win32-x64" "0.18.20"
-esbuild@^0.19.0:
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.1.tgz#eda3e5d2d0c2e89059464ac895bdf20bea2c26b4"
- integrity sha512-IknHHwV4B/H4imOAu+416fuCvPfRjdncoyGi7eunhSvHuHkdNs50sLWan2LEG2Mym07TuW6gJUIyRS9G1miHEg==
+esbuild@^0.19.0, esbuild@^0.19.3:
+ version "0.19.11"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96"
+ integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==
optionalDependencies:
- "@esbuild/android-arm" "0.19.1"
- "@esbuild/android-arm64" "0.19.1"
- "@esbuild/android-x64" "0.19.1"
- "@esbuild/darwin-arm64" "0.19.1"
- "@esbuild/darwin-x64" "0.19.1"
- "@esbuild/freebsd-arm64" "0.19.1"
- "@esbuild/freebsd-x64" "0.19.1"
- "@esbuild/linux-arm" "0.19.1"
- "@esbuild/linux-arm64" "0.19.1"
- "@esbuild/linux-ia32" "0.19.1"
- "@esbuild/linux-loong64" "0.19.1"
- "@esbuild/linux-mips64el" "0.19.1"
- "@esbuild/linux-ppc64" "0.19.1"
- "@esbuild/linux-riscv64" "0.19.1"
- "@esbuild/linux-s390x" "0.19.1"
- "@esbuild/linux-x64" "0.19.1"
- "@esbuild/netbsd-x64" "0.19.1"
- "@esbuild/openbsd-x64" "0.19.1"
- "@esbuild/sunos-x64" "0.19.1"
- "@esbuild/win32-arm64" "0.19.1"
- "@esbuild/win32-ia32" "0.19.1"
- "@esbuild/win32-x64" "0.19.1"
+ "@esbuild/aix-ppc64" "0.19.11"
+ "@esbuild/android-arm" "0.19.11"
+ "@esbuild/android-arm64" "0.19.11"
+ "@esbuild/android-x64" "0.19.11"
+ "@esbuild/darwin-arm64" "0.19.11"
+ "@esbuild/darwin-x64" "0.19.11"
+ "@esbuild/freebsd-arm64" "0.19.11"
+ "@esbuild/freebsd-x64" "0.19.11"
+ "@esbuild/linux-arm" "0.19.11"
+ "@esbuild/linux-arm64" "0.19.11"
+ "@esbuild/linux-ia32" "0.19.11"
+ "@esbuild/linux-loong64" "0.19.11"
+ "@esbuild/linux-mips64el" "0.19.11"
+ "@esbuild/linux-ppc64" "0.19.11"
+ "@esbuild/linux-riscv64" "0.19.11"
+ "@esbuild/linux-s390x" "0.19.11"
+ "@esbuild/linux-x64" "0.19.11"
+ "@esbuild/netbsd-x64" "0.19.11"
+ "@esbuild/openbsd-x64" "0.19.11"
+ "@esbuild/sunos-x64" "0.19.11"
+ "@esbuild/win32-arm64" "0.19.11"
+ "@esbuild/win32-ia32" "0.19.11"
+ "@esbuild/win32-x64" "0.19.11"
escalade@^3.1.1:
version "3.1.1"
@@ -8944,11 +9138,16 @@ eslint-plugin-prettier@^4.0.0:
dependencies:
prettier-linter-helpers "^1.0.0"
-eslint-plugin-react-hooks@^4.3.0:
+eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0:
version "4.6.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-refresh@^0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz#6b9b307bad3feba2244ef64a1a15485ac70a2d0f"
+ integrity sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==
+
eslint-plugin-react@^7.27.1:
version "7.33.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab"
@@ -8970,6 +9169,28 @@ eslint-plugin-react@^7.27.1:
semver "^6.3.1"
string.prototype.matchall "^4.0.8"
+eslint-plugin-react@^7.33.2:
+ version "7.33.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608"
+ integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==
+ dependencies:
+ array-includes "^3.1.6"
+ array.prototype.flatmap "^1.3.1"
+ array.prototype.tosorted "^1.1.1"
+ doctrine "^2.1.0"
+ es-iterator-helpers "^1.0.12"
+ estraverse "^5.3.0"
+ jsx-ast-utils "^2.4.1 || ^3.0.0"
+ minimatch "^3.1.2"
+ 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.4"
+ semver "^6.3.1"
+ string.prototype.matchall "^4.0.8"
+
eslint-plugin-simple-import-sort@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz#9d9a2372b0606e999ea841b10458a370a6ccc160"
@@ -9008,29 +9229,19 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint-webpack-plugin@^3.1.1:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c"
- integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==
- dependencies:
- "@types/eslint" "^7.29.0 || ^8.4.1"
- jest-worker "^28.0.2"
- micromatch "^4.0.5"
- normalize-path "^3.0.0"
- schema-utils "^4.0.0"
-
-eslint@^8.9.0:
- version "8.47.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806"
- integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==
+eslint@^8.55.0:
+ version "8.56.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15"
+ integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.6.1"
- "@eslint/eslintrc" "^2.1.2"
- "@eslint/js" "^8.47.0"
- "@humanwhocodes/config-array" "^0.11.10"
+ "@eslint/eslintrc" "^2.1.4"
+ "@eslint/js" "8.56.0"
+ "@humanwhocodes/config-array" "^0.11.13"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
+ "@ungap/structured-clone" "^1.2.0"
ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.2"
@@ -9062,10 +9273,53 @@ eslint@^8.9.0:
strip-ansi "^6.0.1"
text-table "^0.2.0"
-espree@^9.6.0, espree@^9.6.1:
- version "9.6.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
- integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+eslint@^8.9.0:
+ version "8.47.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.47.0.tgz#c95f9b935463fb4fad7005e626c7621052e90806"
+ integrity sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.6.1"
+ "@eslint/eslintrc" "^2.1.2"
+ "@eslint/js" "^8.47.0"
+ "@humanwhocodes/config-array" "^0.11.10"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
+ ajv "^6.12.4"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
+ debug "^4.3.2"
+ doctrine "^3.0.0"
+ escape-string-regexp "^4.0.0"
+ eslint-scope "^7.2.2"
+ eslint-visitor-keys "^3.4.3"
+ espree "^9.6.1"
+ esquery "^1.4.2"
+ esutils "^2.0.2"
+ fast-deep-equal "^3.1.3"
+ file-entry-cache "^6.0.1"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ graphemer "^1.4.0"
+ ignore "^5.2.0"
+ imurmurhash "^0.1.4"
+ is-glob "^4.0.0"
+ is-path-inside "^3.0.3"
+ js-yaml "^4.1.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.4.1"
+ lodash.merge "^4.6.2"
+ minimatch "^3.1.2"
+ natural-compare "^1.4.0"
+ optionator "^0.9.3"
+ strip-ansi "^6.0.1"
+ text-table "^0.2.0"
+
+espree@^9.6.0, espree@^9.6.1:
+ version "9.6.1"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
+ integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
acorn "^8.9.0"
acorn-jsx "^5.3.2"
@@ -9129,12 +9383,12 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-eventemitter2@^6.4.3, eventemitter2@^6.4.9:
+eventemitter2@^6.4.3, eventemitter2@^6.4.7, eventemitter2@^6.4.9:
version "6.4.9"
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125"
integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==
-eventemitter3@^4.0.0, eventemitter3@^4.0.4:
+eventemitter3@^4.0.4:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
@@ -9380,7 +9634,7 @@ fast-glob@3.2.7:
merge2 "^1.3.0"
micromatch "^4.0.4"
-fast-glob@^3.2.7, fast-glob@^3.2.9:
+fast-glob@^3.2.9:
version "3.3.1"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
@@ -9424,11 +9678,6 @@ fast-unique-numbers@^8.0.7:
"@babel/runtime" "^7.22.6"
tslib "^2.6.1"
-fastest-levenshtein@^1.0.12:
- version "1.0.16"
- resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
- integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
-
fastest-stable-stringify@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/fastest-stable-stringify/-/fastest-stable-stringify-2.0.2.tgz#3757a6774f6ec8de40c4e86ec28ea02417214c76"
@@ -9441,13 +9690,6 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
-faye-websocket@^0.11.3:
- version "0.11.4"
- resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da"
- integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==
- dependencies:
- websocket-driver ">=0.5.1"
-
fb-watchman@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
@@ -9467,11 +9709,6 @@ fetch-retry@^5.0.2:
resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.6.tgz#17d0bc90423405b7a88b74355bf364acd2a7fa56"
integrity sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==
-fflate@^0.4.4:
- version "0.4.8"
- resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae"
- integrity sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==
-
figures@3.2.0, figures@^3.0.0, figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
@@ -9633,16 +9870,11 @@ flow-parser@0.*:
resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.214.0.tgz#455efc841ec015c62f6dec022cf6c61480f231a2"
integrity sha512-RW1Dh6BuT14DA7+gtNRKzgzvG3GTPdrceHCi4ddZ9VFGQ9HtO5L8wzxMGsor7XtInIrbWZZCSak0oxnBF7tApw==
-follow-redirects@^1.0.0, follow-redirects@^1.15.0:
+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==
-follow-redirects@^1.14.0:
- version "1.15.3"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
- integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==
-
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
@@ -9810,11 +10042,21 @@ fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+fsevents@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+function-bind@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
+ integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
+
function.prototype.name@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
@@ -9825,6 +10067,16 @@ function.prototype.name@^1.1.5:
es-abstract "^1.19.0"
functions-have-names "^1.2.2"
+function.prototype.name@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
+ integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ functions-have-names "^1.2.3"
+
functions-have-names@^1.2.2, functions-have-names@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
@@ -9871,6 +10123,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@
has-proto "^1.0.1"
has-symbols "^1.0.3"
+get-intrinsic@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
+ integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
+ dependencies:
+ function-bind "^1.1.2"
+ has-proto "^1.0.1"
+ has-symbols "^1.0.3"
+ hasown "^2.0.0"
+
get-nonce@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3"
@@ -9928,10 +10190,10 @@ get-symbol-description@^1.0.0:
call-bind "^1.0.2"
get-intrinsic "^1.1.1"
-get-tsconfig@^4.6.2:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34"
- integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==
+get-tsconfig@^4.7.0:
+ version "4.7.2"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce"
+ integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==
dependencies:
resolve-pkg-maps "^1.0.0"
@@ -10035,7 +10297,7 @@ glob-parent@^5.1.1, 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==
@@ -10156,18 +10418,6 @@ globby@^11.0.1, globby@^11.0.2, globby@^11.0.4, globby@^11.1.0:
merge2 "^1.4.1"
slash "^3.0.0"
-globby@^12.0.2:
- version "12.2.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-12.2.0.tgz#2ab8046b4fba4ff6eede835b29f678f90e3d3c22"
- integrity sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==
- dependencies:
- array-union "^3.0.1"
- dir-glob "^3.0.1"
- fast-glob "^3.2.7"
- ignore "^5.1.9"
- merge2 "^1.4.1"
- slash "^4.0.0"
-
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@@ -10202,18 +10452,6 @@ gunzip-maybe@^1.4.2:
pumpify "^1.3.3"
through2 "^2.0.3"
-gzip-size@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
- integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
- dependencies:
- duplexer "^0.1.2"
-
-handle-thing@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
- integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
-
handlebars@^4.7.7:
version "4.7.8"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9"
@@ -10313,6 +10551,13 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
+hasown@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
+ integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+ dependencies:
+ function-bind "^1.1.2"
+
he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -10356,16 +10601,6 @@ hosted-git-info@^5.0.0:
dependencies:
lru-cache "^7.5.1"
-hpack.js@^2.1.6:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
- integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==
- dependencies:
- inherits "^2.0.1"
- obuf "^1.0.0"
- readable-stream "^2.0.1"
- wbuf "^1.1.0"
-
html-encoding-sniffer@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
@@ -10373,7 +10608,7 @@ html-encoding-sniffer@^2.0.1:
dependencies:
whatwg-encoding "^1.0.5"
-html-entities@^2.1.0, html-entities@^2.3.2:
+html-entities@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.4.0.tgz#edd0cee70402584c8c76cc2c0556db09d1f45061"
integrity sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==
@@ -10427,11 +10662,6 @@ http-cache-semantics@^4.1.0, http-cache-semantics@^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-deceiver@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
- integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
-
http-errors@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
@@ -10443,21 +10673,6 @@ http-errors@2.0.0:
statuses "2.0.1"
toidentifier "1.0.1"
-http-errors@~1.6.2:
- version "1.6.3"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
- integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
- dependencies:
- depd "~1.1.2"
- inherits "2.0.3"
- setprototypeof "1.1.0"
- statuses ">= 1.4.0 < 2"
-
-http-parser-js@>=0.5.1:
- version "0.5.8"
- resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3"
- integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
-
http-proxy-agent@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
@@ -10476,26 +10691,6 @@ http-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
-http-proxy-middleware@^2.0.3:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
- integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
- dependencies:
- "@types/http-proxy" "^1.17.8"
- http-proxy "^1.18.1"
- is-glob "^4.0.1"
- is-plain-obj "^3.0.0"
- micromatch "^4.0.2"
-
-http-proxy@^1.18.1:
- version "1.18.1"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
- integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
- dependencies:
- eventemitter3 "^4.0.0"
- follow-redirects "^1.0.0"
- requires-port "^1.0.0"
-
http-signature@~1.3.6:
version "1.3.6"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
@@ -10584,7 +10779,7 @@ ignore-walk@^5.0.1:
dependencies:
minimatch "^5.0.1"
-ignore@^5.0.4, ignore@^5.1.9, ignore@^5.2.0:
+ignore@^5.0.4, ignore@^5.2.0:
version "5.2.4"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
@@ -10648,11 +10843,6 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-inherits@2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
-
ini@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
@@ -10714,11 +10904,6 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5:
has "^1.0.3"
side-channel "^1.0.4"
-interpret@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
- integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
-
invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
@@ -10736,11 +10921,6 @@ ipaddr.js@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==
-ipaddr.js@^2.0.1:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f"
- integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==
-
is-absolute-url@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
@@ -10782,6 +10962,13 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+is-async-function@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646"
+ integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
is-bigint@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
@@ -10908,6 +11095,13 @@ is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
+is-finalizationregistry@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6"
+ integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==
+ dependencies:
+ call-bind "^1.0.2"
+
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
@@ -10923,7 +11117,7 @@ is-generator-fn@^2.0.0:
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-is-generator-function@^1.0.7:
+is-generator-function@^1.0.10, is-generator-function@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
@@ -11027,11 +11221,6 @@ is-plain-obj@^2.0.0:
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
-is-plain-obj@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
- integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
-
is-plain-object@5.0.0, is-plain-object@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344"
@@ -11114,7 +11303,7 @@ is-text-path@^1.0.1:
dependencies:
text-extensions "^1.0.0"
-is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
+is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed-array@^1.1.9:
version "1.1.12"
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
@@ -11257,6 +11446,17 @@ istanbul-reports@^3.0.2, istanbul-reports@^3.1.4:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
+iterator.prototype@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0"
+ integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==
+ dependencies:
+ define-properties "^1.2.1"
+ get-intrinsic "^1.2.1"
+ has-symbols "^1.0.3"
+ reflect.getprototypeof "^1.0.4"
+ set-function-name "^2.0.1"
+
jackspeak@^2.0.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.3.tgz#ac63c57c18d254dc78a1f4ecd1cdeb4daeb6e616"
@@ -11726,15 +11926,6 @@ jest-worker@^27.4.5:
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest-worker@^28.0.2:
- version "28.1.3"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98"
- integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==
- dependencies:
- "@types/node" "*"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
jest-worker@^29.6.2:
version "29.6.2"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44"
@@ -11769,11 +11960,6 @@ js-cookie@^2.2.1:
resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8"
integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==
-js-cookies@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/js-cookies/-/js-cookies-1.0.4.tgz#d46e576c420ff6d5542c0f52b6d4ef7d637e754e"
- integrity sha512-cO1SHDH7zJsi8FihHmDtcWx90mWmrfGOrcLKPeaEX6tLyuTK2wnzgdmNa34Q6rNAd6VhQUgjDt5Eyl90VI/Fpg==
-
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -12022,14 +12208,6 @@ language-tags@=1.0.5:
dependencies:
language-subtag-registry "~0.3.2"
-launch-editor@^2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.6.0.tgz#4c0c1a6ac126c572bd9ff9a30da1d2cae66defd7"
- integrity sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==
- dependencies:
- picocolors "^1.0.0"
- shell-quote "^1.7.3"
-
lazy-ass@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
@@ -12290,11 +12468,6 @@ lodash.ismatch@^4.4.0:
resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==
-lodash.memoize@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
- integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
-
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
@@ -12305,11 +12478,6 @@ lodash.once@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
-lodash.uniq@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
- integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
-
lodash@4.x, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
@@ -12536,7 +12704,7 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
-memfs@^3.4.1, memfs@^3.4.12, memfs@^3.4.3:
+memfs@^3.4.1, memfs@^3.4.12:
version "3.6.0"
resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6"
integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==
@@ -12631,7 +12799,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -12658,23 +12826,11 @@ min-indent@^1.0.0:
resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
-mini-css-extract-plugin@^2.5.2:
- version "2.7.6"
- resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz#282a3d38863fddcd2e0c220aaed5b90bc156564d"
- integrity sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==
- dependencies:
- schema-utils "^4.0.0"
-
mini-svg-data-uri@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939"
integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==
-minimalistic-assert@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
minimatch@3.0.5:
version "3.0.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3"
@@ -12856,11 +13012,6 @@ mri@^1.2.0:
resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
-mrmime@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
- integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
-
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -12881,14 +13032,6 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-multicast-dns@^7.2.5:
- version "7.2.5"
- resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced"
- integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==
- dependencies:
- dns-packet "^5.2.2"
- thunky "^1.0.2"
-
multimatch@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6"
@@ -12924,6 +13067,11 @@ nanoid@^3.3.6:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
+nanoid@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
nanomatch@^1.2.9:
version "1.2.13"
resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
@@ -13012,11 +13160,6 @@ node-fetch@^2.0.0, node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@~2.6.1:
dependencies:
whatwg-url "^5.0.0"
-node-forge@^1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
- integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
-
node-gyp-build@^4.3.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055"
@@ -13122,11 +13265,6 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
-normalize-url@^6.0.1:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
- integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
-
npm-bundled@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
@@ -13357,6 +13495,11 @@ object-inspect@^1.12.2, object-inspect@^1.12.3, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+object-inspect@^1.13.1:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
+ integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
+
object-is@^1.0.1, object-is@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
@@ -13444,11 +13587,6 @@ objectorarray@^1.0.5:
resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5"
integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==
-obuf@^1.0.0, obuf@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
- integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-
on-finished@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
@@ -13475,7 +13613,7 @@ onetime@^5.1.0, onetime@^5.1.2:
dependencies:
mimic-fn "^2.1.0"
-open@^8.0.4, open@^8.0.9, open@^8.4.0:
+open@^8.0.4, open@^8.4.0:
version "8.4.2"
resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
@@ -13484,11 +13622,6 @@ open@^8.0.4, open@^8.0.9, open@^8.4.0:
is-docker "^2.1.1"
is-wsl "^2.2.0"
-opener@^1.5.2:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
- integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
-
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
@@ -13634,14 +13767,6 @@ p-reduce@^2.0.0, p-reduce@^2.1.0:
resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a"
integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==
-p-retry@^4.5.0:
- 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"
- retry "^0.13.1"
-
p-timeout@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
@@ -13966,52 +14091,6 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
-postcss-calc@^8.2.3:
- version "8.2.4"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
- integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
- dependencies:
- postcss-selector-parser "^6.0.9"
- postcss-value-parser "^4.2.0"
-
-postcss-colormin@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f"
- integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==
- dependencies:
- browserslist "^4.21.4"
- caniuse-api "^3.0.0"
- colord "^2.9.1"
- postcss-value-parser "^4.2.0"
-
-postcss-convert-values@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393"
- integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==
- dependencies:
- browserslist "^4.21.4"
- postcss-value-parser "^4.2.0"
-
-postcss-discard-comments@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
- integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
-
-postcss-discard-duplicates@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
- integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
-
-postcss-discard-empty@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
- integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
-
-postcss-discard-overridden@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
- integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
-
postcss-loader@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-6.2.1.tgz#0895f7346b1702103d30fdc66e4d494a93c008ef"
@@ -14021,56 +14100,6 @@ postcss-loader@^6.2.1:
klona "^2.0.5"
semver "^7.3.5"
-postcss-merge-longhand@^5.1.7:
- version "5.1.7"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16"
- integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==
- dependencies:
- postcss-value-parser "^4.2.0"
- stylehacks "^5.1.1"
-
-postcss-merge-rules@^5.1.4:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c"
- integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==
- dependencies:
- browserslist "^4.21.4"
- caniuse-api "^3.0.0"
- cssnano-utils "^3.1.0"
- postcss-selector-parser "^6.0.5"
-
-postcss-minify-font-values@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
- integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-minify-gradients@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
- integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
- dependencies:
- colord "^2.9.1"
- cssnano-utils "^3.1.0"
- postcss-value-parser "^4.2.0"
-
-postcss-minify-params@^5.1.4:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352"
- integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==
- dependencies:
- browserslist "^4.21.4"
- cssnano-utils "^3.1.0"
- postcss-value-parser "^4.2.0"
-
-postcss-minify-selectors@^5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
- integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
- dependencies:
- postcss-selector-parser "^6.0.5"
-
postcss-modules-extract-imports@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
@@ -14113,93 +14142,7 @@ postcss-modules@^4.0.0:
postcss-modules-values "^4.0.0"
string-hash "^1.1.1"
-postcss-normalize-charset@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
- integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
-
-postcss-normalize-display-values@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
- integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-positions@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92"
- integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-repeat-style@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2"
- integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-string@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
- integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-timing-functions@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
- integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-unicode@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030"
- integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==
- dependencies:
- browserslist "^4.21.4"
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-url@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
- integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
- dependencies:
- normalize-url "^6.0.1"
- postcss-value-parser "^4.2.0"
-
-postcss-normalize-whitespace@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
- integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-ordered-values@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38"
- integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==
- dependencies:
- cssnano-utils "^3.1.0"
- postcss-value-parser "^4.2.0"
-
-postcss-reduce-initial@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6"
- integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==
- dependencies:
- browserslist "^4.21.4"
- caniuse-api "^3.0.0"
-
-postcss-reduce-transforms@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
- integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
- dependencies:
- postcss-value-parser "^4.2.0"
-
-postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9:
+postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
version "6.0.13"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
@@ -14207,21 +14150,6 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-svgo@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
- integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
- dependencies:
- postcss-value-parser "^4.2.0"
- svgo "^2.7.0"
-
-postcss-unique-selectors@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
- integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
- dependencies:
- postcss-selector-parser "^6.0.5"
-
postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
@@ -14236,6 +14164,15 @@ postcss@8.x, postcss@^8.4.21, postcss@^8.4.5:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^8.4.32:
+ version "8.4.33"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742"
+ integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -14446,6 +14383,15 @@ puppeteer-core@^2.1.1:
rimraf "^2.6.1"
ws "^6.1.0"
+pusher-js@^7.0.3:
+ version "7.6.0"
+ resolved "https://registry.yarnpkg.com/pusher-js/-/pusher-js-7.6.0.tgz#8e4535856371be0f475a42b3eec1f8b5614672de"
+ integrity sha512-5CJ7YN5ZdC24E0ETraCU5VYFv0IY5ziXhrS0gS5+9Qrro1E4M1lcZhtr9H1H+6jNSLj1LKKAgcLeE1EH9GxMlw==
+ dependencies:
+ "@types/express-serve-static-core" "4.17.28"
+ "@types/node" "^14.14.31"
+ tweetnacl "^1.0.3"
+
q@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@@ -14545,7 +14491,7 @@ react-docgen@^5.0.0:
node-dir "^0.1.10"
strip-indent "^3.0.0"
-react-dom@^18.1.0:
+react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@@ -14689,7 +14635,7 @@ react-window@^1.8.7:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
-react@^18.1.0:
+react@^18.1.0, react@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
@@ -14762,7 +14708,7 @@ read@1, read@^1.0.7:
dependencies:
mute-stream "~0.0.4"
-readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -14771,7 +14717,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stre
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.2.2, readable-stream@~2.3.6:
+readable-stream@^2.0.0, readable-stream@^2.2.2, readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@@ -14822,13 +14768,6 @@ recast@^0.23.1:
source-map "~0.6.1"
tslib "^2.0.1"
-rechoir@^0.7.0:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686"
- integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==
- dependencies:
- resolve "^1.9.0"
-
recordrtc@^5.6.2:
version "5.6.2"
resolved "https://registry.yarnpkg.com/recordrtc/-/recordrtc-5.6.2.tgz#48fc214b35084973ccce82c6251198b5742bc327"
@@ -14842,6 +14781,18 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
+reflect.getprototypeof@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3"
+ integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+ get-intrinsic "^1.2.1"
+ globalthis "^1.0.3"
+ which-builtin-type "^1.1.3"
+
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"
@@ -14883,6 +14834,15 @@ regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0:
define-properties "^1.2.0"
functions-have-names "^1.2.3"
+regexp.prototype.flags@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e"
+ integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ set-function-name "^2.0.0"
+
regexpu-core@^5.3.1:
version "5.3.2"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b"
@@ -15045,7 +15005,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
-resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.22.3, resolve@^1.22.4, resolve@^1.9.0:
+resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.2.0, resolve@^1.22.3, resolve@^1.22.4:
version "1.22.4"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
@@ -15081,11 +15041,6 @@ retry@^0.12.0:
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-retry@^0.13.1:
- version "0.13.1"
- resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
- integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
-
reusify@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
@@ -15163,17 +15118,27 @@ rollup@^2.70.1:
optionalDependencies:
fsevents "~2.3.2"
-rrdom@^2.0.0-alpha.7:
- version "2.0.0-alpha.10"
- resolved "https://registry.yarnpkg.com/rrdom/-/rrdom-2.0.0-alpha.10.tgz#1a70df339ae7a9f912591c245088d34bd72a206f"
- integrity sha512-PVA71tXHUBHOgSveQHGE577AE1ghR4exJGuqS8wzSlOa1FudoVvOIGzFNhH1PiPHvz4jew75IJ1rqakD/hdncQ==
+rollup@^4.2.0:
+ version "4.9.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.4.tgz#37bc0c09ae6b4538a9c974f4d045bb64b2e7c27c"
+ integrity sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==
dependencies:
- rrweb-snapshot "^2.0.0-alpha.10"
-
-rrweb-snapshot@^2.0.0-alpha.10, rrweb-snapshot@^2.0.0-alpha.7:
- version "2.0.0-alpha.10"
- resolved "https://registry.yarnpkg.com/rrweb-snapshot/-/rrweb-snapshot-2.0.0-alpha.10.tgz#7f3e0e7c718af8692fbb8192cb7cc0b526bd7c42"
- integrity sha512-RRkQcgYfpsv1zCmd4EeIr5m2brHwqL2HGQF5S4PgZa3+7iJ0VJOnpmFs+hu4h+et+ArjW8bl0b7aAhKkFAVEfg==
+ "@types/estree" "1.0.5"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.9.4"
+ "@rollup/rollup-android-arm64" "4.9.4"
+ "@rollup/rollup-darwin-arm64" "4.9.4"
+ "@rollup/rollup-darwin-x64" "4.9.4"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.9.4"
+ "@rollup/rollup-linux-arm64-gnu" "4.9.4"
+ "@rollup/rollup-linux-arm64-musl" "4.9.4"
+ "@rollup/rollup-linux-riscv64-gnu" "4.9.4"
+ "@rollup/rollup-linux-x64-gnu" "4.9.4"
+ "@rollup/rollup-linux-x64-musl" "4.9.4"
+ "@rollup/rollup-win32-arm64-msvc" "4.9.4"
+ "@rollup/rollup-win32-ia32-msvc" "4.9.4"
+ "@rollup/rollup-win32-x64-msvc" "4.9.4"
+ fsevents "~2.3.2"
rsvp@^4.8.4:
version "4.8.5"
@@ -15223,6 +15188,16 @@ safe-array-concat@^1.0.0:
has-symbols "^1.0.3"
isarray "^2.0.5"
+safe-array-concat@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c"
+ integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==
+ dependencies:
+ call-bind "^1.0.2"
+ get-intrinsic "^1.2.1"
+ has-symbols "^1.0.3"
+ isarray "^2.0.5"
+
safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -15233,7 +15208,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -15350,18 +15325,6 @@ seedrandom@^3.0.5:
resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7"
integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
-select-hose@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
- integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==
-
-selfsigned@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61"
- integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==
- dependencies:
- node-forge "^1"
-
"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
@@ -15419,7 +15382,7 @@ serialize-javascript@^4.0.0:
dependencies:
randombytes "^2.1.0"
-serialize-javascript@^6.0.0, serialize-javascript@^6.0.1:
+serialize-javascript@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
@@ -15437,19 +15400,6 @@ serve-favicon@^2.5.0:
parseurl "~1.3.2"
safe-buffer "5.1.1"
-serve-index@^1.9.1:
- version "1.9.1"
- resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
- integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==
- dependencies:
- accepts "~1.3.4"
- batch "0.6.1"
- debug "2.6.9"
- escape-html "~1.0.3"
- http-errors "~1.6.2"
- mime-types "~2.1.17"
- parseurl "~1.3.2"
-
serve-static@1.15.0:
version "1.15.0"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
@@ -15465,6 +15415,25 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
+set-function-length@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
+ integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
+ dependencies:
+ define-data-property "^1.1.1"
+ get-intrinsic "^1.2.1"
+ gopd "^1.0.1"
+ has-property-descriptors "^1.0.0"
+
+set-function-name@^2.0.0, set-function-name@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a"
+ integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==
+ dependencies:
+ define-data-property "^1.0.1"
+ functions-have-names "^1.2.3"
+ has-property-descriptors "^1.0.0"
+
set-getter@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.1.tgz#a3110e1b461d31a9cfc8c5c9ee2e9737ad447102"
@@ -15487,11 +15456,6 @@ set-value@^2.0.0, set-value@^2.0.1:
is-plain-object "^2.0.3"
split-string "^3.0.1"
-setprototypeof@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
- integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
-
setprototypeof@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
@@ -15528,11 +15492,6 @@ shebang-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-shell-quote@^1.7.3:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
- integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
-
shellwords@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
@@ -15574,15 +15533,6 @@ simple-update-notifier@^2.0.0:
dependencies:
semver "^7.5.3"
-sirv@^1.0.7:
- version "1.0.19"
- resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49"
- integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==
- dependencies:
- "@polka/url" "^1.0.0-next.20"
- mrmime "^1.0.0"
- totalist "^1.0.0"
-
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -15606,11 +15556,6 @@ slash@^3.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-slash@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7"
- integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==
-
slice-ansi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
@@ -15672,15 +15617,6 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
-sockjs@^0.3.24:
- version "0.3.24"
- resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
- integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==
- dependencies:
- faye-websocket "^0.11.3"
- uuid "^8.3.2"
- websocket-driver "^0.7.4"
-
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"
@@ -15712,25 +15648,16 @@ sort-keys@^4.0.0:
dependencies:
is-plain-obj "^2.0.0"
-source-list-map@^2.0.0, source-list-map@^2.0.1:
+source-list-map@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2:
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
version "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-loader@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee"
- integrity sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==
- dependencies:
- abab "^2.0.5"
- iconv-lite "^0.6.3"
- source-map-js "^1.0.1"
-
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -15816,29 +15743,6 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5"
integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==
-spdy-transport@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
- integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
- dependencies:
- debug "^4.1.0"
- detect-node "^2.0.4"
- hpack.js "^2.1.6"
- obuf "^1.1.2"
- readable-stream "^3.0.6"
- wbuf "^1.7.3"
-
-spdy@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
- integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
- dependencies:
- debug "^4.1.0"
- handle-thing "^2.0.0"
- http-deceiver "^1.2.7"
- select-hose "^2.0.0"
- spdy-transport "^3.0.0"
-
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -15948,11 +15852,6 @@ statuses@2.0.1:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-"statuses@>= 1.4.0 < 2":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
-
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"
@@ -16048,6 +15947,15 @@ string.prototype.trim@^1.2.7:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+string.prototype.trim@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd"
+ integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
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"
@@ -16057,6 +15965,15 @@ string.prototype.trimend@^1.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+string.prototype.trimend@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
+ integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
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"
@@ -16066,6 +15983,15 @@ string.prototype.trimstart@^1.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
+string.prototype.trimstart@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
+ integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.2.0"
+ es-abstract "^1.22.1"
+
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -16140,14 +16066,6 @@ style-loader@^3.3.1:
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.3.tgz#bba8daac19930169c0c9c96706749a597ae3acff"
integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==
-stylehacks@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9"
- integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==
- dependencies:
- browserslist "^4.21.4"
- postcss-selector-parser "^6.0.4"
-
stylis@^4.0.6:
version "4.3.0"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c"
@@ -16208,7 +16126,7 @@ svg-parser@^2.0.4:
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
-svgo@^2.7.0, svgo@^2.8.0:
+svgo@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
@@ -16392,11 +16310,6 @@ through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8:
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-thunky@^1.0.2:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
- integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
-
tiny-invariant@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642"
@@ -16473,11 +16386,6 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-totalist@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
- integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
-
tough-cookie@^4.0.0, tough-cookie@^4.1.3:
version "4.1.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
@@ -16620,6 +16528,11 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+tweetnacl@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
+ integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -17084,6 +16997,17 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
+vite@^5.0.8:
+ version "5.0.11"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.11.tgz#31562e41e004cb68e1d51f5d2c641ab313b289e4"
+ integrity sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==
+ dependencies:
+ esbuild "^0.19.3"
+ postcss "^8.4.32"
+ rollup "^4.2.0"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
vscode-oniguruma@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b"
@@ -17133,13 +17057,6 @@ watchpack@^2.2.0, watchpack@^2.4.0:
glob-to-regexp "^0.4.1"
graceful-fs "^4.1.2"
-wbuf@^1.1.0, wbuf@^1.7.3:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
- integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
- dependencies:
- minimalistic-assert "^1.0.0"
-
wcwidth@^1.0.0, wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
@@ -17147,11 +17064,6 @@ wcwidth@^1.0.0, wcwidth@^1.0.1:
dependencies:
defaults "^1.0.3"
-web-vitals@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.2.tgz#06535308168986096239aa84716e68b4c6ae6d1c"
- integrity sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig==
-
webidl-conversions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
@@ -17167,51 +17079,6 @@ webidl-conversions@^6.1.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
-webpack-bundle-analyzer@^4.5.0:
- version "4.9.0"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz#fc093c4ab174fd3dcbd1c30b763f56d10141209d"
- integrity sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==
- dependencies:
- "@discoveryjs/json-ext" "0.5.7"
- acorn "^8.0.4"
- acorn-walk "^8.0.0"
- chalk "^4.1.0"
- commander "^7.2.0"
- gzip-size "^6.0.0"
- lodash "^4.17.20"
- opener "^1.5.2"
- sirv "^1.0.7"
- ws "^7.3.1"
-
-webpack-cli@^4.9.2:
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31"
- integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==
- dependencies:
- "@discoveryjs/json-ext" "^0.5.0"
- "@webpack-cli/configtest" "^1.2.0"
- "@webpack-cli/info" "^1.5.0"
- "@webpack-cli/serve" "^1.7.0"
- colorette "^2.0.14"
- commander "^7.0.0"
- cross-spawn "^7.0.3"
- fastest-levenshtein "^1.0.12"
- import-local "^3.0.2"
- interpret "^2.2.0"
- rechoir "^0.7.0"
- webpack-merge "^5.7.3"
-
-webpack-dev-middleware@^5.3.1:
- version "5.3.3"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f"
- integrity sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==
- dependencies:
- colorette "^2.0.10"
- memfs "^3.4.3"
- mime-types "^2.1.31"
- range-parser "^1.2.1"
- schema-utils "^4.0.0"
-
webpack-dev-middleware@^6.1.1:
version "6.1.1"
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz#6bbc257ec83ae15522de7a62f995630efde7cc3d"
@@ -17223,42 +17090,6 @@ webpack-dev-middleware@^6.1.1:
range-parser "^1.2.1"
schema-utils "^4.0.0"
-webpack-dev-server@^4.7.4:
- version "4.15.1"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz#8944b29c12760b3a45bdaa70799b17cb91b03df7"
- integrity sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==
- dependencies:
- "@types/bonjour" "^3.5.9"
- "@types/connect-history-api-fallback" "^1.3.5"
- "@types/express" "^4.17.13"
- "@types/serve-index" "^1.9.1"
- "@types/serve-static" "^1.13.10"
- "@types/sockjs" "^0.3.33"
- "@types/ws" "^8.5.5"
- ansi-html-community "^0.0.8"
- bonjour-service "^1.0.11"
- chokidar "^3.5.3"
- colorette "^2.0.10"
- compression "^1.7.4"
- connect-history-api-fallback "^2.0.0"
- default-gateway "^6.0.3"
- express "^4.17.3"
- graceful-fs "^4.2.6"
- html-entities "^2.3.2"
- http-proxy-middleware "^2.0.3"
- ipaddr.js "^2.0.1"
- launch-editor "^2.6.0"
- open "^8.0.9"
- p-retry "^4.5.0"
- rimraf "^3.0.2"
- schema-utils "^4.0.0"
- selfsigned "^2.1.1"
- serve-index "^1.9.1"
- sockjs "^0.3.24"
- spdy "^4.0.2"
- webpack-dev-middleware "^5.3.1"
- ws "^8.13.0"
-
webpack-hot-middleware@^2.25.1:
version "2.25.4"
resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz#d8bc9e9cb664fc3105c8e83d2b9ed436bee4e193"
@@ -17268,22 +17099,6 @@ webpack-hot-middleware@^2.25.1:
html-entities "^2.1.0"
strip-ansi "^6.0.0"
-webpack-manifest-plugin@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz#10f8dbf4714ff93a215d5a45bcc416d80506f94f"
- integrity sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==
- dependencies:
- tapable "^2.0.0"
- webpack-sources "^2.2.0"
-
-webpack-merge@^5.7.3:
- version "5.9.0"
- resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826"
- integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==
- dependencies:
- clone-deep "^4.0.1"
- wildcard "^2.0.0"
-
webpack-sources@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
@@ -17292,14 +17107,6 @@ webpack-sources@^1.4.3:
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack-sources@^2.2.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
- integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
- dependencies:
- source-list-map "^2.0.1"
- source-map "^0.6.1"
-
webpack-sources@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
@@ -17310,7 +17117,7 @@ webpack-virtual-modules@^0.5.0:
resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c"
integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==
-webpack@5, webpack@^5.76.0:
+webpack@5:
version "5.88.2"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e"
integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==
@@ -17347,20 +17154,6 @@ webrtc-adapter@^8.0.0:
dependencies:
sdp "^3.2.0"
-websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760"
- integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
- dependencies:
- http-parser-js ">=0.5.1"
- safe-buffer ">=5.1.0"
- websocket-extensions ">=0.1.1"
-
-websocket-extensions@>=0.1.1:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
- integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
-
whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
@@ -17401,6 +17194,24 @@ which-boxed-primitive@^1.0.2:
is-string "^1.0.5"
is-symbol "^1.0.3"
+which-builtin-type@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b"
+ integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==
+ dependencies:
+ function.prototype.name "^1.1.5"
+ has-tostringtag "^1.0.0"
+ is-async-function "^2.0.0"
+ is-date-object "^1.0.5"
+ is-finalizationregistry "^1.0.2"
+ is-generator-function "^1.0.10"
+ is-regex "^1.1.4"
+ is-weakref "^1.0.2"
+ isarray "^2.0.5"
+ which-boxed-primitive "^1.0.2"
+ which-collection "^1.0.1"
+ which-typed-array "^1.1.9"
+
which-collection@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
@@ -17427,6 +17238,17 @@ which-typed-array@^1.1.10, which-typed-array@^1.1.11, which-typed-array@^1.1.2,
gopd "^1.0.1"
has-tostringtag "^1.0.0"
+which-typed-array@^1.1.13:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
+ integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.4"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+
which@^1.2.12, which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -17448,11 +17270,6 @@ wide-align@^1.1.5:
dependencies:
string-width "^1.0.2 || 2 || 3 || 4"
-wildcard@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67"
- integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
-
wordwrap@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
@@ -17585,12 +17402,12 @@ ws@^6.1.0:
dependencies:
async-limiter "~1.0.0"
-ws@^7.3.1, ws@^7.4.6:
+ws@^7.4.6:
version "7.5.9"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
-ws@^8.13.0, ws@^8.2.3:
+ws@^8.2.3:
version "8.13.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
@@ -17729,28 +17546,6 @@ yocto-queue@^1.0.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
-zipy-rrweb@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/zipy-rrweb/-/zipy-rrweb-1.0.6.tgz#d47e192b64567ebdc5434e92c51b6fa46ec2097c"
- integrity sha512-Col1yBx09eAETJkLKhjHbcvL/AokHfOlEbAcqpWxZIF8JRyLfvZh/N6CWWz0nzMYSmtC8T+n7eOnLiPQRcCJIA==
- dependencies:
- "@rrweb/types" "^2.0.0-alpha.7"
- "@types/css-font-loading-module" "0.0.7"
- "@xstate/fsm" "^1.4.0"
- base64-arraybuffer "^1.0.1"
- fflate "^0.4.4"
- mitt "^3.0.0"
- rrdom "^2.0.0-alpha.7"
- rrweb-snapshot "^2.0.0-alpha.7"
-
-zipyai@^1.3.24:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/zipyai/-/zipyai-1.7.0.tgz#6765f03dc7b0abdd4779b4aeaa3a165d8343f21f"
- integrity sha512-8CKSgr4AmnC4nOXR3CYoW0xFERLE5AdIM3BmGkOC2nWX5K8chnHTyQ1gr+BGH3VR6MMJCce5SZ1SRBq0WpYyPw==
- dependencies:
- uuid "^8.3.2"
- zipy-rrweb "^1.0.6"
-
zustand@3.5.7:
version "3.5.7"
resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.5.7.tgz#add5e8d0ba031ce6e0ddf9cb76ef15306efb665f"