From 2d545176d312b12e60b50c1d04b20fc20b238fd7 Mon Sep 17 00:00:00 2001 From: Jason Quense Date: Thu, 1 Dec 2022 12:43:04 -0500 Subject: [PATCH] chore: auto deploy docs (#1000) * chore: auto deploy docs * chore: lint --- .eslintrc.js | 15 +++---- .github/workflows/main.yml | 8 ++++ package.json | 2 +- www/docs/advanced/component-route-access.md | 6 ++- www/docs/advanced/error-handling.md | 2 +- www/docs/advanced/minimize-bundle.md | 8 ++-- www/docs/advanced/names-child-routes.md | 14 +++---- www/docs/advanced/redirects.md | 8 ++-- www/docs/advanced/redux-integration.md | 6 +-- www/docs/advanced/server-side-rendering.md | 18 ++++----- www/docs/configuration/navigation.md | 18 +++++---- www/docs/configuration/route-config.md | 6 +-- www/docs/configuration/router-config.md | 30 +++++++------- www/package.json | 1 + www/src/components/SandpackEditor.tsx | 33 ++++++++-------- www/src/pages/index.tsx | 4 +- www/yarn.lock | 2 +- yarn.lock | 44 +++++++++++---------- 18 files changed, 120 insertions(+), 105 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 7d118b5b..0df3924b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,14 +1,11 @@ module.exports = { - extends: ['4catalyzer-react', '4catalyzer-jest', 'prettier'], + extends: [ + '4catalyzer-react', + '4catalyzer-jest', + '4catalyzer-typescript', + 'prettier', + ], plugins: ['prettier', 'import'], - parser: '@typescript-eslint/parser', - settings: { - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - }, rules: { 'react/prop-types': 'off', 'prettier/prettier': 'error', diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b5c3fcb..84bc597c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,3 +20,11 @@ jobs: - run: yarn --cwd www install --frozen-lockfile - run: yarn test --coverage - run: node_modules/.bin/codecov + - if: ${{ github.ref == 'refs/heads/master' }} + run: yarn --cwd www build + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + if: ${{ github.ref == 'refs/heads/master' }} + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./www/build diff --git a/package.json b/package.json index 6f2cf8b6..79b0a78d 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "eslint": "^8.13.0", "eslint-config-4catalyzer-jest": "^2.2.0", "eslint-config-4catalyzer-react": "^1.2.2", - "eslint-config-4catalyzer-typescript": "^3.2.0", + "eslint-config-4catalyzer-typescript": "^3.3.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jest": "^25.7.0", diff --git a/www/docs/advanced/component-route-access.md b/www/docs/advanced/component-route-access.md index 73022a51..10ef3180 100644 --- a/www/docs/advanced/component-route-access.md +++ b/www/docs/advanced/component-route-access.md @@ -16,11 +16,13 @@ function MyButton() { const { match, router } = useRouter(); const onClick = useCallback(() => { - router.replace('/widgets'); + router.replace("/widgets"); }, [router]); return ( - + ); } ``` diff --git a/www/docs/advanced/error-handling.md b/www/docs/advanced/error-handling.md index fc3e4d3c..e7edeaef 100644 --- a/www/docs/advanced/error-handling.md +++ b/www/docs/advanced/error-handling.md @@ -14,7 +14,7 @@ The router will throw a `new HttpError(404)` in the case when no routes match th ```js const route = { - path: 'widgets/:widgetId', + path: "widgets/:widgetId", Component: WidgetPage, getData: ({ params: { widgetId } }) => fetchWidget(widgetId).catch(() => { diff --git a/www/docs/advanced/minimize-bundle.md b/www/docs/advanced/minimize-bundle.md index eb12297d..0ee4c5ff 100644 --- a/www/docs/advanced/minimize-bundle.md +++ b/www/docs/advanced/minimize-bundle.md @@ -7,10 +7,10 @@ sidebar_position: 7 The top-level `found` package exports everything available in this library. It is unlikely that any single application will use all the features available. As such, for real applications, you should import the modules you need directly, to pull in only the code that you use. ```js -import createBrowserRouter from 'found/createBrowserRouter'; -import makeRouteConfig from 'found/makeRouteConfig'; -import { routerShape } from 'found/PropTypes'; -import Route from 'found/Route'; +import createBrowserRouter from "found/createBrowserRouter"; +import makeRouteConfig from "found/makeRouteConfig"; +import { routerShape } from "found/PropTypes"; +import Route from "found/Route"; // Instead of: // import { diff --git a/www/docs/advanced/names-child-routes.md b/www/docs/advanced/names-child-routes.md index 029760c2..ca799fb7 100644 --- a/www/docs/advanced/names-child-routes.md +++ b/www/docs/advanced/names-child-routes.md @@ -17,36 +17,36 @@ function AppPage({ nav, main }) { } const route = { - path: '/', + path: "/", Component: AppPage, children: [ { - path: 'foo', + path: "foo", children: { nav: [ { - path: '(.*)?', + path: "(.*)?", Component: FooNav, }, ], main: [ { - path: 'a', + path: "a", Component: FooA, }, { - path: 'b', + path: "b", Component: FooB, }, ], }, }, { - path: 'bar', + path: "bar", children: { nav: [ { - path: '(.*)?', + path: "(.*)?", Component: BarNav, }, ], diff --git a/www/docs/advanced/redirects.md b/www/docs/advanced/redirects.md index 46c47ef7..c7e12fb1 100644 --- a/www/docs/advanced/redirects.md +++ b/www/docs/advanced/redirects.md @@ -8,12 +8,12 @@ The `Redirect` route class sets up static redirect routes. You can also use it t ```js const redirect1 = new Redirect({ - from: 'widget/:widgetId', - to: '/widgets/:widgetId', + from: "widget/:widgetId", + to: "/widgets/:widgetId", }); const redirect2 = new Redirect({ - from: 'widget/:widgetId', + from: "widget/:widgetId", to: ({ params }) => `/widgets/${params.widgetId}`, status: 301, }); @@ -45,7 +45,7 @@ const customRedirect = { const permanentRedirect = { render: () => { - throw new RedirectException('/widgets', 301); + throw new RedirectException("/widgets", 301); }, }; ``` diff --git a/www/docs/advanced/redux-integration.md b/www/docs/advanced/redux-integration.md index 0458e67c..c7ae4ac4 100644 --- a/www/docs/advanced/redux-integration.md +++ b/www/docs/advanced/redux-integration.md @@ -11,8 +11,8 @@ If you are using your own Redux store, use `createConnectedRouter` as described To access the current routing state, connect to the `resolvedMatch` property of the `foundReducer` state. To navigate, dispatch the appropriate actions from Farce. ```js -import { Actions as FarceActions } from 'farce'; -import { connect } from 'react-redux'; +import { Actions as FarceActions } from "farce"; +import { connect } from "react-redux"; const MyConnectedComponent = connect( ({ found: { resolvedMatch } }) => ({ @@ -21,6 +21,6 @@ const MyConnectedComponent = connect( }), { push: FarceActions.push, - }, + } )(MyComponent); ``` diff --git a/www/docs/advanced/server-side-rendering.md b/www/docs/advanced/server-side-rendering.md index 18c6b5ca..91dc6e96 100644 --- a/www/docs/advanced/server-side-rendering.md +++ b/www/docs/advanced/server-side-rendering.md @@ -9,7 +9,7 @@ Found supports server-side rendering for universal applications. Functionality s To render your application on the server, use `getFarceResult`. ```js -import { getFarceResult } from 'found/server'; +import { getFarceResult } from "found/server"; /* ... */ @@ -60,7 +60,7 @@ This promise resolves when all asynchronous dependencies are available. If your When using server-side rendering, you need to delay the initial render on the client, such that the initial client-rendered markup matches the server-rendered markup. To do so, use `createInitialBrowserRouter` or `createInitialFarceRouter` instead of `createBrowserRouter` or `createFarceRouter` respectively. ```js -import { createInitialBrowserRouter } from 'found'; +import { createInitialBrowserRouter } from "found"; /* ... */ @@ -70,7 +70,7 @@ import { createInitialBrowserRouter } from 'found'; render, }); - ReactDOM.render(, document.getElementById('root')); + ReactDOM.render(, document.getElementById("root")); })(); ``` @@ -81,8 +81,8 @@ These behave similarly to their counterparts above, except that the options obje Found exposes lower-level functionality for doing server-side rendering for use with your own Redux store, as with `createConnectedRouter` above. On the server, use `getStoreRenderArgs` to get a promise for the arguments to your `render` function, then wrap the rendered elements with a ``. ```js -import { getStoreRenderArgs } from 'found'; -import { RouterProvider } from 'found/server'; +import { getStoreRenderArgs } from "found"; +import { RouterProvider } from "found/server"; /* ... */ @@ -113,8 +113,8 @@ app.use(async (req, res) => { {render(renderArgs)} , - store.getState(), - ), + store.getState() + ) ); }); ``` @@ -124,7 +124,7 @@ You must dispatch `FarceActions.init()` before calling `getStoreRenderArgs`. `ge On the client, pass the value resolved by by `getStoreRenderArgs` to your `` as the `initialRenderArgs` prop. ```js -import { getStoreRenderArgs } from 'found'; +import { getStoreRenderArgs } from "found"; /* ... */ @@ -143,7 +143,7 @@ import { getStoreRenderArgs } from 'found'; initialRenderArgs={initialRenderArgs} /> , - document.getElementById('root'), + document.getElementById("root") ); })(); ``` diff --git a/www/docs/configuration/navigation.md b/www/docs/configuration/navigation.md index c520a2c4..f0dbcb43 100644 --- a/www/docs/configuration/navigation.md +++ b/www/docs/configuration/navigation.md @@ -21,7 +21,7 @@ const link2 = ( @@ -75,7 +75,7 @@ const propTypes = { class MyButton extends React.Component { onClick = () => { - this.props.router.replace('/widgets'); + this.props.router.replace("/widgets"); }; render() { @@ -99,11 +99,13 @@ function MyButton() { const { match, router } = useRouter(); const onClick = useCallback(() => { - router.replace('/widgets'); + router.replace("/widgets"); }, [router]); return ( - + ); } ``` @@ -122,10 +124,10 @@ function MyForm(props) { dirty ? router.addNavigationListener( () => - 'You have unsaved input. Are you sure you want to leave this page?', + "You have unsaved input. Are you sure you want to leave this page?" ) : undefined, - [dirty], + [dirty] ); /* ... */ @@ -145,7 +147,7 @@ router.addNavigationListener( return asyncConfirm(location); }, - { beforeUnload: true }, + { beforeUnload: true } ); ``` diff --git a/www/docs/configuration/route-config.md b/www/docs/configuration/route-config.md index dc9f3ec2..c43f727e 100644 --- a/www/docs/configuration/route-config.md +++ b/www/docs/configuration/route-config.md @@ -58,12 +58,12 @@ interface Router { isActive: ( match: Match, location: LocationDescriptor, - { exact: boolean }, + { exact: boolean } ) => boolean; // For `match` as above, returns whether `match` corresponds to `location` or a subpath of `location`; if `exact` is set, returns whether `match` corresponds exactly to `location` format: (pattern: string, params: ParamsDescriptor) => string; addNavigationListener( listener: (location: LocationDescriptor) => any, - { beforeUnload: boolean }, + { beforeUnload: boolean } ); // Adds a [navigation listener](https://github.com/4Catalyzer/farce#navigation-listeners) that can [block navigation](#blocking-navigation) } ``` @@ -105,7 +105,7 @@ If you need additional context such as a store instance to fetch data, specify t ```js const route = { - path: 'widgets/:widgetId', + path: "widgets/:widgetId", Component: WidgetPage, getData: ({ params, context }) => context.store.dispatch(Actions.getWidget(params.widgetId)), diff --git a/www/docs/configuration/router-config.md b/www/docs/configuration/router-config.md index e1cc908c..55ff5914 100644 --- a/www/docs/configuration/router-config.md +++ b/www/docs/configuration/router-config.md @@ -11,17 +11,17 @@ Found exposes a number of router component class factories at varying levels of `createBrowserRouter` creates a basic router component class that uses the HTML5 History API for navigation. This factory uses reasonable defaults that should fit a variety use cases. ```js -import { createBrowserRouter } from 'found'; +import { createBrowserRouter } from "found"; const BrowserRouter = createBrowserRouter({ routeConfig, renderError: ({ error }) => ( -
{error.status === 404 ? 'Not found' : 'Error'}
+
{error.status === 404 ? "Not found" : "Error"}
), }); -ReactDOM.render(, document.getElementById('root')); +ReactDOM.render(, document.getElementById("root")); ``` `createBrowserRouter` takes an options object. The only mandatory property on this object is `routeConfig`, which should be a route configuration as above. @@ -65,8 +65,8 @@ The created `` accepts an optional `matchContext: any` prop as de `createFarceRouter` exposes additional configuration for customizing navigation management and route element resolution. To enable minimizing bundle size, it omits some defaults from `createBrowserRouter`. ```js -import { BrowserProtocol, queryMiddleware } from 'farce'; -import { createFarceRouter, resolver } from 'found'; +import { BrowserProtocol, queryMiddleware } from "farce"; +import { createFarceRouter, resolver } from "found"; const FarceRouter = createFarceRouter({ historyProtocol: new BrowserProtocol(), @@ -74,13 +74,13 @@ const FarceRouter = createFarceRouter({ routeConfig, renderError: ({ error }) => ( -
{error.status === 404 ? 'Not found' : 'Error'}
+
{error.status === 404 ? "Not found" : "Error"}
), }); ReactDOM.render( , - document.getElementById('root'), + document.getElementById("root") ); ``` @@ -98,7 +98,7 @@ import { BrowserProtocol, createHistoryEnhancer, queryMiddleware, -} from 'farce'; +} from "farce"; import { createConnectedRouter, createMatchEnhancer, @@ -106,9 +106,9 @@ import { foundReducer, Matcher, resolver, -} from 'found'; -import { Provider } from 'react-redux'; -import { combineReducers, compose, createStore } from 'redux'; +} from "found"; +import { Provider } from "react-redux"; +import { combineReducers, compose, createStore } from "redux"; /* ... */ @@ -121,8 +121,8 @@ const store = createStore( protocol: new BrowserProtocol(), middlewares: [queryMiddleware], }), - createMatchEnhancer(new Matcher(routeConfig)), - ), + createMatchEnhancer(new Matcher(routeConfig)) + ) ); store.dispatch(FarceActions.init()); @@ -130,7 +130,7 @@ store.dispatch(FarceActions.init()); const ConnectedRouter = createConnectedRouter({ render: createRender({ renderError: ({ error }) => ( -
{error.status === 404 ? 'Not found' : 'Error'}
+
{error.status === 404 ? "Not found" : "Error"}
), }), }); @@ -139,7 +139,7 @@ ReactDOM.render( , - document.getElementById('root'), + document.getElementById("root") ); ``` diff --git a/www/package.json b/www/package.json index 4dd263ec..f3b669da 100644 --- a/www/package.json +++ b/www/package.json @@ -18,6 +18,7 @@ "@codesandbox/sandpack-themes": "^1.17.0", "@docusaurus/core": "2.2.0", "@docusaurus/preset-classic": "^2.2.0", + "@docusaurus/theme-common": "^2.2.0", "@docusaurus/theme-live-codeblock": "^2.2.0", "@docusaurus/theme-mermaid": "^2.2.0", "clsx": "^1.2.1", diff --git a/www/src/components/SandpackEditor.tsx b/www/src/components/SandpackEditor.tsx index 0fb418a8..08748e51 100644 --- a/www/src/components/SandpackEditor.tsx +++ b/www/src/components/SandpackEditor.tsx @@ -1,12 +1,14 @@ import { Sandpack, type SandpackFile } from '@codesandbox/sandpack-react'; -import React from 'react'; +import { dracula, githubLight } from '@codesandbox/sandpack-themes'; import { useColorMode, usePrismTheme } from '@docusaurus/theme-common'; -import { githubLight, dracula } from '@codesandbox/sandpack-themes'; +import React from 'react'; const createFileMap = ( children: JSX.Element, ): Record => { - let codeSnippets = React.Children.toArray(children) as React.ReactElement[]; + const codeSnippets = React.Children.toArray( + children, + ) as React.ReactElement[]; return codeSnippets.reduce( ( @@ -23,27 +25,23 @@ const createFileMap = ( if (props.metastring) { const [name, ...params] = props.metastring.split(' '); - filePath = '/' + name; + filePath = `/${name}`; if (params.includes('hidden')) { fileHidden = true; } if (params.includes('active')) { fileActive = true; } + } else if (props.className === 'language-js') { + filePath = '/App.js'; + } else if (props.className === 'language-ts') { + filePath = '/App.tsx'; + } else if (props.className === 'language-tsx') { + filePath = '/App.tsx'; + } else if (props.className === 'language-css') { + filePath = '/styles.css'; } else { - if (props.className === 'language-js') { - filePath = '/App.js'; - } else if (props.className === 'language-ts') { - filePath = '/App.tsx'; - } else if (props.className === 'language-tsx') { - filePath = '/App.tsx'; - } else if (props.className === 'language-css') { - filePath = '/styles.css'; - } else { - throw new Error( - `Code block is missing a filename: ${props.children}`, - ); - } + throw new Error(`Code block is missing a filename: ${props.children}`); } if (result[filePath]) { throw new Error( @@ -78,6 +76,7 @@ export default function SandpackEditor({ return (
{ const logoUrl = useBaseUrl('img/f-logo-empty.svg'); return ( + // @ts-ignore
@@ -17,7 +19,7 @@ export default () => { Docs
- + found logo
); diff --git a/www/yarn.lock b/www/yarn.lock index 252eb740..7535dc1d 100644 --- a/www/yarn.lock +++ b/www/yarn.lock @@ -1732,7 +1732,7 @@ tslib "^2.4.0" utility-types "^3.10.0" -"@docusaurus/theme-common@2.2.0": +"@docusaurus/theme-common@2.2.0", "@docusaurus/theme-common@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.2.0.tgz#2303498d80448aafdd588b597ce9d6f4cfa930e4" integrity sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw== diff --git a/yarn.lock b/yarn.lock index 7c326ded..b9d09938 100644 --- a/yarn.lock +++ b/yarn.lock @@ -262,6 +262,15 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" +"@babel/eslint-parser@^7.18.9": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4" + integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + "@babel/generator@^7.17.9", "@babel/generator@^7.7.2": version "7.17.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.9.tgz#f4af9fd38fa8de143c29fce3f71852406fc1e2fc" @@ -1600,6 +1609,13 @@ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.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" @@ -3836,7 +3852,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: version "4.3.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== @@ -4491,13 +4507,12 @@ eslint-config-4catalyzer-react@^1.2.2: eslint-config-4catalyzer "^1.4.1" eslint-config-airbnb "^19.0.1" -eslint-config-4catalyzer-typescript@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-4catalyzer-typescript/-/eslint-config-4catalyzer-typescript-3.2.0.tgz#91d3bc589c64c50421473ba0265a6ea33e4b27db" - integrity sha512-IGaoRkWDjhnGk7dSL8mVFBf8n+TD/Wm2ndZLSU446Poa2eLbyFXumGIOSivDhBcg1BRDg/oRa0+bxGR16bEw6A== +eslint-config-4catalyzer-typescript@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-4catalyzer-typescript/-/eslint-config-4catalyzer-typescript-3.3.0.tgz#d383f74080ceb10ee80ea9030019b3bd074cf8f5" + integrity sha512-+rm5nvizmZbpbFpqOkWTNlHxk1KHLFKapqKwL+4HNPQ20K2OSSQDhtn38YZwRmGg7Pmz8V+x8v/vwRJAuxoaIg== dependencies: - "@babel/eslint-parser" "^7.16.3" - eslint-import-resolver-typescript "^2.5.0" + "@babel/eslint-parser" "^7.18.9" eslint-config-4catalyzer@^1.4.1: version "1.4.1" @@ -4539,17 +4554,6 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-import-resolver-typescript@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.5.0.tgz#07661966b272d14ba97f597b51e1a588f9722f0a" - integrity sha512-qZ6e5CFr+I7K4VVhQu3M/9xGv9/YmwsEXrsm3nimw8vWaVHRDrQRp26BgCypTxBp3vUp4o5aVEJRiy0F2DFddQ== - dependencies: - debug "^4.3.1" - glob "^7.1.7" - is-glob "^4.0.1" - resolve "^1.20.0" - tsconfig-paths "^3.9.0" - eslint-module-utils@^2.7.3: version "2.7.3" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" @@ -4634,7 +4638,7 @@ eslint-plugin-react@^7.29.4: semver "^6.3.0" string.prototype.matchall "^4.0.6" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -10814,7 +10818,7 @@ ts-doctor@^2.0.0: typescript "^4.4.3" yargs "^17.1.1" -tsconfig-paths@^3.14.1, tsconfig-paths@^3.9.0: +tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==