{
	"compilerOptions": {
		"allowUnreachableCode": false,
		"allowUnusedLabels": false,
		"alwaysStrict": true,
		"exactOptionalPropertyTypes": true,
		"noFallthroughCasesInSwitch": true,
		"noImplicitAny": true,
		"noImplicitOverride": true,
		"noImplicitReturns": true,
		"noImplicitThis": true,
		"noPropertyAccessFromIndexSignature": true,
		"noUncheckedIndexedAccess": true,
		"noUnusedLocals": true,
		"noUnusedParameters": true,
		"strict": true,

		"allowImportingTsExtensions": true,
		"baseUrl": ".",
		"module": "ESNext",
		"moduleResolution": "Node",
		"paths": {
			"~/*": ["src/*"]
		},
		"resolveJsonModule": true,

		"downlevelIteration": true,
		"newLine": "lf",
		"noEmit": true,
		"removeComments": false,

		"allowJs": true,
		"checkJs": true,

		"plugins": [
			{
				"name": "typescript-plugin-css-modules",
				"options": {
					"classnameTransform": "camelCaseOnly",
					"goToDefinition": true
				}
			}
		],

		"esModuleInterop": true,
		"isolatedModules": true,

		"jsx": "react",
		"lib": ["DOM", "DOM.Iterable", "ESNext"],
		"target": "ESNext",

		"incremental": true,
		"skipLibCheck": true
	},
	"exclude": ["node_modules/types-mediawiki/scripts"],
	"include": ["node_modules/types-mediawiki", "scripts/**/*", "src/**/*", "src/**/*.vue"],

	"vueCompilerOptions": {
		"plugins": ["@vue/language-plugin-pug"]
	}
}
