diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..b583bf6 --- /dev/null +++ b/.babelrc @@ -0,0 +1,11 @@ +{ + "presets": [ + [ + "@babel/preset-react", + { + "runtime": "automatic", + "importSource": "@emotion/react" + } + ] + ] +} diff --git a/.eslintrc.js b/.eslintrc.js index c29171a..f928a91 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,5 +9,9 @@ module.exports = { react: { version: "detect" } + }, + rules: { + "react/jsx-uses-react": "off", + "react/react-in-jsx-scope": "off" } }; diff --git a/example/components/Section.tsx b/example/components/Section.tsx index 7b89208..03d9018 100644 --- a/example/components/Section.tsx +++ b/example/components/Section.tsx @@ -1,19 +1,15 @@ -import * as React from "react"; - -const Section: React.FC = ({ children }) => { - return ( -
- {children} -
- ); -}; +const Section: React.FC = ({ children }) => ( +
+ {children} +
+); export default Section; diff --git a/example/index.tsx b/example/index.tsx index d780ac8..02f28d7 100644 --- a/example/index.tsx +++ b/example/index.tsx @@ -1,5 +1,3 @@ -import "react-app-polyfill/ie11"; -import * as React from "react"; import * as ReactDOM from "react-dom"; import Fade from "../src/components/Fade"; diff --git a/example/package.json b/example/package.json index b0fbe1c..54ebaf8 100644 --- a/example/package.json +++ b/example/package.json @@ -8,8 +8,7 @@ "build": "parcel build index.html" }, "dependencies": { - "components": "^0.1.0", - "react-app-polyfill": "^1.0.6" + "components": "^0.1.0" }, "alias": { "react": "../node_modules/react", @@ -17,9 +16,10 @@ "scheduler/tracing": "../node_modules/scheduler/tracing-profiling" }, "devDependencies": { + "@babel/core": "^7.12.10", "@types/react": "^16.9.49", "@types/react-dom": "^16.9.8", "parcel": "^1.12.4", - "typescript": "^3.9.7" + "typescript": "^4.1.3" } } diff --git a/example/tsconfig.dev.json b/example/tsconfig.dev.json new file mode 100644 index 0000000..91873fa --- /dev/null +++ b/example/tsconfig.dev.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "jsx": "react-jsxdev" + } +} diff --git a/example/tsconfig.json b/example/tsconfig.json index 6d51867..7f0435d 100644 --- a/example/tsconfig.json +++ b/example/tsconfig.json @@ -3,7 +3,7 @@ "allowSyntheticDefaultImports": false, "target": "es5", "module": "commonjs", - "jsx": "react", + "jsx": "react-jsx", "moduleResolution": "node", "noImplicitAny": false, "noUnusedLocals": false, diff --git a/example/yarn.lock b/example/yarn.lock index 7f49d63..b2732f4 100644 --- a/example/yarn.lock +++ b/example/yarn.lock @@ -14,7 +14,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== -"@babel/core@^7.4.4": +"@babel/core@^7.12.10", "@babel/core@^7.4.4": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== @@ -1043,11 +1043,6 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asap@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -1632,11 +1627,6 @@ core-js@^2.4.0, core-js@^2.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.5.0: - version "3.8.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044" - integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -4097,13 +4087,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -promise@^8.0.3: - version "8.1.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" - integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== - dependencies: - asap "~2.0.6" - psl@^1.1.28: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -4175,13 +4158,6 @@ quote-stream@^1.0.1, quote-stream@~1.0.2: minimist "^1.1.3" through2 "^2.0.0" -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4202,18 +4178,6 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -react-app-polyfill@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz#890f8d7f2842ce6073f030b117de9130a5f385f0" - integrity sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g== - dependencies: - core-js "^3.5.0" - object-assign "^4.1.1" - promise "^8.0.3" - raf "^3.4.1" - regenerator-runtime "^0.13.3" - whatwg-fetch "^3.0.0" - readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -4262,7 +4226,7 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: +regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== @@ -4959,10 +4923,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.9.7: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== uncss@^0.17.3: version "0.17.3" @@ -5171,11 +5135,6 @@ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^3.0.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.5.0.tgz#605a2cd0a7146e5db141e29d1c62ab84c0c4c868" - integrity sha512-jXkLtsR42xhXg7akoDKvKWE40eJeI+2KZqcp2h3NsOrRnDvtWX36KcKl30dy+hxECivdk2BVUHVNrPtoMBUx6A== - whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" diff --git a/package.json b/package.json index e336635..6a765df 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,8 @@ } ], "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/preset-react": "^7.12.10", "@emotion/eslint-plugin": "^11.0.0", "@size-limit/preset-small-lib": "^4.8.0", "@types/jest": "^26.0.15", @@ -74,12 +76,17 @@ "react-dom": "^17.0.1", "size-limit": "^4.8.0", "tsdx": "^0.14.1", - "tslib": "^2.0.3", - "typescript": "^3.9.7" + "tslib": "^2.1.0", + "typescript": "^4.1.3" }, "dependencies": { "@emotion/react": "^11.1.4", "react-intersection-observer": "^8.31.0", "react-is": "^17.0.1" + }, + "resolutions": { + "**/typescript": "^4.1.3", + "**/@typescript-eslint/eslint-plugin": "^4.13.0", + "**/@typescript-eslint/parser": "^4.13.0" } } diff --git a/src/Reveal.tsx b/src/Reveal.tsx index 1e0b068..a68a149 100644 --- a/src/Reveal.tsx +++ b/src/Reveal.tsx @@ -1,5 +1,4 @@ -/** @jsx jsx */ -import * as React from "react"; +import { Children, FC } from "react"; import { isFragment } from "react-is"; import { ClassNames, Interpolation, Theme, css, jsx } from "@emotion/react"; import { Keyframes } from "@emotion/serialize"; @@ -84,7 +83,7 @@ export interface RevealProps { onVisibilityChange?(inView: boolean, entry: IntersectionObserverEntry): void; } -const Reveal: React.FC = ({ +const Reveal: FC = ({ cascade = false, damping = 0.5, delay = 0, @@ -185,8 +184,8 @@ const Reveal: React.FC = ({ } return ( - - {React.Children.map(children, (node, index) => { + <> + {Children.map(children, (node, index) => { const nodeElement = node as React.ReactElement; const nodeCss: Interpolation[] = nodeElement.props.css ? [nodeElement.props.css] @@ -206,9 +205,10 @@ const Reveal: React.FC = ({ return ( {({ cx }) => - React.cloneElement( - nodeElement, + jsx( + nodeElement.type, { + ...nodeElement.props, className: cx(className, nodeElement.props.className), style: { ...style, ...nodeElement.props.style } }, @@ -289,7 +289,7 @@ const Reveal: React.FC = ({ ); } })} - + ); }; diff --git a/src/components/AttentionSeeker.tsx b/src/components/AttentionSeeker.tsx index a23431d..4684fa3 100644 --- a/src/components/AttentionSeeker.tsx +++ b/src/components/AttentionSeeker.tsx @@ -1,4 +1,3 @@ -import * as React from "react"; import { Interpolation, Theme } from "@emotion/react"; import { Keyframes } from "@emotion/serialize"; @@ -34,7 +33,7 @@ type AttentionSeekerEffect = | "tada" | "wobble"; -interface AttentionSeekerProps extends Omit { +interface AttentionSeekerProps extends Omit { /** * The animation effect to use for this attention seeker. * @default "bounce" @@ -78,12 +77,11 @@ function getAttentionSeekerKeyframesAndCss( const AttentionSeeker: React.FC = ({ effect = "bounce", - css, - ...rest + ...otherProps }) => { const [keyframes, animationCss] = getAttentionSeekerKeyframesAndCss(effect); - return ; + return ; }; export default AttentionSeeker; diff --git a/src/components/Bounce.tsx b/src/components/Bounce.tsx index 393525b..936522d 100644 --- a/src/components/Bounce.tsx +++ b/src/components/Bounce.tsx @@ -1,5 +1,3 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { bounceIn, @@ -18,7 +16,7 @@ import { type BounceDirection = "down" | "left" | "right" | "up"; -interface BounceProps extends Omit { +interface BounceProps extends Omit { /** * Origin of the animation. * @default undefined @@ -49,10 +47,13 @@ function getBounceKeyframes(reverse: boolean, direction?: BounceDirection) { const Bounce: React.FC = ({ direction, reverse = false, - ...rest + ...otherProps }) => { return ( - + ); }; diff --git a/src/components/Fade.tsx b/src/components/Fade.tsx index 925c88d..5a26d55 100644 --- a/src/components/Fade.tsx +++ b/src/components/Fade.tsx @@ -1,5 +1,3 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { fadeIn, @@ -42,7 +40,7 @@ type FadeDirection = | "top-right" | "up"; -interface FadeProps extends Omit { +interface FadeProps extends Omit { /** * Causes the animation to start farther. Only works with "down", "left", "right" and "up" directions. * @default false @@ -115,10 +113,13 @@ const Fade: React.FC = ({ big = false, direction, reverse = false, - ...rest + ...otherProps }) => { return ( - + ); }; diff --git a/src/components/Flip.tsx b/src/components/Flip.tsx index 3e98722..8de2040 100644 --- a/src/components/Flip.tsx +++ b/src/components/Flip.tsx @@ -1,4 +1,3 @@ -import * as React from "react"; import { Interpolation, Theme } from "@emotion/react"; import Reveal, { RevealProps } from "../Reveal"; @@ -12,7 +11,7 @@ import { type FlipDirection = "horizontal" | "vertical"; -interface FlipProps extends Omit { +interface FlipProps extends Omit { /** * Axis direction of the animation. * @default undefined @@ -39,16 +38,15 @@ function getFlipKeyframes(reverse: boolean, direction?: FlipDirection) { const Flip: React.FC = ({ direction, reverse = false, - css, - ...rest + ...otherProps }) => { const animationCss: Interpolation = { backfaceVisibility: "visible" }; return ( ); }; diff --git a/src/components/Hinge.tsx b/src/components/Hinge.tsx index d88836d..f9e9a2c 100644 --- a/src/components/Hinge.tsx +++ b/src/components/Hinge.tsx @@ -1,15 +1,14 @@ -import * as React from "react"; import { Interpolation, Theme } from "@emotion/react"; import Reveal, { RevealProps } from "../Reveal"; import { hinge } from "../animations/specials"; -type HingeProps = Omit; +type HingeProps = Omit; -const Hinge: React.FC = ({ css, ...rest }) => { +const Hinge: React.FC = props => { const animationCss: Interpolation = { transformOrigin: "top left" }; - return ; + return ; }; export default Hinge; diff --git a/src/components/JackInTheBox.tsx b/src/components/JackInTheBox.tsx index 65d45ae..9b032d5 100644 --- a/src/components/JackInTheBox.tsx +++ b/src/components/JackInTheBox.tsx @@ -1,9 +1,7 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { jackInTheBox } from "../animations/specials"; -type JackInTheBoxProps = Omit; +type JackInTheBoxProps = Omit; const JackInTheBox: React.FC = props => { return ; diff --git a/src/components/Roll.tsx b/src/components/Roll.tsx index 139cb95..55cbe49 100644 --- a/src/components/Roll.tsx +++ b/src/components/Roll.tsx @@ -1,9 +1,7 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { rollIn, rollOut } from "../animations/specials"; -interface RollProps extends Omit { +interface RollProps extends Omit { /** * Specifies if the animation should make element(s) disappear. * @default false @@ -15,8 +13,8 @@ function getRollKeyframes(reverse: boolean) { return reverse ? rollOut : rollIn; } -const Roll: React.FC = ({ reverse = false, ...rest }) => { - return ; +const Roll: React.FC = ({ reverse = false, ...otherProps }) => { + return ; }; export default Roll; diff --git a/src/components/Rotate.tsx b/src/components/Rotate.tsx index 94dcc5d..08a7f18 100644 --- a/src/components/Rotate.tsx +++ b/src/components/Rotate.tsx @@ -1,4 +1,3 @@ -import * as React from "react"; import { Interpolation, Theme } from "@emotion/react"; import { Keyframes } from "@emotion/serialize"; @@ -24,7 +23,7 @@ type RotateDirection = | "top-left" | "top-right"; -interface RotateProps extends Omit { +interface RotateProps extends Omit { /** * Origin of the animation. * @default undefined @@ -68,15 +67,14 @@ function getRotateKeyframesAndCss( const Rotate: React.FC = ({ direction, reverse = false, - css, - ...rest + ...otherProps }) => { const [keyframes, animationCss] = getRotateKeyframesAndCss( reverse, direction ); - return ; + return ; }; export default Rotate; diff --git a/src/components/Slide.tsx b/src/components/Slide.tsx index 9e9b1b4..182d8d1 100644 --- a/src/components/Slide.tsx +++ b/src/components/Slide.tsx @@ -1,5 +1,3 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { slideInDown, @@ -16,7 +14,7 @@ import { type SlideDirection = "down" | "left" | "right" | "up"; -interface SlideProps extends Omit { +interface SlideProps extends Omit { /** * Origin of the animation. * @default undefined @@ -46,9 +44,11 @@ function getSlideKeyframes(reverse: boolean, direction?: SlideDirection) { const Slide: React.FC = ({ direction, reverse = false, - ...rest + ...otherProps }) => { - return ; + return ( + + ); }; export default Slide; diff --git a/src/components/Zoom.tsx b/src/components/Zoom.tsx index 1579dad..bbafa8d 100644 --- a/src/components/Zoom.tsx +++ b/src/components/Zoom.tsx @@ -1,5 +1,3 @@ -import * as React from "react"; - import Reveal, { RevealProps } from "../Reveal"; import { zoomIn, @@ -18,7 +16,7 @@ import { type ZoomDirection = "down" | "left" | "right" | "up"; -interface ZoomProps extends Omit { +interface ZoomProps extends Omit { /** * Origin of the animation. * @default undefined @@ -46,8 +44,14 @@ function getZoomKeyframes(reverse: boolean, direction?: ZoomDirection) { } } -const Zoom: React.FC = ({ direction, reverse = false, ...rest }) => { - return ; +const Zoom: React.FC = ({ + direction, + reverse = false, + ...otherProps +}) => { + return ( + + ); }; export default Zoom; diff --git a/tsconfig.json b/tsconfig.json index 2d7419f..61a553e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs - "include": ["src", "types"], + "include": ["src"], "compilerOptions": { "module": "esnext", "lib": ["dom", "esnext"], @@ -21,8 +21,9 @@ "noUnusedParameters": true, // use Node's module resolution algorithm, instead of the legacy TS one "moduleResolution": "node", - // transpile JSX to React.createElement - "jsx": "react", + // don't transpile JSX to React.createElement (we use the Emotion JSX transform handled by Babel) + "jsx": "preserve", + "jsxImportSource": "@emotion/react", // interop between ESM and CJS modules. Recommended by TS "esModuleInterop": true, // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS diff --git a/yarn.lock b/yarn.lock index ef7536e..7e38c70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,7 +14,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== -"@babel/core@^7.1.0", "@babel/core@^7.4.4", "@babel/core@^7.7.5": +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.4.4", "@babel/core@^7.7.5": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== @@ -44,7 +44,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10": version "7.12.10" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== @@ -421,6 +421,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -654,6 +661,39 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-transform-react-display-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-jsx-development@^7.12.7": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz#bccca33108fe99d95d7f9e82046bfe762e71f4e7" + integrity sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.12.12" + +"@babel/plugin-transform-react-jsx@^7.12.10", "@babel/plugin-transform-react-jsx@^7.12.12": + version "7.12.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e" + integrity sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.10" + "@babel/helper-module-imports" "^7.12.5" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "^7.12.1" + "@babel/types" "^7.12.12" + +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-regenerator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" @@ -802,6 +842,17 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/preset-react@^7.12.10": + version "7.12.10" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.10.tgz#4fed65f296cbb0f5fb09de6be8cddc85cc909be9" + integrity sha512-vtQNjaHRl4DUpp+t+g4wvTHsLQuye+n0H/wsXIZRn69oz/fvNC7gQ4IK73zGJBaxvHoxElDvnYCthMcT7uzFoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.10" + "@babel/plugin-transform-react-jsx-development" "^7.12.7" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + "@babel/runtime-corejs3@^7.10.2": version "7.12.5" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz#ffee91da0eb4c6dae080774e94ba606368e414f4" @@ -1278,11 +1329,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/eslint-visitor-keys@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" - integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== - "@types/estree@*": version "0.0.46" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" @@ -1429,49 +1475,77 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^2.12.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9" - integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ== +"@typescript-eslint/eslint-plugin@^2.12.0", "@typescript-eslint/eslint-plugin@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.13.0.tgz#5f580ea520fa46442deb82c038460c3dd3524bb6" + integrity sha512-ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w== dependencies: - "@typescript-eslint/experimental-utils" "2.34.0" + "@typescript-eslint/experimental-utils" "4.13.0" + "@typescript-eslint/scope-manager" "4.13.0" + debug "^4.1.1" functional-red-black-tree "^1.0.1" + lodash "^4.17.15" regexpp "^3.0.0" + semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f" - integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA== +"@typescript-eslint/experimental-utils@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.13.0.tgz#9dc9ab375d65603b43d938a0786190a0c72be44e" + integrity sha512-/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.34.0" + "@typescript-eslint/scope-manager" "4.13.0" + "@typescript-eslint/types" "4.13.0" + "@typescript-eslint/typescript-estree" "4.13.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.12.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8" - integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA== +"@typescript-eslint/parser@^2.12.0", "@typescript-eslint/parser@^4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.13.0.tgz#c413d640ea66120cfcc37f891e8cb3fd1c9d247d" + integrity sha512-KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg== dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.34.0" - "@typescript-eslint/typescript-estree" "2.34.0" - eslint-visitor-keys "^1.1.0" + "@typescript-eslint/scope-manager" "4.13.0" + "@typescript-eslint/types" "4.13.0" + "@typescript-eslint/typescript-estree" "4.13.0" + debug "^4.1.1" -"@typescript-eslint/typescript-estree@2.34.0": - version "2.34.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5" - integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg== +"@typescript-eslint/scope-manager@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.13.0.tgz#5b45912a9aa26b29603d8fa28f5e09088b947141" + integrity sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ== dependencies: + "@typescript-eslint/types" "4.13.0" + "@typescript-eslint/visitor-keys" "4.13.0" + +"@typescript-eslint/types@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.13.0.tgz#6a7c6015a59a08fbd70daa8c83dfff86250502f8" + integrity sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ== + +"@typescript-eslint/typescript-estree@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.13.0.tgz#cf6e2207c7d760f5dfd8d18051428fadfc37b45e" + integrity sha512-9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg== + dependencies: + "@typescript-eslint/types" "4.13.0" + "@typescript-eslint/visitor-keys" "4.13.0" debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" + globby "^11.0.1" is-glob "^4.0.1" lodash "^4.17.15" semver "^7.3.2" tsutils "^3.17.1" +"@typescript-eslint/visitor-keys@4.13.0": + version "4.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.13.0.tgz#9acb1772d3b3183182b6540d3734143dce9476fe" + integrity sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g== + dependencies: + "@typescript-eslint/types" "4.13.0" + eslint-visitor-keys "^2.0.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -3609,6 +3683,11 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + eslint@^6.1.0: version "6.8.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" @@ -4252,7 +4331,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -8635,7 +8714,7 @@ tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3: +tslib@^2.0.3, tslib@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== @@ -8711,10 +8790,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^3.7.3, typescript@^3.9.7: - version "3.9.7" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa" - integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw== +typescript@^3.7.3, typescript@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" + integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4"