vitest 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -369,6 +369,13 @@ Repository: sindresorhus/cli-truncate
369
369
 
370
370
  ---------------------------------------
371
371
 
372
+ ## eastasianwidth
373
+ License: MIT
374
+ By: Masaki Komagata
375
+ Repository: git://github.com/komagata/eastasianwidth.git
376
+
377
+ ---------------------------------------
378
+
372
379
  ## emoji-regex
373
380
  License: MIT
374
381
  By: Mathias Bynens
package/dist/browser.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { processError, startTests } from '@vitest/runner';
2
- import { R as ResolvedConfig, b as CoverageOptions, c as CoverageProvider, d as CoverageProviderModule } from './reporters-3OMQDZar.js';
2
+ import { R as ResolvedConfig, b as CoverageOptions, c as CoverageProvider, d as CoverageProviderModule } from './reporters-OH1c16Kq.js';
3
3
  import { VitestExecutor } from './execute.js';
4
4
  import 'vite';
5
5
  import 'vite-node';
package/dist/cli.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { normalize } from 'pathe';
2
2
  import cac from 'cac';
3
3
  import c from 'picocolors';
4
- import { v as version, s as startVitest } from './vendor/node.hPXN4l9e.js';
4
+ import { v as version, s as startVitest } from './vendor/node.vEetZgP7.js';
5
5
  import './vendor/index.XU72Rmy8.js';
6
- import { d as divider } from './vendor/reporters.pr8MinP9.js';
6
+ import { d as divider } from './vendor/reporters.r0gTYN3L.js';
7
7
  import { t as toArray } from './vendor/base._79unx2z.js';
8
8
  import 'vite';
9
9
  import 'node:path';
@@ -57,7 +57,7 @@ import './vendor/date.Ns1pGd_X.js';
57
57
  import './vendor/tasks.IknbGB2n.js';
58
58
 
59
59
  const cli = cac("vitest");
60
- cli.version(version).option("-r, --root <path>", "Root path").option("-c, --config <path>", "Path to config file").option("-u, --update", "Update snapshot").option("-w, --watch", "Enable watch mode").option("-t, --testNamePattern <pattern>", "Run tests with full names matching the specified regexp pattern").option("--dir <path>", "Base directory to scan for the test files").option("--ui", "Enable UI").option("--open", "Open UI automatically (default: !process.env.CI))").option("--api [api]", "Serve API, available options: --api.port <port>, --api.host [host] and --api.strictPort").option("--silent", "Silent console output from tests").option("--hideSkippedTests", "Hide logs for skipped tests").option("--reporter <name>", "Specify reporters").option("--outputFile <filename/-s>", "Write test results to a file when supporter reporter is also specified, use cac's dot notation for individual outputs of multiple reporters").option("--coverage", "Enable coverage report").option("--run", "Disable watch mode").option("--mode <name>", "Override Vite mode (default: test)").option("--globals", "Inject apis globally").option("--dom", "Mock browser API with happy-dom").option("--browser [options]", "Run tests in the browser (default: false)").option("--pool <pool>", "Specify pool, if not running in the browser (default: threads)").option("--poolOptions <options>", "Specify pool options").option("--poolOptions.threads.isolate", "Isolate tests in threads pool (default: true)").option("--poolOptions.forks.isolate", "Isolate tests in forks pool (default: true)").option("--environment <env>", "Specify runner environment, if not running in the browser (default: node)").option("--passWithNoTests", "Pass when no tests found").option("--logHeapUsage", "Show the size of heap for each test").option("--allowOnly", "Allow tests and suites that are marked as only (default: !process.env.CI)").option("--dangerouslyIgnoreUnhandledErrors", "Ignore any unhandled errors that occur").option("--shard <shard>", "Test suite shard to execute in a format of <index>/<count>").option("--changed [since]", "Run tests that are affected by the changed files (default: false)").option("--sequence <options>", "Define in what order to run tests (use --sequence.shuffle to run tests in random order, use --sequence.concurrent to run tests in parallel)").option("--segfaultRetry <times>", "Return tests on segment fault (default: 0)", { default: 0 }).option("--no-color", "Removes colors from the console output").option("--inspect", "Enable Node.js inspector").option("--inspect-brk", "Enable Node.js inspector with break").option("--test-timeout <time>", "Default timeout of a test in milliseconds (default: 5000)").option("--bail <number>", "Stop test execution when given number of tests have failed (default: 0)").option("--retry <times>", "Retry the test specific number of times if it fails (default: 0)").option("--diff <path>", "Path to a diff config that will be used to generate diff interface").option("--expand-snapshot-diff", "Show full diff when snapshot fails").option("--typecheck [options]", "Custom options for typecheck pool").option("--typecheck.enabled", "Enable typechecking alongside tests (default: false)").option("--typecheck.only", "Run only typecheck tests. This automatically enables typecheck (default: false)").option("--project <name>", "The name of the project to run if you are using Vitest workspace feature. This can be repeated for multiple projects: --project=1 --project=2").help();
60
+ cli.version(version).option("-r, --root <path>", "Root path").option("-c, --config <path>", "Path to config file").option("-u, --update", "Update snapshot").option("-w, --watch", "Enable watch mode").option("-t, --testNamePattern <pattern>", "Run tests with full names matching the specified regexp pattern").option("--dir <path>", "Base directory to scan for the test files").option("--ui", "Enable UI").option("--open", "Open UI automatically (default: !process.env.CI))").option("--api [api]", "Serve API, available options: --api.port <port>, --api.host [host] and --api.strictPort").option("--silent", "Silent console output from tests").option("--hideSkippedTests", "Hide logs for skipped tests").option("--reporter <name>", "Specify reporters").option("--outputFile <filename/-s>", "Write test results to a file when supporter reporter is also specified, use cac's dot notation for individual outputs of multiple reporters").option("--coverage", "Enable coverage report").option("--coverage.all", "Whether to include all files, including the untested ones into report", { default: true }).option("--run", "Disable watch mode").option("--mode <name>", "Override Vite mode (default: test)").option("--globals", "Inject apis globally").option("--dom", "Mock browser API with happy-dom").option("--browser [options]", "Run tests in the browser (default: false)").option("--pool <pool>", "Specify pool, if not running in the browser (default: threads)").option("--poolOptions <options>", "Specify pool options").option("--poolOptions.threads.isolate", "Isolate tests in threads pool (default: true)").option("--poolOptions.forks.isolate", "Isolate tests in forks pool (default: true)").option("--environment <env>", "Specify runner environment, if not running in the browser (default: node)").option("--passWithNoTests", "Pass when no tests found").option("--logHeapUsage", "Show the size of heap for each test").option("--allowOnly", "Allow tests and suites that are marked as only (default: !process.env.CI)").option("--dangerouslyIgnoreUnhandledErrors", "Ignore any unhandled errors that occur").option("--shard <shard>", "Test suite shard to execute in a format of <index>/<count>").option("--changed [since]", "Run tests that are affected by the changed files (default: false)").option("--sequence <options>", "Define in what order to run tests (use --sequence.shuffle to run tests in random order, use --sequence.concurrent to run tests in parallel)").option("--segfaultRetry <times>", "Return tests on segment fault (default: 0)", { default: 0 }).option("--no-color", "Removes colors from the console output").option("--inspect", "Enable Node.js inspector").option("--inspect-brk", "Enable Node.js inspector with break").option("--test-timeout <time>", "Default timeout of a test in milliseconds (default: 5000)").option("--bail <number>", "Stop test execution when given number of tests have failed (default: 0)").option("--retry <times>", "Retry the test specific number of times if it fails (default: 0)").option("--diff <path>", "Path to a diff config that will be used to generate diff interface").option("--expand-snapshot-diff", "Show full diff when snapshot fails").option("--typecheck [options]", "Custom options for typecheck pool").option("--typecheck.enabled", "Enable typechecking alongside tests (default: false)").option("--typecheck.only", "Run only typecheck tests. This automatically enables typecheck (default: false)").option("--project <name>", "The name of the project to run if you are using Vitest workspace feature. This can be repeated for multiple projects: --project=1 --project=2").help();
61
61
  cli.command("run [...filters]").action(run);
62
62
  cli.command("related [...filters]").action(runRelated);
63
63
  cli.command("watch [...filters]").action(watch);
package/dist/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { UserConfig as UserConfig$1, ConfigEnv } from 'vite';
2
2
  export { ConfigEnv, UserConfig, mergeConfig } from 'vite';
3
- import { a as ResolvedCoverageOptions, U as UserConfig, C as CoverageV8Options, P as ProjectConfig } from './reporters-3OMQDZar.js';
3
+ import { a as ResolvedCoverageOptions, U as UserConfig, C as CoverageV8Options, P as ProjectConfig } from './reporters-OH1c16Kq.js';
4
4
  import '@vitest/runner';
5
5
  import 'vite-node';
6
6
  import '@vitest/snapshot';
@@ -1,4 +1,4 @@
1
- import { B as BaseCoverageOptions, a as ResolvedCoverageOptions } from './reporters-3OMQDZar.js';
1
+ import { B as BaseCoverageOptions, a as ResolvedCoverageOptions } from './reporters-OH1c16Kq.js';
2
2
  import 'vite';
3
3
  import '@vitest/runner';
4
4
  import 'vite-node';
@@ -1,4 +1,4 @@
1
- import { E as Environment } from './reporters-3OMQDZar.js';
1
+ import { E as Environment } from './reporters-OH1c16Kq.js';
2
2
  import 'vite';
3
3
  import '@vitest/runner';
4
4
  import 'vite-node';
package/dist/execute.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import vm from 'node:vm';
2
2
  import { ViteNodeRunner } from 'vite-node/client';
3
3
  import { ViteNodeRunnerOptions } from 'vite-node';
4
- import { am as PendingSuiteMock, an as MockFactory, ao as MockMap, a2 as WorkerGlobalState, g as RuntimeRPC } from './reporters-3OMQDZar.js';
4
+ import { am as PendingSuiteMock, an as MockFactory, ao as MockMap, a2 as WorkerGlobalState, g as RuntimeRPC } from './reporters-OH1c16Kq.js';
5
5
  import 'vite';
6
6
  import '@vitest/runner';
7
7
  import '@vitest/snapshot';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { TaskPopulated, File, TaskResultPack, CancelReason } from '@vitest/runner';
2
2
  export { Custom, DoneCallback, ExtendedContext, File, HookCleanupCallback, HookListener, OnTestFailedHandler, RunMode, RuntimeContext, SequenceHooks, SequenceSetupFiles, Suite, SuiteAPI, SuiteCollector, SuiteFactory, SuiteHooks, Task, TaskBase, TaskContext, TaskCustomOptions, TaskMeta, TaskResult, TaskResultPack, TaskState, Test, TestAPI, TestContext, TestFunction, TestOptions, afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, suite, test } from '@vitest/runner';
3
- export { b as bench } from './suite-yBB1jXl9.js';
3
+ export { b as bench } from './suite-9ReVEt_h.js';
4
4
  import { ExpectStatic } from '@vitest/expect';
5
5
  export { Assertion, AsymmetricMatchersContaining, ExpectStatic, JestAssertion } from '@vitest/expect';
6
- import { F as FakeTimerInstallOpts, M as MockFactoryWithHelper, n as RuntimeConfig, f as ProvidedContext, A as AfterSuiteRunMeta, o as UserConsoleLog, R as ResolvedConfig, p as ModuleGraphData, q as Reporter } from './reporters-3OMQDZar.js';
7
- export { K as ApiConfig, a6 as ArgumentsType, a5 as Arrayable, a3 as Awaitable, B as BaseCoverageOptions, ak as BenchFunction, ai as Benchmark, al as BenchmarkAPI, aj as BenchmarkResult, ah as BenchmarkUserOptions, D as BuiltinEnvironment, I as CSSModuleScopeStrategy, u as CollectLineNumbers, v as CollectLines, a8 as Constructable, x as Context, _ as ContextRPC, Y as ContextTestEnvironment, af as CoverageIstanbulOptions, b as CoverageOptions, c as CoverageProvider, d as CoverageProviderModule, ae as CoverageReporter, C as CoverageV8Options, ag as CustomProviderOptions, N as DepsOptimizationOptions, E as Environment, L as EnvironmentOptions, aa as EnvironmentReturn, H as HappyDOMOptions, Q as InlineConfig, J as JSDOMOptions, a9 as ModuleCache, a7 as MutableArray, a4 as Nullable, ac as OnServerRestartHandler, y as Pool, z as PoolOptions, P as ProjectConfig, r as RawErrsMap, ad as ReportContext, a0 as ResolveIdFunction, a as ResolvedCoverageOptions, Z as ResolvedTestEnvironment, w as RootAndTarget, X as RunnerRPC, g as RuntimeRPC, O as TransformModePatterns, t as TscErrorInfo, S as TypecheckConfig, U as UserConfig, e as Vitest, G as VitestEnvironment, V as VitestRunMode, ab as VmEnvironmentReturn, $ as WorkerContext, a2 as WorkerGlobalState, a1 as WorkerRPC } from './reporters-3OMQDZar.js';
6
+ import { F as FakeTimerInstallOpts, M as MockFactoryWithHelper, n as RuntimeConfig, f as ProvidedContext, A as AfterSuiteRunMeta, o as UserConsoleLog, R as ResolvedConfig, p as ModuleGraphData, q as Reporter } from './reporters-OH1c16Kq.js';
7
+ export { K as ApiConfig, a6 as ArgumentsType, a5 as Arrayable, a3 as Awaitable, B as BaseCoverageOptions, ak as BenchFunction, ai as Benchmark, al as BenchmarkAPI, aj as BenchmarkResult, ah as BenchmarkUserOptions, D as BuiltinEnvironment, I as CSSModuleScopeStrategy, u as CollectLineNumbers, v as CollectLines, a8 as Constructable, x as Context, _ as ContextRPC, Y as ContextTestEnvironment, af as CoverageIstanbulOptions, b as CoverageOptions, c as CoverageProvider, d as CoverageProviderModule, ae as CoverageReporter, C as CoverageV8Options, ag as CustomProviderOptions, N as DepsOptimizationOptions, E as Environment, L as EnvironmentOptions, aa as EnvironmentReturn, H as HappyDOMOptions, Q as InlineConfig, J as JSDOMOptions, a9 as ModuleCache, a7 as MutableArray, a4 as Nullable, ac as OnServerRestartHandler, y as Pool, z as PoolOptions, P as ProjectConfig, r as RawErrsMap, ad as ReportContext, a0 as ResolveIdFunction, a as ResolvedCoverageOptions, Z as ResolvedTestEnvironment, w as RootAndTarget, X as RunnerRPC, g as RuntimeRPC, O as TransformModePatterns, t as TscErrorInfo, S as TypecheckConfig, U as UserConfig, e as Vitest, G as VitestEnvironment, V as VitestRunMode, ab as VmEnvironmentReturn, $ as WorkerContext, a2 as WorkerGlobalState, a1 as WorkerRPC } from './reporters-OH1c16Kq.js';
8
8
  import { spyOn, fn, MaybeMockedDeep, MaybeMocked, MaybePartiallyMocked, MaybePartiallyMockedDeep, MockInstance } from '@vitest/spy';
9
9
  export { Mock, MockContext, MockInstance, Mocked, MockedClass, MockedFunction, MockedObject, SpyInstance } from '@vitest/spy';
10
10
  export { SnapshotEnvironment } from '@vitest/snapshot/environment';
package/dist/node.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { V as VitestRunMode, U as UserConfig, e as Vitest, R as ResolvedConfig, f as ProvidedContext, W as WorkspaceProject, g as RuntimeRPC, T as TestSequencer, h as WorkspaceSpec } from './reporters-3OMQDZar.js';
2
- export { l as BrowserProvider, k as BrowserProviderInitializationOptions, m as BrowserProviderOptions, i as ProcessPool, j as TestSequencerConstructor, s as startVitest } from './reporters-3OMQDZar.js';
1
+ import { V as VitestRunMode, U as UserConfig, e as Vitest, R as ResolvedConfig, f as ProvidedContext, W as WorkspaceProject, g as RuntimeRPC, T as TestSequencer, h as WorkspaceSpec } from './reporters-OH1c16Kq.js';
2
+ export { l as BrowserProvider, k as BrowserProviderInitializationOptions, m as BrowserProviderOptions, i as ProcessPool, j as TestSequencerConstructor, s as startVitest } from './reporters-OH1c16Kq.js';
3
3
  import { UserConfig as UserConfig$1, Plugin } from 'vite';
4
4
  import '@vitest/runner';
5
5
  import 'vite-node';
package/dist/node.js CHANGED
@@ -1,4 +1,4 @@
1
- export { B as BaseSequencer, V as VitestPlugin, a as createMethodsRPC, c as createVitest, r as registerConsoleShortcuts, s as startVitest } from './vendor/node.hPXN4l9e.js';
1
+ export { B as BaseSequencer, V as VitestPlugin, a as createMethodsRPC, c as createVitest, r as registerConsoleShortcuts, s as startVitest } from './vendor/node.vEetZgP7.js';
2
2
  import 'pathe';
3
3
  import 'vite';
4
4
  import 'node:path';
@@ -41,7 +41,7 @@ import 'node:module';
41
41
  import 'local-pkg';
42
42
  import 'module';
43
43
  import 'acorn-walk';
44
- import './vendor/reporters.pr8MinP9.js';
44
+ import './vendor/reporters.r0gTYN3L.js';
45
45
  import './chunks/runtime-console.hf2msWA9.js';
46
46
  import 'node:stream';
47
47
  import 'node:console';
@@ -861,7 +861,6 @@ declare class Vitest {
861
861
  private _onClose;
862
862
  private _onSetServer;
863
863
  private _onCancelListeners;
864
- private _poolClosePromise?;
865
864
  setServer(options: UserConfig, server: ViteDevServer, cliOptions: UserConfig): Promise<void>;
866
865
  private createCoreProject;
867
866
  getCoreWorkspaceProject(): WorkspaceProject;
@@ -1,4 +1,4 @@
1
- export { ay as BaseReporter, aq as BasicReporter, aC as BenchmarkBuiltinReporters, aB as BenchmarkReportsMap, aA as BuiltinReporters, ap as DefaultReporter, ar as DotReporter, ax as HangingProcessReporter, av as JUnitReporter, as as JsonReporter, q as Reporter, az as ReportersMap, aw as TapFlatReporter, au as TapReporter, at as VerboseReporter } from './reporters-3OMQDZar.js';
1
+ export { ay as BaseReporter, aq as BasicReporter, aC as BenchmarkBuiltinReporters, aB as BenchmarkReportsMap, aA as BuiltinReporters, ap as DefaultReporter, ar as DotReporter, ax as HangingProcessReporter, av as JUnitReporter, as as JsonReporter, q as Reporter, az as ReportersMap, aw as TapFlatReporter, au as TapReporter, at as VerboseReporter } from './reporters-OH1c16Kq.js';
2
2
  import 'vite';
3
3
  import '@vitest/runner';
4
4
  import 'vite-node';
package/dist/reporters.js CHANGED
@@ -1,4 +1,4 @@
1
- export { f as BasicReporter, B as BenchmarkReportsMap, D as DefaultReporter, g as DotReporter, H as HangingProcessReporter, h as JUnitReporter, J as JsonReporter, R as ReportersMap, i as TapFlatReporter, T as TapReporter, V as VerboseReporter } from './vendor/reporters.pr8MinP9.js';
1
+ export { e as BasicReporter, B as BenchmarkReportsMap, D as DefaultReporter, f as DotReporter, H as HangingProcessReporter, g as JUnitReporter, J as JsonReporter, R as ReportersMap, h as TapFlatReporter, T as TapReporter, V as VerboseReporter } from './vendor/reporters.r0gTYN3L.js';
2
2
  import 'node:perf_hooks';
3
3
  import 'picocolors';
4
4
  import './vendor/index.XU72Rmy8.js';
package/dist/runners.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VitestRunner, VitestRunnerImportSource, Suite, Test, CancelReason, Custom, TaskContext, ExtendedContext } from '@vitest/runner';
2
- import { R as ResolvedConfig } from './reporters-3OMQDZar.js';
2
+ import { R as ResolvedConfig } from './reporters-OH1c16Kq.js';
3
3
  import * as tinybench from 'tinybench';
4
4
  import 'vite';
5
5
  import 'vite-node';
@@ -1,6 +1,6 @@
1
1
  import { Custom } from '@vitest/runner';
2
2
  import '@vitest/runner/utils';
3
- import { ak as BenchFunction, al as BenchmarkAPI } from './reporters-3OMQDZar.js';
3
+ import { ak as BenchFunction, al as BenchmarkAPI } from './reporters-OH1c16Kq.js';
4
4
  import { Options } from 'tinybench';
5
5
 
6
6
  declare function getBenchOptions(key: Custom): Options;
package/dist/suite.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { createTaskCollector, getCurrentSuite, getFn, setFn } from '@vitest/runner';
2
2
  export { createChainable } from '@vitest/runner/utils';
3
- export { g as getBenchFn, a as getBenchOptions } from './suite-yBB1jXl9.js';
4
- import './reporters-3OMQDZar.js';
3
+ export { g as getBenchFn, a as getBenchOptions } from './suite-9ReVEt_h.js';
4
+ import './reporters-OH1c16Kq.js';
5
5
  import 'vite';
6
6
  import 'vite-node';
7
7
  import '@vitest/snapshot';
@@ -17,7 +17,7 @@ import { slash as slash$2, normalizeRequestId, cleanUrl } from 'vite-node/utils'
17
17
  import { ViteNodeRunner } from 'vite-node/client';
18
18
  import { SnapshotManager } from '@vitest/snapshot/manager';
19
19
  import { ViteNodeServer } from 'vite-node/server';
20
- import { r as removeUndefinedValues, a as isWindows$1 } from './index.XU72Rmy8.js';
20
+ import { r as removeUndefinedValues, a as isWindows } from './index.XU72Rmy8.js';
21
21
  import { g as getCoverageProvider, C as CoverageProviderMap } from './coverage.v6aD8iAh.js';
22
22
  import { rootDir } from '../paths.js';
23
23
  import v8 from 'node:v8';
@@ -39,7 +39,7 @@ import { isCI, provider as provider$1 } from 'std-env';
39
39
  import ge from 'module';
40
40
  import { ancestor, simple, findNodeAround } from 'acorn-walk';
41
41
  import { generateHash, calculateSuiteHash, someTasksAreOnly, interpretTaskModes, getTasks, hasFailed } from '@vitest/runner/utils';
42
- import { R as ReportersMap, B as BenchmarkReportsMap, s as stringWidth, a as ansiStyles, b as stripAnsi, e as eastAsianWidth, d as divider, F as F_POINTER, c as cliTruncate } from './reporters.pr8MinP9.js';
42
+ import { R as ReportersMap, B as BenchmarkReportsMap, s as stripAnsi, a as ansiStyles, b as sliceAnsi, d as divider, F as F_POINTER, c as cliTruncate } from './reporters.r0gTYN3L.js';
43
43
  import crypto, { createHash } from 'node:crypto';
44
44
  import require$$0$3 from 'assert';
45
45
  import MagicString from 'magic-string';
@@ -63,7 +63,7 @@ function _mergeNamespaces(n, m) {
63
63
  return Object.freeze(n);
64
64
  }
65
65
 
66
- var version$1 = "1.0.2";
66
+ var version$1 = "1.0.4";
67
67
 
68
68
  const __dirname$1 = url.fileURLToPath(new URL(".", import.meta.url));
69
69
  async function ensurePackageInstalled(dependency, root) {
@@ -5281,15 +5281,7 @@ const ESC$1 = '\u001B[';
5281
5281
  const OSC = '\u001B]';
5282
5282
  const BEL = '\u0007';
5283
5283
  const SEP = ';';
5284
-
5285
- /* global window */
5286
- const isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
5287
-
5288
- const isTerminalApp = !isBrowser && process$2.env.TERM_PROGRAM === 'Apple_Terminal';
5289
- const isWindows = !isBrowser && process$2.platform === 'win32';
5290
- const cwdFunction = isBrowser ? () => {
5291
- throw new Error('`process.cwd()` only works in Node.js, not the browser.');
5292
- } : process$2.cwd;
5284
+ const isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal';
5293
5285
 
5294
5286
  const ansiEscapes = {};
5295
5287
 
@@ -5302,7 +5294,7 @@ ansiEscapes.cursorTo = (x, y) => {
5302
5294
  return ESC$1 + (x + 1) + 'G';
5303
5295
  }
5304
5296
 
5305
- return ESC$1 + (y + 1) + SEP + (x + 1) + 'H';
5297
+ return ESC$1 + (y + 1) + ';' + (x + 1) + 'H';
5306
5298
  };
5307
5299
 
5308
5300
  ansiEscapes.cursorMove = (x, y) => {
@@ -5366,33 +5358,32 @@ ansiEscapes.scrollDown = ESC$1 + 'T';
5366
5358
 
5367
5359
  ansiEscapes.clearScreen = '\u001Bc';
5368
5360
 
5369
- ansiEscapes.clearTerminal = isWindows
5370
- ? `${ansiEscapes.eraseScreen}${ESC$1}0f`
5361
+ ansiEscapes.clearTerminal = process.platform === 'win32' ?
5362
+ `${ansiEscapes.eraseScreen}${ESC$1}0f` :
5371
5363
  // 1. Erases the screen (Only done in case `2` is not supported)
5372
5364
  // 2. Erases the whole screen including scrollback buffer
5373
5365
  // 3. Moves cursor to the top-left position
5374
5366
  // More info: https://www.real-world-systems.com/docs/ANSIcode.html
5375
- : `${ansiEscapes.eraseScreen}${ESC$1}3J${ESC$1}H`;
5376
-
5377
- ansiEscapes.enterAlternativeScreen = ESC$1 + '?1049h';
5378
- ansiEscapes.exitAlternativeScreen = ESC$1 + '?1049l';
5367
+ `${ansiEscapes.eraseScreen}${ESC$1}3J${ESC$1}H`;
5379
5368
 
5380
5369
  ansiEscapes.beep = BEL;
5381
5370
 
5382
- ansiEscapes.link = (text, url) => [
5383
- OSC,
5384
- '8',
5385
- SEP,
5386
- SEP,
5387
- url,
5388
- BEL,
5389
- text,
5390
- OSC,
5391
- '8',
5392
- SEP,
5393
- SEP,
5394
- BEL,
5395
- ].join('');
5371
+ ansiEscapes.link = (text, url) => {
5372
+ return [
5373
+ OSC,
5374
+ '8',
5375
+ SEP,
5376
+ SEP,
5377
+ url,
5378
+ BEL,
5379
+ text,
5380
+ OSC,
5381
+ '8',
5382
+ SEP,
5383
+ SEP,
5384
+ BEL
5385
+ ].join('');
5386
+ };
5396
5387
 
5397
5388
  ansiEscapes.image = (buffer, options = {}) => {
5398
5389
  let returnValue = `${OSC}1337;File=inline=1`;
@@ -5413,9 +5404,9 @@ ansiEscapes.image = (buffer, options = {}) => {
5413
5404
  };
5414
5405
 
5415
5406
  ansiEscapes.iTerm = {
5416
- setCwd: (cwd = cwdFunction()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,
5407
+ setCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,
5417
5408
 
5418
- annotation(message, options = {}) {
5409
+ annotation: (message, options = {}) => {
5419
5410
  let returnValue = `${OSC}1337;`;
5420
5411
 
5421
5412
  const hasX = typeof options.x !== 'undefined';
@@ -5429,17 +5420,16 @@ ansiEscapes.iTerm = {
5429
5420
  returnValue += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation=';
5430
5421
 
5431
5422
  if (options.length > 0) {
5432
- returnValue += (
5433
- hasX
5434
- ? [message, options.length, options.x, options.y]
5435
- : [options.length, message]
5436
- ).join('|');
5423
+ returnValue +=
5424
+ (hasX ?
5425
+ [message, options.length, options.x, options.y] :
5426
+ [options.length, message]).join('|');
5437
5427
  } else {
5438
5428
  returnValue += message;
5439
5429
  }
5440
5430
 
5441
5431
  return returnValue + BEL;
5442
- },
5432
+ }
5443
5433
  };
5444
5434
 
5445
5435
  var onetime$2 = {exports: {}};
@@ -5821,7 +5811,382 @@ cliCursor.toggle = (force, writableStream) => {
5821
5811
  }
5822
5812
  };
5823
5813
 
5824
- const ESCAPES$1 = new Set([
5814
+ var eastasianwidth = {exports: {}};
5815
+
5816
+ (function (module) {
5817
+ var eaw = {};
5818
+
5819
+ {
5820
+ module.exports = eaw;
5821
+ }
5822
+
5823
+ eaw.eastAsianWidth = function(character) {
5824
+ var x = character.charCodeAt(0);
5825
+ var y = (character.length == 2) ? character.charCodeAt(1) : 0;
5826
+ var codePoint = x;
5827
+ if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {
5828
+ x &= 0x3FF;
5829
+ y &= 0x3FF;
5830
+ codePoint = (x << 10) | y;
5831
+ codePoint += 0x10000;
5832
+ }
5833
+
5834
+ if ((0x3000 == codePoint) ||
5835
+ (0xFF01 <= codePoint && codePoint <= 0xFF60) ||
5836
+ (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {
5837
+ return 'F';
5838
+ }
5839
+ if ((0x20A9 == codePoint) ||
5840
+ (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||
5841
+ (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||
5842
+ (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||
5843
+ (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||
5844
+ (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||
5845
+ (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {
5846
+ return 'H';
5847
+ }
5848
+ if ((0x1100 <= codePoint && codePoint <= 0x115F) ||
5849
+ (0x11A3 <= codePoint && codePoint <= 0x11A7) ||
5850
+ (0x11FA <= codePoint && codePoint <= 0x11FF) ||
5851
+ (0x2329 <= codePoint && codePoint <= 0x232A) ||
5852
+ (0x2E80 <= codePoint && codePoint <= 0x2E99) ||
5853
+ (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||
5854
+ (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||
5855
+ (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||
5856
+ (0x3001 <= codePoint && codePoint <= 0x303E) ||
5857
+ (0x3041 <= codePoint && codePoint <= 0x3096) ||
5858
+ (0x3099 <= codePoint && codePoint <= 0x30FF) ||
5859
+ (0x3105 <= codePoint && codePoint <= 0x312D) ||
5860
+ (0x3131 <= codePoint && codePoint <= 0x318E) ||
5861
+ (0x3190 <= codePoint && codePoint <= 0x31BA) ||
5862
+ (0x31C0 <= codePoint && codePoint <= 0x31E3) ||
5863
+ (0x31F0 <= codePoint && codePoint <= 0x321E) ||
5864
+ (0x3220 <= codePoint && codePoint <= 0x3247) ||
5865
+ (0x3250 <= codePoint && codePoint <= 0x32FE) ||
5866
+ (0x3300 <= codePoint && codePoint <= 0x4DBF) ||
5867
+ (0x4E00 <= codePoint && codePoint <= 0xA48C) ||
5868
+ (0xA490 <= codePoint && codePoint <= 0xA4C6) ||
5869
+ (0xA960 <= codePoint && codePoint <= 0xA97C) ||
5870
+ (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||
5871
+ (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||
5872
+ (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||
5873
+ (0xF900 <= codePoint && codePoint <= 0xFAFF) ||
5874
+ (0xFE10 <= codePoint && codePoint <= 0xFE19) ||
5875
+ (0xFE30 <= codePoint && codePoint <= 0xFE52) ||
5876
+ (0xFE54 <= codePoint && codePoint <= 0xFE66) ||
5877
+ (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||
5878
+ (0x1B000 <= codePoint && codePoint <= 0x1B001) ||
5879
+ (0x1F200 <= codePoint && codePoint <= 0x1F202) ||
5880
+ (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||
5881
+ (0x1F240 <= codePoint && codePoint <= 0x1F248) ||
5882
+ (0x1F250 <= codePoint && codePoint <= 0x1F251) ||
5883
+ (0x20000 <= codePoint && codePoint <= 0x2F73F) ||
5884
+ (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||
5885
+ (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {
5886
+ return 'W';
5887
+ }
5888
+ if ((0x0020 <= codePoint && codePoint <= 0x007E) ||
5889
+ (0x00A2 <= codePoint && codePoint <= 0x00A3) ||
5890
+ (0x00A5 <= codePoint && codePoint <= 0x00A6) ||
5891
+ (0x00AC == codePoint) ||
5892
+ (0x00AF == codePoint) ||
5893
+ (0x27E6 <= codePoint && codePoint <= 0x27ED) ||
5894
+ (0x2985 <= codePoint && codePoint <= 0x2986)) {
5895
+ return 'Na';
5896
+ }
5897
+ if ((0x00A1 == codePoint) ||
5898
+ (0x00A4 == codePoint) ||
5899
+ (0x00A7 <= codePoint && codePoint <= 0x00A8) ||
5900
+ (0x00AA == codePoint) ||
5901
+ (0x00AD <= codePoint && codePoint <= 0x00AE) ||
5902
+ (0x00B0 <= codePoint && codePoint <= 0x00B4) ||
5903
+ (0x00B6 <= codePoint && codePoint <= 0x00BA) ||
5904
+ (0x00BC <= codePoint && codePoint <= 0x00BF) ||
5905
+ (0x00C6 == codePoint) ||
5906
+ (0x00D0 == codePoint) ||
5907
+ (0x00D7 <= codePoint && codePoint <= 0x00D8) ||
5908
+ (0x00DE <= codePoint && codePoint <= 0x00E1) ||
5909
+ (0x00E6 == codePoint) ||
5910
+ (0x00E8 <= codePoint && codePoint <= 0x00EA) ||
5911
+ (0x00EC <= codePoint && codePoint <= 0x00ED) ||
5912
+ (0x00F0 == codePoint) ||
5913
+ (0x00F2 <= codePoint && codePoint <= 0x00F3) ||
5914
+ (0x00F7 <= codePoint && codePoint <= 0x00FA) ||
5915
+ (0x00FC == codePoint) ||
5916
+ (0x00FE == codePoint) ||
5917
+ (0x0101 == codePoint) ||
5918
+ (0x0111 == codePoint) ||
5919
+ (0x0113 == codePoint) ||
5920
+ (0x011B == codePoint) ||
5921
+ (0x0126 <= codePoint && codePoint <= 0x0127) ||
5922
+ (0x012B == codePoint) ||
5923
+ (0x0131 <= codePoint && codePoint <= 0x0133) ||
5924
+ (0x0138 == codePoint) ||
5925
+ (0x013F <= codePoint && codePoint <= 0x0142) ||
5926
+ (0x0144 == codePoint) ||
5927
+ (0x0148 <= codePoint && codePoint <= 0x014B) ||
5928
+ (0x014D == codePoint) ||
5929
+ (0x0152 <= codePoint && codePoint <= 0x0153) ||
5930
+ (0x0166 <= codePoint && codePoint <= 0x0167) ||
5931
+ (0x016B == codePoint) ||
5932
+ (0x01CE == codePoint) ||
5933
+ (0x01D0 == codePoint) ||
5934
+ (0x01D2 == codePoint) ||
5935
+ (0x01D4 == codePoint) ||
5936
+ (0x01D6 == codePoint) ||
5937
+ (0x01D8 == codePoint) ||
5938
+ (0x01DA == codePoint) ||
5939
+ (0x01DC == codePoint) ||
5940
+ (0x0251 == codePoint) ||
5941
+ (0x0261 == codePoint) ||
5942
+ (0x02C4 == codePoint) ||
5943
+ (0x02C7 == codePoint) ||
5944
+ (0x02C9 <= codePoint && codePoint <= 0x02CB) ||
5945
+ (0x02CD == codePoint) ||
5946
+ (0x02D0 == codePoint) ||
5947
+ (0x02D8 <= codePoint && codePoint <= 0x02DB) ||
5948
+ (0x02DD == codePoint) ||
5949
+ (0x02DF == codePoint) ||
5950
+ (0x0300 <= codePoint && codePoint <= 0x036F) ||
5951
+ (0x0391 <= codePoint && codePoint <= 0x03A1) ||
5952
+ (0x03A3 <= codePoint && codePoint <= 0x03A9) ||
5953
+ (0x03B1 <= codePoint && codePoint <= 0x03C1) ||
5954
+ (0x03C3 <= codePoint && codePoint <= 0x03C9) ||
5955
+ (0x0401 == codePoint) ||
5956
+ (0x0410 <= codePoint && codePoint <= 0x044F) ||
5957
+ (0x0451 == codePoint) ||
5958
+ (0x2010 == codePoint) ||
5959
+ (0x2013 <= codePoint && codePoint <= 0x2016) ||
5960
+ (0x2018 <= codePoint && codePoint <= 0x2019) ||
5961
+ (0x201C <= codePoint && codePoint <= 0x201D) ||
5962
+ (0x2020 <= codePoint && codePoint <= 0x2022) ||
5963
+ (0x2024 <= codePoint && codePoint <= 0x2027) ||
5964
+ (0x2030 == codePoint) ||
5965
+ (0x2032 <= codePoint && codePoint <= 0x2033) ||
5966
+ (0x2035 == codePoint) ||
5967
+ (0x203B == codePoint) ||
5968
+ (0x203E == codePoint) ||
5969
+ (0x2074 == codePoint) ||
5970
+ (0x207F == codePoint) ||
5971
+ (0x2081 <= codePoint && codePoint <= 0x2084) ||
5972
+ (0x20AC == codePoint) ||
5973
+ (0x2103 == codePoint) ||
5974
+ (0x2105 == codePoint) ||
5975
+ (0x2109 == codePoint) ||
5976
+ (0x2113 == codePoint) ||
5977
+ (0x2116 == codePoint) ||
5978
+ (0x2121 <= codePoint && codePoint <= 0x2122) ||
5979
+ (0x2126 == codePoint) ||
5980
+ (0x212B == codePoint) ||
5981
+ (0x2153 <= codePoint && codePoint <= 0x2154) ||
5982
+ (0x215B <= codePoint && codePoint <= 0x215E) ||
5983
+ (0x2160 <= codePoint && codePoint <= 0x216B) ||
5984
+ (0x2170 <= codePoint && codePoint <= 0x2179) ||
5985
+ (0x2189 == codePoint) ||
5986
+ (0x2190 <= codePoint && codePoint <= 0x2199) ||
5987
+ (0x21B8 <= codePoint && codePoint <= 0x21B9) ||
5988
+ (0x21D2 == codePoint) ||
5989
+ (0x21D4 == codePoint) ||
5990
+ (0x21E7 == codePoint) ||
5991
+ (0x2200 == codePoint) ||
5992
+ (0x2202 <= codePoint && codePoint <= 0x2203) ||
5993
+ (0x2207 <= codePoint && codePoint <= 0x2208) ||
5994
+ (0x220B == codePoint) ||
5995
+ (0x220F == codePoint) ||
5996
+ (0x2211 == codePoint) ||
5997
+ (0x2215 == codePoint) ||
5998
+ (0x221A == codePoint) ||
5999
+ (0x221D <= codePoint && codePoint <= 0x2220) ||
6000
+ (0x2223 == codePoint) ||
6001
+ (0x2225 == codePoint) ||
6002
+ (0x2227 <= codePoint && codePoint <= 0x222C) ||
6003
+ (0x222E == codePoint) ||
6004
+ (0x2234 <= codePoint && codePoint <= 0x2237) ||
6005
+ (0x223C <= codePoint && codePoint <= 0x223D) ||
6006
+ (0x2248 == codePoint) ||
6007
+ (0x224C == codePoint) ||
6008
+ (0x2252 == codePoint) ||
6009
+ (0x2260 <= codePoint && codePoint <= 0x2261) ||
6010
+ (0x2264 <= codePoint && codePoint <= 0x2267) ||
6011
+ (0x226A <= codePoint && codePoint <= 0x226B) ||
6012
+ (0x226E <= codePoint && codePoint <= 0x226F) ||
6013
+ (0x2282 <= codePoint && codePoint <= 0x2283) ||
6014
+ (0x2286 <= codePoint && codePoint <= 0x2287) ||
6015
+ (0x2295 == codePoint) ||
6016
+ (0x2299 == codePoint) ||
6017
+ (0x22A5 == codePoint) ||
6018
+ (0x22BF == codePoint) ||
6019
+ (0x2312 == codePoint) ||
6020
+ (0x2460 <= codePoint && codePoint <= 0x24E9) ||
6021
+ (0x24EB <= codePoint && codePoint <= 0x254B) ||
6022
+ (0x2550 <= codePoint && codePoint <= 0x2573) ||
6023
+ (0x2580 <= codePoint && codePoint <= 0x258F) ||
6024
+ (0x2592 <= codePoint && codePoint <= 0x2595) ||
6025
+ (0x25A0 <= codePoint && codePoint <= 0x25A1) ||
6026
+ (0x25A3 <= codePoint && codePoint <= 0x25A9) ||
6027
+ (0x25B2 <= codePoint && codePoint <= 0x25B3) ||
6028
+ (0x25B6 <= codePoint && codePoint <= 0x25B7) ||
6029
+ (0x25BC <= codePoint && codePoint <= 0x25BD) ||
6030
+ (0x25C0 <= codePoint && codePoint <= 0x25C1) ||
6031
+ (0x25C6 <= codePoint && codePoint <= 0x25C8) ||
6032
+ (0x25CB == codePoint) ||
6033
+ (0x25CE <= codePoint && codePoint <= 0x25D1) ||
6034
+ (0x25E2 <= codePoint && codePoint <= 0x25E5) ||
6035
+ (0x25EF == codePoint) ||
6036
+ (0x2605 <= codePoint && codePoint <= 0x2606) ||
6037
+ (0x2609 == codePoint) ||
6038
+ (0x260E <= codePoint && codePoint <= 0x260F) ||
6039
+ (0x2614 <= codePoint && codePoint <= 0x2615) ||
6040
+ (0x261C == codePoint) ||
6041
+ (0x261E == codePoint) ||
6042
+ (0x2640 == codePoint) ||
6043
+ (0x2642 == codePoint) ||
6044
+ (0x2660 <= codePoint && codePoint <= 0x2661) ||
6045
+ (0x2663 <= codePoint && codePoint <= 0x2665) ||
6046
+ (0x2667 <= codePoint && codePoint <= 0x266A) ||
6047
+ (0x266C <= codePoint && codePoint <= 0x266D) ||
6048
+ (0x266F == codePoint) ||
6049
+ (0x269E <= codePoint && codePoint <= 0x269F) ||
6050
+ (0x26BE <= codePoint && codePoint <= 0x26BF) ||
6051
+ (0x26C4 <= codePoint && codePoint <= 0x26CD) ||
6052
+ (0x26CF <= codePoint && codePoint <= 0x26E1) ||
6053
+ (0x26E3 == codePoint) ||
6054
+ (0x26E8 <= codePoint && codePoint <= 0x26FF) ||
6055
+ (0x273D == codePoint) ||
6056
+ (0x2757 == codePoint) ||
6057
+ (0x2776 <= codePoint && codePoint <= 0x277F) ||
6058
+ (0x2B55 <= codePoint && codePoint <= 0x2B59) ||
6059
+ (0x3248 <= codePoint && codePoint <= 0x324F) ||
6060
+ (0xE000 <= codePoint && codePoint <= 0xF8FF) ||
6061
+ (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||
6062
+ (0xFFFD == codePoint) ||
6063
+ (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||
6064
+ (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||
6065
+ (0x1F130 <= codePoint && codePoint <= 0x1F169) ||
6066
+ (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||
6067
+ (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||
6068
+ (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||
6069
+ (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {
6070
+ return 'A';
6071
+ }
6072
+
6073
+ return 'N';
6074
+ };
6075
+
6076
+ eaw.characterLength = function(character) {
6077
+ var code = this.eastAsianWidth(character);
6078
+ if (code == 'F' || code == 'W' || code == 'A') {
6079
+ return 2;
6080
+ } else {
6081
+ return 1;
6082
+ }
6083
+ };
6084
+
6085
+ // Split a string considering surrogate-pairs.
6086
+ function stringToArray(string) {
6087
+ return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || [];
6088
+ }
6089
+
6090
+ eaw.length = function(string) {
6091
+ var characters = stringToArray(string);
6092
+ var len = 0;
6093
+ for (var i = 0; i < characters.length; i++) {
6094
+ len = len + this.characterLength(characters[i]);
6095
+ }
6096
+ return len;
6097
+ };
6098
+
6099
+ eaw.slice = function(text, start, end) {
6100
+ textLen = eaw.length(text);
6101
+ start = start ? start : 0;
6102
+ end = end ? end : 1;
6103
+ if (start < 0) {
6104
+ start = textLen + start;
6105
+ }
6106
+ if (end < 0) {
6107
+ end = textLen + end;
6108
+ }
6109
+ var result = '';
6110
+ var eawLen = 0;
6111
+ var chars = stringToArray(text);
6112
+ for (var i = 0; i < chars.length; i++) {
6113
+ var char = chars[i];
6114
+ var charLen = eaw.length(char);
6115
+ if (eawLen >= start - (charLen == 2 ? 1 : 0)) {
6116
+ if (eawLen + charLen <= end) {
6117
+ result += char;
6118
+ } else {
6119
+ break;
6120
+ }
6121
+ }
6122
+ eawLen += charLen;
6123
+ }
6124
+ return result;
6125
+ };
6126
+ } (eastasianwidth));
6127
+
6128
+ var eastasianwidthExports = eastasianwidth.exports;
6129
+ var eastAsianWidth = /*@__PURE__*/getDefaultExportFromCjs(eastasianwidthExports);
6130
+
6131
+ var emojiRegex = function () {
6132
+ // https://mths.be/emoji
6133
+ return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;
6134
+ };
6135
+
6136
+ var emojiRegex$1 = /*@__PURE__*/getDefaultExportFromCjs(emojiRegex);
6137
+
6138
+ function stringWidth(string, options = {}) {
6139
+ if (typeof string !== 'string' || string.length === 0) {
6140
+ return 0;
6141
+ }
6142
+
6143
+ options = {
6144
+ ambiguousIsNarrow: true,
6145
+ ...options
6146
+ };
6147
+
6148
+ string = stripAnsi(string);
6149
+
6150
+ if (string.length === 0) {
6151
+ return 0;
6152
+ }
6153
+
6154
+ string = string.replace(emojiRegex$1(), ' ');
6155
+
6156
+ const ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;
6157
+ let width = 0;
6158
+
6159
+ for (const character of string) {
6160
+ const codePoint = character.codePointAt(0);
6161
+
6162
+ // Ignore control characters
6163
+ if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {
6164
+ continue;
6165
+ }
6166
+
6167
+ // Ignore combining characters
6168
+ if (codePoint >= 0x300 && codePoint <= 0x36F) {
6169
+ continue;
6170
+ }
6171
+
6172
+ const code = eastAsianWidth.eastAsianWidth(character);
6173
+ switch (code) {
6174
+ case 'F':
6175
+ case 'W':
6176
+ width += 2;
6177
+ break;
6178
+ case 'A':
6179
+ width += ambiguousCharacterWidth;
6180
+ break;
6181
+ default:
6182
+ width += 1;
6183
+ }
6184
+ }
6185
+
6186
+ return width;
6187
+ }
6188
+
6189
+ const ESCAPES = new Set([
5825
6190
  '\u001B',
5826
6191
  '\u009B',
5827
6192
  ]);
@@ -5833,8 +6198,8 @@ const ANSI_OSC = ']';
5833
6198
  const ANSI_SGR_TERMINATOR = 'm';
5834
6199
  const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
5835
6200
 
5836
- const wrapAnsiCode = code => `${ESCAPES$1.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
5837
- const wrapAnsiHyperlink = url => `${ESCAPES$1.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;
6201
+ const wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
6202
+ const wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;
5838
6203
 
5839
6204
  // Calculate the length of words split on ' ', ignoring
5840
6205
  // the extra characters added by ansi escape codes
@@ -5847,7 +6212,7 @@ const wrapWord = (rows, word, columns) => {
5847
6212
 
5848
6213
  let isInsideEscape = false;
5849
6214
  let isInsideLinkEscape = false;
5850
- let visible = stringWidth(stripAnsi(rows.at(-1)));
6215
+ let visible = stringWidth(stripAnsi(rows[rows.length - 1]));
5851
6216
 
5852
6217
  for (const [index, character] of characters.entries()) {
5853
6218
  const characterLength = stringWidth(character);
@@ -5859,11 +6224,9 @@ const wrapWord = (rows, word, columns) => {
5859
6224
  visible = 0;
5860
6225
  }
5861
6226
 
5862
- if (ESCAPES$1.has(character)) {
6227
+ if (ESCAPES.has(character)) {
5863
6228
  isInsideEscape = true;
5864
-
5865
- const ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join('');
5866
- isInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;
6229
+ isInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);
5867
6230
  }
5868
6231
 
5869
6232
  if (isInsideEscape) {
@@ -5889,7 +6252,7 @@ const wrapWord = (rows, word, columns) => {
5889
6252
 
5890
6253
  // It's possible that the last row we copy over is only
5891
6254
  // ansi escape characters, handle this edge-case
5892
- if (!visible && rows.at(-1).length > 0 && rows.length > 1) {
6255
+ if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {
5893
6256
  rows[rows.length - 2] += rows.pop();
5894
6257
  }
5895
6258
  };
@@ -5914,11 +6277,11 @@ const stringVisibleTrimSpacesRight = string => {
5914
6277
  return words.slice(0, last).join(' ') + words.slice(last).join('');
5915
6278
  };
5916
6279
 
5917
- // The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode.
6280
+ // The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode
5918
6281
  //
5919
- // 'hard' will never allow a string to take up more than columns characters.
6282
+ // 'hard' will never allow a string to take up more than columns characters
5920
6283
  //
5921
- // 'soft' allows long words to expand past the column length.
6284
+ // 'soft' allows long words to expand past the column length
5922
6285
  const exec = (string, columns, options = {}) => {
5923
6286
  if (options.trim !== false && string.trim() === '') {
5924
6287
  return '';
@@ -5933,10 +6296,10 @@ const exec = (string, columns, options = {}) => {
5933
6296
 
5934
6297
  for (const [index, word] of string.split(' ').entries()) {
5935
6298
  if (options.trim !== false) {
5936
- rows[rows.length - 1] = rows.at(-1).trimStart();
6299
+ rows[rows.length - 1] = rows[rows.length - 1].trimStart();
5937
6300
  }
5938
6301
 
5939
- let rowLength = stringWidth(rows.at(-1));
6302
+ let rowLength = stringWidth(rows[rows.length - 1]);
5940
6303
 
5941
6304
  if (index !== 0) {
5942
6305
  if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
@@ -5985,17 +6348,13 @@ const exec = (string, columns, options = {}) => {
5985
6348
  rows = rows.map(row => stringVisibleTrimSpacesRight(row));
5986
6349
  }
5987
6350
 
5988
- const preString = rows.join('\n');
5989
- const pre = [...preString];
5990
-
5991
- // We need to keep a separate index as `String#slice()` works on Unicode code units, while `pre` is an array of codepoints.
5992
- let preStringIndex = 0;
6351
+ const pre = [...rows.join('\n')];
5993
6352
 
5994
6353
  for (const [index, character] of pre.entries()) {
5995
6354
  returnValue += character;
5996
6355
 
5997
- if (ESCAPES$1.has(character)) {
5998
- const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || {groups: {}};
6356
+ if (ESCAPES.has(character)) {
6357
+ const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};
5999
6358
  if (groups.code !== undefined) {
6000
6359
  const code = Number.parseFloat(groups.code);
6001
6360
  escapeCode = code === END_CODE ? undefined : code;
@@ -6023,8 +6382,6 @@ const exec = (string, columns, options = {}) => {
6023
6382
  returnValue += wrapAnsiHyperlink(escapeUrl);
6024
6383
  }
6025
6384
  }
6026
-
6027
- preStringIndex += character.length;
6028
6385
  }
6029
6386
 
6030
6387
  return returnValue;
@@ -6034,185 +6391,12 @@ const exec = (string, columns, options = {}) => {
6034
6391
  function wrapAnsi(string, columns, options) {
6035
6392
  return String(string)
6036
6393
  .normalize()
6037
- .replaceAll('\r\n', '\n')
6394
+ .replace(/\r\n/g, '\n')
6038
6395
  .split('\n')
6039
6396
  .map(line => exec(line, columns, options))
6040
6397
  .join('\n');
6041
6398
  }
6042
6399
 
6043
- function isFullwidthCodePoint(codePoint) {
6044
- if (!Number.isInteger(codePoint)) {
6045
- return false;
6046
- }
6047
-
6048
- return eastAsianWidth(codePoint) === 2;
6049
- }
6050
-
6051
- // \x1b and \x9b
6052
- const ESCAPES = new Set([27, 155]);
6053
-
6054
- const CODE_POINT_0 = '0'.codePointAt(0);
6055
- const CODE_POINT_9 = '9'.codePointAt(0);
6056
-
6057
- const endCodesSet = new Set();
6058
- const endCodesMap = new Map();
6059
- for (const [start, end] of ansiStyles.codes) {
6060
- endCodesSet.add(ansiStyles.color.ansi(end));
6061
- endCodesMap.set(ansiStyles.color.ansi(start), ansiStyles.color.ansi(end));
6062
- }
6063
-
6064
- function getEndCode(code) {
6065
- if (endCodesSet.has(code)) {
6066
- return code;
6067
- }
6068
-
6069
- if (endCodesMap.has(code)) {
6070
- return endCodesMap.get(code);
6071
- }
6072
-
6073
- code = code.slice(2);
6074
- if (code.includes(';')) {
6075
- code = code[0] + '0';
6076
- }
6077
-
6078
- const returnValue = ansiStyles.codes.get(Number.parseInt(code, 10));
6079
- if (returnValue) {
6080
- return ansiStyles.color.ansi(returnValue);
6081
- }
6082
-
6083
- return ansiStyles.reset.open;
6084
- }
6085
-
6086
- function findNumberIndex(string) {
6087
- for (let index = 0; index < string.length; index++) {
6088
- const codePoint = string.codePointAt(index);
6089
- if (codePoint >= CODE_POINT_0 && codePoint <= CODE_POINT_9) {
6090
- return index;
6091
- }
6092
- }
6093
-
6094
- return -1;
6095
- }
6096
-
6097
- function parseAnsiCode(string, offset) {
6098
- string = string.slice(offset, offset + 19);
6099
- const startIndex = findNumberIndex(string);
6100
- if (startIndex !== -1) {
6101
- let endIndex = string.indexOf('m', startIndex);
6102
- if (endIndex === -1) {
6103
- endIndex = string.length;
6104
- }
6105
-
6106
- return string.slice(0, endIndex + 1);
6107
- }
6108
- }
6109
-
6110
- function tokenize(string, endCharacter = Number.POSITIVE_INFINITY) {
6111
- const returnValue = [];
6112
-
6113
- let index = 0;
6114
- let visibleCount = 0;
6115
- while (index < string.length) {
6116
- const codePoint = string.codePointAt(index);
6117
-
6118
- if (ESCAPES.has(codePoint)) {
6119
- const code = parseAnsiCode(string, index);
6120
- if (code) {
6121
- returnValue.push({
6122
- type: 'ansi',
6123
- code,
6124
- endCode: getEndCode(code),
6125
- });
6126
- index += code.length;
6127
- continue;
6128
- }
6129
- }
6130
-
6131
- const isFullWidth = isFullwidthCodePoint(codePoint);
6132
- const character = String.fromCodePoint(codePoint);
6133
-
6134
- returnValue.push({
6135
- type: 'character',
6136
- value: character,
6137
- isFullWidth,
6138
- });
6139
-
6140
- index += character.length;
6141
- visibleCount += isFullWidth ? 2 : character.length;
6142
-
6143
- if (visibleCount >= endCharacter) {
6144
- break;
6145
- }
6146
- }
6147
-
6148
- return returnValue;
6149
- }
6150
-
6151
- function reduceAnsiCodes(codes) {
6152
- let returnValue = [];
6153
-
6154
- for (const code of codes) {
6155
- if (code.code === ansiStyles.reset.open) {
6156
- // Reset code, disable all codes
6157
- returnValue = [];
6158
- } else if (endCodesSet.has(code.code)) {
6159
- // This is an end code, disable all matching start codes
6160
- returnValue = returnValue.filter(returnValueCode => returnValueCode.endCode !== code.code);
6161
- } else {
6162
- // This is a start code. Disable all styles this "overrides", then enable it
6163
- returnValue = returnValue.filter(returnValueCode => returnValueCode.endCode !== code.endCode);
6164
- returnValue.push(code);
6165
- }
6166
- }
6167
-
6168
- return returnValue;
6169
- }
6170
-
6171
- function undoAnsiCodes(codes) {
6172
- const reduced = reduceAnsiCodes(codes);
6173
- const endCodes = reduced.map(({endCode}) => endCode);
6174
- return endCodes.reverse().join('');
6175
- }
6176
-
6177
- function sliceAnsi(string, start, end) {
6178
- const tokens = tokenize(string, end);
6179
- let activeCodes = [];
6180
- let position = 0;
6181
- let returnValue = '';
6182
- let include = false;
6183
-
6184
- for (const token of tokens) {
6185
- if (end !== undefined && position >= end) {
6186
- break;
6187
- }
6188
-
6189
- if (token.type === 'ansi') {
6190
- activeCodes.push(token);
6191
- if (include) {
6192
- returnValue += token.code;
6193
- }
6194
- } else {
6195
- // Character
6196
- if (!include && position >= start) {
6197
- include = true;
6198
- // Simplify active codes
6199
- activeCodes = reduceAnsiCodes(activeCodes);
6200
- returnValue = activeCodes.map(({code}) => code).join('');
6201
- }
6202
-
6203
- if (include) {
6204
- returnValue += token.value;
6205
- }
6206
-
6207
- position += token.isFullWidth ? 2 : token.value.length;
6208
- }
6209
- }
6210
-
6211
- // Disable active codes at the end
6212
- returnValue += undoAnsiCodes(activeCodes);
6213
- return returnValue;
6214
- }
6215
-
6216
6400
  const defaultTerminalHeight = 24;
6217
6401
 
6218
6402
  const getWidth = stream => {
@@ -6226,7 +6410,7 @@ const getWidth = stream => {
6226
6410
  };
6227
6411
 
6228
6412
  const fitToTerminalHeight = (stream, text) => {
6229
- const terminalHeight = stream.rows ?? defaultTerminalHeight;
6413
+ const terminalHeight = stream.rows || defaultTerminalHeight;
6230
6414
  const lines = text.split('\n');
6231
6415
 
6232
6416
  const toRemove = lines.length - terminalHeight;
@@ -6292,7 +6476,7 @@ createLogUpdate(process$2.stdout);
6292
6476
 
6293
6477
  createLogUpdate(process$2.stderr);
6294
6478
 
6295
- var version = "1.0.2";
6479
+ var version = "1.0.4";
6296
6480
 
6297
6481
  async function printError(error, project, options) {
6298
6482
  const { showCodeFrame = true, fullStack = false, type } = options;
@@ -7615,7 +7799,6 @@ class Vitest {
7615
7799
  _onClose = [];
7616
7800
  _onSetServer = [];
7617
7801
  _onCancelListeners = [];
7618
- _poolClosePromise;
7619
7802
  async setServer(options, server, cliOptions) {
7620
7803
  var _a, _b, _c, _d;
7621
7804
  (_a = this.unregisterWatcher) == null ? void 0 : _a.call(this);
@@ -7806,7 +7989,7 @@ class Vitest {
7806
7989
  return Promise.all(this.projects.map((w) => w.initBrowserProvider()));
7807
7990
  }
7808
7991
  async start(filters) {
7809
- var _a, _b, _c;
7992
+ var _a, _b;
7810
7993
  this._onClose = [];
7811
7994
  try {
7812
7995
  await this.initCoverageProvider();
@@ -7832,8 +8015,6 @@ class Vitest {
7832
8015
  await this.cache.stats.populateStats(this.config.root, files);
7833
8016
  await this.runFiles(files);
7834
8017
  }
7835
- if (!this.config.watch && ((_c = this.pool) == null ? void 0 : _c.close))
7836
- this._poolClosePromise = this.pool.close();
7837
8018
  await this.reportCoverage(true);
7838
8019
  if (this.config.watch)
7839
8020
  await this.report("onWatcherStart");
@@ -7848,7 +8029,7 @@ class Vitest {
7848
8029
  return;
7849
8030
  const dependencies = [...transformed.deps || [], ...transformed.dynamicDeps || []];
7850
8031
  await Promise.all(dependencies.map(async (dep) => {
7851
- const path = await this.server.pluginContainer.resolveId(dep, filepath2, { ssr: true });
8032
+ const path = await project.server.pluginContainer.resolveId(dep, filepath2, { ssr: true });
7852
8033
  const fsPath = path && !path.external && path.id.split("?")[0];
7853
8034
  if (fsPath && !fsPath.includes("node_modules") && !deps.has(fsPath) && existsSync(fsPath)) {
7854
8035
  deps.add(fsPath);
@@ -8154,8 +8335,7 @@ class Vitest {
8154
8335
  if (this.pool) {
8155
8336
  closePromises.push((async () => {
8156
8337
  var _a, _b;
8157
- await (this._poolClosePromise || ((_b = (_a = this.pool) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a)));
8158
- this._poolClosePromise = void 0;
8338
+ await ((_b = (_a = this.pool) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a));
8159
8339
  this.pool = void 0;
8160
8340
  })());
8161
8341
  }
@@ -14690,7 +14870,7 @@ function registerConsoleShortcuts(ctx) {
14690
14870
  }
14691
14871
  return ctx.exit(true);
14692
14872
  }
14693
- if (!isWindows$1 && key && key.ctrl && key.name === "z") {
14873
+ if (!isWindows && key && key.ctrl && key.name === "z") {
14694
14874
  process.kill(process.ppid, "SIGTSTP");
14695
14875
  process.kill(process.pid, "SIGTSTP");
14696
14876
  return;
@@ -2651,4 +2651,4 @@ const ReportersMap = {
2651
2651
  "hanging-process": HangingProcessReporter
2652
2652
  };
2653
2653
 
2654
- export { BenchmarkReportsMap as B, DefaultReporter as D, F_POINTER as F, HangingProcessReporter as H, JsonReporter$1 as J, ReportersMap as R, TapReporter as T, VerboseReporter as V, ansiStyles as a, stripAnsi as b, cliTruncate as c, divider as d, eastAsianWidth as e, BasicReporter as f, DotReporter as g, JUnitReporter as h, TapFlatReporter as i, stringWidth as s };
2654
+ export { BenchmarkReportsMap as B, DefaultReporter as D, F_POINTER as F, HangingProcessReporter as H, JsonReporter$1 as J, ReportersMap as R, TapReporter as T, VerboseReporter as V, ansiStyles as a, sliceAnsi as b, cliTruncate as c, divider as d, BasicReporter as e, DotReporter as f, JUnitReporter as g, TapFlatReporter as h, stripAnsi as s };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vitest",
3
3
  "type": "module",
4
- "version": "1.0.2",
4
+ "version": "1.0.4",
5
5
  "description": "Next generation testing framework powered by Vite",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -147,12 +147,12 @@
147
147
  "tinypool": "^0.8.1",
148
148
  "vite": "^5.0.0",
149
149
  "why-is-node-running": "^2.2.2",
150
- "vite-node": "1.0.2",
151
- "@vitest/expect": "1.0.2",
152
- "@vitest/utils": "1.0.2",
153
- "@vitest/runner": "1.0.2",
154
- "@vitest/spy": "1.0.2",
155
- "@vitest/snapshot": "1.0.2"
150
+ "@vitest/expect": "1.0.4",
151
+ "@vitest/runner": "1.0.4",
152
+ "@vitest/snapshot": "1.0.4",
153
+ "@vitest/utils": "1.0.4",
154
+ "@vitest/spy": "1.0.4",
155
+ "vite-node": "1.0.4"
156
156
  },
157
157
  "devDependencies": {
158
158
  "@ampproject/remapping": "^2.2.1",
@@ -176,7 +176,7 @@
176
176
  "get-tsconfig": "^4.7.2",
177
177
  "happy-dom": "^12.10.3",
178
178
  "jsdom": "^23.0.1",
179
- "log-update": "^6.0.0",
179
+ "log-update": "^5.0.1",
180
180
  "micromatch": "^4.0.5",
181
181
  "p-limit": "^5.0.0",
182
182
  "pretty-format": "^29.7.0",