From 6c935436c3ee5b98bb9f2cfded2aa18cf00d17de Mon Sep 17 00:00:00 2001 From: samanthaandrews Date: Thu, 3 Jul 2025 14:53:07 -0400 Subject: [PATCH] remove browserstack and cypress --- .github/workflows/browserstack.yml | 49 - .github/workflows/cypress.yml | 130 - .github/workflows/playwright.yml | 12 - .gitignore | 4 - README.md | 22 +- browserstack.yml | 105 - cypress/fixtures/example.json | 5 - cypress/integration/html-reader/errors.ts | 34 - .../integration/html-reader/get-content.ts | 8 - .../integration/html-reader/injectables.ts | 45 - .../integration/html-reader/internal-link.ts | 59 - .../integration/html-reader/location-sync.ts | 94 - .../integration/html-reader/missing-toc.ts | 16 - .../integration/html-reader/navigations.ts | 111 - .../integration/html-reader/page-button.ts | 227 -- cypress/integration/html-reader/render-app.ts | 95 - cypress/integration/html-reader/settings.ts | 182 - .../integration/html-reader/toc-navigation.ts | 78 - cypress/integration/multi-pdf/navigations.ts | 99 - cypress/integration/multi-pdf/page-button.ts | 60 - cypress/integration/multi-pdf/render-app.ts | 17 - cypress/integration/multi-pdf/settings.ts | 42 - cypress/integration/single-pdf/navigations.ts | 65 - cypress/integration/single-pdf/page-button.ts | 30 - cypress/integration/single-pdf/render-app.ts | 15 - cypress/integration/single-pdf/settings.ts | 49 - cypress/plugins/index.ts | 26 - cypress/support/commands.ts | 177 - cypress/support/constants.ts | 1 - cypress/support/index.ts | 20 - cypress/support/pdfZoomTestHelper.ts | 13 - cypress/tsconfig.json | 8 - package-lock.json | 3591 +---------------- package.json | 13 +- 34 files changed, 122 insertions(+), 5380 deletions(-) delete mode 100644 .github/workflows/browserstack.yml delete mode 100644 .github/workflows/cypress.yml delete mode 100644 browserstack.yml delete mode 100644 cypress/fixtures/example.json delete mode 100644 cypress/integration/html-reader/errors.ts delete mode 100644 cypress/integration/html-reader/get-content.ts delete mode 100644 cypress/integration/html-reader/injectables.ts delete mode 100644 cypress/integration/html-reader/internal-link.ts delete mode 100644 cypress/integration/html-reader/location-sync.ts delete mode 100644 cypress/integration/html-reader/missing-toc.ts delete mode 100644 cypress/integration/html-reader/navigations.ts delete mode 100644 cypress/integration/html-reader/page-button.ts delete mode 100644 cypress/integration/html-reader/render-app.ts delete mode 100644 cypress/integration/html-reader/settings.ts delete mode 100644 cypress/integration/html-reader/toc-navigation.ts delete mode 100644 cypress/integration/multi-pdf/navigations.ts delete mode 100644 cypress/integration/multi-pdf/page-button.ts delete mode 100644 cypress/integration/multi-pdf/render-app.ts delete mode 100644 cypress/integration/multi-pdf/settings.ts delete mode 100644 cypress/integration/single-pdf/navigations.ts delete mode 100644 cypress/integration/single-pdf/page-button.ts delete mode 100644 cypress/integration/single-pdf/render-app.ts delete mode 100644 cypress/integration/single-pdf/settings.ts delete mode 100644 cypress/plugins/index.ts delete mode 100644 cypress/support/commands.ts delete mode 100644 cypress/support/constants.ts delete mode 100644 cypress/support/index.ts delete mode 100644 cypress/support/pdfZoomTestHelper.ts delete mode 100644 cypress/tsconfig.json diff --git a/.github/workflows/browserstack.yml b/.github/workflows/browserstack.yml deleted file mode 100644 index 7d472adf..00000000 --- a/.github/workflows/browserstack.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: 'Playwright Tests for Web Reader via BrowserStack' -on: - schedule: - - cron: '00 12 * * 1-5' # every day at 7-9 AM ET (12 PM wherever the server is) excluding weekends -jobs: - test: - name: 'Playwright Tests for Web Reader via BrowserStack' - runs-on: ubuntu-latest - steps: - - name: 'BrowserStack Env Setup' - uses: 'browserstack/github-actions/setup-env@master' - with: - username: ${{ secrets.BROWSERSTACK_USERNAME }} - access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }} - project-name: DRB Web Reader - build-name: DRB Web Reader Automated Tests - - - name: 'BrowserStack Local Tunnel Setup' # set up tunnel connection between GitHub Actions runner environment and BrowserStack device cloud - uses: browserstack/github-actions/setup-local@master - with: - local-testing: start - local-identifier: random - - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - - - name: Install dependencies - run: npm ci - - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - - name: Run tests on BrowserStack - id: run-tests - run: npx browserstack-node-sdk playwright test - continue-on-error: true - - - name: Set failure workflow status 🚨 - if: steps.run-tests.outcome != 'success' - run: exit 1 - - - name: Set successful workflow status āœ… - if: steps.run-tests.outcome == 'success' - run: exit 0 diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml deleted file mode 100644 index c5114f3f..00000000 --- a/.github/workflows/cypress.yml +++ /dev/null @@ -1,130 +0,0 @@ -# commented out since pdf tests are failing and we are replacing with Playwright tests -# name: Cypress Tests (Chrome, Firefox, Safari) x5 -# on: [deployment_status] - -# # we have to supply something, but don't want to supply the -# # real token to install the real package here, so we just -# # provide a dummy -# env: -# GH_PACKAGE_AUTH_TOKEN: ${{ secrets.GH_PACKAGE_AUTH_TOKEN }} - -# jobs: -# install: -# name: Install cypress -# runs-on: ubuntu-latest -# if: github.event.deployment_status.state == 'success' && github.event.deployment_status.environment == 'Preview' -# container: -# image: cypress/browsers:node16.5.0-chrome97-ff96 -# options: --user 1001 # https://github.com/cypress-io/github-action#firefox -# steps: -# - name: Checkout -# uses: actions/checkout@v2 - -# # cache NPM modules and Cypress binary folder -# # we can use "package-lock.json" as the key file -# # to make sure we use the precise Cypress version -# # (which is important when using ^ version in package.json) -# # see https://github.com/actions/cache -# - name: Cache NPM and Cypress šŸ“¦ -# uses: actions/cache@v2 -# with: -# path: | -# ~/.cache/Cypress -# node_modules -# key: my-cache-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - -# - name: Install Cypress šŸ“„ -# # don't install every node_module however -# run: npm ci --no-optional - -# chrome: -# name: Run Chrome Tests -# runs-on: ubuntu-latest -# needs: install -# container: -# image: cypress/browsers:node16.5.0-chrome97-ff96 -# options: --user 1001 # https://github.com/cypress-io/github-action#firefox -# strategy: -# fail-fast: false -# matrix: -# # run copies of the current job in parallel -# containers: [1, 2, 3, 4, 5, 6] -# steps: -# - name: Checkout -# uses: actions/checkout@v2 - -# # this should always get a cache hit because we isntall above. -# # but we need to make sure cypress is installed on all of the -# # containers. -# - name: Cache NPM and Cypress šŸ“¦ -# uses: actions/cache@v2 -# with: -# path: | -# ~/.cache/Cypress -# node_modules -# key: my-cache-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - -# - name: Install Cypress šŸ“„ -# run: npm i --omit=optional - -# - name: Run Chrome -# uses: cypress-io/github-action@v4.0.1 -# env: -# CYPRESS_BASE_URL: ${{ github.event.deployment_status.target_url }} -# CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} -# # Recommended: pass the GitHub token lets this action correctly -# # determine the unique run id necessary to re-run the checks -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# with: -# install: false -# browser: chrome -# headed: true -# record: true -# parallel: true -# group: "UI - Chrome" - -# - name: Upload failure screenshots -# uses: actions/upload-artifact@v2 -# if: ${{ failure() }} -# with: -# name: cypress-screenshots -# path: cypress/screenshots - -# - name: Upload failure videos -# uses: actions/upload-artifact@v2 -# if: ${{ failure() }} -# with: -# name: cypress-videos -# path: cypress/videos - -# # https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions -# - name: Set successful workflow status āœ… -# if: ${{ success() }} -# # set the merge commit status check -# # using GitHub REST API -# # see https://docs.github.com/en/rest/reference/repos#create-a-commit-status -# run: | -# curl --request POST \ -# --url https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.sha }} \ -# --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ -# --header 'Accept: application/vnd.github.v3+json' \ -# --data '{ -# "context": "Cypress Tests - Web Reader", -# "state": "success", -# "description": "Cypress tests passed", -# "target_url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" -# }' - -# - name: Set failure workflow status 🚨 -# if: ${{ failure() }} -# run: | -# curl --request POST \ -# --url https://api.github.com/repos/${{ github.repository }}/statuses/${{ github.sha }} \ -# --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ -# --header 'Accept: application/vnd.github.v3+json' \ -# --data '{ -# "context": "Cypress Tests - Web Reader", -# "state": "failure", -# "description": "Cypress tests failed", -# "target_url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" -# }' diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 18c984e9..f904fbe1 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,7 +1,5 @@ name: Playwright Tests for Web Reader on: - schedule: - - cron: '00 14 * * 1-5' # every day at 9-10 AM ET (2 PM wherever the server is) excluding weekends pull_request: types: [opened, synchronize, reopened] jobs: @@ -58,13 +56,3 @@ jobs: name: playwright-report path: playwright-report/ retention-days: 30 - - - name: Slack Notification - if: ${{ always() }} - uses: rtCamp/action-slack-notify@v2 - env: - SLACK_CHANNEL: test_reports - SLACK_MESSAGE: See "Test results" step in ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - SLACK_TITLE: Web Reader Playwright Test Results - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} - SLACK_USERNAME: nyplorgBot diff --git a/.gitignore b/.gitignore index 7f9e61ff..61fc93f1 100644 --- a/.gitignore +++ b/.gitignore @@ -17,10 +17,6 @@ coverage # the parcel built example app www -# cypress -cypress/screenshots -cypress/videos - # Playwright /test-results/ /playwright-report/ diff --git a/README.md b/README.md index b130c5e4..873bab9e 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This project features an example application under `/example`, which is deployed - [TypeScript](https://www.npmjs.com/package/typescript) - JavaScript with syntax for types - [React](https://www.npmjs.com/package/react) - For creating user interface components - [Jest](https://jestjs.io/) & [React Testing Library](https://testing-library.com/) - For writing unit tests -- The Example App is packaged with [Parcel](https://parceljs.org/) & deployed with [Vercel](https://vercel.com/). Integration tests are run with [Cypress](https://www.cypress.io/). +- The Example App is packaged with [Parcel](https://parceljs.org/) & deployed with [Vercel](https://vercel.com/). ## Features @@ -230,7 +230,6 @@ C4 Models have been created to demonstrate how the WebReader and other web readi This is the folder structure: ```txt -/cypress # cypress integration tests /example # example app packaged by Parcel index.html index.tsx # entrypoint for the demo app @@ -320,24 +319,6 @@ To run all the tests as they run in CI: npm run test:ci ``` -### Integration Tests with Cypress - -The tests we have are located in the `cypress/integration` folder. - -To properly run the tests, make sure the example app is running (Instruction above on how to set up the example page), cypress will test against that page by default. Or if the app is hosted elsewhere, update the `baseUrl` value in the `cypress.json` file to match your host URL. - -To run and open an interactive testing envioment: - -```bash -npm run cypress:open -``` - -To run tests on your terminal without a browser: - -```bash -npm run cypress:cli -``` - ## Code Quality & Bundle Size Checks - `npm run lint` to lint the code yourself. Code quality enforcement is set up in pre-commit hooks with `prettier`, `husky`, and `lint-staged`. @@ -350,7 +331,6 @@ There are three Github Actions Workflows: - `main` - installs deps w/ cache, lints, tests, and builds on all pushes against a Node and OS matrix - `size` - comments cost comparison of your library on every pull request using [size-limit](https://github.com/ai/size-limit) -- `cypress` - runs the Cypress integration tests on Vercel deployments, which means it runs whenever a pull request is opened or updated ## Versioning diff --git a/browserstack.yml b/browserstack.yml deleted file mode 100644 index de925baf..00000000 --- a/browserstack.yml +++ /dev/null @@ -1,105 +0,0 @@ -# ============================= -# Set BrowserStack Credentials -# ============================= -# Add your BrowserStack userName and accessKey here or set BROWSERSTACK_USERNAME and -# BROWSERSTACK_ACCESS_KEY as env variables -userName: BROWSERSTACK_USERNAME -accessKey: BROWSERSTACK_ACCESS_KEY - -# ====================== -# BrowserStack Reporting -# ====================== -# The following capabilities are used to set up reporting on BrowserStack: -# Set 'projectName' to the name of your project. Example, Marketing Website -projectName: DRB Web Reader -# Set `buildName` as the name of the job / testsuite being run -buildName: DRB Web Reader Automated Tests -# `buildIdentifier` is a unique id to differentiate every execution that gets appended to -# buildName. Choose your buildIdentifier format from the available expressions: -# ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution -# ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30 -# Read more about buildIdentifiers here -> https://www.browserstack.com/docs/automate/selenium/organize-tests -buildIdentifier: '#${BUILD_NUMBER}' # Supports strings along with either/both ${expression} - -# ======================================= -# Platforms (Browsers / Devices to test) -# ======================================= -# Platforms object contains all the browser / device combinations you want to test on. -# Entire list available here -> (https://www.browserstack.com/list-of-browsers-and-platforms/automate) -platforms: - - os: OS X - osVersion: Big Sur - browserName: playwright-webkit - browserVersion: latest - # - os: OS X - # osVersion: Big Sur - # browserName: playwright-chromium - # browserVersion: latest - - os: OS X - osVersion: Big Sur - browserName: Chrome - browserVersion: latest - - os: OS X - osVersion: Big Sur - browserName: playwright-firefox - browserVersion: latest - - os: Windows - osVersion: 10 - browserName: Edge - browserVersion: latest - # - os: Windows - # osVersion: 10 - # browserName: playwright-chromium - # browserVersion: latest - - os: Windows - osVersion: 10 - browserName: Chrome - browserVersion: latest - - os: Windows - osVersion: 10 - browserName: playwright-firefox - browserVersion: latest - # - deviceName: Samsung Galaxy S22 Ultra - # browserName: Mobile Chrome # Try 'samsung' for Samsung browser - # osVersion: 12.0 - # - deviceName: iPhone 15 - # browserName: Mobile Safari - # osVersion: 18 - -# ======================= -# Parallels per Platform -# ======================= -# The number of parallel threads to be used for each platform set. -# BrowserStack's SDK runner will select the best strategy based on the configured value -# -# Example 1 - If you have configured 3 platforms and set `parallelsPerPlatform` as 2, a total of 6 (2 * 3) parallel threads will be used on BrowserStack -# -# Example 2 - If you have configured 1 platform and set `parallelsPerPlatform` as 5, a total of 5 (1 * 5) parallel threads will be used on BrowserStack -parallelsPerPlatform: 1 - -# ========================================== -# BrowserStack Local -# (For localhost, staging/private websites) -# ========================================== -# Set browserStackLocal to true if your website under test is not accessible publicly over the internet -# Learn more about how BrowserStack Local works here -> https://www.browserstack.com/docs/automate/selenium/local-testing-introduction -browserstackLocal: false # (Default false) -# browserStackLocalOptions: -# Options to be passed to BrowserStack local in-case of advanced configurations -# localIdentifier: # (Default: null) Needed if you need to run multiple instances of local. -# forceLocal: true # (Default: false) Set to true if you need to resolve all your traffic via BrowserStack Local tunnel. -# Entire list of arguments available here -> https://www.browserstack.com/docs/automate/selenium/manage-incoming-connections - -# =================== -# Debugging features -# =================== -debug: false # # Set to true if you need screenshots for every selenium command ran -networkLogs: false # Set to true to enable HAR logs capturing -consoleLogs: errors # Remote browser's console debug levels to be printed (Default: errors) -# Available options are `disable`, `errors`, `warnings`, `info`, `verbose` (Default: errors) -# CUSTOM_TAG_: # (Default: parent folder name of the test file) Custom tag for your test suite - -# Test Observability is an intelligent test reporting & debugging product. It collects data using the SDK. Read more about what data is collected at https://www.browserstack.com/docs/test-observability/references/terms-and-conditions -# Visit observability.browserstack.com to see your test reports and insights. To disable test observability, specify `testObservability: false` in the key below. -testObservability: true -browserstackAutomation: true diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json deleted file mode 100644 index 02e42543..00000000 --- a/cypress/fixtures/example.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Using fixtures to represent data", - "email": "hello@cypress.io", - "body": "Fixtures are a great way to mock data for responses to routes" -} diff --git a/cypress/integration/html-reader/errors.ts b/cypress/integration/html-reader/errors.ts deleted file mode 100644 index 20cad74c..00000000 --- a/cypress/integration/html-reader/errors.ts +++ /dev/null @@ -1,34 +0,0 @@ -describe('error states', () => { - beforeEach(() => { - /** - * React re-throws caught exceptions in dev so that they appear in the - * console, but this makes cypress think it was uncaught, so we have to - * turn this off - */ - cy.on('uncaught:exception', (err, runnable) => { - // returning false here prevents Cypress from - // failing the test - return false; - }); - }); - - it('throws error for unparsable manifest', () => { - /* - we use visit here instead of 'loadPage' because 'loadPage' - checks for an iframe that should fail to render in this test - */ - cy.visit('/html/test/unparsable-manifest'); - - cy.findByRole('heading', { name: 'An error occurred' }); - cy.findByRole('alert', { - name: /Network Error: Unparsable JSON file found at http.+\/unparsable-manifest.json/i, - }); - }); - - // @TODO - Improve this error UX. Requires change in R2D2BC. - it('throws error for missing resource', () => { - cy.visit('/html/test/missing-resource'); - - cy.getIframeBody().contains('Page not found.', { timeout: 10000 }); - }); -}); diff --git a/cypress/integration/html-reader/get-content.ts b/cypress/integration/html-reader/get-content.ts deleted file mode 100644 index 3226ec19..00000000 --- a/cypress/integration/html-reader/get-content.ts +++ /dev/null @@ -1,8 +0,0 @@ -describe('getContent', () => { - it('getContent returns HTML', () => { - cy.visit('/html/test/get-content'); - cy.getIframeBody() - .find('p') - .should('include.text', '/samples/moby-epub2-exploded/OEBPS/'); - }); -}); diff --git a/cypress/integration/html-reader/injectables.ts b/cypress/integration/html-reader/injectables.ts deleted file mode 100644 index d11958d3..00000000 --- a/cypress/integration/html-reader/injectables.ts +++ /dev/null @@ -1,45 +0,0 @@ -describe('useHtmlReader configuration settings', () => { - it('should have no injectables by default', () => { - cy.loadPage('/html/test/no-injectables'); - cy.getIframeHead() - .find('link[href$="/fonts/opensyslexic/opendyslexic.css"]') - .should('not.exist'); - cy.getIframeHead() - .find('link[href$="/css/sample.css"]') - .should('not.exist'); - }); - - it('should render injectables script when provided', () => { - cy.log('Reflowable Book with both fixed and reflowable CSS injected'); - cy.loadPage('/html/test/with-script-injectable'); - - cy.getIframeHead() - .find(`script[src$="/js/sample.js"]`, { timeout: 50000 }) - .should('exist'); - }); - - it('should render reflowable injectables CSS when provided for reflowable books', () => { - cy.log('Reflowable Book with both fixed and reflowable CSS injected'); - cy.loadPage('/html/test/with-reflowable-layout'); - cy.getIframeHead() - .find(`link[href$="/fonts/opensyslexic/opendyslexic.css"]`, { - timeout: 50000, - }) - .should('exist'); - cy.getIframeHead() - .find(`link[href$="/css/sample.css"]`, { timeout: 50000 }) - .should('exist'); - cy.getIframeBody().should('have.css', 'color', 'rgb(0, 0, 255)'); - }); - - it('should not render reflowable injectables CSS for FXL books', () => { - cy.log('FXL Book with both fixed and reflowable CSS injected'); - cy.loadPage('/html/test/with-fixed-layout'); - cy.getIframeHead() - .find('link[href$="/fonts/opensyslexic/opendyslexic.css"]') - .should('not.exist'); - cy.getIframeHead() - .find('link[href$="/css/sample.css"]') - .should('not.exist'); - }); -}); diff --git a/cypress/integration/html-reader/internal-link.ts b/cypress/integration/html-reader/internal-link.ts deleted file mode 100644 index bb29ad3b..00000000 --- a/cypress/integration/html-reader/internal-link.ts +++ /dev/null @@ -1,59 +0,0 @@ -describe('navigating an EPUB page using internal link', () => { - beforeEach(() => { - // FIXME: Ignore random reader bug for now, remove this after [OE-300] - cy.on('uncaught:exception', (err, runnable) => { - return false; - }); - }); - - it('Paginated mode & internal links should navigates users', () => { - cy.visit('/html/moby-epub2'); - cy.wait(1000); - cy.log('Go to a page with TOC'); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.findByLabelText('MOBY-DICK; or, THE WHALE.').click(); - - cy.wait(3000); - - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.log('Go to ETYMOLOGY'); - cy.getIframeBody() - .find('.toc a', { timeout: 3000 }) - .contains(/^ETYMOLOGY\.$/) - .click(); - - cy.getIframeBody() - .find('h4', { timeout: 3000 }) - .contains('Original Transcriber’s Notes:'); - }); - - it('Scrolling mode & internal links should navigates users', () => { - cy.visit('/html/moby-epub2'); - cy.log('Go to a page with TOC'); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.findByLabelText('MOBY-DICK; or, THE WHALE.').click(); - - cy.wait(3000); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.wait(1000); - - cy.log('Go to Chapter 133'); - cy.getIframeBody() - .find('.toc a', { timeout: 3000 }) - .contains(/^CHAPTER 133. The Chase—First Day\.$/) - .click(); - - cy.wait(1000); - - cy.getIframeBody() - .find('h2', { timeout: 3000 }) - .contains('CHAPTER 133. The Chase—First Day'); - }); -}); diff --git a/cypress/integration/html-reader/location-sync.ts b/cypress/integration/html-reader/location-sync.ts deleted file mode 100644 index cb940674..00000000 --- a/cypress/integration/html-reader/location-sync.ts +++ /dev/null @@ -1,94 +0,0 @@ -it('should remember location between page visits', () => { - cy.visit('/html/moby-epub3', { - onBeforeLoad: (win) => { - win.localStorage.clear(); - }, - }); - - // navigate to some page - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.findByRole('menuitem', { name: 'Chapter 10. A Bosom Friend.' }).click(); - cy.wait(1000); - - cy.getIframeBody() - .find('h1') - .contains('Chapter 10. A Bosom Friend.') - .should('be.visible'); - - cy.log('Go to to another book'); - cy.visit('/html/moby-epub2'); - cy.wait(1000); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.findByRole('menuitem', { name: 'CHAPTER 5. Breakfast.' }).click(); - cy.getIframeBody() - .find('h2') - .contains('CHAPTER 5. Breakfast.') - .should('be.visible'); - - cy.log('Go back to original Moby Epub 3 book'); - cy.visit('/html/moby-epub3'); - cy.wait(1000); - cy.log('Should be on Chapter 10'); - cy.getIframeBody() - .find('h1') - .contains('Chapter 10. A Bosom Friend.') - .should('be.visible'); - - cy.log('Go back to Moby Dick EPUB 2'); - cy.visit('/html/moby-epub2'); - cy.wait(1000); - - cy.log('Should be on Chapter 5'); - cy.getIframeBody() - .find('h2') - .contains('CHAPTER 5. Breakfast.') - .should('be.visible'); -}); - -it('should not remember location if `persistLastLocation` is disabled', () => { - cy.visit('/html/moby-epub3', { - onBeforeLoad: (win) => { - win.localStorage.clear(); - }, - }); - - cy.log('should remember by default'); - // navigate to some page - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.findByRole('menuitem', { name: 'Chapter 10. A Bosom Friend.' }).click(); - cy.wait(1000); - - cy.getIframeBody() - .find('h1') - .contains('Chapter 10. A Bosom Friend.') - .should('be.visible'); - - cy.visit('/html/moby-epub3-no-local-storage'); - // navigate to some page - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.findByRole('menuitem', { name: 'Chapter 2. The Carpet-Bag.' }).click(); - cy.wait(1000); - - cy.getIframeBody() - .find('h1') - .contains('Chapter 2. The Carpet-Bag.') - .should('be.visible'); - - cy.log('Now return to normal epub 3'); - cy.visit('/html/moby-epub3'); - cy.wait(1000); - cy.log('Should be on Chapter 10'); - cy.getIframeBody() - .find('h1') - .contains('Chapter 10. A Bosom Friend.') - .should('be.visible'); - - // now check the non-remembering link - cy.visit('/html/moby-epub3-no-local-storage'); - cy.wait(1000); - cy.getIframeBody().find('img[alt="title page"]').should('be.visible'); -}); diff --git a/cypress/integration/html-reader/missing-toc.ts b/cypress/integration/html-reader/missing-toc.ts deleted file mode 100644 index 89886069..00000000 --- a/cypress/integration/html-reader/missing-toc.ts +++ /dev/null @@ -1,16 +0,0 @@ -describe('Book without a TOC or empty TOC menulist', () => { - it('Shows mssing TOC message', () => { - cy.visit('/html/test/missing-toc'); - cy.getIframeBody() - .find('h1') - .should('include.text', 'missing Table of Contents'); - - cy.log('open TOC menu'); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.findByRole('menu').should( - 'include.text', - 'This publication does not have a Table of Contents' - ); - }); -}); diff --git a/cypress/integration/html-reader/navigations.ts b/cypress/integration/html-reader/navigations.ts deleted file mode 100644 index b08d457b..00000000 --- a/cypress/integration/html-reader/navigations.ts +++ /dev/null @@ -1,111 +0,0 @@ -describe('navigating an EPUB page', () => { - beforeEach(() => { - cy.loadPage('/html/streamed-alice-epub'); - }); - - it('should contain a link to return to the homepage', () => { - cy.findByRole('link', { name: 'Return to Homepage' }).should( - 'have.prop', - 'href', - `${Cypress.config().baseUrl}/` - ); - }); - - it('Paginated mode & page buttons should navigate users forward and backwards', () => { - cy.log('make sure we are on the homepage'); - cy.getIframeBody() - .find('img') - .should( - 'have.attr', - 'alt', - "Alice's Adventures in Wonderland, by Lewis Carroll" - ); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(500); - cy.log('make sure we are on paginated mode'); - cy.findByText('Paginated').click(); - cy.wait(500); - - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.wait(1000); - - cy.getIframeBody() - .find('a') - .first() - .should('have.attr', 'href', 'https://standardebooks.org'); - cy.getIframeBody() - .find('img') - .should('have.attr', 'alt', 'The Standard Ebooks logo'); - - cy.log('return to the homepage'); - - cy.findByRole('button', { name: 'Previous Page' }).click(); - cy.wait(1000); - - cy.getIframeBody() - .find('img') - .should( - 'have.attr', - 'alt', - "Alice's Adventures in Wonderland, by Lewis Carroll" - ); - }); - - // FIXME: https://jira.nypl.org/browse/OE-392 - // it('Scrolling mode & page buttons should navigate users forward and backwards', () => { - // cy.findByRole('button', { name: 'Settings' }).click(); - // cy.findByText('Scrolling').click(); - - // cy.findByRole('button', { name: 'Next Page' }).click(); - // cy.wait(1000); - - // cy.getIframeBody() - // .find('a') - // .first() - // .should('have.attr', 'href', 'https://standardebooks.org'); - - // cy.getIframeBody() - // .find('img') - // .should('have.attr', 'alt', 'The Standard Ebooks logo'); - - // cy.log('return to the homepage'); - - // cy.findByRole('button', { name: 'Previous Page' }).click(); - // cy.wait(1000); - - // cy.getIframeBody() - // .find('img') - // .should( - // 'have.attr', - // 'alt', - // "Alice's Adventures in Wonderland, by Lewis Carroll" - // ); - // }); - - it('should load the next chapter if user scrolled to the buttom of the page and pressed the next button', () => { - cy.log('scrolling mode'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(1000); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait(1000); - - cy.log('scroll to the bottom of the page'); - cy.get('iframe').then(($iframe) => { - $iframe.contents().scrollTop(Number.MAX_SAFE_INTEGER); - }); - cy.wait(1000); - - cy.log('click next button'); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.wait(1000); - - cy.getIframeBody().find('h2').should('contain.text', 'The Pool of Tears'); - }); -}); diff --git a/cypress/integration/html-reader/page-button.ts b/cypress/integration/html-reader/page-button.ts deleted file mode 100644 index 0786a3ae..00000000 --- a/cypress/integration/html-reader/page-button.ts +++ /dev/null @@ -1,227 +0,0 @@ -describe('PageButton visibility on useHtmlReader', () => { - describe('Reflowable layout', () => { - beforeEach(() => { - cy.loadPage('/html/streamed-alice-epub'); - }); - - it('Paginated mode & at the start of the book previous page button should be disabled', () => { - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Scrolling mode & at the start of the book previous page button should be disabled', () => { - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Paginated mode & at the end of the book the next page button should be disabled', () => { - cy.intercept( - 'GET', - 'https://alice.dita.digital/text/uncopyright.xhtml' - ).as('uncopyright'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - cy.wait(1000); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.wait(1000); - cy.log('move to last chapter'); - cy.findByRole('menuitem', { name: /(.*copy.*right$)/ }).click(); - - cy.wait('@uncopyright', { timeout: 10000 }); - - cy.wait(1000); - - cy.log('move to last page'); - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Press the Previous page button to reveal the next page button'); - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - }); - - it('Scrolling mode & at the end of the book the next page button should be disabled', () => { - cy.intercept( - 'GET', - 'https://alice.dita.digital/text/uncopyright.xhtml' - ).as('uncopyright'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(500); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.log('move to last chapter'); - cy.findByRole('menuitem', { name: /(.*copy.*right$)/ }).click(); - - cy.wait('@uncopyright', { timeout: 10000 }); - - cy.wait(1000); - - cy.getIframeBody().find('.copyright-page').should('exist'); - - cy.wait(1000); - - cy.log('move to last page'); - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Press the Previous page button to reveal the next page button'); - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - }); - - it('Scrolling mode & screen resize should show/hide the page buttons', () => { - cy.intercept( - 'GET', - 'https://alice.dita.digital/text/uncopyright.xhtml' - ).as('uncopyright'); - - cy.findByRole('button', { name: 'Settings' }).click(); - - cy.wait(1000); - - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.log('move to last chapter'); - cy.findByRole('menuitem', { name: /(.*copy.*right$)/ }).click(); - - cy.wait('@uncopyright', { timeout: 10000 }); - - cy.wait(1000); - - cy.getIframeBody().find('.copyright-page').should('exist'); - - cy.wait(1000); - - cy.log('scroll to the bottom of the page'); - cy.get('iframe').then(($iframe) => { - console.log($iframe.contents().scrollTop(Number.MAX_SAFE_INTEGER)); - }); - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Small screen should disable next button'); - cy.viewport(300, 300); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - }); - }); - - describe('FXL layout', () => { - beforeEach(() => { - cy.loadPage('/html/fxl-poems'); - }); - - it('Paginated mode & at the start of the book previous page button should be disabled', () => { - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Paginated mode & at the end of the book the next page button should be disabled', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.log('move to last chapter and last page'); - cy.findByRole('menuitem', { name: /(Everyone Sang)/ }).click(); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Press the Previous page button to reveal the next page button'); - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Should work for mobile screen'); - cy.viewport(300, 300); - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.wait(1000); - - cy.log('Should work for tablet screen'); - cy.viewport(630, 300); - cy.wait(1000); - - cy.findByRole('button', { name: 'Previous Page' }).click(); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - - cy.wait(1000); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - }); - }); -}); diff --git a/cypress/integration/html-reader/render-app.ts b/cypress/integration/html-reader/render-app.ts deleted file mode 100644 index e118dd8a..00000000 --- a/cypress/integration/html-reader/render-app.ts +++ /dev/null @@ -1,95 +0,0 @@ -describe('render page content', () => { - beforeEach(() => { - cy.loadPage('/html/streamed-alice-epub'); - }); - - it('Renders content on the epub2 based webpub page', () => { - cy.log('check that all the essential buttons are on the page'); - cy.findByRole('link', { name: 'Return to Homepage' }).should('exist'); - cy.findByRole('button', { name: 'Table of Contents' }).should('exist'); - cy.findByRole('button', { name: 'Settings' }).should('exist'); - cy.findByRole('button', { name: 'Toggle full screen' }).should('exist'); - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - // On initial load, previous button is hidden - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.log('page one contains an image'); - cy.getIframeBody() - .find('img') - .should( - 'have.attr', - 'alt', - "Alice's Adventures in Wonderland, by Lewis Carroll" - ); - }); - - it('Paginated mode & vertical and horizontal scroll bars should not exist', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - - cy.log('attemp to scroll the page'); - cy.window().scrollTo(100, 100, { ensureScrollable: false }); - - cy.window().its('scrollY').should('eq', 0); - cy.window().its('scrollX').should('eq', 0); - }); - - it('Scrolling mode & horizontal scroll bars should not exist but should be able to scroll vertically', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait(1000); - - cy.log('scrollable vertically but not horizontally'); - cy.window().scrollTo(100, 100, { ensureScrollable: false }); - - cy.window().its('scrollY').should('eq', 0); - cy.window().its('scrollX').should('eq', 0); - }); - - // Scroll to the bottom of the page, but if the screen is resized to be smaller, vertical scroll bar should re-appear to allow user to scroll down - it('Scrolling mode & resize to smaller screen shows you are not at the end of the chapter', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(1000); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait(1000); - - cy.log('scroll to the bottom of the page'); - cy.get('iframe').then(($iframe) => { - $iframe.contents().scrollTop(Number.MAX_SAFE_INTEGER); - }); - - cy.get('iframe').then(($iframe) => { - // https://stackoverflow.com/a/9439807/17573442 - const contentTop = $iframe.contents().scrollTop() ?? 0; - const iframeHeight = $iframe.height() ?? 0; - const contentHeight = $iframe.contents().height() ?? 0; - const atBottom = contentTop + iframeHeight >= contentHeight; - - expect(atBottom).eq(true); - }); - - cy.log( - 'resize the screen to be smaller so the vertical scroll bar appears' - ); - cy.viewport(500, 500); - - cy.get('iframe').then(($iframe) => { - const contentTop = $iframe.contents().scrollTop() ?? 0; - const iframeHeight = $iframe.height() ?? 0; - const contentHeight = $iframe.contents().height() ?? 0; - const atBottom = contentTop + iframeHeight >= contentHeight; - - expect(atBottom).eq(false); - }); - }); -}); diff --git a/cypress/integration/html-reader/settings.ts b/cypress/integration/html-reader/settings.ts deleted file mode 100644 index 673feb00..00000000 --- a/cypress/integration/html-reader/settings.ts +++ /dev/null @@ -1,182 +0,0 @@ -describe('display settings', () => { - beforeEach(() => { - cy.loadPage('/html/streamed-alice-epub'); - }); - - it('should have the default settings', () => { - cy.getIframeBody() - .findByRole('img', { - name: "Alice's Adventures in Wonderland, by Lewis Carroll", - }) - .should('exist'); - - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-default-on') - .should('have.css', '--USER__fontFamily', 'Original') - .should('have.css', '--USER__scroll', 'readium-scroll-off') - .should('have.css', '--USER__fontSize', '100%'); - }); - - it('should update the font family to serif, scroll mode, and on sepia theme', () => { - cy.log('open the settings menu'); - cy.findByRole('button', { name: 'Settings' }).click(); - - cy.findByText('Serif').click(); - cy.getIframeHtml().should('have.css', '--USER__fontFamily', 'serif'); - - cy.findByText('Scrolling').click(); - cy.getIframeHtml().should( - 'have.css', - '--USER__scroll', - 'readium-scroll-on' - ); - - cy.findByText('Sepia').click(); - cy.getIframeHtml().should( - 'have.css', - '--USER__appearance', - 'readium-sepia-on' - ); - }); - - it('should trigger font size setting', () => { - cy.getIframeHtml().should('have.css', '--USER__fontSize', '100%'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByRole('button', { name: 'Decrease font size' }).click(); - - cy.getIframeHtml().should('have.css', '--USER__fontSize', '96%'); // 4% per step? - }); - - it('should reset settings to default', () => { - cy.log('open the settings menu'); - cy.findByRole('button', { name: 'Settings' }).click(); - - cy.findByText('Serif').click(); - cy.findByText('Sepia').click(); - cy.findByRole('button', { name: 'Decrease font size' }).click(); - - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-sepia-on') - .should('have.css', '--USER__fontFamily', 'serif') - .should('have.css', '--USER__fontSize', '96%'); - - cy.findByRole('button', { name: 'Reset settings' }).click(); - - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-default-on') - .should('have.css', '--USER__fontFamily', 'Original') - .should('have.css', '--USER__scroll', 'readium-scroll-off') - .should('have.css', '--USER__fontSize', '100%'); - }); - - it('should stay on the same page when switching between reading modes', () => { - cy.log('Make sure we are on paginated mode'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.wait(1000); - - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait(1000); - - cy.getIframeHtml() - .find('h2') - .contains('I Down the RabĀ­bit-Hole') - .should('be.visible'); - - cy.log('switch to scrolling mode'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.getIframeHtml() - .find('h2') - .contains('I Down the RabĀ­bit-Hole') - .should('be.visible'); - }); -}); - -it('should maintain settings between page visits', () => { - cy.visit('/html/moby-epub3', { - onBeforeLoad: (win) => { - win.localStorage.clear(); - }, - }); - - cy.log('Page should be loaded with default settings'); - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-default-on') - .should('have.css', '--USER__fontFamily', 'Original') - .should('have.css', '--USER__scroll', 'readium-scroll-off') - .should('have.css', '--USER__fontSize', '100%'); - - cy.log('Settings overlay should show correct values'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(100); - cy.findByRole('radio', { name: 'Default' }).should('be.checked'); - cy.findByRole('radio', { name: 'Day' }).should('be.checked'); - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - - cy.log('Change settings'); - cy.findByRole('radio', { name: 'Night' }).click({ force: true }); - cy.findByRole('radio', { name: 'Serif' }).click({ force: true }); - cy.findByRole('radio', { name: 'Scrolling' }).click({ force: true }); - cy.findByRole('button', { name: 'Decrease font size' }).click({ - force: true, - }); - - cy.wait(100); - cy.findByRole('button', { name: 'Settings' }).click(); - - cy.log('Should have updated settings'); - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-night-on') - .should('have.css', '--USER__fontFamily', 'serif') - .should('have.css', '--USER__scroll', 'readium-scroll-on') - .should('have.css', '--USER__fontSize', '96%'); - - cy.log('Visit another book and see that settings carry over'); - cy.visit('/html/moby-epub2'); - - cy.wait(1000); - - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-night-on') - .should('have.css', '--USER__fontFamily', 'serif') - .should('have.css', '--USER__scroll', 'readium-scroll-on') - .should('have.css', '--USER__fontSize', '96%'); -}); - -it('should not maintain settings if `persistSettings` is `false`', () => { - cy.log('visit settings-remembering-reading'); - cy.visit('/html/moby-epub3', { - onBeforeLoad: (win) => { - win.localStorage.clear(); - }, - }); - - cy.log('Change settings'); - cy.wait(1000); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(1000); - cy.findByRole('radio', { name: 'Night' }).click({ force: true }); - cy.findByRole('radio', { name: 'Serif' }).click({ force: true }); - cy.findByRole('radio', { name: 'Scrolling' }).click({ force: true }); - cy.findByRole('button', { name: 'Decrease font size' }).click({ - force: true, - }); - - cy.log('visit reader that does not remember settings'); - cy.visit('/html/moby-epub3-no-local-storage'); - - cy.log('Page should be loaded with default settings'); - cy.getIframeHtml() - .should('have.css', '--USER__appearance', 'readium-default-on') - .should('have.css', '--USER__fontFamily', 'Original') - .should('have.css', '--USER__scroll', 'readium-scroll-off') - .should('have.css', '--USER__fontSize', '100%'); -}); diff --git a/cypress/integration/html-reader/toc-navigation.ts b/cypress/integration/html-reader/toc-navigation.ts deleted file mode 100644 index bdaba52a..00000000 --- a/cypress/integration/html-reader/toc-navigation.ts +++ /dev/null @@ -1,78 +0,0 @@ -describe('navigating an EPUB page', () => { - beforeEach(() => { - cy.loadPage('/html/streamed-alice-epub'); - }); - - it('Paginated mode & TOC: should update page content after clicking on TOC link', () => { - cy.intercept('GET', 'https://alice.dita.digital/text/chapter-1.xhtml').as( - 'chapterOne' - ); - - cy.getIframeBody() - .find('img', { timeout: 10000 }) - .should( - 'have.attr', - 'alt', - "Alice's Adventures in Wonderland, by Lewis Carroll" - ); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.wait(1000); - cy.findByText('Scrolling').click(); - cy.findByRole('radio', { name: 'Paginated' }).should('not.be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('be.checked'); - - cy.log('open TOC menu'); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait('@chapterOne', { timeout: 10000 }).then((interception) => { - assert.isNotNull( - interception?.response?.body, - 'chapter one API call has data' - ); - }); - - cy.wait(3000); - - cy.getIframeHead().contains('title', 'Chapter 1: Down the Rabbit-Hole'); - }); - - it('Scrolling mode & TOC: should update page content after clicking on TOC link', () => { - cy.intercept('GET', 'https://alice.dita.digital/text/chapter-1.xhtml').as( - 'chapterOne' - ); - - cy.getIframeBody() - .find('img', { timeout: 10000 }) - .should( - 'have.attr', - 'alt', - "Alice's Adventures in Wonderland, by Lewis Carroll" - ); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Paginated').click(); - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('not.be.checked'); - - cy.log('open TOC menu'); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.log('open chapter 1'); - cy.findByRole('menuitem', { name: 'I: Down the RabĀ­bit-Hole' }).click(); - - cy.wait('@chapterOne', { timeout: 10000 }).then((interception) => { - assert.isNotNull( - interception?.response?.body, - 'chapter one API call has data' - ); - }); - - cy.wait(3000); - - cy.getIframeHead().contains('title', 'Chapter 1: Down the Rabbit-Hole'); - }); -}); diff --git a/cypress/integration/multi-pdf/navigations.ts b/cypress/integration/multi-pdf/navigations.ts deleted file mode 100644 index 51210f8f..00000000 --- a/cypress/integration/multi-pdf/navigations.ts +++ /dev/null @@ -1,99 +0,0 @@ -describe('Multi PDF navigation', () => { - beforeEach(() => { - cy.loadPdf('/pdf/collection'); - }); - - it('Paginated mode & TOC: should update page content after clicking on TOC link', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.findByRole('menuitem', { name: 'Foreword' }).click(); - cy.wait(5000); - cy.findByText( - /This volume encapsulates some of the most significant published work of Leslie/, - { timeout: 10000 } - ).should('be.visible'); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.findByText( - /All subfields of anthropology had contributions to make to this endeavor/, - { timeout: 10000 } - ).should('be.visible'); - }); - - it('Scrolling mode & TOC: should update page content after clicking on TOC link', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - cy.findByRole('radio', { name: 'Paginated' }).should('not.be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('be.checked'); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.findByRole('menuitem', { name: 'Foreword' }).click(); - cy.wait('@pdf'); - cy.findAllByText(/Foreword/, { timeout: 10000 }).should('be.visible'); - cy.get('div[data-page-number="2"]').should('exist'); - }); - - it('should navigate forward and backwards with page buttons', () => { - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('be.visible'); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.get('#mainContent') - .find('.react-pdf__Page__textContent') - .children() - .should('have.length', 0); - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('not.exist'); - cy.findByRole('button', { name: 'Previous Page' }).click(); - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('be.visible'); - }); - - it('should switch to scrolling mode', () => { - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('be.visible'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.wait('@pdf'); - cy.get('div[data-page-number="5"]', { timeout: 6000 }).scrollIntoView(); - cy.wait(5000); - cy.get('div[data-page-number="5"]').find('canvas').should('exist'); - }); - - it('should navigate between resources with page buttons on scrolling mode', () => { - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('be.visible'); - cy.findByText('Settings').click(); - cy.findByText('Scrolling').click(); - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('not.exist'); - - cy.log('switch from paginated to scrolling'); - cy.findByText('Settings').click(); - cy.findByText('Paginated').click(); - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('not.exist'); - - cy.findByText('Settings').click(); - cy.findByText('Scrolling').click(); - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.wait('@pdf'); - cy.findByText('Settings').click(); - cy.findByText('Zoom Out').click(); - - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.', - { timeout: 10000 } - ).should('be.visible'); - }); -}); diff --git a/cypress/integration/multi-pdf/page-button.ts b/cypress/integration/multi-pdf/page-button.ts deleted file mode 100644 index 77aed65f..00000000 --- a/cypress/integration/multi-pdf/page-button.ts +++ /dev/null @@ -1,60 +0,0 @@ -describe('Page button on Multiple PDF page', () => { - beforeEach(() => { - cy.loadPdf('/pdf/collection'); - }); - - it('Should enable next button at the start of the book', () => { - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.log('Change to Scroll mode'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Should hide or show when moving back and forward between pages', () => { - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Should disable next page button at the end of the page', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - cy.findByRole('menuitem', { name: 'Index' }).click(); - - cy.wait('@pdf'); - cy.wait(1000); - - // FIXME: Find a smaller PDF or a better way to simulate 9 clicks - let clicks = 9; - while (clicks-- > 0) { - cy.findByRole('button', { name: 'Next Page' }).click(); - } - - cy.wait(1000); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.log('Shows next page'); - cy.findByRole('button', { name: 'Previous Page' }).click(); - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - }); -}); diff --git a/cypress/integration/multi-pdf/render-app.ts b/cypress/integration/multi-pdf/render-app.ts deleted file mode 100644 index 44f2878d..00000000 --- a/cypress/integration/multi-pdf/render-app.ts +++ /dev/null @@ -1,17 +0,0 @@ -describe('Renders multi PDF', () => { - it('Renders page content', () => { - cy.loadPdf('/pdf/collection'); - - cy.log('check that all the essential buttons are on the page'); - cy.findByRole('link', { name: 'Return to Homepage' }).should('exist'); - cy.findByRole('button', { name: 'Table of Contents' }).should('exist'); - cy.findByRole('button', { name: 'Settings' }).should('exist'); - cy.findByRole('button', { name: 'Toggle full screen' }).should('exist'); - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByText( - 'Anthropology without Informants: Collected Works in Paleoanthropology by L.G. Freeman.' - ).should('be.visible'); - }); -}); diff --git a/cypress/integration/multi-pdf/settings.ts b/cypress/integration/multi-pdf/settings.ts deleted file mode 100644 index 6586679d..00000000 --- a/cypress/integration/multi-pdf/settings.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { SCALE_STEP } from '../../support/constants'; -import { pdfZoomTestHelper } from '../../support/pdfZoomTestHelper'; - -describe('Multi PDF display settings', () => { - beforeEach(() => { - cy.loadPdf('/pdf/collection'); - cy.log('open the settings menu'); - cy.findByRole('button', { name: 'Settings' }).click(); - }); - - it('should have the default settings', () => { - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('not.be.checked'); - }); - - it('should not have font or theme display settings', () => { - cy.findByRole('radiogroup', { name: 'text font options' }).should( - 'not.exist' - ); - cy.findByRole('radiogroup', { name: 'reading theme options' }).should( - 'not.exist' - ); - cy.findByRole('button', { name: 'Decrease font size' }).should('not.exist'); - cy.findByRole('button', { name: 'Increase font size' }).should('not.exist'); - }); - - it('should zoom in and out', () => { - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, '1', '1'); - }); - - cy.findByRole('button', { name: 'Zoom In' }).click(); - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, `${1 + SCALE_STEP}`, `${1 + SCALE_STEP}`); - }); - - cy.findByRole('button', { name: 'Zoom Out' }).click(); - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, '1', '1'); - }); - }); -}); diff --git a/cypress/integration/single-pdf/navigations.ts b/cypress/integration/single-pdf/navigations.ts deleted file mode 100644 index ccf66ed1..00000000 --- a/cypress/integration/single-pdf/navigations.ts +++ /dev/null @@ -1,65 +0,0 @@ -describe('Single PDF navigation', () => { - beforeEach(() => { - cy.loadPdf('/pdf/single-resource-short'); - }); - - it('should navigate forward and backwards with page buttons', () => { - cy.findByText('Assessing climate change').should('be.visible'); - - // The second page of the PDF is blank - cy.findByRole('button', { name: 'Next Page' }).click(); - cy.findByText('Assessing climate change').should('not.exist'); - - cy.findByRole('button', { name: 'Previous Page' }).click(); - cy.findByText('Assessing climate change').should('be.visible'); - }); - - it('should switch to scrolling mode', () => { - cy.findByText('Assessing climate change').should('be.visible'); - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - cy.get('div[data-page-number="4"]').scrollIntoView(); - cy.findByText( - 'Matteo Ferrazzi, Fotios Kalantzis and Sanne Zwart (European Investment Bank)' - ).should('exist'); - }); - - it('Paginated mode & TOC: should update page content after clicking on TOC link', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('not.be.checked'); - - cy.log('open TOC menu'); - cy.wait(3000); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.log('open chapter 2'); - cy.findByRole('menuitem', { - name: '2 Climate risk at the country level', - }).click(); - - cy.findByText( - 'Figure 1: Overview of risks stemming from climate change' - ).should('exist'); - }); - - it('Scrolling mode & TOC: should update page content after clicking on TOC link', () => { - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - cy.findByRole('radio', { name: 'Paginated' }).should('not.be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('be.checked'); - - cy.log('open TOC menu'); - cy.wait(3000); - cy.findByRole('button', { name: 'Table of Contents' }).click(); - - cy.log('open chapter 2'); - cy.findByRole('menuitem', { - name: '2 Climate risk at the country level', - }).click(); - - cy.findByText( - 'Figure 1: Overview of risks stemming from climate change' - ).should('exist'); - }); -}); diff --git a/cypress/integration/single-pdf/page-button.ts b/cypress/integration/single-pdf/page-button.ts deleted file mode 100644 index 8b99e271..00000000 --- a/cypress/integration/single-pdf/page-button.ts +++ /dev/null @@ -1,30 +0,0 @@ -describe('Pagebutton on single PDF page', () => { - beforeEach(() => { - cy.loadPdf('/pdf/single-resource-short'); - }); - - it('Should disable page buttons on scrolling mode', () => { - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByRole('button', { name: 'Settings' }).click(); - cy.findByText('Scrolling').click(); - - cy.findByRole('button', { name: 'Next Page' }).should('be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); - - it('Should trigger page button state when moving back and forward between pages on paginated mode', () => { - cy.findByRole('button', { name: 'Next Page' }).click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should( - 'not.be.disabled' - ); - - cy.findByRole('button', { name: 'Previous Page' }).click(); - - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - }); -}); diff --git a/cypress/integration/single-pdf/render-app.ts b/cypress/integration/single-pdf/render-app.ts deleted file mode 100644 index 778e828b..00000000 --- a/cypress/integration/single-pdf/render-app.ts +++ /dev/null @@ -1,15 +0,0 @@ -describe('Renders single PDF', () => { - it('Render page content', () => { - cy.loadPdf('/pdf/single-resource-short'); - - cy.log('check that all the essential buttons are on the page'); - cy.findByRole('link', { name: 'Return to Homepage' }).should('exist'); - cy.findByRole('button', { name: 'Table of Contents' }).should('exist'); - cy.findByRole('button', { name: 'Settings' }).should('exist'); - cy.findByRole('button', { name: 'Toggle full screen' }).should('exist'); - cy.findByRole('button', { name: 'Next Page' }).should('not.be.disabled'); - cy.findByRole('button', { name: 'Previous Page' }).should('be.disabled'); - - cy.findByText('Assessing climate change').should('be.visible'); - }); -}); diff --git a/cypress/integration/single-pdf/settings.ts b/cypress/integration/single-pdf/settings.ts deleted file mode 100644 index 412905d4..00000000 --- a/cypress/integration/single-pdf/settings.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { SCALE_STEP } from '../../support/constants'; -import { pdfZoomTestHelper } from '../../support/pdfZoomTestHelper'; - -describe('Single PDF display settings', () => { - beforeEach(() => { - cy.loadPdf('/pdf/single-resource-short'); - cy.log('open the settings menu'); - cy.findByRole('button', { name: 'Settings' }).click(); - }); - - it('should have the default settings', () => { - cy.findByRole('radio', { name: 'Paginated' }).should('be.checked'); - cy.findByRole('radio', { name: 'Scrolling' }).should('not.be.checked'); - }); - - it('should not have font or theme display settings', () => { - cy.findByRole('radiogroup', { name: 'text font options' }).should( - 'not.exist' - ); - cy.findByRole('radiogroup', { name: 'reading theme options' }).should( - 'not.exist' - ); - cy.findByRole('button', { name: 'Decrease font size' }).should('not.exist'); - cy.findByRole('button', { name: 'Increase font size' }).should('not.exist'); - }); - - it('should zoom in and out', () => { - cy.get('.react-pdf__Page__textContent') - .find('span') - .should( - 'have.text', - 'ECONOMICS – WORKING PAPERS 2021/03Assessing climate changerisks at the country level:the EIB scoring model' - ); - - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, '1', '1'); - }); - - cy.findByRole('button', { name: 'Zoom In' }).click(); - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, `${1 + SCALE_STEP}`, `${1 + SCALE_STEP}`); - }); - - cy.findByRole('button', { name: 'Zoom Out' }).click(); - cy.get('.react-pdf__Page').then(($elm) => { - pdfZoomTestHelper($elm, '1', '1'); - }); - }); -}); diff --git a/cypress/plugins/index.ts b/cypress/plugins/index.ts deleted file mode 100644 index 701af02c..00000000 --- a/cypress/plugins/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -/// -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) -/** - * @type {Cypress.PluginConfig} - */ -module.exports = ( - on: Cypress.PluginEvents, - config: Cypress.PluginConfigOptions -) => { - // `on` is used to hook into various events Cypress emits - // `config` is the resolved Cypress config -}; - -export {}; diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts deleted file mode 100644 index ec85ad1e..00000000 --- a/cypress/support/commands.ts +++ /dev/null @@ -1,177 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-expressions */ -/// -import '@testing-library/cypress/add-commands'; - -declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - interface Chainable { - loadPage( - pageName: - | '/html/moby-epub2' - | '/html/moby-epub3' - | '/html/axisnow-encrypted' - | '/html/axisnow-decrypted' - | '/html/fxl-poems' - | '/html/test/no-injectables' - | '/html/test/with-reflowable-layout' - | '/html/test/with-script-injectable' - | '/html/test/with-fixed-layout' - | '/html/test/get-content' - | '/html/streamed-alice-epub' - | '/html/test/unparsable-manifest' - | '/html/test/missing-resource' - | '/html/test/missing-injectable' - ): void; - getIframeHtml(): Chainable>; - getIframeHead(): Chainable; - getIframeBody(): Chainable>; - finishNavigation(): void; - loadPdf( - path: '/pdf/single-resource-short' | '/pdf/collection' - ): Chainable; - } - } -} - -const pagesUsingAliceInWonderlandExample: string[] = [ - '/html/streamed-alice-epub', - '/html/test/with-reflowable-layout', - '/html/test/with-script-injectable', - '/html/test/no-injectables', -]; - -Cypress.Commands.add('loadPage', (pageName) => { - const resourceInterceptUrl = pagesUsingAliceInWonderlandExample.includes( - pageName - ) - ? 'https://alice.dita.digital/**' - : '/samples/**'; - - cy.intercept(resourceInterceptUrl, { middleware: true }, (req) => { - req.on('before:response', (res) => { - // force all API responses to not be cached - res.headers['cache-control'] = 'no-store'; - }); - }).as('sample'); - cy.visit(pageName, { - // re-enable this once we start storing location and settings in storage. - // onBeforeLoad: (win) => { - // win.sessionStorage.clear(); // clear storage so that we are always on page one - // }, - }); - cy.findByRole('progressbar', { name: 'Loading book...' }).should('exist'); - cy.wait('@sample', { timeout: 20000 }).then((interception) => { - assert.isNotNull(interception?.response?.body, 'API call has data'); - }); - cy.findByRole('progressbar', { name: 'Loading book...' }).should('not.exist'); -}); - -/** - * Ensures the iframe has loaded and is not on about:blank since - * chrome starts iframes as loaded on about:blank. - */ -const isIframeLoaded = ($iframe: HTMLIFrameElement) => { - const contentWindow = $iframe.contentWindow; - const src = $iframe.src; - const href = contentWindow?.location.href; - if (contentWindow?.document.readyState === 'complete') { - return href !== 'about:blank' || src === 'about:blank' || src === ''; - } - return false; -}; - -Cypress.Commands.add('getIframeHtml', { prevSubject: false }, () => { - Cypress.log({ - name: 'Get Iframe HTML', - // shorter name for the Command Log - displayName: 'getIframeHtml', - message: `Get the iframe html, and wait for it to load.`, - }); - - return ( - cy - .get('iframe', { log: false }) - // .its('0') - // .should(isIframeLoaded) - // .its('contentDocument', { log: false }) - // .should('not.be.empty') - // .then((html) => { - // return cy.wrap(html, { log: false }); - // }); - .should(($frame) => { - const readyState = $frame.prop('contentWindow').document.readyState; - expect(readyState).to.eq('complete'); - const body = $frame.contents().find('body'); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions - expect(body).to.not.be.empty; - }) - .its('0.contentDocument.documentElement', { log: false }) - .then(($el) => cy.wrap($el, { log: false })) - ); -}); - -Cypress.Commands.add('getIframeHead', { prevSubject: false }, () => { - Cypress.log({ - name: 'Get Iframe Head', - // shorter name for the Command Log - displayName: 'getIframeHead', - message: `Get the iframe head, and wait for it to load.`, - }); - - return cy - .get('iframe', { log: false }) - .its('0', { log: false }) - .should(isIframeLoaded) - .its('contentDocument.head', { log: false }) - .then(($el) => cy.wrap($el, { log: false })); -}); - -Cypress.Commands.add('getIframeBody', { prevSubject: false }, () => { - Cypress.log({ - name: 'Get Iframe Body', - // shorter name for the Command Log - displayName: 'getIframeBody', - message: `Get the iframe body, and wait for it to load.`, - }); - - return cy - .get('iframe', { log: false }) - .its('0', { log: false }) - .should(isIframeLoaded) - .its('contentDocument.body', { log: false }) - .should('not.be.empty') - .then(($el) => cy.wrap($el, { log: false })); -}); - -Cypress.Commands.add('finishNavigation', { prevSubject: false }, () => { - // we use this to simply wait for the user to be scrolled to wherever they need to be. - // any other method would be very tough to use. - cy.wait(100); -}); - -Cypress.Commands.add( - 'loadPdf', - (path: '/pdf/single-resource-short' | '/pdf/collection') => { - const pdfProxyInterceptUrl = - Cypress.config().baseUrl === 'http://localhost:1234' - ? 'http://localhost:3001' - : 'https://drb-api-qa.nypl.org/utils'; - cy.intercept(`${pdfProxyInterceptUrl}/**`, { middleware: true }, (req) => { - req.on('before:response', (res) => { - // force all API responses to not be cached - res.headers['cache-control'] = 'no-store'; - }); - }).as('pdf'); - cy.visit(path, { - onBeforeLoad: (win) => { - win.sessionStorage.clear(); // clear storage so that we are always on page one - }, - }); - cy.wait('@pdf', { timeout: 50000 }); - cy.get('#mainContent') - .find('.react-pdf__Page__textContent', { timeout: 10000 }) - .should('have.attr', 'style'); - } -); diff --git a/cypress/support/constants.ts b/cypress/support/constants.ts deleted file mode 100644 index 0f695af3..00000000 --- a/cypress/support/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export const SCALE_STEP = 0.1; diff --git a/cypress/support/index.ts b/cypress/support/index.ts deleted file mode 100644 index 37a498fb..00000000 --- a/cypress/support/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -// *********************************************************** -// This example support/index.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/cypress/support/pdfZoomTestHelper.ts b/cypress/support/pdfZoomTestHelper.ts deleted file mode 100644 index 9eb4837c..00000000 --- a/cypress/support/pdfZoomTestHelper.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const pdfZoomTestHelper = ( - $elm: JQuery, - expectedValueX: string, - expectedValueY: string -): void => { - cy.window().then((win) => { - const styles = win.getComputedStyle($elm[0]); - const scaleX = styles.getPropertyValue('--chakra-scale-x'); - const scaleY = styles.getPropertyValue('--chakra-scale-y'); - expect(scaleX).to.eq(expectedValueX); - expect(scaleY).to.eq(expectedValueY); - }); -}; diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json deleted file mode 100644 index 47dd1656..00000000 --- a/cypress/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "../tsconfig.json", - "include": ["**/*.ts", "**/*.js"], - "exclude": [], - "compilerOptions": { - "types": ["cypress", "@testing-library/cypress", "node"] - } -} diff --git a/package-lock.json b/package-lock.json index b53c950e..628b47d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "@nypl/web-reader", "version": "4.3.5", - "hasInstallScript": true, "license": "MIT", "dependencies": { "@chakra-ui/react": "2.x", @@ -25,7 +24,6 @@ "@emotion/jest": "11.11.0", "@parcel/transformer-typescript-tsc": "2.12.0", "@playwright/test": "^1.51.0", - "@testing-library/cypress": "8.0.2", "@testing-library/jest-dom": "6.1.3", "@testing-library/react": "14.0.0", "@types/debounce": "1.2.4", @@ -40,8 +38,6 @@ "@typescript-eslint/parser": "4.33.0", "babel-jest": "29.7.0", "babel-loader": "8.3.0", - "browserstack-node-sdk": "^1.34.54", - "cypress": "9.5.1", "esbuild-jest": "0.5.0", "eslint": "7.32.0", "eslint-config-prettier": "8.10.0", @@ -1798,16 +1794,6 @@ "node": ">=0.1.95" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -1830,66 +1816,6 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@cypress/request": { - "version": "2.88.12", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.12.tgz", - "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "~6.10.3", - "safe-buffer": "^5.1.2", - "tough-cookie": "^4.1.3", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", - "dev": true, - "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" - } - }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -2593,78 +2519,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@google-cloud/compute": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/@google-cloud/compute/-/compute-4.12.0.tgz", - "integrity": "sha512-N3isWbxIMd02qzdlFFxHxEM+2B/vNgn9N7WMpteY2sfwN1yT9PJHcilKDLyw+uIwuQAoErNxBM+JOLq3r/Tv+Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "google-gax": "^4.0.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@google-cloud/container": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@google-cloud/container/-/container-5.19.0.tgz", - "integrity": "sha512-1gPAZbID65XVpQhi7nmE8BednUuxomsphc6wrkzjkq3AQqMKhnqj8Uhn4hfJgT26DSQ5IPPS9PVECS2HHV13EA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "google-gax": "^4.0.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@google-cloud/resource-manager": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@google-cloud/resource-manager/-/resource-manager-5.3.1.tgz", - "integrity": "sha512-/7fzwFY6xhvEqkTd2Li/Tg0KThuAoJSIR3zIWNsGS2VGCyqaIt6IgkzpnvFzEUWr/d5hjna+ol4J0fVTAS8puQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "google-gax": "^4.0.3" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.3.tgz", - "integrity": "sha512-FTXHdOoPbZrBjlVLHuKbDZnsTxXv2BlHF57xw6LuThXacXvtkahEPED0CKMk6obZDf65Hv4k3z62eyPNpvinIg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@grpc/proto-loader": "^0.7.13", - "@js-sdsl/ordered-map": "^4.4.2" - }, - "engines": { - "node": ">=12.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "long": "^5.0.0", - "protobufjs": "^7.2.5", - "yargs": "^17.7.2" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -2796,29 +2650,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@isaacs/fs-minipass/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -3606,200 +3437,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@js-sdsl/ordered-map": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", - "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/@jsep-plugin/assignment": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", - "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@jsep-plugin/regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", - "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - }, - "peerDependencies": { - "jsep": "^0.4.0||^1.0.0" - } - }, - "node_modules/@kubernetes/client-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@kubernetes/client-node/-/client-node-1.0.0.tgz", - "integrity": "sha512-a8NSvFDSHKFZ0sR1hbPSf8IDFNJwctEU5RodSCNiq/moRXWmrdmqhb1RRQzF+l+TSBaDgHw3YsYNxxE92STBzw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/js-yaml": "^4.0.1", - "@types/node": "^22.0.0", - "@types/node-fetch": "^2.6.9", - "@types/stream-buffers": "^3.0.3", - "@types/tar": "^6.1.1", - "@types/ws": "^8.5.4", - "form-data": "^4.0.0", - "isomorphic-ws": "^5.0.0", - "js-yaml": "^4.1.0", - "jsonpath-plus": "^10.2.0", - "node-fetch": "^2.6.9", - "openid-client": "^6.1.3", - "rfc4648": "^1.3.0", - "stream-buffers": "^3.0.2", - "tar": "^7.0.0", - "tmp-promise": "^3.0.2", - "tslib": "^2.5.0", - "ws": "^8.18.0" - } - }, - "node_modules/@kubernetes/client-node/node_modules/@types/node": { - "version": "22.14.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", - "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@kubernetes/client-node/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@kubernetes/client-node/node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@kubernetes/client-node/node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@kubernetes/client-node/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@kubernetes/client-node/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@kubernetes/client-node/node_modules/minizlib": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", - "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@kubernetes/client-node/node_modules/mkdirp": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", - "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@kubernetes/client-node/node_modules/tar": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", - "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.0.1", - "mkdirp": "^3.0.1", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@kubernetes/client-node/node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@kubernetes/client-node/node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, "node_modules/@lezer/common": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", @@ -4279,13 +3916,6 @@ "@octokit/openapi-types": "^22.0.1" } }, - "node_modules/@open-draft/until": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", - "dev": true, - "license": "MIT" - }, "node_modules/@parcel/bundler-default": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.12.0.tgz", @@ -6466,44 +6096,6 @@ "@parcel/core": "^2.12.0" } }, - "node_modules/@percy/appium-app": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@percy/appium-app/-/appium-app-2.0.10.tgz", - "integrity": "sha512-CEyeIAo8Z9oLCE8GG43hL4DMGwAM6loQc1PhObhI0eRFgUkr00u7NLykBl1FZ/3J34QtRJ7vBBaXqYGTad6RuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@percy/sdk-utils": "^1.28.2", - "tmp": "^0.2.3" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/sdk-utils": { - "version": "1.30.10", - "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.30.10.tgz", - "integrity": "sha512-EOFm6XDbXIpo1YjF+JWxNCW5TB0ZaqjQfHLtOCmffhHi2T0MCXSAHdNxeTUyADyySzWjD4bKba/PbZwwTVE8Zw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@percy/selenium-webdriver": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@percy/selenium-webdriver/-/selenium-webdriver-2.2.2.tgz", - "integrity": "sha512-ksgPO9q/twhZTSVUrw8a96iiMMi2Y+SpGtwIEyOuZtNeEqEeJH3Mta1EvEUSauTH7HjqkP3Qemh/HaWrLUDK5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@percy/sdk-utils": "^1.30.3", - "node-request-interceptor": "^0.6.3" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -6580,94 +6172,20 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", "dev": true, - "license": "BSD-3-Clause" + "dependencies": { + "@hapi/hoek": "^9.0.0" + } }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", @@ -6957,112 +6475,6 @@ "node": ">=14.16" } }, - "node_modules/@testing-library/cypress": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@testing-library/cypress/-/cypress-8.0.2.tgz", - "integrity": "sha512-KVdm7n37sg/A4e3wKMD4zUl0NpzzVhx06V9Tf0hZHZ7nrZ4yFva6Zwg2EFF1VzHkEfN/ahUzRtT1qiW+vuWnJw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.14.6", - "@testing-library/dom": "^8.1.0" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "cypress": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.20.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@testing-library/jest-dom": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz", @@ -7373,26 +6785,6 @@ "@babel/types": "^7.20.7" } }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/caseless": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/debounce": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", @@ -7538,13 +6930,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@types/js-yaml": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", - "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", @@ -7568,16 +6953,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/lodash": { "version": "4.17.0", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", @@ -7591,13 +6966,6 @@ "@types/lodash": "*" } }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", @@ -7613,33 +6981,6 @@ "undici-types": "~5.26.4" } }, - "node_modules/@types/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -7698,46 +7039,6 @@ "@types/react-router": "*" } }, - "node_modules/@types/request": { - "version": "2.48.12", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", - "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.0" - } - }, - "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.3.tgz", - "integrity": "sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.35", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz", @@ -7754,78 +7055,18 @@ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", "devOptional": true }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", - "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", - "dev": true - }, - "node_modules/@types/sizzle": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, - "node_modules/@types/stream-buffers": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.7.tgz", - "integrity": "sha512-azOCy05sXVXrO+qklf0c/B07H/oHaIuDDAiHPVwlk3A9Ek+ksHyTeMajLZl3r76FxpPpxem//4Te61G1iW3Giw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/@types/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "minipass": "^4.0.0" - } - }, - "node_modules/@types/tar/node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", @@ -7841,16 +7082,6 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "4.33.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz", @@ -8289,19 +7520,6 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "optional": true }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/abortcontroller-polyfill": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", @@ -8501,107 +7719,6 @@ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "optional": true }, - "node_modules/arch": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", - "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/archiver": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-6.0.2.tgz", - "integrity": "sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^4.0.1", - "async": "^3.2.4", - "buffer-crc32": "^0.2.1", - "readable-stream": "^3.6.0", - "readdir-glob": "^1.1.2", - "tar-stream": "^3.0.0", - "zip-stream": "^5.0.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/archiver-utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-4.0.1.tgz", - "integrity": "sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob": "^8.0.0", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash": "^4.17.15", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/archiver-utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/archiver-utils/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", @@ -8940,12 +8057,6 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true - }, "node_modules/async-retry": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", @@ -8970,15 +8081,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -9006,89 +8108,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sdk": { - "version": "2.1692.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1692.0.tgz", - "integrity": "sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "buffer": "4.9.2", - "events": "1.1.1", - "ieee754": "1.1.13", - "jmespath": "0.16.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "util": "^0.12.4", - "uuid": "8.0.0", - "xml2js": "0.6.2" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aws-sdk/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/aws-sdk/node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/aws-sdk/node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/aws-sdk/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/aws-sdk/node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/aws-sdk/node_modules/uuid": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", - "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -9153,13 +8172,6 @@ "dequal": "^2.0.3" } }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -9393,14 +8405,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "devOptional": true }, - "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "dev": true, - "license": "Apache-2.0", - "optional": true - }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -9502,16 +8506,6 @@ "node": "*" } }, - "node_modules/bignumber.js": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.2.1.tgz", - "integrity": "sha512-+NzaKgOUvInq9TIUZ1+DRspzf/HApkCwD4btfuasFTdrfnOxqx853TgDpMolp+uv4RpRp7bPcEU2zKr9+fRmyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", @@ -9557,12 +8551,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/blob-util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", - "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", - "dev": true - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -9629,14 +8617,6 @@ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "license": "MIT" - }, "node_modules/boxen": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", @@ -9822,567 +8802,112 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/browserstack-local": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/browserstack-local/-/browserstack-local-1.5.6.tgz", - "integrity": "sha512-s0GadAkyE1XHxnmymb9atogTZbA654bcFpqGkcYEtYPaPvuvVfSXR0gw8ojn0I0Td2HEMJcGtdrkBjb1Fi/HmQ==", + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, - "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "https-proxy-agent": "^5.0.1", - "is-running": "^2.1.0", - "ps-tree": "=1.2.0", - "temp-fs": "^0.9.9" - } - }, - "node_modules/browserstack-node-sdk": { - "version": "1.34.54", - "resolved": "https://registry.npmjs.org/browserstack-node-sdk/-/browserstack-node-sdk-1.34.54.tgz", - "integrity": "sha512-iADA1lRSdzjEhADnWHsiF87thmrEW5tCXVjzkBhHPANtMzI7hKRiqMnen3hDl+uKLLeLVokobXthF2O0zCeJ/A==", - "dev": true, - "license": "SEE LICENSE IN LICENSE.md", - "dependencies": { - "@google-cloud/compute": "^4.0.1", - "@google-cloud/container": "^5.2.0", - "@google-cloud/resource-manager": "^5.0.1", - "@kubernetes/client-node": "1.0.0", - "@percy/appium-app": "^2.0.9", - "@percy/selenium-webdriver": "^2.2.2", - "archiver": "^6.0.1", - "aws-sdk": "^2.1346.0", - "bluebird": "^3.7.2", - "browserstack-local": "^1.5.3", - "chalk": "^4.1.2", - "cheerio": "1.0.0-rc.11", - "dotenv": "^16.0.3", - "emittery": "^0.11.0", - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "getos": "^3.2.1", - "git-last-commit": "^1.0.1", - "git-repo-info": "^2.1.1", - "gitconfiglocal": "^2.1.0", - "global-agent": "^3.0.0", - "googleapis": "^126.0.1", - "got": "^11.8.6", - "jest-worker": "^28.1.0", - "js-yaml": "^4.1.0", - "js-yaml-cloudformation-schema": "^1.0.0", - "js-yaml-js-types": "^1.0.1", - "lodash": "^4.17.21", - "monkeypatch": "^1.0.0", - "p-limit": "^3.1.0", - "pac-proxy-agent": "^7.0.1", - "reconnecting-websocket": "^4.4.0", - "stack-trace": "0.0.10", - "table": "^6.8.1", - "update-notifier": "6.0.2", - "uuid": "^8.3.2", - "windows-release": "^5.1.0", - "winston": "^3.8.2", - "winston-transport": "^4.5.0", - "ws": "^8.17.1", - "yargs": "^17.5.1", - "yauzl": "^2.10.0" + "fast-json-stable-stringify": "2.x" }, - "bin": { - "browserstack-cli": "src/bin/runner.js", - "browserstack-node-sdk": "src/bin/runner.js", - "setup": "src/bin/setup.js" + "engines": { + "node": ">= 6" } }, - "node_modules/browserstack-node-sdk/node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "dependencies": { + "node-int64": "^0.4.0" } }, - "node_modules/browserstack-node-sdk/node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/browserstack-node-sdk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "*" } }, - "node_modules/browserstack-node-sdk/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, - "node_modules/browserstack-node-sdk/node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", "dev": true, - "license": "MIT", "engines": { - "node": ">=10.6.0" + "node": ">=0.10" } }, - "node_modules/browserstack-node-sdk/node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", "dev": true, - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.2.0" } }, - "node_modules/browserstack-node-sdk/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "run-applescript": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/browserstack-node-sdk/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/bundle-require": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.2.tgz", + "integrity": "sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "load-tsconfig": "^0.2.3" }, "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/browserstack-node-sdk/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/browserstack-node-sdk/node_modules/dotenv": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", - "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/browserstack-node-sdk/node_modules/emittery": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.11.0.tgz", - "integrity": "sha512-S/7tzL6v5i+4iJd627Nhv9cLFIo5weAIlGccqJFpnBoDB8U1TF2k5tez4J/QNuxyyhWuFqHg1L84Kd3m7iXg6g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/browserstack-node-sdk/node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserstack-node-sdk/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/browserstack-node-sdk/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/browserstack-node-sdk/node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/browserstack-node-sdk/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/browserstack-node-sdk/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/browserstack-node-sdk/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/browserstack-node-sdk/node_modules/js-yaml-js-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-yaml-js-types/-/js-yaml-js-types-1.0.1.tgz", - "integrity": "sha512-5tpfyORs8OQ43alNERbWfYRCtWgykvzYgY46fUhrQi2+kS7N0NuuFYLZ/IrfmVm5muLTndeMublgraXiFRjEPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "esprima": "^4.0.1" - }, - "peerDependencies": { - "js-yaml": "4.x" - } - }, - "node_modules/browserstack-node-sdk/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/browserstack-node-sdk/node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/browserstack-node-sdk/node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/browserstack-node-sdk/node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/browserstack-node-sdk/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/browserstack-node-sdk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserstack-node-sdk/node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/browserstack-node-sdk/node_modules/update-notifier/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "dev": true, - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bundle-require": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-4.0.2.tgz", - "integrity": "sha512-jwzPOChofl67PSTW2SGubV9HBQAhhR2i6nskiOThauo9dzwDUgOWQScFVaJkjEfYX+UXiD+LEx8EblQMc2wIag==", - "dev": true, - "dependencies": { - "load-tsconfig": "^0.2.3" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "esbuild": ">=0.17" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.17" } }, "node_modules/bytes": { @@ -10471,15 +8996,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cachedir": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", - "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -10640,159 +9156,6 @@ "node": ">= 0.8.0" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.11", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", - "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", - "dev": true, - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cheerio-select/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/cheerio-select/node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/cheerio/node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, "node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -10947,21 +9310,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-table3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", - "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -11016,29 +9364,6 @@ "node": ">=0.8" } }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/clsx": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", @@ -11076,17 +9401,6 @@ "node": ">=0.10.0" } }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -11100,17 +9414,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", @@ -11131,17 +9434,6 @@ "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", "dev": true }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -11159,24 +9451,6 @@ "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.4.1.tgz", "integrity": "sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==" }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -11184,28 +9458,12 @@ "dev": true }, "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/compress-commons": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-5.0.3.tgz", - "integrity": "sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "crc32-stream": "^5.0.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/compute-scroll-into-view": { @@ -11369,33 +9627,6 @@ "node": ">=10" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/crc32-stream": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-5.0.1.tgz", - "integrity": "sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "crc-32": "^1.2.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -11547,6 +9778,8 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -11563,6 +9796,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -11577,6 +9812,8 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -11592,6 +9829,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -11702,187 +9941,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "node_modules/cypress": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.5.1.tgz", - "integrity": "sha512-H7lUWB3Svr44gz1rNnj941xmdsCljXoJa2cDneAltjI9leKLMQLm30x6jLlpQ730tiVtIbW5HdUmBzPzwzfUQg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@cypress/request": "^2.88.10", - "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", - "@types/sinonjs__fake-timers": "8.1.1", - "@types/sizzle": "^2.3.2", - "arch": "^2.2.0", - "blob-util": "^2.0.2", - "bluebird": "^3.7.2", - "buffer": "^5.6.0", - "cachedir": "^2.3.0", - "chalk": "^4.1.0", - "check-more-types": "^2.24.0", - "cli-cursor": "^3.1.0", - "cli-table3": "~0.6.1", - "commander": "^5.1.0", - "common-tags": "^1.8.0", - "dayjs": "^1.10.4", - "debug": "^4.3.2", - "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", - "execa": "4.1.0", - "executable": "^4.1.1", - "extract-zip": "2.0.1", - "figures": "^3.2.0", - "fs-extra": "^9.1.0", - "getos": "^3.2.1", - "is-ci": "^3.0.0", - "is-installed-globally": "~0.4.0", - "lazy-ass": "^1.6.0", - "listr2": "^3.8.3", - "lodash": "^4.17.21", - "log-symbols": "^4.0.0", - "minimist": "^1.2.5", - "ospath": "^1.2.2", - "pretty-bytes": "^5.6.0", - "proxy-from-env": "1.0.0", - "request-progress": "^3.0.0", - "semver": "^7.3.2", - "supports-color": "^8.1.1", - "tmp": "~0.2.1", - "untildify": "^4.0.0", - "yauzl": "^2.10.0" - }, - "bin": { - "cypress": "bin/cypress" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.63", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", - "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==", - "dev": true - }, - "node_modules/cypress/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cypress/node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cypress/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/cypress/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cypress/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cypress/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cypress/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/cypress/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -11975,12 +10033,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", - "dev": true - }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -12315,13 +10367,6 @@ "node": ">=8" } }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT" - }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -12557,19 +10602,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" - } - }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -12592,16 +10624,6 @@ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -12641,13 +10663,6 @@ "node": ">= 4" } }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true, - "license": "MIT" - }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -12920,13 +10935,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT" - }, "node_modules/esbuild": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", @@ -13995,22 +12003,6 @@ "through": "~2.3.1" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "dev": true - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -14027,41 +12019,6 @@ "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, - "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "dev": true, - "dependencies": { - "pify": "^2.2.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -14335,26 +12292,6 @@ "node": ">=0.10.0" } }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -14370,13 +12307,6 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -14432,13 +12362,6 @@ "pend": "~1.2.0" } }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "dev": true, - "license": "MIT" - }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -14651,13 +12574,6 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true, - "license": "MIT" - }, "node_modules/focus-lock": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/focus-lock/-/focus-lock-1.3.5.tgz", @@ -14861,30 +12777,15 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" + "node": ">= 0.6" } }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -15035,76 +12936,6 @@ "node": ">=10" } }, - "node_modules/gaxios": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", - "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "https-proxy-agent": "^7.0.1", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.9", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/gaxios/node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/gaxios/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/gcp-metadata": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", - "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "gaxios": "^6.1.1", - "google-logging-utils": "^0.0.2", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -15206,21 +13037,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", @@ -15276,15 +13092,6 @@ "node": ">=0.10.0" } }, - "node_modules/getos": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", - "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", - "dev": true, - "dependencies": { - "async": "^3.2.0" - } - }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -15294,23 +13101,6 @@ "assert-plus": "^1.0.0" } }, - "node_modules/git-last-commit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.1.tgz", - "integrity": "sha512-FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==", - "dev": true, - "license": "MIT" - }, - "node_modules/git-repo-info": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", - "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0" - } - }, "node_modules/git-up": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", @@ -15330,23 +13120,6 @@ "git-up": "^7.0.0" } }, - "node_modules/gitconfiglocal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz", - "integrity": "sha512-qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==", - "dev": true, - "license": "BSD", - "dependencies": { - "ini": "^1.3.2" - } - }, - "node_modules/gitconfiglocal/node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -15386,37 +13159,6 @@ "dev": true, "peer": true }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -15476,118 +13218,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/google-auth-library": { - "version": "9.15.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", - "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^6.1.1", - "gcp-metadata": "^6.1.0", - "gtoken": "^7.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/google-gax": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-4.6.0.tgz", - "integrity": "sha512-zKKLeLfcYBVOzzM48Brtn4EQkKcTli9w6c1ilzFK2NbJvcd4ATD8/XqFExImvE/W5IwMlKKwa5qqVufji3ioNQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@grpc/grpc-js": "^1.10.9", - "@grpc/proto-loader": "^0.7.13", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^4.0.0", - "google-auth-library": "^9.3.0", - "node-fetch": "^2.7.0", - "object-hash": "^3.0.0", - "proto3-json-serializer": "^2.0.2", - "protobufjs": "^7.3.2", - "retry-request": "^7.0.0", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/google-gax/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/google-logging-utils": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-0.0.2.tgz", - "integrity": "sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=14" - } - }, - "node_modules/googleapis": { - "version": "126.0.1", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-126.0.1.tgz", - "integrity": "sha512-4N8LLi+hj6ytK3PhE52KcM8iSGhJjtXnCDYB4fp6l+GdLbYz4FoDmx074WqMbl7iYMDN87vqD/8drJkhxW92mQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "google-auth-library": "^9.0.0", - "googleapis-common": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/googleapis-common": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-7.2.0.tgz", - "integrity": "sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "extend": "^3.0.2", - "gaxios": "^6.0.3", - "google-auth-library": "^9.7.0", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/googleapis-common/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -15644,20 +13274,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/gtoken": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", - "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "gaxios": "^6.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -15819,19 +13435,6 @@ "node": ">=0.10.0" } }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -15852,13 +13455,6 @@ "he": "bin/he" } }, - "node_modules/headers-utils": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-1.2.5.tgz", - "integrity": "sha512-DAzV5P/pk3wTU/8TLZN+zFTDv4Xa1QDTU8pRvovPetcOMbmqq8CwsAvZBLPZHH6usxyy31zMp7I4aCYb6XIf6w==", - "dev": true, - "license": "MIT" - }, "node_modules/hey-listen": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", @@ -16088,20 +13684,6 @@ "node": ">= 6" } }, - "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^2.0.2", - "sshpk": "^1.14.1" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", @@ -16128,15 +13710,6 @@ "node": ">= 6" } }, - "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/husky": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", @@ -16996,13 +14569,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-running": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-running/-/is-running-2.1.0.tgz", - "integrity": "sha512-mjJd3PujZMl7j+D395WTIO5tU5RIDBfVSRtRR4VOJou3H66E38UjbjvDGh3slJzPuolsb+yQFqwHNNdyp5jg3w==", - "dev": true, - "license": "BSD" - }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", @@ -17178,16 +14744,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -17209,16 +14765,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ws": "*" - } - }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -19657,16 +17203,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jmespath": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", - "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/joi": { "version": "17.12.3", "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.3.tgz", @@ -19680,16 +17216,6 @@ "@sideway/pinpoint": "^2.0.0" } }, - "node_modules/jose": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.0.10.tgz", - "integrity": "sha512-skIAxZqcMkOrSwjJvplIPYrlXGpxTPnro2/QWTDCxAdWQrSTV5/KqspMWmi5WAx5+ULswASJiZ0a+1B/Lxt9cw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/joycon": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", @@ -19717,16 +17243,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/js-yaml-cloudformation-schema": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/js-yaml-cloudformation-schema/-/js-yaml-cloudformation-schema-1.0.0.tgz", - "integrity": "sha512-eokVVPLsjLFuuCRQWIIaE5fX7qPUNRAAmJFXSvtzUnJcdNS0ZtAPdaFcwCrTHM+owGcBR82rlpd0b6bu8pFwQA==", - "dev": true, - "license": "ISC", - "dependencies": { - "js-yaml": "^3.7.0" - } - }, "node_modules/jsbn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", @@ -19804,16 +17320,6 @@ "node": ">= 6" } }, - "node_modules/jsep": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", - "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.16.0" - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -19826,16 +17332,6 @@ "node": ">=4" } }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -19877,56 +17373,22 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonpath-plus": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.3.0.tgz", - "integrity": "sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jsep-plugin/assignment": "^1.3.0", - "@jsep-plugin/regex": "^1.0.4", - "jsep": "^1.4.0" - }, - "bin": { - "jsonpath": "bin/jsonpath-cli.js", - "jsonpath-plus": "bin/jsonpath-cli.js" + "json5": "lib/cli.js" }, "engines": { - "node": ">=18.0.0" + "node": ">=6" } }, - "node_modules/jsprim": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", - "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "engines": [ - "node >=0.6.0" - ], "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/jsx-ast-utils": { @@ -19944,29 +17406,6 @@ "node": ">=4.0" } }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -19994,13 +17433,6 @@ "node": ">=6" } }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true, - "license": "MIT" - }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -20043,59 +17475,6 @@ "node": "> 0.8" } }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lazystream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lazystream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/lazystream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lazystream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -20565,13 +17944,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.capitalize": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", @@ -20613,12 +17985,6 @@ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -20805,41 +18171,6 @@ "node": ">=8" } }, - "node_modules/logform": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", - "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/logform/node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -20966,19 +18297,6 @@ "node": ">=0.10.0" } }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -21223,13 +18541,6 @@ "node": "*" } }, - "node_modules/monkeypatch": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/monkeypatch/-/monkeypatch-1.0.0.tgz", - "integrity": "sha512-6tG0IrCUUIBuAspnbdmOAd+D/AptB/ya9JLujp88NIAuFuTGdGvCKtDkc6pwNOcIJ6nKLm3FjJlaCdx8vr3r2w==", - "dev": true, - "license": "MIT" - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -21492,19 +18803,6 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "node_modules/node-request-interceptor": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/node-request-interceptor/-/node-request-interceptor-0.6.3.tgz", - "integrity": "sha512-8I2V7H2Ch0NvW7qWcjmS0/9Lhr0T6x7RD6PDirhvWEkUQvy83x8BA4haYMr09r/rig7hcgYSjYh6cd4U7G1vLA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@open-draft/until": "^1.0.3", - "debug": "^4.3.0", - "headers-utils": "^1.2.0", - "strict-event-emitter": "^0.1.0" - } - }, "node_modules/node-stream-zip": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", @@ -21632,16 +18930,6 @@ "node": "*" } }, - "node_modules/oauth4webapi": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.5.0.tgz", - "integrity": "sha512-DF3mLWNuxPkxJkHmWxbSFz4aE5CjWOsm465VBfBdWzmzX4Mg3vF8icxK+iKqfdWrIumBJ2TaoNQWx+SQc2bsPQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -21701,16 +18989,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -21888,16 +19166,6 @@ "wrappy": "1" } }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", @@ -21931,20 +19199,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/openid-client": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-6.4.2.tgz", - "integrity": "sha512-4zBRTsKNRTyKxV5cFzl+LtamsYx/FsWhejjax+qgMkFNGtLj1gMtng2iSoJqqWUT0FHU3IUhO53aeBePg7Sp/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "jose": "^6.0.10", - "oauth4webapi": "^3.4.1" - }, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -22149,12 +19403,6 @@ "node": ">=0.10.0" } }, - "node_modules/ospath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", - "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", - "dev": true - }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -22629,36 +19877,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -22817,15 +20035,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -23045,18 +20254,6 @@ "node": ">=10.13.0" } }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -23188,44 +20385,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/proto3-json-serializer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz", - "integrity": "sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "protobufjs": "^7.2.5" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/protobufjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz", - "integrity": "sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==", - "dev": true, - "hasInstallScript": true, - "license": "BSD-3-Clause", - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/protocols": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.1.tgz", @@ -23317,12 +20476,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "node_modules/proxy-from-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", - "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", - "dev": true - }, "node_modules/ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", @@ -23394,31 +20547,6 @@ } ] }, - "node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -23949,50 +21077,17 @@ } }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdir-glob": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "minimatch": "^5.1.0" - } - }, - "node_modules/readdir-glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/readdir-glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "devOptional": true, "dependencies": { - "brace-expansion": "^2.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, "node_modules/readdirp": { @@ -24019,13 +21114,6 @@ "node": ">= 0.10" } }, - "node_modules/reconnecting-websocket": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz", - "integrity": "sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng==", - "dev": true, - "license": "MIT" - }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -24557,15 +21645,6 @@ "node": ">= 6" } }, - "node_modules/request-progress": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", - "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", - "dev": true, - "dependencies": { - "throttleit": "^1.0.0" - } - }, "node_modules/request-promise-core": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", @@ -24809,21 +21888,6 @@ "node": "*" } }, - "node_modules/retry-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", - "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/request": "^2.48.8", - "extend": "^3.0.2", - "teeny-request": "^9.0.0" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -24834,13 +21898,6 @@ "node": ">=0.10.0" } }, - "node_modules/rfc4648": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.4.tgz", - "integrity": "sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==", - "dev": true, - "license": "MIT" - }, "node_modules/rfdc": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", @@ -24862,31 +21919,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/roarr/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -25029,16 +22061,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -25339,13 +22361,6 @@ "which": "bin/which" } }, - "node_modules/sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", - "dev": true, - "license": "ISC" - }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -25492,35 +22507,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -25749,23 +22735,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true, - "license": "MIT" - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -26321,16 +23290,6 @@ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -26500,16 +23459,6 @@ "node": ">= 0.4" } }, - "node_modules/stream-buffers": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.3.tgz", - "integrity": "sha512-pqMqwQCso0PBJt2PQmDO0cFj0lyqmiwOMiMSkVtRokl7e+ZTRYgDHKnuZNbqjiJXgsg4nuqtD/zxuo9KqTp0Yw==", - "dev": true, - "license": "Unlicense", - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", @@ -26519,44 +23468,6 @@ "duplexer": "~0.1.1" } }, - "node_modules/stream-events": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", - "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", - "dev": true, - "license": "MIT", - "dependencies": { - "stubs": "^3.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/streamx": { - "version": "2.22.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", - "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/strict-event-emitter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.1.0.tgz", - "integrity": "sha512-8hSYfU+WKLdNcHVXJ0VxRXiPESalzRe7w1l8dg9+/22Ry+iZQUoQuoJ27R30GMD1TiyYINWsIEGY05WrskhSKw==", - "dev": true, - "license": "MIT" - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -26800,13 +23711,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stubs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", - "integrity": "sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==", - "dev": true, - "license": "MIT" - }, "node_modules/style-value-types": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.4.tgz", @@ -27116,82 +24020,12 @@ "node": ">=10" } }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "optional": true }, - "node_modules/teeny-request": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", - "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.9", - "stream-events": "^1.0.5", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/teeny-request/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/temp-fs": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/temp-fs/-/temp-fs-0.9.9.tgz", - "integrity": "sha512-WfecDCR1xC9b0nsrzSaxPf3ZuWeWLUWblW4vlDQAa1biQaKHiImHnJfeQocQe/hXKMcolRzgkcVX/7kK4zoWbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "rimraf": "~2.5.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/temp-fs/node_modules/rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha512-Lw7SHMjssciQb/rRz7JyPIy9+bbUshEucPoLRvWqy09vC5zQixl8Uet+Zl+SROBB/JMWHJRdCk1qdxNWHNMvlQ==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.0.5" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -27373,23 +24207,6 @@ "node": ">=8" } }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true, - "license": "MIT" - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -27417,15 +24234,6 @@ "node": ">=0.8" } }, - "node_modules/throttleit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", - "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -27449,25 +24257,6 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tmp": "^0.2.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -27601,16 +24390,6 @@ "tree-kill": "cli.js" } }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -28647,15 +25426,6 @@ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/unzipper": { "version": "0.10.14", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", @@ -28839,17 +25609,6 @@ "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "node_modules/url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, "node_modules/url-join": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", @@ -28869,20 +25628,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==", - "dev": true, - "license": "BSD" - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true, - "license": "MIT" - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -28981,15 +25726,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", @@ -29529,54 +26265,6 @@ "node": ">=10.17.0" } }, - "node_modules/winston": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", - "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.7.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.9.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", - "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "logform": "^2.7.0", - "readable-stream": "^3.6.2", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston/node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -29740,30 +26428,6 @@ "node": ">=12" } }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "dev": true, - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -29868,21 +26532,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zip-stream": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-5.0.2.tgz", - "integrity": "sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "archiver-utils": "^4.0.1", - "compress-commons": "^5.0.1", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">= 12.0.0" - } } } } diff --git a/package.json b/package.json index 60027848..238eb20c 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,6 @@ "test": "jest --watch", "test:ci": "jest --ci --silent --coverage --maxWorkers=2", "test:ci:integration": "start-server-and-test example http://localhost:1234 playwright", - "cypress:open": "cypress open", - "cypress:run": "cypress run", - "cypress:run:chrome": "cypress run --browser chrome", "prettier": "prettier --write --ignore-path .eslintignore .", "prettier:check": "prettier --check --ignore-path .eslintignore .", "lint": "eslint --fix .", @@ -33,12 +30,7 @@ "cors-proxy": "node example/cors-proxy.js", "release": "release-it --verbose", "release:alpha": "release-it --verbose --preRelease=alpha", - "playwright": "npx playwright test", - "postinstall": "npm update browserstack-node-sdk", - "test-browserstack": "browserstack-node-sdk jest --watch", - "test:ci-browserstack": "browserstack-node-sdk jest --ci --silent --coverage --maxWorkers=2", - "cors-proxy-browserstack": "browserstack-node-sdk node example/cors-proxy.js", - "playwright-browserstack": "npx browserstack-node-sdk playwright test" + "playwright": "npx playwright test" }, "peerDependencies": { "@chakra-ui/react": "2.x", @@ -77,7 +69,6 @@ "@emotion/jest": "11.11.0", "@parcel/transformer-typescript-tsc": "2.12.0", "@playwright/test": "^1.51.0", - "@testing-library/cypress": "8.0.2", "@testing-library/jest-dom": "6.1.3", "@testing-library/react": "14.0.0", "@types/debounce": "1.2.4", @@ -92,8 +83,6 @@ "@typescript-eslint/parser": "4.33.0", "babel-jest": "29.7.0", "babel-loader": "8.3.0", - "browserstack-node-sdk": "^1.34.54", - "cypress": "9.5.1", "esbuild-jest": "0.5.0", "eslint": "7.32.0", "eslint-config-prettier": "8.10.0",