{
  "compilerOptions": {
    // Environment setup & latest features
    "lib": [
      "ES2022"
    ],
    "target": "ES2022",
    "module": "ESNext",
    "moduleDetection": "force",
    "jsx": "react-jsx",
    "allowJs": true,
    // Node resolution for ES Modules
    "moduleResolution": "node",
    "allowImportingTsExtensions": false,
    "verbatimModuleSyntax": false,
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "noEmit": false,
    "outDir": "./dist",
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true,
    // Strict type checking - FORCE ERRORS
    "strict": true,
    "skipLibCheck": true,
    "noFallthroughCasesInSwitch": true,
    "noUncheckedIndexedAccess": true,
    "noImplicitOverride": true,
    // Additional strict flags to force errors
    "noUnusedLocals": true, // Error on unused local variables
    "noUnusedParameters": true, // Error on unused parameters
    "noPropertyAccessFromIndexSignature": true, // Force bracket notation for index signatures
    "exactOptionalPropertyTypes": true, // Strict optional property types
    "noImplicitReturns": true, // Error if function doesn't return on all paths
    "noImplicitAny": true, // Error on implicit any (already in strict)
    "strictNullChecks": true, // Strict null checks (already in strict)
    "strictFunctionTypes": true, // Strict function types (already in strict)
    "strictBindCallApply": true, // Strict bind/call/apply (already in strict)
    "strictPropertyInitialization": true, // Strict property initialization (already in strict)
    "noImplicitThis": true, // Error on implicit this (already in strict)
    "alwaysStrict": true, // Always emit strict mode (already in strict)
    // Additional error-forcing options
    "allowUnusedLabels": false, // Error on unused labels
    "allowUnreachableCode": false, // Error on unreachable code
    "forceConsistentCasingInFileNames": true, // Error on inconsistent casing
    "isolatedModules": true, // Ensure each file can be transpiled independently
    "noEmitOnError": true, // Don't emit files if there are errors
    "maxNodeModuleJsDepth": 0, // Don't check node_modules JS files
    "composite": true
  },
  // Include all TypeScript files
  "include": [
    "src/**/*.ts",
    "index.ts"
  ],
  // Exclude node_modules and build directories
  "exclude": [
    "node_modules",
    "dist",
    "build",
    "**/*.test.ts",
    "**/*.spec.ts",
    "src/test.ts"
  ],
  "references": [
    {
      "path": "../@eyjs-di"
    },
    {
      "path": "../@eyjs-env"
    }
  ]
}