{
  "compilerOptions": {
    "target": "ES2022",
    // ES2024 để có kiểu của Promise.withResolvers() - dùng trong luồng đăng nhập QR
    // để trả về ngay khi có mã, không chờ người dùng quét xong.
    "lib": ["ES2024"],
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "outDir": "dist",
    "rootDir": "src",
    // zca-js khai báo types trỏ vào `index.d.ts` ở gốc package, mà tệp đó chỉ có
    // `export * from "./dist"` - tức re-export một THƯ MỤC không kèm phần mở rộng.
    // moduleResolution NodeNext không phân giải kiểu đó nên mọi export thành "không tồn tại".
    // Trỏ thẳng vào tệp khai báo thật. Chỉ ảnh hưởng lúc biên dịch: khi chạy, Node vẫn
    // dùng exports map của package (-> dist/index.js) như bình thường.
    "paths": {
      "zca-js": ["./node_modules/zca-js/dist/index.d.ts"]
    },
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}
