diff --git a/.changeset/tidy-beans-smile.md b/.changeset/tidy-beans-smile.md
new file mode 100644
index 00000000000..78fc438aa03
--- /dev/null
+++ b/.changeset/tidy-beans-smile.md
@@ -0,0 +1,5 @@
+---
+'react-docgen': patch
+---
+
+Allow parsing with Babel 8 when it is supplied via an override, while preserving Babel 7's default parser behavior.
diff --git a/packages/react-docgen/package.json b/packages/react-docgen/package.json
index 7fce579d521..2e6abdc3087 100644
--- a/packages/react-docgen/package.json
+++ b/packages/react-docgen/package.json
@@ -53,5 +53,8 @@
"doctrine": "^3.0.0",
"resolve": "^1.22.1",
"strip-indent": "^4.0.0"
+ },
+ "devDependencies": {
+ "babel-core-8": "npm:@babel/core@8.0.1"
}
}
diff --git a/packages/react-docgen/src/__tests__/babel8-test.ts b/packages/react-docgen/src/__tests__/babel8-test.ts
new file mode 100644
index 00000000000..86e223d483c
--- /dev/null
+++ b/packages/react-docgen/src/__tests__/babel8-test.ts
@@ -0,0 +1,75 @@
+import { parse } from '../main.js';
+import { expect, test, vi } from 'vitest';
+
+vi.mock('@babel/core', () => import('babel-core-8'));
+
+test('parses components with Babel 8', () => {
+ const result = parse('export function Button() { return ; }');
+
+ expect(result).toHaveLength(1);
+});
+
+test('parses TypeScript function props with Babel 8', () => {
+ const result = parse(
+ `export type MenuProps = {
+ onOpenChange?: (open: boolean) => void;
+ };
+
+ export function Menu(_props: MenuProps) {
+ return
;
+ }`,
+ { filename: 'index.tsx' },
+ );
+
+ expect(result[0]?.props?.onOpenChange?.tsType).toEqual({
+ name: 'signature',
+ type: 'function',
+ raw: '(open: boolean) => void',
+ signature: {
+ arguments: [
+ {
+ name: 'open',
+ type: { name: 'boolean' },
+ },
+ ],
+ return: { name: 'void' },
+ },
+ });
+});
+
+test('parses generic arrow functions in TypeScript files with Babel 8', () => {
+ const result = parse(
+ `import React from 'react';
+
+ export const mockDomain = (
+ entities: Record = {},
+ ) => ({ entities });
+
+ export function Button() {
+ return React.createElement('button');
+ }`,
+ { filename: 'store.ts' },
+ );
+
+ expect(result).toHaveLength(1);
+});
+
+test('parses mapped TypeScript props with Babel 8', () => {
+ const result = parse(
+ `export type StatusFiltersProps = {
+ statuses?: { readonly [Key in K]: number };
+ };
+
+ export function StatusFilters(
+ _props: StatusFiltersProps,
+ ) {
+ return ;
+ }`,
+ { filename: 'index.tsx' },
+ );
+
+ expect(result[0]?.props?.statuses?.tsType).toMatchObject({
+ name: 'signature',
+ type: 'object',
+ });
+});
diff --git a/packages/react-docgen/src/babelParser.ts b/packages/react-docgen/src/babelParser.ts
index 8c323c5a99c..0eaa6031ca1 100644
--- a/packages/react-docgen/src/babelParser.ts
+++ b/packages/react-docgen/src/babelParser.ts
@@ -1,34 +1,58 @@
import type { ParserOptions, TransformOptions } from '@babel/core';
-import { loadPartialConfig, parseSync } from '@babel/core';
+import * as babel from '@babel/core';
import type { File } from '@babel/types';
import { extname } from 'path';
const TYPESCRIPT_EXTS = new Set(['.cts', '.mts', '.ts', '.tsx']);
+const { parseSync, version } = babel;
+// Babel 7 exports this at runtime, but its DefinitelyTyped definitions omit it.
+const loadPartialConfigSync = (
+ babel as typeof babel & {
+ loadPartialConfigSync: typeof babel.loadPartialConfig;
+ }
+).loadPartialConfigSync;
+const IS_BABEL_8 = Number.parseInt(version, 10) >= 8;
function getDefaultPlugins(
options: TransformOptions,
): NonNullable {
- return [
- 'jsx',
- options.filename && TYPESCRIPT_EXTS.has(extname(options.filename))
- ? 'typescript'
- : 'flow',
+ const extension = options.filename ? extname(options.filename) : '';
+ const isTypeScript = TYPESCRIPT_EXTS.has(extension);
+ const plugins: NonNullable = [
+ ...(isTypeScript && extension !== '.tsx' ? [] : ['jsx' as const]),
+ isTypeScript ? 'typescript' : 'flow',
'asyncDoExpressions',
- 'decimal',
+ ];
+
+ if (!IS_BABEL_8) {
+ plugins.push('decimal');
+ }
+
+ plugins.push(
['decorators', { decoratorsBeforeExport: false }],
'decoratorAutoAccessors',
'destructuringPrivate',
'doExpressions',
'exportDefaultFrom',
'functionBind',
- 'importAssertions',
- 'moduleBlocks',
- 'partialApplication',
- ['pipelineOperator', { proposal: 'minimal' }],
- ['recordAndTuple', { syntaxType: 'bar' }],
- 'regexpUnicodeSets',
- 'throwExpressions',
- ];
+ );
+
+ if (!IS_BABEL_8) {
+ plugins.push('importAssertions');
+ }
+
+ plugins.push('moduleBlocks', 'partialApplication', [
+ 'pipelineOperator',
+ { proposal: IS_BABEL_8 ? 'fsharp' : 'minimal' },
+ ]);
+
+ if (!IS_BABEL_8) {
+ plugins.push(['recordAndTuple', { syntaxType: 'bar' }]);
+ }
+
+ plugins.push('regexpUnicodeSets', 'throwExpressions');
+
+ return plugins;
}
function buildPluginList(
@@ -42,7 +66,7 @@ function buildPluginList(
// Let's check if babel finds a config file for this source file
// If babel does find a config file we do not apply our defaults
- const partialConfig = loadPartialConfig(options);
+ const partialConfig = loadPartialConfigSync(options);
if (
plugins.length === 0 &&
diff --git a/packages/react-docgen/src/utils/getTSType.ts b/packages/react-docgen/src/utils/getTSType.ts
index 91346f11915..77fad3f4000 100644
--- a/packages/react-docgen/src/utils/getTSType.ts
+++ b/packages/react-docgen/src/utils/getTSType.ts
@@ -285,10 +285,12 @@ function handleTSMappedType(
path: NodePath,
typeParams: TypeParameters | null,
): ObjectSignatureType {
- const key = getTSTypeWithResolvedTypes(
- path.get('typeParameter').get('constraint') as NodePath,
- typeParams,
- );
+ const constraint = (
+ 'constraint' in path.node
+ ? path.get('constraint')
+ : path.get('typeParameter').get('constraint')
+ ) as NodePath;
+ const key = getTSTypeWithResolvedTypes(constraint, typeParams);
key.required = !path.node.optional;
@@ -321,8 +323,11 @@ function handleTSFunctionType(
typeParams: TypeParameters | null,
): TSFunctionSignatureType {
let returnType: TypeDescriptor | undefined;
+ const usesBabel8Fields = 'params' in path.node;
- const annotation = path.get('typeAnnotation');
+ const annotation = path.get(
+ usesBabel8Fields ? 'returnType' : 'typeAnnotation',
+ ) as NodePath;
if (annotation.hasNode()) {
returnType = getTSTypeWithResolvedTypes(annotation, typeParams);
@@ -338,7 +343,11 @@ function handleTSFunctionType(
},
};
- path.get('parameters').forEach((param) => {
+ const parameters = path.get(
+ usesBabel8Fields ? 'params' : 'parameters',
+ ) as Array>;
+
+ parameters.forEach((param) => {
const typeAnnotation = getTypeAnnotation(param);
const arg: FunctionArgumentType = {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4cf387299fe..0f73481e359 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -131,6 +131,10 @@ importers:
strip-indent:
specifier: ^4.0.0
version: 4.1.1
+ devDependencies:
+ babel-core-8:
+ specifier: npm:@babel/core@8.0.1
+ version: '@babel/core@8.0.1'
packages/react-docgen-cli:
dependencies:
@@ -188,19 +192,19 @@ importers:
version: 2.1.1
next:
specifier: 16.2.9
- version: 16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ version: 16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
next-sitemap:
specifier: 4.2.3
- version: 4.2.3(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))
+ version: 4.2.3(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))
next-themes:
specifier: 0.4.6
version: 0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
nextra:
specifier: 4.6.1
- version: 4.6.1(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3)
+ version: 4.6.1(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3)
nextra-theme-docs:
specifier: 4.6.1
- version: 4.6.1(@types/react@19.2.17)(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nextra@4.6.1(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7))
+ version: 4.6.1(@types/react@19.2.17)(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nextra@4.6.1(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7))
postcss:
specifier: 8.5.15
version: 8.5.15
@@ -237,26 +241,50 @@ packages:
resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@8.0.0':
+ resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/compat-data@7.29.7':
resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@8.0.0':
+ resolution: {integrity: sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/core@7.29.7':
resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==}
engines: {node: '>=6.9.0'}
+ '@babel/core@8.0.1':
+ resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/generator@7.29.7':
resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@8.0.0':
+ resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-compilation-targets@7.29.7':
resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-compilation-targets@8.0.0':
+ resolution: {integrity: sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-globals@7.29.7':
resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-globals@8.0.0':
+ resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-module-imports@7.29.7':
resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==}
engines: {node: '>=6.9.0'}
@@ -271,23 +299,44 @@ packages:
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@8.0.0':
+ resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-validator-identifier@7.29.7':
resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@8.0.4':
+ resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helper-validator-option@7.29.7':
resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@8.0.0':
+ resolution: {integrity: sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/helpers@7.29.7':
resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@8.0.0':
+ resolution: {integrity: sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/parser@7.29.7':
resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==}
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@8.0.4':
+ resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+ hasBin: true
+
'@babel/runtime@7.29.7':
resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==}
engines: {node: '>=6.9.0'}
@@ -296,14 +345,26 @@ packages:
resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
+ '@babel/template@8.0.0':
+ resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/traverse@7.29.7':
resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@8.0.4':
+ resolution: {integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@babel/types@7.29.7':
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
+ '@babel/types@8.0.4':
+ resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==}
+ engines: {node: ^22.18.0 || >=24.11.0}
+
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
@@ -1446,6 +1507,9 @@ packages:
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+ '@types/gensync@1.0.5':
+ resolution: {integrity: sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==}
+
'@types/geojson@7946.0.16':
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
@@ -1455,6 +1519,9 @@ packages:
'@types/istanbul-lib-coverage@2.0.6':
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+ '@types/jsesc@2.5.1':
+ resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -2389,6 +2456,10 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ empathic@2.0.1:
+ resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==}
+ engines: {node: '>=14'}
+
end-of-stream@1.4.5:
resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
@@ -5052,8 +5123,15 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
+ '@babel/code-frame@8.0.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 8.0.4
+ js-tokens: 10.0.0
+
'@babel/compat-data@7.29.7': {}
+ '@babel/compat-data@8.0.0': {}
+
'@babel/core@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -5074,6 +5152,25 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/core@8.0.1':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/generator': 8.0.0
+ '@babel/helper-compilation-targets': 8.0.0
+ '@babel/helpers': 8.0.0
+ '@babel/parser': 8.0.4
+ '@babel/template': 8.0.0
+ '@babel/traverse': 8.0.4
+ '@babel/types': 8.0.4
+ '@types/gensync': 1.0.5
+ convert-source-map: 2.0.0
+ empathic: 2.0.1
+ gensync: 1.0.0-beta.2
+ import-meta-resolve: 4.2.0
+ json5: 2.2.3
+ obug: 2.1.2
+ semver: 7.8.2
+
'@babel/generator@7.29.7':
dependencies:
'@babel/parser': 7.29.7
@@ -5082,6 +5179,15 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
+ '@babel/generator@8.0.0':
+ dependencies:
+ '@babel/parser': 8.0.4
+ '@babel/types': 8.0.4
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+ '@types/jsesc': 2.5.1
+ jsesc: 3.1.0
+
'@babel/helper-compilation-targets@7.29.7':
dependencies:
'@babel/compat-data': 7.29.7
@@ -5090,8 +5196,18 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
+ '@babel/helper-compilation-targets@8.0.0':
+ dependencies:
+ '@babel/compat-data': 8.0.0
+ '@babel/helper-validator-option': 8.0.0
+ browserslist: 4.28.2
+ lru-cache: 11.5.1
+ semver: 7.8.2
+
'@babel/helper-globals@7.29.7': {}
+ '@babel/helper-globals@8.0.0': {}
+
'@babel/helper-module-imports@7.29.7':
dependencies:
'@babel/traverse': 7.29.7
@@ -5110,19 +5226,34 @@ snapshots:
'@babel/helper-string-parser@7.29.7': {}
+ '@babel/helper-string-parser@8.0.0': {}
+
'@babel/helper-validator-identifier@7.29.7': {}
+ '@babel/helper-validator-identifier@8.0.4': {}
+
'@babel/helper-validator-option@7.29.7': {}
+ '@babel/helper-validator-option@8.0.0': {}
+
'@babel/helpers@7.29.7':
dependencies:
'@babel/template': 7.29.7
'@babel/types': 7.29.7
+ '@babel/helpers@8.0.0':
+ dependencies:
+ '@babel/template': 8.0.0
+ '@babel/types': 8.0.4
+
'@babel/parser@7.29.7':
dependencies:
'@babel/types': 7.29.7
+ '@babel/parser@8.0.4':
+ dependencies:
+ '@babel/types': 8.0.4
+
'@babel/runtime@7.29.7': {}
'@babel/template@7.29.7':
@@ -5131,6 +5262,12 @@ snapshots:
'@babel/parser': 7.29.7
'@babel/types': 7.29.7
+ '@babel/template@8.0.0':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/parser': 8.0.4
+ '@babel/types': 8.0.4
+
'@babel/traverse@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -5143,11 +5280,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@8.0.4':
+ dependencies:
+ '@babel/code-frame': 8.0.0
+ '@babel/generator': 8.0.0
+ '@babel/helper-globals': 8.0.0
+ '@babel/parser': 8.0.4
+ '@babel/template': 8.0.0
+ '@babel/types': 8.0.4
+ obug: 2.1.2
+
'@babel/types@7.29.7':
dependencies:
'@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
+ '@babel/types@8.0.4':
+ dependencies:
+ '@babel/helper-string-parser': 8.0.0
+ '@babel/helper-validator-identifier': 8.0.4
+
'@bcoe/v8-coverage@0.2.3': {}
'@bcoe/v8-coverage@1.0.2': {}
@@ -6313,6 +6465,8 @@ snapshots:
'@types/estree@1.0.9': {}
+ '@types/gensync@1.0.5': {}
+
'@types/geojson@7946.0.16': {}
'@types/hast@3.0.4':
@@ -6321,6 +6475,8 @@ snapshots:
'@types/istanbul-lib-coverage@2.0.6': {}
+ '@types/jsesc@2.5.1': {}
+
'@types/json-schema@7.0.15': {}
'@types/json5@0.0.29': {}
@@ -7290,6 +7446,8 @@ snapshots:
emoji-regex@9.2.2: {}
+ empathic@2.0.1: {}
+
end-of-stream@1.4.5:
dependencies:
once: 1.4.0
@@ -9117,20 +9275,20 @@ snapshots:
neo-async@2.6.2: {}
- next-sitemap@4.2.3(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)):
+ next-sitemap@4.2.3(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)):
dependencies:
'@corex/deepmerge': 4.0.43
'@next/env': 13.5.11
fast-glob: 3.3.3
minimist: 1.2.8
- next: 16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ next: 16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
next-themes@0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
- next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
+ next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7):
dependencies:
'@next/env': 16.2.9
'@swc/helpers': 0.5.15
@@ -9139,7 +9297,7 @@ snapshots:
postcss: 8.4.31
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
- styled-jsx: 5.1.6(react@19.2.7)
+ styled-jsx: 5.1.6(@babel/core@8.0.1)(react@19.2.7)
optionalDependencies:
'@next/swc-darwin-arm64': 16.2.9
'@next/swc-darwin-x64': 16.2.9
@@ -9154,13 +9312,13 @@ snapshots:
- '@babel/core'
- babel-plugin-macros
- nextra-theme-docs@4.6.1(@types/react@19.2.17)(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nextra@4.6.1(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)):
+ nextra-theme-docs@4.6.1(@types/react@19.2.17)(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(nextra@4.6.1(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(use-sync-external-store@1.6.0(react@19.2.7)):
dependencies:
'@headlessui/react': 2.2.10(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
clsx: 2.1.1
- next: 16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ next: 16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
next-themes: 0.4.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
- nextra: 4.6.1(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3)
+ nextra: 4.6.1(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3)
react: 19.2.7
react-compiler-runtime: 19.1.0-rc.3(react@19.2.7)
react-dom: 19.2.7(react@19.2.7)
@@ -9172,7 +9330,7 @@ snapshots:
- immer
- use-sync-external-store
- nextra@4.6.1(next@16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3):
+ nextra@4.6.1(next@16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@6.0.3):
dependencies:
'@formatjs/intl-localematcher': 0.6.2
'@headlessui/react': 2.2.10(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
@@ -9193,7 +9351,7 @@ snapshots:
mdast-util-gfm: 3.1.0
mdast-util-to-hast: 13.2.1
negotiator: 1.0.0
- next: 16.2.9(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
+ next: 16.2.9(@babel/core@8.0.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
react: 19.2.7
react-compiler-runtime: 19.1.0-rc.3(react@19.2.7)
react-dom: 19.2.7(react@19.2.7)
@@ -10296,10 +10454,12 @@ snapshots:
dependencies:
inline-style-parser: 0.2.7
- styled-jsx@5.1.6(react@19.2.7):
+ styled-jsx@5.1.6(@babel/core@8.0.1)(react@19.2.7):
dependencies:
client-only: 0.0.1
react: 19.2.7
+ optionalDependencies:
+ '@babel/core': 8.0.1
stylis@4.4.0: {}