{
  "references": [
    // TODO: enable once every project is ts
    // { "path": "./packages/api" },
    // { "path": "./packages/desktop-client" }
  ],
  "compilerOptions": {
    // "composite": true,
    "target": "ES2022",
    "lib": ["ES2022", "DOM", "DOM.Iterable"],
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "downlevelIteration": true,
    // TODO: enable once every file is ts
    // "strict": true,
    "strictFunctionTypes": true,
    "noFallthroughCasesInSwitch": true,
    "skipLibCheck": true,
    "jsx": "preserve",
    "types": ["vite/client", "vitest/globals"],
    // Check JS files too
    "allowJs": true,
    "checkJs": false,
    // Used for temp builds
    "outDir": "build",
    "moduleResolution": "bundler",
    "module": "es2022",
    // Until/if we build using tsc
    "noEmit": true,
    "paths": {
      // TEMPORARY: Until we can fix the "exports" in the loot-core package.json
      "loot-core/*": ["./packages/loot-core/src/*"],
      "@desktop-client/*": ["./packages/desktop-client/src/*"],
      "@desktop-client/e2e/*": ["./packages/desktop-client/e2e/*"],
      // Allow importing from hyperformula's internal typings for custom function plugins
      "hyperformula/typings/*": ["./node_modules/hyperformula/typings/*"]
    }
  },
  "include": ["packages/**/*", "bin/*.ts"],
  "exclude": [
    "**/.*/",
    "node_modules",
    "**/node_modules/*",
    "**/build/*",
    "**/build-electron/*",
    "**/client-build/*",
    "**/dist/*",
    "**/lib-dist/*",
    "packages/api/@types",
    "**/test-results/*",
    "**/playwright-report/*",
    "**/service-worker/*",
    "packages/docs/**/*"
  ],
  "ts-node": {
    "compilerOptions": {
      "module": "CommonJS"
    }
  }
}
