diff --git a/app/_app.tsx b/app/_app.tsx deleted file mode 100644 index cc04bd0..0000000 --- a/app/_app.tsx +++ /dev/null @@ -1,161 +0,0 @@ -// ** React Imports -import { ReactNode } from 'react' - -// ** Next Imports -import Head from 'next/head' -import { Router } from 'next/router' -import type { NextPage } from 'next' -import type { AppProps } from 'next/app' - - - - - -// ** Loader Import -import NProgress from 'nprogress' - -// ** Emotion Imports -import { CacheProvider } from '@emotion/react' -import type { EmotionCache } from '@emotion/cache' - -// ** Config Imports - -import { defaultACLObj } from 'src/configs/acl' -import themeConfig from 'src/configs/themeConfig' - -// ** Fake-DB Import -import 'src/@fake-db' - -// ** Third Party Import -import { Toaster } from 'react-hot-toast' - -// ** Component Imports -import UserLayout from 'app/layouts/UserLayout' -import AclGuard from 'src/@core/components/auth/AclGuard' -import ThemeComponent from 'src/@core/theme/ThemeComponent' -import AuthGuard from 'src/@core/components/auth/AuthGuard' -import GuestGuard from 'src/@core/components/auth/GuestGuard' -import WindowWrapper from 'src/@core/components/window-wrapper' - -// ** Spinner Import -import Spinner from 'src/@core/components/spinner' - -// ** Contexts -import { AuthProvider } from 'src/context/AuthContext' -import { SettingsConsumer, SettingsProvider } from 'src/@core/context/settingsContext' - -// ** Styled Components -import ReactHotToast from 'src/@core/styles/libs/react-hot-toast' - -// ** Utils Imports -import { createEmotionCache } from 'src/@core/utils/create-emotion-cache' - -// ** Prismjs Styles -import 'prismjs' -import 'prismjs/themes/prism-tomorrow.css' -import 'prismjs/components/prism-jsx' -import 'prismjs/components/prism-tsx' - -// ** React Perfect Scrollbar Style -import 'react-perfect-scrollbar/dist/css/styles.css' - -import 'src/iconify-bundle/icons-bundle-react' - -// ** Global css styles -import '../../styles/globals.css' - -// ** Extend App Props with Emotion -type ExtendedAppProps = AppProps & { - Component: NextPage - emotionCache: EmotionCache -} - -type GuardProps = { - authGuard: boolean - guestGuard: boolean - children: ReactNode -} - -const clientSideEmotionCache = createEmotionCache() - -// ** Pace Loader -if (themeConfig.routingLoader) { - Router.events.on('routeChangeStart', () => { - NProgress.start() - }) - Router.events.on('routeChangeError', () => { - NProgress.done() - }) - Router.events.on('routeChangeComplete', () => { - NProgress.done() - }) -} - -const Guard = ({ children, authGuard, guestGuard }: GuardProps) => { - if (guestGuard) { - return }>{children} - } else if (!guestGuard && !authGuard) { - return <>{children} - } else { - return }>{children} - } -} - -// ** Configure JSS & ClassName -const App = (props: ExtendedAppProps) => { - const { Component, emotionCache = clientSideEmotionCache, pageProps } = props - - // Variables - const contentHeightFixed = Component.contentHeightFixed ?? false - const getLayout = - Component.getLayout ?? (page => {page}) - - const setConfig = Component.setConfig ?? undefined - - const authGuard = Component.authGuard ?? true - - const guestGuard = Component.guestGuard ?? false - - const aclAbilities = Component.acl ?? defaultACLObj - - return ( - - - - {`${themeConfig.templateName} - Material Design React Admin Template`} - - - - - - - - - {({ settings }) => { - return ( - - - - - {getLayout()} - - - - - - - - ) - }} - - - - - - ) -} - -export default App diff --git a/app/acl/page.tsx b/app/acl/page.tsx index 2144cd2..d929e55 100644 --- a/app/acl/page.tsx +++ b/app/acl/page.tsx @@ -2,7 +2,7 @@ import { useContext } from 'react' // ** Context Imports -import { AbilityContext } from 'app/layouts/components/acl/Can' +import { AbilityContext } from 'src/layouts/components/acl/Can' // ** MUI Imports import Grid from '@mui/material/Grid' diff --git a/app/error.tsx b/app/error.tsx new file mode 100644 index 0000000..53945a6 --- /dev/null +++ b/app/error.tsx @@ -0,0 +1,20 @@ +'use client' // Error components must be Client Components + +import { useEffect } from 'react' + +export default function Error({ + error, +}: { + error: Error & { digest?: string } +}) { + useEffect(() => { + // Log the error to an error reporting service + console.error(error) + }, [error]) + + return ( +
+

Something went wrong!

+
+ ) +} \ No newline at end of file diff --git a/app/index.tsx b/app/index.tsx index 6e35d3c..8fd9e84 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -4,38 +4,27 @@ import { useEffect } from 'react' // ** Next Imports -import { useRouter } from 'next/router' +import { useRouter } from 'next/navigation' // ** Spinner Import import Spinner from 'src/@core/components/spinner' -// ** Hook Imports -import { useAuth } from 'src/hooks/useAuth' - /** * Set Home URL based on User Roles */ -export const getHomeRoute = (role: string) => { - if (role === 'client') return '/acl' - else return '/home' +export const getHomeRoute = () => { + return '/home' } const Home = () => { // ** Hooks - const auth = useAuth() const router = useRouter() useEffect(() => { - if (!router.isReady) { - return - } + const homeRoute = getHomeRoute() - if (auth.user && auth.user.role) { - const homeRoute = getHomeRoute(auth.user.role) - - // Redirect user to Home URL - router.replace(homeRoute) - } + // Redirect user to Home URL + router.replace(homeRoute) // eslint-disable-next-line react-hooks/exhaustive-deps }, []) diff --git a/app/layout.tsx b/app/layout.tsx index 129c55b..5f80d88 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; +import { MainLayout } from "src/layouts/MainLayout"; const inter = Inter({ subsets: ["latin"] }); @@ -16,7 +17,9 @@ export default function RootLayout({ }>) { return ( - {children} - + + {children} + + ); } diff --git a/package.json b/package.json index 1fe278c..14d910b 100644 --- a/package.json +++ b/package.json @@ -87,8 +87,8 @@ "@types/react-dom": "^18", "@types/react-draft-wysiwyg": "1.13.4", "@types/react-redux": "7.1.25", - "@typescript-eslint/eslint-plugin": "5.48.0", - "@typescript-eslint/parser": "5.48.0", + "@typescript-eslint/eslint-plugin": "6.1.0", + "@typescript-eslint/parser": "6.1.0", "eslint": "^8", "eslint-config-next": "14.2.1", "eslint-config-prettier": "8.6.0", diff --git a/src/@core/components/auth/AclGuard.tsx b/src/@core/components/auth/AclGuard.tsx index aa59bfe..7ba5999 100644 --- a/src/@core/components/auth/AclGuard.tsx +++ b/src/@core/components/auth/AclGuard.tsx @@ -2,13 +2,13 @@ import { ReactNode, useState } from 'react' // ** Next Import -import { useRouter } from 'next/router' +import { usePathname } from 'next/navigation' // ** Types import type { ACLObj, AppAbility } from 'src/configs/acl' // ** Context Imports -import { AbilityContext } from 'app/layouts/components/acl/Can' +import { AbilityContext } from 'src/layouts/components/acl/Can' // ** Config Import import { buildAbilityFor } from 'src/configs/acl' @@ -34,10 +34,12 @@ const AclGuard = (props: AclGuardProps) => { // ** Hooks const auth = useAuth() - const router = useRouter() + const pathname = usePathname() + console.log(pathname); + // If guestGuard is true and user is not logged in or its an error page, render the page without checking access - if (guestGuard || router.route === '/404' || router.route === '/500' || router.route === '/') { + if (guestGuard || pathname === '/404' || pathname === '/500' || pathname === '/') { return <>{children} } diff --git a/src/@core/components/window-wrapper/index.tsx b/src/@core/components/window-wrapper/index.tsx index d4d0eb0..e167486 100644 --- a/src/@core/components/window-wrapper/index.tsx +++ b/src/@core/components/window-wrapper/index.tsx @@ -1,8 +1,10 @@ +'use client'; + // ** React Imports import { useState, useEffect, ReactNode } from 'react' // ** Next Import -import { useRouter } from 'next/router' +import { useRouter } from 'next/navigation' interface Props { children: ReactNode @@ -20,9 +22,8 @@ const WindowWrapper = ({ children }: Props) => { setWindowReadyFlag(true) } }, - // eslint-disable-next-line react-hooks/exhaustive-deps - [router.route] + [router] ) if (windowReadyFlag) { diff --git a/src/@core/context/settingsContext.tsx b/src/@core/context/settingsContext.tsx index 4902d39..cfd19de 100644 --- a/src/@core/context/settingsContext.tsx +++ b/src/@core/context/settingsContext.tsx @@ -1,3 +1,5 @@ +'use client'; + // ** React Imports import { createContext, useState, ReactNode, useEffect } from 'react' diff --git a/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.tsx b/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.tsx index de94220..598b5ac 100644 --- a/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.tsx +++ b/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.tsx @@ -32,9 +32,9 @@ import { Settings } from 'src/@core/context/settingsContext' // ** Custom Components Imports import HorizontalNavItems from './HorizontalNavItems' -import UserIcon from 'app/layouts/components/UserIcon' -import Translations from 'app/layouts/components/Translations' -import CanViewNavGroup from 'app/layouts/components/acl/CanViewNavGroup' +import UserIcon from 'src/layouts/components/UserIcon' +import Translations from 'src/layouts/components/Translations' +import CanViewNavGroup from 'src/layouts/components/acl/CanViewNavGroup' // ** Utils import { hexToRGBA } from 'src/@core/utils/hex-to-rgba' diff --git a/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.tsx b/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.tsx index dc6eeb8..e713726 100644 --- a/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.tsx +++ b/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.tsx @@ -25,9 +25,9 @@ import { NavLink } from 'src/@core/layouts/types' import { Settings } from 'src/@core/context/settingsContext' // ** Custom Components Imports -import UserIcon from 'app/layouts/components/UserIcon' -import Translations from 'app/layouts/components/Translations' -import CanViewNavLink from 'app/layouts/components/acl/CanViewNavLink' +import UserIcon from 'src/layouts/components/UserIcon' +import Translations from 'src/layouts/components/Translations' +import CanViewNavLink from 'src/layouts/components/acl/CanViewNavLink' // ** Util Imports import { hexToRGBA } from 'src/@core/utils/hex-to-rgba' diff --git a/src/@core/layouts/components/shared-components/UserDropdown.tsx b/src/@core/layouts/components/shared-components/UserDropdown.tsx index eae6f90..ef2a7b6 100644 --- a/src/@core/layouts/components/shared-components/UserDropdown.tsx +++ b/src/@core/layouts/components/shared-components/UserDropdown.tsx @@ -2,7 +2,7 @@ import { useState, SyntheticEvent, Fragment } from 'react' // ** Next Import -import { useRouter } from 'next/router' +import { useRouter } from 'next/navigation' // ** MUI Imports import Box from '@mui/material/Box' diff --git a/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.tsx b/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.tsx index cc3b578..260b608 100644 --- a/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.tsx +++ b/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.tsx @@ -31,9 +31,9 @@ import { NavGroup, LayoutProps } from 'src/@core/layouts/types' // ** Custom Components Imports import VerticalNavItems from './VerticalNavItems' -import UserIcon from 'app/layouts/components/UserIcon' -import Translations from 'app/layouts/components/Translations' -import CanViewNavGroup from 'app/layouts/components/acl/CanViewNavGroup' +import UserIcon from 'src/layouts/components/UserIcon' +import Translations from 'src/layouts/components/Translations' +import CanViewNavGroup from 'src/layouts/components/acl/CanViewNavGroup' interface Props { item: NavGroup diff --git a/src/@core/layouts/components/vertical/navigation/VerticalNavLink.tsx b/src/@core/layouts/components/vertical/navigation/VerticalNavLink.tsx index 9ee0efd..dbbb856 100644 --- a/src/@core/layouts/components/vertical/navigation/VerticalNavLink.tsx +++ b/src/@core/layouts/components/vertical/navigation/VerticalNavLink.tsx @@ -3,7 +3,7 @@ import { ElementType } from 'react' // ** Next Imports import Link from 'next/link' -import { useRouter } from 'next/router' +import { usePathname } from 'next/navigation' // ** MUI Imports import Chip from '@mui/material/Chip' @@ -22,13 +22,12 @@ import { NavLink, NavGroup } from 'src/@core/layouts/types' import { Settings } from 'src/@core/context/settingsContext' // ** Custom Components Imports -import UserIcon from 'app/layouts/components/UserIcon' -import Translations from 'app/layouts/components/Translations' -import CanViewNavLink from 'app/layouts/components/acl/CanViewNavLink' +import UserIcon from 'src/layouts/components/UserIcon' +import Translations from 'src/layouts/components/Translations' +import CanViewNavLink from 'src/layouts/components/acl/CanViewNavLink' // ** Util Imports import { hexToRGBA } from 'src/@core/utils/hex-to-rgba' -import { handleURLQueries } from 'src/@core/layouts/utils' interface Props { parent?: boolean @@ -95,7 +94,7 @@ const VerticalNavLink = ({ }: Props) => { // ** Hooks const theme = useTheme() - const router = useRouter() + const pathname = usePathname() // ** Vars const { mode, navCollapsed } = settings @@ -121,7 +120,7 @@ const VerticalNavLink = ({ } const isNavLinkActive = () => { - if (router.pathname === item.path || handleURLQueries(router, item.path)) { + if (pathname === item.path) { return true } else { return false diff --git a/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.tsx b/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.tsx index 032e73a..15642b8 100644 --- a/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.tsx +++ b/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.tsx @@ -11,8 +11,8 @@ import { NavSectionTitle } from 'src/@core/layouts/types' import { Settings } from 'src/@core/context/settingsContext' // ** Custom Components Imports -import Translations from 'app/layouts/components/Translations' -import CanViewNavSectionTitle from 'app/layouts/components/acl/CanViewNavSectionTitle' +import Translations from 'src/layouts/components/Translations' +import CanViewNavSectionTitle from 'src/layouts/components/acl/CanViewNavSectionTitle' interface Props { navHover: boolean diff --git a/src/@core/theme/ThemeComponent.tsx b/src/@core/theme/ThemeComponent.tsx index 8b36071..3c4f861 100644 --- a/src/@core/theme/ThemeComponent.tsx +++ b/src/@core/theme/ThemeComponent.tsx @@ -15,7 +15,7 @@ import { Settings } from 'src/@core/context/settingsContext' import themeConfig from 'src/configs/themeConfig' // ** Direction component for LTR or RTL -import Direction from 'app/layouts/components/Direction' +import Direction from 'src/layouts/components/Direction' // ** Theme Override Imports import overrides from './overrides' @@ -23,7 +23,7 @@ import typography from './typography' // ** Theme import themeOptions from './ThemeOptions' -import UserThemeOptions from 'app/layouts/UserThemeOptions' +import UserThemeOptions from 'src/layouts/UserThemeOptions' // ** Global Styles import GlobalStyling from './globalStyles' diff --git a/src/@core/theme/ThemeOptions.ts b/src/@core/theme/ThemeOptions.ts index b965b74..5fbc5fd 100644 --- a/src/@core/theme/ThemeOptions.ts +++ b/src/@core/theme/ThemeOptions.ts @@ -3,7 +3,7 @@ import { deepmerge } from '@mui/utils' import { ThemeOptions } from '@mui/material' // ** User Theme Options -import UserThemeOptions from 'app/layouts/UserThemeOptions' +import UserThemeOptions from 'src/layouts/UserThemeOptions' // ** Type Import import { Settings } from 'src/@core/context/settingsContext' diff --git a/src/layouts/MainLayout.tsx b/src/layouts/MainLayout.tsx new file mode 100644 index 0000000..49097b3 --- /dev/null +++ b/src/layouts/MainLayout.tsx @@ -0,0 +1,18 @@ +'use client'; + +import { FC, PropsWithChildren, useContext } from "react"; +import UserLayout from "src/layouts/UserLayout"; +import ThemeComponent from "src/@core/theme/ThemeComponent"; +import { SettingsContext, SettingsProvider } from "src/@core/context/settingsContext"; + +export const MainLayout: FC = ({ children }) => { + const { settings } = useContext(SettingsContext); + + return ( + + + {children} + + + ) +} \ No newline at end of file diff --git a/app/layouts/UserLayout.tsx b/src/layouts/UserLayout.tsx similarity index 97% rename from app/layouts/UserLayout.tsx rename to src/layouts/UserLayout.tsx index 4a12c9b..2533c93 100644 --- a/app/layouts/UserLayout.tsx +++ b/src/layouts/UserLayout.tsx @@ -1,3 +1,5 @@ +"use client" + // ** React Imports import { ReactNode } from 'react' @@ -45,7 +47,7 @@ const UserLayout = ({ children, contentHeightFixed }: Props) => { * to know more about what values can be passed to this hook. * ! Do not change this value unless you know what you are doing. It can break the template. */ - const hidden = useMediaQuery((theme: Theme) => theme.breakpoints.down('lg')) + const hidden = useMediaQuery((theme: Theme) => theme?.breakpoints.down('lg')) if (hidden && settings.layout === 'horizontal') { settings.layout = 'vertical' @@ -90,7 +92,6 @@ const UserLayout = ({ children, contentHeightFixed }: Props) => { })} > {children} - ) } diff --git a/app/layouts/UserThemeOptions.ts b/src/layouts/UserThemeOptions.ts similarity index 100% rename from app/layouts/UserThemeOptions.ts rename to src/layouts/UserThemeOptions.ts diff --git a/app/layouts/components/Direction.tsx b/src/layouts/components/Direction.tsx similarity index 98% rename from app/layouts/components/Direction.tsx rename to src/layouts/components/Direction.tsx index 8d1a02a..e343118 100644 --- a/app/layouts/components/Direction.tsx +++ b/src/layouts/components/Direction.tsx @@ -1,3 +1,5 @@ +'use client'; + // ** React Imports import { useEffect, ReactNode } from 'react' diff --git a/app/layouts/components/Translations.tsx b/src/layouts/components/Translations.tsx similarity index 100% rename from app/layouts/components/Translations.tsx rename to src/layouts/components/Translations.tsx diff --git a/app/layouts/components/UserIcon.tsx b/src/layouts/components/UserIcon.tsx similarity index 100% rename from app/layouts/components/UserIcon.tsx rename to src/layouts/components/UserIcon.tsx diff --git a/app/layouts/components/acl/Can.tsx b/src/layouts/components/acl/Can.tsx similarity index 100% rename from app/layouts/components/acl/Can.tsx rename to src/layouts/components/acl/Can.tsx diff --git a/app/layouts/components/acl/CanViewNavGroup.tsx b/src/layouts/components/acl/CanViewNavGroup.tsx similarity index 94% rename from app/layouts/components/acl/CanViewNavGroup.tsx rename to src/layouts/components/acl/CanViewNavGroup.tsx index 2a31934..b94235d 100644 --- a/app/layouts/components/acl/CanViewNavGroup.tsx +++ b/src/layouts/components/acl/CanViewNavGroup.tsx @@ -2,7 +2,7 @@ import { ReactNode, useContext } from 'react' // ** Component Imports -import { AbilityContext } from 'app/layouts/components/acl/Can' +import { AbilityContext } from 'src/layouts/components/acl/Can' // ** Types import { NavGroup, NavLink } from 'src/@core/layouts/types' diff --git a/app/layouts/components/acl/CanViewNavLink.tsx b/src/layouts/components/acl/CanViewNavLink.tsx similarity index 88% rename from app/layouts/components/acl/CanViewNavLink.tsx rename to src/layouts/components/acl/CanViewNavLink.tsx index 57f7d37..79d4652 100644 --- a/app/layouts/components/acl/CanViewNavLink.tsx +++ b/src/layouts/components/acl/CanViewNavLink.tsx @@ -2,7 +2,7 @@ import { ReactNode, useContext } from 'react' // ** Component Imports -import { AbilityContext } from 'app/layouts/components/acl/Can' +import { AbilityContext } from 'src/layouts/components/acl/Can' // ** Types import { NavLink } from 'src/@core/layouts/types' diff --git a/app/layouts/components/acl/CanViewNavSectionTitle.tsx b/src/layouts/components/acl/CanViewNavSectionTitle.tsx similarity index 89% rename from app/layouts/components/acl/CanViewNavSectionTitle.tsx rename to src/layouts/components/acl/CanViewNavSectionTitle.tsx index 3a854a3..88817d3 100644 --- a/app/layouts/components/acl/CanViewNavSectionTitle.tsx +++ b/src/layouts/components/acl/CanViewNavSectionTitle.tsx @@ -2,7 +2,7 @@ import { ReactNode, useContext } from 'react' // ** Component Imports -import { AbilityContext } from 'app/layouts/components/acl/Can' +import { AbilityContext } from 'src/layouts/components/acl/Can' // ** Types import { NavSectionTitle } from 'src/@core/layouts/types' diff --git a/app/layouts/components/horizontal/AppBarContent.tsx b/src/layouts/components/horizontal/AppBarContent.tsx similarity index 100% rename from app/layouts/components/horizontal/AppBarContent.tsx rename to src/layouts/components/horizontal/AppBarContent.tsx diff --git a/app/layouts/components/horizontal/ServerSideNavItems.tsx b/src/layouts/components/horizontal/ServerSideNavItems.tsx similarity index 100% rename from app/layouts/components/horizontal/ServerSideNavItems.tsx rename to src/layouts/components/horizontal/ServerSideNavItems.tsx diff --git a/app/layouts/components/vertical/AppBarContent.tsx b/src/layouts/components/vertical/AppBarContent.tsx similarity index 100% rename from app/layouts/components/vertical/AppBarContent.tsx rename to src/layouts/components/vertical/AppBarContent.tsx diff --git a/app/layouts/components/vertical/ServerSideNavItems.tsx b/src/layouts/components/vertical/ServerSideNavItems.tsx similarity index 100% rename from app/layouts/components/vertical/ServerSideNavItems.tsx rename to src/layouts/components/vertical/ServerSideNavItems.tsx diff --git a/yarn.lock b/yarn.lock index a48f8d0..df334a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -312,14 +312,14 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@eslint-community/eslint-utils@^4.2.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.10.0" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== @@ -867,7 +867,7 @@ "@types/react" "*" hoist-non-react-statics "^3.3.0" -"@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.12": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -986,7 +986,7 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/semver@^7.3.12": +"@types/semver@^7.5.0": version "7.5.8" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e" integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== @@ -1011,29 +1011,33 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz#54f8368d080eb384a455f60c2ee044e948a8ce67" - integrity sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ== +"@typescript-eslint/eslint-plugin@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" + integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== dependencies: - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/type-utils" "5.48.0" - "@typescript-eslint/utils" "5.48.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/type-utils" "6.1.0" + "@typescript-eslint/utils" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" - ignore "^5.2.0" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/parser@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.48.0.tgz#02803355b23884a83e543755349809a50b7ed9ba" - integrity sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg== +"@typescript-eslint/parser@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5" + integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw== dependencies: - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/typescript-estree" "5.48.0" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0": @@ -1047,13 +1051,13 @@ "@typescript-eslint/visitor-keys" "7.2.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz#607731cb0957fbc52fd754fd79507d1b6659cecf" - integrity sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow== +"@typescript-eslint/scope-manager@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" + integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== dependencies: - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/visitor-keys" "5.48.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" "@typescript-eslint/scope-manager@7.2.0": version "7.2.0" @@ -1063,38 +1067,38 @@ "@typescript-eslint/types" "7.2.0" "@typescript-eslint/visitor-keys" "7.2.0" -"@typescript-eslint/type-utils@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz#40496dccfdc2daa14a565f8be80ad1ae3882d6d6" - integrity sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g== +"@typescript-eslint/type-utils@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" + integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== dependencies: - "@typescript-eslint/typescript-estree" "5.48.0" - "@typescript-eslint/utils" "5.48.0" + "@typescript-eslint/typescript-estree" "6.1.0" + "@typescript-eslint/utils" "6.1.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.0.tgz#d725da8dfcff320aab2ac6f65c97b0df30058449" - integrity sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw== +"@typescript-eslint/types@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" + integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== "@typescript-eslint/types@7.2.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.2.0.tgz#0feb685f16de320e8520f13cca30779c8b7c403f" integrity sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA== -"@typescript-eslint/typescript-estree@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz#a7f04bccb001003405bb5452d43953a382c2fac2" - integrity sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw== +"@typescript-eslint/typescript-estree@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" + integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== dependencies: - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/visitor-keys" "5.48.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/visitor-keys" "6.1.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" "@typescript-eslint/typescript-estree@7.2.0": version "7.2.0" @@ -1110,27 +1114,26 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.0.tgz#eee926af2733f7156ad8d15e51791e42ce300273" - integrity sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ== +"@typescript-eslint/utils@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" + integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.48.0" - "@typescript-eslint/types" "5.48.0" - "@typescript-eslint/typescript-estree" "5.48.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.1.0" + "@typescript-eslint/types" "6.1.0" + "@typescript-eslint/typescript-estree" "6.1.0" + semver "^7.5.4" -"@typescript-eslint/visitor-keys@5.48.0": - version "5.48.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz#4446d5e7f6cadde7140390c0e284c8702d944904" - integrity sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q== +"@typescript-eslint/visitor-keys@6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" + integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== dependencies: - "@typescript-eslint/types" "5.48.0" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "6.1.0" + eslint-visitor-keys "^3.4.1" "@typescript-eslint/visitor-keys@7.2.0": version "7.2.0" @@ -2389,14 +2392,6 @@ eslint-plugin-react@^7.33.2: semver "^6.3.1" string.prototype.matchall "^4.0.10" -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== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -2405,18 +2400,6 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" @@ -2489,11 +2472,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -4471,11 +4449,6 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - reselect@^4.1.6, reselect@^4.1.7: version "4.1.8" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" @@ -4579,7 +4552,7 @@ semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.7, semver@^7.5.4: +semver@^7.5.4: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -4670,16 +4643,8 @@ streamsearch@^1.1.0: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4755,14 +4720,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5042,23 +5000,11 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"