# What changed in @babel/compat-data

> 32 changes in @babel/compat-data 8 from its official release notes, upgrade guides and advisories: 27 breaking, 3 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/npm/@babel/compat-data/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @babel/compat-data 8

### Breaking changes

- Package entrypoints are JSON files instead of JavaScript files; ESM imports need `with { type: "json" }`. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- BigIntLiteral.value is a bigint instead of a string, aligning it with NumericLiteral handling. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Babel 8 uses the ImportExpression AST by default; setting this parser option to false retains the legacy import() AST. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Babel is shipped as native ECMAScript modules. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- Dynamic import() is represented as an ImportExpression node, with source and options fields, instead of a CallExpression. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The ios_saf entry is removed from data/native-modules.json; use ios instead. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The isExport field is removed from TSImportEqualsDeclaration; inspect the parent path for an ExportNamedDeclaration instead. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Babel 8 packages require Node.js ^22.18.0 || >=24.11.0; Babel itself will not run on older versions. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration)
- The parameters field is renamed to params on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The params field replaces parameters on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Stage 4 plugin entries are renamed from proposal-* to transform-*; update plugin names passed to isRequired as well. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The returnType field replaces typeAnnotation on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The field replaces superTypeParameters on ClassDeclaration and ClassExpression. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The ClassDeclaration and ClassExpression field is renamed to superTypeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Class implements entries use TSClassImplements instead of TSExpressionWithTypeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- TSEnumDeclaration members are now wrapped in a TSEnumBody node. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- This node is replaced by TSClassImplements and TSInterfaceHeritage for class implements and interface heritage entries. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- An exported TSImportEqualsDeclaration is represented inside an ExportNamedDeclaration; its isExport field is removed. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The TSImportType argument field is renamed to source. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The source field replaces argument on TSImportType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Interface extends entries use TSInterfaceHeritage instead of TSExpressionWithTypeArguments. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The nested typeParameter is flattened into key and constraint properties on TS MappedType. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- A dotted namespace name is represented as one TSQualifiedName on a single TSModuleDeclaration rather than nested declarations. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- TSTypeParameter.name is an Identifier node rather than a plain string. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The return type field is renamed from typeAnnotation to returnType on TSCallSignatureDeclaration, TSConstructSignatureDeclaration, TSFunctionType, TSConstructorType, and TSMethodSignature. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The field replaces typeParameters on CallExpression, JSXOpeningElement, NewExpression, OptionalCallExpression, TSImportType, TSInstantiationExpression, TSTypeQuery, and TSTypeReference. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- The field is renamed to typeArguments on CallExpression, JSXOpeningElement, NewExpression, OptionalCallExpression, TSImportType, TSInstantiationExpression, TSTypeQuery, and TSTypeReference. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)

### New APIs and options

- This node is created when both estree and typescript parser plugins are enabled. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- This node is created when both estree and typescript parser plugins are enabled. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
- Interpolated template literal types are represented by TSTemplateLiteralType; non-interpolated template literal types retain their existing AST shape. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)

### Behavior and default changes

- TSParenthesizedType is generated only when this parser option is enabled; otherwise parentheses can be detected with node.extra.parenthesized. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)

### Fixes and other changes

- TSTypeQuery.exprName can be a ThisExpression for typeof this, rather than an Identifier named this. (8.0.0) — [upgrade guide](https://babel.dev/docs/v8-migration-api)
