diff --git a/.github/workflows/build-npm-release.yml b/.github/workflows/build-npm-release.yml
deleted file mode 100644
index b8d378085..000000000
--- a/.github/workflows/build-npm-release.yml
+++ /dev/null
@@ -1,246 +0,0 @@
-# This workflow will do a clean install of node dependencies, build the source code,
-# run unit tests, perform a SonarCloud scan and publish NPM package ONLY on a tagged release.
-
-# For more information see:
-# https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
-# Common FOLIO configurable env:
-# - YARN_TEST_OPTIONS (options to pass to 'yarn test')
-# - SQ_ROOT_DIR (root SQ directory to scan relative to top-level directory)
-# - PUBLISH_MOD_DESCRIPTOR (boolean 'true' or 'false')
-# - COMPILE_TRANSLATION_FILES (boolean 'true' or 'false')
-
-name: buildNPM Release
-on:
- push:
- tags:
- - 'v[0-9]+.[0-9]+.[0-9]+*'
- workflow_dispatch:
-
-jobs:
- build-npm-release:
- if : ${{ startsWith(github.ref, 'refs/tags/v') }}
- env:
- YARN_TEST_OPTIONS: '--karma.singleRun --karma.browsers ChromeDocker --karma.reporters mocha junit --coverage'
- SQ_ROOT_DIR: './src'
- COMPILE_TRANSLATION_FILES: 'true'
- PUBLISH_MOD_DESCRIPTOR: 'true'
- FOLIO_NPM_REGISTRY: 'https://repository.folio.org/repository/npm-folio/'
- FOLIO_MD_REGISTRY: 'https://folio-registry.dev.folio.org'
- NODEJS_VERSION: '18'
- JEST_JUNIT_OUTPUT_DIR: 'artifacts/jest-junit'
- JEST_COVERAGE_REPORT_DIR: 'artifacts/coverage-jest/lcov-report/'
- BIGTEST_JUNIT_OUTPUT_DIR: 'artifacts/runTest'
- BIGTEST_COVERAGE_REPORT_DIR: 'artifacts/coverage/lcov-report/'
- OKAPI_PULL: '{ "urls" : [ "https://folio-registry.dev.folio.org" ] }'
- SQ_LCOV_REPORT: 'artifacts/coverage-jest/lcov.info'
- SQ_EXCLUSIONS: '**/platform/alias-service.js,**/docs/**,**/node_modules/**,**/examples/**,**/artifacts/**,**/ci/**,Jenkinsfile,**/LICENSE,**/*.css,**/*.md,**/*.json,**/tests/**,**/stories/*.js,**/test/**,**/.stories.js,**/resources/bigtest/interactors/**,**/resources/bigtest/network/**,**/*-test.js,**/*.test.js,**/*-spec.js,**/karma.conf.js,**/jest.config.js'
-
- runs-on: ubuntu-latest
- steps:
- - uses: folio-org/checkout@v2
- with:
- fetch-depth: 0
-
- # Runs a single command using the runners shell
- - name: Print tag info
- run: echo "Building release tag, ${GITHUB_REF}"
-
- - name: Set TAG_VERSION
- run: echo "TAG_VERSION=$(echo ${GITHUB_REF#refs/tags/v})" >> $GITHUB_ENV
-
- - name: Get version from package.json
- id: package_version
- uses: notiz-dev/github-action-json-property@release
- with:
- path: 'package.json'
- prop_path: 'version'
-
- - name: Check matching tag and version in package.json
- if: ${{ env.TAG_VERSION != steps.package_version.outputs.prop }}
- run: |
- echo "Tag version, ${TAG_VERSION}, does not match package.json version, ${PACKAGE_VERSION}."
- exit 1
- env:
- PACKAGE_VERSION: ${{ steps.package_version.outputs.prop }}
-
- - name: Setup kernel for react native, increase watchers
- run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- - name: Use Node.js
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODEJS_VERSION }}
- check-latest: true
- always-auth: true
-
- - name: Set yarn config
- run: yarn config set @folio:registry $FOLIO_NPM_REGISTRY
-
- - name: Run yarn install
- run: yarn install --ignore-scripts
-
- - name: Run yarn list
- run: yarn list --pattern @folio
-
- - name: Run yarn lint
- run: yarn lint
- continue-on-error: true
-
- - name: Run yarn test
- run: xvfb-run --server-args="-screen 0 1024x768x24" yarn test $YARN_TEST_OPTIONS
-
- - name: Run yarn formatjs-compile
- if: ${{ env.COMPILE_TRANSLATION_FILES == 'true' }}
- run: yarn formatjs-compile
-
- - name: Generate FOLIO module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- run: yarn build-mod-descriptor
-
- - name: Print FOLIO module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- run: cat module-descriptor.json
-
- - name: Read module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- id: moduleDescriptor
- uses: juliangruber/read-file-action@v1
- with:
- path: ./module-descriptor.json
-
- - name: Docker registry login
- run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login https://docker.io/v2/ -u "${{ secrets.DOCKER_USER }}" --password-stdin
-
- - name: Start a local instance of Okapi
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- run: |
- docker pull folioorg/okapi:latest
- docker run --name okapi -t -detach folioorg/okapi:latest dev
- echo "OKAPI_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' okapi)" >> $GITHUB_ENV
- sleep 10
-
- - name: Pull all Module descriptors to local Okapi instance
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- uses: fjogeleit/http-request-action@master
- with:
- url: http://${{ env.OKAPI_IP }}:9130/_/proxy/pull/modules
- method: 'POST'
- contentType: 'application/json; charset=utf-8'
- customHeaders: '{ "Accept": "application/json; charset=utf-8" }'
- data: ${{ env.OKAPI_PULL }}
- timeout: 60000
-
- - name: Perform local Okapi dependency check
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- uses: fjogeleit/http-request-action@master
- with:
- url: http://${{ env.OKAPI_IP }}:9130/_/proxy/modules?preRelease=false&npmSnapshot=false
- method: 'POST'
- contentType: 'application/json; charset=utf-8'
- customHeaders: '{ "Accept": "application/json; charset=utf-8" }'
- data: ${{ steps.moduleDescriptor.outputs.content }}
-
- - name: Publish Jest unit test results
- uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1
- if: always()
- with:
- github_token: ${{ github.token }}
- files: "${{ env.JEST_JUNIT_OUTPUT_DIR }}/*.xml"
- check_name: Jest Unit Test Results
- comment_mode: update last
- comment_title: Jest Unit Test Statistics
-
- - name: Publish Jest coverage report
- uses: actions/upload-artifact@v2
- if: always()
- with:
- name: jest-coverage-report
- path: ${{ env.JEST_COVERAGE_REPORT_DIR }}
- retention-days: 30
-
- - name: Publish BigTest unit test results
- uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1
- if: always()
- with:
- github_token: ${{ github.token }}
- files: "${{ env.BIGTEST_JUNIT_OUTPUT_DIR }}/*.xml"
- check_name: BigTest Unit Test Results
- comment_mode: update last
- comment_title: BigTest Unit Test Statistics
-
- - name: Publish BigTest coverage report
- uses: actions/upload-artifact@v2
- if: always()
- with:
- name: bigtest-coverage-report
- path: ${{ env.BIGTEST_COVERAGE_REPORT_DIR }}
- retention-days: 30
-
- - name: Publish yarn.lock
- uses: actions/upload-artifact@v2
- if: failure()
- with:
- name: yarn.lock
- path: yarn.lock
- retention-days: 5
-
- - name: Set default branch as env variable
- run: echo "DEFAULT_BRANCH=${{ github.event.repository.default_branch }}" >> $GITHUB_ENV
-
- - name: Fetch branches for SonarCloud
- run: git fetch --no-tags ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} +refs/heads/${{ env.DEFAULT_BRANCH }}:refs/remotes/origin/${{ env.DEFAULT_BRANCH }}
-
- - name: Run SonarCloud scan
- uses: sonarsource/sonarcloud-github-action@master
- with:
- args: >
- -Dsonar.organization=folio-org
- -Dsonar.projectKey=org.folio:${{ github.event.repository.name }}
- -Dsonar.projectName=${{ github.event.repository.name }}
- -Dsonar.sources=${{ env.SQ_ROOT_DIR }}
- -Dsonar.language=js
- -Dsonar.javascript.lcov.reportPaths=${{ env.SQ_LCOV_REPORT }}
- -Dsonar.exclusions=${{ env.SQ_EXCLUSIONS }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
-
- - name: Set up NPM environment for publishing
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODEJS_VERSION }}
- check-latest: true
- always-auth: true
-
- - name: Set _auth in .npmrc
- run: |
- npm config set @folio:registry $FOLIO_NPM_REGISTRY
- npm config set //repository.folio.org/repository/npm-folio/:_auth $NODE_AUTH_TOKEN
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
-
- - name: Exclude some CI-generated artifacts in package
- run: |
- echo "artifacts" >> .npmignore
- echo ".github" >> .npmignore
- echo ".scannerwork" >> .npmignore
- cat .npmignore
-
- - name: Publish NPM to FOLIO NPM registry
- run: npm publish
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
-
- - name: Publish module descriptor to FOLIO registry
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- id: modDescriptorPost
- uses: fjogeleit/http-request-action@master
- with:
- url: ${{ env.FOLIO_MD_REGISTRY }}/_/proxy/modules
- method: 'POST'
- contentType: 'application/json; charset=utf-8'
- customHeaders: '{ "Accept": "application/json; charset=utf-8" }'
- data: ${{ steps.moduleDescriptor.outputs.content }}
- username: ${{ secrets.FOLIO_REGISTRY_USERNAME }}
- password: ${{ secrets.FOLIO_REGISTRY_PASSWORD }}
-
diff --git a/.github/workflows/build-npm.yml b/.github/workflows/build-npm.yml
deleted file mode 100644
index 860bd77de..000000000
--- a/.github/workflows/build-npm.yml
+++ /dev/null
@@ -1,201 +0,0 @@
-#
-# This workflow will do a clean install of node dependencies, build the source code,
-# run unit tests, perform a Sonarqube scan, and publish NPM artifacts from master/main.
-
-
-# For more information see:
-# https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
-# Common FOLIO configurable environment variables to set:
-# - YARN_TEST_OPTIONS (options to pass to 'yarn test')
-# - SQ_ROOT_DIR (root SQ directory to scan relative to top-level directory)
-# - PUBLISH_MOD_DESCRIPTOR (boolean 'true' or 'false')
-# - COMPILE_TRANSLATION_FILES (boolean 'true' or 'false')
-
-
-name: buildNPM Snapshot
-on: [push, pull_request]
-
-jobs:
- build-npm:
- env:
- YARN_TEST_OPTIONS: '--karma.singleRun --karma.browsers ChromeDocker --karma.reporters mocha junit --coverage'
- SQ_ROOT_DIR: './src'
- COMPILE_TRANSLATION_FILES: 'true'
- PUBLISH_MOD_DESCRIPTOR: 'true'
- FOLIO_NPM_REGISTRY: 'https://repository.folio.org/repository/npm-folioci/'
- FOLIO_MD_REGISTRY: 'https://folio-registry.dev.folio.org'
- NODEJS_VERSION: '18'
- JEST_JUNIT_OUTPUT_DIR: 'artifacts/jest-junit'
- JEST_COVERAGE_REPORT_DIR: 'artifacts/coverage-jest/lcov-report/'
- BIGTEST_JUNIT_OUTPUT_DIR: 'artifacts/runTest'
- BIGTEST_COVERAGE_REPORT_DIR: 'artifacts/coverage/lcov-report/'
- SQ_LCOV_REPORT: 'artifacts/coverage-jest/lcov.info'
- SQ_EXCLUSIONS: '**/platform/alias-service.js,**/docs/**,**/node_modules/**,**/examples/**,**/artifacts/**,**/ci/**,Jenkinsfile,**/LICENSE,**/*.css,**/*.md,**/*.json,**/tests/**,**/stories/*.js,**/test/**,**/.stories.js,**/resources/bigtest/interactors/**,**/resources/bigtest/network/**,**/*-test.js,**/*.test.js,**/*-spec.js,**/karma.conf.js,**/jest.config.js'
-
- runs-on: ubuntu-latest
- steps:
- - uses: folio-org/checkout@v2
- with:
- fetch-depth: 0
-
- - name: Setup kernel for react native, increase watchers
- run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
- - name: Use Node.js
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODEJS_VERSION }}
- check-latest: true
- always-auth: true
-
- - name: Set yarn config
- run: yarn config set @folio:registry $FOLIO_NPM_REGISTRY
-
- - name: Set FOLIO NPM snapshot version
- run: |
- git clone https://github.com/folio-org/folio-tools.git
- npm --no-git-tag-version version `folio-tools/github-actions-scripts/folioci_npmver.sh`
- rm -rf folio-tools
- env:
- JOB_ID: ${{ github.run_number }}
-
- - name: Run yarn install
- run: yarn install --ignore-scripts
-
- - name: Run yarn list
- run: yarn list --pattern @folio
-
- - name: Run yarn lint
- run: yarn lint
- continue-on-error: true
-
- - name: Run yarn formatjs-compile
- if : ${{ env.COMPILE_TRANSLATION_FILES == 'true' }}
- run: yarn formatjs-compile
-
- - name: Run yarn test
- run: xvfb-run --server-args="-screen 0 1024x768x24" yarn test $YARN_TEST_OPTIONS
-
- - name: Generate FOLIO module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- run: yarn build-mod-descriptor
-
- - name: Print FOLIO module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' }}
- run: cat module-descriptor.json
-
- - name: Publish Jest unit test results
- uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1
- if: always()
- with:
- github_token: ${{ github.token }}
- files: "${{ env.JEST_JUNIT_OUTPUT_DIR }}/*.xml"
- check_name: Jest Unit Test Results
- comment_mode: update last
- comment_title: Jest Unit Test Statistics
-
- - name: Publish Jest coverage report
- uses: actions/upload-artifact@v2
- if: always()
- with:
- name: jest-coverage-report
- path: ${{ env.JEST_COVERAGE_REPORT_DIR }}
- retention-days: 30
-
- - name: Publish BigTest unit test results
- uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1
- if: always()
- with:
- github_token: ${{ github.token }}
- files: "${{ env.BIGTEST_JUNIT_OUTPUT_DIR }}/*.xml"
- check_name: BigTest Unit Test Results
- comment_mode: update last
- comment_title: BigTest Unit Test Statistics
-
- - name: Publish BigTest coverage report
- uses: actions/upload-artifact@v2
- if: always()
- with:
- name: bigtest-coverage-report
- path: ${{ env.BIGTEST_COVERAGE_REPORT_DIR }}
- retention-days: 30
-
- - name: Publish yarn.lock
- uses: actions/upload-artifact@v2
- if: failure()
- with:
- name: yarn.lock
- path: yarn.lock
- retention-days: 5
-
- - name: Set default branch as env variable
- run: echo "DEFAULT_BRANCH=${{ github.event.repository.default_branch }}" >> $GITHUB_ENV
-
- - name: Fetch branches for SonarCloud
- run: git fetch --no-tags ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY} +refs/heads/${{ env.DEFAULT_BRANCH }}:refs/remotes/origin/${{ env.DEFAULT_BRANCH }}
-
- - name: Run SonarCloud scan
- uses: sonarsource/sonarcloud-github-action@master
- with:
- args: >
- -Dsonar.organization=folio-org
- -Dsonar.projectKey=org.folio:${{ github.event.repository.name }}
- -Dsonar.projectName=${{ github.event.repository.name }}
- -Dsonar.sources=${{ env.SQ_ROOT_DIR }}
- -Dsonar.language=js
- -Dsonar.javascript.lcov.reportPaths=${{ env.SQ_LCOV_REPORT }}
- -Dsonar.exclusions=${{ env.SQ_EXCLUSIONS }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
-
- - name: Set up NPM environment for publishing
- if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODEJS_VERSION }}
- check-latest: true
- always-auth: true
-
- - name: Set _auth in .npmrc
- if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- run: |
- npm config set @folio:registry $FOLIO_NPM_REGISTRY
- npm config set //repository.folio.org/repository/npm-folioci/:_auth $NODE_AUTH_TOKEN
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
-
- - name: Exclude some CI-generated artifacts in package
- if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- run: |
- echo "artifacts" >> .npmignore
- echo ".github" >> .npmignore
- echo ".scannerwork" >> .npmignore
- cat .npmignore
-
- - name: Publish NPM
- if: ${{ github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- run: npm publish
- env:
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
-
- - name: Read module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' && github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- id: moduleDescriptor
- uses: juliangruber/read-file-action@v1
- with:
- path: ./module-descriptor.json
-
- - name: Publish module descriptor
- if: ${{ env.PUBLISH_MOD_DESCRIPTOR == 'true' && github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' }}
- id: modDescriptorPost
- uses: fjogeleit/http-request-action@master
- with:
- url: ${{ env.FOLIO_MD_REGISTRY }}/_/proxy/modules
- method: 'POST'
- contentType: 'application/json; charset=utf-8'
- customHeaders: '{ "Accept": "application/json; charset=utf-8" }'
- data: ${{ steps.moduleDescriptor.outputs.content }}
- username: ${{ secrets.FOLIO_REGISTRY_USERNAME }}
- password: ${{ secrets.FOLIO_REGISTRY_PASSWORD }}
-
diff --git a/.github/workflows/ui.yml b/.github/workflows/ui.yml
new file mode 100644
index 000000000..7048dca2e
--- /dev/null
+++ b/.github/workflows/ui.yml
@@ -0,0 +1,16 @@
+name: Centralized workflow
+on:
+ - push
+ - pull_request
+ - workflow_dispatch
+
+jobs:
+ ui:
+ uses: folio-org/.github/.github/workflows/ui.yml@v1.1
+ secrets: inherit
+ with:
+ jest-enabled: true
+ jest-test-command: yarn run test:jest
+ bigtest-enabled: true
+ bigtest-test-command: xvfb-run --server-args="-screen 0 1024x768x24" yarn run test:bigtest $YARN_TEST_OPTIONS --karma.singleRun --karma.browsers ChromeDocker --karma.reporters mocha junit --coverage
+
diff --git a/package.json b/package.json
index 39ad59df2..bc16b0811 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"start": "stripes serve",
"test": "yarn run test:jest && yarn run test:bigtest ",
"test:bigtest": "stripes test karma",
+ "test:bt-dev": "stripes test karma --watch",
"test:jest": "jest --ci --coverage --colors",
"lint": "eslint . && stylelint \"src/**/*.css\"",
"eslint": "eslint .",
@@ -43,19 +44,19 @@
"@bigtest/convergence": "^0.10.0",
"@bigtest/interactor": "^0.7.2",
"@bigtest/mirage": "^0.0.1",
- "@bigtest/mocha": "^0.5.1",
"@folio/eslint-config-stripes": "^7.0.0",
"@folio/jest-config-stripes": "^2.0.0",
"@folio/stripes-cli": "^3.0.0",
"@folio/stripes-components": "^12.2.0",
"@folio/stripes-connect": "^9.0.0",
"@folio/stripes-logger": "^1.0.0",
- "@folio/stripes-testing": "^3.1.0",
+ "@folio/stripes-testing": "^4.5.0",
"@formatjs/cli": "^6.1.3",
"chai": "^4.1.2",
"eslint": "^7.32.0",
"jest-fetch-mock": "^3.0.3",
"miragejs": "^0.1.32",
+ "mocha": "^10.2.0",
"moment": "^2.29.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
diff --git a/src/components/AppIcon/tests/appIcon-test.js b/src/components/AppIcon/tests/appIcon-test.js
index 990d49cc1..822b2b080 100644
--- a/src/components/AppIcon/tests/appIcon-test.js
+++ b/src/components/AppIcon/tests/appIcon-test.js
@@ -3,7 +3,7 @@
*/
import React from 'react';
-import { beforeEach, it, describe } from '@bigtest/mocha';
+import { beforeEach, it, describe } from 'mocha';
import { expect } from 'chai';
import { mount } from '../../../../test/bigtest/helpers/render-helpers';
diff --git a/src/components/MainNav/AppList/components/ResizeContainer/tests/ResizeContainer-test.js b/src/components/MainNav/AppList/components/ResizeContainer/tests/ResizeContainer-test.js
index 74e80fe94..2d94d2de4 100644
--- a/src/components/MainNav/AppList/components/ResizeContainer/tests/ResizeContainer-test.js
+++ b/src/components/MainNav/AppList/components/ResizeContainer/tests/ResizeContainer-test.js
@@ -4,7 +4,7 @@
/* eslint-disable react/prop-types */
import React from 'react';
import times from 'lodash/times';
-import { beforeEach, it, describe } from '@bigtest/mocha';
+import { beforeEach, it, describe } from 'mocha';
import { expect } from 'chai';
import { mount } from '../../../../../../../test/bigtest/helpers/render-helpers';
diff --git a/src/components/MainNav/AppList/tests/AppList-test.js b/src/components/MainNav/AppList/tests/AppList-test.js
index e25bc80e4..0660bd6dc 100644
--- a/src/components/MainNav/AppList/tests/AppList-test.js
+++ b/src/components/MainNav/AppList/tests/AppList-test.js
@@ -4,18 +4,49 @@
import React from 'react';
import { BrowserRouter } from 'react-router-dom';
-import { beforeEach, it, describe } from '@bigtest/mocha';
-import { expect } from 'chai';
+import { beforeEach, it, describe } from 'mocha';
+import { HTML, Bigtest } from '@folio/stripes-testing';
import { mountWithContext } from '../../../../../test/bigtest/helpers/render-helpers';
import AppList from '../AppList';
-import AppListInteractor from './interactor';
+// import AppListInteractor from './interactor';
import apps from './apps';
import selectedApp from './selectedApp';
+const AppDropdownInteractor = HTML.extend('app dropdown')
+ .selector('[data-test-app-list]')
+ .filters({
+ itemCount: el => el.querySelectorAll('[class^=navItem--]').length,
+ })
+ .actions({
+ focusDropdownTrigger: ({ find }) => find(Bigtest.Button('Apps')).focus(),
+ clickDropdownTrigger: ({ find }) => find(Bigtest.Button('Apps')).click()
+ });
+
+const AppNavMenuItem = HTML.extend('app dropdown item')
+ .selector('[data-test-nav-list-item]')
+ .locator(el => el.textContent);
+
+const AppMenuInteractor = HTML.extend('app menu')
+ .selector('[class^=DropdownMenu]')
+ .filters({
+ itemCount: el => el.querySelectorAll('[data-test-item-link]').length,
+ focusedIndex: el => {
+ if (!el.querySelector(':focus')) return -1;
+ const focused = el.querySelector(':focus');
+ return [...focused.parentNode.children].indexOf(focused);
+ }
+ })
+ .actions({
+ clickItem: async ({ find }, label) => {
+ await find(AppNavMenuItem(label)).click();
+ }
+ });
+
describe('AppList', () => {
- const appList = new AppListInteractor();
+ const appsNav = AppDropdownInteractor();
+ const appsDropdown = AppMenuInteractor();
beforeEach(async () => {
await mountWithContext(
@@ -29,9 +60,7 @@ describe('AppList', () => {
);
});
- it(`Should render ${apps.length} nav items`, () => {
- expect(appList.itemsCount).to.equal(apps.length);
- });
+ it(`Should render ${apps.length} nav items`, () => appsNav.has({ itemCount: apps.length }));
describe('opening the appList with a selected app', () => {
beforeEach(async () => {
@@ -47,19 +76,17 @@ describe('AppList', () => {
);
- await appList.dropdownToggle.focus();
- await appList.dropdownToggle.click();
+ await appsNav.focusDropdownTrigger();
+ await appsNav.clickDropdownTrigger();
});
- it('focuses the corresponding item for the selected app', () => {
- expect(document.activeElement).to.not.equal(null);
- });
+ it('focuses the corresponding item for the selected app', () => AppMenuInteractor({ focusedIndex: -1 }).absent());
describe('if the selected app is not present in the list', () => {
beforeEach(async () => {
await mountWithContext(
// Simulate very small screen
-
@@ -24,7 +31,8 @@ const DummyAppWithContextMenu = () => (
const DummyAppWithoutContextMenu = () =>
;
describe('CurrentApp', () => {
- const currentApp = new CurrentAppInteractor();
+ const homeButton = HomeButton('Dummy app without context menu');
+ const contextDropdownToggle = Button(including('Dummy app with context menu'));
before(async () => {
await new Promise((resolve) => {
@@ -60,18 +68,14 @@ describe('CurrentApp', () => {
await this.visit('/dummy-app-with-app-context-menu');
});
- it('Should render a context menu toggle button', () => {
- expect(currentApp.contextMenuToggleButton.isPresent).to.equal(true);
- });
+ it('Should render a context menu toggle button', () => contextDropdownToggle.exists());
describe('Clicking the context menu toggle button', () => {
beforeEach(async () => {
- await currentApp.contextMenuToggleButton.click();
+ await contextDropdownToggle.click();
});
- it('Should open the app context menu dropdown', () => {
- expect(currentApp.contextMenu.isPresent).to.equal(true);
- });
+ it('Should open the app context menu dropdown', () => DropdownMenu().exists());
});
});
@@ -80,19 +84,14 @@ describe('CurrentApp', () => {
await this.visit('/dummy-app-without-app-context-menu');
});
- it('Should render a home button', () => {
- expect(currentApp.homeButton.isPresent).to.equal(true);
- });
+ it('Should render a home button', () => homeButton.exists());
it('Should have an aria-label equal to: "Current open application: {displayName} (Click to go home)"', () => {
- expect(currentApp.homeButton.ariaLabel).to.equal('Current open application: Dummy app without context menu (Click to go home)');
+ return homeButton.has({ ariaLabel: 'Current open application: Dummy app without context menu (Click to go home)' });
});
});
describe('When on the initial route (no active app)', () => {
- it('Should render a heading with a label of "FOLIO"', () => {
- expect(currentApp.homeButton.isPresent).to.equal(true);
- expect(currentApp.homeButton.label).to.equal('FOLIO');
- });
+ it('Should render a heading with a label of "FOLIO"', () => HomeButton('FOLIO').exists());
});
});
diff --git a/test/bigtest/tests/PasswordValidationField-test.js b/test/bigtest/tests/PasswordValidationField-test.js
index 8932a6ba1..0b169f654 100644
--- a/test/bigtest/tests/PasswordValidationField-test.js
+++ b/test/bigtest/tests/PasswordValidationField-test.js
@@ -4,7 +4,7 @@ import {
describe,
beforeEach,
it,
-} from '@bigtest/mocha';
+} from 'mocha';
import { expect } from 'chai';
import TextFieldInteractor from '@folio/stripes-components/lib/TextField/tests/interactor';
diff --git a/test/bigtest/tests/about-test.js b/test/bigtest/tests/about-test.js
index d791eb428..e8be5a7ac 100644
--- a/test/bigtest/tests/about-test.js
+++ b/test/bigtest/tests/about-test.js
@@ -1,8 +1,7 @@
-import { describe, beforeEach, it } from '@bigtest/mocha';
-import { expect } from 'chai';
+import { describe, beforeEach, it } from 'mocha';
import React, { Component } from 'react';
-
+import { converge } from '@folio/stripes-testing';
import setupApplication from '../helpers/setup-core-application';
import AboutInteractor from '../interactors/about';
@@ -34,8 +33,8 @@ describe('About', () => {
this.visit('/settings/about');
});
- it('has one installed app', function () {
- expect(about.installedApps()).to.have.lengthOf(1);
- });
+ it('has one installed app', () => converge(() => {
+ if (!(about.installedApps().length === 1)) throw new Error(`expected ${about.installedApps().length} to be 1`);
+ }));
});
});
diff --git a/test/bigtest/tests/callout-context-test.js b/test/bigtest/tests/callout-context-test.js
index 07fe23005..159f0e6be 100644
--- a/test/bigtest/tests/callout-context-test.js
+++ b/test/bigtest/tests/callout-context-test.js
@@ -1,6 +1,6 @@
import React, { Component, useContext } from 'react';
-import { describe, beforeEach, it } from '@bigtest/mocha';
+import { describe, beforeEach, it } from 'mocha';
import { expect } from 'chai';
diff --git a/test/bigtest/tests/createResetPassword-test.js b/test/bigtest/tests/createResetPassword-test.js
index 5214bf0c4..333b2abba 100644
--- a/test/bigtest/tests/createResetPassword-test.js
+++ b/test/bigtest/tests/createResetPassword-test.js
@@ -1,21 +1,69 @@
-import { expect } from 'chai';
-
import {
describe,
it,
beforeEach,
-} from '@bigtest/mocha';
+} from 'mocha';
+
+import {
+ TextField,
+ HTML,
+ Button,
+} from '@folio/stripes-testing';
import setupApplication from '../helpers/setup-core-application';
-import CreateResetPasswordInteractor from '../interactors/CreateResetPassword';
-import ChangePasswordErrorPageInteractor from '../interactors/ChangePasswordErrorPage';
-import ChangePasswordConfirmationInteractor from '../interactors/ChangePasswordConfirmation';
-import LoginInteractor from '../interactors/login';
+import always from '../helpers/always';
+import { Login as LoginInteractor } from '../interactors/common';
import translations from '../../../translations/stripes-core/en';
+const labelInteractor = HTML.extend('label')
+ .selector('label')
+ .filters({
+ for: el => el.htmlFor
+ });
+
+const CreateResetPasswordInteractor = HTML.extend('create/reset password form')
+ .selector('form[class^="form--"]')
+ .filters({
+ error: el => el.querySelector('[data-test-message-banner]') !== null,
+ errorText: el => el.querySelector('[data-test-message-banner]')?.innerText || '',
+ newPasswordLabel: el => el.querySelectorAll('label')[0].textContent,
+ newPasswordValue: el => el.querySelector('#new-password').value,
+ newPasswordType: el => el.querySelector('#new-password').type,
+ confirmPasswordLabel: el => el.querySelectorAll('label')[1].textContent,
+ confirmPasswordValue: el => el.querySelector('#confirm-password').value,
+ confirmPasswordType: el => el.querySelector('#confirm-password').type,
+ })
+ .actions({
+ async fillIn({ find }, values) {
+ await find(TextField({ id: 'new-password' })).fillIn(values.newPassword);
+ await find(TextField({ id: 'confirm-password' })).fillIn(values.confirmPassword);
+ },
+ clickShowPassword: ({ find }) => find(Button(translations['button.showPassword'])).click(),
+ clickHidePassword: ({ find }) => find(Button(translations['button.hidePassword'])).click(),
+ clickSubmit: ({ find }) => find(Button({ text: translations.setPassword, disabled: false })).click(),
+ });
+
+const ChangePasswordErrorInteractor = HTML.extend('change password confirmation')
+ .selector('[data-test-change-password-error]')
+ .filters({
+ errorText: el => el.querySelector('[data-test-message]').innerText,
+ });
+
+const ChangePasswordConfirmationInteractor = HTML.extend('change password confirmation')
+ .selector('[data-test-change-password-confirmation]')
+ .filters({
+ heading: (el) => el.querySelector('h1').innerText,
+ errorText: el => el.querySelector('[data-test-message]').innerText,
+ })
+ .actions({
+ clickContinue: ({ find }) => find(Button('Continue to FOLIO')).click()
+ });
+
describe('Create/Reset password page', () => {
- const CreateResetPasswordPage = new CreateResetPasswordInteractor('form[class^="form--"]');
+ const CreateResetPasswordPage = CreateResetPasswordInteractor();
+ const newPasswordField = TextField({ type: 'password', id: 'new-password' });
+ const confirmPasswordField = TextField({ type: 'password', id: 'confirm-password' });
setupApplication({
disableAuth: false,
@@ -26,309 +74,115 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test',
- }, () => {
- expect(CreateResetPasswordPage.isPresent).to.be.true;
- });
+ }, () => CreateResetPasswordPage.exists());
});
describe('default behavior', () => {
describe('new password field', () => {
- it('should be presented', () => {
- expect(CreateResetPasswordPage.newPassword.isPresent).to.be.true;
- });
-
- it('should have type password', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('password');
- });
+ it('should have a [type=password] field for new password', () => CreateResetPasswordPage.has({ newPasswordType: 'password' }));
- it('should have proper label', () => {
- expect(CreateResetPasswordPage.newPassword.label).to.equal(translations['createResetPassword.newPassword']);
- });
+ it('should contain a proper label for the new password field', () => labelInteractor({ text: translations['createResetPassword.newPassword'], for: 'new-password' }));
});
describe('confirm password field', () => {
- it('should be presented', () => {
- expect(CreateResetPasswordPage.confirmPassword.isPresent).to.be.true;
- });
+ it('should have a [type=password] field for confirm password', () => CreateResetPasswordPage.has({ confirmPasswordType: 'password' }));
- it('should have type password', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('password');
- });
-
- it('should have proper label', () => {
- expect(CreateResetPasswordPage.confirmPassword.label).to.equal(translations['createResetPassword.confirmPassword']);
- });
+ it('should contain a proper label for the confirm password field', () => labelInteractor({ text: translations['createResetPassword.confirmPassword'], for: 'confirm-password' }));
});
describe('toggle mask button', () => {
- it('should be presented', () => {
- expect(CreateResetPasswordPage.toggleMask.isPresent).to.be.true;
- });
-
- it('should have proper text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.showPassword']);
- });
+ it('should be presented', () => Button(translations['button.showPassword']).exists());
});
describe('submit button', () => {
- it('should be presented', () => {
- expect(CreateResetPasswordPage.submit.isPresent).to.be.true;
- });
-
- it('should have proper text', () => {
- expect(CreateResetPasswordPage.submit.text).to.equal(translations.setPassword);
- });
-
- it('should be disabled', () => {
- expect(CreateResetPasswordPage.submit.isDisabled).to.be.true;
- });
+ it('should be present', () => Button({ text: translations.setPassword, disabled: true }).exists());
describe('error message', () => {
- it.always('should not be presented', () => {
- expect(CreateResetPasswordPage.message.isPresent).to.be.false;
- });
+ it('should not be presented', always(() => CreateResetPasswordPage.has({ error: false })));
});
});
describe('same passwords insertion', () => {
- beforeEach(async function () {
- const { newPassword, confirmPassword } = CreateResetPasswordPage;
-
- await newPassword.fillAndBlur('test');
- await confirmPassword.fillAndBlur('test');
+ beforeEach(async () => {
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test', confirmPassword: 'test' });
});
describe('new password field', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.newPassword.isPresent).to.be.true;
- });
+ it('should be presented', always(() => newPasswordField.exists()));
- it.always('should have type password', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('password');
- });
-
- it.always('should have proper label', () => {
- expect(CreateResetPasswordPage.newPassword.label).to.equal(translations['createResetPassword.newPassword']);
- });
+ it('should have proper label', always(() => CreateResetPasswordPage.has({ newPasswordLabel: translations['createResetPassword.newPassword'] })));
- it('should have inserted password', () => {
- expect(CreateResetPasswordPage.newPassword.val).to.equal('test');
- });
+ it('should have inserted password', () => CreateResetPasswordPage.has({ newPasswordValue: 'test' }));
});
describe('confirm password field', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.confirmPassword.isPresent).to.be.true;
- });
+ it('should be presented', always(() => confirmPasswordField.exists()));
- it.always('should have type password', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('password');
- });
-
- it.always('should have proper label', () => {
- expect(CreateResetPasswordPage.confirmPassword.label).to.equal(translations['createResetPassword.confirmPassword']);
- });
+ it('should have proper label', always(() => CreateResetPasswordPage.has({ confirmPasswordLabel: translations['createResetPassword.newPassword'] })));
- it('should have inserted password', () => {
- expect(CreateResetPasswordPage.confirmPassword.val).to.equal('test');
- });
+ it('should have inserted password', () => CreateResetPasswordPage.has({ confirmPasswordValue: 'test' }));
});
describe('toggle mask button', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.toggleMask.isPresent).to.be.true;
- });
-
- it.always('should have proper text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.showPassword']);
- });
-
describe('toggle mask from password to text', () => {
beforeEach(async () => {
- await CreateResetPasswordPage.toggleMask.toggleMaskButton();
+ await CreateResetPasswordPage.clickShowPassword();
});
- it('checks toggled button text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.hidePassword']);
- });
+ it('checks toggled button text', () => Button(translations['button.hidePassword']).exists());
- it('changes the type of the confirm password field to text', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('text');
- });
+ it('changes the type of the confirm password field to text', () => CreateResetPasswordPage.has({ confirmPasswordType: 'text' }));
- it('changes the type of the new password field to text', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('text');
- });
+ it('changes the type of the new password field to text', () => CreateResetPasswordPage.has({ newPasswordType: 'text' }));
describe('toggle mask from text to password', () => {
beforeEach(async () => {
- await CreateResetPasswordPage.toggleMask.toggleMaskButton();
+ await CreateResetPasswordPage.clickHidePassword();
});
- it('checks toggled button text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.showPassword']);
- });
+ it('checks toggled button text', () => Button(translations['button.showPassword']).exists());
- it('changes the type of the confirm password field to text', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('password');
- });
+ it('changes the type of the confirm password field to text', () => CreateResetPasswordPage.has({ confirmPasswordType: 'password' }));
- it('changes the type of the new password field to text', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('password');
- });
+ it('changes the type of the new password field to text', () => CreateResetPasswordPage.has({ confirmPasswordType: 'password' }));
});
});
});
describe('submit button', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.submit.isPresent).to.be.true;
- });
-
- it.always('should have proper text', () => {
- expect(CreateResetPasswordPage.submit.text).to.equal(translations.setPassword);
- });
-
- it.always('should be active', () => {
- expect(CreateResetPasswordPage.submit.isDisabled).to.be.false;
- });
+ it('should be active', always(() => Button({ text: translations.setPassword, disabled: false })));
describe('error message', () => {
- it.always('should not be presented', () => {
- expect(CreateResetPasswordPage.message.isPresent).to.be.false;
- });
+ it('should not be presented', always(() => CreateResetPasswordPage.has({ error: false })));
});
});
});
describe('different passwords insertion', () => {
- beforeEach(async function () {
- const { newPassword, confirmPassword } = CreateResetPasswordPage;
-
- await newPassword.fillAndBlur('test-test');
- await confirmPassword.fillAndBlur('test');
+ beforeEach(async () => {
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test-test', confirmPassword: 'test' });
});
describe('new password field', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.newPassword.isPresent).to.be.true;
- });
-
- it.always('should have type password', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('password');
- });
-
- it.always('should have proper label', () => {
- expect(CreateResetPasswordPage.newPassword.label).to.equal(translations['createResetPassword.newPassword']);
- });
-
- it('should have inserted password', () => {
- expect(CreateResetPasswordPage.newPassword.val).to.equal('test-test');
- });
+ it('should have inserted password', () => CreateResetPasswordPage.has({ newPasswordValue: 'test-test' }));
});
describe('confirm password field', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.confirmPassword.isPresent).to.be.true;
- });
-
- it.always('should have type password', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('password');
- });
-
- it.always('should have proper label', () => {
- expect(CreateResetPasswordPage.confirmPassword.label).to.equal(translations['createResetPassword.confirmPassword']);
- });
-
- it('should have inserted password', () => {
- expect(CreateResetPasswordPage.confirmPassword.val).to.equal('test');
- });
- });
-
- describe('toggle mask button', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.toggleMask.isPresent).to.be.true;
- });
-
- it.always('should have proper text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.showPassword']);
- });
-
- describe('toggle mask from password to text', () => {
- beforeEach(async () => {
- await CreateResetPasswordPage.toggleMask.toggleMaskButton();
- });
-
- it('checks toggled button text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.hidePassword']);
- });
-
- it('changes the type of the form fields to text', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('text');
- });
-
- it('changes the type of the form fields to text', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('text');
- });
-
- describe('toggle mask from text to password', () => {
- beforeEach(async () => {
- await CreateResetPasswordPage.toggleMask.toggleMaskButton();
- });
-
- it('checks toggled button text', () => {
- expect(CreateResetPasswordPage.toggleMask.text).to.equal(translations['button.showPassword']);
- });
-
- it('changes the type of the form fields to text', () => {
- expect(CreateResetPasswordPage.confirmPassword.type).to.equal('password');
- });
-
- it('changes the type of the form fields to text', () => {
- expect(CreateResetPasswordPage.newPassword.type).to.equal('password');
- });
- });
- });
+ it('should have inserted password', () => CreateResetPasswordPage.has({ confirmPasswordValue: 'test' }));
});
describe('submit button', () => {
- it.always('should be presented', () => {
- expect(CreateResetPasswordPage.submit.isPresent).to.be.true;
- });
-
- it.always('should have proper text', () => {
- expect(CreateResetPasswordPage.submit.text).to.equal(translations.setPassword);
- });
-
- it('should be disabled', () => {
- expect(CreateResetPasswordPage.submit.isDisabled).to.be.true;
- });
+ it('should be disabled', always(() => Button({ text: translations.setPassword, disabled: true }).exists()));
describe('error message', () => {
- it('should be presented', () => {
- expect(CreateResetPasswordPage.message.isPresent).to.be.true;
- });
-
- it('should have proper text', () => {
- expect(CreateResetPasswordPage.message.text).to.equal(translations['errors.password.match.error']);
- });
+ it('should present error message', () => CreateResetPasswordPage.has({ error: true }));
});
});
});
});
describe('successful submission', () => {
- const ChangePasswordConfirmation = new ChangePasswordConfirmationInteractor();
- const {
- newPassword,
- confirmPassword,
- submitForm,
- } = CreateResetPasswordPage;
- const {
- heading,
- message,
- redirect,
- } = ChangePasswordConfirmation;
+ const confirmation = new ChangePasswordConfirmationInteractor();
setupApplication({
disableAuth: false,
@@ -340,60 +194,29 @@ describe('Create/Reset password page', () => {
beforeEach(async function () {
await this.visit('/reset-password/test');
- await newPassword.fillAndBlur('test');
- await confirmPassword.fillAndBlur('test');
- await submitForm.clickSubmit();
- });
-
- it('should display change password confirmation', () => {
- expect(ChangePasswordConfirmation.isPresent).to.be.true;
- });
-
- it('should display a heading', () => {
- expect(heading.isPresent).to.be.true;
- });
-
- it('should have an appropriate content', () => {
- expect(heading.text).to.equal(translations['label.congratulations']);
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test', confirmPassword: 'test' });
+ await CreateResetPasswordPage.clickSubmit();
});
- it('should display a message', () => {
- expect(message.isPresent).to.be.true;
- });
+ it('should display change password confirmation', () => confirmation.exists());
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['label.changed.password']);
- });
+ it('should display the proper heading', () => confirmation.has({ heading: translations['label.congratulations'] }));
- it('should display a button', () => {
- expect(redirect.isPresent).to.be.true;
- });
+ it('should have an appropriate content', () => confirmation.has({ errorText: translations['label.changed.password'] }));
describe('successful submission: redirect', () => {
beforeEach(async function () {
- await redirect.clickContinue();
+ await confirmation.clickContinue();
});
- const login = new LoginInteractor('form[class^="form--"]');
-
- it('should not display a passwordChanged view', () => {
- expect(ChangePasswordConfirmation.isPresent).to.be.false;
- });
+ it('should not display a passwordChanged view', () => confirmation.absent());
- it('should display a login page', () => {
- expect(login.isPresent).to.be.true;
- });
+ it('should display a login page', () => LoginInteractor(translations['title.login']).exists());
});
});
describe('non-successful submission: expired link', () => {
- const ChangePasswordConfirmation = new ChangePasswordConfirmationInteractor();
- const {
- newPassword,
- confirmPassword,
- submitForm,
- message,
- } = CreateResetPasswordPage;
+ const confirmation = new ChangePasswordConfirmationInteractor();
setupApplication({
disableAuth: false,
@@ -404,36 +227,17 @@ describe('Create/Reset password page', () => {
beforeEach(async function () {
await this.visit('/reset-password/test');
- await newPassword.fillAndBlur('test');
- await confirmPassword.fillAndBlur('test');
- await submitForm.clickSubmit();
- });
-
- it('should not display change password confirmation', () => {
- expect(ChangePasswordConfirmation.isPresent).to.be.false;
- });
-
- it('should display CreateResetPassword page', () => {
- expect(CreateResetPasswordPage.isPresent).to.be.true;
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test', confirmPassword: 'test' });
+ await CreateResetPasswordPage.clickSubmit();
});
- it('should present an error message', () => {
- expect(message.isPresent).to.be.true;
- });
+ it('should not display change password confirmation', () => confirmation.absent());
- it('should have an appropriate text content', () => {
- expect(message.text).to.equal(translations['errors.link.expired']);
- });
+ it('should have an appropriate text content', () => CreateResetPasswordPage.has({ errorText: translations['errors.link.expired'] }));
});
describe('non-successful submission: invalid link', () => {
- const ChangePasswordConfirmation = new ChangePasswordConfirmationInteractor();
- const {
- newPassword,
- confirmPassword,
- submitForm,
- message,
- } = CreateResetPasswordPage;
+ const confirmation = ChangePasswordConfirmationInteractor();
setupApplication({
disableAuth: false,
@@ -445,36 +249,17 @@ describe('Create/Reset password page', () => {
beforeEach(async function () {
this.visit('/reset-password/test');
- await newPassword.fillAndBlur('test');
- await confirmPassword.fillAndBlur('test');
- await submitForm.clickSubmit();
- });
-
- it('should not display change password confirmation', () => {
- expect(ChangePasswordConfirmation.isPresent).to.be.false;
- });
-
- it('should display CreateResetPassword page', () => {
- expect(CreateResetPasswordPage.isPresent).to.be.true;
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test', confirmPassword: 'test' });
+ await CreateResetPasswordPage.clickSubmit();
});
- it('should present an error message', () => {
- expect(message.isPresent).to.be.true;
- });
+ it('should not display change password confirmation', () => confirmation.absent());
- it('should have an appropriate text content', () => {
- expect(message.text).to.equal(translations['errors.link.invalid']);
- });
+ it('should present an error message', () => CreateResetPasswordPage.has({ errorText: translations['errors.link.invalid'] }));
});
describe('non-successful submission: client error', () => {
- const ChangePasswordConfirmation = new ChangePasswordConfirmationInteractor();
- const {
- newPassword,
- confirmPassword,
- submitForm,
- message,
- } = CreateResetPasswordPage;
+ const confirmation = ChangePasswordConfirmationInteractor();
setupApplication({
disableAuth: false,
@@ -483,32 +268,18 @@ describe('Create/Reset password page', () => {
beforeEach(async function () {
this.visit('/reset-password/test');
- await newPassword.fillAndBlur('test');
- await confirmPassword.fillAndBlur('test');
- await submitForm.clickSubmit();
- });
-
- it('should not display change password confirmation', () => {
- expect(ChangePasswordConfirmation.isPresent).to.be.false;
+ await CreateResetPasswordPage.fillIn({ newPassword: 'test', confirmPassword: 'test' });
+ await CreateResetPasswordPage.clickSubmit();
});
- it('should display CreateResetPassword page', () => {
- expect(CreateResetPasswordPage.isPresent).to.be.true;
- });
-
- it('should present an error message', () => {
- expect(message.isPresent).to.be.true;
- });
+ it('should not display change password confirmation', () => confirmation.absent());
- it('should have an appropriate text content', () => {
- expect(message.text).to.equal(translations['errors.link.invalid']);
- });
+ it('should have an appropriate text content', () => CreateResetPasswordPage.has({ errorText: translations['errors.link.invalid'] }));
});
});
describe('invalid token scenario', () => {
- const ChangePasswordErrorPage = new ChangePasswordErrorPageInteractor();
- const { message } = ChangePasswordErrorPage;
+ const errorPage = ChangePasswordErrorInteractor();
describe('invalid token: default', () => {
setupApplication({
@@ -521,18 +292,10 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test'
- }, () => {
- expect(ChangePasswordErrorPage.isPresent).to.be.true;
- });
+ }, () => errorPage.exists());
});
- it('should display an error message', () => {
- expect(message.isPresent).to.be.true;
- });
-
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['errors.link.invalid']);
- });
+ it('should have an appropriate content', () => errorPage.has({ errorText: translations['errors.link.invalid'] }));
});
describe('invalid token', () => {
@@ -546,18 +309,10 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test/'
- }, () => {
- expect(ChangePasswordErrorPage.isPresent).to.be.true;
- });
- });
-
- it('should display an error message', () => {
- expect(message.isPresent).to.be.true;
+ }, () => errorPage.exists());
});
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['errors.link.invalid']);
- });
+ it('should have an appropriate content', () => errorPage.has({ errorText: translations['errors.link.invalid'] }));
});
describe('expired token', () => {
@@ -571,18 +326,10 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test/'
- }, () => {
- expect(ChangePasswordErrorPage.isPresent).to.be.true;
- });
- });
-
- it('should display an error message', () => {
- expect(message.isPresent).to.be.true;
+ }, () => errorPage.exists());
});
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['errors.link.expired']);
- });
+ it('should have an appropriate content', () => errorPage.has({ errorText: translations['errors.link.expired'] }));
});
describe('used token', () => {
@@ -596,18 +343,10 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test/'
- }, () => {
- expect(ChangePasswordErrorPage.isPresent).to.be.true;
- });
+ }, () => errorPage.exists());
});
- it('should display an error message', () => {
- expect(message.isPresent).to.be.true;
- });
-
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['errors.link.used']);
- });
+ it('should have an appropriate content', () => errorPage.has({ errorText: translations['errors.link.used'] }));
});
describe('system error', () => {
setupApplication({
@@ -620,18 +359,10 @@ describe('Create/Reset password page', () => {
beforeEach(function () {
return this.visit({
pathname: '/reset-password/test/'
- }, () => {
- expect(ChangePasswordErrorPage.isPresent).to.be.true;
- });
- });
-
- it('should display an error message', () => {
- expect(message.isPresent).to.be.true;
+ }, () => errorPage.exists());
});
- it('should have an appropriate content', () => {
- expect(message.text).to.equal(translations['errors.default.server.error']);
- });
+ it('should have an appropriate content', () => errorPage.has({ errorText: translations['errors.default.server.error'] }));
});
});
});
diff --git a/test/bigtest/tests/forgotPassword-test.js b/test/bigtest/tests/forgotPassword-test.js
index d2600054f..fe26e770d 100644
--- a/test/bigtest/tests/forgotPassword-test.js
+++ b/test/bigtest/tests/forgotPassword-test.js
@@ -2,12 +2,42 @@ import {
describe,
it,
beforeEach,
-} from '@bigtest/mocha';
-import { expect } from 'chai';
+} from 'mocha';
+
+import {
+ TextField,
+ Button,
+ HTML,
+ MessageBanner,
+} from '@folio/stripes-testing';
import translations from '../../../translations/stripes-core/en';
import setupApplication from '../helpers/setup-core-application';
-import ForgotPasswordInteractor from '../interactors/ForgotPassword';
+import always from '../helpers/always';
+import { StatusPage as StatusPageInteractor } from '../interactors/common';
+
+const ForgotPasswordInteractor = HTML.extend('forgot password')
+ .selector('form[class^="form--"]')
+ .filters({
+ headingText: el => el.querySelector('[data-test-h1]')?.textContent || '',
+ submitDisabled: el => el.querySelector('button[disabled]') !== null,
+ callToActionText: el => el.querySelector('[data-test-p]')?.text || '',
+ })
+ .actions({
+ fillIn : async ({ find }, value) => {
+ await find(TextField()).fillIn(value);
+ },
+ clickSubmit: async ({ find }) => {
+ await find(Button({ type: 'submit' })).click();
+ },
+ fillAndSubmit: async ({ find }, value) => {
+ await find(TextField()).fillIn(value);
+ await find(Button({ type: 'submit' })).click();
+ }
+ });
+
+const ErrorsContainerInteractor = MessageBanner.extend('errors container')
+ .selector('[data-test-errors]');
describe('forgot password form test', () => {
setupApplication({ disableAuth: false });
@@ -16,87 +46,40 @@ describe('forgot password form test', () => {
this.visit('/forgot-password');
});
- const forgotPasswordPage = new ForgotPasswordInteractor();
- const {
- inputField,
- submitButton,
- mainHeading,
- callToActionParagraph,
- errorsWrapper,
- errorsWrapper: { errorsContainer },
- statusPage,
- statusPage: {
- heading: statusPageHeading,
- notificationParagraph,
- cautionParagraph,
- },
- } = forgotPasswordPage;
+ const forgotPasswordPage = ForgotPasswordInteractor();
const nonExistingRecord = '12345';
const existingRecord = '127-699-8925';
describe('forgot form text input field tests', () => {
- it('should display a field to enter the email or phone number', () => {
- expect(inputField.isPresent).to.be.true;
- });
+ it('should display a field to enter the email or phone number', () => TextField().exists());
- it('should have an empty value', () => {
- expect(inputField.val).to.equal('');
- });
+ it('should have an empty value', () => TextField().has({ value: '' }));
});
describe('forgot form submit button tests', () => {
- it('should display a "Continue" button to submit a request', () => {
- expect(submitButton.isPresent).to.be.true;
- });
-
- it('should have a disabled "Continue" button by default', () => {
- expect(submitButton.isDisabled).to.be.true;
- });
+ it('should display a disabled "Continue" button to submit a request', () => Button({ type: 'submit', disabled: true }).exists());
});
describe('forgot form submit button test after filling the input', () => {
beforeEach(async () => {
- await inputField.fillInput(existingRecord);
+ await forgotPasswordPage.fillIn(existingRecord);
});
- it.always('should have an enabled submit button', () => {
- expect(submitButton.isDisabled).to.be.false;
- });
+ it('should have an enabled submit button', always(() => forgotPasswordPage.has({ submitDisabled: false })));
});
describe('forgot form headings tests', () => {
- it('should display the heading', () => {
- expect(mainHeading.isPresent).to.be.true;
- });
-
- it('should have the main heading content equal to forgot username label', () => {
- expect(mainHeading.text).to.equal(translations['label.forgotPassword']);
- });
-
- it('should display the paragraph', () => {
- expect(callToActionParagraph.isPresent).to.be.true;
- });
-
- it('should have the paragraph content equal to forgot username or password call to action label', () => {
- expect(callToActionParagraph.text).to.equal(
- translations['label.forgotPasswordCallToAction']
- );
- });
+ it('should display the heading equal to forgot username or password call to action label', () => forgotPasswordPage.has({ headingText: translations['label.forgotPassword'] }));
});
describe('error container initial behaviour', () => {
describe('forgot form error container integration test', () => {
- it('should display the error container wrapper', () => {
- expect(errorsWrapper.isPresent).to.be.true;
- });
-
- it.always('should not display the error container', () => {
- expect(errorsContainer.isPresent).to.be.false;
- });
+ it('should not display the error container', always(() => ErrorsContainerInteractor({ visible: false }).exists()));
});
});
describe('forgot form submission behaviour tests', () => {
+ const errorsContainer = ErrorsContainerInteractor();
describe('forgot form submission failed: no account found', () => {
setupApplication({
disableAuth: false,
@@ -105,19 +88,12 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input does not match any record', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if the input does not match any record', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.unable.locate.account']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.unable.locate.account'] }));
});
describe('forgot form submission failed: no account found - default', () => {
@@ -128,19 +104,12 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input does not match any record', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if the input does not match any record', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.unable.locate.account.password']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.unable.locate.account.password'] }));
});
describe('forgot form submission failed: multiple accounts found', () => {
@@ -151,19 +120,12 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input matches many accounts', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if the input matches many accounts', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.forgotten.password.found.multiple.users']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.forgotten.password.found.multiple.users'] }));
});
describe('forgot form submission failed: server error', () => {
@@ -174,19 +136,12 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if server error occurred', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if server error occurred', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.default.server.error']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.default.server.error'] }));
});
describe('forgot form submission failed: account locked', () => {
@@ -197,22 +152,16 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if server error occurred', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if server error occurred', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.forgotten.password.found.inactive']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.forgotten.password.found.inactive'] }));
});
describe('Forgot form successful submission behaviour', () => {
+ const statusPage = StatusPageInteractor();
setupApplication({
disableAuth: false,
scenarios: ['forgotPasswordSuccess'],
@@ -220,47 +169,18 @@ describe('forgot password form test', () => {
beforeEach(async function () {
this.visit('/forgot-password');
- await inputField.fillInput(existingRecord);
- await submitButton.click();
+ await forgotPasswordPage.fillAndSubmit(existingRecord);
});
- it.always('should not display an error container if the input match any record in DB', () => {
- expect(errorsContainer.isPresent).to.be.false;
- });
-
- it('should be redirected to the Check email status page', () => {
- expect(statusPage.isPresent).to.be.true;
- });
+ it('should not display an error container if the input match any record in DB', always(() => ErrorsContainerInteractor({ visible: false }).exists()));
- it('should display a header', () => {
- expect(statusPageHeading.isPresent).to.be.true;
- });
+ it('should be redirected to the Check email status page', () => statusPage.exists());
- it('should have the header with an appropriate text content equal to check email label', () => {
- expect(statusPageHeading.text).to.equal(
- translations['label.check.email']
- );
- });
+ it('should display a header', () => statusPage.has({ headingText: translations['label.check.email'] }));
- it('should display a paragraph with notification', () => {
- expect(notificationParagraph.isPresent).to.be.true;
- });
+ it('should have the paragraph with an appropriate text content equal to sent email precautions label', () => statusPage.has({ notificationText: translations['label.your.email'] }));
- it('should have the paragraph with an appropriate text content equal to sent email precautions label', () => {
- expect(notificationParagraph.text).to.equal(
- translations['label.your.email']
- );
- });
-
- it('should display a paragraph with precautions', () => {
- expect(cautionParagraph.isPresent).to.be.true;
- });
-
- it('should have the paragraph with an appropriate text content equal to check email precautions label', () => {
- expect(cautionParagraph.text).to.equal(
- translations['label.caution.email']
- );
- });
+ it('should have the paragraph with an appropriate text content equal to check email precautions label', () => statusPage.has({ cautionText: translations['label.caution.email'] }));
});
});
});
diff --git a/test/bigtest/tests/forgotUsername-test.js b/test/bigtest/tests/forgotUsername-test.js
index 85c2081c7..0216e369f 100644
--- a/test/bigtest/tests/forgotUsername-test.js
+++ b/test/bigtest/tests/forgotUsername-test.js
@@ -2,12 +2,42 @@ import {
describe,
it,
beforeEach,
-} from '@bigtest/mocha';
-import { expect } from 'chai';
+} from 'mocha';
+
+import {
+ TextField,
+ Button,
+ HTML,
+ MessageBanner,
+} from '@folio/stripes-testing';
import translations from '../../../translations/stripes-core/en';
import setupApplication from '../helpers/setup-core-application';
-import ForgotUsernameInteractor from '../interactors/ForgotUsername';
+import always from '../helpers/always';
+import { StatusPage as StatusPageInteractor } from '../interactors/common';
+
+const ForgotUsernameInteractor = HTML.extend('forgot username')
+ .selector('form[class^="form--"]')
+ .filters({
+ headingText: el => el.querySelector('[data-test-h1]')?.textContent || '',
+ submitDisabled: el => el.querySelector('button[disabled]') !== null,
+ callToActionText: el => el.querySelector('[data-test-p]')?.textContent || '',
+ })
+ .actions({
+ fillIn : async ({ find }, value) => {
+ await find(TextField()).fillIn(value);
+ },
+ clickSubmit: async ({ find }) => {
+ await find(Button({ type: 'submit' })).click();
+ },
+ fillAndSubmit: async ({ find }, value) => {
+ await find(TextField()).fillIn(value);
+ await find(Button({ type: 'submit' })).click();
+ }
+ });
+
+const ErrorsContainerInteractor = MessageBanner.extend('errors container')
+ .selector('[data-test-errors]');
describe('Forgot username form test', () => {
setupApplication({ disableAuth: false });
@@ -16,104 +46,49 @@ describe('Forgot username form test', () => {
this.visit('/forgot-username');
});
- const forgotUsernamePage = new ForgotUsernameInteractor();
- const {
- inputField,
- submitButton,
- mainHeading,
- callToActionParagraph,
- errorsWrapper,
- errorsWrapper: { errorsContainer },
- statusPage,
- statusPage: {
- heading: statusPageHeading,
- notificationParagraph,
- cautionParagraph,
- },
- } = forgotUsernamePage;
+ const forgotUsernamePage = ForgotUsernameInteractor();
const invalidInput = 'asdfgh12345';
const nonExistingRecord = '12345';
const existingRecord = '127-699-8925';
describe('forgot form text input field tests', () => {
- it('should display a field to enter the email or phone number', () => {
- expect(inputField.isPresent).to.be.true;
- });
+ it('should display a field to enter the email or phone number', () => TextField().exists());
- it('should have an empty value', () => {
- expect(inputField.val).to.equal('');
- });
+ it('should have an empty value', () => TextField().has({ value: '' }));
});
describe('forgot form submit button tests', () => {
- it('should display a "Continue" button to submit a request', () => {
- expect(submitButton.isPresent).to.be.true;
- });
-
- it('should have a disabled "Continue" button by default', () => {
- expect(submitButton.isDisabled).to.be.true;
- });
+ it('should display a disabled "Continue" button to submit a request', () => Button({ type: 'submit', disabled: true }).exists());
});
describe('forgot form submit button test after filling the input', () => {
beforeEach(async () => {
- await inputField.fillInput(invalidInput);
+ await forgotUsernamePage.fillIn(invalidInput);
});
- it.always('should have an enabled submit button', () => {
- expect(submitButton.isDisabled).to.be.false;
- });
+ it('should have an enabled submit button', always(() => forgotUsernamePage.has({ submitDisabled: false })));
});
describe('forgot form headings tests', () => {
- it('should display the heading', () => {
- expect(mainHeading.isPresent).to.be.true;
- });
-
- it('should have the main heading content equal to forgot username label', () => {
- expect(mainHeading.text).to.equal(translations['label.forgotUsername']);
- });
-
- it('should display the paragraph', () => {
- expect(callToActionParagraph.isPresent).to.be.true;
- });
+ it('should have the main heading content equal to forgot username label', () => forgotUsernamePage.has({ headingText: translations['label.forgotUsername'] }));
- it('should have the paragraph content equal to forgot username or password call to action label', () => {
- expect(callToActionParagraph.text).to.equal(
- translations['label.forgotUsernameCallToAction']
- );
- });
+ it('should have the paragraph content equal to forgot username or password call to action label', () => forgotUsernamePage.has({ callToActionText: translations['label.forgotUsernameCallToAction'] }));
});
describe('error container initial behaviour', () => {
describe('forgot form error container integration test', () => {
- it('should display the error container wrapper', () => {
- expect(errorsWrapper.isPresent).to.be.true;
- });
-
- it.always('should not display the error container', () => {
- expect(errorsContainer.isPresent).to.be.false;
- });
+ it('should not display the error container', always(() => ErrorsContainerInteractor({ visible: false }).exists()));
});
});
describe('forgot form submission behaviour tests', () => {
+ const errorsContainer = ErrorsContainerInteractor();
describe('forgot form validation tests', () => {
beforeEach(async () => {
- await inputField.fillInput(invalidInput);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(invalidInput);
});
- it('should display an error container if the input is not a valid email',
- () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
-
- it('should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.email.invalid']
- );
- });
+ it('should have an appropriate error text content if the input doesn\'t contain a valid email', () => errorsContainer.has({ text: translations['errors.email.invalid'] }));
});
describe('forgot form submission failed: no account found', () => {
@@ -124,19 +99,10 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input does not match any record', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
-
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.unable.locate.account']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.unable.locate.account'] }));
});
describe('forgot form submission failed: no account found - default', () => {
@@ -147,19 +113,10 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input does not match any record', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
-
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.unable.locate.account']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.unable.locate.account'] }));
});
describe('forgot form submission failed: multiple accounts found', () => {
@@ -170,19 +127,10 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if the input matches many accounts', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
-
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.forgotten.username.found.multiple.users']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.forgotten.username.found.multiple.users'] }));
});
describe('forgot form submission failed: server error', () => {
@@ -193,19 +141,10 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if server error occurred', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
-
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.default.server.error']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.default.server.error'] }));
});
describe('forgot form submission failed: account locked', () => {
@@ -216,22 +155,16 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(nonExistingRecord);
- await submitButton.click();
+ await forgotUsernamePage.fillAndSubmit(nonExistingRecord);
});
- it('should display an error container if server error occurred', () => {
- expect(errorsContainer.isPresent).to.be.true;
- });
+ it('should display an error container if server error occurred', () => errorsContainer.exists());
- it('should should have an appropriate error text content', () => {
- expect(errorsContainer.text).to.equal(
- translations['errors.forgotten.password.found.inactive']
- );
- });
+ it('should should have an appropriate error text content', () => errorsContainer.has({ text: translations['errors.forgotten.password.found.inactive'] }));
});
describe('forgot form successful submission behaviour', () => {
+ const statusPage = StatusPageInteractor();
setupApplication({
disableAuth: false,
scenarios: ['forgotUsernameSuccess'],
@@ -239,41 +172,16 @@ describe('Forgot username form test', () => {
beforeEach(async function () {
this.visit('/forgot-username');
- await inputField.fillInput(existingRecord);
- await submitButton.click();
- });
-
- it.always('should not display an error container if the input match any record in DB', () => {
- expect(errorsContainer.isPresent).to.be.false;
- });
-
- it('should be redirected to the Check email status page', () => {
- expect(statusPage.isPresent).to.be.true;
+ await forgotUsernamePage.fillAndSubmit(existingRecord);
});
- it('should display a header', () => {
- expect(statusPageHeading.isPresent).to.be.true;
- });
-
- it('should have the header with an appropriate text content equal to check email label', () => {
- expect(statusPageHeading.text).to.equal(
- translations['label.check.email']
- );
- });
+ it('should not display an error container if the input match any record in DB', () => ErrorsContainerInteractor({ visible: false }).exists());
- it('should display a paragraph with notification', () => {
- expect(notificationParagraph.isPresent).to.be.true;
- });
+ it('should be redirected to the Check email status page', () => statusPage.exists());
- it('should display a paragraph with precautions', () => {
- expect(cautionParagraph.isPresent).to.be.true;
- });
+ it('should have the header with an appropriate text content equal to check email label', () => statusPage.has({ headingText: translations['label.check.email'] }));
- it('should have the paragraph with an appropriate text content equal to check email precautions label', () => {
- expect(cautionParagraph.text).to.equal(
- translations['label.caution.email']
- );
- });
+ it('should have the paragraph with an appropriate text content equal to check email precautions label', () => statusPage.has({ cautionText: translations['label.caution.email'] }));
});
});
});
diff --git a/test/bigtest/tests/login-test.js b/test/bigtest/tests/login-test.js
index 89e28bd88..954256dab 100644
--- a/test/bigtest/tests/login-test.js
+++ b/test/bigtest/tests/login-test.js
@@ -1,89 +1,65 @@
-import { expect } from 'chai';
-
import {
describe,
it,
beforeEach
-} from '@bigtest/mocha';
+} from 'mocha';
+import { TextField, Bigtest, HTML, including } from '@folio/stripes-testing';
import setupApplication from '../helpers/setup-core-application';
-import LoginInteractor from '../interactors/login';
+import always from '../helpers/always';
import translations from '../../../translations/stripes-core/en';
+const ErrorMessage = HTML.extend('message banner')
+ .selector('[data-test-message-banner]');
+
describe('Login', () => {
- const login = new LoginInteractor('form[class^="form--"]');
+ const { Link, Button: LoginButton } = Bigtest;
+ const usernamefield = TextField({ id: 'input-username' });
+ const passwordfield = TextField({ id: 'input-password' });
+ const loginButton = LoginButton('Log in');
+ const loginDisabled = () => LoginButton({ text: 'Log in', disabled: true }).exists();
+
+ const loginAction = async () => {
+ await usernamefield.fillIn('username');
+ await passwordfield.fillIn('password');
+ await loginButton.click();
+ };
setupApplication({ disableAuth: false });
describe('default behavior', () => {
- it('should have username field', () => {
- expect(login.username.isPresent).to.be.true;
- });
+ it('should have username field', () => usernamefield.exists());
- it('should have password field', () => {
- expect(login.password.isPresent).to.be.true;
- });
+ it('should have password field', () => passwordfield.exists());
- it('should have forgot password link', () => {
- expect(login.forgotPassword.isPresent).to.be.true;
- });
+ it('should have forgot password link', () => Link('Forgot password?').exists());
- it('should have forgot username link', () => {
- expect(login.forgotUsername.isPresent).to.be.true;
- });
+ it('should have forgot username link', () => Link('Forgot username?').exists());
- it('should have submit button', () => {
- expect(login.submit.isPresent).to.be.true;
- });
+ it('submit button should be disabled', loginDisabled);
- it('submit button should be disabled', () => {
- expect(login.submit.isDisabled).to.be.true;
- });
-
- it.always('error message should not be present', () => {
- expect(login.message.isPresent).to.be.false;
- });
+ it('error message should not be present', always(() => ErrorMessage().absent()));
});
describe('username insertion', () => {
beforeEach(async () => {
- const { username } = login;
-
- await username.fill('test');
- });
-
- it('should have submit button', () => {
- expect(login.submit.isPresent).to.be.true;
+ await usernamefield.fillIn('test');
});
- it('submit button should be active', () => {
- expect(login.submit.isDisabled).to.be.false;
- });
+ it('submit button should be active', () => loginButton.is({ disabled: false }));
- it.always('error message should not be present', () => {
- expect(login.message.isPresent).to.be.false;
- });
+ it('error message should not be present', always(() => ErrorMessage().absent()));
});
describe('password insertion', () => {
beforeEach(async () => {
- const password = login.password;
-
- await password.fill('test');
+ await passwordfield.fillIn('test');
});
- it('should have submit button', () => {
- expect(login.submit.isPresent).to.be.true;
- });
+ it('submit button should be disabled', loginDisabled);
- it.always('submit button should be disabled', () => {
- expect(login.submit.isDisabled).to.be.true;
- });
-
- it.always('error message should not be present', () => {
- expect(login.message.isPresent).to.be.false;
- });
+ it('error message should not be present', always(() => ErrorMessage().absent()));
});
describe('errors', () => {
@@ -93,29 +69,13 @@ describe('Login', () => {
scenarios: ['wrongUsername'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
-
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
-
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.username.incorrect']);
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.username.incorrect']).exists());
});
describe('error for the wrong password', () => {
@@ -124,56 +84,13 @@ describe('Login', () => {
scenarios: ['wrongPassword'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
-
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
-
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.password.incorrect']);
- });
- });
-
- describe('error for the empty password field', () => {
- setupApplication({
- disableAuth: false,
- scenarios: ['emptyPasswordField'],
- });
-
- beforeEach(async function () {
- const { username, password, submit } = login;
-
- await username.fill('username');
- await password.fill('');
- await submit.click();
- });
-
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
-
- it('should have submit button', () => {
- expect(login.submit.isPresent).to.be.true;
- });
-
- it.always('error message should not be present', () => {
- expect(login.message.isPresent).to.be.false;
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.password.incorrect']).exists());
});
describe('error for the server error', () => {
@@ -182,29 +99,13 @@ describe('Login', () => {
scenarios: ['serverError'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
-
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
-
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.default.server.error']);
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.default.server.error']).exists());
});
describe('error for the third attempt to enter wrong password', () => {
@@ -213,29 +114,13 @@ describe('Login', () => {
scenarios: ['thirdAttemptToLogin'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
-
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
-
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.password.incorrect.warn.user']);
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.password.incorrect.warn.user']).exists());
});
describe('error for the fifth attempt to enter wrong password', () => {
@@ -244,29 +129,13 @@ describe('Login', () => {
scenarios: ['fifthAttemptToLogin'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
-
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
-
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
+ beforeEach(loginAction);
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.password.incorrect.block.user']);
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.password.incorrect.block.user']));
});
describe('error for the attempt to login to locked account', () => {
@@ -275,29 +144,13 @@ describe('Login', () => {
scenarios: ['lockedAccount'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
-
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
-
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
+ beforeEach(loginAction);
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(translations['errors.user.blocked']);
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.user.blocked']));
});
describe('multiple errors', () => {
@@ -306,30 +159,18 @@ describe('Login', () => {
scenarios: ['multipleErrors'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
-
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
-
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(
- `${translations['errors.user.blocked']}${translations['errors.password.incorrect.warn.user']}`
- );
+ const res = [
+ ErrorMessage(including(translations['errors.user.blocked'])).exists(),
+ ErrorMessage(including(translations['errors.password.incorrect.warn.user'])).exists()
+ ];
+ return Promise.all(res);
});
});
@@ -339,46 +180,22 @@ describe('Login', () => {
scenarios: ['invalidResponseBody'],
});
- beforeEach(async function () {
- const { username, password, submit } = login;
+ beforeEach(loginAction);
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- });
+ it('username should not be reset upon failed submit', always(() => usernamefield.has({ value: 'username' })));
- it.always('username should not be reset upon failed submit', () => {
- expect(login.username.value).to.equal('username');
- });
-
- it('password should be reset upon failed submit', () => {
- expect(login.password.value).to.equal('');
- });
+ it('password should be reset upon failed submit', () => passwordfield.has({ value: '' }));
- it('error message should be present upon failed submit', () => {
- expect(login.message.isPresent).to.be.true;
- });
-
- it('error message should have proper text upon failed submit', () => {
- expect(login.message.text).to.equal(
- translations['errors.default.error']
- );
- });
+ it('error message should have proper text upon failed submit', () => ErrorMessage(translations['errors.default.error']).exists());
});
- });
-
- describe('with valid credentials', () => {
- beforeEach(async () => {
- const { username, password, submit } = login;
- await username.fill('username');
- await password.fill('password');
- await submit.click();
- await submit.blur();
- });
+ describe('with valid credentials', () => {
+ beforeEach(async () => {
+ await loginAction();
+ await loginButton.blur();
+ });
- it('login page should not be displayed upon successful login', () => {
- expect(login.isPresent).to.be.false;
+ it('login page should not be displayed upon successful login', () => usernamefield.absent());
});
});
});
diff --git a/test/bigtest/tests/module-hierarchy-test.js b/test/bigtest/tests/module-hierarchy-test.js
index 4f3744340..de594820a 100644
--- a/test/bigtest/tests/module-hierarchy-test.js
+++ b/test/bigtest/tests/module-hierarchy-test.js
@@ -1,6 +1,6 @@
import React from 'react';
-import { describe, beforeEach, it } from '@bigtest/mocha';
+import { describe, beforeEach, it } from 'mocha';
import { expect } from 'chai';
import setupApplication from '../helpers/setup-core-application';
diff --git a/test/bigtest/tests/namespace-test.js b/test/bigtest/tests/namespace-test.js
index 675b01645..54e8a09d6 100644
--- a/test/bigtest/tests/namespace-test.js
+++ b/test/bigtest/tests/namespace-test.js
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { describe, beforeEach, it } from '@bigtest/mocha';
+import { describe, beforeEach, it } from 'mocha';
import { expect } from 'chai';
import setupApplication from '../helpers/setup-core-application';
diff --git a/test/bigtest/tests/nav-test.js b/test/bigtest/tests/nav-test.js
index a53037157..128a18be9 100644
--- a/test/bigtest/tests/nav-test.js
+++ b/test/bigtest/tests/nav-test.js
@@ -1,8 +1,8 @@
-import { describe, beforeEach, it } from '@bigtest/mocha';
+import { describe, beforeEach, it } from 'mocha';
import { expect } from 'chai';
import React, { Component } from 'react';
-
+import { Button } from '@folio/stripes-testing';
import setupApplication from '../helpers/setup-core-application';
import AppInteractor from '../interactors/app';
@@ -29,17 +29,11 @@ describe('Nav', () => {
}
});
- it('shows a settings button', () => {
- expect(app.nav('Settings').isPresent).to.be.true;
- });
+ it('shows a settings button', () => Button('Settings').exists());
- it('shows a dummy app button', () => {
- expect(app.nav('Dummy').isPresent).to.be.true;
- });
+ it('shows a dummy app button', () => Button('Dummy').exists());
- it('shows help button', function () {
- expect(app.helpButton.isPresent).to.be.true;
- });
+ it('shows help button', () => Button({ id: 'helpButton' }).exists());
describe('clicking settings', () => {
beforeEach(async () => {
diff --git a/test/bigtest/tests/packageName-test.js b/test/bigtest/tests/packageName-test.js
index a29100d4f..26f3999bc 100644
--- a/test/bigtest/tests/packageName-test.js
+++ b/test/bigtest/tests/packageName-test.js
@@ -1,7 +1,7 @@
import {
describe,
it,
-} from '@bigtest/mocha';
+} from 'mocha';
import { expect } from 'chai';
import { packageName } from '../../../src/constants';
diff --git a/test/bigtest/tests/profile-dropdown-test.js b/test/bigtest/tests/profile-dropdown-test.js
index d3cf81293..a0a3f475a 100644
--- a/test/bigtest/tests/profile-dropdown-test.js
+++ b/test/bigtest/tests/profile-dropdown-test.js
@@ -1,9 +1,7 @@
-import { describe, beforeEach, it } from '@bigtest/mocha';
-import { Interactor } from '@bigtest/interactor';
+import { describe, beforeEach, it } from 'mocha';
import { expect } from 'chai';
import React, { Component } from 'react';
-import DropdownInteractor from '@folio/stripes-components/lib/Dropdown/tests/interactor';
-
+import { Dropdown as DropdownInteractor, HTML, TextField as LoginInteractor } from '@folio/stripes-testing';
import setupApplication from '../helpers/setup-application';
class DummyApp extends Component {
@@ -12,9 +10,16 @@ class DummyApp extends Component {
}
}
+const ProfileMenuInteractor = HTML.extend('profile menu')
+ .selector('div[class*=DropdownMenu]')
+ .filters({
+ itemCount: el => el.querySelectorAll('[data-test-nav-list-item]').length
+ });
+
describe('Profile dropdown', () => {
- const dropdown = new DropdownInteractor('#profileDropdown');
- const loginInteractor = new Interactor('[data-test-new-username-field]');
+ const profileDropdown = DropdownInteractor({ id: 'profileDropdown' });
+ const profileMenu = ProfileMenuInteractor();
+ const loginInteractor = LoginInteractor({ id: 'input-username' });
const modules = [{
type: 'app',
@@ -55,22 +60,18 @@ describe('Profile dropdown', () => {
this.visit('/dummy');
});
- it('renders', () => {
- expect(dropdown.triggerDisplayed).to.be.true;
- });
+ it('renders', () => profileDropdown.exists());
describe('opening the dropdown', () => {
beforeEach(async () => {
- await dropdown.clickTrigger();
+ await profileDropdown.toggle();
});
- it('displays the appropriate number of links', () => {
- expect(dropdown.menu.items().length).to.equal(4);
- });
+ it('displays the appropriate number of links', () => profileMenu.has({ itemCount: 4 }));
describe('clicking the home link', () => {
beforeEach(async () => {
- await dropdown.menu.items(0).click();
+ await ProfileMenuInteractor().find(HTML('Home')).click();
});
it('changes the url', function () {
@@ -80,7 +81,7 @@ describe('Profile dropdown', () => {
describe('clicking a userlink', () => {
beforeEach(async () => {
- await dropdown.menu.items(1).click();
+ await profileMenu.find(HTML('Okay')).click();
});
it('changes the url', function () {
@@ -90,7 +91,7 @@ describe('Profile dropdown', () => {
describe('clicking a Change Password link', () => {
beforeEach(async () => {
- await dropdown.menu.items(2).click();
+ await profileMenu.find(HTML('Change password')).click();
});
it('changes the url', function () {
@@ -100,12 +101,10 @@ describe('Profile dropdown', () => {
describe('clicking logout', () => {
beforeEach(async () => {
- await dropdown.menu.items(3).click();
+ await profileMenu.find(HTML('Log out')).click();
});
- it('changes the url', () => {
- expect(loginInteractor.isPresent).to.be.true;
- });
+ it('changes the url', () => loginInteractor.exists());
});
});
});
diff --git a/test/bigtest/tests/session-timeout-test.js b/test/bigtest/tests/session-timeout-test.js
deleted file mode 100644
index f6e8046e4..000000000
--- a/test/bigtest/tests/session-timeout-test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { describe, beforeEach, it } from '@bigtest/mocha';
-import { expect } from 'chai';
-
-import setupApplication from '../helpers/setup-core-application';
-import LoginInteractor from '../interactors/login';
-import translations from '../../../translations/stripes-core/en';
-
-describe.skip('Session timeout test', () => {
- const login = new LoginInteractor('form[class^="form--"]');
-
- setupApplication({
- scenarios: ['invalidToken']
- });
-
- describe('clicking settings', () => {
- beforeEach(function () {
- this.visit('/settings/about');
- });
-
- it('should redirect to login with session timeout message', function () {
- expect(login.message.text).to.equal(translations['errors.user.timeout']);
- });
- });
-});
diff --git a/test/bigtest/tests/statusPage-test.js b/test/bigtest/tests/statusPage-test.js
index 1a66f4576..e0d08a1dc 100644
--- a/test/bigtest/tests/statusPage-test.js
+++ b/test/bigtest/tests/statusPage-test.js
@@ -1,11 +1,10 @@
-import { beforeEach, describe, it } from '@bigtest/mocha';
-import { expect } from 'chai';
+import { beforeEach, describe, it } from 'mocha';
import translations from '../../../translations/stripes-core/en';
import setupApplication from '../helpers/setup-core-application';
-import StatusPageInteractor from '../interactors/StatusPage';
+import { StatusPage as StatusPageInteractor } from '../interactors/common';
-describe('Forgot username form test', () => {
+describe('Forgot username/password status test', () => {
setupApplication({ disableAuth: false });
beforeEach(function () {
@@ -15,47 +14,22 @@ describe('Forgot username form test', () => {
});
});
- const statusPage = new StatusPageInteractor();
- const {
- heading,
- notificationParagraph,
- cautionParagraph,
- } = statusPage;
+ const statusPage = StatusPageInteractor();
describe('check email status page tests', () => {
- it('should display a status page to the user', () => {
- expect(statusPage.isPresent).to.be.true;
- });
-
- it('should display a header', () => {
- expect(heading.isPresent).to.be.true;
- });
+ it('should display a status page to the user', () => statusPage.exists());
it(`should have the header with an appropriate text content
equal to check email label in english translation`, () => {
- expect(heading.text).to.equal(translations['label.check.email']);
- });
-
- it('should display a paragraph with notification', () => {
- expect(notificationParagraph.isPresent).to.be.true;
+ statusPage.has({ headerText: translations['label.check.email'] });
});
it(`should have the paragraph with an appropriate text content
- equal to sent email precautions label in english translation`, () => {
- expect(notificationParagraph.text).to.equal(
- translations['label.your.email']
- );
- });
-
- it('should display a paragraph with precautions', () => {
- expect(cautionParagraph.isPresent).to.be.true;
- });
+ equal to sent email precautions label in english translation`,
+ () => statusPage.has({ notificationText: translations['label.your.email'] }));
it(`should have the paragraph with an appropriate text content
- equal to check email precautions label in english translation`, () => {
- expect(cautionParagraph.text).to.equal(
- translations['label.caution.email']
- );
- });
+ equal to check email precautions label in english translation`,
+ () => statusPage.has({ cautionText: translations['label.caution.email'] }));
});
});
diff --git a/test/bigtest/tests/useCustomFields-test.js b/test/bigtest/tests/useCustomFields-test.js
index e6cb7763c..b769d83fc 100644
--- a/test/bigtest/tests/useCustomFields-test.js
+++ b/test/bigtest/tests/useCustomFields-test.js
@@ -1,5 +1,5 @@
import React from 'react';
-import { afterEach, beforeEach, describe, it } from '@bigtest/mocha';
+import { afterEach, beforeEach, describe, it } from 'mocha';
import { expect } from 'chai';
import setupApplication from '../helpers/setup-core-application';
diff --git a/yarn.lock b/yarn.lock
index c04af2d8f..3aec5a092 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,6 +7,22 @@
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
+"@actions/core@^1.10.0":
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a"
+ integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==
+ dependencies:
+ "@actions/http-client" "^2.0.1"
+ uuid "^8.3.2"
+
+"@actions/http-client@^2.0.1":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.1.tgz#ed3fe7a5a6d317ac1d39886b0bb999ded229bb38"
+ integrity sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==
+ dependencies:
+ tunnel "^0.0.6"
+ undici "^5.25.4"
+
"@adobe/css-tools@^4.0.1":
version "4.3.3"
resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff"
@@ -217,6 +233,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
+"@babel/helper-plugin-utils@^7.24.6":
+ version "7.24.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24"
+ integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==
+
"@babel/helper-remap-async-to-generator@^7.22.20":
version "7.22.20"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
@@ -304,6 +325,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88"
integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==
+"@babel/parser@^7.23.0":
+ version "7.24.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328"
+ integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==
+
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.4":
version "7.24.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz#6125f0158543fb4edf1c22f322f3db67f21cb3e1"
@@ -458,6 +484,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-jsx@^7.22.5":
+ version "7.24.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8"
+ integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.6"
+
"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.24.1", "@babel/plugin-syntax-jsx@^7.7.2":
version "7.24.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
@@ -1191,11 +1224,6 @@
resolved "https://registry.yarnpkg.com/@bigtest/convergence/-/convergence-0.10.0.tgz#ed2212b7034c84917ccfbaa8cf875730ee535702"
integrity sha512-jJBPq3TTmMD/s/5k/mINzL6EXyPdNq0cEDZXufICFjpXmuUabRS/PX/NfzmXVlNENDJ6yOrDnrsO4IJboNTu9g==
-"@bigtest/convergence@^1.1.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@bigtest/convergence/-/convergence-1.1.2.tgz#1028f28378aae6876b3c07e577a2d4a320ad0acf"
- integrity sha512-f/tpOfdd5p40Omejmc+jwrNL0nZ0RDV2LEQQdIWYHtMdKfQQRQpdAhyfNVPLuLeKHw5D9dUX8v9WOrwGsMBTAw==
-
"@bigtest/globals@^0.7.5":
version "0.7.6"
resolved "https://registry.yarnpkg.com/@bigtest/globals/-/globals-0.7.6.tgz#e435d370059cfde66b20d31ba1d91cf0db63ba53"
@@ -1232,13 +1260,6 @@
lodash "^4.17.4"
pretender "^2.0.0"
-"@bigtest/mocha@^0.5.1":
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/@bigtest/mocha/-/mocha-0.5.2.tgz#df54959636067448a1c0fd36d19ba1b1a491604f"
- integrity sha512-DBm+ndNyJndjxNp84v+oGaqfuWz4XnVKIKseFzFpqr2y2p1Don81m5o6vB14DnS1vIQvPhDsnWHU6v7ekq9u6g==
- dependencies:
- "@bigtest/convergence" "^1.1.1"
-
"@bigtest/performance@^0.5.0":
version "0.5.0"
resolved "https://registry.yarnpkg.com/@bigtest/performance/-/performance-0.5.0.tgz#195f2c445cbe2ebe4357e08f7b39449240bf62d7"
@@ -1335,6 +1356,58 @@
resolved "https://registry.yarnpkg.com/@csstools/utilities/-/utilities-1.0.0.tgz#42f3c213f2fb929324d465684ab9f46a0febd4bb"
integrity sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==
+"@currents/commit-info@1.0.1-beta.0":
+ version "1.0.1-beta.0"
+ resolved "https://registry.yarnpkg.com/@currents/commit-info/-/commit-info-1.0.1-beta.0.tgz#c33112685c27896bba29064234fd2341ec9134e6"
+ integrity sha512-gkn8E3UC+F4/fCla7QAGMGgGPzxZUL9bU9+4I+KZf9PtCU3DdQCdy7a+er2eg4ewfUzZ2Ic1HcfnHuPkuLPKIw==
+ dependencies:
+ bluebird "3.5.5"
+ check-more-types "2.24.0"
+ debug "4.3.4"
+ execa "1.0.0"
+ lazy-ass "1.6.0"
+ ramda "0.26.1"
+
+"@cypress/request@^2.88.10":
+ version "2.88.12"
+ resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.12.tgz#ba4911431738494a85e93fb04498cb38bc55d590"
+ integrity sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==
+ 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"
+
+"@cypress/xvfb@^1.2.4":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a"
+ integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==
+ dependencies:
+ debug "^3.1.0"
+ lodash.once "^4.1.1"
+
+"@dependents/detective-less@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@dependents/detective-less/-/detective-less-5.0.0.tgz#e06bd05352a9e90ad337c740ea98783709e0630c"
+ integrity sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==
+ dependencies:
+ gonzales-pe "^4.3.0"
+ node-source-walk "^7.0.0"
+
"@discoveryjs/json-ext@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
@@ -1345,116 +1418,238 @@
resolved "https://registry.yarnpkg.com/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz#df79b7ea62c55094dc129880387864cdf41eca7c"
integrity sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==
+"@effection/core@2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@effection/core/-/core-2.2.0.tgz#4d11d7948144aecd70a26daf8abaa29ee89bc259"
+ integrity sha512-1RBMrDS0Ya02NEM0TQQRwzlGDSZmwoHhuD3qmWp9NLjZowhO1gJBZ16fQL2NbKvcpS71xho+oZsDedId+C1q8Q==
+ dependencies:
+ abort-controller "^3.0.0"
+
+"@esbuild/aix-ppc64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
+ integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
+
"@esbuild/android-arm64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd"
integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==
+"@esbuild/android-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
+ integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
+
"@esbuild/android-arm@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d"
integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==
+"@esbuild/android-arm@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
+ integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
+
"@esbuild/android-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1"
integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==
+"@esbuild/android-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
+ integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
+
"@esbuild/darwin-arm64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz#584c34c5991b95d4d48d333300b1a4e2ff7be276"
integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==
+"@esbuild/darwin-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
+ integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
+
"@esbuild/darwin-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb"
integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==
+"@esbuild/darwin-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
+ integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
+
"@esbuild/freebsd-arm64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2"
integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==
+"@esbuild/freebsd-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
+ integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
+
"@esbuild/freebsd-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4"
integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==
+"@esbuild/freebsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
+ integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
+
"@esbuild/linux-arm64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb"
integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==
+"@esbuild/linux-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
+ integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
+
"@esbuild/linux-arm@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a"
integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==
+"@esbuild/linux-arm@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
+ integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
+
"@esbuild/linux-ia32@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a"
integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==
+"@esbuild/linux-ia32@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
+ integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
+
"@esbuild/linux-loong64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72"
integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==
+"@esbuild/linux-loong64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
+ integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
+
"@esbuild/linux-mips64el@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289"
integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==
+"@esbuild/linux-mips64el@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
+ integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
+
"@esbuild/linux-ppc64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7"
integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==
+"@esbuild/linux-ppc64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
+ integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
+
"@esbuild/linux-riscv64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09"
integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==
+"@esbuild/linux-riscv64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
+ integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
+
"@esbuild/linux-s390x@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829"
integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==
+"@esbuild/linux-s390x@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
+ integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
+
"@esbuild/linux-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4"
integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==
+"@esbuild/linux-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
+ integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
+
"@esbuild/netbsd-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462"
integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==
+"@esbuild/netbsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
+ integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
+
"@esbuild/openbsd-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691"
integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==
+"@esbuild/openbsd-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
+ integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
+
"@esbuild/sunos-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273"
integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==
+"@esbuild/sunos-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
+ integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
+
"@esbuild/win32-arm64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f"
integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==
+"@esbuild/win32-arm64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
+ integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
+
"@esbuild/win32-ia32@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03"
integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==
+"@esbuild/win32-ia32@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
+ integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
+
"@esbuild/win32-x64@0.17.19":
version "0.17.19"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061"
integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==
+"@esbuild/win32-x64@0.20.2":
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
+ integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
+
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -1482,6 +1677,11 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@fastify/busboy@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d"
+ integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
+
"@folio/eslint-config-stripes@^7.0.0":
version "7.2.100000135"
resolved "https://repository.folio.org/repository/npm-folioci/@folio/eslint-config-stripes/-/eslint-config-stripes-7.2.100000135.tgz#bf0efabe4d2884b9c04ca6d0a6d71897df371c76"
@@ -1581,11 +1781,10 @@
webpack-bundle-analyzer "^4.4.2"
yargs "^17.3.1"
-"@folio/stripes-components@^12.0.0":
- version "12.2.1000004277"
- resolved "https://repository.folio.org/repository/npm-folioci/@folio/stripes-components/-/stripes-components-12.2.1000004277.tgz#c49e1bc61b9e629705ce5d562c33800879d9f156"
- integrity sha512-3Y724MLT+dsmHg8EBdaSXzRH+SOzE/z2g46GK4k0QTHOZsp3QkehmsV5KwmnRbTpENe/e4X9HLaZiout5fzPVg==
-
+"@folio/stripes-components@^12.2.0":
+ version "12.2.1000004354"
+ resolved "https://repository.folio.org/repository/npm-folioci/@folio/stripes-components/-/stripes-components-12.2.1000004354.tgz#1a3ce4dfd3beead2b0c56e7c591bf689c300622a"
+ integrity sha512-sCl8hu57evKVl6Ijeh0It1R/jYnO2BRLSLdiqA3VlgYHVT87PH+nELbl9ZZZc8gwqH2/J+UgAYH6G2FN9A9LAg==
dependencies:
"@csstools/postcss-global-data" "^2.1.1"
"@folio/stripes-react-hotkeys" "^3.0.5"
@@ -1638,7 +1837,7 @@
lodash "^4.17.15"
prop-types "^15.7.2"
-"@folio/stripes-testing@^3.0.0", "@folio/stripes-testing@^3.1.0":
+"@folio/stripes-testing@^3.0.0":
version "3.1.10000011260"
resolved "https://repository.folio.org/repository/npm-folioci/@folio/stripes-testing/-/stripes-testing-3.1.10000011260.tgz#05573c689efdc574652ae774a6ec4867edd9480b"
integrity sha512-yJm+yIAZm2wSpJDgtVYKQPWN5WMY2RO8dSTs6F1lNETF/97PxlL9afEmaBmEN13vUlowlL9TbQ95MPidDo5Z4g==
@@ -1649,6 +1848,22 @@
element-is-visible "^1.0.0"
minimist "^1.2.0"
+"@folio/stripes-testing@^4.5.0":
+ version "4.8.10000030238"
+ resolved "https://repository.folio.org/repository/npm-folioci/@folio/stripes-testing/-/stripes-testing-4.8.10000030238.tgz#be4f2c0da14870a9a65285e59b3288ff1c17c1a1"
+ integrity sha512-0wdE4pHKfLH9BMOHSk7s+dJdj7tbDwYe4Q0RN/dmVsIwHFFQHd2usxHvGhgy5uF2+4zR1XntPsWh4kSxHg0ElQ==
+ dependencies:
+ "@interactors/html" "^1.0.0-rc1.4"
+ "@interactors/keyboard" "^1.0.0-rc1.5"
+ axe-core "4.3.3"
+ cypress "12.0.0"
+ cypress-cloud "^1.9.6"
+ cypress-testrail-simple "^3.1.0"
+ date-fns "^2.16.1"
+ debug "^4.0.1"
+ element-is-visible "^1.0.0"
+ moment "^2.29.3"
+
"@folio/stripes-webpack@^5.0.0":
version "5.2.100000625"
resolved "https://repository.folio.org/repository/npm-folioci/@folio/stripes-webpack/-/stripes-webpack-5.2.100000625.tgz#c849d77041e557514986a1b1fc2cd94b1f2a9255"
@@ -1844,6 +2059,43 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+"@interactors/core@1.0.0-rc1.6":
+ version "1.0.0-rc1.6"
+ resolved "https://registry.yarnpkg.com/@interactors/core/-/core-1.0.0-rc1.6.tgz#5dd5b00771808637002e2e110a4dd7659b58d2db"
+ integrity sha512-uHR02Yc+VMAXRbrYtLiwbqwbvD/dHteEkdajT+dHWhIYwe1uRZmNQybyFN43tnjg7f4nsyz0cUcb9MbSSdkN0w==
+ dependencies:
+ "@effection/core" "2.2.0"
+ "@interactors/globals" "1.0.0-rc1.3"
+ "@testing-library/dom" "^8.18.1"
+ "@testing-library/user-event" "^13.2.1"
+ change-case "^4.1.1"
+ element-is-visible "^1.0.0"
+ lodash.isequal "^4.5.0"
+ performance-api "^1.0.0"
+
+"@interactors/globals@1.0.0-rc1.3":
+ version "1.0.0-rc1.3"
+ resolved "https://registry.yarnpkg.com/@interactors/globals/-/globals-1.0.0-rc1.3.tgz#3e03b0a24002361071cd7146b80687d974ae048e"
+ integrity sha512-vb8SXh2oK5BK3AzHfxviAovtMc9QjS9ZSX95yhoh4zOPKC/zrVxzn5IoMdzwCyEjEiKWJP/iVxAAOFgEqC+oXw==
+ dependencies:
+ "@effection/core" "2.2.0"
+
+"@interactors/html@^1.0.0-rc1.4":
+ version "1.0.0-rc1.6"
+ resolved "https://registry.yarnpkg.com/@interactors/html/-/html-1.0.0-rc1.6.tgz#a8a2b9479d06ab0ce4eb26624ce343b7a582b8ee"
+ integrity sha512-MM8gwZdOBkJISxTIQ5j73a2+paEzhVRvfdd0bHG+U5euQ8LJGbDDLm1ay3eJ7OyBXlFarnLxeq05RVjeXcyyhg==
+ dependencies:
+ "@interactors/core" "1.0.0-rc1.6"
+ "@interactors/keyboard" "1.0.0-rc1.6"
+
+"@interactors/keyboard@1.0.0-rc1.6", "@interactors/keyboard@^1.0.0-rc1.5":
+ version "1.0.0-rc1.6"
+ resolved "https://registry.yarnpkg.com/@interactors/keyboard/-/keyboard-1.0.0-rc1.6.tgz#ab0771304afd17f313d1ed8d848de9152bed4fd4"
+ integrity sha512-zGSl9QRo04U2g4lVDkK6hfkyvDXueFRuWA8S2du0CjiF0RSIdwyUvIicJ9g6/ZkwuNMbnc6FrOKI0Pjt/zj3NA==
+ dependencies:
+ "@interactors/core" "1.0.0-rc1.6"
+ "@interactors/globals" "1.0.0-rc1.3"
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -2084,7 +2336,7 @@
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.25"
-"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@@ -2311,6 +2563,11 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+"@sindresorhus/is@^4.0.0":
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f"
+ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==
+
"@sindresorhus/is@^5.2.0":
version "5.6.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668"
@@ -2441,6 +2698,13 @@
"@svgr/plugin-jsx" "8.1.0"
"@svgr/plugin-svgo" "8.1.0"
+"@szmarczak/http-timer@^4.0.5":
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
+ integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
+ dependencies:
+ defer-to-connect "^2.0.0"
+
"@szmarczak/http-timer@^5.0.1":
version "5.0.1"
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a"
@@ -2448,7 +2712,7 @@
dependencies:
defer-to-connect "^2.0.1"
-"@testing-library/dom@^8.11.1":
+"@testing-library/dom@^8.11.1", "@testing-library/dom@^8.18.1":
version "8.20.1"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.1.tgz#2e52a32e46fc88369eef7eef634ac2a192decd9f"
integrity sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==
@@ -2500,6 +2764,13 @@
"@testing-library/dom" "^9.0.0"
"@types/react-dom" "^18.0.0"
+"@testing-library/user-event@^13.2.1":
+ version "13.5.0"
+ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295"
+ integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+
"@testing-library/user-event@^14.4.3":
version "14.5.2"
resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd"
@@ -2553,6 +2824,16 @@
dependencies:
"@babel/types" "^7.20.7"
+"@types/cacheable-request@^6.0.1":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183"
+ integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==
+ dependencies:
+ "@types/http-cache-semantics" "*"
+ "@types/keyv" "^3.1.4"
+ "@types/node" "*"
+ "@types/responselike" "^1.0.0"
+
"@types/cookie@^0.3.3":
version "0.3.3"
resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.3.3.tgz#85bc74ba782fb7aa3a514d11767832b0e3bc6803"
@@ -2618,7 +2899,7 @@
resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
-"@types/http-cache-semantics@^4.0.2":
+"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2":
version "4.0.4"
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4"
integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==
@@ -2674,6 +2955,13 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
+"@types/keyv@^3.1.4":
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6"
+ integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==
+ dependencies:
+ "@types/node" "*"
+
"@types/node@*", "@types/node@>=10.0.0":
version "20.12.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.7.tgz#04080362fa3dd6c5822061aa3124f5c152cff384"
@@ -2686,6 +2974,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
+"@types/node@^14.14.31":
+ version "14.18.63"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.63.tgz#1788fa8da838dbb5f9ea994b834278205db6ca2b"
+ integrity sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==
+
"@types/prop-types@*":
version "15.7.12"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
@@ -2713,11 +3006,28 @@
"@types/prop-types" "*"
csstype "^3.0.2"
+"@types/responselike@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50"
+ integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==
+ dependencies:
+ "@types/node" "*"
+
"@types/semver@^7.3.12", "@types/semver@^7.5.0":
version "7.5.8"
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
+"@types/sinonjs__fake-timers@8.1.1":
+ version "8.1.1"
+ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3"
+ integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==
+
+"@types/sizzle@^2.3.2":
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.8.tgz#518609aefb797da19bf222feb199e8f653ff7627"
+ integrity sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==
+
"@types/stack-utils@^2.0.0":
version "2.0.3"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8"
@@ -2757,6 +3067,13 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/yauzl@^2.9.1":
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999"
+ integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
+ dependencies:
+ "@types/node" "*"
+
"@typescript-eslint/eslint-plugin@^6.21.0":
version "6.21.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3"
@@ -2821,6 +3138,11 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d"
integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==
+"@typescript-eslint/types@7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.11.0.tgz#5e9702a5e8b424b7fc690e338d359939257d6722"
+ integrity sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==
+
"@typescript-eslint/typescript-estree@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
@@ -2848,6 +3170,20 @@
semver "^7.5.4"
ts-api-utils "^1.0.1"
+"@typescript-eslint/typescript-estree@^7.6.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.11.0.tgz#7cbc569bc7336c3a494ceaf8204fdee5d5dbb7fa"
+ integrity sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==
+ dependencies:
+ "@typescript-eslint/types" "7.11.0"
+ "@typescript-eslint/visitor-keys" "7.11.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ minimatch "^9.0.4"
+ semver "^7.6.0"
+ ts-api-utils "^1.3.0"
+
"@typescript-eslint/utils@6.21.0":
version "6.21.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134"
@@ -2891,6 +3227,61 @@
"@typescript-eslint/types" "6.21.0"
eslint-visitor-keys "^3.4.1"
+"@typescript-eslint/visitor-keys@7.11.0":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.11.0.tgz#2c50cd292e67645eec05ac0830757071b4a4d597"
+ integrity sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==
+ dependencies:
+ "@typescript-eslint/types" "7.11.0"
+ eslint-visitor-keys "^3.4.3"
+
+"@vue/compiler-core@3.4.27":
+ version "3.4.27"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz#e69060f4b61429fe57976aa5872cfa21389e4d91"
+ integrity sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==
+ dependencies:
+ "@babel/parser" "^7.24.4"
+ "@vue/shared" "3.4.27"
+ entities "^4.5.0"
+ estree-walker "^2.0.2"
+ source-map-js "^1.2.0"
+
+"@vue/compiler-dom@3.4.27":
+ version "3.4.27"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz#d51d35f40d00ce235d7afc6ad8b09dfd92b1cc1c"
+ integrity sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==
+ dependencies:
+ "@vue/compiler-core" "3.4.27"
+ "@vue/shared" "3.4.27"
+
+"@vue/compiler-sfc@^3.4.27":
+ version "3.4.27"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz#399cac1b75c6737bf5440dc9cf3c385bb2959701"
+ integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==
+ dependencies:
+ "@babel/parser" "^7.24.4"
+ "@vue/compiler-core" "3.4.27"
+ "@vue/compiler-dom" "3.4.27"
+ "@vue/compiler-ssr" "3.4.27"
+ "@vue/shared" "3.4.27"
+ estree-walker "^2.0.2"
+ magic-string "^0.30.10"
+ postcss "^8.4.38"
+ source-map-js "^1.2.0"
+
+"@vue/compiler-ssr@3.4.27":
+ version "3.4.27"
+ resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz#2a8ecfef1cf448b09be633901a9c020360472e3d"
+ integrity sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==
+ dependencies:
+ "@vue/compiler-dom" "3.4.27"
+ "@vue/shared" "3.4.27"
+
+"@vue/shared@3.4.27":
+ version "3.4.27"
+ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50"
+ integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==
+
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
version "1.12.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb"
@@ -3067,6 +3458,13 @@ abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
accepts@~1.3.4, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -3093,7 +3491,7 @@ acorn-jsx@^5.3.1:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn-walk@^8.0.0, acorn-walk@^8.0.2:
+acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.2.0:
version "8.3.2"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
@@ -3103,7 +3501,7 @@ acorn@^7.4.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.0.4, acorn@^8.1.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2:
+acorn@^8.0.4, acorn@^8.1.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
version "8.11.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
@@ -3194,7 +3592,7 @@ ansi-colors@^4.1.1:
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
-ansi-escapes@^4.2.1:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
@@ -3258,6 +3656,11 @@ anymatch@^3.0.3, anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+app-module-path@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5"
+ integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==
+
append-transform@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12"
@@ -3265,11 +3668,21 @@ append-transform@^2.0.0:
dependencies:
default-require-extensions "^3.0.0"
+arch@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11"
+ integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
+
archy@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
+arg@^5.0.1, arg@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
+
argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -3393,11 +3806,28 @@ asn1.js@^4.10.1:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
+asn1@~0.2.3:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+ integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
+ dependencies:
+ safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+ integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
+
assertion-error@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
+ast-module-types@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/ast-module-types/-/ast-module-types-6.0.0.tgz#ea6132bb44a115717299dfdac934d2d13e8ecd93"
+ integrity sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==
+
ast-types-flow@^0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
@@ -3408,7 +3838,7 @@ astral-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-async@^3.2.2:
+async@^3.2.0, async@^3.2.2:
version "3.2.5"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
@@ -3418,6 +3848,11 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
author-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450"
@@ -3442,11 +3877,43 @@ available-typed-arrays@^1.0.7:
dependencies:
possible-typed-array-names "^1.0.0"
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+ integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
+
+aws4@^1.8.0:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc"
+ integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==
+
+axe-core@4.3.3:
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.3.tgz#b55cd8e8ddf659fe89b064680e1c6a4dceab0325"
+ integrity sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==
+
axe-core@^4.4.3:
version "4.9.0"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.9.0.tgz#b18971494551ab39d4ff5f7d4c6411bd20cc7c2a"
integrity sha512-H5orY+M2Fr56DWmMFpMrq5Ge93qjNdPVqzBv5gWK3aD1OvjBEJlEzxf09z93dGVQeI0LiW+aCMIx1QtShC/zUw==
+axios-retry@^3.4.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.9.1.tgz#c8924a8781c8e0a2c5244abf773deb7566b3830d"
+ integrity sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==
+ dependencies:
+ "@babel/runtime" "^7.15.4"
+ is-retry-allowed "^2.2.0"
+
+axios@^1.2.0:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+ integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
+ dependencies:
+ follow-redirects "^1.15.6"
+ form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
+
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
@@ -3618,6 +4085,13 @@ basic-auth@~2.0.1:
dependencies:
safe-buffer "5.1.2"
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
+ dependencies:
+ tweetnacl "^0.14.3"
+
before-after-hook@^2.2.0:
version "2.2.3"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c"
@@ -3647,6 +4121,21 @@ bl@^4.0.3, bl@^4.1.0:
inherits "^2.0.4"
readable-stream "^3.4.0"
+blob-util@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb"
+ integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==
+
+bluebird@3.5.5:
+ version "3.5.5"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
+ integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
+
+bluebird@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
+
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@@ -3830,6 +4319,11 @@ bser@2.1.1:
dependencies:
node-int64 "^0.4.0"
+buffer-crc32@~0.2.3:
+ version "0.2.13"
+ resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
+ integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
+
buffer-from@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@@ -3840,7 +4334,7 @@ buffer-xor@^1.0.3:
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==
-buffer@^5.5.0:
+buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
@@ -3861,6 +4355,11 @@ bytes@3.1.2:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+cacheable-lookup@^5.0.3:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
+ integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
+
cacheable-lookup@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27"
@@ -3879,6 +4378,24 @@ cacheable-request@^10.2.8:
normalize-url "^8.0.0"
responselike "^3.0.0"
+cacheable-request@^7.0.2:
+ version "7.0.4"
+ resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817"
+ integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==
+ 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"
+
+cachedir@^2.3.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d"
+ integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==
+
caching-transform@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f"
@@ -3942,6 +4459,11 @@ capital-case@^1.0.4:
tslib "^2.0.3"
upper-case-first "^2.0.2"
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+ integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
+
chai@^4.1.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1"
@@ -3972,7 +4494,7 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1:
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -4020,6 +4542,11 @@ check-error@^1.0.3:
dependencies:
get-func-name "^2.0.2"
+check-more-types@2.24.0, check-more-types@^2.24.0:
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
+ integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
+
chokidar@3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
@@ -4112,6 +4639,23 @@ cli-spinners@^2.5.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
+cli-table3@~0.6.1:
+ version "0.6.5"
+ resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f"
+ integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==
+ dependencies:
+ string-width "^4.2.0"
+ optionalDependencies:
+ "@colors/colors" "1.5.0"
+
+cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ dependencies:
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
+
cli-width@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
@@ -4153,6 +4697,13 @@ clone-deep@^4.0.1:
kind-of "^6.0.2"
shallow-clone "^3.0.0"
+clone-response@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3"
+ integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==
+ dependencies:
+ mimic-response "^1.0.0"
+
clone@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
@@ -4218,12 +4769,12 @@ colord@^2.9.3:
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
-colorette@^2.0.10:
+colorette@^2.0.10, colorette@^2.0.16:
version "2.0.20"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
-combined-stream@^1.0.8:
+combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
@@ -4235,11 +4786,26 @@ commander@8, commander@^8.3.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+commander@^10.0.0:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
+ integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
+
+commander@^12.0.0:
+ version "12.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
+ integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
+
commander@^2.15.1, commander@^2.20.0, commander@^2.9.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
@@ -4250,6 +4816,11 @@ common-path-prefix@^3.0.0:
resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0"
integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==
+common-tags@^1.8.0:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
+ integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -4316,6 +4887,13 @@ connect@^3.7.0:
parseurl "~1.3.3"
utils-merge "1.0.1"
+console.table@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/console.table/-/console.table-0.10.0.tgz#0917025588875befd70cf2eff4bef2c6e2d75d04"
+ integrity sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==
+ dependencies:
+ easy-table "1.1.0"
+
constant-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1"
@@ -4379,6 +4957,11 @@ core-js@^3.0.0, core-js@^3.26.1, core-js@^3.6.1:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb"
integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==
+core-util-is@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
+
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
@@ -4463,6 +5046,17 @@ cross-fetch@^3.0.4:
dependencies:
node-fetch "^2.6.12"
+cross-spawn@^6.0.0:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -4642,6 +5236,109 @@ custom-event@~1.0.0:
resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==
+cy2@^3.4.2:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/cy2/-/cy2-3.4.3.tgz#c61665a953256e22399804f69067bb407ca922da"
+ integrity sha512-I1yfJWJTRy2ROti1TlLM5Qk86WSeKMrtZbY/G6VD2tjm3VKTu6pDkpcV56C2HhN+txK5p6MMsmzKXJM2W9JlxA==
+ dependencies:
+ acorn "^8.8.0"
+ debug "^4.3.2"
+ escodegen "^2.0.0"
+ estraverse "^5.3.0"
+ js-yaml "^4.1.0"
+ npm-which "^3.0.1"
+ slash "3.0.0"
+
+cypress-cloud@^1.9.6:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/cypress-cloud/-/cypress-cloud-1.10.2.tgz#f69c1508552c34671defe7debc929b211eb8db6f"
+ integrity sha512-KR0HCtmAncMO/duLQ0eK+Aq34DSnnuWlsKCW83tPzz2boNGJdrqcLzC2xHNJeUxq8TH/vva7LI4TvZBkPeZa3Q==
+ dependencies:
+ "@currents/commit-info" "1.0.1-beta.0"
+ axios "^1.2.0"
+ axios-retry "^3.4.0"
+ bluebird "^3.7.2"
+ chalk "^4.1.2"
+ commander "^10.0.0"
+ common-path-prefix "^3.0.0"
+ cy2 "^3.4.2"
+ debug "^4.3.4"
+ execa "^5.1.1"
+ getos "^3.2.1"
+ globby "^11.1.0"
+ is-absolute "^1.0.0"
+ lil-http-terminator "^1.2.3"
+ lodash "^4.17.21"
+ nanoid "^3.3.4"
+ plur "^4.0.0"
+ pretty-ms "^7.0.1"
+ source-map-support "^0.5.21"
+ table "^6.8.1"
+ tmp-promise "^3.0.3"
+ ts-pattern "^4.3.0"
+ ws "^8.13.0"
+
+cypress-testrail-simple@^3.1.0:
+ version "3.3.24"
+ resolved "https://registry.yarnpkg.com/cypress-testrail-simple/-/cypress-testrail-simple-3.3.24.tgz#297965651abc1d29a3268c94688e49b0f44463f1"
+ integrity sha512-20QgAFFpcBerY97eCOsmHTOjyBycNSBxI0K3+H+BmsgX+T0nxl/hFuVlA2QhSu9/yEDCZJK+V7BTQKD2wQtHww==
+ dependencies:
+ "@actions/core" "^1.10.0"
+ arg "^5.0.1"
+ debug "^4.3.2"
+ find-cypress-specs "^1.31.3"
+ find-test-names "^1.28.3"
+ globby "^11"
+ got "^11.8.2"
+
+cypress@12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-12.0.0.tgz#97138b6a92836b4f37138703d396f20925cb6a13"
+ integrity sha512-hX/UeaKrL4uiRxJh+eX9t5YFXJconJyqG0hkFkK6CG+4xj2mMmzvJERF3e2h/9TzvLxPAkQ6cGz8eaHfJZeyGg==
+ 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.7"
+ 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.6"
+ 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"
+
d@1, d@^1.0.1, d@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
@@ -4655,6 +5352,13 @@ damerau-levenshtein@^1.0.8:
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
+ dependencies:
+ assert-plus "^1.0.0"
+
data-urls@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
@@ -4712,6 +5416,11 @@ date-format@^4.0.14:
resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400"
integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==
+dayjs@^1.10.4:
+ version "1.11.11"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
+ integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
+
dayjs@^1.11.10:
version "1.11.10"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
@@ -4729,7 +5438,7 @@ debug@2.6.9, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4:
+debug@4, debug@4.3.4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@~4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -4804,7 +5513,7 @@ deep-equal@^1.0.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.5.1"
-deep-equal@^2.0.5:
+deep-equal@^2.0.5, deep-equal@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1"
integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==
@@ -4857,7 +5566,7 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
-defer-to-connect@^2.0.1:
+defer-to-connect@^2.0.0, defer-to-connect@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
@@ -4890,6 +5599,16 @@ depd@2.0.0, depd@~2.0.0:
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+dependency-tree@^11.0.0:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/dependency-tree/-/dependency-tree-11.0.1.tgz#319c27652655f0ff63dc90809322156e90aa2a55"
+ integrity sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==
+ dependencies:
+ commander "^12.0.0"
+ filing-cabinet "^5.0.1"
+ precinct "^12.0.2"
+ typescript "^5.4.5"
+
deprecation@^2.0.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
@@ -4928,6 +5647,81 @@ detect-node@^2.0.4, detect-node@^2.1.0:
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
+detective-amd@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/detective-amd/-/detective-amd-6.0.0.tgz#29207f8309f3d2d130e3356d67f7fcd90e0c2cbf"
+ integrity sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==
+ dependencies:
+ ast-module-types "^6.0.0"
+ escodegen "^2.1.0"
+ get-amd-module-type "^6.0.0"
+ node-source-walk "^7.0.0"
+
+detective-cjs@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/detective-cjs/-/detective-cjs-6.0.0.tgz#65975719993fb4165a86e341a86784d7fcb4e3c8"
+ integrity sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==
+ dependencies:
+ ast-module-types "^6.0.0"
+ node-source-walk "^7.0.0"
+
+detective-es6@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/detective-es6/-/detective-es6-5.0.0.tgz#0dc90a946a0120d93b28901395ec99c4642990bd"
+ integrity sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==
+ dependencies:
+ node-source-walk "^7.0.0"
+
+detective-postcss@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-7.0.0.tgz#e9cff50836d67339a0bf4378f22dba4ed5809c01"
+ integrity sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==
+ dependencies:
+ is-url "^1.2.4"
+ postcss-values-parser "^6.0.2"
+
+detective-sass@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/detective-sass/-/detective-sass-6.0.0.tgz#0585093840afe069ac2bdb55f662a1928c8f6d81"
+ integrity sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==
+ dependencies:
+ gonzales-pe "^4.3.0"
+ node-source-walk "^7.0.0"
+
+detective-scss@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/detective-scss/-/detective-scss-5.0.0.tgz#3603e967bfc541c28b5cc9ceccd21c36725d6d86"
+ integrity sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==
+ dependencies:
+ gonzales-pe "^4.3.0"
+ node-source-walk "^7.0.0"
+
+detective-stylus@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/detective-stylus/-/detective-stylus-5.0.0.tgz#11c0464350d0b1484d6a7e281547280500c8353f"
+ integrity sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==
+
+detective-typescript@^13.0.0:
+ version "13.0.0"
+ resolved "https://registry.yarnpkg.com/detective-typescript/-/detective-typescript-13.0.0.tgz#41b391e77721b2872d70c96cc4d98261f9032353"
+ integrity sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "^7.6.0"
+ ast-module-types "^6.0.0"
+ node-source-walk "^7.0.0"
+
+detective-vue2@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/detective-vue2/-/detective-vue2-2.0.2.tgz#6f351790163af725928694df3f21dbbfe1df2c0d"
+ integrity sha512-7EWicLrVQjQ8gFCGWILUS8z04HSkVh1MmFemWRP+O9nAJgRSsOBiZwiODS8qer16BY2apNkYFDnvY/NcyCU4YA==
+ dependencies:
+ "@vue/compiler-sfc" "^3.4.27"
+ detective-es6 "^5.0.0"
+ detective-sass "^6.0.0"
+ detective-scss "^5.0.0"
+ detective-stylus "^5.0.0"
+ detective-typescript "^13.0.0"
+
di@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
@@ -5115,6 +5909,21 @@ eastasianwidth@^0.2.0:
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+easy-table@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.1.0.tgz#86f9ab4c102f0371b7297b92a651d5824bc8cb73"
+ integrity sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==
+ optionalDependencies:
+ wcwidth ">=1.0.1"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -5225,7 +6034,7 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.16.0:
graceful-fs "^4.2.4"
tapable "^2.2.0"
-enquirer@^2.3.5:
+enquirer@^2.3.5, enquirer@^2.3.6:
version "2.4.1"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56"
integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==
@@ -5243,7 +6052,7 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-entities@^4.2.0, entities@^4.4.0:
+entities@^4.2.0, entities@^4.4.0, entities@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
@@ -5465,6 +6274,35 @@ esbuild@^0.17.6:
"@esbuild/win32-ia32" "0.17.19"
"@esbuild/win32-x64" "0.17.19"
+esbuild@~0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
+ integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.20.2"
+ "@esbuild/android-arm" "0.20.2"
+ "@esbuild/android-arm64" "0.20.2"
+ "@esbuild/android-x64" "0.20.2"
+ "@esbuild/darwin-arm64" "0.20.2"
+ "@esbuild/darwin-x64" "0.20.2"
+ "@esbuild/freebsd-arm64" "0.20.2"
+ "@esbuild/freebsd-x64" "0.20.2"
+ "@esbuild/linux-arm" "0.20.2"
+ "@esbuild/linux-arm64" "0.20.2"
+ "@esbuild/linux-ia32" "0.20.2"
+ "@esbuild/linux-loong64" "0.20.2"
+ "@esbuild/linux-mips64el" "0.20.2"
+ "@esbuild/linux-ppc64" "0.20.2"
+ "@esbuild/linux-riscv64" "0.20.2"
+ "@esbuild/linux-s390x" "0.20.2"
+ "@esbuild/linux-x64" "0.20.2"
+ "@esbuild/netbsd-x64" "0.20.2"
+ "@esbuild/openbsd-x64" "0.20.2"
+ "@esbuild/sunos-x64" "0.20.2"
+ "@esbuild/win32-arm64" "0.20.2"
+ "@esbuild/win32-ia32" "0.20.2"
+ "@esbuild/win32-x64" "0.20.2"
+
escalade@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
@@ -5495,7 +6333,7 @@ escape-string-regexp@^2.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-escodegen@^2.0.0:
+escodegen@^2.0.0, escodegen@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
@@ -5683,7 +6521,7 @@ eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
-eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
+eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
@@ -5782,6 +6620,11 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+estree-walker@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
+ integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -5813,6 +6656,16 @@ event-stream@=3.3.4:
stream-combiner "~0.0.4"
through "~2.3.1"
+event-target-shim@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
+eventemitter2@6.4.7:
+ version "6.4.7"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
+ integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
+
eventemitter3@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba"
@@ -5836,7 +6689,35 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
md5.js "^1.3.4"
safe-buffer "^5.1.1"
-execa@^5.0.0:
+execa@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
+ integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
+ 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"
+
+execa@^5.0.0, execa@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
@@ -5851,6 +6732,13 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
+executable@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c"
+ integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==
+ dependencies:
+ pify "^2.2.0"
+
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -5916,7 +6804,7 @@ ext@^1.7.0:
dependencies:
type "^2.7.2"
-extend@^3.0.0, extend@^3.0.2:
+extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
@@ -5930,6 +6818,27 @@ external-editor@^3.0.3:
iconv-lite "^0.4.24"
tmp "^0.0.33"
+extract-zip@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
+ dependencies:
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
+
+extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+ integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
+
+extsprintf@^1.2.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+ integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
+
fake-xml-http-request@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/fake-xml-http-request/-/fake-xml-http-request-2.1.2.tgz#f1786720cae50bbb46273035a0173414f3e85e74"
@@ -6032,7 +6941,14 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"
-figures@^3.0.0:
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
+ dependencies:
+ pend "~1.2.0"
+
+figures@^3.0.0, figures@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
@@ -6053,6 +6969,23 @@ file-entry-cache@^8.0.0:
dependencies:
flat-cache "^4.0.0"
+filing-cabinet@^5.0.1:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/filing-cabinet/-/filing-cabinet-5.0.2.tgz#5d35bce3216af258a7ce7d3561d68ed86fb37d6f"
+ integrity sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==
+ dependencies:
+ app-module-path "^2.2.0"
+ commander "^12.0.0"
+ enhanced-resolve "^5.16.0"
+ module-definition "^6.0.0"
+ module-lookup-amd "^9.0.1"
+ resolve "^1.22.8"
+ resolve-dependency-path "^4.0.0"
+ sass-lookup "^6.0.1"
+ stylus-lookup "^6.0.0"
+ tsconfig-paths "^4.2.0"
+ typescript "^5.4.4"
+
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -6137,11 +7070,41 @@ find-cache-dir@^4.0.0:
common-path-prefix "^3.0.0"
pkg-dir "^7.0.0"
+find-cypress-specs@^1.31.3:
+ version "1.43.3"
+ resolved "https://registry.yarnpkg.com/find-cypress-specs/-/find-cypress-specs-1.43.3.tgz#d22b7ef4f93e49f69ae56704289ef1532d44f121"
+ integrity sha512-S/2c8W1SbuwY1MmQD1Md9jYNPm3298o1+VGJNrw70CcPrkjw0ASltDFRddcD0cFLmE8jOT9C/EwdZMi3RaM0jA==
+ dependencies:
+ "@actions/core" "^1.10.0"
+ arg "^5.0.1"
+ console.table "^0.10.0"
+ debug "^4.3.3"
+ find-test-names "1.28.18"
+ globby "^11.1.0"
+ minimatch "^3.0.4"
+ pluralize "^8.0.0"
+ require-and-forget "^1.0.1"
+ shelljs "^0.8.5"
+ spec-change "^1.11.0"
+ tsx "^4.7.1"
+
find-root@^1.0.0, find-root@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+find-test-names@1.28.18, find-test-names@^1.28.3:
+ version "1.28.18"
+ resolved "https://registry.yarnpkg.com/find-test-names/-/find-test-names-1.28.18.tgz#a10acba4ebd2e6db8e182e0fcc6f85d78fa29969"
+ integrity sha512-hhnGdkWK+qEA5Z02Tu0OqGQIUjFZNyOCE4WaJpbhW4hAF1+NZ7OCr0Bss9RCaj7BBtjoIjkU93utobQ8pg2iVg==
+ dependencies:
+ "@babel/parser" "^7.23.0"
+ "@babel/plugin-syntax-jsx" "^7.22.5"
+ acorn-walk "^8.2.0"
+ debug "^4.3.3"
+ globby "^11.0.4"
+ simple-bin-help "^1.8.0"
+
find-up@5.0.0, find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
@@ -6219,7 +7182,7 @@ flexboxgrid2@^7.2.0:
dependencies:
normalize.css "^7.0.0"
-follow-redirects@^1.0.0:
+follow-redirects@^1.0.0, follow-redirects@^1.15.6:
version "1.15.6"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
@@ -6239,6 +7202,11 @@ foreground-child@^2.0.0:
cross-spawn "^7.0.0"
signal-exit "^3.0.2"
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+ integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
+
form-data-encoder@^2.1.2:
version "2.1.4"
resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5"
@@ -6250,7 +7218,16 @@ form-data@^4.0.0:
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
dependencies:
asynckit "^0.4.0"
- combined-stream "^1.0.8"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
mime-types "^2.1.12"
forwarded@0.2.0:
@@ -6310,6 +7287,16 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-monkey@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.5.tgz#fe450175f0db0d7ea758102e1d84096acb925788"
@@ -6320,7 +7307,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@^2.3.2, fsevents@~2.3.2:
+fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -6355,6 +7342,14 @@ gensync@^1.0.0-beta.2:
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+get-amd-module-type@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-amd-module-type/-/get-amd-module-type-6.0.0.tgz#702ddcbe6cb8a41ab8f69ce5ea520bf3b0ede69a"
+ integrity sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==
+ dependencies:
+ ast-module-types "^6.0.0"
+ node-source-walk "^7.0.0"
+
get-caller-file@^2.0.1, get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
@@ -6376,6 +7371,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@
has-symbols "^1.0.3"
hasown "^2.0.0"
+get-own-enumerable-property-symbols@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+ integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@@ -6386,6 +7386,20 @@ get-stdin@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-stream@^5.0.0, get-stream@^5.1.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+ integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+ dependencies:
+ pump "^3.0.0"
+
get-stream@^6.0.0, get-stream@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
@@ -6407,6 +7421,27 @@ get-tsconfig@^4.4.0:
dependencies:
resolve-pkg-maps "^1.0.0"
+get-tsconfig@^4.7.5:
+ version "4.7.5"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.5.tgz#5e012498579e9a6947511ed0cd403272c7acbbaf"
+ integrity sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==
+ dependencies:
+ resolve-pkg-maps "^1.0.0"
+
+getos@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
+ integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==
+ dependencies:
+ async "^3.2.0"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
+ dependencies:
+ assert-plus "^1.0.0"
+
github-from-package@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
@@ -6435,7 +7470,7 @@ glob@8.1.0:
minimatch "^5.0.1"
once "^1.3.0"
-glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7:
+glob@^7.0.0, glob@^7.0.5, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.3:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
@@ -6506,7 +7541,7 @@ globalthis@^1.0.3:
dependencies:
define-properties "^1.1.3"
-globby@^11.1.0:
+globby@^11, globby@^11.0.4, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -6523,6 +7558,13 @@ globjoin@^0.1.4:
resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43"
integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==
+gonzales-pe@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz#fe9dec5f3c557eead09ff868c65826be54d067b3"
+ integrity sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==
+ dependencies:
+ minimist "^1.2.5"
+
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@@ -6530,6 +7572,23 @@ gopd@^1.0.1:
dependencies:
get-intrinsic "^1.1.3"
+got@^11.8.2:
+ version "11.8.6"
+ resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a"
+ integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==
+ 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"
+
got@^12.1.0:
version "12.6.1"
resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549"
@@ -6804,7 +7863,7 @@ htmlparser2@^6.1.0:
domutils "^2.5.2"
entities "^2.0.0"
-http-cache-semantics@^4.1.1:
+http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
@@ -6838,6 +7897,23 @@ http-proxy@^1.18.1:
follow-redirects "^1.0.0"
requires-port "^1.0.0"
+http-signature@~1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.3.6.tgz#cb6fbfdf86d1c974f343be94e87f7fc128662cf9"
+ integrity sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^2.0.2"
+ sshpk "^1.14.1"
+
+http2-wrapper@^1.0.0-beta.5.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
+ integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
+ dependencies:
+ quick-lru "^5.1.1"
+ resolve-alpn "^1.0.0"
+
http2-wrapper@^2.1.10:
version "2.2.1"
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a"
@@ -6862,6 +7938,11 @@ https-proxy-agent@^5.0.1:
agent-base "6"
debug "4"
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
human-signals@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
@@ -6944,6 +8025,13 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+inactivity-timer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/inactivity-timer/-/inactivity-timer-1.0.0.tgz#054bf48274efea5c82713cb051b945fb42ec59bb"
+ integrity sha512-kxWME4cNy0TKfy9wwJ2L3oCV1JDFQTPGtYdw3Zvpiv5GbZwfnCwfESJgM1MQaYcrzLYOziiU3YEAgWOafL7Kdw==
+ dependencies:
+ ms "^2.1.1"
+
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
@@ -7012,7 +8100,7 @@ internal-slot@^1.0.4, internal-slot@^1.0.7:
hasown "^2.0.0"
side-channel "^1.0.4"
-interpret@^1.4.0:
+interpret@^1.0.0, interpret@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
@@ -7039,6 +8127,19 @@ ipaddr.js@1.9.1:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
+irregular-plurals@^3.2.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-3.5.0.tgz#0835e6639aa8425bdc8b0d33d0dc4e89d9c01d2b"
+ integrity sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==
+
+is-absolute@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576"
+ integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==
+ dependencies:
+ is-relative "^1.0.0"
+ is-windows "^1.0.1"
+
is-arguments@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
@@ -7092,7 +8193,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-ci@^3.0.1:
+is-ci@^3.0.0, is-ci@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
@@ -7147,7 +8248,7 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-installed-globally@^0.4.0:
+is-installed-globally@^0.4.0, is-installed-globally@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
@@ -7187,7 +8288,7 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-obj@^1.0.0:
+is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==
@@ -7244,6 +8345,23 @@ is-regex@^1.1.4:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
+is-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+ integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==
+
+is-relative@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"
+ integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==
+ dependencies:
+ is-unc-path "^1.0.0"
+
+is-retry-allowed@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d"
+ integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==
+
is-running@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-running/-/is-running-2.1.0.tgz#30a73ff5cc3854e4fc25490809e9f5abf8de09e0"
@@ -7261,6 +8379,11 @@ is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
dependencies:
call-bind "^1.0.7"
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+
is-stream@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
@@ -7287,16 +8410,33 @@ is-typed-array@^1.1.13:
dependencies:
which-typed-array "^1.1.14"
-is-typedarray@^1.0.0:
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+is-unc-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d"
+ integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==
+ dependencies:
+ unc-path-regex "^0.1.2"
+
is-unicode-supported@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+is-url-superb@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-url-superb/-/is-url-superb-4.0.0.tgz#b54d1d2499bb16792748ac967aa3ecb41a33a8c2"
+ integrity sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==
+
+is-url@^1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
+ integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
+
is-weakmap@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd"
@@ -7317,7 +8457,7 @@ is-weakset@^2.0.3:
call-bind "^1.0.7"
get-intrinsic "^1.2.4"
-is-windows@^1.0.2:
+is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
@@ -7364,6 +8504,11 @@ isobject@^3.0.1:
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+ integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
+
istanbul-lib-coverage@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
@@ -7929,6 +9074,11 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+ integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
+
jsdom@^20.0.0:
version "20.0.3"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
@@ -8020,6 +9170,11 @@ json-schema-traverse@^1.0.0:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+json-schema@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+ integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
+
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
@@ -8035,6 +9190,11 @@ json-stable-stringify@^1.0.1:
jsonify "^0.0.1"
object-keys "^1.1.1"
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+ integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
+
json2csv@^4.2.1:
version "4.5.4"
resolved "https://registry.yarnpkg.com/json2csv/-/json2csv-4.5.4.tgz#2b59c2869a137ec48cd2e243e0180466155f773f"
@@ -8051,7 +9211,7 @@ json5@^1.0.1, json5@^1.0.2:
dependencies:
minimist "^1.2.0"
-json5@^2.1.2, json5@^2.2.3:
+json5@^2.1.2, json5@^2.2.2, json5@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
@@ -8082,6 +9242,16 @@ jsonparse@^1.3.1:
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
+jsprim@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
+ integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.4.0"
+ verror "1.10.0"
+
"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2:
version "3.3.5"
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a"
@@ -8210,7 +9380,7 @@ keyboardjs@~2.5.1:
resolved "https://registry.yarnpkg.com/keyboardjs/-/keyboardjs-2.5.1.tgz#2eb5d96bd1028e07136cd71919f607579edca716"
integrity sha512-mRf7MQMiFcudADEpPn3vTtl/rtFELo5MAiKA6yH4ShsFsnwwjMrVfaNt6bpYhBDeODs/T5NXwltz4+ktRQyP7A==
-keyv@^4.5.3, keyv@^4.5.4:
+keyv@^4.0.0, keyv@^4.5.3, keyv@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
@@ -8261,6 +9431,16 @@ latest-version@^7.0.0:
dependencies:
package-json "^8.1.0"
+lazy-ass@1.6.0, lazy-ass@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
+ integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==
+
+lazy-ass@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-2.0.3.tgz#1e8451729f2bebdff1218bb18921566a08f81b36"
+ integrity sha512-/O3/DoQmI1XAhklDvF1dAjFf/epE8u3lzOZegQfLZ8G7Ud5bTRSZiFOpukHCu6jODrCA4gtIdwUCC7htxcDACA==
+
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -8281,11 +9461,30 @@ lie@3.1.1:
dependencies:
immediate "~3.0.5"
+lil-http-terminator@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/lil-http-terminator/-/lil-http-terminator-1.2.3.tgz#594ef0f3c2b2f7d43a8f2989b2b3de611bf507eb"
+ integrity sha512-vQcHSwAFq/kTR2cG6peOVS7SjgksGgSPeH0G2lkw+buue33thE/FCHdn10wJXXshc5RswFy0Iaz48qA2Busw5Q==
+
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+listr2@^3.8.3:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e"
+ integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==
+ dependencies:
+ cli-truncate "^2.1.0"
+ colorette "^2.0.16"
+ log-update "^4.0.0"
+ p-map "^4.0.0"
+ rfdc "^1.3.0"
+ rxjs "^7.5.1"
+ through "^2.3.8"
+ wrap-ansi "^7.0.0"
+
loader-runner@^4.2.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
@@ -8383,6 +9582,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+lodash.once@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
+ integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
+
lodash.truncate@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
@@ -8393,7 +9597,7 @@ lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.2
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@4.1.0, log-symbols@^4.1.0:
+log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
@@ -8408,6 +9612,16 @@ log-symbols@^2.1.0:
dependencies:
chalk "^2.0.1"
+log-update@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+ integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
+ dependencies:
+ ansi-escapes "^4.3.0"
+ cli-cursor "^3.1.0"
+ slice-ansi "^4.0.0"
+ wrap-ansi "^6.2.0"
+
log4js@^6.4.1:
version "6.9.1"
resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.9.1.tgz#aba5a3ff4e7872ae34f8b4c533706753709e38b6"
@@ -8448,6 +9662,11 @@ lower-case@^2.0.2:
dependencies:
tslib "^2.0.3"
+lowercase-keys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+ integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
lowercase-keys@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2"
@@ -8477,6 +9696,13 @@ lz-string@^1.5.0:
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==
+magic-string@^0.30.10:
+ version "0.30.10"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e"
+ integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.15"
+
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
@@ -8628,7 +9854,7 @@ mime-db@1.52.0:
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
version "2.1.35"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -8650,6 +9876,11 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+mimic-response@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+ integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
mimic-response@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
@@ -8718,7 +9949,7 @@ minimatch@^8.0.2:
dependencies:
brace-expansion "^2.0.1"
-minimatch@^9.0.3:
+minimatch@^9.0.3, minimatch@^9.0.4:
version "9.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
@@ -8835,6 +10066,24 @@ mocha@^10.2.0:
yargs-parser "20.2.4"
yargs-unparser "2.0.0"
+module-definition@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/module-definition/-/module-definition-6.0.0.tgz#724b4c57543f53f814d2892499857777c3859630"
+ integrity sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==
+ dependencies:
+ ast-module-types "^6.0.0"
+ node-source-walk "^7.0.0"
+
+module-lookup-amd@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/module-lookup-amd/-/module-lookup-amd-9.0.1.tgz#2fb92d962b065e084add7e48d17c32cf3ff0056c"
+ integrity sha512-MFeZCK6j2k7fXlldyZ1FgA5goTmvLF0BCQKkxzapsvsPqhCM6NvanE0vy9x5HpY5ETF1yo+PCB9TZIow3PABYg==
+ dependencies:
+ commander "^12.0.0"
+ glob "^7.2.3"
+ requirejs "^2.3.6"
+ requirejs-config-file "^4.0.0"
+
moment-range@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/moment-range/-/moment-range-4.0.2.tgz#f7c3863df2a1ed7fd1822ba5a7bcf53a78701be9"
@@ -8849,7 +10098,7 @@ moment-timezone@^0.5.14:
dependencies:
moment "^2.29.4"
-moment@^2.29.0, moment@^2.29.4:
+moment@^2.29.0, moment@^2.29.3, moment@^2.29.4:
version "2.30.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
@@ -8887,7 +10136,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.1.1:
+ms@2.1.3, ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -8904,7 +10153,7 @@ nano-time@1.0.0:
dependencies:
big-integer "^1.6.16"
-nanoid@^3.3.7:
+nanoid@^3.3.4, nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
@@ -8934,6 +10183,11 @@ next-tick@^1.1.0:
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
no-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
@@ -8983,6 +10237,13 @@ node-releases@^2.0.14:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+node-source-walk@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/node-source-walk/-/node-source-walk-7.0.0.tgz#cd849f539939994868a0b2ba4e9758322b2fcee6"
+ integrity sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==
+ dependencies:
+ "@babel/parser" "^7.24.4"
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
@@ -8993,6 +10254,11 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+normalize-url@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+ integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
+
normalize-url@^8.0.0:
version "8.0.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a"
@@ -9008,13 +10274,36 @@ normalize.css@^8.0.1:
resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3"
integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==
-npm-run-path@^4.0.1:
+npm-path@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
+ integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==
+ dependencies:
+ which "^1.2.10"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
+ dependencies:
+ path-key "^2.0.0"
+
+npm-run-path@^4.0.0, npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
path-key "^3.0.0"
+npm-which@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+ integrity sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==
+ dependencies:
+ commander "^2.9.0"
+ npm-path "^2.0.2"
+ which "^1.2.10"
+
nth-check@^2.0.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
@@ -9220,11 +10509,26 @@ os-tmpdir@~1.0.2:
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
+ospath@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b"
+ integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==
+
+p-cancelable@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
+ integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
+
p-cancelable@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050"
integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
+
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
@@ -9295,6 +10599,13 @@ p-map@^3.0.0:
dependencies:
aggregate-error "^3.0.0"
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
@@ -9379,6 +10690,11 @@ parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
+parse-ms@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d"
+ integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==
+
parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
@@ -9432,6 +10748,11 @@ path-is-inside@^1.0.1:
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
+
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -9490,6 +10811,21 @@ pbkdf2@^3.0.3, pbkdf2@^3.1.2:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
+pend@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
+ integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
+
+performance-api@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/performance-api/-/performance-api-1.0.0.tgz#0fe0198fa2db8f92e2786be1166fd134648cec9e"
+ integrity sha512-hZKWxgX3+rv9iPA6hBTr9U+9rNN8mf5joahZ5m9z/fEoqyfS/9qkVs7GGrb/JifjNlgqgduK6uWp+16n+petMg==
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
+
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -9500,7 +10836,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-pify@^2.3.0:
+pify@^2.2.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
@@ -9548,6 +10884,18 @@ pkg-up@^3.1.0:
dependencies:
find-up "^3.0.0"
+plur@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/plur/-/plur-4.0.0.tgz#729aedb08f452645fe8c58ef115bf16b0a73ef84"
+ integrity sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==
+ dependencies:
+ irregular-plurals "^3.2.0"
+
+pluralize@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
+ integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
+
popper.js@^1.14.6:
version "1.16.1"
resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
@@ -9637,6 +10985,15 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
+postcss-values-parser@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz#636edc5b86c953896f1bb0d7a7a6615df00fb76f"
+ integrity sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==
+ dependencies:
+ color-name "^1.1.4"
+ is-url-superb "^4.0.0"
+ quote-unquote "^1.0.0"
+
postcss@^8.4.2, postcss@^8.4.33, postcss@^8.4.38:
version "8.4.38"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
@@ -9664,6 +11021,27 @@ prebuild-install@^7.1.1:
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
+precinct@^12.0.2:
+ version "12.1.1"
+ resolved "https://registry.yarnpkg.com/precinct/-/precinct-12.1.1.tgz#458e217c6ab51f964a03c2a7352a40ab009c4611"
+ integrity sha512-Vmmtp0QdtM0Z5NzkRG09AgUgBwOpG0KW9KvG1vkltx+e2zrGCWbM5661f6lf8YjKbJhM39TICA6Wc36ZzX1PqQ==
+ dependencies:
+ "@dependents/detective-less" "^5.0.0"
+ commander "^12.0.0"
+ detective-amd "^6.0.0"
+ detective-cjs "^6.0.0"
+ detective-es6 "^5.0.0"
+ detective-postcss "^7.0.0"
+ detective-sass "^6.0.0"
+ detective-scss "^5.0.0"
+ detective-stylus "^5.0.0"
+ detective-typescript "^13.0.0"
+ detective-vue2 "^2.0.0"
+ module-definition "^6.0.0"
+ node-source-walk "^7.0.0"
+ postcss "^8.4.38"
+ typescript "^5.4.5"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -9686,6 +11064,11 @@ pretender@^3.4.7:
fake-xml-http-request "^2.1.2"
route-recognizer "^0.3.3"
+pretty-bytes@^5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
+ integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
+
pretty-error@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
@@ -9712,6 +11095,13 @@ pretty-format@^29.0.0, pretty-format@^29.7.0:
ansi-styles "^5.0.0"
react-is "^18.0.0"
+pretty-ms@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8"
+ integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==
+ dependencies:
+ parse-ms "^2.1.0"
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -9777,6 +11167,16 @@ proxy-addr@~2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
+proxy-from-env@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
+ integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==
+
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
ps-tree@=1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
@@ -9843,6 +11243,13 @@ qs@6.11.0:
dependencies:
side-channel "^1.0.4"
+qs@~6.10.3:
+ version "6.10.5"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.5.tgz#974715920a80ff6a262264acd2c7e6c2a53282b4"
+ integrity sha512-O5RlPh0VFtR78y79rgcgKK4wbAI0C5zGVLztOIdpWX6ep368q5Hv6XRxDvXuZ9q3C6v+e3n8UfZZJw7IIG27eQ==
+ dependencies:
+ side-channel "^1.0.4"
+
query-string@^7.1.2:
version "7.1.3"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328"
@@ -9903,6 +11310,16 @@ quill@^1.3.7:
parchment "^1.1.4"
quill-delta "^3.6.2"
+quote-unquote@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/quote-unquote/-/quote-unquote-1.0.0.tgz#67a9a77148effeaf81a4d428404a710baaac8a0b"
+ integrity sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==
+
+ramda@0.26.1:
+ version "0.26.1"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
+ integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
+
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -10157,6 +11574,13 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==
+ dependencies:
+ resolve "^1.1.6"
+
redent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
@@ -10313,6 +11737,20 @@ renderkid@^3.0.0:
lodash "^4.17.21"
strip-ansi "^6.0.1"
+request-progress@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe"
+ integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==
+ dependencies:
+ throttleit "^1.0.0"
+
+require-and-forget@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-and-forget/-/require-and-forget-1.0.1.tgz#b535a1b8f0f0dd6a48ab05b0ab15d26135d61142"
+ integrity sha512-Sea861D/seGo3cptxc857a34Df0oEijXit8Q3IDodiwZMzVmyXrRI9EgQQa3hjkhoEjNzCBvv0t/0fMgebmWLg==
+ dependencies:
+ debug "4.3.4"
+
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
@@ -10333,6 +11771,19 @@ requireindex@^1.2.0:
resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef"
integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==
+requirejs-config-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz#4244da5dd1f59874038cc1091d078d620abb6ebc"
+ integrity sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==
+ dependencies:
+ esprima "^4.0.0"
+ stringify-object "^3.2.1"
+
+requirejs@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9"
+ integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==
+
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
@@ -10343,7 +11794,7 @@ reselect@^4.1.7:
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524"
integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==
-resolve-alpn@^1.2.0:
+resolve-alpn@^1.0.0, resolve-alpn@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
@@ -10355,6 +11806,11 @@ resolve-cwd@^3.0.0:
dependencies:
resolve-from "^5.0.0"
+resolve-dependency-path@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-dependency-path/-/resolve-dependency-path-4.0.0.tgz#ec0b2aa83ce8cd125c7db734a40b4809959bf688"
+ integrity sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==
+
resolve-from@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
@@ -10392,7 +11848,7 @@ resolve.exports@^2.0.0:
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
-resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4, resolve@^1.22.8:
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.4, resolve@^1.22.8:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
@@ -10415,6 +11871,13 @@ response-iterator@^0.2.6:
resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da"
integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==
+responselike@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc"
+ integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==
+ dependencies:
+ lowercase-keys "^2.0.0"
+
responselike@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626"
@@ -10503,7 +11966,7 @@ rxjs@^6.6.3:
dependencies:
tslib "^1.9.0"
-rxjs@^7.5.5:
+rxjs@^7.5.1, rxjs@^7.5.5:
version "7.8.1"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
@@ -10539,11 +12002,18 @@ safe-regex-test@^1.0.3:
es-errors "^1.3.0"
is-regex "^1.1.4"
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0":
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+sass-lookup@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/sass-lookup/-/sass-lookup-6.0.1.tgz#6f80a06d86b1d9590c49df425f542fdbb9f119cb"
+ integrity sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==
+ dependencies:
+ commander "^12.0.0"
+
sax@>=0.6.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
@@ -10589,7 +12059,7 @@ semver-diff@^4.0.0:
dependencies:
semver "^7.3.5"
-semver@^5.6.0, semver@^5.7.2:
+semver@^5.5.0, semver@^5.6.0, semver@^5.7.2:
version "5.7.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
@@ -10606,6 +12076,11 @@ semver@^7.1.3, semver@^7.2.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semve
dependencies:
lru-cache "^6.0.0"
+semver@^7.3.2, semver@^7.6.0:
+ version "7.6.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+ integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
+
send@0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
@@ -10726,6 +12201,13 @@ sharp@^0.32.4:
tar-fs "^3.0.4"
tunnel-agent "^0.6.0"
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
+ dependencies:
+ shebang-regex "^1.0.0"
+
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
@@ -10733,11 +12215,25 @@ shebang-command@^2.0.0:
dependencies:
shebang-regex "^3.0.0"
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
+
shebang-regex@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+shelljs@^0.8.5:
+ version "0.8.5"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
+ integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
side-channel@^1.0.4, side-channel@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
@@ -10748,7 +12244,7 @@ side-channel@^1.0.4, side-channel@^1.0.6:
get-intrinsic "^1.2.4"
object-inspect "^1.13.1"
-signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
@@ -10758,6 +12254,11 @@ signal-exit@^4.0.1:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+simple-bin-help@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/simple-bin-help/-/simple-bin-help-1.8.0.tgz#21bb82c6bccd9fa8678f9c0fadf2956b54e2160a"
+ integrity sha512-0LxHn+P1lF5r2WwVB/za3hLRIsYoLaNq1CXqjbrs3ZvLuvlWnRKrUjEWzV7umZL7hpQ7xULiQMV+0iXdRa5iFg==
+
simple-concat@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
@@ -10802,11 +12303,20 @@ sisteransi@^1.0.5:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-slash@^3.0.0:
+slash@3.0.0, slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+slice-ansi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+ integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
slice-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
@@ -10879,7 +12389,7 @@ source-map-support@0.5.13:
buffer-from "^1.0.0"
source-map "^0.6.0"
-source-map-support@^0.5.16, source-map-support@~0.5.20:
+source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@~0.5.20:
version "0.5.21"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
@@ -10909,6 +12419,18 @@ spawn-wrap@^2.0.0:
signal-exit "^3.0.2"
which "^2.0.1"
+spec-change@^1.11.0:
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/spec-change/-/spec-change-1.11.3.tgz#114aa966bbdcca235400c90d171aec3a416fa59d"
+ integrity sha512-IuJQw97WXU5avvJ2cdd7L2TrrzEBefCp2swWGrL3S2Qsr6UlM30nd8C4s65N05BcU1/3qcmzsZXw3VFuX66o6w==
+ dependencies:
+ arg "^5.0.2"
+ debug "^4.3.4"
+ deep-equal "^2.2.3"
+ dependency-tree "^11.0.0"
+ globby "^11.1.0"
+ lazy-ass "^2.0.3"
+
split-on-first@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
@@ -10931,6 +12453,21 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+sshpk@^1.14.1:
+ version "1.18.0"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028"
+ integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
stack-utils@^2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
@@ -11085,6 +12622,15 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
+stringify-object@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+ integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+ dependencies:
+ get-own-enumerable-property-symbols "^3.0.0"
+ is-obj "^1.0.1"
+ is-regexp "^1.0.0"
+
strip-ansi@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@@ -11116,6 +12662,11 @@ strip-bom@^4.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
+
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -11212,7 +12763,14 @@ stylelint@^16.2.0:
table "^6.8.2"
write-file-atomic "^5.0.1"
-supports-color@8.1.1, supports-color@^8.0.0:
+stylus-lookup@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/stylus-lookup/-/stylus-lookup-6.0.0.tgz#a15ea3abc399a0b72127e95422b2e7bb4fee86bb"
+ integrity sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==
+ dependencies:
+ commander "^12.0.0"
+
+supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
@@ -11286,7 +12844,7 @@ symbol-tree@^3.2.4:
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-table@^6.0.9, table@^6.8.2:
+table@^6.0.9, table@^6.8.1, table@^6.8.2:
version "6.8.2"
resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58"
integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==
@@ -11400,7 +12958,12 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-through@2, through@^2.3.6, through@~2.3, through@~2.3.1:
+throttleit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5"
+ integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==
+
+through@2, through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
@@ -11415,6 +12978,13 @@ tiny-warning@^1.0.0:
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+tmp-promise@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7"
+ integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
+ dependencies:
+ tmp "^0.2.0"
+
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -11422,7 +12992,7 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
-tmp@^0.2.1:
+tmp@^0.2.0, tmp@^0.2.1, tmp@~0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
@@ -11483,7 +13053,7 @@ tr46@~0.0.3:
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-ts-api-utils@^1.0.1:
+ts-api-utils@^1.0.1, ts-api-utils@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
@@ -11506,6 +13076,11 @@ ts-loader@^9.4.1:
semver "^7.3.4"
source-map "^0.7.4"
+ts-pattern@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ts-pattern/-/ts-pattern-4.3.0.tgz#7a995b39342f1b00d1507c2d2f3b90ea16e178a6"
+ integrity sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==
+
tsconfig-paths@^3.14.1:
version "3.15.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
@@ -11516,6 +13091,15 @@ tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
+tsconfig-paths@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c"
+ integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==
+ dependencies:
+ json5 "^2.2.2"
+ minimist "^1.2.6"
+ strip-bom "^3.0.0"
+
tslib@^1.8.1, tslib@^1.9.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
@@ -11533,6 +13117,16 @@ tsutils@^3.21.0:
dependencies:
tslib "^1.8.1"
+tsx@^4.7.1:
+ version "4.11.0"
+ resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.11.0.tgz#fdd8ce7ccaa0a84aed64c11e2fc5da314e1d8d14"
+ integrity sha512-vzGGELOgAupsNVssAmZjbUDfdm/pWP4R+Kg8TVdsonxbXk0bEpE1qh0yV6/QxUVXaVlNemgcPajGdJJ82n3stg==
+ dependencies:
+ esbuild "~0.20.2"
+ get-tsconfig "^4.7.5"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -11540,6 +13134,16 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
+tunnel@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
+ integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+ integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
+
type-check@^0.4.0, type-check@~0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
@@ -11641,7 +13245,7 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
-typescript@5, typescript@^5.3.3:
+typescript@5, typescript@^5.3.3, typescript@^5.4.4, typescript@^5.4.5:
version "5.4.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"
integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==
@@ -11666,6 +13270,11 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
+unc-path-regex@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
+ integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==
+
uncontrollable@^7.2.1:
version "7.2.1"
resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738"
@@ -11681,6 +13290,13 @@ undici-types@~5.26.4:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+undici@^5.25.4:
+ version "5.28.4"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+ integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
+ dependencies:
+ "@fastify/busboy" "^2.0.0"
+
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
@@ -11759,6 +13375,11 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
+untildify@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
+ integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+
update-browserslist-db@^1.0.13:
version "1.0.13"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
@@ -11885,6 +13506,15 @@ vary@^1, vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
void-elements@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
@@ -11919,7 +13549,7 @@ watchpack@^2.4.1:
glob-to-regexp "^0.4.1"
graceful-fs "^4.1.2"
-wcwidth@^1.0.1:
+wcwidth@>=1.0.1, wcwidth@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
@@ -12109,7 +13739,7 @@ which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15:
gopd "^1.0.1"
has-tostringtag "^1.0.2"
-which@^1.2.1, which@^1.3.1:
+which@^1.2.1, which@^1.2.10, which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -12378,6 +14008,14 @@ yargs@^17.3.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
+yauzl@^2.10.0:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+ dependencies:
+ buffer-crc32 "~0.2.3"
+ fd-slicer "~1.1.0"
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"