{
    "compilerOptions": {
        "target": "ESNext",
        "module": "NodeNext",
        "lib": [
            "ESNext",
            "DOM" // We have to declare this so vitest doesn't explode
        ],
        "moduleResolution": "nodenext",
        "resolveJsonModule": true,
        "rootDir": ".",
        "outDir": "build",
        "allowSyntheticDefaultImports": true,
        "importHelpers": true,
        "alwaysStrict": true,
        "sourceMap": true,
        "forceConsistentCasingInFileNames": true,
        "noFallthroughCasesInSwitch": true,
        "noImplicitReturns": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "noImplicitAny": false,
        "noImplicitThis": true,
        "strictNullChecks": true,
        "types": [
            "vitest/globals",
            "vitest/importMeta",
        ],
        "noEmit": true,
        "declaration": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "esModuleInterop": true,
        "noErrorTruncation": true,
        "baseUrl": ".",
        "paths": {
            "@/*": [
                "./src/*"
            ]
        },
        "rewriteRelativeImportExtensions": true,
        "skipLibCheck": true,
    },
    "include": [
        "./src/**/*.ts",
        "./scripts/**/*.ts",
        "./tests/**/*.ts",
    ],
    "exclude": [
        "./src/**/*.ignore.ts",
        "./streams/**/*.ts"
    ]
}