From f7cc48495b085fe8f6cfa37e80e968d5b47639df Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Wed, 1 Jun 2022 23:21:30 +0200 Subject: test: install and configure cypress I also configure Jest to avoid conflicts between Cypress and Jest. --- .gitignore | 4 + __tests__/jest/__mocks__/matchMedia.mock.js | 15 - __tests__/utils/test-utils.tsx | 43 -- cypress.config.js | 15 + jest.config.js | 7 +- jest.setup.js | 2 +- package.json | 20 +- src/components/atoms/buttons/button-link.test.tsx | 2 +- src/components/atoms/buttons/button.test.tsx | 2 +- src/components/atoms/forms/boolean-field.test.tsx | 2 +- src/components/atoms/forms/field.test.tsx | 2 +- src/components/atoms/forms/form.test.tsx | 2 +- src/components/atoms/forms/label.test.tsx | 2 +- src/components/atoms/forms/select.test.tsx | 2 +- src/components/atoms/headings/heading.test.tsx | 2 +- src/components/atoms/icons/arrow.test.tsx | 2 +- src/components/atoms/icons/career.test.tsx | 2 +- src/components/atoms/icons/cc-by-sa.test.tsx | 2 +- src/components/atoms/icons/close.test.tsx | 2 +- src/components/atoms/icons/cog.test.tsx | 2 +- .../atoms/icons/computer-screen.test.tsx | 2 +- src/components/atoms/icons/envelop.test.tsx | 2 +- src/components/atoms/icons/feed.test.tsx | 2 +- src/components/atoms/icons/hamburger.test.tsx | 2 +- src/components/atoms/icons/home.test.tsx | 2 +- .../atoms/icons/magnifying-glass.test.tsx | 2 +- src/components/atoms/icons/moon.test.tsx | 2 +- src/components/atoms/icons/plus-minus.test.tsx | 2 +- src/components/atoms/icons/posts-stack.test.tsx | 2 +- src/components/atoms/icons/sun.test.tsx | 2 +- src/components/atoms/images/logo.test.tsx | 2 +- src/components/atoms/layout/column.test.tsx | 2 +- src/components/atoms/layout/copyright.test.tsx | 2 +- src/components/atoms/layout/main.test.tsx | 2 +- src/components/atoms/layout/no-script.test.tsx | 2 +- src/components/atoms/layout/notice.test.tsx | 2 +- src/components/atoms/layout/section.test.tsx | 2 +- src/components/atoms/layout/sidebar.test.tsx | 2 +- src/components/atoms/links/link.test.tsx | 2 +- src/components/atoms/links/nav-link.test.tsx | 2 +- src/components/atoms/links/sharing-link.test.tsx | 2 +- src/components/atoms/links/social-link.test.tsx | 2 +- .../atoms/lists/description-list-item.test.tsx | 2 +- .../atoms/lists/description-list.test.tsx | 2 +- src/components/atoms/lists/list.test.tsx | 2 +- src/components/atoms/loaders/progress-bar.test.tsx | 2 +- src/components/atoms/loaders/spinner.test.tsx | 2 +- .../molecules/buttons/back-to-top.test.tsx | 2 +- .../molecules/buttons/heading-button.test.tsx | 2 +- .../molecules/buttons/help-button.test.tsx | 2 +- .../molecules/forms/ackee-toggle.test.tsx | 2 +- src/components/molecules/forms/fieldset.test.tsx | 2 +- .../molecules/forms/flipping-label.test.tsx | 2 +- .../forms/labelled-boolean-field.test.tsx | 2 +- .../molecules/forms/labelled-field.test.tsx | 2 +- .../molecules/forms/labelled-select.test.tsx | 2 +- .../molecules/forms/motion-toggle.test.tsx | 2 +- .../molecules/forms/prism-theme-toggle.test.tsx | 2 +- .../molecules/forms/radio-group.test.tsx | 2 +- .../molecules/forms/theme-toggle.test.tsx | 2 +- .../molecules/images/flipping-logo.test.tsx | 2 +- .../molecules/images/responsive-image.test.tsx | 2 +- src/components/molecules/layout/branding.test.tsx | 2 +- src/components/molecules/layout/card.test.tsx | 2 +- src/components/molecules/layout/code.test.tsx | 2 +- src/components/molecules/layout/columns.test.tsx | 2 +- src/components/molecules/layout/meta.test.tsx | 2 +- .../molecules/layout/page-footer.test.tsx | 2 +- .../molecules/layout/page-header.test.tsx | 2 +- src/components/molecules/layout/widget.test.tsx | 2 +- src/components/molecules/modals/modal.test.tsx | 2 +- src/components/molecules/modals/tooltip.test.tsx | 2 +- src/components/molecules/nav/breadcrumb.test.tsx | 2 +- src/components/molecules/nav/nav.test.tsx | 2 +- src/components/molecules/nav/pagination.test.tsx | 2 +- .../organisms/forms/comment-form.test.tsx | 2 +- .../organisms/forms/contact-form.test.tsx | 2 +- .../organisms/forms/search-form.test.tsx | 2 +- .../organisms/forms/settings-form.test.tsx | 2 +- src/components/organisms/images/gallery.test.tsx | 2 +- .../organisms/layout/cards-list.test.tsx | 2 +- src/components/organisms/layout/comment.test.tsx | 2 +- .../organisms/layout/comments-list.test.tsx | 2 +- src/components/organisms/layout/footer.test.tsx | 2 +- src/components/organisms/layout/header.test.tsx | 2 +- .../organisms/layout/no-results.test.tsx | 2 +- src/components/organisms/layout/overview.test.tsx | 2 +- .../organisms/layout/posts-list.test.tsx | 2 +- src/components/organisms/layout/summary.test.tsx | 2 +- .../organisms/modals/search-modal.test.tsx | 2 +- .../organisms/modals/settings-modal.test.tsx | 2 +- src/components/organisms/toolbar/main-nav.test.tsx | 2 +- src/components/organisms/toolbar/search.test.tsx | 2 +- src/components/organisms/toolbar/settings.test.tsx | 2 +- src/components/organisms/toolbar/toolbar.test.tsx | 2 +- .../organisms/widgets/image-widget.test.tsx | 2 +- .../organisms/widgets/links-list-widget.test.tsx | 2 +- src/components/organisms/widgets/sharing.test.tsx | 2 +- .../organisms/widgets/social-media.test.tsx | 2 +- .../organisms/widgets/table-of-contents.test.tsx | 2 +- src/components/templates/layout/layout.test.tsx | 2 +- src/components/templates/page/page-layout.test.tsx | 2 +- .../templates/sectioned/sectioned-layout.test.tsx | 2 +- tests/cypress/fixtures/example.json | 5 + tests/cypress/plugins/index.ts | 22 + tests/cypress/support/commands.ts | 6 + tests/cypress/support/e2e.ts | 20 + tests/cypress/tsconfig.json | 10 + tests/jest/__mocks__/matchMedia.mock.js | 15 + tests/utils/index.tsx | 43 ++ tsconfig.json | 5 +- yarn.lock | 569 ++++++++++++++++++++- 112 files changed, 807 insertions(+), 186 deletions(-) delete mode 100644 __tests__/jest/__mocks__/matchMedia.mock.js delete mode 100644 __tests__/utils/test-utils.tsx create mode 100644 cypress.config.js create mode 100644 tests/cypress/fixtures/example.json create mode 100644 tests/cypress/plugins/index.ts create mode 100644 tests/cypress/support/commands.ts create mode 100644 tests/cypress/support/e2e.ts create mode 100644 tests/cypress/tsconfig.json create mode 100644 tests/jest/__mocks__/matchMedia.mock.js create mode 100644 tests/utils/index.tsx diff --git a/.gitignore b/.gitignore index cc7b36b..e75bafa 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,7 @@ lang # Files generated each build /public/sitemap*.xml /public/robots.txt + +# Cypress +/tests/cypress/videos +/tests/cypress/screenshots diff --git a/__tests__/jest/__mocks__/matchMedia.mock.js b/__tests__/jest/__mocks__/matchMedia.mock.js deleted file mode 100644 index a983ad3..0000000 --- a/__tests__/jest/__mocks__/matchMedia.mock.js +++ /dev/null @@ -1,15 +0,0 @@ -Object.defineProperty(window, 'matchMedia', { - writable: true, - value: jest.fn().mockImplementation((query) => ({ - matches: false, - media: query, - onchange: null, - addListener: jest.fn(), // deprecated - removeListener: jest.fn(), // deprecated - addEventListener: jest.fn(), - removeEventListener: jest.fn(), - dispatchEvent: jest.fn(), - })), -}); - -export {}; diff --git a/__tests__/utils/test-utils.tsx b/__tests__/utils/test-utils.tsx deleted file mode 100644 index 1bcea8e..0000000 --- a/__tests__/utils/test-utils.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { render, RenderOptions } from '@testing-library/react'; -import { ThemeProvider } from 'next-themes'; -import { FC, ReactElement, ReactNode } from 'react'; -import { IntlProvider } from 'react-intl'; - -type ProvidersConfig = { - children: ReactNode; - locale?: 'en' | 'fr'; -}; - -type CustomRenderOptions = { - providers?: ProvidersConfig; - testingLibrary?: Omit; -}; - -/** - * Return a component wrapped with Intl and Theme Provider. - * - * @returns A component wrapped Intl and Theme providers. - */ -const AllTheProviders: FC = ({ children, locale = 'en' }) => { - return ( - - {children} - - ); -}; - -/** - * Render a component with all the providers. - * - * @param {ReactElement} ui - A React component. - * @param {CustomRenderOptions} [options] - An object of render options and providers options. - * @returns A React component wrapped with all the providers. - */ -const customRender = (ui: ReactElement, options?: CustomRenderOptions) => - render(ui, { - wrapper: (props) => , - ...options?.testingLibrary, - }); - -export * from '@testing-library/react'; -export { customRender as render }; diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 0000000..c427b03 --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'cypress'; + +export default defineConfig({ + downloadsFolder: 'tests/cypress/downloads', + fixturesFolder: 'tests/cypress/fixtures', + screenshotsFolder: 'tests/cypress/screenshots', + supportFolder: 'tests/cypress/support', + videosFolder: 'tests/cypress/videos', + + e2e: { + baseUrl: 'http://localhost:3000', + specPattern: '**/*.cy.{js,jsx,ts,tsx}', + supportFile: 'tests/cypress/support/e2e.ts', + }, +}); diff --git a/jest.config.js b/jest.config.js index 8ca07f3..5a26772 100644 --- a/jest.config.js +++ b/jest.config.js @@ -26,7 +26,7 @@ const customJestConfig = { '^@pages/(.*)$': '/src/pages/$1', '^@services/(.*)$': '/src/services/$1', '^@styles/(.*)$': '/src/styles/$1', - '^@test-utils': '/__tests__/utils/test-utils', + '^@tests/(.*)$': '/tests/$1', '^@ts/(.*)$': '/src/ts/$1', '^@utils/(.*)$': '/src/utils/$1', }, @@ -38,8 +38,9 @@ const customJestConfig = { testEnvironment: 'jest-environment-jsdom', testPathIgnorePatterns: [ - '/__tests__/jest/__mocks__', - '/__tests__/utils', + '/tests/jest/__mocks__', + '/tests/utils', + '/tests/cypress/', ], }; diff --git a/jest.setup.js b/jest.setup.js index d50c988..d2710ea 100644 --- a/jest.setup.js +++ b/jest.setup.js @@ -1,5 +1,5 @@ import '@testing-library/jest-dom/extend-expect'; -import './__tests__/jest/__mocks__/matchMedia.mock'; +import '@tests/jest/__mocks__/matchMedia.mock'; jest.mock('next/dist/client/router', () => require('next-router-mock')); jest.mock('next/dynamic', () => () => 'dynamic-import'); diff --git a/package.json b/package.json index b07d6e2..9982bd8 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,9 @@ }, "private": true, "scripts": { - "predev": "npm run i18n:compile", + "predev": "yarn run i18n:compile", "dev": "next dev", - "prebuild": "npm run i18n:compile", + "prebuild": "yarn run i18n:compile", "build": "next build", "postbuild": "next-sitemap", "start": "next start", @@ -29,12 +29,15 @@ "i18n:compile": "formatjs compile-folder src/i18n lang/", "i18n:extract": "formatjs extract 'src/**/*.ts*' --out-file src/i18n/en.json", "release": "standard-version -s", - "test": "jest", - "test:ci": "jest --ci", - "test:coverage": "jest --coverage", - "test:watch": "jest --watch", + "test": "yarn run test:unit && yarn run test:e2e", + "test:e2e": "cypress run", + "test:e2e:ui": "cypress open", + "test:unit": "jest", + "test:unit:ci": "jest --ci", + "test:unit:coverage": "jest --coverage", + "test:unit:watch": "jest --watch", "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" + "storybook:build": "build-storybook" }, "dependencies": { "@formatjs/swc-plugin": "^1.4.0", @@ -72,14 +75,17 @@ "@storybook/testing-library": "^0.0.11", "@storybook/theming": "^6.5.6", "@svgr/webpack": "^6.2.1", + "@testing-library/cypress": "^8.0.2", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.3.0", "@testing-library/user-event": "^14.2.0", + "@types/jest": "^28.1.0", "@types/mdx": "^2.0.1", "@types/node": "^17.0.38", "@types/prismjs": "^1.26.0", "@types/react": "^18.0.10", "@types/use-ackee": "^2.0.0", + "cypress": "^10.0.1", "eslint": "^8.13.0", "eslint-config-next": "^12.1.5", "eslint-config-prettier": "^8.5.0", diff --git a/src/components/atoms/buttons/button-link.test.tsx b/src/components/atoms/buttons/button-link.test.tsx index 52ccdc7..5563964 100644 --- a/src/components/atoms/buttons/button-link.test.tsx +++ b/src/components/atoms/buttons/button-link.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ButtonLink from './button-link'; describe('ButtonLink', () => { diff --git a/src/components/atoms/buttons/button.test.tsx b/src/components/atoms/buttons/button.test.tsx index 57c79c6..073b940 100644 --- a/src/components/atoms/buttons/button.test.tsx +++ b/src/components/atoms/buttons/button.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Button from './button'; describe('Button', () => { diff --git a/src/components/atoms/forms/boolean-field.test.tsx b/src/components/atoms/forms/boolean-field.test.tsx index 95ec4b1..fe314fb 100644 --- a/src/components/atoms/forms/boolean-field.test.tsx +++ b/src/components/atoms/forms/boolean-field.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import BooleanField from './boolean-field'; describe('BooleanField', () => { diff --git a/src/components/atoms/forms/field.test.tsx b/src/components/atoms/forms/field.test.tsx index a04a976..0cc8a60 100644 --- a/src/components/atoms/forms/field.test.tsx +++ b/src/components/atoms/forms/field.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Field from './field'; describe('Field', () => { diff --git a/src/components/atoms/forms/form.test.tsx b/src/components/atoms/forms/form.test.tsx index 8b534f1..2171fde 100644 --- a/src/components/atoms/forms/form.test.tsx +++ b/src/components/atoms/forms/form.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Form from './form'; describe('Form', () => { diff --git a/src/components/atoms/forms/label.test.tsx b/src/components/atoms/forms/label.test.tsx index 14257c3..9968946 100644 --- a/src/components/atoms/forms/label.test.tsx +++ b/src/components/atoms/forms/label.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Label from './label'; describe('Label', () => { diff --git a/src/components/atoms/forms/select.test.tsx b/src/components/atoms/forms/select.test.tsx index 22efb86..542449c 100644 --- a/src/components/atoms/forms/select.test.tsx +++ b/src/components/atoms/forms/select.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Select from './select'; const selectOptions = [ diff --git a/src/components/atoms/headings/heading.test.tsx b/src/components/atoms/headings/heading.test.tsx index 6b6789a..50cd843 100644 --- a/src/components/atoms/headings/heading.test.tsx +++ b/src/components/atoms/headings/heading.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Heading from './heading'; describe('Heading', () => { diff --git a/src/components/atoms/icons/arrow.test.tsx b/src/components/atoms/icons/arrow.test.tsx index 502dcc1..60a1679 100644 --- a/src/components/atoms/icons/arrow.test.tsx +++ b/src/components/atoms/icons/arrow.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Arrow from './arrow'; describe('Arrow', () => { diff --git a/src/components/atoms/icons/career.test.tsx b/src/components/atoms/icons/career.test.tsx index 62ffc14..3eb9bc8 100644 --- a/src/components/atoms/icons/career.test.tsx +++ b/src/components/atoms/icons/career.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Career from './career'; describe('Career', () => { diff --git a/src/components/atoms/icons/cc-by-sa.test.tsx b/src/components/atoms/icons/cc-by-sa.test.tsx index adb03e4..cb05492 100644 --- a/src/components/atoms/icons/cc-by-sa.test.tsx +++ b/src/components/atoms/icons/cc-by-sa.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import CCBySA from './cc-by-sa'; describe('CCBySA', () => { diff --git a/src/components/atoms/icons/close.test.tsx b/src/components/atoms/icons/close.test.tsx index 0357bec..658af9a 100644 --- a/src/components/atoms/icons/close.test.tsx +++ b/src/components/atoms/icons/close.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Close from './close'; describe('Close', () => { diff --git a/src/components/atoms/icons/cog.test.tsx b/src/components/atoms/icons/cog.test.tsx index 89090fa..1ce7f28 100644 --- a/src/components/atoms/icons/cog.test.tsx +++ b/src/components/atoms/icons/cog.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Cog from './cog'; describe('Cog', () => { diff --git a/src/components/atoms/icons/computer-screen.test.tsx b/src/components/atoms/icons/computer-screen.test.tsx index c0e53e0..0fb73c4 100644 --- a/src/components/atoms/icons/computer-screen.test.tsx +++ b/src/components/atoms/icons/computer-screen.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import ComputerScreen from './computer-screen'; describe('ComputerScreen', () => { diff --git a/src/components/atoms/icons/envelop.test.tsx b/src/components/atoms/icons/envelop.test.tsx index 072dc85..b25a977 100644 --- a/src/components/atoms/icons/envelop.test.tsx +++ b/src/components/atoms/icons/envelop.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Envelop from './envelop'; describe('Envelop', () => { diff --git a/src/components/atoms/icons/feed.test.tsx b/src/components/atoms/icons/feed.test.tsx index fed9da9..fa24106 100644 --- a/src/components/atoms/icons/feed.test.tsx +++ b/src/components/atoms/icons/feed.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Feed from './feed'; describe('Feed', () => { diff --git a/src/components/atoms/icons/hamburger.test.tsx b/src/components/atoms/icons/hamburger.test.tsx index 7173a23..5ce6733 100644 --- a/src/components/atoms/icons/hamburger.test.tsx +++ b/src/components/atoms/icons/hamburger.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Hamburger from './hamburger'; describe('Hamburger', () => { diff --git a/src/components/atoms/icons/home.test.tsx b/src/components/atoms/icons/home.test.tsx index a08a3cf..3688501 100644 --- a/src/components/atoms/icons/home.test.tsx +++ b/src/components/atoms/icons/home.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Home from './home'; describe('Home', () => { diff --git a/src/components/atoms/icons/magnifying-glass.test.tsx b/src/components/atoms/icons/magnifying-glass.test.tsx index 8e788f7..2c031f3 100644 --- a/src/components/atoms/icons/magnifying-glass.test.tsx +++ b/src/components/atoms/icons/magnifying-glass.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import MagnifyingGlass from './magnifying-glass'; describe('MagnifyingGlass', () => { diff --git a/src/components/atoms/icons/moon.test.tsx b/src/components/atoms/icons/moon.test.tsx index 1c96303..18581e9 100644 --- a/src/components/atoms/icons/moon.test.tsx +++ b/src/components/atoms/icons/moon.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Moon from './moon'; describe('Moon', () => { diff --git a/src/components/atoms/icons/plus-minus.test.tsx b/src/components/atoms/icons/plus-minus.test.tsx index 6903c7a..895a565 100644 --- a/src/components/atoms/icons/plus-minus.test.tsx +++ b/src/components/atoms/icons/plus-minus.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import PlusMinus from './plus-minus'; describe('PlusMinus', () => { diff --git a/src/components/atoms/icons/posts-stack.test.tsx b/src/components/atoms/icons/posts-stack.test.tsx index 8f44fa9..89064c7 100644 --- a/src/components/atoms/icons/posts-stack.test.tsx +++ b/src/components/atoms/icons/posts-stack.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import PostsStack from './posts-stack'; describe('PostsStack', () => { diff --git a/src/components/atoms/icons/sun.test.tsx b/src/components/atoms/icons/sun.test.tsx index 21661a9..fe01f4f 100644 --- a/src/components/atoms/icons/sun.test.tsx +++ b/src/components/atoms/icons/sun.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Sun from './sun'; describe('Sun', () => { diff --git a/src/components/atoms/images/logo.test.tsx b/src/components/atoms/images/logo.test.tsx index 3e0d238..aabfd17 100644 --- a/src/components/atoms/images/logo.test.tsx +++ b/src/components/atoms/images/logo.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Logo from './logo'; describe('Logo', () => { diff --git a/src/components/atoms/layout/column.test.tsx b/src/components/atoms/layout/column.test.tsx index c5c6554..95508b3 100644 --- a/src/components/atoms/layout/column.test.tsx +++ b/src/components/atoms/layout/column.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Column from './column'; const body = diff --git a/src/components/atoms/layout/copyright.test.tsx b/src/components/atoms/layout/copyright.test.tsx index 6bfe612..09392b6 100644 --- a/src/components/atoms/layout/copyright.test.tsx +++ b/src/components/atoms/layout/copyright.test.tsx @@ -1,5 +1,5 @@ import CCBySA from '@components/atoms/icons/cc-by-sa'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Copyright from './copyright'; const dates = { diff --git a/src/components/atoms/layout/main.test.tsx b/src/components/atoms/layout/main.test.tsx index f91846f..392fbd5 100644 --- a/src/components/atoms/layout/main.test.tsx +++ b/src/components/atoms/layout/main.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Main from './main'; const id = 'main'; diff --git a/src/components/atoms/layout/no-script.test.tsx b/src/components/atoms/layout/no-script.test.tsx index 9ed9c4c..1b9e96f 100644 --- a/src/components/atoms/layout/no-script.test.tsx +++ b/src/components/atoms/layout/no-script.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import NoScript from './no-script'; const message = 'A noscript message.'; diff --git a/src/components/atoms/layout/notice.test.tsx b/src/components/atoms/layout/notice.test.tsx index 4501f8f..8408d17 100644 --- a/src/components/atoms/layout/notice.test.tsx +++ b/src/components/atoms/layout/notice.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Notice from './notice'; const message = 'Tenetur consequuntur tempore.'; diff --git a/src/components/atoms/layout/section.test.tsx b/src/components/atoms/layout/section.test.tsx index ca5f03a..2143b70 100644 --- a/src/components/atoms/layout/section.test.tsx +++ b/src/components/atoms/layout/section.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Section from './section'; const title = 'Section title'; diff --git a/src/components/atoms/layout/sidebar.test.tsx b/src/components/atoms/layout/sidebar.test.tsx index 4c9459d..6fdb24a 100644 --- a/src/components/atoms/layout/sidebar.test.tsx +++ b/src/components/atoms/layout/sidebar.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Sidebar from './sidebar'; const children = 'A widget'; diff --git a/src/components/atoms/links/link.test.tsx b/src/components/atoms/links/link.test.tsx index 54e2414..16d52d2 100644 --- a/src/components/atoms/links/link.test.tsx +++ b/src/components/atoms/links/link.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Link from './link'; describe('Link', () => { diff --git a/src/components/atoms/links/nav-link.test.tsx b/src/components/atoms/links/nav-link.test.tsx index 7750cee..b9a595a 100644 --- a/src/components/atoms/links/nav-link.test.tsx +++ b/src/components/atoms/links/nav-link.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import NavLink from './nav-link'; describe('NavLink', () => { diff --git a/src/components/atoms/links/sharing-link.test.tsx b/src/components/atoms/links/sharing-link.test.tsx index e4c849c..7989d04 100644 --- a/src/components/atoms/links/sharing-link.test.tsx +++ b/src/components/atoms/links/sharing-link.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SharingLink from './sharing-link'; describe('SharingLink', () => { diff --git a/src/components/atoms/links/social-link.test.tsx b/src/components/atoms/links/social-link.test.tsx index f49fb5a..e13689c 100644 --- a/src/components/atoms/links/social-link.test.tsx +++ b/src/components/atoms/links/social-link.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SocialLink from './social-link'; /** diff --git a/src/components/atoms/lists/description-list-item.test.tsx b/src/components/atoms/lists/description-list-item.test.tsx index 730a52f..a505158 100644 --- a/src/components/atoms/lists/description-list-item.test.tsx +++ b/src/components/atoms/lists/description-list-item.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import DescriptionListItem from './description-list-item'; const itemLabel = 'Repellendus corporis facilis'; diff --git a/src/components/atoms/lists/description-list.test.tsx b/src/components/atoms/lists/description-list.test.tsx index 83e405f..22421b0 100644 --- a/src/components/atoms/lists/description-list.test.tsx +++ b/src/components/atoms/lists/description-list.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import DescriptionList, { DescriptionListItem } from './description-list'; const items: DescriptionListItem[] = [ diff --git a/src/components/atoms/lists/list.test.tsx b/src/components/atoms/lists/list.test.tsx index fcf8813..7cf9585 100644 --- a/src/components/atoms/lists/list.test.tsx +++ b/src/components/atoms/lists/list.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import List, { type ListItem } from './list'; const items: ListItem[] = [ diff --git a/src/components/atoms/loaders/progress-bar.test.tsx b/src/components/atoms/loaders/progress-bar.test.tsx index 37a7364..3d32feb 100644 --- a/src/components/atoms/loaders/progress-bar.test.tsx +++ b/src/components/atoms/loaders/progress-bar.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ProgressBar from './progress-bar'; describe('ProgressBar', () => { diff --git a/src/components/atoms/loaders/spinner.test.tsx b/src/components/atoms/loaders/spinner.test.tsx index 0a6db91..bfb0894 100644 --- a/src/components/atoms/loaders/spinner.test.tsx +++ b/src/components/atoms/loaders/spinner.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Spinner from './spinner'; describe('Spinner', () => { diff --git a/src/components/molecules/buttons/back-to-top.test.tsx b/src/components/molecules/buttons/back-to-top.test.tsx index 2b3a0a9..6eb1e21 100644 --- a/src/components/molecules/buttons/back-to-top.test.tsx +++ b/src/components/molecules/buttons/back-to-top.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import BackToTop from './back-to-top'; describe('BackToTop', () => { diff --git a/src/components/molecules/buttons/heading-button.test.tsx b/src/components/molecules/buttons/heading-button.test.tsx index be3865a..d8da748 100644 --- a/src/components/molecules/buttons/heading-button.test.tsx +++ b/src/components/molecules/buttons/heading-button.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import HeadingButton from './heading-button'; describe('HeadingButton', () => { diff --git a/src/components/molecules/buttons/help-button.test.tsx b/src/components/molecules/buttons/help-button.test.tsx index 78987ef..0f8770e 100644 --- a/src/components/molecules/buttons/help-button.test.tsx +++ b/src/components/molecules/buttons/help-button.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import HelpButton from './help-button'; describe('Help', () => { diff --git a/src/components/molecules/forms/ackee-toggle.test.tsx b/src/components/molecules/forms/ackee-toggle.test.tsx index 8a57ce7..5bcd018 100644 --- a/src/components/molecules/forms/ackee-toggle.test.tsx +++ b/src/components/molecules/forms/ackee-toggle.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import AckeeToggle from './ackee-toggle'; import { storageKey } from './ackee-toggle.fixture'; diff --git a/src/components/molecules/forms/fieldset.test.tsx b/src/components/molecules/forms/fieldset.test.tsx index de89e31..cfddc9e 100644 --- a/src/components/molecules/forms/fieldset.test.tsx +++ b/src/components/molecules/forms/fieldset.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Fieldset from './fieldset'; import { body, legend, Tooltip } from './fieldset.fixture'; diff --git a/src/components/molecules/forms/flipping-label.test.tsx b/src/components/molecules/forms/flipping-label.test.tsx index 9a7aa22..a1aab97 100644 --- a/src/components/molecules/forms/flipping-label.test.tsx +++ b/src/components/molecules/forms/flipping-label.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import FlippingLabel from './flipping-label'; describe('FlippingLabel', () => { diff --git a/src/components/molecules/forms/labelled-boolean-field.test.tsx b/src/components/molecules/forms/labelled-boolean-field.test.tsx index 55e04ea..7e01853 100644 --- a/src/components/molecules/forms/labelled-boolean-field.test.tsx +++ b/src/components/molecules/forms/labelled-boolean-field.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import LabelledBooleanField from './labelled-boolean-field'; import { label } from './labelled-boolean-field.fixture'; diff --git a/src/components/molecules/forms/labelled-field.test.tsx b/src/components/molecules/forms/labelled-field.test.tsx index 6fabe19..030ec7c 100644 --- a/src/components/molecules/forms/labelled-field.test.tsx +++ b/src/components/molecules/forms/labelled-field.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import LabelledField from './labelled-field'; describe('LabelledField', () => { diff --git a/src/components/molecules/forms/labelled-select.test.tsx b/src/components/molecules/forms/labelled-select.test.tsx index 9a50d6e..1346e7c 100644 --- a/src/components/molecules/forms/labelled-select.test.tsx +++ b/src/components/molecules/forms/labelled-select.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import LabelledSelect from './labelled-select'; const selectOptions = [ diff --git a/src/components/molecules/forms/motion-toggle.test.tsx b/src/components/molecules/forms/motion-toggle.test.tsx index 04c22a9..8b66758 100644 --- a/src/components/molecules/forms/motion-toggle.test.tsx +++ b/src/components/molecules/forms/motion-toggle.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import MotionToggle from './motion-toggle'; import { storageKey } from './motion-toggle.fixture'; diff --git a/src/components/molecules/forms/prism-theme-toggle.test.tsx b/src/components/molecules/forms/prism-theme-toggle.test.tsx index 91e8e2e..1fc537b 100644 --- a/src/components/molecules/forms/prism-theme-toggle.test.tsx +++ b/src/components/molecules/forms/prism-theme-toggle.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import PrismThemeToggle from './prism-theme-toggle'; describe('PrismThemeToggle', () => { diff --git a/src/components/molecules/forms/radio-group.test.tsx b/src/components/molecules/forms/radio-group.test.tsx index 8171a49..fda505b 100644 --- a/src/components/molecules/forms/radio-group.test.tsx +++ b/src/components/molecules/forms/radio-group.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import RadioGroup from './radio-group'; import { getOptions, initialChoice, legend } from './radio-group.fixture'; diff --git a/src/components/molecules/forms/theme-toggle.test.tsx b/src/components/molecules/forms/theme-toggle.test.tsx index ed8b312..7c056b8 100644 --- a/src/components/molecules/forms/theme-toggle.test.tsx +++ b/src/components/molecules/forms/theme-toggle.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ThemeToggle from './theme-toggle'; describe('ThemeToggle', () => { diff --git a/src/components/molecules/images/flipping-logo.test.tsx b/src/components/molecules/images/flipping-logo.test.tsx index 806fdbe..4be69d1 100644 --- a/src/components/molecules/images/flipping-logo.test.tsx +++ b/src/components/molecules/images/flipping-logo.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import FlippingLogo from './flipping-logo'; describe('FlippingLogo', () => { diff --git a/src/components/molecules/images/responsive-image.test.tsx b/src/components/molecules/images/responsive-image.test.tsx index 5452d28..9dafbc2 100644 --- a/src/components/molecules/images/responsive-image.test.tsx +++ b/src/components/molecules/images/responsive-image.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ResponsiveImage from './responsive-image'; describe('ResponsiveImage', () => { diff --git a/src/components/molecules/layout/branding.test.tsx b/src/components/molecules/layout/branding.test.tsx index 4fe1e9a..f04b963 100644 --- a/src/components/molecules/layout/branding.test.tsx +++ b/src/components/molecules/layout/branding.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Branding from './branding'; describe('Branding', () => { diff --git a/src/components/molecules/layout/card.test.tsx b/src/components/molecules/layout/card.test.tsx index 07c01e9..d481f6c 100644 --- a/src/components/molecules/layout/card.test.tsx +++ b/src/components/molecules/layout/card.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Card from './card'; const cover = { diff --git a/src/components/molecules/layout/code.test.tsx b/src/components/molecules/layout/code.test.tsx index ebcfae5..e270aac 100644 --- a/src/components/molecules/layout/code.test.tsx +++ b/src/components/molecules/layout/code.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import Code from './code'; const code = ` diff --git a/src/components/molecules/layout/columns.test.tsx b/src/components/molecules/layout/columns.test.tsx index 4b55bbb..9e994ae 100644 --- a/src/components/molecules/layout/columns.test.tsx +++ b/src/components/molecules/layout/columns.test.tsx @@ -1,5 +1,5 @@ import Column from '@components/atoms/layout/column'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Columns from './columns'; const column1 = diff --git a/src/components/molecules/layout/meta.test.tsx b/src/components/molecules/layout/meta.test.tsx index fe66d97..e01a0a1 100644 --- a/src/components/molecules/layout/meta.test.tsx +++ b/src/components/molecules/layout/meta.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import { getFormattedDate } from '@utils/helpers/dates'; import Meta from './meta'; diff --git a/src/components/molecules/layout/page-footer.test.tsx b/src/components/molecules/layout/page-footer.test.tsx index 2e95625..f61cf20 100644 --- a/src/components/molecules/layout/page-footer.test.tsx +++ b/src/components/molecules/layout/page-footer.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import PageFooter from './page-footer'; describe('PageFooter', () => { diff --git a/src/components/molecules/layout/page-header.test.tsx b/src/components/molecules/layout/page-header.test.tsx index 329b54c..8e97669 100644 --- a/src/components/molecules/layout/page-header.test.tsx +++ b/src/components/molecules/layout/page-header.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import PageHeader from './page-header'; const title = 'Non nemo amet'; diff --git a/src/components/molecules/layout/widget.test.tsx b/src/components/molecules/layout/widget.test.tsx index af561ea..5b6af57 100644 --- a/src/components/molecules/layout/widget.test.tsx +++ b/src/components/molecules/layout/widget.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Widget from './widget'; const children = 'Widget body'; diff --git a/src/components/molecules/modals/modal.test.tsx b/src/components/molecules/modals/modal.test.tsx index 9a0e237..a913d42 100644 --- a/src/components/molecules/modals/modal.test.tsx +++ b/src/components/molecules/modals/modal.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Modal from './modal'; const title = 'A custom title'; diff --git a/src/components/molecules/modals/tooltip.test.tsx b/src/components/molecules/modals/tooltip.test.tsx index d00b4b1..0af7299 100644 --- a/src/components/molecules/modals/tooltip.test.tsx +++ b/src/components/molecules/modals/tooltip.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Tooltip from './tooltip'; import { content, icon, title } from './tooltip.fixture'; diff --git a/src/components/molecules/nav/breadcrumb.test.tsx b/src/components/molecules/nav/breadcrumb.test.tsx index 43220c9..68638ef 100644 --- a/src/components/molecules/nav/breadcrumb.test.tsx +++ b/src/components/molecules/nav/breadcrumb.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Breadcrumb, { type BreadcrumbItem } from './breadcrumb'; const items: BreadcrumbItem[] = [ diff --git a/src/components/molecules/nav/nav.test.tsx b/src/components/molecules/nav/nav.test.tsx index 183ca0b..cf63ace 100644 --- a/src/components/molecules/nav/nav.test.tsx +++ b/src/components/molecules/nav/nav.test.tsx @@ -1,6 +1,6 @@ import Envelop from '@components/atoms/icons/envelop'; import Home from '@components/atoms/icons/home'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Nav, { type NavItem } from './nav'; const navItems: NavItem[] = [ diff --git a/src/components/molecules/nav/pagination.test.tsx b/src/components/molecules/nav/pagination.test.tsx index 2c4a063..f7ebffd 100644 --- a/src/components/molecules/nav/pagination.test.tsx +++ b/src/components/molecules/nav/pagination.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Pagination from './pagination'; const total = 50; diff --git a/src/components/organisms/forms/comment-form.test.tsx b/src/components/organisms/forms/comment-form.test.tsx index c67ad6b..cac9df7 100644 --- a/src/components/organisms/forms/comment-form.test.tsx +++ b/src/components/organisms/forms/comment-form.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import CommentForm from './comment-form'; const saveComment = async () => { diff --git a/src/components/organisms/forms/contact-form.test.tsx b/src/components/organisms/forms/contact-form.test.tsx index 6225fa9..521179a 100644 --- a/src/components/organisms/forms/contact-form.test.tsx +++ b/src/components/organisms/forms/contact-form.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ContactForm from './contact-form'; const props = { diff --git a/src/components/organisms/forms/search-form.test.tsx b/src/components/organisms/forms/search-form.test.tsx index 59a2f68..e35c46f 100644 --- a/src/components/organisms/forms/search-form.test.tsx +++ b/src/components/organisms/forms/search-form.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SearchForm from './search-form'; describe('SearchForm', () => { diff --git a/src/components/organisms/forms/settings-form.test.tsx b/src/components/organisms/forms/settings-form.test.tsx index 584261d..de2d4c9 100644 --- a/src/components/organisms/forms/settings-form.test.tsx +++ b/src/components/organisms/forms/settings-form.test.tsx @@ -1,6 +1,6 @@ import { storageKey as ackeeStorageKey } from '@components/molecules/forms/ackee-toggle.fixture'; import { storageKey as motionStorageKey } from '@components/molecules/forms/motion-toggle.fixture'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SettingsForm from './settings-form'; describe('SettingsForm', () => { diff --git a/src/components/organisms/images/gallery.test.tsx b/src/components/organisms/images/gallery.test.tsx index 5f35f0a..1db3733 100644 --- a/src/components/organisms/images/gallery.test.tsx +++ b/src/components/organisms/images/gallery.test.tsx @@ -1,5 +1,5 @@ import ResponsiveImage from '@components/molecules/images/responsive-image'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Gallery from './gallery'; const columns = 3; diff --git a/src/components/organisms/layout/cards-list.test.tsx b/src/components/organisms/layout/cards-list.test.tsx index 8558fa6..f77ee83 100644 --- a/src/components/organisms/layout/cards-list.test.tsx +++ b/src/components/organisms/layout/cards-list.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import CardsList, { type CardsListItem } from './cards-list'; const items: CardsListItem[] = [ diff --git a/src/components/organisms/layout/comment.test.tsx b/src/components/organisms/layout/comment.test.tsx index 66003d1..dc6d18d 100644 --- a/src/components/organisms/layout/comment.test.tsx +++ b/src/components/organisms/layout/comment.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Comment from './comment'; import { author, diff --git a/src/components/organisms/layout/comments-list.test.tsx b/src/components/organisms/layout/comments-list.test.tsx index b0a2467..72c7eb9 100644 --- a/src/components/organisms/layout/comments-list.test.tsx +++ b/src/components/organisms/layout/comments-list.test.tsx @@ -1,4 +1,4 @@ -import { render } from '@test-utils'; +import { render } from '@tests/utils'; import { saveComment } from './comment.fixture'; import CommentsList from './comments-list'; import { comments } from './comments-list.fixture'; diff --git a/src/components/organisms/layout/footer.test.tsx b/src/components/organisms/layout/footer.test.tsx index bc23732..1d451c7 100644 --- a/src/components/organisms/layout/footer.test.tsx +++ b/src/components/organisms/layout/footer.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Footer, { type FooterProps } from './footer'; const copyright: FooterProps['copyright'] = { diff --git a/src/components/organisms/layout/header.test.tsx b/src/components/organisms/layout/header.test.tsx index 414d96f..1ef79e0 100644 --- a/src/components/organisms/layout/header.test.tsx +++ b/src/components/organisms/layout/header.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Header from './header'; const nav = [ diff --git a/src/components/organisms/layout/no-results.test.tsx b/src/components/organisms/layout/no-results.test.tsx index 97846b1..5576117 100644 --- a/src/components/organisms/layout/no-results.test.tsx +++ b/src/components/organisms/layout/no-results.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import NoResults from './no-results'; describe('NoResults', () => { diff --git a/src/components/organisms/layout/overview.test.tsx b/src/components/organisms/layout/overview.test.tsx index b40a785..c096bad 100644 --- a/src/components/organisms/layout/overview.test.tsx +++ b/src/components/organisms/layout/overview.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Overview, { type OverviewMeta } from './overview'; const cover = { diff --git a/src/components/organisms/layout/posts-list.test.tsx b/src/components/organisms/layout/posts-list.test.tsx index e58a974..571c421 100644 --- a/src/components/organisms/layout/posts-list.test.tsx +++ b/src/components/organisms/layout/posts-list.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import PostsList from './posts-list'; import { posts, searchPage } from './posts-list.fixture'; diff --git a/src/components/organisms/layout/summary.test.tsx b/src/components/organisms/layout/summary.test.tsx index 7617c26..bc69f3b 100644 --- a/src/components/organisms/layout/summary.test.tsx +++ b/src/components/organisms/layout/summary.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Summary from './summary'; import { cover, intro, meta, title, url } from './summary.fixture'; diff --git a/src/components/organisms/modals/search-modal.test.tsx b/src/components/organisms/modals/search-modal.test.tsx index 7ba08c0..7043d54 100644 --- a/src/components/organisms/modals/search-modal.test.tsx +++ b/src/components/organisms/modals/search-modal.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SearchModal from './search-modal'; describe('SearchModal', () => { diff --git a/src/components/organisms/modals/settings-modal.test.tsx b/src/components/organisms/modals/settings-modal.test.tsx index d6ed989..91f77de 100644 --- a/src/components/organisms/modals/settings-modal.test.tsx +++ b/src/components/organisms/modals/settings-modal.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SettingsModal from './settings-modal'; describe('SettingsModal', () => { diff --git a/src/components/organisms/toolbar/main-nav.test.tsx b/src/components/organisms/toolbar/main-nav.test.tsx index 6e50562..43b8666 100644 --- a/src/components/organisms/toolbar/main-nav.test.tsx +++ b/src/components/organisms/toolbar/main-nav.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import MainNav from './main-nav'; const items = [ diff --git a/src/components/organisms/toolbar/search.test.tsx b/src/components/organisms/toolbar/search.test.tsx index 7c77eac..23dbda9 100644 --- a/src/components/organisms/toolbar/search.test.tsx +++ b/src/components/organisms/toolbar/search.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Search from './search'; describe('Search', () => { diff --git a/src/components/organisms/toolbar/settings.test.tsx b/src/components/organisms/toolbar/settings.test.tsx index 7ccb234..9e91b09 100644 --- a/src/components/organisms/toolbar/settings.test.tsx +++ b/src/components/organisms/toolbar/settings.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Settings from './settings'; describe('Settings', () => { diff --git a/src/components/organisms/toolbar/toolbar.test.tsx b/src/components/organisms/toolbar/toolbar.test.tsx index 72965e8..20f782a 100644 --- a/src/components/organisms/toolbar/toolbar.test.tsx +++ b/src/components/organisms/toolbar/toolbar.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Toolbar from './toolbar'; const nav = [ diff --git a/src/components/organisms/widgets/image-widget.test.tsx b/src/components/organisms/widgets/image-widget.test.tsx index c6b1a3a..6548584 100644 --- a/src/components/organisms/widgets/image-widget.test.tsx +++ b/src/components/organisms/widgets/image-widget.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import ImageWidget from './image-widget'; const description = 'Ut vitae sit'; diff --git a/src/components/organisms/widgets/links-list-widget.test.tsx b/src/components/organisms/widgets/links-list-widget.test.tsx index a8d6a35..d695d68 100644 --- a/src/components/organisms/widgets/links-list-widget.test.tsx +++ b/src/components/organisms/widgets/links-list-widget.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import LinksListWidget from './links-list-widget'; const title = 'Voluptatem minus autem'; diff --git a/src/components/organisms/widgets/sharing.test.tsx b/src/components/organisms/widgets/sharing.test.tsx index 48da49e..88f72fe 100644 --- a/src/components/organisms/widgets/sharing.test.tsx +++ b/src/components/organisms/widgets/sharing.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Sharing, { type SharingData } from './sharing'; const postData: SharingData = { diff --git a/src/components/organisms/widgets/social-media.test.tsx b/src/components/organisms/widgets/social-media.test.tsx index e40db30..45e4a8a 100644 --- a/src/components/organisms/widgets/social-media.test.tsx +++ b/src/components/organisms/widgets/social-media.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import SocialMedia, { Media } from './social-media'; const media: Media[] = [ diff --git a/src/components/organisms/widgets/table-of-contents.test.tsx b/src/components/organisms/widgets/table-of-contents.test.tsx index 2064f39..92ae895 100644 --- a/src/components/organisms/widgets/table-of-contents.test.tsx +++ b/src/components/organisms/widgets/table-of-contents.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import TableOfContents from './table-of-contents'; describe('TableOfContents', () => { diff --git a/src/components/templates/layout/layout.test.tsx b/src/components/templates/layout/layout.test.tsx index 914e1cd..eab7a2a 100644 --- a/src/components/templates/layout/layout.test.tsx +++ b/src/components/templates/layout/layout.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import Layout from './layout'; const body = diff --git a/src/components/templates/page/page-layout.test.tsx b/src/components/templates/page/page-layout.test.tsx index f2d07d7..b5480d8 100644 --- a/src/components/templates/page/page-layout.test.tsx +++ b/src/components/templates/page/page-layout.test.tsx @@ -1,5 +1,5 @@ import { comments } from '@components/organisms/layout/comments-list.fixture'; -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import { BreadcrumbList } from 'schema-dts'; import PageLayout from './page-layout'; diff --git a/src/components/templates/sectioned/sectioned-layout.test.tsx b/src/components/templates/sectioned/sectioned-layout.test.tsx index 9b8bab5..73d7224 100644 --- a/src/components/templates/sectioned/sectioned-layout.test.tsx +++ b/src/components/templates/sectioned/sectioned-layout.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@test-utils'; +import { render, screen } from '@tests/utils'; import { BreadcrumbList } from 'schema-dts'; import SectionedLayout from './sectioned-layout'; diff --git a/tests/cypress/fixtures/example.json b/tests/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/tests/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/tests/cypress/plugins/index.ts b/tests/cypress/plugins/index.ts new file mode 100644 index 0000000..8229063 --- /dev/null +++ b/tests/cypress/plugins/index.ts @@ -0,0 +1,22 @@ +/// +// *********************************************************** +// This example plugins/index.js can be used to load plugins +// +// You can change the location of this file or turn off loading +// the plugins file with the 'pluginsFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/plugins-guide +// *********************************************************** + +// This function is called when a project is opened or re-opened (e.g. due to +// the project's config changing) + +/** + * @type {Cypress.PluginConfig} + */ +// eslint-disable-next-line no-unused-vars +module.exports = (on, config) => { + // `on` is used to hook into various events Cypress emits + // `config` is the resolved Cypress config +}; diff --git a/tests/cypress/support/commands.ts b/tests/cypress/support/commands.ts new file mode 100644 index 0000000..a88e131 --- /dev/null +++ b/tests/cypress/support/commands.ts @@ -0,0 +1,6 @@ +// *********************************************** +// For examples of custom commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** + +import '@testing-library/cypress/add-commands'; diff --git a/tests/cypress/support/e2e.ts b/tests/cypress/support/e2e.ts new file mode 100644 index 0000000..37a498f --- /dev/null +++ b/tests/cypress/support/e2e.ts @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/tests/cypress/tsconfig.json b/tests/cypress/tsconfig.json new file mode 100644 index 0000000..66b725c --- /dev/null +++ b/tests/cypress/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "isolatedModules": false, + "noEmit": true, + "types": ["cypress", "@testing-library/cypress"] + }, + "include": ["../../node_modules/cypress", "**/*.ts", "**/*.tsx"], + "exclude": ["**/*.test.ts", "**/*.test.tsx"] +} diff --git a/tests/jest/__mocks__/matchMedia.mock.js b/tests/jest/__mocks__/matchMedia.mock.js new file mode 100644 index 0000000..a983ad3 --- /dev/null +++ b/tests/jest/__mocks__/matchMedia.mock.js @@ -0,0 +1,15 @@ +Object.defineProperty(window, 'matchMedia', { + writable: true, + value: jest.fn().mockImplementation((query) => ({ + matches: false, + media: query, + onchange: null, + addListener: jest.fn(), // deprecated + removeListener: jest.fn(), // deprecated + addEventListener: jest.fn(), + removeEventListener: jest.fn(), + dispatchEvent: jest.fn(), + })), +}); + +export {}; diff --git a/tests/utils/index.tsx b/tests/utils/index.tsx new file mode 100644 index 0000000..1bcea8e --- /dev/null +++ b/tests/utils/index.tsx @@ -0,0 +1,43 @@ +import { render, RenderOptions } from '@testing-library/react'; +import { ThemeProvider } from 'next-themes'; +import { FC, ReactElement, ReactNode } from 'react'; +import { IntlProvider } from 'react-intl'; + +type ProvidersConfig = { + children: ReactNode; + locale?: 'en' | 'fr'; +}; + +type CustomRenderOptions = { + providers?: ProvidersConfig; + testingLibrary?: Omit; +}; + +/** + * Return a component wrapped with Intl and Theme Provider. + * + * @returns A component wrapped Intl and Theme providers. + */ +const AllTheProviders: FC = ({ children, locale = 'en' }) => { + return ( + + {children} + + ); +}; + +/** + * Render a component with all the providers. + * + * @param {ReactElement} ui - A React component. + * @param {CustomRenderOptions} [options] - An object of render options and providers options. + * @returns A React component wrapped with all the providers. + */ +const customRender = (ui: ReactElement, options?: CustomRenderOptions) => + render(ui, { + wrapper: (props) => , + ...options?.testingLibrary, + }); + +export * from '@testing-library/react'; +export { customRender as render }; diff --git a/tsconfig.json b/tsconfig.json index 318ac6d..ffd05b7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,6 +14,7 @@ "isolatedModules": true, "jsx": "preserve", "incremental": true, + "types": ["jest", "@testing-library/jest-dom"], "baseUrl": ".", "paths": { "@i18n/*": ["src/i18n/*"], @@ -23,7 +24,7 @@ "@pages/*": ["src/pages/*"], "@services/*": ["src/services/*"], "@styles/*": ["src/styles/*"], - "@test-utils": ["__tests__/utils/test-utils"], + "@tests/*": ["tests/*"], "@ts/*": ["src/ts/*"], "@utils/*": ["src/utils/*"] } @@ -34,5 +35,5 @@ "**/*.tsx", "src/utils/plugins/prism-color-scheme.js" ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "tests/cypress/", "cypress.config.js"] } diff --git a/yarn.lock b/yarn.lock index eb6a81f..38909f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1095,7 +1095,7 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.6", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": version "7.18.3" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== @@ -1330,6 +1330,38 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@cypress/request@^2.88.10": + version "2.88.10" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.10.tgz#b66d76b07f860d3a4b8d7a0604d020c662752cce" + integrity sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg== + 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.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + 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" + "@design-systems/utils@2.12.0": version "2.12.0" resolved "https://registry.yarnpkg.com/@design-systems/utils/-/utils-2.12.0.tgz#955c108be07cb8f01532207cbfea8f848fa760c9" @@ -3125,7 +3157,15 @@ "@svgr/plugin-jsx" "^6.2.1" "@svgr/plugin-svgo" "^6.2.0" -"@testing-library/dom@^8.3.0", "@testing-library/dom@^8.5.0": +"@testing-library/cypress@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@testing-library/cypress/-/cypress-8.0.2.tgz#b13f0ff2424dec4368b6670dfbfb7e43af8eefc9" + integrity sha512-KVdm7n37sg/A4e3wKMD4zUl0NpzzVhx06V9Tf0hZHZ7nrZ4yFva6Zwg2EFF1VzHkEfN/ahUzRtT1qiW+vuWnJw== + dependencies: + "@babel/runtime" "^7.14.6" + "@testing-library/dom" "^8.1.0" + +"@testing-library/dom@^8.1.0", "@testing-library/dom@^8.3.0", "@testing-library/dom@^8.5.0": version "8.13.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.13.0.tgz#bc00bdd64c7d8b40841e27a70211399ad3af46f5" integrity sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ== @@ -3367,6 +3407,14 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" +"@types/jest@^28.1.0": + version "28.1.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.0.tgz#6107d7f8cf46d994e4de23e11f873d61bafe5573" + integrity sha512-ITfF6JJIl9zbEi2k6NmhNE/BiDqfsI/ceqfvdaWaPbcrCpYyyRq4KtDQIWh6vQUru6SqwppODiom/Zhid+np6A== + dependencies: + jest-matcher-utils "^27.0.0" + pretty-format "^27.0.0" + "@types/jsdom@^16.2.4": version "16.2.14" resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.14.tgz#26fe9da6a8870715b154bb84cd3b2e53433d8720" @@ -3446,6 +3494,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.38.tgz#be0edd097b23eace6c471c525a74b3f98803017f" integrity sha512-hjO/0K140An3GWDw2HJfq7gko3wWeznbjXgg+rzPdVzhe198hp4x2i1dgveAOEiFKd8sOilAxzoSJiVv5P/CUg== +"@types/node@^14.14.31": + version "14.18.20" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.20.tgz#268f028b36eaf51181c3300252f605488c4f0650" + integrity sha512-Q8KKwm9YqEmUBRsqJ2GWJDtXltBDxTdC4m5vTdXBolu2PeQh8LX+f6BTwU+OuXPu37fLxoN6gidqBmnky36FXA== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -3524,6 +3577,16 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== +"@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.3" + resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.3.tgz#ff5e2f1902969d305225a047c8a0fd5c915cebef" + integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -3622,6 +3685,13 @@ dependencies: "@types/yargs-parser" "*" +"@types/yauzl@^2.9.1": + version "2.10.0" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" + integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== + dependencies: + "@types/node" "*" + "@typescript-eslint/experimental-utils@^5.3.0": version "5.27.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.27.0.tgz#dfe4c6087f60be8950e32fa83f4a8f2fccd86e47" @@ -4130,6 +4200,11 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -4219,6 +4294,11 @@ aproba@^1.0.3, aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +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== + are-we-there-yet@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" @@ -4390,6 +4470,18 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.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== + assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -4430,6 +4522,11 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +async@^3.2.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -4458,6 +4555,16 @@ autoprefixer@^9.8.6: postcss "^7.0.32" postcss-value-parser "^4.1.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.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + axe-core@^4.3.5: version "4.4.2" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.2.tgz#dcf7fb6dea866166c3eab33d68208afe4d5f670c" @@ -4658,6 +4765,13 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + better-opn@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" @@ -4701,7 +4815,12 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.5.5: +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, 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== @@ -4885,6 +5004,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" @@ -4904,7 +5028,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -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== @@ -5005,6 +5129,11 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -5085,6 +5214,11 @@ case-sensitive-paths-webpack-plugin@^2.3.0: resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + ccount@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" @@ -5165,6 +5299,11 @@ charcodes@^0.2.0: resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== +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.0.0 <4.0.0", chokidar@^3.4.1, chokidar@^3.4.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" @@ -5278,7 +5417,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-table3@^0.6.1: +cli-table3@^0.6.1, cli-table3@~0.6.1: version "0.6.2" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a" integrity sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw== @@ -5426,7 +5565,7 @@ colorette@^2.0.16: resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== -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== @@ -5453,6 +5592,11 @@ commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +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@^6.2.0, commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" @@ -5478,6 +5622,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" @@ -5792,6 +5941,11 @@ core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.8.tgz#23f860b1fe60797cc4f704d76c93fea8a2f60631" integrity sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA== +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" @@ -6049,6 +6203,54 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== +cypress@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-10.0.1.tgz#c6af776883c7be183773c5db984e068f5338d761" + integrity sha512-04vefCc6LrrgBS7Qhqn+9lqXTneLYZZwOokBaCJToI9DHu7/ywhywYNUg/Qy4xWOxlKvbvnELGCa7HZbSgeLfQ== + dependencies: + "@cypress/request" "^2.88.10" + "@cypress/xvfb" "^1.2.4" + "@types/node" "^14.14.31" + "@types/sinonjs__fake-timers" "8.1.1" + "@types/sizzle" "^2.3.2" + arch "^2.2.0" + blob-util "^2.0.2" + bluebird "^3.7.2" + buffer "^5.6.0" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-cursor "^3.1.0" + cli-table3 "~0.6.1" + commander "^5.1.0" + common-tags "^1.8.0" + dayjs "^1.10.4" + debug "^4.3.2" + enquirer "^2.3.6" + eventemitter2 "^6.4.3" + execa "4.1.0" + executable "^4.1.1" + extract-zip "2.0.1" + figures "^3.2.0" + fs-extra "^9.1.0" + getos "^3.2.1" + is-ci "^3.0.0" + is-installed-globally "~0.4.0" + lazy-ass "^1.6.0" + listr2 "^3.8.3" + lodash "^4.17.21" + log-symbols "^4.0.0" + minimist "^1.2.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" + damerau-levenshtein@^1.0.7: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -6059,6 +6261,13 @@ dargs@^7.0.0: resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== +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.1: version "3.0.2" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" @@ -6073,6 +6282,11 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== +dayjs@^1.10.4: + version "1.11.2" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" + integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6087,7 +6301,7 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" -debug@^3.0.0, debug@^3.2.7: +debug@^3.0.0, debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -6434,6 +6648,14 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +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" @@ -6520,6 +6742,13 @@ enhanced-resolve@^5.7.0, enhanced-resolve@^5.9.3: graceful-fs "^4.2.4" tapable "^2.2.0" +enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -6978,6 +7207,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +eventemitter2@^6.4.3: + version "6.4.5" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.5.tgz#97380f758ae24ac15df8353e0cc27f8b95644655" + integrity sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw== + events@^3.0.0, events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -6996,6 +7230,21 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +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@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -7046,6 +7295,13 @@ execall@^2.0.0: dependencies: clone-regexp "^2.1.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" @@ -7132,7 +7388,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0: +extend@^3.0.0, 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== @@ -7151,6 +7407,27 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +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== + fast-deep-equal@^3.0.0, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -7220,6 +7497,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +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" + feed@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" @@ -7237,7 +7521,7 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -figures@^3.1.0: +figures@^3.1.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== @@ -7399,6 +7683,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== + fork-ts-checker-webpack-plugin@^4.1.6: version "4.1.6" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" @@ -7449,6 +7738,15 @@ form-data@^4.0.0: 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" + format@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" @@ -7493,7 +7791,7 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: +fs-extra@^9.0.0, fs-extra@^9.0.1, 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== @@ -7648,6 +7946,13 @@ get-stream@^4.0.0: 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" @@ -7666,6 +7971,20 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== +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" + git-raw-commits@^2.0.0, git-raw-commits@^2.0.8: version "2.0.11" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" @@ -7780,6 +8099,13 @@ global-dirs@^0.1.1: dependencies: ini "^1.3.4" +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -8229,6 +8555,15 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" +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" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -8242,6 +8577,11 @@ https-proxy-agent@^5.0.0: 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" @@ -8381,6 +8721,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -8539,6 +8884,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + is-core-module@^2.2.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" @@ -8681,6 +9033,14 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== +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== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + is-map@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" @@ -8720,6 +9080,11 @@ is-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -8820,11 +9185,16 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -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-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-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" @@ -8909,6 +9279,11 @@ isomorphic-unfetch@^3.1.0: node-fetch "^2.6.1" unfetch "^4.2.0" +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@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -9457,6 +9832,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +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@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a" @@ -9520,6 +9900,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" @@ -9532,7 +9917,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@^5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== @@ -9568,6 +9953,16 @@ jsonparse@^1.2.0: 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.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz#e624f259143b9062c92b6413ff92a164c80d3ccb" @@ -9637,6 +10032,11 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" +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-universal-dotenv@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" @@ -9698,6 +10098,20 @@ lint-staged@^13.0.0: string-argv "^0.3.1" yaml "^2.1.1" +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" + listr2@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" @@ -9811,6 +10225,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" @@ -9826,6 +10245,14 @@ lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +log-symbols@^4.0.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== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + log-update@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" @@ -10570,7 +10997,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, 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== @@ -10994,7 +11421,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.1: +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== @@ -11237,6 +11664,11 @@ os-homedir@^1.0.0: resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== +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-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -11561,6 +11993,16 @@ pbkdf2@^3.0.3: 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-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== + periscopic@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.0.4.tgz#b3fbed0d1bc844976b977173ca2cd4a0ef4fa8d1" @@ -11589,7 +12031,7 @@ pidtree@^0.5.0: resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.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== @@ -11852,6 +12294,11 @@ prettier@^2.6.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== +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@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" @@ -11975,12 +12422,17 @@ 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 sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -psl@^1.1.33: +psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -12049,6 +12501,11 @@ qs@6.10.3, qs@^6.10.0: dependencies: side-channel "^1.0.4" +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -12575,6 +13032,13 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + dependencies: + throttleit "^1.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -12716,7 +13180,7 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^7.5.5: +rxjs@^7.5.1, rxjs@^7.5.5: version "7.5.5" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== @@ -12752,7 +13216,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.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== @@ -13257,6 +13721,21 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.14.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + 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" + ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -13713,7 +14192,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +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== @@ -13941,6 +14420,11 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -13968,6 +14452,13 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -14034,6 +14525,14 @@ tough-cookie@^4.0.0: punycode "^2.1.1" universalify "^0.1.2" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" @@ -14162,6 +14661,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + 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" @@ -14499,6 +15003,11 @@ untildify@^2.0.0: dependencies: os-homedir "^1.0.0" +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== + upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -14592,6 +15101,11 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uvu@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" @@ -14634,6 +15148,15 @@ vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vfile-location@^3.0.0, vfile-location@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" @@ -15140,6 +15663,14 @@ yargs@^17.0.0, yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" -- cgit v1.2.3