{
	"$schema": "https://turbo.build/schema.json",
	"ui": "tui",
	"globalPassThroughEnv": [
		"NIX_*",
		"ANDROID_*",
		"SSL_CERT_FILE",
		"GRADLE_OPTS",
		"BW_SESSION",
	],
	"tasks": {
		// Defaults
		"fmt": { "with": ["//#fmt:root"] },
		"fmt:check": { "with": ["//#fmt:check:root"] },
		"lint": {
			"dependsOn": ["fmt", "^build"],
			"with": ["typecheck", "//#lint:root"],
		},
		"lint:check": {
			"dependsOn": ["^build"],
			"with": ["fmt:check", "typecheck", "//#lint:check:root"],
		},
		"typecheck": {
			"dependsOn": ["^build"],
		},
		"build": {
			"outputs": ["dist/**"],
			"dependsOn": ["^build"],
		},
		"test": {
			"dependsOn": ["^build"],
		},
		"dev": {
			"cache": false,
			"persistent": true,
			"dependsOn": ["^build"],
		},
		"clean": { "cache": false, "dependsOn": ["^clean"] },
		// Root tasks overrides
		"//#fmt:root": {
			"with": ["fmt:root:nix"],
		},
		"//#fmt:root:nix": {},
		"//#fmt:check:root:nix": {},
		"//#fmt:check:root": {
			"with": ["fmt:check:root:nix"],
		},
		"//#lint:root": {
			"dependsOn": ["fmt:root"],
			"with": [
				"syncpack:fix",
				"jscpd:check",
				// "knip:fix:danger",
			],
		},
		"//#lint:check:root": {
			"with": [
				"fmt:check:root",
				"syncpack:check",
				"jscpd:check",
				//"knip:check",
			],
		},

		// Special root tasks
		"//#jscpd:check": {},
		"//#syncpack:fix": {},
		"//#syncpack:check": {},
		"//#knip:check": {},
		"//#knip:fix:danger": {},
	},
}
