{
  "compilerOptions": {
    /* Base Options: */
    "esModuleInterop": true,
    "skipLibCheck": true,
    "target": "es2022",
    "allowJs": true,
    "resolveJsonModule": true,
    "moduleDetection": "force",
    "isolatedModules": true,

    /* Strictness */
    "strict": true,
    "noUncheckedIndexedAccess": false,
    "checkJs": true,

    /* Bundled projects */
    "lib": ["dom", "dom.iterable", "ESNext"],
    "noEmit": true,
    "module": "ESNext",
    "moduleResolution": "Bundler",
    "jsx": "preserve",
    "plugins": [{"name": "next"}],
    "incremental": true,

    /* Custom options */
    "forceConsistentCasingInFileNames": true,
    "jsxImportSource": "@emotion/react",

    /* Path Aliases */
    "baseUrl": ".",
    "paths": {
      "~/common/*": ["src/common/*"],
      "~/modules/*": ["src/modules/*"],
      "~/server/*": ["src/server/*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts",
    // this is here only because otherwise, during standalone build the process would update this file
    "dist/types/**/*.ts"
  ],
  "exclude": ["node_modules", "dist", "electron"]
}
