{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "outDir": "lib",
    "declaration": true,
    "sourceMap": true,
    "declarationMap": true,
    "moduleDetection": "force",

    "lib": ["ES2020", "ESNext.Array", "DOM"],
    "rootDir": "./src",

    // ESM Features
    "verbatimModuleSyntax": true,
    "allowImportingTsExtensions": true,
    "noEmit": true,

    // Type Safety
    "strict": true,
    "strictNullChecks": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedIndexedAccess": true,
    "noImplicitThis": true,
    "forceConsistentCasingInFileNames": true,
    "skipLibCheck": true,

    // Interop
    "esModuleInterop": true,
    "resolveJsonModule": true,

    // DX Boosters
    "allowJs": false,
    "checkJs": false,
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules"]
}
