From 3e55df38faa660957a6d9cefc05a719055333e2a Mon Sep 17 00:00:00 2001 From: Ian MacFarland Date: Tue, 6 Apr 2021 17:24:34 -0700 Subject: [PATCH 1/3] shared eslint config for FE (pre-release) --- .eslintrc.json | 20 - .gitignore | 2 + package.json | 11 +- public-dashboard-client/.eslintrc.json | 6 - spotlight-client/.eslintrc.json | 87 +-- spotlight-client/package.json | 16 +- .../src/ModelHydrator/ModelHydrator.tsx | 2 + .../src/NarrativeLayout/NarrativeLayout.tsx | 4 +- .../src/UiLibrary/Dropdown/Dropdown.tsx | 18 +- .../DemographicsByCategoryMetric.ts | 4 +- .../HistoricalPopulationBreakdownMetric.ts | 4 +- .../PopulationBreakdownByLocationMetric.ts | 4 +- .../ProgramParticipationCurrentMetric.ts | 4 +- .../SentenceTypeByLocationMetric.ts | 4 +- .../SupervisionSuccessRateMetric.ts | 4 +- .../src/withRouteSync/withRouteSync.tsx | 2 + yarn.lock | 571 +++++++++++++++--- 17 files changed, 513 insertions(+), 250 deletions(-) delete mode 100644 .eslintrc.json delete mode 100644 public-dashboard-client/.eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 130a6079..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": ["react-app", "airbnb", "plugin:prettier/recommended"], - // unlike .eslintignore, these values will cascade - "ignorePatterns": ["node_modules/", "build/", "public/"], - "plugins": ["simple-import-sort"], - "rules": { - "react/jsx-filename-extension": ["error", { "extensions": [".js"] }], - "import/no-extraneous-dependencies": ["error", { "packageDir": "./" }], - "no-new": 1, - "react/jsx-props-no-spreading": 0, - "func-names": 0, - "react/jsx-wrap-multilines": [ - "error", - { "declaration": false, "assignment": false } - ], - // these rules conflict with prettier; let prettier win - "react/jsx-one-expression-per-line": 0, - "react/jsx-curly-newline": 0 - } -} diff --git a/.gitignore b/.gitignore index ca6694e5..505ba5ac 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,8 @@ build/ node_modules/ .pnp .pnp.js +.yalc +yalc.lock # Code coverage directory coverage/ diff --git a/package.json b/package.json index ea1cb30e..5e0074cc 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "workspaces": [ "public-dashboard-client", "spotlight-api", - "spotlight-client" + "spotlight-client", + ".yalc/*", + ".yalc/@*/*" ], "author": "Recidiviz ", "license": "GNU General Public License v3", @@ -23,13 +25,8 @@ }, "devDependencies": { "coveralls": "^3.1.0", - "eslint-config-airbnb": "^18.2.0", - "eslint-config-prettier": "^6.11.0", - "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-simple-import-sort": "^5.0.3", "husky": ">=4", - "npm-run-all": "^4.1.5", - "prettier": "^2.0.5" + "npm-run-all": "^4.1.5" }, "husky": { "hooks": { diff --git a/public-dashboard-client/.eslintrc.json b/public-dashboard-client/.eslintrc.json deleted file mode 100644 index 7df84c2b..00000000 --- a/public-dashboard-client/.eslintrc.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "env": { - "browser": true, - "jest": true - } -} diff --git a/spotlight-client/.eslintrc.json b/spotlight-client/.eslintrc.json index f37ea4ca..241e5e19 100644 --- a/spotlight-client/.eslintrc.json +++ b/spotlight-client/.eslintrc.json @@ -1,88 +1,3 @@ { - "env": { - "browser": true, - "jest": true - }, - "extends": [ - // explicitly extending the base config so we don't override its own "extends" field - "../.eslintrc.json" - ], - "overrides": [ - { - "extends": [ - // From @typescript-eslint/eslint-plugin - "plugin:@typescript-eslint/recommended", - // From eslint-config-prettier - "prettier/@typescript-eslint" - ], - "files": ["**.ts", "**.tsx"], - "parser": "@typescript-eslint/parser", - "rules": { - // with static typing this rule is not so useful - "consistent-return": "off", - // these bare ESLint rules are superseded by TS equivalents - "no-use-before-define": "off", - "@typescript-eslint/no-use-before-define": ["error"], - "no-shadow": "off", - "@typescript-eslint/no-shadow": "error", - - // TypeScript is largely redundant with PropTypes - "react/prop-types": "off" - } - } - ], - - "plugins": ["@typescript-eslint"], - "rules": { - // This is a living list! If an eslint rule does more harm than good, just - // add it below to override it. Write a comment above each rule explaining - // why the exception is made, so we know whether to keep it in the future. - - // don't require extensions for typescript modules - "import/extensions": [ - "error", - "always", - { "js": "never", "ts": "never", "tsx": "never" } - ], - - // make sure we are using the Babel macro for styled-components - "no-restricted-imports": [ - "error", - { - "paths": [ - { - "name": "styled-components", - "message": "Please import from styled-components/macro." - }, - { - "name": "react-spring", - "message": "For IE 11 support, please import from react-spring/web.cjs" - }, - { - "name": "react-spring/renderprops", - "message": "For IE 11 support, please import from react-spring/renderprops.cjs" - } - ] - } - ], - - // support typescript as well as javascript file extensions - "react/jsx-filename-extension": [ - "error", - { "extensions": [".tsx", ".js"] } - ], - - // this can conflict with Prettier - "react/jsx-indent": "off" - }, - "settings": { - "import/resolver": { - // use /tsconfig.json - "typescript": { - // always try to resolve types under `@types` directory - // even it doesn't contain any source code, like `@types/unist` - "alwaysTryTypes": true - } - } - } + "extends": ["@recidiviz"] } diff --git a/spotlight-client/package.json b/spotlight-client/package.json index dc77e2a2..81891517 100644 --- a/spotlight-client/package.json +++ b/spotlight-client/package.json @@ -95,16 +95,28 @@ "wait-for-localhost": "^3.3.0" }, "devDependencies": { + "@recidiviz/eslint-config": "file:.yalc/@recidiviz/eslint-config", "@segment/analytics.js-core": "^4.1.5", "@testing-library/jest-dom": "^5.11.1", "@testing-library/react": "^11.1.1", "@testing-library/user-event": "^12.7.0", "@types/jest": "^24.0.0", "@types/node": "^12.0.0", - "@typescript-eslint/eslint-plugin": "^4.4.0", - "@typescript-eslint/parser": "^4.4.0", "env-cmd": "^10.1.0", + "@typescript-eslint/parser": "^4.4.0", + "@typescript-eslint/eslint-plugin": "^4.4.0", + "eslint": "^6.6.0", "eslint-import-resolver-typescript": "^2.3.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-prettier": "^3.1.4", + "eslint-plugin-react": "^7.23.1", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^7.0.0", + "babel-eslint": "^10.0.0", + "prettier": "^2.2.1", + "eslint-plugin-flowtype": "^5.2.0", "jest-date-mock": "^1.0.8", "jest-environment-jsdom-sixteen": "^1.0.3", "jest-fetch-mock": "^3.0.3", diff --git a/spotlight-client/src/ModelHydrator/ModelHydrator.tsx b/spotlight-client/src/ModelHydrator/ModelHydrator.tsx index 2734286a..6aaeaea2 100644 --- a/spotlight-client/src/ModelHydrator/ModelHydrator.tsx +++ b/spotlight-client/src/ModelHydrator/ModelHydrator.tsx @@ -66,6 +66,8 @@ const ModelHydrator = ({ children, model, }: ModelHydratorProps): React.ReactElement => { + // this is fine, mobx autoruns don't need dependencies + // eslint-disable-next-line react-hooks/exhaustive-deps useEffect( autorun(() => { if (model.isLoading === undefined) { diff --git a/spotlight-client/src/NarrativeLayout/NarrativeLayout.tsx b/spotlight-client/src/NarrativeLayout/NarrativeLayout.tsx index aae83dc6..1f130c8a 100644 --- a/spotlight-client/src/NarrativeLayout/NarrativeLayout.tsx +++ b/spotlight-client/src/NarrativeLayout/NarrativeLayout.tsx @@ -55,9 +55,7 @@ type NarrativeLayoutProps = { }; const NarrativeLayout: React.FC = ({ sections }) => { - const sectionsContainerRef = useRef() as React.MutableRefObject< - HTMLDivElement - >; + const sectionsContainerRef = useRef() as React.MutableRefObject; const showSectionNavigation = useBreakpoint(true, ["mobile-", false]); // automated scrolling is a special case of section visibility; diff --git a/spotlight-client/src/UiLibrary/Dropdown/Dropdown.tsx b/spotlight-client/src/UiLibrary/Dropdown/Dropdown.tsx index 8858b3ea..6e5be1ec 100644 --- a/spotlight-client/src/UiLibrary/Dropdown/Dropdown.tsx +++ b/spotlight-client/src/UiLibrary/Dropdown/Dropdown.tsx @@ -22,14 +22,16 @@ import { OptionItem, OptionItemContents, useOptionColors } from "./common"; import DropdownBase from "./DropdownBase"; import { DropdownCommonProps, DropdownOption } from "./types"; -const Dropdown: React.FC void; - selectedId?: string; - } ->> = ({ selectedId, onChange, options, disabled, ...passThruProps }) => { +const Dropdown: React.FC< + Assign< + DropdownCommonProps, + { + options: (DropdownOption & { hidden?: boolean })[]; + onChange: (id: string) => void; + selectedId?: string; + } + > +> = ({ selectedId, onChange, options, disabled, ...passThruProps }) => { const visibleOptions = options.filter(({ hidden }) => !hidden); const selectedItem = options.find(({ id }) => id === selectedId); diff --git a/spotlight-client/src/contentModels/DemographicsByCategoryMetric.ts b/spotlight-client/src/contentModels/DemographicsByCategoryMetric.ts index 8877f118..11be8ca1 100644 --- a/spotlight-client/src/contentModels/DemographicsByCategoryMetric.ts +++ b/spotlight-client/src/contentModels/DemographicsByCategoryMetric.ts @@ -28,9 +28,7 @@ import { countUnknowns, hasUnknowns } from "./unknowns"; import Metric, { BaseMetricConstructorOptions } from "./Metric"; import { DemographicCategoryRecords, UnknownCounts } from "./types"; -export default class DemographicsByCategoryMetric extends Metric< - DemographicsByCategoryRecord -> { +export default class DemographicsByCategoryMetric extends Metric { // consumers can override to make all records the same color private readonly color?: string; diff --git a/spotlight-client/src/contentModels/HistoricalPopulationBreakdownMetric.ts b/spotlight-client/src/contentModels/HistoricalPopulationBreakdownMetric.ts index 71280a41..33f97606 100644 --- a/spotlight-client/src/contentModels/HistoricalPopulationBreakdownMetric.ts +++ b/spotlight-client/src/contentModels/HistoricalPopulationBreakdownMetric.ts @@ -78,9 +78,7 @@ function getMissingMonthsForSeries({ })); } -export default class HistoricalPopulationBreakdownMetric extends Metric< - HistoricalPopulationBreakdownRecord -> { +export default class HistoricalPopulationBreakdownMetric extends Metric { // UI needs to know this in order to configure proper viewing window dataIncludesCurrentMonth?: boolean; diff --git a/spotlight-client/src/contentModels/PopulationBreakdownByLocationMetric.ts b/spotlight-client/src/contentModels/PopulationBreakdownByLocationMetric.ts index 2fd03ffc..a4ffa317 100644 --- a/spotlight-client/src/contentModels/PopulationBreakdownByLocationMetric.ts +++ b/spotlight-client/src/contentModels/PopulationBreakdownByLocationMetric.ts @@ -34,9 +34,7 @@ import { countUnknowns, hasUnknowns } from "./unknowns"; import Metric, { BaseMetricConstructorOptions } from "./Metric"; import { DemographicCategoryRecords, UnknownCounts } from "./types"; -export default class PopulationBreakdownByLocationMetric extends Metric< - PopulationBreakdownByLocationRecord -> { +export default class PopulationBreakdownByLocationMetric extends Metric { readonly totalLabel: string; constructor( diff --git a/spotlight-client/src/contentModels/ProgramParticipationCurrentMetric.ts b/spotlight-client/src/contentModels/ProgramParticipationCurrentMetric.ts index be2cb5ac..f8cd7d76 100644 --- a/spotlight-client/src/contentModels/ProgramParticipationCurrentMetric.ts +++ b/spotlight-client/src/contentModels/ProgramParticipationCurrentMetric.ts @@ -21,9 +21,7 @@ import { ProgramParticipationCurrentRecord } from "../metricsApi"; import Metric, { BaseMetricConstructorOptions } from "./Metric"; import { LocalityDataMapping } from "./types"; -export default class ProgramParticipationCurrentMetric extends Metric< - ProgramParticipationCurrentRecord -> { +export default class ProgramParticipationCurrentMetric extends Metric { readonly mapData: MapData; constructor( diff --git a/spotlight-client/src/contentModels/SentenceTypeByLocationMetric.ts b/spotlight-client/src/contentModels/SentenceTypeByLocationMetric.ts index f2648905..b387ca24 100644 --- a/spotlight-client/src/contentModels/SentenceTypeByLocationMetric.ts +++ b/spotlight-client/src/contentModels/SentenceTypeByLocationMetric.ts @@ -40,9 +40,7 @@ type GraphEdge = { value: number; }; -export default class SentenceTypeByLocationMetric extends Metric< - SentenceTypeByLocationRecord -> { +export default class SentenceTypeByLocationMetric extends Metric { constructor( props: BaseMetricConstructorOptions ) { diff --git a/spotlight-client/src/contentModels/SupervisionSuccessRateMetric.ts b/spotlight-client/src/contentModels/SupervisionSuccessRateMetric.ts index cee665e6..40f693e9 100644 --- a/spotlight-client/src/contentModels/SupervisionSuccessRateMetric.ts +++ b/spotlight-client/src/contentModels/SupervisionSuccessRateMetric.ts @@ -56,9 +56,7 @@ function dataIncludesCurrentMonth( * both of which are required, that map to two different record formats. As a result * the core "records" property is not really useful and has been disabled. */ -export default class SupervisionSuccessRateMetric extends Metric< - SupervisionSuccessRateMonthlyRecord -> { +export default class SupervisionSuccessRateMetric extends Metric { demographicView: DemographicView = "total"; private readonly demographicSourceFileName: string; diff --git a/spotlight-client/src/withRouteSync/withRouteSync.tsx b/spotlight-client/src/withRouteSync/withRouteSync.tsx index 4a667059..a7148bbd 100644 --- a/spotlight-client/src/withRouteSync/withRouteSync.tsx +++ b/spotlight-client/src/withRouteSync/withRouteSync.tsx @@ -44,6 +44,8 @@ const withRouteSync = ( // catchall path for partially valid URLs; e.g. :tenantId/something-invalid Object.values(normalizedProps).includes(null) || path === "/*"; + // this is fine, we actually want this to run on every render + // eslint-disable-next-line react-hooks/exhaustive-deps useEffect( action("sync route params", () => { tenantStore.currentTenantId = normalizedProps.tenantId ?? undefined; diff --git a/yarn.lock b/yarn.lock index 00d39004..df532a84 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1595,18 +1595,18 @@ dependencies: component-type "^1.2.1" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== dependencies: - "@nodelib/fs.stat" "2.0.3" + "@nodelib/fs.stat" "2.0.4" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== "@nodelib/fs.stat@^1.1.2": version "1.1.3" @@ -1614,11 +1614,11 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== dependencies: - "@nodelib/fs.scandir" "2.1.3" + "@nodelib/fs.scandir" "2.1.4" fastq "^1.6.0" "@reach/auto-id@0.10.5": @@ -1774,6 +1774,13 @@ styled-components "^5.2.1" web-vitals "^1.0.1" +"@recidiviz/eslint-config@file:spotlight-client/.yalc/@recidiviz/eslint-config": + version "1.0.0" + dependencies: + eslint-config-airbnb "^18.2.0" + eslint-config-prettier "^8.1.0" + prettier "^2.2.1" + "@rollup/pluginutils@^3.0.9": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" @@ -2616,14 +2623,15 @@ tsutils "^3.17.1" "@typescript-eslint/eslint-plugin@^4.4.0": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.6.1.tgz#99d77eb7a016fd5a5e749d2c44a7e4c317eb7da3" - integrity sha512-SNZyflefTMK2JyrPfFFzzoy2asLmZvZJ6+/L5cIqg4HfKGiW2Gr1Go1OyEVqne/U4QwmoasuMwppoBHWBWF2nA== + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz#3fce2bfa76d95c00ac4f33dff369cb593aab8878" + integrity sha512-FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ== dependencies: - "@typescript-eslint/experimental-utils" "4.6.1" - "@typescript-eslint/scope-manager" "4.6.1" + "@typescript-eslint/experimental-utils" "4.21.0" + "@typescript-eslint/scope-manager" "4.21.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" @@ -2638,15 +2646,15 @@ eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/experimental-utils@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.6.1.tgz#a9c691dfd530a9570274fe68907c24c07a06c4aa" - integrity sha512-qyPqCFWlHZXkEBoV56UxHSoXW2qnTr4JrWVXOh3soBP3q0o7p4pUEMfInDwIa0dB/ypdtm7gLOS0hg0a73ijfg== +"@typescript-eslint/experimental-utils@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz#0b0bb7c15d379140a660c003bdbafa71ae9134b6" + integrity sha512-cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.6.1" - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/typescript-estree" "4.6.1" + "@typescript-eslint/scope-manager" "4.21.0" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/typescript-estree" "4.21.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" @@ -2661,27 +2669,27 @@ eslint-visitor-keys "^1.1.0" "@typescript-eslint/parser@^4.4.0": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.6.1.tgz#b801bff67b536ecc4a840ac9289ba2be57e02428" - integrity sha512-lScKRPt1wM9UwyKkGKyQDqf0bh6jm8DQ5iN37urRIXDm16GEv+HGEmum2Fc423xlk5NUOkOpfTnKZc/tqKZkDQ== + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.21.0.tgz#a227fc2af4001668c3e3f7415d4feee5093894c1" + integrity sha512-eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA== dependencies: - "@typescript-eslint/scope-manager" "4.6.1" - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/typescript-estree" "4.6.1" + "@typescript-eslint/scope-manager" "4.21.0" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/typescript-estree" "4.21.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.6.1.tgz#21872b91cbf7adfc7083f17b8041149148baf992" - integrity sha512-f95+80r6VdINYscJY1KDUEDcxZ3prAWHulL4qRDfNVD0I5QAVSGqFkwHERDoLYJJWmEAkUMdQVvx7/c2Hp+Bjg== +"@typescript-eslint/scope-manager@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz#c81b661c4b8af1ec0c010d847a8f9ab76ab95b4d" + integrity sha512-kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw== dependencies: - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/visitor-keys" "4.6.1" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/visitor-keys" "4.21.0" -"@typescript-eslint/types@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.6.1.tgz#d3ad7478f53f22e7339dc006ab61aac131231552" - integrity sha512-k2ZCHhJ96YZyPIsykickez+OMHkz06xppVLfJ+DY90i532/Cx2Z+HiRMH8YZQo7a4zVd/TwNBuRCdXlGK4yo8w== +"@typescript-eslint/types@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.21.0.tgz#abdc3463bda5d31156984fa5bc316789c960edef" + integrity sha512-+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w== "@typescript-eslint/typescript-estree@2.34.0": version "2.34.0" @@ -2696,26 +2704,25 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/typescript-estree@4.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.6.1.tgz#6025cce724329413f57e4959b2d676fceeca246f" - integrity sha512-/J/kxiyjQQKqEr5kuKLNQ1Finpfb8gf/NpbwqFFYEBjxOsZ621r9AqwS9UDRA1Rrr/eneX/YsbPAIhU2rFLjXQ== +"@typescript-eslint/typescript-estree@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz#3817bd91857beeaeff90f69f1f112ea58d350b0a" + integrity sha512-ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w== dependencies: - "@typescript-eslint/types" "4.6.1" - "@typescript-eslint/visitor-keys" "4.6.1" + "@typescript-eslint/types" "4.21.0" + "@typescript-eslint/visitor-keys" "4.21.0" debug "^4.1.1" 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.6.1": - version "4.6.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.6.1.tgz#6b125883402d8939df7b54528d879e88f7ba3614" - integrity sha512-owABze4toX7QXwOLT3/D5a8NecZEjEWU1srqxENTfqsY3bwVnl3YYbOh6s1rp2wQKO9RTHFGjKes08FgE7SVMw== +"@typescript-eslint/visitor-keys@4.21.0": + version "4.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz#990a9acdc124331f5863c2cf21c88ba65233cd8d" + integrity sha512-dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w== dependencies: - "@typescript-eslint/types" "4.6.1" + "@typescript-eslint/types" "4.21.0" eslint-visitor-keys "^2.0.0" "@w11r/use-breakpoint@^1.7.0": @@ -3216,6 +3223,17 @@ array-includes@^3.0.3, array-includes@^3.1.1: es-abstract "^1.17.0" is-string "^1.0.5" +array-includes@^3.1.2, array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -3254,6 +3272,25 @@ array.prototype.flat@^1.2.1: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -3391,7 +3428,12 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axobject-query@^2.0.2: +axe-core@^4.0.2: + version "4.1.4" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.4.tgz#f19cd99a84ee32a318b9c5b5bb8ed373ad94f143" + integrity sha512-Pdgfv6iP0gNx9ejRGa3zE7Xgkj/iclXqLfe7BnatdZz0QnLZ3jrRHUVH8wNSdN68w05Sk3ShGTb3ydktMTooig== + +axobject-query@^2.0.2, axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== @@ -3405,7 +3447,7 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-eslint@10.1.0: +babel-eslint@10.1.0, babel-eslint@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== @@ -4037,6 +4079,14 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^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" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -4590,7 +4640,7 @@ configstore@^5.0.0, configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -confusing-browser-globals@^1.0.9: +confusing-browser-globals@^1.0.10, confusing-browser-globals@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== @@ -5517,7 +5567,7 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -damerau-levenshtein@^1.0.4: +damerau-levenshtein@^1.0.4, damerau-levenshtein@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== @@ -6087,6 +6137,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -6209,6 +6264,28 @@ es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" +es-abstract@^1.18.0-next.2: + version "1.18.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" + integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.2" + is-string "^1.0.5" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.0" + es-cookie@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/es-cookie/-/es-cookie-1.3.2.tgz#80e831597f72a25721701bdcb21d990319acd831" @@ -6309,12 +6386,10 @@ eslint-config-airbnb@^18.2.0: object.assign "^4.1.0" object.entries "^1.1.2" -eslint-config-prettier@^6.11.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" - integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== - dependencies: - get-stdin "^6.0.0" +eslint-config-prettier@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz#4ef1eaf97afe5176e6a75ddfb57c335121abc5a6" + integrity sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw== eslint-config-react-app@^5.2.1: version "5.2.1" @@ -6323,7 +6398,14 @@ eslint-config-react-app@^5.2.1: dependencies: confusing-browser-globals "^1.0.9" -eslint-import-resolver-node@^0.3.2: +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== + dependencies: + confusing-browser-globals "^1.0.10" + +eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== @@ -6332,9 +6414,9 @@ eslint-import-resolver-node@^0.3.2: resolve "^1.13.1" eslint-import-resolver-typescript@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.3.0.tgz#0870988098bc6c6419c87705e6b42bee89425445" - integrity sha512-MHSXvmj5e0SGOOBhBbt7C+fWj1bJbtSYFAD85Xeg8nvUtuooTod2HQb8bfhE9f5QyyNxEfgzqOYFCvmdDIcCuw== + version "2.4.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.4.0.tgz#ec1e7063ebe807f0362a7320543aaed6fe1100e1" + integrity sha512-useJKURidCcldRLCNKWemr1fFQL1SzB3G4a0li6lFGvlc5xGe1hY343bvG07cbpCzPuM/lK19FIJB3XGFSkplA== dependencies: debug "^4.1.1" glob "^7.1.6" @@ -6353,7 +6435,7 @@ eslint-loader@3.0.3: object-hash "^2.0.1" schema-utils "^2.6.1" -eslint-module-utils@^2.4.1: +eslint-module-utils@^2.4.1, eslint-module-utils@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== @@ -6368,6 +6450,14 @@ eslint-plugin-flowtype@4.6.0: dependencies: lodash "^4.17.15" +eslint-plugin-flowtype@^5.2.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.6.0.tgz#9ddba1ce31990c53e144b3a545b7c74b1d164fd9" + integrity sha512-XbeDejiL+SecDInj9On/9D4EM31kUp6B3uWYsBH6Vsb2CfaFWiUHvosAZx1TafVjp6izLC7D3kpix1DIpDF4Qw== + dependencies: + lodash "^4.17.15" + string-natural-compare "^3.0.1" + eslint-plugin-import@2.20.1: version "2.20.1" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3" @@ -6386,6 +6476,25 @@ eslint-plugin-import@2.20.1: read-pkg-up "^2.0.0" resolve "^1.12.0" +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + eslint-plugin-jsx-a11y@6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" @@ -6401,10 +6510,27 @@ eslint-plugin-jsx-a11y@6.2.3: has "^1.0.3" jsx-ast-utils "^2.2.1" +eslint-plugin-jsx-a11y@^6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + eslint-plugin-prettier@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" - integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7" + integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ== dependencies: prettier-linter-helpers "^1.0.0" @@ -6413,6 +6539,11 @@ eslint-plugin-react-hooks@^1.6.1: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== +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.19.0: version "7.19.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" @@ -6431,10 +6562,28 @@ eslint-plugin-react@7.19.0: string.prototype.matchall "^4.0.2" xregexp "^4.3.0" -eslint-plugin-simple-import-sort@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-5.0.3.tgz#9ae258ddada6efffc55e47a134afbd279eb31fc6" - integrity sha512-1rf3AWiHeWNCQdAq0iXNnlccnH1UDnelGgrPbjBBHE8d2hXVtOudcmy0vTF4hri3iJ0MKz8jBhmH6lJ0ZWZLHQ== +eslint-plugin-react@^7.23.1: + version "7.23.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz#f1a2e844c0d1967c822388204a8bc4dee8415b11" + integrity sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.3" + object.fromentries "^2.0.4" + object.values "^1.1.3" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.4" + +eslint-plugin-simple-import-sort@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" + integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== eslint-scope@^4.0.3: version "4.0.3" @@ -6805,9 +6954,9 @@ fast-glob@^2.0.2: micromatch "^3.1.10" fast-glob@^3.1.1: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -6837,9 +6986,9 @@ fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: integrity sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig== fastq@^1.6.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.9.0.tgz#e16a72f338eaca48e91b5c23593bcc2ef66b7947" - integrity sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w== + version "1.11.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" + integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== dependencies: reusify "^1.0.4" @@ -7340,6 +7489,15 @@ get-intrinsic@^1.0.0: has "^1.0.3" has-symbols "^1.0.1" +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-node-dimensions@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/get-node-dimensions/-/get-node-dimensions-1.2.1.tgz#fb7b4bb57060fb4247dd51c9d690dfbec56b0823" @@ -7350,11 +7508,6 @@ get-own-enumerable-property-symbols@^3.0.0: resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -7394,13 +7547,20 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" +glob-parent@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" @@ -7467,9 +7627,9 @@ globby@8.0.2: slash "^1.0.0" globby@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + version "11.0.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" + integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -7596,6 +7756,11 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + has-cors@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" @@ -7616,6 +7781,11 @@ has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -8234,6 +8404,15 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + internmap@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" @@ -8305,6 +8484,11 @@ is-arrayish@^0.3.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-bigint@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" + integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -8319,6 +8503,13 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" + integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + dependencies: + call-bind "^1.0.0" + is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -8329,6 +8520,11 @@ is-callable@^1.1.4, is-callable@^1.2.2: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== +is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -8355,6 +8551,13 @@ is-core-module@^2.0.0: dependencies: has "^1.0.3" +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + 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" @@ -8473,11 +8676,21 @@ is-negative-zero@^2.0.0: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + is-npm@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-number-object@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" + integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -8553,6 +8766,14 @@ is-regex@^1.0.4, is-regex@^1.1.0, is-regex@^1.1.1: dependencies: has-symbols "^1.0.1" +is-regex@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -8590,7 +8811,7 @@ is-svg@^3.0.0: dependencies: html-comment-regex "^1.1.0" -is-symbol@^1.0.2: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== @@ -9447,6 +9668,14 @@ jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: array-includes "^3.1.1" object.assign "^4.1.0" +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + jszip@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" @@ -9527,6 +9756,18 @@ labella@1.1.4: resolved "https://registry.yarnpkg.com/labella/-/labella-1.1.4.tgz#c6cc5a340e8df340eb335633683ea59b828c322d" integrity sha1-xsxaNA6N80DrM1YzaD6lm4KMMi0= +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -10665,6 +10906,11 @@ object-inspect@^1.8.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + object-is@^1.0.1, object-is@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81" @@ -10700,7 +10946,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0, object.assign@^4.1.1: +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== @@ -10719,6 +10965,16 @@ object.entries@^1.1.0, object.entries@^1.1.1, object.entries@^1.1.2: es-abstract "^1.17.5" has "^1.0.3" +object.entries@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + object.fromentries@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" @@ -10729,6 +10985,16 @@ object.fromentries@^2.0.2: function-bind "^1.1.1" has "^1.0.3" +object.fromentries@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" @@ -10754,6 +11020,16 @@ object.values@^1.1.0, object.values@^1.1.1: function-bind "^1.1.1" has "^1.0.3" +object.values@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" + integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -12039,10 +12315,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.0.5: - version "2.1.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" - integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== +prettier@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" + integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== pretty-bytes@^5.1.0: version "5.4.1" @@ -12310,6 +12586,11 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + raf@^3.3.0, raf@^3.4.1: version "3.4.1" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -12857,6 +13138,14 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" +regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" @@ -13053,7 +13342,7 @@ resolve@1.15.0: dependencies: path-parse "^1.0.6" -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.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== @@ -13061,6 +13350,22 @@ resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.1 is-core-module "^2.0.0" path-parse "^1.0.6" +resolve@^1.17.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -13184,9 +13489,11 @@ run-async@^2.2.0, run-async@^2.4.0: integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" - integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" @@ -13633,6 +13940,15 @@ side-channel@^1.0.2: es-abstract "^1.18.0-next.0" object-inspect "^1.8.0" +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" @@ -14029,6 +14345,11 @@ string-length@^3.1.0: astral-regex "^1.0.0" strip-ansi "^5.2.0" +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + string-strip-html@^8.2.2: version "8.2.2" resolved "https://registry.yarnpkg.com/string-strip-html/-/string-strip-html-8.2.2.tgz#c2e9947f3f8b0ffeb3ed012fd3be2f4d3b4a0bad" @@ -14112,6 +14433,19 @@ string.prototype.matchall@^4.0.2: regexp.prototype.flags "^1.3.0" side-channel "^1.0.2" +string.prototype.matchall@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has-symbols "^1.0.1" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + string.prototype.padend@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" @@ -14128,6 +14462,14 @@ string.prototype.trimend@^1.0.1: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + string.prototype.trimstart@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" @@ -14136,6 +14478,14 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.18.0-next.1" +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -14898,6 +15248,16 @@ ua-parser-js@^0.7.18: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== +unbox-primitive@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + undefsafe@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae" @@ -15474,6 +15834,17 @@ whatwg-url@^8.0.0: tr46 "^2.0.2" webidl-conversions "^6.1.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" From 40e2df1da64f98bacc08320c98d5f1359ecdad50 Mon Sep 17 00:00:00 2001 From: Ian MacFarland Date: Tue, 6 Apr 2021 17:36:19 -0700 Subject: [PATCH 2/3] eslint config (pre-release) for other packages --- package.json | 4 +--- public-dashboard-client/.eslintrc.json | 1 + public-dashboard-client/package.json | 17 ++++++++++++++++- public-dashboard-client/src/App.js | 2 +- .../aspect-ratio-wrapper/AspectRatioWrapper.js | 2 +- .../src/bar-chart-trellis/BarChartTrellis.js | 2 +- .../src/branding-bar/BrandingBar.js | 2 +- .../src/bubble-chart/BubbleChart.js | 2 +- .../src/chart-error/ChartError.js | 2 +- .../src/chart-wrapper/ChartWrapper.js | 2 +- .../src/cobranding/Cobranding.js | 2 +- .../src/color-legend/ColorLegend.js | 2 +- .../src/controls/CohortSelect.js | 2 +- .../src/controls/Dropdown.js | 2 +- .../src/controls/MonthControl.js | 2 +- public-dashboard-client/src/controls/shared.js | 2 +- .../src/detail-page/DetailPage.js | 2 +- .../src/disclaimer/Disclaimer.js | 2 +- .../download-data-modal/DownloadDataModal.js | 2 +- public-dashboard-client/src/footer/Footer.js | 2 +- .../src/heading/HeadingDescription.js | 2 +- .../src/heading/HeadingTitle.js | 2 +- .../src/info-panel/InfoPanel.js | 2 +- public-dashboard-client/src/loading/Loading.js | 2 +- .../src/methodology-modal/MethodologyModal.js | 2 +- public-dashboard-client/src/modal/Modal.js | 2 +- .../src/modal/ModalDialog.js | 2 +- .../src/monthly-timeseries/MonthlyTimeseries.js | 2 +- public-dashboard-client/src/nav-bar/NavBar.js | 2 +- .../src/page-error/PageError.js | 2 +- .../src/page-not-found/PageNotFound.js | 2 +- .../src/page-overview/PageOverview.js | 2 +- .../src/page-prison/PagePrison.js | 2 +- .../PageRacialDisparities.js | 2 +- .../VizPopulationDisparity.js | 2 +- .../VizPopulationFocus.js | 2 +- .../VizRevocationDisparity.js | 2 +- .../src/page-racial-disparities/helpers.js | 2 +- .../src/page-routes/PageRoutes.js | 2 +- .../page-width-container/PageWidthContainer.js | 2 +- public-dashboard-client/src/pill/LinkPill.js | 2 +- public-dashboard-client/src/pill/shared.js | 2 +- .../src/population-viz/PopulationViz.js | 2 +- .../src/proportional-bar/ProportionalBar.js | 2 +- .../src/secondary-nav/SecondaryNav.js | 2 +- .../sentence-types-chart/SentenceTypesChart.js | 2 +- .../single-dimension-viz/SingleDimensionViz.js | 2 +- .../src/site-layout/SiteLayout.js | 2 +- .../src/site-styles/SiteStyles.js | 2 +- .../src/state-county-map/StateCountyMap.js | 2 +- .../StateJudicialDistrictMap.js | 2 +- .../src/state-map/StateMap.js | 6 +++--- .../src/state-program-map/StateProgramMap.js | 2 +- .../src/statistic/Statistic.js | 2 +- public-dashboard-client/src/testUtils.js | 2 +- .../src/text-link/TextLink.js | 2 +- public-dashboard-client/src/tooltip/Tooltip.js | 2 +- .../src/utils/fluidFontSizeStyles.js | 2 +- .../VizPopulationOverTime.js | 2 +- .../RecidivismRatesChart.js | 2 +- .../viz-recidivism-rates/VizRecidivismRates.js | 1 + .../VizRecidivismSingleFollowup.js | 2 +- .../viz-sentence-lengths/VizSentenceLengths.js | 2 +- .../src/viz-sentence-types/VizSentenceTypes.js | 2 +- .../VizSupervisionProgram.js | 2 +- .../VizSupervisionSuccess.js | 2 +- .../src/x-hover-controller/XHoverController.js | 2 +- spotlight-api/.eslintrc.json | 1 + spotlight-api/package.json | 12 ++++++++++++ yarn.lock | 14 ++++++++++++++ 70 files changed, 111 insertions(+), 69 deletions(-) create mode 100644 public-dashboard-client/.eslintrc.json diff --git a/package.json b/package.json index 5e0074cc..1e8009df 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,7 @@ "workspaces": [ "public-dashboard-client", "spotlight-api", - "spotlight-client", - ".yalc/*", - ".yalc/@*/*" + "spotlight-client" ], "author": "Recidiviz ", "license": "GNU General Public License v3", diff --git a/public-dashboard-client/.eslintrc.json b/public-dashboard-client/.eslintrc.json new file mode 100644 index 00000000..b08bb9ca --- /dev/null +++ b/public-dashboard-client/.eslintrc.json @@ -0,0 +1 @@ +{ "extends": "@recidiviz" } diff --git a/public-dashboard-client/package.json b/public-dashboard-client/package.json index 8a6717bb..5271afd4 100644 --- a/public-dashboard-client/package.json +++ b/public-dashboard-client/package.json @@ -16,6 +16,7 @@ "test": "react-scripts test" }, "dependencies": { + "//": "TODO(#236): unpin & upgrade styled-components after bugfix", "@accessible/slider": "^2.0.2", "@reach/auto-id": "^0.11.2", "@reach/menu-button": "^0.10.5", @@ -49,16 +50,30 @@ "react-sticky": "^6.0.3", "semiotic": "^1.20.5", "set-order": "^0.3.5", - "//": "TODO(#236): unpin & upgrade styled-components after bugfix", "styled-components": "5.1.1", "styled-normalize": "^8.0.7", "topojson": "^3.0.2" }, "devDependencies": { + "@recidiviz/eslint-config": "file:.yalc/@recidiviz/eslint-config", "@testing-library/dom": "^7.26.3", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^12.1.10", + "@typescript-eslint/parser": "^4.4.0", + "@typescript-eslint/eslint-plugin": "^4.4.0", + "eslint": "^6.6.0", + "eslint-import-resolver-typescript": "^2.3.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-prettier": "^3.1.4", + "eslint-plugin-react": "^7.23.1", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-simple-import-sort": "^7.0.0", + "babel-eslint": "^10.0.0", + "prettier": "^2.2.1", + "eslint-plugin-flowtype": "^5.2.0", "jest-date-mock": "^1.0.8", "lint-staged": ">=10" }, diff --git a/public-dashboard-client/src/App.js b/public-dashboard-client/src/App.js index 22191428..becb34e3 100644 --- a/public-dashboard-client/src/App.js +++ b/public-dashboard-client/src/App.js @@ -2,7 +2,7 @@ import { Router, Redirect } from "@reach/router"; import { setup as setupBreakpoints } from "@w11r/use-breakpoint"; import React from "react"; import { Helmet } from "react-helmet"; -import { ThemeProvider } from "styled-components"; +import { ThemeProvider } from "styled-components/macro"; import { CUSTOM_BREAKPOINTS, DEFAULT_TENANT } from "./constants"; import { InfoPanelProvider } from "./info-panel"; import SiteStyles from "./site-styles"; diff --git a/public-dashboard-client/src/aspect-ratio-wrapper/AspectRatioWrapper.js b/public-dashboard-client/src/aspect-ratio-wrapper/AspectRatioWrapper.js index 70d50792..0e9dfb40 100644 --- a/public-dashboard-client/src/aspect-ratio-wrapper/AspectRatioWrapper.js +++ b/public-dashboard-client/src/aspect-ratio-wrapper/AspectRatioWrapper.js @@ -1,6 +1,6 @@ import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; // implements a version of the Aspect Ratio Box technique described here: // https://github.com/zcreativelabs/react-simple-maps/issues/37#issuecomment-349435145 diff --git a/public-dashboard-client/src/bar-chart-trellis/BarChartTrellis.js b/public-dashboard-client/src/bar-chart-trellis/BarChartTrellis.js index 441dfa62..55567621 100644 --- a/public-dashboard-client/src/bar-chart-trellis/BarChartTrellis.js +++ b/public-dashboard-client/src/bar-chart-trellis/BarChartTrellis.js @@ -18,7 +18,7 @@ import PropTypes from "prop-types"; import React, { useState, useCallback } from "react"; import { FacetController, OrdinalFrame } from "semiotic"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ChartWrapper from "../chart-wrapper"; import ResponsiveTooltipController from "../responsive-tooltip-controller"; import { THEME } from "../theme"; diff --git a/public-dashboard-client/src/branding-bar/BrandingBar.js b/public-dashboard-client/src/branding-bar/BrandingBar.js index f721fdaf..e06547b1 100644 --- a/public-dashboard-client/src/branding-bar/BrandingBar.js +++ b/public-dashboard-client/src/branding-bar/BrandingBar.js @@ -3,7 +3,7 @@ import useBreakpoint, { mediaQuery } from "@w11r/use-breakpoint"; import classNames from "classnames"; import React from "react"; import useCollapse from "react-collapsed"; -import styled, { css } from "styled-components"; +import styled, { css } from "styled-components/macro"; import MenuClosedIconSrc from "../assets/icons/menuClosed.svg"; import MenuOpenIconSrc from "../assets/icons/menuOpen.svg"; import ExternalLinkSrc from "../assets/icons/externalLink.svg"; diff --git a/public-dashboard-client/src/bubble-chart/BubbleChart.js b/public-dashboard-client/src/bubble-chart/BubbleChart.js index 726d240f..7f41fecf 100644 --- a/public-dashboard-client/src/bubble-chart/BubbleChart.js +++ b/public-dashboard-client/src/bubble-chart/BubbleChart.js @@ -5,7 +5,7 @@ import forceLimit from "d3-force-limit"; import { scaleSqrt } from "d3-scale"; import React, { useState } from "react"; import NetworkFrame from "semiotic/lib/NetworkFrame"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ColorLegend from "../color-legend"; import ResponsiveTooltipController from "../responsive-tooltip-controller"; import { THEME } from "../theme"; diff --git a/public-dashboard-client/src/chart-error/ChartError.js b/public-dashboard-client/src/chart-error/ChartError.js index 795d3d94..824c4460 100644 --- a/public-dashboard-client/src/chart-error/ChartError.js +++ b/public-dashboard-client/src/chart-error/ChartError.js @@ -1,5 +1,5 @@ import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; const Wrapper = styled.div` align-items: center; diff --git a/public-dashboard-client/src/chart-wrapper/ChartWrapper.js b/public-dashboard-client/src/chart-wrapper/ChartWrapper.js index 610c7860..f6fddb24 100644 --- a/public-dashboard-client/src/chart-wrapper/ChartWrapper.js +++ b/public-dashboard-client/src/chart-wrapper/ChartWrapper.js @@ -15,7 +15,7 @@ // along with this program. If not, see . // ============================================================================= -import styled from "styled-components"; +import styled from "styled-components/macro"; const ChartWrapper = styled.div` /* classes provided by Semiotic */ diff --git a/public-dashboard-client/src/cobranding/Cobranding.js b/public-dashboard-client/src/cobranding/Cobranding.js index cf3364ca..9393a4c6 100644 --- a/public-dashboard-client/src/cobranding/Cobranding.js +++ b/public-dashboard-client/src/cobranding/Cobranding.js @@ -1,6 +1,6 @@ import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import cobrandingSrc from "../assets/images/us_nd_cobranding.png"; import cobrandingLightSrc from "../assets/images/us_nd_cobranding_light.png"; diff --git a/public-dashboard-client/src/color-legend/ColorLegend.js b/public-dashboard-client/src/color-legend/ColorLegend.js index 6c6b1dd4..01c2df65 100644 --- a/public-dashboard-client/src/color-legend/ColorLegend.js +++ b/public-dashboard-client/src/color-legend/ColorLegend.js @@ -1,7 +1,7 @@ import classNames from "classnames"; import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { highlightFade } from "../utils"; const ColorLegendWrapper = styled.div` diff --git a/public-dashboard-client/src/controls/CohortSelect.js b/public-dashboard-client/src/controls/CohortSelect.js index fb533bab..657404b5 100644 --- a/public-dashboard-client/src/controls/CohortSelect.js +++ b/public-dashboard-client/src/controls/CohortSelect.js @@ -21,7 +21,7 @@ import { ascending } from "d3-array"; import { useSelect } from "downshift"; import PropTypes from "prop-types"; import React, { useState, useEffect } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import checkMarkPath from "../assets/icons/checkMark.svg"; import { ControlLabel, diff --git a/public-dashboard-client/src/controls/Dropdown.js b/public-dashboard-client/src/controls/Dropdown.js index 220ecbaf..adf6645a 100644 --- a/public-dashboard-client/src/controls/Dropdown.js +++ b/public-dashboard-client/src/controls/Dropdown.js @@ -27,7 +27,7 @@ import { MenuItems, MenuPopover, } from "@reach/menu-button"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { ControlContainer, ControlLabel, diff --git a/public-dashboard-client/src/controls/MonthControl.js b/public-dashboard-client/src/controls/MonthControl.js index 92db81fa..7b6a1389 100644 --- a/public-dashboard-client/src/controls/MonthControl.js +++ b/public-dashboard-client/src/controls/MonthControl.js @@ -1,6 +1,6 @@ import { Slider, Track, Thumb } from "@accessible/slider"; import React, { useEffect, useState } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import PropTypes from "prop-types"; import { ControlContainer, ControlLabel, ControlValue } from "./shared"; diff --git a/public-dashboard-client/src/controls/shared.js b/public-dashboard-client/src/controls/shared.js index 84ab74b7..fa1f5909 100644 --- a/public-dashboard-client/src/controls/shared.js +++ b/public-dashboard-client/src/controls/shared.js @@ -16,7 +16,7 @@ // ============================================================================= import PropTypes from "prop-types"; -import styled, { css } from "styled-components"; +import styled, { css } from "styled-components/macro"; import { PillContainer, PillValue } from "../pill"; diff --git a/public-dashboard-client/src/detail-page/DetailPage.js b/public-dashboard-client/src/detail-page/DetailPage.js index 9452c1f8..bf179ff3 100644 --- a/public-dashboard-client/src/detail-page/DetailPage.js +++ b/public-dashboard-client/src/detail-page/DetailPage.js @@ -23,7 +23,7 @@ import React, { useState } from "react"; import Measure from "react-measure"; import { StickyContainer, Sticky } from "react-sticky"; import { exact, tail } from "set-order"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ChartError from "../chart-error"; import { COLLAPSIBLE_NAV_BREAKPOINT, diff --git a/public-dashboard-client/src/disclaimer/Disclaimer.js b/public-dashboard-client/src/disclaimer/Disclaimer.js index f8319044..37dc95dc 100644 --- a/public-dashboard-client/src/disclaimer/Disclaimer.js +++ b/public-dashboard-client/src/disclaimer/Disclaimer.js @@ -1,7 +1,7 @@ import { mediaQuery } from "@w11r/use-breakpoint"; import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { COLLAPSIBLE_NAV_BREAKPOINT } from "../constants"; const SMALL_DATA = ( diff --git a/public-dashboard-client/src/download-data-modal/DownloadDataModal.js b/public-dashboard-client/src/download-data-modal/DownloadDataModal.js index b62b9ef1..c8237ac4 100644 --- a/public-dashboard-client/src/download-data-modal/DownloadDataModal.js +++ b/public-dashboard-client/src/download-data-modal/DownloadDataModal.js @@ -1,6 +1,6 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { HeadingDescription, HeadingTitle } from "../heading"; import { LinkPill } from "../pill"; diff --git a/public-dashboard-client/src/footer/Footer.js b/public-dashboard-client/src/footer/Footer.js index 3ff6a204..fc930170 100644 --- a/public-dashboard-client/src/footer/Footer.js +++ b/public-dashboard-client/src/footer/Footer.js @@ -1,5 +1,5 @@ import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import classNames from "classnames"; import { getYear } from "date-fns"; import useBreakpoint from "@w11r/use-breakpoint"; diff --git a/public-dashboard-client/src/heading/HeadingDescription.js b/public-dashboard-client/src/heading/HeadingDescription.js index c65fefc0..5d03311c 100644 --- a/public-dashboard-client/src/heading/HeadingDescription.js +++ b/public-dashboard-client/src/heading/HeadingDescription.js @@ -1,5 +1,5 @@ import { mediaQuery } from "@w11r/use-breakpoint"; -import styled from "styled-components"; +import styled from "styled-components/macro"; const HeadingDescription = styled.div` font-size: 24px; diff --git a/public-dashboard-client/src/heading/HeadingTitle.js b/public-dashboard-client/src/heading/HeadingTitle.js index 07b4ab0a..60c46507 100644 --- a/public-dashboard-client/src/heading/HeadingTitle.js +++ b/public-dashboard-client/src/heading/HeadingTitle.js @@ -1,5 +1,5 @@ import { mediaQuery } from "@w11r/use-breakpoint"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { THEME } from "../theme"; const HeadingTitle = styled.h1` diff --git a/public-dashboard-client/src/info-panel/InfoPanel.js b/public-dashboard-client/src/info-panel/InfoPanel.js index 23d6ca97..eee9b929 100644 --- a/public-dashboard-client/src/info-panel/InfoPanel.js +++ b/public-dashboard-client/src/info-panel/InfoPanel.js @@ -1,7 +1,7 @@ import useBreakpoint from "@w11r/use-breakpoint"; import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { ReactComponent as MenuOpenIcon } from "../assets/icons/menuOpen.svg"; import { useInfoPanelDispatch } from "./InfoPanelContext"; diff --git a/public-dashboard-client/src/loading/Loading.js b/public-dashboard-client/src/loading/Loading.js index b34d36d7..bb864f4f 100644 --- a/public-dashboard-client/src/loading/Loading.js +++ b/public-dashboard-client/src/loading/Loading.js @@ -1,6 +1,6 @@ import useBreakpoint, { mediaQuery } from "@w11r/use-breakpoint"; import React from "react"; -import styled, { keyframes } from "styled-components"; +import styled, { keyframes } from "styled-components/macro"; import { HeadingTitle } from "../heading"; import { ReactComponent as SpinnerIcon } from "../assets/icons/spinner.svg"; diff --git a/public-dashboard-client/src/methodology-modal/MethodologyModal.js b/public-dashboard-client/src/methodology-modal/MethodologyModal.js index bc0785d7..9925e25e 100644 --- a/public-dashboard-client/src/methodology-modal/MethodologyModal.js +++ b/public-dashboard-client/src/methodology-modal/MethodologyModal.js @@ -1,6 +1,6 @@ import React, { useState } from "react"; import PropTypes from "prop-types"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { PATHS, SECTION_TITLES, ALL_PAGES } from "../constants"; import { HeadingDescription, HeadingTitle } from "../heading"; diff --git a/public-dashboard-client/src/modal/Modal.js b/public-dashboard-client/src/modal/Modal.js index 90a5e643..948a6903 100644 --- a/public-dashboard-client/src/modal/Modal.js +++ b/public-dashboard-client/src/modal/Modal.js @@ -1,6 +1,6 @@ import React from "react"; import PropTypes from "prop-types"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ModalDialog from "./ModalDialog"; diff --git a/public-dashboard-client/src/modal/ModalDialog.js b/public-dashboard-client/src/modal/ModalDialog.js index 12ed5c44..e9d0bfb2 100644 --- a/public-dashboard-client/src/modal/ModalDialog.js +++ b/public-dashboard-client/src/modal/ModalDialog.js @@ -1,7 +1,7 @@ import React, { useRef } from "react"; import ReactDOM from "react-dom"; import PropTypes from "prop-types"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import useBreakpoint from "@w11r/use-breakpoint"; import CloseModalSrc from "../assets/icons/closeModal.svg"; diff --git a/public-dashboard-client/src/monthly-timeseries/MonthlyTimeseries.js b/public-dashboard-client/src/monthly-timeseries/MonthlyTimeseries.js index faab0548..3cb6830c 100644 --- a/public-dashboard-client/src/monthly-timeseries/MonthlyTimeseries.js +++ b/public-dashboard-client/src/monthly-timeseries/MonthlyTimeseries.js @@ -2,7 +2,7 @@ import { parse, format } from "date-fns"; import PropTypes from "prop-types"; import React, { useState } from "react"; import ResponsiveOrdinalFrame from "semiotic/lib/ResponsiveOrdinalFrame"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ChartWrapper from "../chart-wrapper"; import Disclaimer from "../disclaimer"; import ResponsiveTooltipController from "../responsive-tooltip-controller"; diff --git a/public-dashboard-client/src/nav-bar/NavBar.js b/public-dashboard-client/src/nav-bar/NavBar.js index ebe2c81f..e6947c38 100644 --- a/public-dashboard-client/src/nav-bar/NavBar.js +++ b/public-dashboard-client/src/nav-bar/NavBar.js @@ -2,7 +2,7 @@ import PropTypes from "prop-types"; import { Link } from "@reach/router"; import classNames from "classnames"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { mediaQuery } from "@w11r/use-breakpoint"; import { PATHS, ALL_PAGES } from "../constants"; diff --git a/public-dashboard-client/src/page-error/PageError.js b/public-dashboard-client/src/page-error/PageError.js index c64e909d..926441a8 100644 --- a/public-dashboard-client/src/page-error/PageError.js +++ b/public-dashboard-client/src/page-error/PageError.js @@ -1,5 +1,5 @@ import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { HeadingTitle, HeadingDescription } from "../heading"; const Wrapper = styled.div` diff --git a/public-dashboard-client/src/page-not-found/PageNotFound.js b/public-dashboard-client/src/page-not-found/PageNotFound.js index 3fce91a2..2ee6de51 100644 --- a/public-dashboard-client/src/page-not-found/PageNotFound.js +++ b/public-dashboard-client/src/page-not-found/PageNotFound.js @@ -1,6 +1,6 @@ import { Link } from "@reach/router"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { HeadingTitle, HeadingDescription } from "../heading"; const Wrapper = styled.div` diff --git a/public-dashboard-client/src/page-overview/PageOverview.js b/public-dashboard-client/src/page-overview/PageOverview.js index 17182b96..2e236382 100644 --- a/public-dashboard-client/src/page-overview/PageOverview.js +++ b/public-dashboard-client/src/page-overview/PageOverview.js @@ -1,5 +1,5 @@ import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { DETAIL_PAGES, NARRATIVE_PAGES } from "../constants"; import { HeadingTitle, HeadingDescription } from "../heading"; diff --git a/public-dashboard-client/src/page-prison/PagePrison.js b/public-dashboard-client/src/page-prison/PagePrison.js index d8539554..63969b15 100644 --- a/public-dashboard-client/src/page-prison/PagePrison.js +++ b/public-dashboard-client/src/page-prison/PagePrison.js @@ -267,7 +267,7 @@ export default function PagePrison() { showDimensionControl: true, VizComponent: VizRecidivismSingleFollowup, vizData: { - followupYears: parseInt(recidivismFollowupPeriod, 10), + followupYears: parseInt(recidivismFollowupPeriod), recidivismRates, }, }, diff --git a/public-dashboard-client/src/page-racial-disparities/PageRacialDisparities.js b/public-dashboard-client/src/page-racial-disparities/PageRacialDisparities.js index f0f127df..271cc17b 100644 --- a/public-dashboard-client/src/page-racial-disparities/PageRacialDisparities.js +++ b/public-dashboard-client/src/page-racial-disparities/PageRacialDisparities.js @@ -1,5 +1,5 @@ import React, { useState } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import DetailPage from "../detail-page"; import { ALL_PAGES, diff --git a/public-dashboard-client/src/page-racial-disparities/VizPopulationDisparity.js b/public-dashboard-client/src/page-racial-disparities/VizPopulationDisparity.js index e0865d9c..e58a2c4f 100644 --- a/public-dashboard-client/src/page-racial-disparities/VizPopulationDisparity.js +++ b/public-dashboard-client/src/page-racial-disparities/VizPopulationDisparity.js @@ -1,6 +1,6 @@ import PropTypes from "prop-types"; import React, { useState } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { DIMENSION_DATA_KEYS, RACE_LABELS, TOTAL_KEY } from "../constants"; import ProportionalBar from "../proportional-bar"; import { demographicsAscending } from "../utils"; diff --git a/public-dashboard-client/src/page-racial-disparities/VizPopulationFocus.js b/public-dashboard-client/src/page-racial-disparities/VizPopulationFocus.js index dc6d3cb3..e20c4eed 100644 --- a/public-dashboard-client/src/page-racial-disparities/VizPopulationFocus.js +++ b/public-dashboard-client/src/page-racial-disparities/VizPopulationFocus.js @@ -1,6 +1,6 @@ import PropTypes from "prop-types"; import React, { useState } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { RACE_LABELS } from "../constants"; import ProportionalBar from "../proportional-bar"; import { recordIsAllRaces } from "../utils"; diff --git a/public-dashboard-client/src/page-racial-disparities/VizRevocationDisparity.js b/public-dashboard-client/src/page-racial-disparities/VizRevocationDisparity.js index 42f21665..196d4bcc 100644 --- a/public-dashboard-client/src/page-racial-disparities/VizRevocationDisparity.js +++ b/public-dashboard-client/src/page-racial-disparities/VizRevocationDisparity.js @@ -1,7 +1,7 @@ import { ascending } from "d3-array"; import PropTypes from "prop-types"; import React, { useState } from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { TOTAL_KEY, VIOLATION_LABELS } from "../constants"; import Disclaimer from "../disclaimer"; import ProportionalBar from "../proportional-bar"; diff --git a/public-dashboard-client/src/page-racial-disparities/helpers.js b/public-dashboard-client/src/page-racial-disparities/helpers.js index d9b00e5d..eaac525c 100644 --- a/public-dashboard-client/src/page-racial-disparities/helpers.js +++ b/public-dashboard-client/src/page-racial-disparities/helpers.js @@ -1,6 +1,6 @@ import useBreakpoint from "@w11r/use-breakpoint"; import { sum } from "d3-array"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { SUPERVISION_TYPES, VIOLATION_COUNT_KEYS, diff --git a/public-dashboard-client/src/page-routes/PageRoutes.js b/public-dashboard-client/src/page-routes/PageRoutes.js index ef84b277..1b53f4a2 100644 --- a/public-dashboard-client/src/page-routes/PageRoutes.js +++ b/public-dashboard-client/src/page-routes/PageRoutes.js @@ -1,7 +1,7 @@ import { Router, Redirect, useLocation } from "@reach/router"; import React, { useEffect } from "react"; import { Helmet } from "react-helmet"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { ALL_PAGES, PATHS } from "../constants"; import useCurrentPage from "../hooks/useCurrentPage"; import PageNotFound from "../page-not-found"; diff --git a/public-dashboard-client/src/page-width-container/PageWidthContainer.js b/public-dashboard-client/src/page-width-container/PageWidthContainer.js index 02805f0a..1ad3bb00 100644 --- a/public-dashboard-client/src/page-width-container/PageWidthContainer.js +++ b/public-dashboard-client/src/page-width-container/PageWidthContainer.js @@ -1,5 +1,5 @@ import { mediaQuery } from "@w11r/use-breakpoint"; -import styled from "styled-components"; +import styled from "styled-components/macro"; const PADDING_LARGE = "80px"; const PADDING_SMALL = "8px"; diff --git a/public-dashboard-client/src/pill/LinkPill.js b/public-dashboard-client/src/pill/LinkPill.js index 1b74e858..650008c0 100644 --- a/public-dashboard-client/src/pill/LinkPill.js +++ b/public-dashboard-client/src/pill/LinkPill.js @@ -1,6 +1,6 @@ import React from "react"; import PropTypes from "prop-types"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { PillContainer, PillValue } from "./shared"; diff --git a/public-dashboard-client/src/pill/shared.js b/public-dashboard-client/src/pill/shared.js index 7626697e..b8f09cea 100644 --- a/public-dashboard-client/src/pill/shared.js +++ b/public-dashboard-client/src/pill/shared.js @@ -1,4 +1,4 @@ -import styled from "styled-components"; +import styled from "styled-components/macro"; const PILL_HEIGHT = 40; diff --git a/public-dashboard-client/src/population-viz/PopulationViz.js b/public-dashboard-client/src/population-viz/PopulationViz.js index 8d9d5e62..1c95237f 100644 --- a/public-dashboard-client/src/population-viz/PopulationViz.js +++ b/public-dashboard-client/src/population-viz/PopulationViz.js @@ -2,7 +2,7 @@ import { group, sum } from "d3-array"; import PropTypes from "prop-types"; import React from "react"; import Measure from "react-measure"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { DIMENSION_DATA_KEYS, DIMENSION_KEYS, diff --git a/public-dashboard-client/src/proportional-bar/ProportionalBar.js b/public-dashboard-client/src/proportional-bar/ProportionalBar.js index 47f618c4..3b747d37 100644 --- a/public-dashboard-client/src/proportional-bar/ProportionalBar.js +++ b/public-dashboard-client/src/proportional-bar/ProportionalBar.js @@ -2,7 +2,7 @@ import { sum } from "d3-array"; import PropTypes from "prop-types"; import React, { useState } from "react"; import ResponsiveOrdinalFrame from "semiotic/lib/ResponsiveOrdinalFrame"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import ColorLegend from "../color-legend"; import { THEME } from "../theme"; import { getDataWithPct, highlightFade } from "../utils"; diff --git a/public-dashboard-client/src/secondary-nav/SecondaryNav.js b/public-dashboard-client/src/secondary-nav/SecondaryNav.js index 3231f912..7fa69951 100644 --- a/public-dashboard-client/src/secondary-nav/SecondaryNav.js +++ b/public-dashboard-client/src/secondary-nav/SecondaryNav.js @@ -1,6 +1,6 @@ import { mediaQuery } from "@w11r/use-breakpoint"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import NavBar from "../nav-bar"; import { DETAIL_PAGES } from "../constants"; diff --git a/public-dashboard-client/src/sentence-types-chart/SentenceTypesChart.js b/public-dashboard-client/src/sentence-types-chart/SentenceTypesChart.js index ff7807d3..ddb51481 100644 --- a/public-dashboard-client/src/sentence-types-chart/SentenceTypesChart.js +++ b/public-dashboard-client/src/sentence-types-chart/SentenceTypesChart.js @@ -1,7 +1,7 @@ import PropTypes from "prop-types"; import React, { useState } from "react"; import NetworkFrame from "semiotic/lib/NetworkFrame"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import Disclaimer from "../disclaimer"; import ResponsiveTooltipController from "../responsive-tooltip-controller"; import { THEME } from "../theme"; diff --git a/public-dashboard-client/src/single-dimension-viz/SingleDimensionViz.js b/public-dashboard-client/src/single-dimension-viz/SingleDimensionViz.js index 131d8352..75479ebf 100644 --- a/public-dashboard-client/src/single-dimension-viz/SingleDimensionViz.js +++ b/public-dashboard-client/src/single-dimension-viz/SingleDimensionViz.js @@ -1,7 +1,7 @@ import PropTypes from "prop-types"; import React, { useState } from "react"; import Measure from "react-measure"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import BubbleChart from "../bubble-chart"; import { DIMENSION_KEYS, TOTAL_KEY } from "../constants"; import Disclaimer from "../disclaimer"; diff --git a/public-dashboard-client/src/site-layout/SiteLayout.js b/public-dashboard-client/src/site-layout/SiteLayout.js index c7619c91..3ff84f77 100644 --- a/public-dashboard-client/src/site-layout/SiteLayout.js +++ b/public-dashboard-client/src/site-layout/SiteLayout.js @@ -2,7 +2,7 @@ import { ErrorBoundary } from "@sentry/react"; import useBreakpoint, { mediaQuery } from "@w11r/use-breakpoint"; import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { useMatch } from "@reach/router"; import BrandingBar from "../branding-bar"; import { COLLAPSIBLE_NAV_BREAKPOINT, PATHS } from "../constants"; diff --git a/public-dashboard-client/src/site-styles/SiteStyles.js b/public-dashboard-client/src/site-styles/SiteStyles.js index a23d7891..9dd91bce 100644 --- a/public-dashboard-client/src/site-styles/SiteStyles.js +++ b/public-dashboard-client/src/site-styles/SiteStyles.js @@ -1,6 +1,6 @@ import React from "react"; import { Helmet } from "react-helmet"; -import { createGlobalStyle } from "styled-components"; +import { createGlobalStyle } from "styled-components/macro"; import { normalize } from "styled-normalize"; import { THEME } from "../theme"; diff --git a/public-dashboard-client/src/state-county-map/StateCountyMap.js b/public-dashboard-client/src/state-county-map/StateCountyMap.js index 303ce3f3..b2e5c79b 100644 --- a/public-dashboard-client/src/state-county-map/StateCountyMap.js +++ b/public-dashboard-client/src/state-county-map/StateCountyMap.js @@ -10,7 +10,7 @@ import { Geography, Marker, } from "react-simple-maps"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { mesh } from "topojson"; import AspectRatioWrapper from "../aspect-ratio-wrapper"; import ndGeography from "../assets/maps/us_nd.json"; diff --git a/public-dashboard-client/src/state-judicial-district-map/StateJudicialDistrictMap.js b/public-dashboard-client/src/state-judicial-district-map/StateJudicialDistrictMap.js index c25ceba2..e359dc26 100644 --- a/public-dashboard-client/src/state-judicial-district-map/StateJudicialDistrictMap.js +++ b/public-dashboard-client/src/state-judicial-district-map/StateJudicialDistrictMap.js @@ -1,6 +1,6 @@ import PropTypes from "prop-types"; import React from "react"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import judicialDistrictsTopology from "../assets/maps/us_nd_judicial_districts.json"; import { DEFAULT_TENANT, OTHER_LABEL, TENANTS, OTHER } from "../constants"; import StateMap from "../state-map"; diff --git a/public-dashboard-client/src/state-map/StateMap.js b/public-dashboard-client/src/state-map/StateMap.js index 419bf4c0..1490aaea 100644 --- a/public-dashboard-client/src/state-map/StateMap.js +++ b/public-dashboard-client/src/state-map/StateMap.js @@ -8,7 +8,7 @@ import { Geography, Marker, } from "react-simple-maps"; -import styled from "styled-components"; +import styled from "styled-components/macro"; import { mesh } from "topojson"; import AspectRatioWrapper from "../aspect-ratio-wrapper"; import { hoverColor } from "../utils"; @@ -96,7 +96,7 @@ export default function StateMap({ hoverable, highlighted: locationId === geography.id, })} - key={`region_{geography.id}`} + key="region_{geography.id}" geography={geography} onBlur={() => setHoveredLocationId()} onClick={(e) => { @@ -122,7 +122,7 @@ export default function StateMap({ /> {LabelComponent && ( =10", "n-readlines": "^1.0.1", diff --git a/yarn.lock b/yarn.lock index df532a84..c90d37ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1774,6 +1774,20 @@ styled-components "^5.2.1" web-vitals "^1.0.1" +"@recidiviz/eslint-config@file:public-dashboard-client/.yalc/@recidiviz/eslint-config": + version "1.0.0" + dependencies: + eslint-config-airbnb "^18.2.0" + eslint-config-prettier "^8.1.0" + prettier "^2.2.1" + +"@recidiviz/eslint-config@file:spotlight-api/.yalc/@recidiviz/eslint-config": + version "1.0.0" + dependencies: + eslint-config-airbnb "^18.2.0" + eslint-config-prettier "^8.1.0" + prettier "^2.2.1" + "@recidiviz/eslint-config@file:spotlight-client/.yalc/@recidiviz/eslint-config": version "1.0.0" dependencies: From 2e2231c314d9e5d1dc46de47c0847218a1479999 Mon Sep 17 00:00:00 2001 From: Ian MacFarland Date: Thu, 8 Apr 2021 12:16:56 -0700 Subject: [PATCH 3/3] use published lint package --- public-dashboard-client/package.json | 15 ++++++------ spotlight-api/package.json | 6 ++--- spotlight-client/package.json | 2 +- yarn.lock | 34 +++++++++------------------- 4 files changed, 22 insertions(+), 35 deletions(-) diff --git a/public-dashboard-client/package.json b/public-dashboard-client/package.json index 5271afd4..585d6388 100644 --- a/public-dashboard-client/package.json +++ b/public-dashboard-client/package.json @@ -16,7 +16,6 @@ "test": "react-scripts test" }, "dependencies": { - "//": "TODO(#236): unpin & upgrade styled-components after bugfix", "@accessible/slider": "^2.0.2", "@reach/auto-id": "^0.11.2", "@reach/menu-button": "^0.10.5", @@ -55,27 +54,27 @@ "topojson": "^3.0.2" }, "devDependencies": { - "@recidiviz/eslint-config": "file:.yalc/@recidiviz/eslint-config", + "@recidiviz/eslint-config": "^1.0.0", "@testing-library/dom": "^7.26.3", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^12.1.10", - "@typescript-eslint/parser": "^4.4.0", "@typescript-eslint/eslint-plugin": "^4.4.0", + "@typescript-eslint/parser": "^4.4.0", + "babel-eslint": "^10.0.0", "eslint": "^6.6.0", + "eslint-config-react-app": "^6.0.0", "eslint-import-resolver-typescript": "^2.3.0", + "eslint-plugin-flowtype": "^5.2.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-react": "^7.23.1", - "eslint-config-react-app": "^6.0.0", "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-simple-import-sort": "^7.0.0", - "babel-eslint": "^10.0.0", - "prettier": "^2.2.1", - "eslint-plugin-flowtype": "^5.2.0", "jest-date-mock": "^1.0.8", - "lint-staged": ">=10" + "lint-staged": ">=10", + "prettier": "^2.2.1" }, "browserslist": { "production": [ diff --git a/spotlight-api/package.json b/spotlight-api/package.json index df700669..d35e70d0 100644 --- a/spotlight-api/package.json +++ b/spotlight-api/package.json @@ -26,16 +26,16 @@ "morgan": "^1.10.0" }, "devDependencies": { - "@recidiviz/eslint-config": "file:.yalc/@recidiviz/eslint-config", - "@typescript-eslint/parser": "^4.4.0", + "@recidiviz/eslint-config": "^1.0.0", "@typescript-eslint/eslint-plugin": "^4.4.0", + "@typescript-eslint/parser": "^4.4.0", "eslint": "^6.6.0", + "eslint-config-react-app": "^6.0.0", "eslint-import-resolver-typescript": "^2.3.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-prettier": "^3.1.4", "eslint-plugin-react": "^7.23.1", - "eslint-config-react-app": "^6.0.0", "eslint-plugin-react-hooks": "^4.2.0", "eslint-plugin-simple-import-sort": "^7.0.0", "jest": "24.9.0", diff --git a/spotlight-client/package.json b/spotlight-client/package.json index 81891517..6a8a31c8 100644 --- a/spotlight-client/package.json +++ b/spotlight-client/package.json @@ -95,7 +95,7 @@ "wait-for-localhost": "^3.3.0" }, "devDependencies": { - "@recidiviz/eslint-config": "file:.yalc/@recidiviz/eslint-config", + "@recidiviz/eslint-config": "^1.0.0", "@segment/analytics.js-core": "^4.1.5", "@testing-library/jest-dom": "^5.11.1", "@testing-library/react": "^11.1.1", diff --git a/yarn.lock b/yarn.lock index c90d37ce..207e958e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1774,22 +1774,10 @@ styled-components "^5.2.1" web-vitals "^1.0.1" -"@recidiviz/eslint-config@file:public-dashboard-client/.yalc/@recidiviz/eslint-config": - version "1.0.0" - dependencies: - eslint-config-airbnb "^18.2.0" - eslint-config-prettier "^8.1.0" - prettier "^2.2.1" - -"@recidiviz/eslint-config@file:spotlight-api/.yalc/@recidiviz/eslint-config": - version "1.0.0" - dependencies: - eslint-config-airbnb "^18.2.0" - eslint-config-prettier "^8.1.0" - prettier "^2.2.1" - -"@recidiviz/eslint-config@file:spotlight-client/.yalc/@recidiviz/eslint-config": +"@recidiviz/eslint-config@^1.0.0": version "1.0.0" + resolved "https://registry.yarnpkg.com/@recidiviz/eslint-config/-/eslint-config-1.0.0.tgz#cdfcb43cb4c85ebf45a2cb8150ce68154781f2ed" + integrity sha512-c4KO1+LKwg47rsHlvxR6KuGTIcXf0w6KvOiXA+eVVpX2qKQf2Vxmzg1n37iUe59oYobmf9+29yGeMPMdF17/8g== dependencies: eslint-config-airbnb "^18.2.0" eslint-config-prettier "^8.1.0" @@ -3558,10 +3546,10 @@ babel-plugin-named-asset-import@^0.3.6: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== -"babel-plugin-styled-components@>= 1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.1.tgz#5296a9e557d736c3186be079fff27c6665d63d76" - integrity sha512-YwrInHyKUk1PU3avIRdiLyCpM++18Rs1NgyMXEAQC33rIXs/vro0A+stf4sT0Gf22Got+xRWB8Cm0tw+qkRzBA== +"babel-plugin-styled-components@>= 1", "babel-plugin-styled-components@>= 1.12.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.12.0.tgz#1dec1676512177de6b827211e9eda5a30db4f9b9" + integrity sha512-FEiD7l5ZABdJPpLssKXjBUJMYqzbcNzBowfXDCdJhOpbhWiewapUaY+LZGT8R4Jg2TwOjGjG4RKeyrO5p9sBkA== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-module-imports" "^7.0.0" @@ -14640,16 +14628,16 @@ styled-components@5.1.1: supports-color "^5.5.0" styled-components@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.1.tgz#6ed7fad2dc233825f64c719ffbdedd84ad79101a" - integrity sha512-sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ== + version "5.2.3" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.2.3.tgz#752669fd694aac10de814d96efc287dde0d11385" + integrity sha512-BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/traverse" "^7.4.5" "@emotion/is-prop-valid" "^0.8.8" "@emotion/stylis" "^0.8.4" "@emotion/unitless" "^0.7.4" - babel-plugin-styled-components ">= 1" + babel-plugin-styled-components ">= 1.12.0" css-to-react-native "^3.0.0" hoist-non-react-statics "^3.0.0" shallowequal "^1.1.0"