vitest 3.2.0-beta.2 → 3.2.0-beta.3
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/dist/browser.d.ts +3 -3
- package/dist/browser.js +1 -1
- package/dist/chunks/{base.DwtwORaC.js → base.D4119yLM.js} +4 -3
- package/dist/chunks/{benchmark.BoF7jW0Q.js → benchmark.Cf_PACH1.js} +1 -1
- package/dist/chunks/{cac.I9MLYfT-.js → cac.DWaWHIIE.js} +18 -15
- package/dist/chunks/{cli-api.d6IK1pnk.js → cli-api.CnmEXkxs.js} +250 -49
- package/dist/chunks/{config.d.UqE-KR0o.d.ts → config.d.D2ROskhv.d.ts} +2 -0
- package/dist/chunks/{console.K1NMVOSc.js → console.Cwr-MFPV.js} +3 -2
- package/dist/chunks/{constants.BZZyIeIE.js → constants.DnKduX2e.js} +1 -0
- package/dist/chunks/{coverage.OGU09Jbh.js → coverage.C73DaDgS.js} +116 -12
- package/dist/chunks/{creator.DGAdZ4Hj.js → creator.C8WKy2eW.js} +10 -7
- package/dist/chunks/{date.CDOsz-HY.js → date.ByMsSlOr.js} +25 -0
- package/dist/chunks/{defaults.DSxsTG0h.js → defaults.DpVH7vbg.js} +1 -0
- package/dist/chunks/{environment.d.D8YDy2v5.d.ts → environment.d.cL3nLXbE.d.ts} +1 -0
- package/dist/chunks/{execute.JlGHLJZT.js → execute.B3q-2LPV.js} +25 -0
- package/dist/chunks/{global.d.BPa1eL3O.d.ts → global.d.BNLIi6yo.d.ts} +3 -1
- package/dist/chunks/{globals.CpxW8ccg.js → globals.CI21aWXF.js} +7 -6
- package/dist/chunks/{index.DFXFpH3w.js → index.2jgTs_Q5.js} +19 -1
- package/dist/chunks/{index.CV36oG_L.js → index.Bter3jj9.js} +83 -16
- package/dist/chunks/{index.DswW_LEs.js → index.CbT4iuwc.js} +7 -4
- package/dist/chunks/index.D3XRDfWc.js +213 -0
- package/dist/chunks/{index.CfXMNXHg.js → index.DNgLEKsQ.js} +4 -2
- package/dist/chunks/{index.CmC5OK9L.js → index.JOzufsrU.js} +2 -1
- package/dist/chunks/{inspector.DbDkSkFn.js → inspector.BFsh5KO0.js} +3 -0
- package/dist/chunks/{node.3xsWotC9.js → node.Be-ntJnD.js} +1 -1
- package/dist/chunks/{reporters.d.CLC9rhKy.d.ts → reporters.d.Bt4IGtsa.d.ts} +24 -6
- package/dist/chunks/{rpc.D9_013TY.js → rpc.BKExFSRG.js} +2 -1
- package/dist/chunks/{runBaseTests.Dn2vyej_.js → runBaseTests.B_M1TTsK.js} +19 -10
- package/dist/chunks/{setup-common.CYo3Y0dD.js → setup-common.CF-O-dZX.js} +2 -1
- package/dist/chunks/{typechecker.DnTrplSJ.js → typechecker.BgzF-6iO.js} +78 -21
- package/dist/chunks/{utils.CgTj3MsC.js → utils.BlI4TC7Y.js} +1 -0
- package/dist/chunks/{utils.BfxieIyZ.js → utils.DPCq3gzW.js} +3 -0
- package/dist/chunks/{vi.BFR5YIgu.js → vi.pkoYCV6A.js} +25 -2
- package/dist/chunks/{vite.d.CBZ3M_ru.d.ts → vite.d.B-Kx3KCF.d.ts} +3 -1
- package/dist/chunks/{vm.C1HHjtNS.js → vm.DPYem2so.js} +72 -4
- package/dist/chunks/{worker.d.CoCI7hzP.d.ts → worker.d.BKbBp2ga.d.ts} +2 -2
- package/dist/chunks/{worker.d.D5Xdi-Zr.d.ts → worker.d.Bl1O4kuf.d.ts} +1 -1
- package/dist/cli.js +4 -4
- package/dist/config.cjs +2 -0
- package/dist/config.d.ts +7 -6
- package/dist/config.js +2 -2
- package/dist/coverage.d.ts +4 -4
- package/dist/coverage.js +5 -5
- package/dist/environments.d.ts +6 -2
- package/dist/environments.js +1 -1
- package/dist/execute.d.ts +9 -3
- package/dist/execute.js +1 -1
- package/dist/index.d.ts +24 -12
- package/dist/index.js +5 -5
- package/dist/node.d.ts +18 -10
- package/dist/node.js +14 -12
- package/dist/reporters.d.ts +4 -4
- package/dist/reporters.js +3 -3
- package/dist/runners.d.ts +1 -1
- package/dist/runners.js +13 -5
- package/dist/snapshot.js +2 -2
- package/dist/suite.js +2 -2
- package/dist/worker.js +9 -5
- package/dist/workers/forks.js +6 -4
- package/dist/workers/runVmTests.js +14 -9
- package/dist/workers/threads.js +4 -4
- package/dist/workers/vmForks.js +6 -6
- package/dist/workers/vmThreads.js +6 -6
- package/dist/workers.d.ts +4 -4
- package/dist/workers.js +10 -10
- package/package.json +18 -18
- package/dist/chunks/index.CK1YOQaa.js +0 -143
package/dist/worker.js
CHANGED
|
@@ -4,11 +4,11 @@ import { workerId } from 'tinypool';
|
|
|
4
4
|
import { ViteNodeRunner, ModuleCacheMap } from 'vite-node/client';
|
|
5
5
|
import { readFileSync } from 'node:fs';
|
|
6
6
|
import { resolve, normalize } from 'pathe';
|
|
7
|
-
import { e as environments } from './chunks/index.
|
|
8
|
-
import { s as setupInspect } from './chunks/inspector.
|
|
9
|
-
import { c as createRuntimeRpc, a as rpcDone } from './chunks/rpc.
|
|
10
|
-
import { i as isChildProcess, s as setProcessTitle } from './chunks/utils.
|
|
11
|
-
import { d as disposeInternalListeners } from './chunks/utils.
|
|
7
|
+
import { e as environments } from './chunks/index.2jgTs_Q5.js';
|
|
8
|
+
import { s as setupInspect } from './chunks/inspector.BFsh5KO0.js';
|
|
9
|
+
import { c as createRuntimeRpc, a as rpcDone } from './chunks/rpc.BKExFSRG.js';
|
|
10
|
+
import { i as isChildProcess, s as setProcessTitle } from './chunks/utils.BlI4TC7Y.js';
|
|
11
|
+
import { d as disposeInternalListeners } from './chunks/utils.DPCq3gzW.js';
|
|
12
12
|
import 'node:console';
|
|
13
13
|
import 'node:module';
|
|
14
14
|
import '@vitest/utils';
|
|
@@ -59,11 +59,13 @@ if (isChildProcess()) {
|
|
|
59
59
|
setProcessTitle(`vitest ${workerId}`);
|
|
60
60
|
const isProfiling = process.execArgv.some((execArg) => execArg.startsWith("--prof") || execArg.startsWith("--cpu-prof") || execArg.startsWith("--heap-prof") || execArg.startsWith("--diagnostic-dir"));
|
|
61
61
|
if (isProfiling) {
|
|
62
|
+
// Work-around for nodejs/node#55094
|
|
62
63
|
process.on("SIGTERM", () => {
|
|
63
64
|
process.exit();
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
}
|
|
68
|
+
// this is what every pool executes when running tests
|
|
67
69
|
async function execute(method, ctx) {
|
|
68
70
|
disposeInternalListeners();
|
|
69
71
|
const prepareStart = performance.now();
|
|
@@ -71,6 +73,7 @@ async function execute(method, ctx) {
|
|
|
71
73
|
process.env.VITEST_WORKER_ID = String(ctx.workerId);
|
|
72
74
|
process.env.VITEST_POOL_ID = String(workerId);
|
|
73
75
|
try {
|
|
76
|
+
// worker is a filepath or URL to a file that exposes a default export with "getRpcOptions" and "runTests" methods
|
|
74
77
|
if (ctx.worker[0] === ".") {
|
|
75
78
|
throw new Error(`Path to the test runner cannot be relative, received "${ctx.worker}"`);
|
|
76
79
|
}
|
|
@@ -83,6 +86,7 @@ async function execute(method, ctx) {
|
|
|
83
86
|
if (!worker.getRpcOptions || typeof worker.getRpcOptions !== "function") {
|
|
84
87
|
throw new TypeError(`Test worker should expose "getRpcOptions" method. Received "${typeof worker.getRpcOptions}".`);
|
|
85
88
|
}
|
|
89
|
+
// RPC is used to communicate between worker (be it a thread worker or child process or a custom implementation) and the main thread
|
|
86
90
|
const { rpc, onCancel } = createRuntimeRpc(worker.getRpcOptions(ctx));
|
|
87
91
|
const beforeEnvironmentTime = performance.now();
|
|
88
92
|
const environment = await loadEnvironment(ctx, rpc);
|
package/dist/workers/forks.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import v8 from 'node:v8';
|
|
2
|
-
import { r as runBaseTests } from '../chunks/base.
|
|
3
|
-
import { c as createForksRpcOptions, u as unwrapSerializableConfig } from '../chunks/utils.
|
|
2
|
+
import { r as runBaseTests } from '../chunks/base.D4119yLM.js';
|
|
3
|
+
import { c as createForksRpcOptions, u as unwrapSerializableConfig } from '../chunks/utils.DPCq3gzW.js';
|
|
4
4
|
import 'vite-node/client';
|
|
5
|
-
import '../chunks/execute.
|
|
5
|
+
import '../chunks/execute.B3q-2LPV.js';
|
|
6
6
|
import 'node:fs';
|
|
7
7
|
import 'node:url';
|
|
8
8
|
import 'node:vm';
|
|
@@ -14,13 +14,15 @@ import 'node:path';
|
|
|
14
14
|
import '@vitest/mocker';
|
|
15
15
|
import 'node:module';
|
|
16
16
|
import '@vitest/utils';
|
|
17
|
-
import '../chunks/utils.
|
|
17
|
+
import '../chunks/utils.BlI4TC7Y.js';
|
|
18
18
|
|
|
19
19
|
class ForksBaseWorker {
|
|
20
20
|
getRpcOptions() {
|
|
21
21
|
return createForksRpcOptions(v8);
|
|
22
22
|
}
|
|
23
23
|
async executeTests(method, state) {
|
|
24
|
+
// TODO: don't rely on reassigning process.exit
|
|
25
|
+
// https://github.com/vitest-dev/vitest/pull/4441#discussion_r1443771486
|
|
24
26
|
const exit = process.exit;
|
|
25
27
|
state.ctx.config = unwrapSerializableConfig(state.ctx.config);
|
|
26
28
|
try {
|
|
@@ -6,29 +6,29 @@ import util from 'node:util';
|
|
|
6
6
|
import { startTests, collectTests } from '@vitest/runner';
|
|
7
7
|
import { KNOWN_ASSET_TYPES } from 'vite-node/constants';
|
|
8
8
|
import { installSourcemapsSupport } from 'vite-node/source-map';
|
|
9
|
-
import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment } from '../chunks/index.
|
|
10
|
-
import { c as setupCommonEnv, s as startCoverageInsideWorker, a as stopCoverageInsideWorker } from '../chunks/setup-common.
|
|
11
|
-
import { V as VitestIndex } from '../chunks/index.
|
|
12
|
-
import { c as closeInspector } from '../chunks/inspector.
|
|
13
|
-
import { g as getWorkerState } from '../chunks/utils.
|
|
9
|
+
import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment } from '../chunks/index.CbT4iuwc.js';
|
|
10
|
+
import { c as setupCommonEnv, s as startCoverageInsideWorker, a as stopCoverageInsideWorker } from '../chunks/setup-common.CF-O-dZX.js';
|
|
11
|
+
import { V as VitestIndex } from '../chunks/index.DNgLEKsQ.js';
|
|
12
|
+
import { c as closeInspector } from '../chunks/inspector.BFsh5KO0.js';
|
|
13
|
+
import { g as getWorkerState } from '../chunks/utils.BlI4TC7Y.js';
|
|
14
14
|
import 'chai';
|
|
15
15
|
import 'node:path';
|
|
16
16
|
import '../path.js';
|
|
17
17
|
import 'node:url';
|
|
18
|
-
import '../chunks/rpc.
|
|
18
|
+
import '../chunks/rpc.BKExFSRG.js';
|
|
19
19
|
import '@vitest/utils';
|
|
20
20
|
import '../chunks/index.CJ0plNrh.js';
|
|
21
21
|
import '../chunks/coverage.0iPg4Wrz.js';
|
|
22
22
|
import '@vitest/snapshot';
|
|
23
|
-
import '../chunks/vi.
|
|
23
|
+
import '../chunks/vi.pkoYCV6A.js';
|
|
24
24
|
import '@vitest/expect';
|
|
25
25
|
import '@vitest/runner/utils';
|
|
26
26
|
import '../chunks/_commonjsHelpers.BFTU3MAI.js';
|
|
27
27
|
import '@vitest/utils/error';
|
|
28
28
|
import '@vitest/spy';
|
|
29
29
|
import '@vitest/utils/source-map';
|
|
30
|
-
import '../chunks/date.
|
|
31
|
-
import '../chunks/benchmark.
|
|
30
|
+
import '../chunks/date.ByMsSlOr.js';
|
|
31
|
+
import '../chunks/benchmark.Cf_PACH1.js';
|
|
32
32
|
import 'expect-type';
|
|
33
33
|
|
|
34
34
|
async function run(method, files, config, executor) {
|
|
@@ -40,10 +40,12 @@ async function run(method, files, config, executor) {
|
|
|
40
40
|
});
|
|
41
41
|
if (workerState.environment.transformMode === "web") {
|
|
42
42
|
const _require = createRequire(import.meta.url);
|
|
43
|
+
// always mock "required" `css` files, because we cannot process them
|
|
43
44
|
_require.extensions[".css"] = resolveCss;
|
|
44
45
|
_require.extensions[".scss"] = resolveCss;
|
|
45
46
|
_require.extensions[".sass"] = resolveCss;
|
|
46
47
|
_require.extensions[".less"] = resolveCss;
|
|
48
|
+
// since we are using Vite, we can assume how these will be resolved
|
|
47
49
|
KNOWN_ASSET_TYPES.forEach((type) => {
|
|
48
50
|
_require.extensions[`.${type}`] = resolveAsset;
|
|
49
51
|
});
|
|
@@ -51,6 +53,7 @@ async function run(method, files, config, executor) {
|
|
|
51
53
|
} else {
|
|
52
54
|
process.env.SSR = "1";
|
|
53
55
|
}
|
|
56
|
+
// @ts-expect-error not typed global for patched timers
|
|
54
57
|
globalThis.__vitest_required__ = {
|
|
55
58
|
util,
|
|
56
59
|
timers,
|
|
@@ -76,7 +79,9 @@ async function run(method, files, config, executor) {
|
|
|
76
79
|
} else {
|
|
77
80
|
await collectTests([file], runner);
|
|
78
81
|
}
|
|
82
|
+
// reset after tests, because user might call `vi.setConfig` in setupFile
|
|
79
83
|
vi.resetConfig();
|
|
84
|
+
// mocks should not affect different files
|
|
80
85
|
vi.restoreAllMocks();
|
|
81
86
|
}
|
|
82
87
|
await stopCoverageInsideWorker(config.coverage, executor, { isolate: false });
|
package/dist/workers/threads.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { r as runBaseTests } from '../chunks/base.
|
|
2
|
-
import { a as createThreadsRpcOptions } from '../chunks/utils.
|
|
1
|
+
import { r as runBaseTests } from '../chunks/base.D4119yLM.js';
|
|
2
|
+
import { a as createThreadsRpcOptions } from '../chunks/utils.DPCq3gzW.js';
|
|
3
3
|
import 'vite-node/client';
|
|
4
|
-
import '../chunks/execute.
|
|
4
|
+
import '../chunks/execute.B3q-2LPV.js';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'node:url';
|
|
7
7
|
import 'node:vm';
|
|
@@ -13,7 +13,7 @@ import 'node:path';
|
|
|
13
13
|
import '@vitest/mocker';
|
|
14
14
|
import 'node:module';
|
|
15
15
|
import '@vitest/utils';
|
|
16
|
-
import '../chunks/utils.
|
|
16
|
+
import '../chunks/utils.BlI4TC7Y.js';
|
|
17
17
|
|
|
18
18
|
class ThreadsBaseWorker {
|
|
19
19
|
getRpcOptions(ctx) {
|
package/dist/workers/vmForks.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import v8 from 'node:v8';
|
|
2
|
-
import { c as createForksRpcOptions, u as unwrapSerializableConfig } from '../chunks/utils.
|
|
3
|
-
import { r as runVmTests } from '../chunks/vm.
|
|
2
|
+
import { c as createForksRpcOptions, u as unwrapSerializableConfig } from '../chunks/utils.DPCq3gzW.js';
|
|
3
|
+
import { r as runVmTests } from '../chunks/vm.DPYem2so.js';
|
|
4
4
|
import '@vitest/utils';
|
|
5
5
|
import 'node:url';
|
|
6
6
|
import 'node:vm';
|
|
7
7
|
import 'pathe';
|
|
8
8
|
import '../path.js';
|
|
9
9
|
import 'node:path';
|
|
10
|
-
import '../chunks/console.
|
|
10
|
+
import '../chunks/console.Cwr-MFPV.js';
|
|
11
11
|
import 'node:console';
|
|
12
12
|
import 'node:stream';
|
|
13
13
|
import 'tinyrainbow';
|
|
14
|
-
import '../chunks/date.
|
|
15
|
-
import '../chunks/utils.
|
|
16
|
-
import '../chunks/execute.
|
|
14
|
+
import '../chunks/date.ByMsSlOr.js';
|
|
15
|
+
import '../chunks/utils.BlI4TC7Y.js';
|
|
16
|
+
import '../chunks/execute.B3q-2LPV.js';
|
|
17
17
|
import 'node:fs';
|
|
18
18
|
import '@vitest/utils/error';
|
|
19
19
|
import 'vite-node/client';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { a as createThreadsRpcOptions } from '../chunks/utils.
|
|
2
|
-
import { r as runVmTests } from '../chunks/vm.
|
|
1
|
+
import { a as createThreadsRpcOptions } from '../chunks/utils.DPCq3gzW.js';
|
|
2
|
+
import { r as runVmTests } from '../chunks/vm.DPYem2so.js';
|
|
3
3
|
import '@vitest/utils';
|
|
4
4
|
import 'node:url';
|
|
5
5
|
import 'node:vm';
|
|
6
6
|
import 'pathe';
|
|
7
7
|
import '../path.js';
|
|
8
8
|
import 'node:path';
|
|
9
|
-
import '../chunks/console.
|
|
9
|
+
import '../chunks/console.Cwr-MFPV.js';
|
|
10
10
|
import 'node:console';
|
|
11
11
|
import 'node:stream';
|
|
12
12
|
import 'tinyrainbow';
|
|
13
|
-
import '../chunks/date.
|
|
14
|
-
import '../chunks/utils.
|
|
15
|
-
import '../chunks/execute.
|
|
13
|
+
import '../chunks/date.ByMsSlOr.js';
|
|
14
|
+
import '../chunks/utils.BlI4TC7Y.js';
|
|
15
|
+
import '../chunks/execute.B3q-2LPV.js';
|
|
16
16
|
import 'node:fs';
|
|
17
17
|
import '@vitest/utils/error';
|
|
18
18
|
import 'vite-node/client';
|
package/dist/workers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { W as WorkerGlobalState, C as ContextRPC, B as BirpcOptions, R as RuntimeRPC } from './chunks/worker.d.
|
|
1
|
+
import { W as WorkerGlobalState, C as ContextRPC, B as BirpcOptions, R as RuntimeRPC } from './chunks/worker.d.BKbBp2ga.js';
|
|
2
2
|
import { Awaitable } from '@vitest/utils';
|
|
3
3
|
import * as v8 from 'v8';
|
|
4
|
-
import { a as SerializedConfig } from './chunks/config.d.
|
|
5
|
-
import { W as WorkerContext } from './chunks/worker.d.
|
|
4
|
+
import { a as SerializedConfig } from './chunks/config.d.D2ROskhv.js';
|
|
5
|
+
import { W as WorkerContext } from './chunks/worker.d.Bl1O4kuf.js';
|
|
6
6
|
import '@vitest/runner';
|
|
7
7
|
import 'vite-node';
|
|
8
|
-
import './chunks/environment.d.
|
|
8
|
+
import './chunks/environment.d.cL3nLXbE.js';
|
|
9
9
|
import 'vitest/optional-types.js';
|
|
10
10
|
import '@vitest/snapshot';
|
|
11
11
|
import '@vitest/pretty-format';
|
package/dist/workers.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { p as provideWorkerState } from './chunks/utils.
|
|
1
|
+
export { p as provideWorkerState } from './chunks/utils.BlI4TC7Y.js';
|
|
2
2
|
export { collect as collectVitestWorkerTests, run as runVitestWorker } from './worker.js';
|
|
3
|
-
export { r as runBaseTests } from './chunks/base.
|
|
4
|
-
export { c as createForksRpcOptions, a as createThreadsRpcOptions, u as unwrapSerializableConfig } from './chunks/utils.
|
|
5
|
-
export { r as runVmTests } from './chunks/vm.
|
|
3
|
+
export { r as runBaseTests } from './chunks/base.D4119yLM.js';
|
|
4
|
+
export { c as createForksRpcOptions, a as createThreadsRpcOptions, u as unwrapSerializableConfig } from './chunks/utils.DPCq3gzW.js';
|
|
5
|
+
export { r as runVmTests } from './chunks/vm.DPYem2so.js';
|
|
6
6
|
import '@vitest/utils';
|
|
7
7
|
import 'node:url';
|
|
8
8
|
import '@vitest/utils/source-map';
|
|
@@ -10,21 +10,21 @@ import 'tinypool';
|
|
|
10
10
|
import 'vite-node/client';
|
|
11
11
|
import 'node:fs';
|
|
12
12
|
import 'pathe';
|
|
13
|
-
import './chunks/index.
|
|
13
|
+
import './chunks/index.2jgTs_Q5.js';
|
|
14
14
|
import 'node:console';
|
|
15
|
-
import './chunks/inspector.
|
|
15
|
+
import './chunks/inspector.BFsh5KO0.js';
|
|
16
16
|
import 'node:module';
|
|
17
|
-
import './chunks/rpc.
|
|
17
|
+
import './chunks/rpc.BKExFSRG.js';
|
|
18
18
|
import './chunks/index.CJ0plNrh.js';
|
|
19
|
-
import './chunks/execute.
|
|
19
|
+
import './chunks/execute.B3q-2LPV.js';
|
|
20
20
|
import 'node:vm';
|
|
21
21
|
import '@vitest/utils/error';
|
|
22
22
|
import 'vite-node/utils';
|
|
23
23
|
import './path.js';
|
|
24
24
|
import 'node:path';
|
|
25
25
|
import '@vitest/mocker';
|
|
26
|
-
import './chunks/console.
|
|
26
|
+
import './chunks/console.Cwr-MFPV.js';
|
|
27
27
|
import 'node:stream';
|
|
28
28
|
import 'tinyrainbow';
|
|
29
|
-
import './chunks/date.
|
|
29
|
+
import './chunks/date.ByMsSlOr.js';
|
|
30
30
|
import 'vite-node/constants';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vitest",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.2.0-beta.
|
|
4
|
+
"version": "3.2.0-beta.3",
|
|
5
5
|
"description": "Next generation testing framework powered by Vite",
|
|
6
6
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -119,8 +119,8 @@
|
|
|
119
119
|
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
|
|
120
120
|
"happy-dom": "*",
|
|
121
121
|
"jsdom": "*",
|
|
122
|
-
"@vitest/browser": "3.2.0-beta.
|
|
123
|
-
"@vitest/ui": "3.2.0-beta.
|
|
122
|
+
"@vitest/browser": "3.2.0-beta.3",
|
|
123
|
+
"@vitest/ui": "3.2.0-beta.3"
|
|
124
124
|
},
|
|
125
125
|
"peerDependenciesMeta": {
|
|
126
126
|
"@edge-runtime/vm": {
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"dependencies": {
|
|
149
149
|
"@types/chai": "^5.2.2",
|
|
150
150
|
"chai": "^5.2.0",
|
|
151
|
-
"debug": "^4.4.
|
|
151
|
+
"debug": "^4.4.1",
|
|
152
152
|
"expect-type": "^1.2.1",
|
|
153
153
|
"magic-string": "^0.30.17",
|
|
154
154
|
"pathe": "^2.0.3",
|
|
@@ -156,23 +156,23 @@
|
|
|
156
156
|
"std-env": "^3.9.0",
|
|
157
157
|
"tinybench": "^2.9.0",
|
|
158
158
|
"tinyexec": "^0.3.2",
|
|
159
|
-
"tinyglobby": "^0.2.
|
|
159
|
+
"tinyglobby": "^0.2.14",
|
|
160
160
|
"tinypool": "^1.0.2",
|
|
161
161
|
"tinyrainbow": "^2.0.0",
|
|
162
|
-
"vite": "^5.0.0 || ^6.0.0",
|
|
162
|
+
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
|
|
163
163
|
"why-is-node-running": "^2.3.0",
|
|
164
|
-
"@vitest/
|
|
165
|
-
"@vitest/
|
|
166
|
-
"@vitest/
|
|
167
|
-
"@vitest/
|
|
168
|
-
"@vitest/spy": "3.2.0-beta.
|
|
169
|
-
"vite-node": "3.2.0-beta.
|
|
170
|
-
"@vitest/
|
|
171
|
-
"@vitest/
|
|
164
|
+
"@vitest/expect": "3.2.0-beta.3",
|
|
165
|
+
"@vitest/mocker": "3.2.0-beta.3",
|
|
166
|
+
"@vitest/snapshot": "3.2.0-beta.3",
|
|
167
|
+
"@vitest/utils": "3.2.0-beta.3",
|
|
168
|
+
"@vitest/spy": "3.2.0-beta.3",
|
|
169
|
+
"vite-node": "3.2.0-beta.3",
|
|
170
|
+
"@vitest/pretty-format": "^3.2.0-beta.3",
|
|
171
|
+
"@vitest/runner": "3.2.0-beta.3"
|
|
172
172
|
},
|
|
173
173
|
"devDependencies": {
|
|
174
174
|
"@ampproject/remapping": "^2.3.0",
|
|
175
|
-
"@antfu/install-pkg": "^1.
|
|
175
|
+
"@antfu/install-pkg": "^1.1.0",
|
|
176
176
|
"@edge-runtime/vm": "^5.0.0",
|
|
177
177
|
"@sinonjs/fake-timers": "14.0.0",
|
|
178
178
|
"@types/debug": "^4.1.12",
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
"@types/istanbul-lib-coverage": "^2.0.6",
|
|
181
181
|
"@types/istanbul-reports": "^3.0.4",
|
|
182
182
|
"@types/jsdom": "^21.1.7",
|
|
183
|
-
"@types/node": "^22.
|
|
183
|
+
"@types/node": "^22.15.21",
|
|
184
184
|
"@types/picomatch": "^4.0.0",
|
|
185
185
|
"@types/prompts": "^2.4.9",
|
|
186
186
|
"@types/sinonjs__fake-timers": "^8.1.5",
|
|
@@ -190,13 +190,13 @@
|
|
|
190
190
|
"chai-subset": "^1.6.0",
|
|
191
191
|
"find-up": "^6.3.0",
|
|
192
192
|
"flatted": "^3.3.3",
|
|
193
|
-
"happy-dom": "^17.4.
|
|
193
|
+
"happy-dom": "^17.4.7",
|
|
194
194
|
"jsdom": "^26.1.0",
|
|
195
195
|
"local-pkg": "^1.1.1",
|
|
196
196
|
"pretty-format": "^29.7.0",
|
|
197
197
|
"prompts": "^2.4.2",
|
|
198
198
|
"strip-literal": "^3.0.0",
|
|
199
|
-
"ws": "^8.18.
|
|
199
|
+
"ws": "^8.18.2"
|
|
200
200
|
},
|
|
201
201
|
"scripts": {
|
|
202
202
|
"build": "rimraf dist && rollup -c",
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import process from 'node:process';
|
|
2
|
-
import fs, { existsSync } from 'node:fs';
|
|
3
|
-
import fsPromises from 'node:fs/promises';
|
|
4
|
-
import path, { resolve } from 'node:path';
|
|
5
|
-
import { x } from 'tinyexec';
|
|
6
|
-
|
|
7
|
-
const AGENTS = [
|
|
8
|
-
"npm",
|
|
9
|
-
"yarn",
|
|
10
|
-
"yarn@berry",
|
|
11
|
-
"pnpm",
|
|
12
|
-
"pnpm@6",
|
|
13
|
-
"bun",
|
|
14
|
-
"deno"
|
|
15
|
-
];
|
|
16
|
-
const LOCKS = {
|
|
17
|
-
"bun.lock": "bun",
|
|
18
|
-
"bun.lockb": "bun",
|
|
19
|
-
"deno.lock": "deno",
|
|
20
|
-
"pnpm-lock.yaml": "pnpm",
|
|
21
|
-
"yarn.lock": "yarn",
|
|
22
|
-
"package-lock.json": "npm",
|
|
23
|
-
"npm-shrinkwrap.json": "npm"
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
async function detect(options = {}) {
|
|
27
|
-
const { cwd, onUnknown } = options;
|
|
28
|
-
for (const directory of lookup(cwd)) {
|
|
29
|
-
for (const lock of Object.keys(LOCKS)) {
|
|
30
|
-
if (await fileExists(path.join(directory, lock))) {
|
|
31
|
-
const name = LOCKS[lock];
|
|
32
|
-
const result2 = await parsePackageJson(path.join(directory, "package.json"), onUnknown);
|
|
33
|
-
if (result2)
|
|
34
|
-
return result2;
|
|
35
|
-
else
|
|
36
|
-
return { name, agent: name };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
const result = await parsePackageJson(path.join(directory, "package.json"), onUnknown);
|
|
40
|
-
if (result)
|
|
41
|
-
return result;
|
|
42
|
-
}
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
function* lookup(cwd = process.cwd()) {
|
|
46
|
-
let directory = path.resolve(cwd);
|
|
47
|
-
const { root } = path.parse(directory);
|
|
48
|
-
while (directory && directory !== root) {
|
|
49
|
-
yield directory;
|
|
50
|
-
directory = path.dirname(directory);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
async function parsePackageJson(filepath, onUnknown) {
|
|
54
|
-
return !filepath || !await fileExists(filepath) ? null : handlePackageManager(filepath, onUnknown);
|
|
55
|
-
}
|
|
56
|
-
function handlePackageManager(filepath, onUnknown) {
|
|
57
|
-
try {
|
|
58
|
-
const pkg = JSON.parse(fs.readFileSync(filepath, "utf8"));
|
|
59
|
-
let agent;
|
|
60
|
-
if (typeof pkg.packageManager === "string") {
|
|
61
|
-
const [name, ver] = pkg.packageManager.replace(/^\^/, "").split("@");
|
|
62
|
-
let version = ver;
|
|
63
|
-
if (name === "yarn" && Number.parseInt(ver) > 1) {
|
|
64
|
-
agent = "yarn@berry";
|
|
65
|
-
version = "berry";
|
|
66
|
-
return { name, agent, version };
|
|
67
|
-
} else if (name === "pnpm" && Number.parseInt(ver) < 7) {
|
|
68
|
-
agent = "pnpm@6";
|
|
69
|
-
return { name, agent, version };
|
|
70
|
-
} else if (AGENTS.includes(name)) {
|
|
71
|
-
agent = name;
|
|
72
|
-
return { name, agent, version };
|
|
73
|
-
} else {
|
|
74
|
-
return onUnknown?.(pkg.packageManager) ?? null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
} catch {
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
async function fileExists(filePath) {
|
|
82
|
-
try {
|
|
83
|
-
const stats = await fsPromises.stat(filePath);
|
|
84
|
-
if (stats.isFile()) {
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
} catch {
|
|
88
|
-
}
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// src/detect.ts
|
|
93
|
-
async function detectPackageManager(cwd = process.cwd()) {
|
|
94
|
-
const result = await detect({
|
|
95
|
-
cwd,
|
|
96
|
-
onUnknown(packageManager) {
|
|
97
|
-
console.warn("[@antfu/install-pkg] Unknown packageManager:", packageManager);
|
|
98
|
-
return void 0;
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
return result?.agent || null;
|
|
102
|
-
}
|
|
103
|
-
async function installPackage(names, options = {}) {
|
|
104
|
-
const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || "npm";
|
|
105
|
-
const [agent] = detectedAgent.split("@");
|
|
106
|
-
if (!Array.isArray(names))
|
|
107
|
-
names = [names];
|
|
108
|
-
const args = (typeof options.additionalArgs === "function" ? options.additionalArgs(agent, detectedAgent) : options.additionalArgs) || [];
|
|
109
|
-
if (options.preferOffline) {
|
|
110
|
-
if (detectedAgent === "yarn@berry")
|
|
111
|
-
args.unshift("--cached");
|
|
112
|
-
else
|
|
113
|
-
args.unshift("--prefer-offline");
|
|
114
|
-
}
|
|
115
|
-
if (agent === "pnpm" && existsSync(resolve(options.cwd ?? process.cwd(), "pnpm-workspace.yaml"))) {
|
|
116
|
-
args.unshift(
|
|
117
|
-
"-w",
|
|
118
|
-
/**
|
|
119
|
-
* Prevent pnpm from removing installed devDeps while `NODE_ENV` is `production`
|
|
120
|
-
* @see https://pnpm.io/cli/install#--prod--p
|
|
121
|
-
*/
|
|
122
|
-
"--prod=false"
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
return x(
|
|
126
|
-
agent,
|
|
127
|
-
[
|
|
128
|
-
agent === "yarn" ? "add" : "install",
|
|
129
|
-
options.dev ? "-D" : "",
|
|
130
|
-
...args,
|
|
131
|
-
...names
|
|
132
|
-
].filter(Boolean),
|
|
133
|
-
{
|
|
134
|
-
nodeOptions: {
|
|
135
|
-
stdio: options.silent ? "ignore" : "inherit",
|
|
136
|
-
cwd: options.cwd
|
|
137
|
-
},
|
|
138
|
-
throwOnError: true
|
|
139
|
-
}
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export { detectPackageManager, installPackage };
|