{
	// Needed as there are...a lot of microservices. Good luck running locally.
	"concurrency": "20",
	"$schema": "https://turbo.build/schema.json",
	"globalDependencies": ["**/.dev.vars"],
	"globalEnv": ["CI", "GITHUB_ACTIONS", "VITEST"],
	"globalPassThroughEnv": ["WRANGLER_LOG", "FORCE_COLOR"],
	"remoteCache": {
		// Enable if using Turbo Remote Cache
		"enabled": false,
		"signature": true
	},
	"ui": "stream",
	"tasks": {
		"topo": {
			"dependsOn": ["^topo"]
		},
		"build": {
			"dependsOn": ["^build", "topo"],
			"outputs": ["dist/**", ".wrangler/deploy/config.json"],
			"outputLogs": "new-only"
		},
		"dev": {
			"cache": false,
			"dependsOn": ["build", "topo"],
			"interactive": true,
			"persistent": true,
			"outputLogs": "new-only"
		},
		// preview is used in Vite applications
		"preview": {
			"cache": false,
			"dependsOn": ["build", "topo"],
			"interactive": true,
			"persistent": true,
			"outputLogs": "new-only"
		},
		"deploy": {
			"cache": false,
			"dependsOn": ["build", "topo"],
			"env": ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_TOKEN"],
			"outputLogs": "new-only"
		},
		// Apply D1 migrations. Only workers that own migrations define a `migrate`
		// script, so `turbo migrate` runs just those. No build needed.
		"migrate": {
			"cache": false,
			"env": ["CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_API_TOKEN"],
			"outputLogs": "new-only"
		},
		// build:wrangler isn't used much, but can be useful for debugging
		"build:wrangler": {
			"dependsOn": ["build", "topo"],
			"outputLogs": "new-only"
		},
		"check": {
			"dependsOn": ["check:types", "check:workers-types", "check:lint", "topo"],
			"outputLogs": "new-only"
		},
		"//#test:ci": {
			"dependsOn": [
				"build"
				// Packages that need to be built before running tests can be added here.
				// Example:
				// "@repo/test-helpers#build"
			],
			"outputLogs": "new-only"
		},
		"test:ci": {
			"dependsOn": ["build", "topo"],
			"outputLogs": "new-only"
		},
		"check:ci": {
			"dependsOn": [
				"//#check:format",
				"//#check:deps",
				"check:types",
				"check:workers-types",
				"//#check:lint:all",
				"//#test:ci",
				"test:ci",
				"topo"
			],
			"outputLogs": "new-only"
		},
		"//#check:deps": {
			"outputLogs": "new-only"
		},
		"check:types": {
			"dependsOn": ["build", "topo"],
			"outputLogs": "new-only"
		},
		"check:lint": {
			"dependsOn": ["build", "topo"],
			"outputLogs": "new-only"
		},
		"check:workers-types": {
			"dependsOn": ["build", "topo"],
			"outputLogs": "new-only"
		},
		"//#check:lint:all": {
			"outputLogs": "new-only"
		},
		"//#check:format": {
			"dependsOn": [],
			"outputLogs": "new-only"
		},
		"fix:workers-types": {
			"dependsOn": ["topo"],
			"outputs": ["worker-configuration.d.ts"],
			"outputLogs": "new-only"
		},
		"//#build": {
			"dependsOn": ["^build"],
			"outputLogs": "new-only"
		}
	}
}
