{
  "include": [
    "${configDir}/**/*",
    "${configDir}/**/.*",
    "${configDir}/**/.*/**/*",
    "${configDir}/**/.*/**/.*",
  ],
  "exclude": [
    "${configDir}/**/.air/**",
    "${configDir}/**/.git/**",
    "${configDir}/**/.make/**",
    "${configDir}/**/.ruff_cache/**",
    "${configDir}/**/.swc/**",
    "${configDir}/**/.venv/**",
    "${configDir}/**/build/**",
    "${configDir}/**/dist/**",
    "${configDir}/**/node_modules/**",
    "${configDir}/**/persistent/**",
  ],
  "compilerOptions": {
    "outDir": "dist", // for type definitions
    "target": "es2020", // match vite's "modules" target
    "module": "nodenext",
    "allowArbitraryExtensions": true,
    "allowImportingTsExtensions": true,
    "allowJs": true,
    "allowSyntheticDefaultImports": true,

    "declaration": true,
    "declarationMap": true,
    "erasableSyntaxOnly": true,
    "esModuleInterop": true,
    "exactOptionalPropertyTypes": false,
    "isolatedModules": true,
    "jsx": "react-jsx",
    "lib": ["dom", "dom.iterable", "dom.asynciterable", "esnext"],
    "libReplacement": false,
    "noEmit": true,
    "noPropertyAccessFromIndexSignature": false,
    "noUncheckedSideEffectImports": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "strict": false,
    "stripInternal": true,
    "verbatimModuleSyntax": true,
    "pretty": true,

    // strict
    "alwaysStrict": true,
    "strictNullChecks": false,
    "strictBindCallApply": true,
    "strictBuiltinIteratorReturn": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": false, // depens on strictNullChecks
    "noImplicitThis": true,
    "noImplicitAny": false, // TODO,
    "useUnknownInCatchVariables": false,
  }
}
