diff --git a/.eslintrc b/.eslintrc index 66f41e078a0..b0b1ff410b5 100644 --- a/.eslintrc +++ b/.eslintrc @@ -37,6 +37,8 @@ "react/jsx-indent": "off", "react/jsx-one-expression-per-line": "off", "react/jsx-wrap-multilines": "off", + "react/jsx-uses-react": "off", + "react/react-in-jsx-scope": "off", "react/prop-types": "off", "require-await": "error" }, diff --git a/app/javascript/packages/components/alert.jsx b/app/javascript/packages/components/alert.jsx index d45da93dd97..84918c4ff4e 100644 --- a/app/javascript/packages/components/alert.jsx +++ b/app/javascript/packages/components/alert.jsx @@ -1,5 +1,3 @@ -import React from 'react'; - /** @typedef {import('react').ReactNode} ReactNode */ /** diff --git a/app/javascript/packages/components/icon.jsx b/app/javascript/packages/components/icon.jsx index 66b8b6860ca..4ff419999a0 100644 --- a/app/javascript/packages/components/icon.jsx +++ b/app/javascript/packages/components/icon.jsx @@ -1,5 +1,3 @@ -import React from 'react'; - /** * @typedef IconProps * diff --git a/app/javascript/packages/components/package.json b/app/javascript/packages/components/package.json index 16db1dbc3f4..c3d276925b1 100644 --- a/app/javascript/packages/components/package.json +++ b/app/javascript/packages/components/package.json @@ -3,6 +3,6 @@ "private": true, "version": "1.0.0", "dependencies": { - "react": "^16.13.1" + "react": "^17.0.1" } } diff --git a/app/javascript/packages/document-capture/components/acuant-capture-canvas.jsx b/app/javascript/packages/document-capture/components/acuant-capture-canvas.jsx index 3bec4e057e6..8940a136442 100644 --- a/app/javascript/packages/document-capture/components/acuant-capture-canvas.jsx +++ b/app/javascript/packages/document-capture/components/acuant-capture-canvas.jsx @@ -1,4 +1,4 @@ -import React, { useContext, useEffect } from 'react'; +import { useContext, useEffect } from 'react'; import AcuantContext from '../context/acuant'; import useAsset from '../hooks/use-asset'; import useI18n from '../hooks/use-i18n'; diff --git a/app/javascript/packages/document-capture/components/acuant-capture.jsx b/app/javascript/packages/document-capture/components/acuant-capture.jsx index e65a093b4ce..120c228f564 100644 --- a/app/javascript/packages/document-capture/components/acuant-capture.jsx +++ b/app/javascript/packages/document-capture/components/acuant-capture.jsx @@ -1,4 +1,4 @@ -import React, { +import { forwardRef, useContext, useRef, diff --git a/app/javascript/packages/document-capture/components/button.jsx b/app/javascript/packages/document-capture/components/button.jsx index a20da9dda7d..36eed61a8d4 100644 --- a/app/javascript/packages/document-capture/components/button.jsx +++ b/app/javascript/packages/document-capture/components/button.jsx @@ -1,5 +1,3 @@ -import React from 'react'; - /** @typedef {import('react').MouseEvent} ReactMouseEvent */ /** @typedef {import('react').ReactNode} ReactNode */ /** @typedef {"button"|"reset"|"submit"} ButtonType */ diff --git a/app/javascript/packages/document-capture/components/desktop-document-disclosure.jsx b/app/javascript/packages/document-capture/components/desktop-document-disclosure.jsx index d6b117039c9..d03c40b3a2e 100644 --- a/app/javascript/packages/document-capture/components/desktop-document-disclosure.jsx +++ b/app/javascript/packages/document-capture/components/desktop-document-disclosure.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import DeviceContext from '../context/device'; import useI18n from '../hooks/use-i18n'; diff --git a/app/javascript/packages/document-capture/components/document-capture.jsx b/app/javascript/packages/document-capture/components/document-capture.jsx index 8acda70692c..b08187d69ce 100644 --- a/app/javascript/packages/document-capture/components/document-capture.jsx +++ b/app/javascript/packages/document-capture/components/document-capture.jsx @@ -1,4 +1,4 @@ -import React, { useState, useMemo, useContext } from 'react'; +import { useState, useMemo, useContext } from 'react'; import { Alert } from '@18f/identity-components'; import FormSteps from './form-steps'; import { UploadFormEntriesError } from '../services/upload'; diff --git a/app/javascript/packages/document-capture/components/documents-step.jsx b/app/javascript/packages/document-capture/components/documents-step.jsx index 607b4273840..b58cb5728a7 100644 --- a/app/javascript/packages/document-capture/components/documents-step.jsx +++ b/app/javascript/packages/document-capture/components/documents-step.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import AcuantCapture from './acuant-capture'; import FormErrorMessage from './form-error-message'; import useI18n from '../hooks/use-i18n'; diff --git a/app/javascript/packages/document-capture/components/file-image.jsx b/app/javascript/packages/document-capture/components/file-image.jsx index 1858463bcd3..22d7faa4a60 100644 --- a/app/javascript/packages/document-capture/components/file-image.jsx +++ b/app/javascript/packages/document-capture/components/file-image.jsx @@ -1,4 +1,4 @@ -import React, { useContext, useState, useEffect } from 'react'; +import { useContext, useState, useEffect } from 'react'; import useIfStillMounted from '../hooks/use-if-still-mounted'; import FileBase64CacheContext from '../context/file-base64-cache'; diff --git a/app/javascript/packages/document-capture/components/file-input.jsx b/app/javascript/packages/document-capture/components/file-input.jsx index a0453123dd5..60b624d1664 100644 --- a/app/javascript/packages/document-capture/components/file-input.jsx +++ b/app/javascript/packages/document-capture/components/file-input.jsx @@ -1,4 +1,4 @@ -import React, { useContext, useState, useMemo, forwardRef } from 'react'; +import { useContext, useState, useMemo, forwardRef } from 'react'; import FileImage from './file-image'; import DeviceContext from '../context/device'; import useInstanceId from '../hooks/use-instance-id'; diff --git a/app/javascript/packages/document-capture/components/form-error-message.jsx b/app/javascript/packages/document-capture/components/form-error-message.jsx index 5ba812a313a..c0810910f44 100644 --- a/app/javascript/packages/document-capture/components/form-error-message.jsx +++ b/app/javascript/packages/document-capture/components/form-error-message.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { UploadFormEntryError } from '../services/upload'; import useI18n from '../hooks/use-i18n'; diff --git a/app/javascript/packages/document-capture/components/form-steps.jsx b/app/javascript/packages/document-capture/components/form-steps.jsx index c6fc82b842e..4c1d9b16d8b 100644 --- a/app/javascript/packages/document-capture/components/form-steps.jsx +++ b/app/javascript/packages/document-capture/components/form-steps.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useRef, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { Alert } from '@18f/identity-components'; import Button from './button'; import PageHeading from './page-heading'; diff --git a/app/javascript/packages/document-capture/components/full-screen.jsx b/app/javascript/packages/document-capture/components/full-screen.jsx index 5967c8dac39..e3c499680cc 100644 --- a/app/javascript/packages/document-capture/components/full-screen.jsx +++ b/app/javascript/packages/document-capture/components/full-screen.jsx @@ -1,4 +1,4 @@ -import React, { useRef, useEffect, useCallback } from 'react'; +import { useRef, useEffect, useCallback } from 'react'; import { createFocusTrap } from 'focus-trap'; import useI18n from '../hooks/use-i18n'; import useAsset from '../hooks/use-asset'; diff --git a/app/javascript/packages/document-capture/components/mobile-intro-step.jsx b/app/javascript/packages/document-capture/components/mobile-intro-step.jsx index ad5db635711..ba89952f9cf 100644 --- a/app/javascript/packages/document-capture/components/mobile-intro-step.jsx +++ b/app/javascript/packages/document-capture/components/mobile-intro-step.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import ServiceProviderContext from '../context/service-provider'; import useI18n from '../hooks/use-i18n'; diff --git a/app/javascript/packages/document-capture/components/page-heading.jsx b/app/javascript/packages/document-capture/components/page-heading.jsx index d75014eb367..2267fd0b428 100644 --- a/app/javascript/packages/document-capture/components/page-heading.jsx +++ b/app/javascript/packages/document-capture/components/page-heading.jsx @@ -1,4 +1,4 @@ -import React, { forwardRef } from 'react'; +import { forwardRef } from 'react'; /** * @typedef PageHeadingProps diff --git a/app/javascript/packages/document-capture/components/review-issues-step.jsx b/app/javascript/packages/document-capture/components/review-issues-step.jsx index 7ff3b9ce12c..9c59e77cf16 100644 --- a/app/javascript/packages/document-capture/components/review-issues-step.jsx +++ b/app/javascript/packages/document-capture/components/review-issues-step.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import { hasMediaAccess } from '@18f/identity-device'; import useI18n from '../hooks/use-i18n'; import DeviceContext from '../context/device'; diff --git a/app/javascript/packages/document-capture/components/selfie-capture.jsx b/app/javascript/packages/document-capture/components/selfie-capture.jsx index b8b9d9806b2..3ae60c7f31c 100644 --- a/app/javascript/packages/document-capture/components/selfie-capture.jsx +++ b/app/javascript/packages/document-capture/components/selfie-capture.jsx @@ -1,4 +1,4 @@ -import React, { +import { forwardRef, useRef, useState, diff --git a/app/javascript/packages/document-capture/components/selfie-step.jsx b/app/javascript/packages/document-capture/components/selfie-step.jsx index d007a04e894..268bc3b09fd 100644 --- a/app/javascript/packages/document-capture/components/selfie-step.jsx +++ b/app/javascript/packages/document-capture/components/selfie-step.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import { hasMediaAccess } from '@18f/identity-device'; import useI18n from '../hooks/use-i18n'; import DeviceContext from '../context/device'; diff --git a/app/javascript/packages/document-capture/components/submission-complete.jsx b/app/javascript/packages/document-capture/components/submission-complete.jsx index c9709e283f9..50832fb7138 100644 --- a/app/javascript/packages/document-capture/components/submission-complete.jsx +++ b/app/javascript/packages/document-capture/components/submission-complete.jsx @@ -1,4 +1,4 @@ -import React, { useState, useContext, useRef } from 'react'; +import { useState, useContext, useRef } from 'react'; import SubmissionInterstitial from './submission-interstitial'; import CallbackOnMount from './callback-on-mount'; import UploadContext from '../context/upload'; diff --git a/app/javascript/packages/document-capture/components/submission-interstitial.jsx b/app/javascript/packages/document-capture/components/submission-interstitial.jsx index 3463fff0ad7..da69a5c2f5b 100644 --- a/app/javascript/packages/document-capture/components/submission-interstitial.jsx +++ b/app/javascript/packages/document-capture/components/submission-interstitial.jsx @@ -1,4 +1,4 @@ -import React, { useRef, useEffect } from 'react'; +import { useRef, useEffect } from 'react'; import useI18n from '../hooks/use-i18n'; import useAsset from '../hooks/use-asset'; import PageHeading from './page-heading'; diff --git a/app/javascript/packages/document-capture/components/submission-status.jsx b/app/javascript/packages/document-capture/components/submission-status.jsx index 4519f4a6ac8..d402d732585 100644 --- a/app/javascript/packages/document-capture/components/submission-status.jsx +++ b/app/javascript/packages/document-capture/components/submission-status.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import useAsync from '../hooks/use-async'; import UploadContext from '../context/upload'; import SubmissionComplete from './submission-complete'; diff --git a/app/javascript/packages/document-capture/components/submission.jsx b/app/javascript/packages/document-capture/components/submission.jsx index 4b14e9ddb7c..a15b91c8e32 100644 --- a/app/javascript/packages/document-capture/components/submission.jsx +++ b/app/javascript/packages/document-capture/components/submission.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import useAsync from '../hooks/use-async'; import UploadContext from '../context/upload'; import SubmissionComplete from './submission-complete'; diff --git a/app/javascript/packages/document-capture/components/suspense-error-boundary.jsx b/app/javascript/packages/document-capture/components/suspense-error-boundary.jsx index 3d6f9d6a478..f04f71a0581 100644 --- a/app/javascript/packages/document-capture/components/suspense-error-boundary.jsx +++ b/app/javascript/packages/document-capture/components/suspense-error-boundary.jsx @@ -1,4 +1,4 @@ -import React, { Component, Suspense } from 'react'; +import { Component, Suspense } from 'react'; /** @typedef {import('react').ReactNode} ReactNode */ /** @typedef {import('react').FunctionComponent} FunctionComponent */ diff --git a/app/javascript/packages/document-capture/context/acuant.jsx b/app/javascript/packages/document-capture/context/acuant.jsx index 803908c3d77..c5932ed02d5 100644 --- a/app/javascript/packages/document-capture/context/acuant.jsx +++ b/app/javascript/packages/document-capture/context/acuant.jsx @@ -1,4 +1,4 @@ -import React, { createContext, useMemo, useEffect, useState } from 'react'; +import { createContext, useMemo, useEffect, useState } from 'react'; /** @typedef {import('react').ReactNode} ReactNode */ diff --git a/app/javascript/packages/document-capture/context/upload.jsx b/app/javascript/packages/document-capture/context/upload.jsx index d5702f2c018..c19b5ecaec1 100644 --- a/app/javascript/packages/document-capture/context/upload.jsx +++ b/app/javascript/packages/document-capture/context/upload.jsx @@ -1,4 +1,4 @@ -import React, { createContext, useMemo } from 'react'; +import { createContext, useMemo } from 'react'; import defaultUpload from '../services/upload'; const UploadContext = createContext({ diff --git a/app/javascript/packages/document-capture/higher-order/with-background-encrypted-upload.jsx b/app/javascript/packages/document-capture/higher-order/with-background-encrypted-upload.jsx index 3fe147bc796..cef205aec74 100644 --- a/app/javascript/packages/document-capture/higher-order/with-background-encrypted-upload.jsx +++ b/app/javascript/packages/document-capture/higher-order/with-background-encrypted-upload.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import UploadContext from '../context/upload'; /** diff --git a/app/javascript/packages/document-capture/package.json b/app/javascript/packages/document-capture/package.json index e962d382b56..93e09d354b5 100644 --- a/app/javascript/packages/document-capture/package.json +++ b/app/javascript/packages/document-capture/package.json @@ -4,6 +4,6 @@ "version": "1.0.0", "dependencies": { "focus-trap": "^6.1.3", - "react": "^16.13.1" + "react": "^17.0.1" } } diff --git a/app/javascript/packs/document-capture.jsx b/app/javascript/packs/document-capture.jsx index 6e91d9dbf61..600ac6d4e6f 100644 --- a/app/javascript/packs/document-capture.jsx +++ b/app/javascript/packs/document-capture.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render } from 'react-dom'; import { DocumentCapture, diff --git a/babel.config.js b/babel.config.js index 3e912fe12df..ce5e0b5189c 100644 --- a/babel.config.js +++ b/babel.config.js @@ -17,7 +17,12 @@ module.exports = function (api) { return { presets: [ - '@babel/preset-react', + [ + '@babel/preset-react', + { + runtime: 'automatic', + }, + ], isTestEnv && [ '@babel/preset-env', { diff --git a/package.json b/package.json index 1444596e5cd..d4f510c4e0f 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "intl-tel-input": "^16.0.7", "libphonenumber-js": "^1.7.26", "normalize.css": "^4.2.0", - "react": "^16.13.1", - "react-dom": "^16.13.1", + "react": "^17.0.1", + "react-dom": "^17.0.1", "uswds": "^2.8.0", "zxcvbn": "^4.4.2" }, @@ -42,11 +42,11 @@ "@babel/register": "^7.12.1", "@peculiar/webcrypto": "^1.1.3", "@rails/webpacker": "^5.2.1", - "@testing-library/dom": "^7.21.8", - "@testing-library/react": "^10.4.8", - "@testing-library/react-hooks": "^3.4.1", - "@testing-library/user-event": "^12.0.11", - "@types/react": "^16.9.49", + "@testing-library/dom": "^7.28.0", + "@testing-library/react": "^11.2.1", + "@testing-library/react-hooks": "^3.4.2", + "@testing-library/user-event": "^12.2.2", + "@types/react": "^16.9.56", "chai": "^3.5.0", "dirty-chai": "^1.2.2", "eslint": "^7.6.0", @@ -54,16 +54,16 @@ "eslint-plugin-import": "^2.22.0", "eslint-plugin-jsx-a11y": "^6.3.1", "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.20.3", - "eslint-plugin-react-hooks": "^4.0.6", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0", "jsdom": "^16.2.2", "mocha": "^8.1.3", "postcss-clean": "^1.1.0", "prettier": "^2.0.5", - "react-test-renderer": "^16.13.1", + "react-test-renderer": "^17.0.1", "sinon": "^9.0.2", "source-map-loader": "^1.1.0", - "typescript": "^4.0.3", + "typescript": "^4.1.2", "webpack-dev-server": "^3.11.0" } } diff --git a/spec/javascripts/packages/components/alert-spec.jsx b/spec/javascripts/packages/components/alert-spec.jsx index 655d8cda782..162a9a71581 100644 --- a/spec/javascripts/packages/components/alert-spec.jsx +++ b/spec/javascripts/packages/components/alert-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { Alert } from '@18f/identity-components'; import { render } from '../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/acuant-capture-canvas-spec.jsx b/spec/javascripts/packages/document-capture/components/acuant-capture-canvas-spec.jsx index 0cdbd20f7c0..c38856946f6 100644 --- a/spec/javascripts/packages/document-capture/components/acuant-capture-canvas-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/acuant-capture-canvas-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { Provider as AcuantContextProvider } from '@18f/identity-document-capture/context/acuant'; import AcuantCaptureCanvas from '@18f/identity-document-capture/components/acuant-capture-canvas'; import { render, useAcuant } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx b/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx index e65829269d5..4f21ea47d1f 100644 --- a/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/acuant-capture-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import { fireEvent } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; diff --git a/spec/javascripts/packages/document-capture/components/button-spec.jsx b/spec/javascripts/packages/document-capture/components/button-spec.jsx index 8e8a24120cb..01091faea8f 100644 --- a/spec/javascripts/packages/document-capture/components/button-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/button-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import userEvent from '@testing-library/user-event'; import Button from '@18f/identity-document-capture/components/button'; diff --git a/spec/javascripts/packages/document-capture/components/callback-on-mount-spec.jsx b/spec/javascripts/packages/document-capture/components/callback-on-mount-spec.jsx index 1becd6a8a7a..b35898a0231 100644 --- a/spec/javascripts/packages/document-capture/components/callback-on-mount-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/callback-on-mount-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import { render } from '@testing-library/react'; import CallbackOnMount from '@18f/identity-document-capture/components/callback-on-mount'; diff --git a/spec/javascripts/packages/document-capture/components/desktop-document-disclosure-spec.jsx b/spec/javascripts/packages/document-capture/components/desktop-document-disclosure-spec.jsx index 12d581fafb8..47cfa63cf27 100644 --- a/spec/javascripts/packages/document-capture/components/desktop-document-disclosure-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/desktop-document-disclosure-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { DeviceContext } from '@18f/identity-document-capture'; import DesktopDocumentDisclosure from '@18f/identity-document-capture/components/desktop-document-disclosure'; import { render } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/document-capture-spec.jsx b/spec/javascripts/packages/document-capture/components/document-capture-spec.jsx index 3d7ca2cd334..ad1b48fadc4 100644 --- a/spec/javascripts/packages/document-capture/components/document-capture-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/document-capture-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; diff --git a/spec/javascripts/packages/document-capture/components/documents-step-spec.jsx b/spec/javascripts/packages/document-capture/components/documents-step-spec.jsx index f88b882541a..769a15e39e9 100644 --- a/spec/javascripts/packages/document-capture/components/documents-step-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/documents-step-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import userEvent from '@testing-library/user-event'; import sinon from 'sinon'; import DeviceContext from '@18f/identity-document-capture/context/device'; diff --git a/spec/javascripts/packages/document-capture/components/file-image-spec.jsx b/spec/javascripts/packages/document-capture/components/file-image-spec.jsx index 403e45029d2..6644f1de82d 100644 --- a/spec/javascripts/packages/document-capture/components/file-image-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/file-image-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import FileImage from '@18f/identity-document-capture/components/file-image'; import { render } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/file-input-spec.jsx b/spec/javascripts/packages/document-capture/components/file-input-spec.jsx index 58015d1b3f6..285a12292da 100644 --- a/spec/javascripts/packages/document-capture/components/file-input-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/file-input-spec.jsx @@ -1,4 +1,4 @@ -import React, { createRef } from 'react'; +import { createRef } from 'react'; import sinon from 'sinon'; import userEvent from '@testing-library/user-event'; import { fireEvent } from '@testing-library/react'; diff --git a/spec/javascripts/packages/document-capture/components/form-error-message-spec.jsx b/spec/javascripts/packages/document-capture/components/form-error-message-spec.jsx index dd2604a6e7d..f80b2f15419 100644 --- a/spec/javascripts/packages/document-capture/components/form-error-message-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/form-error-message-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import FormErrorMessage, { RequiredValueMissingError, } from '@18f/identity-document-capture/components/form-error-message'; diff --git a/spec/javascripts/packages/document-capture/components/form-steps-spec.jsx b/spec/javascripts/packages/document-capture/components/form-steps-spec.jsx index 1addd9693db..a3653f5912f 100644 --- a/spec/javascripts/packages/document-capture/components/form-steps-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/form-steps-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; import sinon from 'sinon'; diff --git a/spec/javascripts/packages/document-capture/components/full-screen-spec.jsx b/spec/javascripts/packages/document-capture/components/full-screen-spec.jsx index fc73385196b..2a633983a1b 100644 --- a/spec/javascripts/packages/document-capture/components/full-screen-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/full-screen-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render, fireEvent } from '@testing-library/react'; import sinon from 'sinon'; import FullScreen from '@18f/identity-document-capture/components/full-screen'; diff --git a/spec/javascripts/packages/document-capture/components/mobile-intro-step-spec.jsx b/spec/javascripts/packages/document-capture/components/mobile-intro-step-spec.jsx index 9f4a0794c74..b7d793559a1 100644 --- a/spec/javascripts/packages/document-capture/components/mobile-intro-step-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/mobile-intro-step-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { I18nContext, ServiceProviderContext } from '@18f/identity-document-capture'; import MobileIntroStep from '@18f/identity-document-capture/components/mobile-intro-step'; import { render } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/page-heading-spec.jsx b/spec/javascripts/packages/document-capture/components/page-heading-spec.jsx index a7e203faf2f..58294479d0b 100644 --- a/spec/javascripts/packages/document-capture/components/page-heading-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/page-heading-spec.jsx @@ -1,4 +1,4 @@ -import React, { createRef } from 'react'; +import { createRef } from 'react'; import PageHeading from '@18f/identity-document-capture/components/page-heading'; import { render } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/prompt-on-navigate-spec.jsx b/spec/javascripts/packages/document-capture/components/prompt-on-navigate-spec.jsx index af9b7e48f8e..101bba2c0a9 100644 --- a/spec/javascripts/packages/document-capture/components/prompt-on-navigate-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/prompt-on-navigate-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render } from '@testing-library/react'; import PromptOnNavigate from '@18f/identity-document-capture/components/prompt-on-navigate'; diff --git a/spec/javascripts/packages/document-capture/components/review-issues-step-spec.jsx b/spec/javascripts/packages/document-capture/components/review-issues-step-spec.jsx index c2f5f231cff..7f39cc98635 100644 --- a/spec/javascripts/packages/document-capture/components/review-issues-step-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/review-issues-step-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import userEvent from '@testing-library/user-event'; import sinon from 'sinon'; import { I18nContext, ServiceProviderContext } from '@18f/identity-document-capture'; diff --git a/spec/javascripts/packages/document-capture/components/selfie-capture-spec.jsx b/spec/javascripts/packages/document-capture/components/selfie-capture-spec.jsx index 380d9ef5a2e..38b77d7c832 100644 --- a/spec/javascripts/packages/document-capture/components/selfie-capture-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/selfie-capture-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import userEvent from '@testing-library/user-event'; import { cleanup } from '@testing-library/react'; diff --git a/spec/javascripts/packages/document-capture/components/selfie-step-spec.jsx b/spec/javascripts/packages/document-capture/components/selfie-step-spec.jsx index 526a5b72fde..ac5d4095c40 100644 --- a/spec/javascripts/packages/document-capture/components/selfie-step-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/selfie-step-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import userEvent from '@testing-library/user-event'; import { waitFor } from '@testing-library/dom'; import sinon from 'sinon'; diff --git a/spec/javascripts/packages/document-capture/components/submission-complete-spec.jsx b/spec/javascripts/packages/document-capture/components/submission-complete-spec.jsx index 338f41d6c93..247ab53822e 100644 --- a/spec/javascripts/packages/document-capture/components/submission-complete-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/submission-complete-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import sinon from 'sinon'; import { waitFor } from '@testing-library/dom'; import useAsync from '@18f/identity-document-capture/hooks/use-async'; diff --git a/spec/javascripts/packages/document-capture/components/submission-interstitial-spec.jsx b/spec/javascripts/packages/document-capture/components/submission-interstitial-spec.jsx index 5f5b9828a73..e3b00956806 100644 --- a/spec/javascripts/packages/document-capture/components/submission-interstitial-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/submission-interstitial-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render } from '@testing-library/react'; import SubmissionInterstitial from '@18f/identity-document-capture/components/submission-interstitial'; diff --git a/spec/javascripts/packages/document-capture/components/suspense-error-boundary-spec.jsx b/spec/javascripts/packages/document-capture/components/suspense-error-boundary-spec.jsx index 1e6d914ac64..f5b998fee3c 100644 --- a/spec/javascripts/packages/document-capture/components/suspense-error-boundary-spec.jsx +++ b/spec/javascripts/packages/document-capture/components/suspense-error-boundary-spec.jsx @@ -1,4 +1,4 @@ -import React, { lazy, useState } from 'react'; +import { lazy, useState } from 'react'; import sinon from 'sinon'; import { waitFor } from '@testing-library/dom'; import SuspenseErrorBoundary from '@18f/identity-document-capture/components/suspense-error-boundary'; diff --git a/spec/javascripts/packages/document-capture/context/acuant-spec.jsx b/spec/javascripts/packages/document-capture/context/acuant-spec.jsx index 324621ca93e..e4f8d9765ee 100644 --- a/spec/javascripts/packages/document-capture/context/acuant-spec.jsx +++ b/spec/javascripts/packages/document-capture/context/acuant-spec.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import { renderHook } from '@testing-library/react-hooks'; import AcuantContext, { Provider as AcuantContextProvider, diff --git a/spec/javascripts/packages/document-capture/context/upload-spec.jsx b/spec/javascripts/packages/document-capture/context/upload-spec.jsx index 9da3c947cda..b5570b8d2e5 100644 --- a/spec/javascripts/packages/document-capture/context/upload-spec.jsx +++ b/spec/javascripts/packages/document-capture/context/upload-spec.jsx @@ -1,4 +1,4 @@ -import React, { useContext } from 'react'; +import { useContext } from 'react'; import { renderHook } from '@testing-library/react-hooks'; import UploadContext, { Provider as UploadContextProvider, diff --git a/spec/javascripts/packages/document-capture/higher-order/with-background-encrypted-upload-spec.jsx b/spec/javascripts/packages/document-capture/higher-order/with-background-encrypted-upload-spec.jsx index 3db7c4fc938..9eb7583b56b 100644 --- a/spec/javascripts/packages/document-capture/higher-order/with-background-encrypted-upload-spec.jsx +++ b/spec/javascripts/packages/document-capture/higher-order/with-background-encrypted-upload-spec.jsx @@ -1,4 +1,4 @@ -import React, { useEffect } from 'react'; +import { useEffect } from 'react'; import sinon from 'sinon'; import { UploadContextProvider } from '@18f/identity-document-capture'; import withBackgroundEncryptedUpload, { diff --git a/spec/javascripts/packages/document-capture/hooks/use-asset-spec.jsx b/spec/javascripts/packages/document-capture/hooks/use-asset-spec.jsx index 1d286e8a50a..a46cb0a892f 100644 --- a/spec/javascripts/packages/document-capture/hooks/use-asset-spec.jsx +++ b/spec/javascripts/packages/document-capture/hooks/use-asset-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { renderHook } from '@testing-library/react-hooks'; import useAsset from '@18f/identity-document-capture/hooks/use-asset'; import AssetContext from '@18f/identity-document-capture/context/asset'; diff --git a/spec/javascripts/packages/document-capture/hooks/use-async-spec.jsx b/spec/javascripts/packages/document-capture/hooks/use-async-spec.jsx index aa63d0e303d..98abe64d92a 100644 --- a/spec/javascripts/packages/document-capture/hooks/use-async-spec.jsx +++ b/spec/javascripts/packages/document-capture/hooks/use-async-spec.jsx @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import sinon from 'sinon'; import useAsync from '@18f/identity-document-capture/hooks/use-async'; import SuspenseErrorBoundary from '@18f/identity-document-capture/components/suspense-error-boundary'; diff --git a/spec/javascripts/packages/document-capture/hooks/use-focus-fallback-ref-spec.jsx b/spec/javascripts/packages/document-capture/hooks/use-focus-fallback-ref-spec.jsx index 68228d63d9e..9b9df15f855 100644 --- a/spec/javascripts/packages/document-capture/hooks/use-focus-fallback-ref-spec.jsx +++ b/spec/javascripts/packages/document-capture/hooks/use-focus-fallback-ref-spec.jsx @@ -1,4 +1,4 @@ -import React, { createRef } from 'react'; +import { createRef } from 'react'; import sinon from 'sinon'; import useFocusFallbackRef from '@18f/identity-document-capture/hooks/use-focus-fallback-ref'; import { render } from '../../../support/document-capture'; diff --git a/spec/javascripts/packages/document-capture/hooks/use-history-param-spec.jsx b/spec/javascripts/packages/document-capture/hooks/use-history-param-spec.jsx index 2dcc428ce57..a37fd14751d 100644 --- a/spec/javascripts/packages/document-capture/hooks/use-history-param-spec.jsx +++ b/spec/javascripts/packages/document-capture/hooks/use-history-param-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import userEvent from '@testing-library/user-event'; import useHistoryParam, { getQueryParam, diff --git a/spec/javascripts/packages/document-capture/hooks/use-i18n-spec.jsx b/spec/javascripts/packages/document-capture/hooks/use-i18n-spec.jsx index 9bf752b65ad..543a7fcec2d 100644 --- a/spec/javascripts/packages/document-capture/hooks/use-i18n-spec.jsx +++ b/spec/javascripts/packages/document-capture/hooks/use-i18n-spec.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { renderHook } from '@testing-library/react-hooks'; import I18nContext from '@18f/identity-document-capture/context/i18n'; import useI18n, { diff --git a/spec/javascripts/support/document-capture.jsx b/spec/javascripts/support/document-capture.jsx index 263c792ac2b..ddcef90934a 100644 --- a/spec/javascripts/support/document-capture.jsx +++ b/spec/javascripts/support/document-capture.jsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render as baseRender, act, cleanup } from '@testing-library/react'; import sinon from 'sinon'; import { UploadContextProvider } from '@18f/identity-document-capture'; diff --git a/spec/lib/asset_checker_spec.rb b/spec/lib/asset_checker_spec.rb index 21dc1d98e27..93410926827 100644 --- a/spec/lib/asset_checker_spec.rb +++ b/spec/lib/asset_checker_spec.rb @@ -70,7 +70,6 @@ def build_js_with_strings(asset) <<-STR - import React from 'react'; import useAsset from '../hooks/use-asset'; function DocumentCapture() { diff --git a/tsconfig.json b/tsconfig.json index 0126e1b3c00..f5c95ddd684 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,7 +5,7 @@ "noEmit": true, "strictFunctionTypes": true, "strictNullChecks": true, - "jsx": "react", + "jsx": "react-jsx", "esModuleInterop": true, "moduleResolution": "node", "module": "ESNext", diff --git a/yarn.lock b/yarn.lock index fcc5a84b728..ebd976c488e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -915,10 +915,10 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.4", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" - integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.5.4", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" + integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== dependencies: regenerator-runtime "^0.13.4" @@ -960,15 +960,16 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" "@types/yargs" "^15.0.0" - chalk "^3.0.0" + chalk "^4.0.0" "@nodelib/fs.scandir@2.1.3": version "2.1.3" @@ -1106,37 +1107,40 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@testing-library/dom@^7.17.1", "@testing-library/dom@^7.21.8": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.21.8.tgz#b64b266264bff9135eba3b5c6d4ddc995a3371e6" - integrity sha512-iK1rJubFoeD5gxCryokwh09tnJa1Y4doNDbNFYYqOqz6ELwB1+kEAwlezA5xwMi8QrK7xg+1/aBMzb9X/A/EmA== +"@testing-library/dom@^7.27.1", "@testing-library/dom@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.28.0.tgz#4d68a39675dbf0fa2f3c53bc2b9ab9e1dd1d55b2" + integrity sha512-jY9wE3eF/fjrxUCC1VTCnMWE/g+aCP582Df4H6H9wQYY0yLglyevTO7TET9pgg0w9Yzm8n7ck0Hxzi18pN5+4w== dependencies: - "@babel/runtime" "^7.10.3" + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" "@types/aria-query" "^4.2.0" aria-query "^4.2.2" - dom-accessibility-api "^0.4.6" - pretty-format "^25.5.0" + chalk "^4.1.0" + dom-accessibility-api "^0.5.4" + lz-string "^1.4.4" + pretty-format "^26.6.2" -"@testing-library/react-hooks@^3.4.1": - version "3.4.1" - resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.4.1.tgz#1f8ccd21208086ec228d9743fe40b69d0efcd7e5" - integrity sha512-LbzvE7oKsVzuW1cxA/aOeNgeVvmHWG2p/WSzalIGyWuqZT3jVcNDT5KPEwy36sUYWde0Qsh32xqIUFXukeywXg== +"@testing-library/react-hooks@^3.4.2": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@testing-library/react-hooks/-/react-hooks-3.4.2.tgz#8deb94f7684e0d896edd84a4c90e5b79a0810bc2" + integrity sha512-RfPG0ckOzUIVeIqlOc1YztKgFW+ON8Y5xaSPbiBkfj9nMkkiLhLeBXT5icfPX65oJV/zCZu4z8EVnUc6GY9C5A== dependencies: "@babel/runtime" "^7.5.4" - "@types/testing-library__react-hooks" "^3.3.0" + "@types/testing-library__react-hooks" "^3.4.0" -"@testing-library/react@^10.4.8": - version "10.4.8" - resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-10.4.8.tgz#5eb730291b8fd81cdb2d8877770d060b044ae4a4" - integrity sha512-clgpFR6QHiRRcdhFfAKDhH8UXpNASyfkkANhtCsCVBnai+O+mK1rGtMES+Apc7ql5Wyxu7j8dcLiC4pV5VblHA== +"@testing-library/react@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.1.tgz#01b3d2dd5768ac27402b5d7e41c87e605be3c326" + integrity sha512-/rKucr9p/mhMongaeTXwgIRfDnsAUu6LbfN+moNUn2oU0Kw5a7inN5vGvPWv7Ef0YndpERAfODjeseUIlhzRHw== dependencies: - "@babel/runtime" "^7.10.3" - "@testing-library/dom" "^7.17.1" + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.27.1" -"@testing-library/user-event@^12.0.11": - version "12.0.11" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.0.11.tgz#157594e6c6d73a1503003933177843648b8c7da4" - integrity sha512-r7QNfktLE2n8IODEl32orup/HNOMueJpoXRDeTMlvWR4nZIHJwx59+8SkLf6nqV4Ot5Xo6qNeaWrvC1KO4eOng== +"@testing-library/user-event@^12.2.2": + version "12.2.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.2.2.tgz#22d0047da745289335240f523dfe74c889ec96cb" + integrity sha512-mTYL9LrwiSeyorStUOMuRGQDn1ca40tIhuv//o/K3lY8wBEp+9Im90MFVx5i3u7zCPmavn3uWZs/10chsbI8Tg== dependencies: "@babel/runtime" "^7.10.2" @@ -1177,12 +1181,11 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== dependencies: - "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.6": @@ -1232,18 +1235,18 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^16.9.49": - version "16.9.49" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.49.tgz#09db021cf8089aba0cdb12a49f8021a69cce4872" - integrity sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g== +"@types/react@*", "@types/react@^16.9.56": + version "16.9.56" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.56.tgz#ea25847b53c5bec064933095fc366b1462e2adf0" + integrity sha512-gIkl4J44G/qxbuC6r2Xh+D3CGZpJ+NdWTItAPmZbR5mUS+JQ8Zvzpl0ea5qT/ZT3ZNTUcDKUVqV3xBE8wv/DyQ== dependencies: "@types/prop-types" "*" csstype "^3.0.2" -"@types/testing-library__react-hooks@^3.3.0": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.0.tgz#be148b7fa7d19cd3349c4ef9d9534486bc582fcc" - integrity sha512-QYLZipqt1hpwYsBU63Ssa557v5wWbncqL36No59LI7W3nCMYKrLWTnYGn2griZ6v/3n5nKXNYkTeYpqPHY7Ukg== +"@types/testing-library__react-hooks@^3.4.0": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@types/testing-library__react-hooks/-/testing-library__react-hooks-3.4.1.tgz#b8d7311c6c1f7db3103e94095fe901f8fef6e433" + integrity sha512-G4JdzEcq61fUyV6wVW9ebHWEiLK2iQvaBuCHHn9eMSbZzVh4Z4wHnUGIvQOYCCYeu5DnUtFyNYuAAgbSaO/43Q== dependencies: "@types/react-test-renderer" "*" @@ -2464,15 +2467,7 @@ chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== @@ -3416,10 +3411,10 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.4.6: - version "0.4.7" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.4.7.tgz#31d01c113af49f323409b3ed09e56967aba485a8" - integrity sha512-5+GzhTpCQYHz4NjL8loYTDVBnXIjNLBadWQBKxXk+osFEplLt3EsSYBu2YZcdZ8QqrvCHgW6TSMGMbmgfhrn2g== +dom-accessibility-api@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" + integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== dom-serializer@0: version "0.2.2" @@ -3760,26 +3755,26 @@ eslint-plugin-prettier@^3.1.4: dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react-hooks@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.6.tgz#4027ae451b5cd219928edd0ff9eab54a8ea82901" - integrity sha512-RDrsUR/BjwCECcWS+5bc7mWiU/M1IOizKt40Zuei5mn0Eydubiooh87aSCiZ/BGMSUF7P8AqyMEqQL0RsAihmw== +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== -eslint-plugin-react@^7.20.3: - version "7.20.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz#0590525e7eb83890ce71f73c2cf836284ad8c2f1" - integrity sha512-txbo090buDeyV0ugF3YMWrzLIUqpYTsWSDZV9xLSmExE1P/Kmgg9++PD931r+KEWS66O1c9R4srLVVHmeHpoAg== +eslint-plugin-react@^7.21.5: + version "7.21.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3" + integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g== dependencies: array-includes "^3.1.1" array.prototype.flatmap "^1.2.3" doctrine "^2.1.0" has "^1.0.3" - jsx-ast-utils "^2.4.1" + jsx-ast-utils "^2.4.1 || ^3.0.0" object.entries "^1.1.2" object.fromentries "^2.0.2" object.values "^1.1.1" prop-types "^15.7.2" - resolve "^1.17.0" + resolve "^1.18.1" string.prototype.matchall "^4.0.2" eslint-rule-composer@^0.3.0: @@ -5071,6 +5066,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" + integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5476,6 +5478,14 @@ jsx-ast-utils@^2.4.1: array-includes "^3.1.1" object.assign "^4.1.0" +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz#642f1d7b88aa6d7eb9d8f2210e166478444fa891" + integrity sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA== + dependencies: + array-includes "^3.1.1" + object.assign "^4.1.1" + just-extend@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" @@ -5742,6 +5752,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -7569,15 +7584,15 @@ prettier@^2.0.5: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== -pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== +pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^25.5.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.0" + react-is "^17.0.1" process-nextick-args@~2.0.0: version "2.0.1" @@ -7610,7 +7625,7 @@ promise.allsettled@1.0.2: function-bind "^1.1.1" iterate-value "^1.0.0" -prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -7774,39 +7789,50 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -react-dom@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== +react-dom@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" + integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" - scheduler "^0.19.1" + scheduler "^0.20.1" -react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.6: +"react-is@^16.12.0 || ^17.0.0", react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-test-renderer@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1" - integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ== +react-shallow-renderer@^16.13.1: + version "16.14.1" + resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.14.1.tgz#bf0d02df8a519a558fd9b8215442efa5c840e124" + integrity sha512-rkIMcQi01/+kxiTE9D3fdS959U1g7gs+/rborw++42m1O9FAQiNI/UNRZExVUoAOprn4umcXf+pFRou8i4zuBg== dependencies: object-assign "^4.1.1" - prop-types "^15.6.2" - react-is "^16.8.6" - scheduler "^0.19.1" + react-is "^16.12.0 || ^17.0.0" -react@^16.13.1: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== +react-test-renderer@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.1.tgz#3187e636c3063e6ae498aedf21ecf972721574c7" + integrity sha512-/dRae3mj6aObwkjCcxZPlxDFh73XZLgvwhhyON2haZGUEhiaY5EjfAdw+d/rQmlcFwdTpMXCSGVk374QbCTlrA== + dependencies: + object-assign "^4.1.1" + react-is "^17.0.1" + react-shallow-renderer "^16.13.1" + scheduler "^0.20.1" + +react@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" + integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" - prop-types "^15.6.2" read-cache@^1.0.0: version "1.0.0" @@ -8088,11 +8114,12 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== dependencies: + is-core-module "^2.0.0" path-parse "^1.0.6" ret@~0.1.10: @@ -8216,10 +8243,10 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" -scheduler@^0.19.1: - version "0.19.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" - integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== +scheduler@^0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" + integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -9251,10 +9278,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.3.tgz#153bbd468ef07725c1df9c77e8b453f8d36abba5" - integrity sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg== +typescript@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.2.tgz#6369ef22516fe5e10304aae5a5c4862db55380e9" + integrity sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4"