{
	"compilerOptions": {
		// Enable top-level await, and other modern ESM features.
		"target": "ESNext",
		"module": "ESNext",
		// Enable node-style module resolution, for things like npm package imports.
		"moduleResolution": "node",
		// Enable JSON imports.
		"resolveJsonModule": true,

		"removeComments": true,
		"preserveConstEnums": true,
		"strict": true,
		"alwaysStrict": true,
		"strictNullChecks": true,
		"noUncheckedIndexedAccess": true,

		"noImplicitAny": true,
		"noImplicitReturns": true,
		"noImplicitThis": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"allowUnreachableCode": false,
		"noFallthroughCasesInSwitch": true,

		"declaration": true,

		"esModuleInterop": true,
		"allowSyntheticDefaultImports": true,
		"allowJs": false,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,

		"jsx": "react-jsx",
		// Enable stricter transpilation for better output.
		"isolatedModules": true,
		// Add type definitions for our Vite runtime.
		"types": ["vite/client"],

		"baseUrl": ".",
		"paths": {
			"@/*": ["./src/*"]
		}
	},
	"include": [".astro/types.d.ts", "**/*"],
	"exclude": ["dist"]
}