diff --git a/.changeset/sharp-mugs-warn.md b/.changeset/sharp-mugs-warn.md
new file mode 100644
index 0000000000..27a68caecd
--- /dev/null
+++ b/.changeset/sharp-mugs-warn.md
@@ -0,0 +1,5 @@
+---
+'nextra': patch
+---
+
+fix reload of nextra layout on route change, reported by sound.xyz
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index ac611f5221..d83a995753 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -59,6 +59,7 @@ module.exports = {
'prefer-arrow-callback': ['error', { allowNamedFunctions: true }],
'unicorn/prefer-at': 'error',
'sonarjs/no-small-switch': 'error',
+ 'prefer-const': ['error', { destructuring: 'all' }],
// todo: enable
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
diff --git a/package.json b/package.json
index fba63b7fb6..f067a764fc 100644
--- a/package.json
+++ b/package.json
@@ -25,17 +25,17 @@
"@ianvs/prettier-plugin-sort-imports": "4.1.1",
"@next/eslint-plugin-next": "13.5.6",
"@rollup/plugin-alias": "^5.0.0",
- "@typescript-eslint/eslint-plugin": "6.9.0",
- "@typescript-eslint/parser": "6.9.0",
- "eslint": "8.52.0",
- "eslint-config-prettier": "9.0.0",
- "eslint-plugin-import": "2.29.0",
+ "@typescript-eslint/eslint-plugin": "6.18.1",
+ "@typescript-eslint/parser": "6.18.1",
+ "eslint": "8.56.0",
+ "eslint-config-prettier": "9.1.0",
+ "eslint-plugin-import": "2.29.1",
"eslint-plugin-react": "7.33.2",
"eslint-plugin-react-hooks": "4.6.0",
- "eslint-plugin-sonarjs": "^0.21.0",
- "eslint-plugin-tailwindcss": "3.13.0",
+ "eslint-plugin-sonarjs": "^0.23.0",
+ "eslint-plugin-tailwindcss": "3.13.1",
"eslint-plugin-typescript-sort-keys": "3.1.0",
- "eslint-plugin-unicorn": "48.0.1",
+ "eslint-plugin-unicorn": "50.0.1",
"prettier": "3.0.3",
"prettier-plugin-pkg": "0.18.0",
"prettier-plugin-tailwindcss": "0.5.6",
diff --git a/packages/nextra/src/client/setup-page.tsx b/packages/nextra/src/client/setup-page.tsx
index 6448f6e594..d4fdff1fcb 100644
--- a/packages/nextra/src/client/setup-page.tsx
+++ b/packages/nextra/src/client/setup-page.tsx
@@ -6,10 +6,10 @@
import type { ReactElement, ReactNode } from 'react'
import { NEXTRA_INTERNAL } from '../constants.js'
import type {
- Heading,
NextraInternalGlobal,
NextraMDXContent,
- PageOpts
+ PageOpts,
+ UseTOC
} from '../types'
import { findFolder } from '../utils.js'
import { useRouter } from './hooks/index.js'
@@ -33,58 +33,58 @@ export function HOC_MDXWrapper(
__nextra_internal__.pageMap = pageOpts.pageMap
__nextra_internal__.context[route] = {
Content: MDXContent,
- pageOpts
+ pageOpts,
+ useTOC
}
- return function NextraLayout({
- __nextra_pageMap = [],
- __nextra_dynamic_opts,
- ...props
- }: any): ReactElement {
- const __nextra_internal__ = (globalThis as NextraInternalGlobal)[
- NEXTRA_INTERNAL
- ]
- const { Layout, themeConfig } = __nextra_internal__
- const { route, locale } = useRouter()
+ return NextraLayout
+}
- const pageContext = __nextra_internal__.context[route]
+function NextraLayout({
+ __nextra_pageMap = [],
+ __nextra_dynamic_opts,
+ ...props
+}: any): ReactElement {
+ const __nextra_internal__ = (globalThis as NextraInternalGlobal)[
+ NEXTRA_INTERNAL
+ ]
+ const { Layout, themeConfig } = __nextra_internal__
+ const { route, locale } = useRouter()
- if (!pageContext) {
- throw new Error(
- `No content found for the "${route}" route. Please report it as a bug.`
- )
- }
+ const pageContext = __nextra_internal__.context[route]
- let { pageOpts } = pageContext
+ if (!pageContext) {
+ throw new Error(
+ `No content found for the "${route}" route. Please report it as a bug.`
+ )
+ }
- for (const { route, children } of __nextra_pageMap) {
- const paths = route.split('/').slice(locale ? 2 : 1)
- const folder = findFolder(pageOpts.pageMap, paths)
- folder.children = children
- }
+ let { pageOpts, useTOC, Content } = pageContext
- if (__nextra_dynamic_opts) {
- const { title, frontMatter } = __nextra_dynamic_opts
- pageOpts = {
- ...pageOpts,
- title,
- frontMatter
- }
- }
+ for (const { route, children } of __nextra_pageMap) {
+ const paths = route.split('/').slice(locale ? 2 : 1)
+ const folder = findFolder(pageOpts.pageMap, paths)
+ folder.children = children
+ }
- return (
-
-
-
- {/* @ts-expect-error */}
-
-
-
-
- )
+ if (__nextra_dynamic_opts) {
+ const { title, frontMatter } = __nextra_dynamic_opts
+ pageOpts = {
+ ...pageOpts,
+ title,
+ frontMatter
+ }
}
-}
-type UseTOC = (props: Record) => Heading[]
+ return (
+
+
+
+
+
+
+
+ )
+}
function MDXWrapper({
children,
diff --git a/packages/nextra/src/server/loader.ts b/packages/nextra/src/server/loader.ts
index ccf55e9cf7..09a6db1a74 100644
--- a/packages/nextra/src/server/loader.ts
+++ b/packages/nextra/src/server/loader.ts
@@ -222,18 +222,11 @@ import { pageMap } from '${slash(pageMapPath)}'
${isAppFileFromNodeModules ? cssImports : ''}
${finalResult}
-const hoc = HOC_MDXWrapper(
+export default HOC_MDXWrapper(
MDXLayout,
'${route}',
${stringifiedPageOpts},pageMap,frontMatter,title},
typeof RemoteContent === 'undefined' ? useTOC : RemoteContent.useTOC
-)
-
-// Exporting Capitalized function make hot works
-export default function HOC(props) {
- return hoc(props)
-}
-`
-
+)`
return rawJs
}
diff --git a/packages/nextra/src/types.ts b/packages/nextra/src/types.ts
index 9fd50a21a6..40476a82fa 100644
--- a/packages/nextra/src/types.ts
+++ b/packages/nextra/src/types.ts
@@ -105,11 +105,20 @@ export type NextraMDXContent = FC<{
children: ReactNode
}>
+export type UseTOC = (props: Record) => Heading[]
+
export type NextraInternalGlobal = typeof globalThis & {
[NEXTRA_INTERNAL]: {
pageMap: PageMapItem[]
route: string
- context: Record
+ context: Record<
+ string,
+ {
+ Content: NextraMDXContent
+ pageOpts: PageOpts
+ useTOC: UseTOC
+ }
+ >
Layout: FC
themeConfig?: ThemeConfig
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6240b36b8c..6208cadd8b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -35,38 +35,38 @@ importers:
specifier: ^5.0.0
version: 5.0.1
'@typescript-eslint/eslint-plugin':
- specifier: 6.9.0
- version: 6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2)
+ specifier: 6.18.1
+ version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.2.2)
'@typescript-eslint/parser':
- specifier: 6.9.0
- version: 6.9.0(eslint@8.52.0)(typescript@5.2.2)
+ specifier: 6.18.1
+ version: 6.18.1(eslint@8.56.0)(typescript@5.2.2)
eslint:
- specifier: 8.52.0
- version: 8.52.0
+ specifier: 8.56.0
+ version: 8.56.0
eslint-config-prettier:
- specifier: 9.0.0
- version: 9.0.0(eslint@8.52.0)
+ specifier: 9.1.0
+ version: 9.1.0(eslint@8.56.0)
eslint-plugin-import:
- specifier: 2.29.0
- version: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)
+ specifier: 2.29.1
+ version: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)
eslint-plugin-react:
specifier: 7.33.2
- version: 7.33.2(eslint@8.52.0)
+ version: 7.33.2(eslint@8.56.0)
eslint-plugin-react-hooks:
specifier: 4.6.0
- version: 4.6.0(eslint@8.52.0)
+ version: 4.6.0(eslint@8.56.0)
eslint-plugin-sonarjs:
- specifier: ^0.21.0
- version: 0.21.0(eslint@8.52.0)
+ specifier: ^0.23.0
+ version: 0.23.0(eslint@8.56.0)
eslint-plugin-tailwindcss:
- specifier: 3.13.0
- version: 3.13.0(tailwindcss@3.3.3)
+ specifier: 3.13.1
+ version: 3.13.1(tailwindcss@3.3.3)
eslint-plugin-typescript-sort-keys:
specifier: 3.1.0
- version: 3.1.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2)
+ version: 3.1.0(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.2.2)
eslint-plugin-unicorn:
- specifier: 48.0.1
- version: 48.0.1(eslint@8.52.0)
+ specifier: 50.0.1
+ version: 50.0.1(eslint@8.56.0)
prettier:
specifier: 3.0.3
version: 3.0.3
@@ -151,7 +151,7 @@ importers:
version: file:packages/nextra(@types/react@18.2.31)(next@13.5.6)(react-dom@18.2.0)(react@18.2.0)
nextra-theme-blog:
specifier: workspace:*
- version: file:packages/nextra-theme-blog(next@13.5.6)(nextra@3.0.0-alpha.10)(react-dom@18.2.0)(react@18.2.0)
+ version: file:packages/nextra-theme-blog(next@13.5.6)(nextra@3.0.0-alpha.11)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -174,7 +174,7 @@ importers:
version: file:packages/nextra(@types/react@18.2.31)(next@13.5.6)(react-dom@18.2.0)(react@18.2.0)
nextra-theme-docs:
specifier: workspace:*
- version: file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.10)(react-dom@18.2.0)(react@18.2.0)
+ version: file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.11)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -206,7 +206,7 @@ importers:
version: file:packages/nextra(@types/react@18.2.31)(next@13.5.6)(react-dom@18.2.0)(react@18.2.0)
nextra-theme-docs:
specifier: workspace:*
- version: file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.10)(react-dom@18.2.0)(react@18.2.0)
+ version: file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.11)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -2471,13 +2471,13 @@ packages:
dev: true
optional: true
- /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
- eslint: 8.52.0
+ eslint: 8.56.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -2503,8 +2503,8 @@ packages:
- supports-color
dev: true
- /@eslint/eslintrc@2.1.2:
- resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==}
+ /@eslint/eslintrc@2.1.4:
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
@@ -2525,8 +2525,8 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@eslint/js@8.52.0:
- resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==}
+ /@eslint/js@8.56.0:
+ resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
@@ -3442,8 +3442,8 @@ packages:
- webpack-cli
dev: true
- /@typescript-eslint/eslint-plugin@6.9.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2):
- resolution: {integrity: sha512-lgX7F0azQwRPB7t7WAyeHWVfW1YJ9NIgd9mvGhfQpRY56X6AVf8mwM8Wol+0z4liE7XX3QOt8MN1rUKCfSjRIA==}
+ /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -3454,13 +3454,13 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
- '@typescript-eslint/scope-manager': 6.9.0
- '@typescript-eslint/type-utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
- '@typescript-eslint/utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.9.0
+ '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/scope-manager': 6.18.1
+ '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4
- eslint: 8.52.0
+ eslint: 8.56.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -3471,21 +3471,21 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/experimental-utils@5.38.0(eslint@8.52.0)(typescript@5.2.2):
+ /@typescript-eslint/experimental-utils@5.38.0(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-kzXBRfvGlicgGk4CYuRUqKvwc2s3wHXNssUWWJU18bhMRxriFm3BZWyQ6vEHBRpEIMKB6b7MIQHO+9lYlts19w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@typescript-eslint/utils': 5.38.0(eslint@8.52.0)(typescript@5.2.2)
- eslint: 8.52.0
+ '@typescript-eslint/utils': 5.38.0(eslint@8.56.0)(typescript@5.2.2)
+ eslint: 8.56.0
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2):
- resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==}
+ /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -3494,12 +3494,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.9.0
- '@typescript-eslint/types': 6.9.0
- '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2)
- '@typescript-eslint/visitor-keys': 6.9.0
+ '@typescript-eslint/scope-manager': 6.18.1
+ '@typescript-eslint/types': 6.18.1
+ '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.2.2)
+ '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4
- eslint: 8.52.0
+ eslint: 8.56.0
typescript: 5.2.2
transitivePeerDependencies:
- supports-color
@@ -3513,16 +3513,16 @@ packages:
'@typescript-eslint/visitor-keys': 5.38.0
dev: true
- /@typescript-eslint/scope-manager@6.9.0:
- resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==}
+ /@typescript-eslint/scope-manager@6.18.1:
+ resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.9.0
- '@typescript-eslint/visitor-keys': 6.9.0
+ '@typescript-eslint/types': 6.18.1
+ '@typescript-eslint/visitor-keys': 6.18.1
dev: true
- /@typescript-eslint/type-utils@6.9.0(eslint@8.52.0)(typescript@5.2.2):
- resolution: {integrity: sha512-XXeahmfbpuhVbhSOROIzJ+b13krFmgtc4GlEuu1WBT+RpyGPIA4Y/eGnXzjbDj5gZLzpAXO/sj+IF/x2GtTMjQ==}
+ /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -3531,10 +3531,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2)
- '@typescript-eslint/utils': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.2.2)
+ '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
debug: 4.3.4
- eslint: 8.52.0
+ eslint: 8.56.0
ts-api-utils: 1.0.1(typescript@5.2.2)
typescript: 5.2.2
transitivePeerDependencies:
@@ -3546,8 +3546,8 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/types@6.9.0:
- resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==}
+ /@typescript-eslint/types@6.18.1:
+ resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
@@ -3572,8 +3572,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2):
- resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==}
+ /@typescript-eslint/typescript-estree@6.18.1(typescript@5.2.2):
+ resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@@ -3581,11 +3581,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 6.9.0
- '@typescript-eslint/visitor-keys': 6.9.0
+ '@typescript-eslint/types': 6.18.1
+ '@typescript-eslint/visitor-keys': 6.18.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
+ minimatch: 9.0.3
semver: 7.5.4
ts-api-utils: 1.0.1(typescript@5.2.2)
typescript: 5.2.2
@@ -3593,7 +3594,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/utils@5.38.0(eslint@8.52.0)(typescript@5.2.2):
+ /@typescript-eslint/utils@5.38.0(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -3603,27 +3604,27 @@ packages:
'@typescript-eslint/scope-manager': 5.38.0
'@typescript-eslint/types': 5.38.0
'@typescript-eslint/typescript-estree': 5.38.0(typescript@5.2.2)
- eslint: 8.52.0
+ eslint: 8.56.0
eslint-scope: 5.1.1
- eslint-utils: 3.0.0(eslint@8.52.0)
+ eslint-utils: 3.0.0(eslint@8.56.0)
transitivePeerDependencies:
- supports-color
- typescript
dev: true
- /@typescript-eslint/utils@6.9.0(eslint@8.52.0)(typescript@5.2.2):
- resolution: {integrity: sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==}
+ /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.2.2):
+ resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.0
- '@typescript-eslint/scope-manager': 6.9.0
- '@typescript-eslint/types': 6.9.0
- '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2)
- eslint: 8.52.0
+ '@typescript-eslint/scope-manager': 6.18.1
+ '@typescript-eslint/types': 6.18.1
+ '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.2.2)
+ eslint: 8.56.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
@@ -3638,11 +3639,11 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
- /@typescript-eslint/visitor-keys@6.9.0:
- resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==}
+ /@typescript-eslint/visitor-keys@6.18.1:
+ resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.9.0
+ '@typescript-eslint/types': 6.18.1
eslint-visitor-keys: 3.4.3
dev: true
@@ -4250,6 +4251,17 @@ packages:
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.10)
+ /browserslist@4.22.2:
+ resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001576
+ electron-to-chromium: 1.4.630
+ node-releases: 2.0.14
+ update-browserslist-db: 1.0.13(browserslist@4.22.2)
+ dev: true
+
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
@@ -4330,6 +4342,10 @@ packages:
/caniuse-lite@1.0.30001521:
resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==}
+ /caniuse-lite@1.0.30001576:
+ resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==}
+ dev: true
+
/ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
dev: false
@@ -4427,6 +4443,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /ci-info@4.0.0:
+ resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==}
+ engines: {node: '>=8'}
+ dev: true
+
/clean-regexp@1.0.0:
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
engines: {node: '>=4'}
@@ -4587,6 +4608,12 @@ packages:
browserslist: 4.21.10
dev: true
+ /core-js-compat@3.35.0:
+ resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==}
+ dependencies:
+ browserslist: 4.22.2
+ dev: true
+
/cose-base@1.0.3:
resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==}
dependencies:
@@ -5272,6 +5299,10 @@ packages:
/electron-to-chromium@1.4.496:
resolution: {integrity: sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g==}
+ /electron-to-chromium@1.4.630:
+ resolution: {integrity: sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==}
+ dev: true
+
/elkjs@0.8.2:
resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==}
dev: false
@@ -5485,13 +5516,13 @@ packages:
engines: {node: '>=12'}
dev: false
- /eslint-config-prettier@9.0.0(eslint@8.52.0):
- resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==}
+ /eslint-config-prettier@9.1.0(eslint@8.56.0):
+ resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
- eslint: 8.52.0
+ eslint: 8.56.0
dev: true
/eslint-import-resolver-node@0.3.9:
@@ -5504,7 +5535,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.52.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -5525,16 +5556,16 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
debug: 3.2.7
- eslint: 8.52.0
+ eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0):
- resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==}
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0):
+ resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -5543,16 +5574,16 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
array.prototype.flat: 1.3.2
array.prototype.flatmap: 1.3.2
debug: 3.2.7
doctrine: 2.1.0
- eslint: 8.52.0
+ eslint: 8.56.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint@8.52.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0)
hasown: 2.0.0
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -5561,23 +5592,23 @@ packages:
object.groupby: 1.0.1
object.values: 1.1.7
semver: 6.3.1
- tsconfig-paths: 3.14.2
+ tsconfig-paths: 3.15.0
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
dev: true
- /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0):
+ /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0):
resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
engines: {node: '>=10'}
peerDependencies:
eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
dependencies:
- eslint: 8.52.0
+ eslint: 8.56.0
dev: true
- /eslint-plugin-react@7.33.2(eslint@8.52.0):
+ /eslint-plugin-react@7.33.2(eslint@8.56.0):
resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
engines: {node: '>=4'}
peerDependencies:
@@ -5588,7 +5619,7 @@ packages:
array.prototype.tosorted: 1.1.1
doctrine: 2.1.0
es-iterator-helpers: 1.0.13
- eslint: 8.52.0
+ eslint: 8.56.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.3
minimatch: 3.1.2
@@ -5602,17 +5633,17 @@ packages:
string.prototype.matchall: 4.0.8
dev: true
- /eslint-plugin-sonarjs@0.21.0(eslint@8.52.0):
- resolution: {integrity: sha512-oezUDfFT5S6j3rQheZ4DLPrbetPmMS7zHIKWGHr0CM3g5JgyZroz1FpIKa4jV83NsGpmgIeagpokWDKIJzRQmw==}
+ /eslint-plugin-sonarjs@0.23.0(eslint@8.56.0):
+ resolution: {integrity: sha512-z44T3PBf9W7qQ/aR+NmofOTyg6HLhSEZOPD4zhStqBpLoMp8GYhFksuUBnCxbnf1nfISpKBVkQhiBLFI/F4Wlg==}
engines: {node: '>=14'}
peerDependencies:
eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- eslint: 8.52.0
+ eslint: 8.56.0
dev: true
- /eslint-plugin-tailwindcss@3.13.0(tailwindcss@3.3.3):
- resolution: {integrity: sha512-Fcep4KDRLWaK3KmkQbdyKHG0P4GdXFmXdDaweTIPcgOP60OOuWFbh1++dufRT28Q4zpKTKaHwTsXPJ4O/EjU2Q==}
+ /eslint-plugin-tailwindcss@3.13.1(tailwindcss@3.3.3):
+ resolution: {integrity: sha512-2Nlgr9doO6vFAG9w4iGU0sspWXuzypfng10HTF+dFS2NterhweWtgdRvf/f7aaoOUUxVZM8wMIXzazrZ7CxyeA==}
engines: {node: '>=12.13.0'}
peerDependencies:
tailwindcss: ^3.3.2
@@ -5622,7 +5653,7 @@ packages:
tailwindcss: 3.3.3
dev: true
- /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.9.0)(eslint@8.52.0)(typescript@5.2.2):
+ /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.2.2):
resolution: {integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==}
engines: {node: '>= 16'}
peerDependencies:
@@ -5630,9 +5661,9 @@ packages:
eslint: ^7 || ^8
typescript: ^3 || ^4 || ^5
dependencies:
- '@typescript-eslint/experimental-utils': 5.38.0(eslint@8.52.0)(typescript@5.2.2)
- '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2)
- eslint: 8.52.0
+ '@typescript-eslint/experimental-utils': 5.38.0(eslint@8.56.0)(typescript@5.2.2)
+ '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.2.2)
+ eslint: 8.56.0
json-schema: 0.4.0
natural-compare-lite: 1.4.0
typescript: 5.2.2
@@ -5640,28 +5671,31 @@ packages:
- supports-color
dev: true
- /eslint-plugin-unicorn@48.0.1(eslint@8.52.0):
- resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==}
+ /eslint-plugin-unicorn@50.0.1(eslint@8.56.0):
+ resolution: {integrity: sha512-KxenCZxqSYW0GWHH18okDlOQcpezcitm5aOSz6EnobyJ6BIByiPDviQRjJIUAjG/tMN11958MxaQ+qCoU6lfDA==}
engines: {node: '>=16'}
peerDependencies:
- eslint: '>=8.44.0'
+ eslint: '>=8.56.0'
dependencies:
- '@babel/helper-validator-identifier': 7.22.5
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
- ci-info: 3.8.0
+ '@babel/helper-validator-identifier': 7.22.20
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
+ '@eslint/eslintrc': 2.1.4
+ ci-info: 4.0.0
clean-regexp: 1.0.0
- eslint: 8.52.0
+ core-js-compat: 3.35.0
+ eslint: 8.56.0
esquery: 1.5.0
indent-string: 4.0.0
is-builtin-module: 3.2.1
jsesc: 3.0.2
- lodash: 4.17.21
pluralize: 8.0.0
read-pkg-up: 7.0.1
regexp-tree: 0.1.27
regjsparser: 0.10.0
semver: 7.5.4
strip-indent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
/eslint-scope@5.1.1:
@@ -5698,13 +5732,13 @@ packages:
eslint-visitor-keys: 2.1.0
dev: true
- /eslint-utils@3.0.0(eslint@8.52.0):
+ /eslint-utils@3.0.0(eslint@8.56.0):
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
- eslint: 8.52.0
+ eslint: 8.56.0
eslint-visitor-keys: 2.1.0
dev: true
@@ -5772,15 +5806,15 @@ packages:
- supports-color
dev: true
- /eslint@8.52.0:
- resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==}
+ /eslint@8.56.0:
+ resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@eslint-community/regexpp': 4.6.2
- '@eslint/eslintrc': 2.1.2
- '@eslint/js': 8.52.0
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.56.0
'@humanwhocodes/config-array': 0.11.13
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
@@ -8648,6 +8682,10 @@ packages:
/node-releases@2.0.13:
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+ /node-releases@2.0.14:
+ resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
+ dev: true
+
/non-layered-tidy-tree-layout@2.0.2:
resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==}
dev: false
@@ -10641,8 +10679,8 @@ packages:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true
- /tsconfig-paths@3.14.2:
- resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
+ /tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
dependencies:
'@types/json5': 0.0.29
json5: 1.0.2
@@ -11054,6 +11092,17 @@ packages:
escalade: 3.1.1
picocolors: 1.0.0
+ /update-browserslist-db@1.0.13(browserslist@4.22.2):
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.22.2
+ escalade: 3.1.1
+ picocolors: 1.0.0
+ dev: true
+
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
@@ -11694,7 +11743,7 @@ packages:
- supports-color
dev: false
- file:packages/nextra-theme-blog(next@13.5.6)(nextra@3.0.0-alpha.10)(react-dom@18.2.0)(react@18.2.0):
+ file:packages/nextra-theme-blog(next@13.5.6)(nextra@3.0.0-alpha.11)(react-dom@18.2.0)(react@18.2.0):
resolution: {directory: packages/nextra-theme-blog, type: directory}
id: file:packages/nextra-theme-blog
name: nextra-theme-blog
@@ -11715,7 +11764,7 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: false
- file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.10)(react-dom@18.2.0)(react@18.2.0):
+ file:packages/nextra-theme-docs(next@13.5.6)(nextra@3.0.0-alpha.11)(react-dom@18.2.0)(react@18.2.0):
resolution: {directory: packages/nextra-theme-docs, type: directory}
id: file:packages/nextra-theme-docs
name: nextra-theme-docs