diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 1c6314a..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.yml]
-indent_style = space
-indent_size = 2
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 6313b56..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-* text=auto eol=lf
diff --git a/.github/funding.yml b/.github/funding.yml
deleted file mode 100644
index b8554da..0000000
--- a/.github/funding.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-github: [sindresorhus,Qix-]
-tidelift: npm/supports-color
diff --git a/.github/security.md b/.github/security.md
deleted file mode 100644
index 5358dc5..0000000
--- a/.github/security.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Security Policy
-
-To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
deleted file mode 100644
index c1870cf..0000000
--- a/.github/workflows/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: CI
-on:
-  - push
-  - pull_request
-jobs:
-  test:
-    name: Node.js ${{ matrix.node-version }}
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        node-version:
-          - 14
-          - 12
-          - 10
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions/setup-node@v1
-        with:
-          node-version: ${{ matrix.node-version }}
-      - run: npm install
-      - run: npm test
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 239ecff..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-yarn.lock
diff --git a/.npmrc b/.npmrc
deleted file mode 100644
index 43c97e7..0000000
--- a/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-package-lock=false
diff --git a/browser.d.ts b/browser.d.ts
new file mode 100644
index 0000000..0e8a9cc
--- /dev/null
+++ b/browser.d.ts
@@ -0,0 +1 @@
+export {default} from './index.js';
diff --git a/browser.js b/browser.js
index f097aec..4e75e86 100644
--- a/browser.js
+++ b/browser.js
@@ -1,24 +1,19 @@
 /* eslint-env browser */
-'use strict';
 
-function getChromeVersion() {
-	const matches = /(Chrome|Chromium)\/(?<chromeVersion>\d+)\./.exec(navigator.userAgent);
+const isBlinkBasedBrowser = navigator.userAgentData
+	? navigator.userAgentData.brands.some(({brand}) => brand === 'Chromium')
+	: /\b(Chrome|Chromium)\//.test(navigator.userAgent);
 
-	if (!matches) {
-		return;
-	}
-
-	return Number.parseInt(matches.groups.chromeVersion, 10);
-}
-
-const colorSupport = getChromeVersion() >= 69 ? {
+const colorSupport = isBlinkBasedBrowser ? {
 	level: 1,
 	hasBasic: true,
 	has256: false,
-	has16m: false
+	has16m: false,
 } : false;
 
-module.exports = {
+const supportsColor = {
 	stdout: colorSupport,
-	stderr: colorSupport
+	stderr: colorSupport,
 };
+
+export default supportsColor;
diff --git a/debian/changelog b/debian/changelog
index 3a6e7c8..4dc9410 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+node-supports-color (9.2.3-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Fri, 09 Sep 2022 05:58:12 -0000
+
 node-supports-color (8.1.1+~8.1.1-1) unstable; urgency=medium
 
   * Team upload
diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..58faab6
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,55 @@
+import {WriteStream} from 'node:tty';
+
+export interface Options {
+	/**
+	Whether `process.argv` should be sniffed for `--color` and `--no-color` flags.
+
+	@default true
+	*/
+	readonly sniffFlags?: boolean;
+}
+
+/**
+Levels:
+- `0` - All colors disabled.
+- `1` - Basic 16 colors support.
+- `2` - ANSI 256 colors support.
+- `3` - Truecolor 16 million colors support.
+*/
+export type ColorSupportLevel = 0 | 1 | 2 | 3;
+
+/**
+Detect whether the terminal supports color.
+*/
+export interface ColorSupport {
+	/**
+	The color level.
+	*/
+	level: ColorSupportLevel;
+
+	/**
+	Whether basic 16 colors are supported.
+	*/
+	hasBasic: boolean;
+
+	/**
+	Whether ANSI 256 colors are supported.
+	*/
+	has256: boolean;
+
+	/**
+	Whether Truecolor 16 million colors are supported.
+	*/
+	has16m: boolean;
+}
+
+export type ColorInfo = ColorSupport | false;
+
+export function createSupportsColor(stream?: WriteStream, options?: Options): ColorInfo;
+
+declare const supportsColor: {
+	stdout: ColorInfo;
+	stderr: ColorInfo;
+};
+
+export default supportsColor;
diff --git a/index.js b/index.js
index 2dd2fcb..55f813c 100644
--- a/index.js
+++ b/index.js
@@ -1,20 +1,31 @@
-'use strict';
-const os = require('os');
-const tty = require('tty');
-const hasFlag = require('has-flag');
+import process from 'node:process';
+import os from 'node:os';
+import tty from 'node:tty';
+
+// From: https://github.com/sindresorhus/has-flag/blob/main/index.js
+function hasFlag(flag, argv = process.argv) {
+	const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
+	const position = argv.indexOf(prefix + flag);
+	const terminatorPosition = argv.indexOf('--');
+	return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
+}
 
 const {env} = process;
 
 let flagForceColor;
-if (hasFlag('no-color') ||
-	hasFlag('no-colors') ||
-	hasFlag('color=false') ||
-	hasFlag('color=never')) {
+if (
+	hasFlag('no-color')
+	|| hasFlag('no-colors')
+	|| hasFlag('color=false')
+	|| hasFlag('color=never')
+) {
 	flagForceColor = 0;
-} else if (hasFlag('color') ||
-	hasFlag('colors') ||
-	hasFlag('color=true') ||
-	hasFlag('color=always')) {
+} else if (
+	hasFlag('color')
+	|| hasFlag('colors')
+	|| hasFlag('color=true')
+	|| hasFlag('color=always')
+) {
 	flagForceColor = 1;
 }
 
@@ -41,11 +52,11 @@ function translateLevel(level) {
 		level,
 		hasBasic: true,
 		has256: level >= 2,
-		has16m: level >= 3
+		has16m: level >= 3,
 	};
 }
 
-function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
+function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
 	const noFlagForceColor = envForceColor();
 	if (noFlagForceColor !== undefined) {
 		flagForceColor = noFlagForceColor;
@@ -58,9 +69,9 @@ function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
 	}
 
 	if (sniffFlags) {
-		if (hasFlag('color=16m') ||
-			hasFlag('color=full') ||
-			hasFlag('color=truecolor')) {
+		if (hasFlag('color=16m')
+			|| hasFlag('color=full')
+			|| hasFlag('color=truecolor')) {
 			return 3;
 		}
 
@@ -84,10 +95,10 @@ function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
 		// Windows 10 build 14931 is the first release that supports 16m/TrueColor.
 		const osRelease = os.release().split('.');
 		if (
-			Number(osRelease[0]) >= 10 &&
-			Number(osRelease[2]) >= 10586
+			Number(osRelease[0]) >= 10
+			&& Number(osRelease[2]) >= 10_586
 		) {
-			return Number(osRelease[2]) >= 14931 ? 3 : 2;
+			return Number(osRelease[2]) >= 14_931 ? 3 : 2;
 		}
 
 		return 1;
@@ -105,6 +116,11 @@ function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
 		return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
 	}
 
+	// Check for Azure DevOps pipelines
+	if ('TF_BUILD' in env && 'AGENT_NAME' in env) {
+		return 1;
+	}
+
 	if (env.COLORTERM === 'truecolor') {
 		return 3;
 	}
@@ -136,17 +152,18 @@ function supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {
 	return min;
 }
 
-function getSupportLevel(stream, options = {}) {
-	const level = supportsColor(stream, {
+export function createSupportsColor(stream, options = {}) {
+	const level = _supportsColor(stream, {
 		streamIsTTY: stream && stream.isTTY,
-		...options
+		...options,
 	});
 
 	return translateLevel(level);
 }
 
-module.exports = {
-	supportsColor: getSupportLevel,
-	stdout: getSupportLevel({isTTY: tty.isatty(1)}),
-	stderr: getSupportLevel({isTTY: tty.isatty(2)})
+const supportsColor = {
+	stdout: createSupportsColor({isTTY: tty.isatty(1)}),
+	stderr: createSupportsColor({isTTY: tty.isatty(2)}),
 };
+
+export default supportsColor;
diff --git a/package.json b/package.json
index a97bf2a..db2dcce 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "supports-color",
-	"version": "8.1.1",
+	"version": "9.2.3",
 	"description": "Detect whether a terminal supports color",
 	"license": "MIT",
 	"repository": "chalk/supports-color",
@@ -10,20 +10,24 @@
 		"email": "sindresorhus@gmail.com",
 		"url": "https://sindresorhus.com"
 	},
+	"type": "module",
+	"exports": {
+		"node": "./index.js",
+		"default": "./browser.js"
+	},
 	"engines": {
-		"node": ">=10"
+		"node": ">=12"
 	},
 	"scripts": {
-		"test": "xo && ava"
+		"//test": "xo && ava && tsd",
+		"test": "xo && tsd"
 	},
 	"files": [
 		"index.js",
-		"browser.js"
+		"index.d.ts",
+		"browser.js",
+		"browser.d.ts"
 	],
-	"exports": {
-		"node": "./index.js",
-		"default": "./browser.js"
-	},
 	"keywords": [
 		"color",
 		"colour",
@@ -46,13 +50,12 @@
 		"truecolor",
 		"16m"
 	],
-	"dependencies": {
-		"has-flag": "^4.0.0"
-	},
 	"devDependencies": {
-		"ava": "^2.4.0",
-		"import-fresh": "^3.2.2",
-		"xo": "^0.35.0"
-	},
-	"browser": "browser.js"
+		"@types/node": "^16.11.7",
+		"ava": "^3.15.0",
+		"import-fresh": "^3.3.0",
+		"tsd": "^0.18.0",
+		"typescript": "^4.4.3",
+		"xo": "^0.44.0"
+	}
 }
diff --git a/readme.md b/readme.md
index 3eedd1c..a72c349 100644
--- a/readme.md
+++ b/readme.md
@@ -11,7 +11,7 @@ $ npm install supports-color
 ## Usage
 
 ```js
-const supportsColor = require('supports-color');
+import supportsColor from 'supports-color';
 
 if (supportsColor.stdout) {
 	console.log('Terminal stdout supports color');
@@ -28,7 +28,7 @@ if (supportsColor.stderr.has16m) {
 
 ## API
 
-Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported.
+Returns an `object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported.
 
 The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag:
 
@@ -36,13 +36,23 @@ The `stdout`/`stderr` objects specifies a level of support for color through a `
 - `.level = 2` and `.has256 = true`: 256 color support
 - `.level = 3` and `.has16m = true`: Truecolor support (16 million colors)
 
-### `require('supports-color').supportsColor(stream, options?)`
+### Custom instance
 
-Additionally, `supports-color` exposes the `.supportsColor()` function that takes an arbitrary write stream (e.g. `process.stdout`) and an optional options object to (re-)evaluate color support for an arbitrary stream.
+The package also exposes the named export `createSupportColor` function that takes an arbitrary write stream (for example, `process.stdout`) and an optional options object to (re-)evaluate color support for an arbitrary stream.
 
-For example, `require('supports-color').stdout` is the equivalent of `require('supports-color').supportsColor(process.stdout)`.
+```js
+import {createSupportsColor} from 'supports-color';
+
+const stdoutSupportsColor = createSupportsColor(process.stdout);
+
+if (stdoutSupportsColor) {
+	console.log('Terminal stdout supports color');
+}
+
+// `stdoutSupportsColor` is the same as `supportsColor.stdout`
+```
 
-The options object supports a single boolean property `sniffFlags`. By default it is `true`, which instructs `supportsColor()` to sniff `process.argv` for the multitude of `--color` flags (see _Info_ below). If `false`, then `process.argv` is not considered when determining color support.
+The options object supports a single boolean property `sniffFlags`. By default it is `true`, which instructs the detection to sniff `process.argv` for the multitude of `--color` flags (see _Info_ below). If `false`, then `process.argv` is not considered when determining color support.
 
 ## Info
 
@@ -56,6 +66,8 @@ Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=
 
 - [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module
 - [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
+- [is-unicode-supported](https://github.com/sindresorhus/is-unicode-supported) - Detect whether the terminal supports Unicode
+- [is-interactive](https://github.com/sindresorhus/is-interactive) - Check if stdout or stderr is interactive
 
 ## Maintainers
 
diff --git a/test.js b/test.js
deleted file mode 100644
index 6d44147..0000000
--- a/test.js
+++ /dev/null
@@ -1,424 +0,0 @@
-import os from 'os';
-import tty from 'tty';
-import {serial as test} from 'ava';
-import importFresh from 'import-fresh';
-
-const currentNodeVersion = process.versions.node;
-
-test.beforeEach(() => {
-	Object.defineProperty(process, 'platform', {
-		value: 'linux'
-	});
-
-	Object.defineProperty(process.versions, 'node', {
-		value: currentNodeVersion
-	});
-
-	process.stdout.isTTY = true;
-	process.argv = [];
-	process.env = {};
-	tty.isatty = () => true;
-});
-
-// FIXME
-test.failing('return true if `FORCE_COLOR` is in env', t => {
-	process.stdout.isTTY = false;
-	process.env.FORCE_COLOR = true;
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 1);
-});
-
-test('return true if `FORCE_COLOR` is in env, but honor 256', t => {
-	process.argv = ['--color=256'];
-	process.env.FORCE_COLOR = true;
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-});
-
-test('return true if `FORCE_COLOR` is in env, but honor 256 #2', t => {
-	process.argv = ['--color=256'];
-	process.env.FORCE_COLOR = '1';
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-});
-
-test('return false if `FORCE_COLOR` is in env and is 0', t => {
-	process.env.FORCE_COLOR = '0';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('do not cache `FORCE_COLOR`', t => {
-	process.env.FORCE_COLOR = '0';
-	const result = importFresh('.');
-	t.false(result.stdout);
-	process.env.FORCE_COLOR = '1';
-	const updatedStdOut = result.supportsColor({isTTY: tty.isatty(1)});
-	t.truthy(updatedStdOut);
-});
-
-test('return false if not TTY', t => {
-	process.stdout.isTTY = false;
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return false if --no-color flag is used', t => {
-	process.env = {TERM: 'xterm-256color'};
-	process.argv = ['--no-color'];
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return false if --no-colors flag is used', t => {
-	process.env = {TERM: 'xterm-256color'};
-	process.argv = ['--no-colors'];
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return true if --color flag is used', t => {
-	process.argv = ['--color'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if --colors flag is used', t => {
-	process.argv = ['--colors'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `COLORTERM` is in env', t => {
-	process.env.COLORTERM = true;
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('support `--color=true` flag', t => {
-	process.argv = ['--color=true'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('support `--color=always` flag', t => {
-	process.argv = ['--color=always'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('support `--color=false` flag', t => {
-	process.env = {TERM: 'xterm-256color'};
-	process.argv = ['--color=false'];
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('support `--color=256` flag', t => {
-	process.argv = ['--color=256'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('level should be 2 if `--color=256` flag is used', t => {
-	process.argv = ['--color=256'];
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-	t.true(result.stdout.has256);
-});
-
-test('support `--color=16m` flag', t => {
-	process.argv = ['--color=16m'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('support `--color=full` flag', t => {
-	process.argv = ['--color=full'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('support `--color=truecolor` flag', t => {
-	process.argv = ['--color=truecolor'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('level should be 3 if `--color=16m` flag is used', t => {
-	process.argv = ['--color=16m'];
-	const result = importFresh('.');
-	t.is(result.stdout.level, 3);
-	t.true(result.stdout.has256);
-	t.true(result.stdout.has16m);
-});
-
-test('ignore post-terminator flags', t => {
-	process.argv = ['--color', '--', '--no-color'];
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('allow tests of the properties on false', t => {
-	process.env = {TERM: 'xterm-256color'};
-	process.argv = ['--no-color'];
-	const result = importFresh('.');
-	t.is(result.stdout.hasBasic, undefined);
-	t.is(result.stdout.has256, undefined);
-	t.is(result.stdout.has16m, undefined);
-	t.false(result.stdout.level > 0);
-});
-
-test('return false if `CI` is in env', t => {
-	process.env.CI = 'AppVeyor';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return true if `TRAVIS` is in env', t => {
-	process.env = {CI: 'Travis', TRAVIS: '1'};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `CIRCLECI` is in env', t => {
-	process.env = {CI: true, CIRCLECI: true};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `APPVEYOR` is in env', t => {
-	process.env = {CI: true, APPVEYOR: true};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `GITLAB_CI` is in env', t => {
-	process.env = {CI: true, GITLAB_CI: true};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `BUILDKITE` is in env', t => {
-	process.env = {CI: true, BUILDKITE: true};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if `DRONE` is in env', t => {
-	process.env = {CI: true, DRONE: true};
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-});
-
-test('return true if Codeship is in env', t => {
-	process.env = {CI: true, CI_NAME: 'codeship'};
-	const result = importFresh('.');
-	t.truthy(result);
-});
-
-test('return false if `TEAMCITY_VERSION` is in env and is < 9.1', t => {
-	process.env.TEAMCITY_VERSION = '9.0.5 (build 32523)';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return level 1 if `TEAMCITY_VERSION` is in env and is >= 9.1', t => {
-	process.env.TEAMCITY_VERSION = '9.1.0 (build 32523)';
-	const result = importFresh('.');
-	t.is(result.stdout.level, 1);
-});
-
-test('support rxvt', t => {
-	process.env = {TERM: 'rxvt'};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 1);
-});
-
-test('prefer level 2/xterm over COLORTERM', t => {
-	process.env = {COLORTERM: '1', TERM: 'xterm-256color'};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-});
-
-test('support screen-256color', t => {
-	process.env = {TERM: 'screen-256color'};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-});
-
-test('support putty-256color', t => {
-	process.env = {TERM: 'putty-256color'};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-});
-
-test('level should be 3 when using iTerm 3.0', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'darwin'
-	});
-	process.env = {
-		TERM_PROGRAM: 'iTerm.app',
-		TERM_PROGRAM_VERSION: '3.0.10'
-	};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 3);
-});
-
-test('level should be 2 when using iTerm 2.9', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'darwin'
-	});
-	process.env = {
-		TERM_PROGRAM: 'iTerm.app',
-		TERM_PROGRAM_VERSION: '2.9.3'
-	};
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-});
-
-test('return level 1 if on Windows earlier than 10 build 10586', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'win32'
-	});
-	Object.defineProperty(process.versions, 'node', {
-		value: '8.0.0'
-	});
-	os.release = () => '10.0.10240';
-	const result = importFresh('.');
-	t.is(result.stdout.level, 1);
-});
-
-test('return level 2 if on Windows 10 build 10586 or later', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'win32'
-	});
-	Object.defineProperty(process.versions, 'node', {
-		value: '8.0.0'
-	});
-	os.release = () => '10.0.10586';
-	const result = importFresh('.');
-	t.is(result.stdout.level, 2);
-});
-
-test('return level 3 if on Windows 10 build 14931 or later', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'win32'
-	});
-	Object.defineProperty(process.versions, 'node', {
-		value: '8.0.0'
-	});
-	os.release = () => '10.0.14931';
-	const result = importFresh('.');
-	t.is(result.stdout.level, 3);
-});
-
-test('return level 2 when FORCE_COLOR is set when not TTY in xterm256', t => {
-	process.stdout.isTTY = false;
-	process.env.FORCE_COLOR = true;
-	process.env.TERM = 'xterm-256color';
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-});
-
-test('supports setting a color level using FORCE_COLOR', t => {
-	let result;
-	process.env.FORCE_COLOR = '1';
-	result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 1);
-
-	process.env.FORCE_COLOR = '2';
-	result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-
-	process.env.FORCE_COLOR = '3';
-	result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 3);
-
-	process.env.FORCE_COLOR = '0';
-	result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('FORCE_COLOR maxes out at a value of 3', t => {
-	process.env.FORCE_COLOR = '4';
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 3);
-});
-
-test('FORCE_COLOR works when set via command line (all values are strings)', t => {
-	let result;
-	process.env.FORCE_COLOR = 'true';
-	result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 1);
-
-	process.stdout.isTTY = false;
-	process.env.FORCE_COLOR = 'true';
-	process.env.TERM = 'xterm-256color';
-	result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-
-	process.env.FORCE_COLOR = 'false';
-	result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return false when `TERM` is set to dumb', t => {
-	process.env.TERM = 'dumb';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return false when `TERM` is set to dumb when `TERM_PROGRAM` is set', t => {
-	process.env.TERM = 'dumb';
-	process.env.TERM_PROGRAM = 'Apple_Terminal';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return false when `TERM` is set to dumb when run on Windows', t => {
-	Object.defineProperty(process, 'platform', {
-		value: 'win32'
-	});
-	Object.defineProperty(process.versions, 'node', {
-		value: '10.13.0'
-	});
-	os.release = () => '10.0.14931';
-	process.env.TERM = 'dumb';
-	const result = importFresh('.');
-	t.false(result.stdout);
-});
-
-test('return level 1 when `TERM` is set to dumb when `FORCE_COLOR` is set', t => {
-	process.env.FORCE_COLOR = '1';
-	process.env.TERM = 'dumb';
-	const result = importFresh('.');
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 1);
-});
-
-test('ignore flags when sniffFlags=false', t => {
-	process.argv = ['--color=256'];
-	process.env.TERM = 'dumb';
-	const result = importFresh('.');
-
-	t.truthy(result.stdout);
-	t.is(result.stdout.level, 2);
-
-	const sniffResult = result.supportsColor(process.stdout, {sniffFlags: true});
-	t.truthy(sniffResult);
-	t.is(sniffResult.level, 2);
-
-	const nosniffResult = result.supportsColor(process.stdout, {sniffFlags: false});
-	t.falsy(nosniffResult);
-});
diff --git a/types-supports-color/LICENSE b/types-supports-color/LICENSE
deleted file mode 100755
index 9e841e7..0000000
--- a/types-supports-color/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
diff --git a/types-supports-color/README.md b/types-supports-color/README.md
deleted file mode 100755
index c87cd09..0000000
--- a/types-supports-color/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Installation
-> `npm install --save @types/supports-color`
-
-# Summary
-This package contains type definitions for supports-color (https://github.com/chalk/supports-color).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supports-color.
-## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supports-color/index.d.ts)
-````ts
-// Type definitions for supports-color 8.1
-// Project: https://github.com/chalk/supports-color
-// Definitions by: Melvin Groenhoff <https://github.com/mgroenhoff>
-//                 Matt Traynham <https://github.com/mtraynham>
-//                 Piotr Błażejewicz <https://github.com/peterblazejewicz>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export namespace supportsColor {
-    interface Level {
-        level: number;
-        hasBasic: boolean;
-        has256: boolean;
-        has16m: boolean;
-    }
-
-    interface Options {
-        /**
-         * By default it is `true`, which instructs `supportsColor()` to sniff `process.argv`
-         * for the multitude of `--color` flags (see _Info_ below).
-         * If `false`, then `process.argv` is not considered when determining color support.
-         * @default true
-         */
-        sniffFlags?: boolean | undefined;
-        isTTY?: boolean | undefined;
-    }
-
-    type SupportsColor = false | Level;
-}
-
-export function supportsColor(
-    stream: {
-        isTTY?: boolean | undefined;
-    },
-    options?: supportsColor.Options,
-): supportsColor.SupportsColor;
-
-export const stdout: supportsColor.SupportsColor;
-export const stderr: supportsColor.SupportsColor;
-
-````
-
-### Additional Details
- * Last updated: Fri, 02 Jul 2021 22:33:11 GMT
- * Dependencies: none
- * Global values: none
-
-# Credits
-These definitions were written by [Melvin Groenhoff](https://github.com/mgroenhoff), [Matt Traynham](https://github.com/mtraynham), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).
diff --git a/types-supports-color/index.d.ts b/types-supports-color/index.d.ts
deleted file mode 100755
index 49d608a..0000000
--- a/types-supports-color/index.d.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-// Type definitions for supports-color 8.1
-// Project: https://github.com/chalk/supports-color
-// Definitions by: Melvin Groenhoff <https://github.com/mgroenhoff>
-//                 Matt Traynham <https://github.com/mtraynham>
-//                 Piotr Błażejewicz <https://github.com/peterblazejewicz>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export namespace supportsColor {
-    interface Level {
-        level: number;
-        hasBasic: boolean;
-        has256: boolean;
-        has16m: boolean;
-    }
-
-    interface Options {
-        /**
-         * By default it is `true`, which instructs `supportsColor()` to sniff `process.argv`
-         * for the multitude of `--color` flags (see _Info_ below).
-         * If `false`, then `process.argv` is not considered when determining color support.
-         * @default true
-         */
-        sniffFlags?: boolean | undefined;
-        isTTY?: boolean | undefined;
-    }
-
-    type SupportsColor = false | Level;
-}
-
-export function supportsColor(
-    stream: {
-        isTTY?: boolean | undefined;
-    },
-    options?: supportsColor.Options,
-): supportsColor.SupportsColor;
-
-export const stdout: supportsColor.SupportsColor;
-export const stderr: supportsColor.SupportsColor;
diff --git a/types-supports-color/package.json b/types-supports-color/package.json
deleted file mode 100755
index a1781eb..0000000
--- a/types-supports-color/package.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-    "name": "@types/supports-color",
-    "version": "8.1.1",
-    "description": "TypeScript definitions for supports-color",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/supports-color",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Melvin Groenhoff",
-            "url": "https://github.com/mgroenhoff",
-            "githubUsername": "mgroenhoff"
-        },
-        {
-            "name": "Matt Traynham",
-            "url": "https://github.com/mtraynham",
-            "githubUsername": "mtraynham"
-        },
-        {
-            "name": "Piotr Błażejewicz",
-            "url": "https://github.com/peterblazejewicz",
-            "githubUsername": "peterblazejewicz"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/supports-color"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "8f4b3d7a61f7b3a823dca9b392e2ee071f9f3d48d008634c6291e0e0429176cc",
-    "typeScriptVersion": "3.6"
-}
\ No newline at end of file