{
  "compilerOptions": {
    "skipLibCheck": true,
    "traceResolution":false,
    "forceConsistentCasingInFileNames": true,
    "moduleResolution": "nodenext",
    "moduleDetection": "force",
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "alwaysStrict": true,
    "target": "ESNext",
    "lib": [
      "ESNext",
      "DOM"
    ],
    "module": "NodeNext",
    "rootDir": "./src",
    "allowJs": true,
    "outDir": "build",
    "allowSyntheticDefaultImports": true,
    "esModuleInterop": true,
    "baseUrl": ".",
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true,
    "typeRoots": [
      "./node_modules/@types"
    ],
    "paths": {
      "types": [
        "src/types/global/index.d.ts"
      ]
    }
  },
  "include": [
    "src/**/*",
    "src/types/**/*"
  ],
  "exclude": [
    "src/templates/**/*",
    "src/index.mts",
    "src/index.cts",
    "node_modules",
    "node_modules/**/*",
    "**/node_modules/*",
    "public/types"
  ],
  "ts-node": {
    // It is faster to skip typechecking.
    // Remove if you want ts-node to do typechecking.
    "transpileOnly": true,
    "files": true,
    "compilerOptions": {
      "skipLibCheck": true,
      "rootDir": "./src",
      "baseUrl": ".",
      "paths": {
        "types": [
          "types/global"
        ]
      }
    },
    "exclude": ["node_modules/**/*", "**/node_modules/*", "node_modules",     "public/types"  ]
  }
}