feat: deprecate 'next lint', add Biome support (#82266)
# Transition from `next lint` to explicit ESLint configs and add Biome support
## What?
This PR makes two major changes to Next.js linting:
1. **Transitions away from `next lint`**: `create-next-app` now generates explicit ESLint configurations instead of relying on the `next lint` command
2. **Adds Biome as a linter option**: Users can now choose between ESLint, Biome, or no linter during project setup
## Why?
**ESLint Transition**: Provides transparency (users see exact rules), better IDE integration, easier customization, and follows industry standards for explicit configuration.
**Biome Support**: Offers a faster, unified linting/formatting tool and gives users more choice in their developer experience.
## How?
### ESLint Configuration Generation
- Generates `eslint.config.mjs` files that extend `eslint-config-next` packages
- Includes proper ignores for build artifacts (`next-env.d.ts`, `.next/`, etc.)
- Package.json scripts call `eslint .` directly instead of `next lint`
- Maintains complete feature parity with current `next lint` behavior
### Biome Integration
- Added `--biome` flag and interactive prompt selection
- Generated `biome.json` configurations with Next.js and React domain rules
- Includes both `lint` and `format` scripts for Biome projects
### Linter Selection
Interactive prompt offers: **ESLint** (comprehensive rules), **Biome** (fast with fewer rules), **None** (skip linter)
### Deprecation
Added deprecation warning to `next lint` command (removed in Next.js 16)
## Testing
Added comprehensive test suites for both ESLint and Biome configuration generation across all template variants.
This change modernizes Next.js linting while providing users with more choice and transparency.