{
  "compilerOptions": {
    "target": "ES2020",
    "useDefineForClassFields": true,
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "module": "ESNext",
    "skipLibCheck": true,

    /* Bundler mode */
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "isolatedModules": true,
    "moduleDetection": "force",
    "noEmit": true,
    "jsx": "react-jsx",

    /* Linting
     *
     * Design choice: strict mode is intentionally disabled here.
     * ESLint (with typescript-eslint) enforces stricter rules at lint time,
     * including no-explicit-any (mapped to our "no any" policy via --max-warnings=0).
     * tsc is used only for type-checking structural correctness (shape, assignability)
     * while ESLint handles code-quality rules. This avoids double-enforcement and
     * keeps CI fast. Run `npm run lint` to catch any violations.
     */
    "strict": false,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "noImplicitAny": false,
    "noFallthroughCasesInSwitch": false,

    "baseUrl": ".",
    "paths": {
      "@/*": ["./resources/js/*"]
    }
  },
  "include": ["resources/js"]
}
