vitest 1.6.0 → 2.0.0-beta.2
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 +172 -0
- package/dist/browser.d.ts +1 -1
- package/dist/browser.js +4 -4
- package/dist/chunks/{environments-node.vcoXCoKs.js → environments-node.39w4gmlF.js} +2 -2
- package/dist/chunks/{install-pkg.LE8oaA1t.js → install-pkg.DNUmWFkO.js} +2 -2
- package/dist/chunks/integrations-globals.B5Jl0grA.js +31 -0
- package/dist/chunks/{runtime-console.EO5ha7qv.js → runtime-console.CUES-L8X.js} +9 -9
- package/dist/chunks/{runtime-runBaseTests.oAvMKtQC.js → runtime-runBaseTests._dXkRAZc.js} +18 -18
- package/dist/cli.js +3 -3
- package/dist/config.cjs +2 -3
- package/dist/config.d.ts +1 -1
- package/dist/config.js +2 -3
- package/dist/coverage.d.ts +1 -1
- package/dist/coverage.js +2 -2
- package/dist/environments.d.ts +1 -1
- package/dist/environments.js +1 -1
- package/dist/execute.d.ts +2 -1
- package/dist/execute.js +2 -2
- package/dist/index.d.ts +769 -21
- package/dist/index.js +12 -12
- package/dist/node.d.ts +2 -2
- package/dist/node.js +20 -21
- package/dist/{reporters-yx5ZTtEV.d.ts → reporters-DFgqsvtL.d.ts} +29 -32
- package/dist/reporters.d.ts +1 -1
- package/dist/reporters.js +10 -11
- package/dist/runners.d.ts +1 -1
- package/dist/runners.js +17 -18
- package/dist/snapshot.js +3 -3
- package/dist/{suite-IbNSsUWN.d.ts → suite-C_sqQjdz.d.ts} +1 -1
- package/dist/suite.d.ts +2 -2
- package/dist/suite.js +4 -4
- package/dist/vendor/{base.Ybri3C14.js → base.VFkIJ66g.js} +3 -3
- package/dist/vendor/{base.5NT-gWu5.js → base._gnK9Slw.js} +1 -2
- package/dist/vendor/{benchmark.yGkUTKnC.js → benchmark.BNLebNi5.js} +1 -1
- package/dist/vendor/{cac.EdDItJD-.js → cac.CtP0aXu-.js} +5 -6
- package/dist/vendor/{cli-api.E07AF1Yq.js → cli-api.B2QW76dQ.js} +3061 -362
- package/dist/vendor/{execute.fL3szUAI.js → execute.CLLNVNnK.js} +1 -1
- package/dist/vendor/{index.DpVgvm2P.js → index.BfoZyXD1.js} +5 -5
- package/dist/vendor/{index.8bPxjt7g.js → index.BpSiYbpB.js} +5 -1
- package/dist/vendor/{index.Q04MCqDO.js → index.CRxYS9H3.js} +414 -113
- package/dist/vendor/{index.dI9lHwVn.js → index.CmILuxzC.js} +8 -6
- package/dist/vendor/{index.xL8XjTLv.js → index.DP-km6lF.js} +1 -1
- package/dist/vendor/{index.SMVOaj7F.js → index._7XLd8Kd.js} +2 -2
- package/dist/vendor/{rpc.joBhAkyK.js → rpc.DRDE9Pu1.js} +2 -2
- package/dist/vendor/{run-once.Olz_Zkd8.js → run-once.DLomgGUH.js} +1 -1
- package/dist/vendor/{setup-common.8nJLd4ay.js → setup-common.XeoZAW8t.js} +2 -2
- package/dist/vendor/{tasks.IknbGB2n.js → tasks.WC7M-K-v.js} +4 -1
- package/dist/vendor/{utils.dEtNIEgr.js → utils.D5gGkwyH.js} +1 -1
- package/dist/vendor/{vi.YFlodzP_.js → vi.ClD3hi7L.js} +23 -10
- package/dist/vendor/{vm.QEE48c0T.js → vm.Bi3bljci.js} +47 -59
- package/dist/worker.js +6 -6
- package/dist/workers/forks.js +5 -5
- package/dist/workers/runVmTests.js +17 -17
- package/dist/workers/threads.js +5 -5
- package/dist/workers/vmForks.js +8 -8
- package/dist/workers/vmThreads.js +8 -8
- package/dist/workers.d.ts +1 -1
- package/dist/workers.js +13 -13
- package/package.json +29 -29
- package/vitest.mjs +1 -1
- package/dist/chunks/integrations-globals.kw4co3rx.js +0 -31
- package/dist/cli-wrapper.js +0 -119
- /package/dist/chunks/{node-git.Hw101KjS.js → node-git.CCI8evVZ.js} +0 -0
- /package/dist/vendor/{_commonjsHelpers.jjO7Zipk.js → _commonjsHelpers.BFTU3MAI.js} +0 -0
- /package/dist/vendor/{constants.5J7I254_.js → constants.5SOfHUj0.js} +0 -0
- /package/dist/vendor/{coverage.E7sG1b3r.js → coverage.ChSqD-qS.js} +0 -0
- /package/dist/vendor/{date.Ns1pGd_X.js → date.BKM1wewY.js} +0 -0
- /package/dist/vendor/{env.AtSIuHFg.js → env.bmJgw1qP.js} +0 -0
- /package/dist/vendor/{global.CkGT_TMy.js → global.7bFbnyXl.js} +0 -0
- /package/dist/vendor/{index.GVFv9dZ0.js → index.DeR1hhfY.js} +0 -0
- /package/dist/vendor/{inspector.IgLX3ur5.js → inspector.hPQncR7V.js} +0 -0
- /package/dist/vendor/{utils.0uYuCbzo.js → utils.CUjzkRH7.js} +0 -0
|
@@ -2,15 +2,15 @@ import fs, { existsSync, promises, readFileSync } from 'node:fs';
|
|
|
2
2
|
import c from 'picocolors';
|
|
3
3
|
import * as pathe from 'pathe';
|
|
4
4
|
import { basename, dirname, resolve, join, relative, extname, normalize } from 'pathe';
|
|
5
|
-
import {
|
|
5
|
+
import { a as getFullName, h as hasFailedSnapshot } from './tasks.WC7M-K-v.js';
|
|
6
6
|
import { getSafeTimers, notNullish, highlight, shuffle, inspect, positionToOffset, lineSplitRE } from '@vitest/utils';
|
|
7
|
-
import { i as isNode } from './env.
|
|
8
|
-
import { g as getStateSymbol, f as formatProjectName, p as pointer, F as F_RIGHT, r as renderSnapshotSummary, a as getStateString, b as formatTimeString, c as countTestErrors, d as divider, s as stripAnsi, e as getCols, h as getHookStateSymbol, i as F_POINTER } from './utils.
|
|
7
|
+
import { i as isNode } from './env.bmJgw1qP.js';
|
|
8
|
+
import { g as getStateSymbol, f as formatProjectName, p as pointer, F as F_RIGHT, r as renderSnapshotSummary, a as getStateString, b as formatTimeString, c as countTestErrors, d as divider, s as stripAnsi, e as getCols, h as getHookStateSymbol, i as F_POINTER } from './utils.D5gGkwyH.js';
|
|
9
9
|
import { generateHash, calculateSuiteHash, someTasksAreOnly, interpretTaskModes, getTasks, getTests, hasFailed, getSuites } from '@vitest/runner/utils';
|
|
10
10
|
import { performance } from 'node:perf_hooks';
|
|
11
|
-
import { r as relativePath } from './index.
|
|
12
|
-
import { UNKNOWN_TEST_ID } from '../chunks/runtime-console.
|
|
13
|
-
import { t as toArray, b as isPrimitive } from './base.
|
|
11
|
+
import { r as relativePath } from './index._7XLd8Kd.js';
|
|
12
|
+
import { UNKNOWN_TEST_ID } from '../chunks/runtime-console.CUES-L8X.js';
|
|
13
|
+
import { t as toArray, b as isPrimitive } from './base._gnK9Slw.js';
|
|
14
14
|
import { isCI } from 'std-env';
|
|
15
15
|
import { TraceMap, generatedPositionFor, parseErrorStacktrace } from '@vitest/utils/source-map';
|
|
16
16
|
import nodeos__default, { hostname } from 'node:os';
|
|
@@ -22,10 +22,9 @@ import p$1 from 'path';
|
|
|
22
22
|
import require$$0 from 'fs';
|
|
23
23
|
import ge from 'module';
|
|
24
24
|
import { parseAstAsync } from 'vite';
|
|
25
|
-
import { ancestor } from 'acorn-walk';
|
|
26
25
|
import { Console } from 'node:console';
|
|
27
26
|
import process$2 from 'node:process';
|
|
28
|
-
import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './_commonjsHelpers.
|
|
27
|
+
import { g as getDefaultExportFromCjs, c as commonjsGlobal } from './_commonjsHelpers.BFTU3MAI.js';
|
|
29
28
|
import require$$0$2 from 'assert';
|
|
30
29
|
import require$$0$1 from 'events';
|
|
31
30
|
import { createHash } from 'node:crypto';
|
|
@@ -54,11 +53,15 @@ function wrapSerializableConfig(config) {
|
|
|
54
53
|
};
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
const A=r=>r!==null&&typeof r=="object",a=(r,t)=>Object.assign(new Error(`[${r}]: ${t}`),{code:r}),_$1="ERR_INVALID_PACKAGE_CONFIG",E
|
|
56
|
+
const A=r=>r!==null&&typeof r=="object",a=(r,t)=>Object.assign(new Error(`[${r}]: ${t}`),{code:r}),_$1="ERR_INVALID_PACKAGE_CONFIG",E="ERR_INVALID_PACKAGE_TARGET",I$1="ERR_PACKAGE_PATH_NOT_EXPORTED",R$1=/^\d+$/,O=/^(\.{1,2}|node_modules)$/i,w=/\/|\\/;var h$1=(r=>(r.Export="exports",r.Import="imports",r))(h$1||{});const f=(r,t,e,o,c)=>{if(t==null)return [];if(typeof t=="string"){const[n,...i]=t.split(w);if(n===".."||i.some(l=>O.test(l)))throw a(E,`Invalid "${r}" target "${t}" defined in the package config`);return [c?t.replace(/\*/g,c):t]}if(Array.isArray(t))return t.flatMap(n=>f(r,n,e,o,c));if(A(t)){for(const n of Object.keys(t)){if(R$1.test(n))throw a(_$1,"Cannot contain numeric property keys");if(n==="default"||o.includes(n))return f(r,t[n],e,o,c)}return []}throw a(E,`Invalid "${r}" target "${t}"`)},s="*",m=(r,t)=>{const e=r.indexOf(s),o=t.indexOf(s);return e===o?t.length>r.length:o>e};function d(r,t){if(!t.includes(s)&&r.hasOwnProperty(t))return [t];let e,o;for(const c of Object.keys(r))if(c.includes(s)){const[n,i,l]=c.split(s);if(l===void 0&&t.startsWith(n)&&t.endsWith(i)){const g=t.slice(n.length,-i.length||void 0);g&&(!e||m(e,c))&&(e=c,o=g);}}return [e,o]}const p=r=>Object.keys(r).reduce((t,e)=>{const o=e===""||e[0]!==".";if(t===void 0||t===o)return o;throw a(_$1,'"exports" cannot contain some keys starting with "." and some not')},void 0),u=/^\w+:/,v=(r,t,e)=>{if(!r)throw new Error('"exports" is required');t=t===""?".":`./${t}`,(typeof r=="string"||Array.isArray(r)||A(r)&&p(r))&&(r={".":r});const[o,c]=d(r,t),n=f(h$1.Export,r[o],t,e,c);if(n.length===0)throw a(I$1,t==="."?'No "exports" main defined':`Package subpath '${t}' is not defined by "exports"`);for(const i of n)if(!i.startsWith("./")&&!u.test(i))throw a(E,`Invalid "exports" target "${i}" defined in the package config`);return n};
|
|
58
57
|
|
|
59
|
-
function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}const
|
|
60
|
-
`;break;case 114:
|
|
61
|
-
`),m++,b=n,s=14;switch(u){case 123:return n++,s=1;case 125:return n++,s=2;case 91:return n++,s=3;case 93:return n++,s=4;case 58:return n++,s=6;case 44:return n++,s=5;case 34:return n++,t=k(),s=10;case 47:const g=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!_(e.charCodeAt(n));)n++;return t=e.substring(g,n),s=12}if(e.charCodeAt(n+1)===42){n+=2;const f=i-1;let $=!1;for(;n<f;){const O=e.charCodeAt(n);if(O===42&&e.charCodeAt(n+1)===47){n+=2,$=!0;break}n++,_(O)&&(O===13&&e.charCodeAt(n)===10&&n++,m++,b=n);}return $||(n++,c=1),t=e.substring(g,n),s=13}return t+=String.fromCharCode(u),n++,s=16;case 45:if(t+=String.fromCharCode(u),n++,n===i||!N(e.charCodeAt(n)))return s=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t+=w(),s=11;default:for(;n<i&&U(u);)n++,u=e.charCodeAt(n);if(l!==n){switch(t=e.substring(l,n),t){case"true":return s=8;case"false":return s=9;case"null":return s=7}return s=16}return t+=String.fromCharCode(u),n++,s=16}}function U(u){if(J(u)||_(u))return !1;switch(u){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return !1}return !0}function F(){let u;do u=j();while(u>=12&&u<=15);return u}return {setPosition:T,getPosition:()=>n,scan:o?F:j,getToken:()=>s,getTokenValue:()=>t,getTokenOffset:()=>l,getTokenLength:()=>n-l,getTokenStartLine:()=>r,getTokenStartCharacter:()=>l-v,getTokenError:()=>c}}function J(e){return e===32||e===9}function _(e){return e===10||e===13}function N(e){return e>=48&&e<=57}var q;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab";})(q||(q={}));var I;(function(e){e.DEFAULT={allowTrailingComma:!1};})(I||(I={}));function Te(e,o=[],i=I.DEFAULT){let n=null,t=[];const l=[];function s(r){Array.isArray(t)?t.push(r):n!==null&&(t[n]=r);}return we(e,{onObjectBegin:()=>{const r={};s(r),l.push(t),t=r,n=null;},onObjectProperty:r=>{n=r;},onObjectEnd:()=>{t=l.pop();},onArrayBegin:()=>{const r=[];s(r),l.push(t),t=r,n=null;},onArrayEnd:()=>{t=l.pop();},onLiteralValue:s,onError:(r,b,v)=>{o.push({error:r,offset:b,length:v});}},i),t[0]}function we(e,o,i=I.DEFAULT){const n=be(e,!1),t=[];function l(a){return a?()=>a(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}function s(a){return a?()=>a(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>t.slice()):()=>!0}function m(a){return a?A=>a(A,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}function r(a){return a?A=>a(A,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>t.slice()):()=>!0}const b=s(o.onObjectBegin),v=r(o.onObjectProperty),c=l(o.onObjectEnd),L=s(o.onArrayBegin),T=l(o.onArrayEnd),w=r(o.onLiteralValue),k=m(o.onSeparator),j=l(o.onComment),U=m(o.onError),F=i&&i.disallowComments,u=i&&i.allowTrailingComma;function g(){for(;;){const a=n.scan();switch(n.getTokenError()){case 4:f(14);break;case 5:f(15);break;case 3:f(13);break;case 1:F||f(11);break;case 2:f(12);break;case 6:f(16);break}switch(a){case 12:case 13:F?f(10):j();break;case 16:f(1);break;case 15:case 14:break;default:return a}}}function f(a,A=[],Y=[]){if(U(a),A.length+Y.length>0){let y=n.getToken();for(;y!==17;){if(A.indexOf(y)!==-1){g();break}else if(Y.indexOf(y)!==-1)break;y=g();}}}function $(a){const A=n.getTokenValue();return a?w(A):(v(A),t.push(A)),g(),!0}function O(){switch(n.getToken()){case 11:const a=n.getTokenValue();let A=Number(a);isNaN(A)&&(f(2),A=0),w(A);break;case 7:w(null);break;case 8:w(!0);break;case 9:w(!1);break;default:return !1}return g(),!0}function ce(){return n.getToken()!==10?(f(3,[],[2,5]),!1):($(!1),n.getToken()===6?(k(":"),g(),V()||f(4,[],[2,5])):f(5,[],[2,5]),t.pop(),!0)}function fe(){b(),g();let a=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(a||f(4,[],[]),k(","),g(),n.getToken()===2&&u)break}else a&&f(6,[],[]);ce()||f(4,[],[2,5]),a=!0;}return c(),n.getToken()!==2?f(7,[2],[]):g(),!0}function pe(){L(),g();let a=!0,A=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(A||f(4,[],[]),k(","),g(),n.getToken()===4&&u)break}else A&&f(6,[],[]);a?(t.push(0),a=!1):t[t.length-1]++,V()||f(4,[],[4,5]),A=!0;}return T(),a||t.pop(),n.getToken()!==4?f(8,[4],[]):g(),!0}function V(){switch(n.getToken()){case 3:return pe();case 1:return fe();case 10:return $(!0);default:return O()}}return g(),n.getToken()===17?i.allowEmptyContent?!0:(f(4,[],[]),!1):V()?(n.getToken()!==17&&f(9,[],[]),!0):(f(4,[],[]),!1)}var K;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter";})(K||(K={}));var C;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF";})(C||(C={}));const ve=Te;var ee;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter";})(ee||(ee={}));const ne=(e,o)=>ve(ke(o,e,"utf8")),M=Symbol("implicitBaseUrl"),Oe=()=>{const{findPnpApi:e}=ge;return e&&e(process.cwd())},R=(e,o,i,n)=>{const t=`resolveFromPackageJsonPath:${e}:${o}:${i}`;if(n!=null&&n.has(t))return n.get(t);const l=ne(e,n);if(!l)return;let s=o||"tsconfig.json";if(!i&&l.exports)try{const[m]=v(l.exports,o,["require","types"]);s=m;}catch{return !1}else !o&&l.tsconfig&&(s=l.tsconfig);return s=p$1.join(e,"..",s),n==null||n.set(t,s),s},G="package.json",z="tsconfig.json",Ae=(e,o,i)=>{let n=e;if(e===".."&&(n=p$1.join(n,z)),e[0]==="."&&(n=p$1.resolve(o,n)),p$1.isAbsolute(n)){if(E(i,n)){if(P(i,n).isFile())return n}else if(!n.endsWith(".json")){const T=`${n}.json`;if(E(i,T))return T}return}const[t,...l]=e.split("/"),s=t[0]==="@"?`${t}/${l.shift()}`:t,m=l.join("/"),r=Oe();if(r){const{resolveRequest:T}=r;try{if(s===e){const w=T(p$1.join(s,G),o);if(w){const k=R(w,m,!1,i);if(k&&E(i,k))return k}}else {let w;try{w=T(e,o,{extensions:[".json"]});}catch{w=T(p$1.join(e,z),o);}if(w)return w}}catch{}}const b=Z(o,p$1.join("node_modules",s),i);if(!b||!P(i,b).isDirectory())return;const v=p$1.join(b,G);if(E(i,v)){const T=R(v,m,!1,i);if(T===!1)return;if(T&&E(i,T)&&P(i,T).isFile())return T}const c=p$1.join(b,m),L=c.endsWith(".json");if(!L){const T=`${c}.json`;if(E(i,T))return T}if(E(i,c)){if(P(i,c).isDirectory()){const T=p$1.join(c,G);if(E(i,T)){const k=R(T,"",!0,i);if(k&&E(i,k))return k}const w=p$1.join(c,z);if(E(i,w))return w}else if(L)return c}},je=(e,o,i,n)=>{const t=Ae(e,o,n);if(!t)throw new Error(`File '${e}' not found.`);if(i.has(t))throw new Error(`Circularity detected while resolving configuration: ${t}`);i.add(t);const l=p$1.dirname(t),s=te(t,n,i);delete s.references;const{compilerOptions:m}=s;if(m){const r=["baseUrl","outDir"];for(const b of r){const v=m[b];v&&(m[b]=B(p$1.relative(o,p$1.join(l,v)))||"./");}}return s.files&&(s.files=s.files.map(r=>B(p$1.relative(o,p$1.join(l,r))))),s.include&&(s.include=s.include.map(r=>B(p$1.relative(o,p$1.join(l,r))))),s.exclude&&(s.exclude=s.exclude.map(r=>B(p$1.relative(o,p$1.join(l,r))))),s},te=(e,o,i=new Set)=>{let n;try{n=ae(o,e);}catch{throw new Error(`Cannot resolve tsconfig at path: ${e}`)}let t=ne(n,o)||{};if(typeof t!="object")throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);const l=p$1.dirname(n);if(t.compilerOptions){const{compilerOptions:s}=t;s.paths&&!s.baseUrl&&(s[M]=l);}if(t.extends){const s=Array.isArray(t.extends)?t.extends:[t.extends];delete t.extends;for(const m of s.reverse()){const r=je(m,l,new Set(i),o),b={...r,...t,compilerOptions:{...r.compilerOptions,...t.compilerOptions}};r.watchOptions&&(b.watchOptions={...r.watchOptions,...t.watchOptions}),t=b;}}if(t.compilerOptions){const{compilerOptions:s}=t,m=["baseUrl","rootDir"];for(const b of m){const v=s[b];if(v){const c=p$1.resolve(l,v),L=W(p$1.relative(l,c));s[b]=L;}}const{outDir:r}=s;r&&(Array.isArray(t.exclude)||(t.exclude=[]),t.exclude.includes(r)||t.exclude.push(r),s.outDir=W(r));}else t.compilerOptions={};if(t.files&&(t.files=t.files.map(W)),t.include&&(t.include=t.include.map(B)),t.watchOptions){const{watchOptions:s}=t;s.excludeDirectories&&(s.excludeDirectories=s.excludeDirectories.map(m=>B(p$1.resolve(l,m))));}return t},ie=(e,o=new Map)=>te(e,o),$e=(e=process.cwd(),o="tsconfig.json",i=new Map)=>{const n=Z(B(e),o,i);if(!n)return null;const t=ie(n,i);return {path:n,config:t}};p$1.posix;process.platform==="win32";
|
|
58
|
+
function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}const W=e=>{const t=require$$0[e];return (i,...n)=>{const l=`${e}:${n.join(":")}`;let s=i==null?void 0:i.get(l);return s===void 0&&(s=Reflect.apply(t,require$$0,n),i==null||i.set(l,s)),s}},_=W("existsSync"),ke=W("readFileSync"),I=W("statSync"),q=(e,t,i)=>{for(;;){const n=p$1.posix.join(e,t);if(_(i,n))return n;const l=p$1.dirname(e);if(l===e)return;e=l;}},h=/^\.{1,2}(\/.*)?$/,J=e=>{const t=B(e);return h.test(t)?t:`./${t}`};function be(e,t=!1){const i=e.length;let n=0,l="",s=0,o=16,m=0,u=0,w=0,v=0,f=0;function E(r,g){let c=0,$=0;for(;c<r||!g;){let A=e.charCodeAt(n);if(A>=48&&A<=57)$=$*16+A-48;else if(A>=65&&A<=70)$=$*16+A-65+10;else if(A>=97&&A<=102)$=$*16+A-97+10;else break;n++,c++;}return c<r&&($=-1),$}function b(r){n=r,l="",s=0,o=16,f=0;}function T(){let r=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&y(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&y(e.charCodeAt(n)))for(n++;n<e.length&&y(e.charCodeAt(n));)n++;else return f=3,e.substring(r,n);let g=n;if(n<e.length&&(e.charCodeAt(n)===69||e.charCodeAt(n)===101))if(n++,(n<e.length&&e.charCodeAt(n)===43||e.charCodeAt(n)===45)&&n++,n<e.length&&y(e.charCodeAt(n))){for(n++;n<e.length&&y(e.charCodeAt(n));)n++;g=n;}else f=3;return e.substring(r,g)}function k(){let r="",g=n;for(;;){if(n>=i){r+=e.substring(g,n),f=2;break}const c=e.charCodeAt(n);if(c===34){r+=e.substring(g,n),n++;break}if(c===92){if(r+=e.substring(g,n),n++,n>=i){f=2;break}switch(e.charCodeAt(n++)){case 34:r+='"';break;case 92:r+="\\";break;case 47:r+="/";break;case 98:r+="\b";break;case 102:r+="\f";break;case 110:r+=`
|
|
59
|
+
`;break;case 114:r+="\r";break;case 116:r+=" ";break;case 117:const A=E(4,!0);A>=0?r+=String.fromCharCode(A):f=4;break;default:f=5;}g=n;continue}if(c>=0&&c<=31)if(N(c)){r+=e.substring(g,n),f=2;break}else f=6;n++;}return r}function j(){if(l="",f=0,s=n,u=m,v=w,n>=i)return s=i,o=17;let r=e.charCodeAt(n);if(M(r)){do n++,l+=String.fromCharCode(r),r=e.charCodeAt(n);while(M(r));return o=15}if(N(r))return n++,l+=String.fromCharCode(r),r===13&&e.charCodeAt(n)===10&&(n++,l+=`
|
|
60
|
+
`),m++,w=n,o=14;switch(r){case 123:return n++,o=1;case 125:return n++,o=2;case 91:return n++,o=3;case 93:return n++,o=4;case 58:return n++,o=6;case 44:return n++,o=5;case 34:return n++,l=k(),o=10;case 47:const g=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!N(e.charCodeAt(n));)n++;return l=e.substring(g,n),o=12}if(e.charCodeAt(n+1)===42){n+=2;const c=i-1;let $=!1;for(;n<c;){const A=e.charCodeAt(n);if(A===42&&e.charCodeAt(n+1)===47){n+=2,$=!0;break}n++,N(A)&&(A===13&&e.charCodeAt(n)===10&&n++,m++,w=n);}return $||(n++,f=1),l=e.substring(g,n),o=13}return l+=String.fromCharCode(r),n++,o=16;case 45:if(l+=String.fromCharCode(r),n++,n===i||!y(e.charCodeAt(n)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return l+=T(),o=11;default:for(;n<i&&L(r);)n++,r=e.charCodeAt(n);if(s!==n){switch(l=e.substring(s,n),l){case"true":return o=8;case"false":return o=9;case"null":return o=7}return o=16}return l+=String.fromCharCode(r),n++,o=16}}function L(r){if(M(r)||N(r))return !1;switch(r){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return !1}return !0}function U(){let r;do r=j();while(r>=12&&r<=15);return r}return {setPosition:b,getPosition:()=>n,scan:t?U:j,getToken:()=>o,getTokenValue:()=>l,getTokenOffset:()=>s,getTokenLength:()=>n-s,getTokenStartLine:()=>u,getTokenStartCharacter:()=>s-v,getTokenError:()=>f}}function M(e){return e===32||e===9}function N(e){return e===10||e===13}function y(e){return e>=48&&e<=57}var K;((function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab";}))(K||(K={})),new Array(20).fill(0).map((e,t)=>" ".repeat(t));const F=200;new Array(F).fill(0).map((e,t)=>`
|
|
61
|
+
`+" ".repeat(t)),new Array(F).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(F).fill(0).map((e,t)=>`\r
|
|
62
|
+
`+" ".repeat(t)),new Array(F).fill(0).map((e,t)=>`
|
|
63
|
+
`+" ".repeat(t)),new Array(F).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(F).fill(0).map((e,t)=>`\r
|
|
64
|
+
`+" ".repeat(t));var P;(function(e){e.DEFAULT={allowTrailingComma:!1};})(P||(P={}));function we(e,t=[],i=P.DEFAULT){let n=null,l=[];const s=[];function o(u){Array.isArray(l)?l.push(u):n!==null&&(l[n]=u);}return Te(e,{onObjectBegin:()=>{const u={};o(u),s.push(l),l=u,n=null;},onObjectProperty:u=>{n=u;},onObjectEnd:()=>{l=s.pop();},onArrayBegin:()=>{const u=[];o(u),s.push(l),l=u,n=null;},onArrayEnd:()=>{l=s.pop();},onLiteralValue:o,onError:(u,w,v)=>{t.push({error:u,offset:w,length:v});}},i),l[0]}function Te(e,t,i=P.DEFAULT){const n=be(e,!1),l=[];function s(a){return a?()=>a(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}function o(a){return a?()=>a(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>l.slice()):()=>!0}function m(a){return a?O=>a(O,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}function u(a){return a?O=>a(O,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>l.slice()):()=>!0}const w=o(t.onObjectBegin),v=u(t.onObjectProperty),f=s(t.onObjectEnd),E=o(t.onArrayBegin),b=s(t.onArrayEnd),T=u(t.onLiteralValue),k=m(t.onSeparator),j=s(t.onComment),L=m(t.onError),U=i&&i.disallowComments,r=i&&i.allowTrailingComma;function g(){for(;;){const a=n.scan();switch(n.getTokenError()){case 4:c(14);break;case 5:c(15);break;case 3:c(13);break;case 1:U||c(11);break;case 2:c(12);break;case 6:c(16);break}switch(a){case 12:case 13:U?c(10):j();break;case 16:c(1);break;case 15:case 14:break;default:return a}}}function c(a,O=[],Z=[]){if(L(a),O.length+Z.length>0){let x=n.getToken();for(;x!==17;){if(O.indexOf(x)!==-1){g();break}else if(Z.indexOf(x)!==-1)break;x=g();}}}function $(a){const O=n.getTokenValue();return a?T(O):(v(O),l.push(O)),g(),!0}function A(){switch(n.getToken()){case 11:const a=n.getTokenValue();let O=Number(a);isNaN(O)&&(c(2),O=0),T(O);break;case 7:T(null);break;case 8:T(!0);break;case 9:T(!1);break;default:return !1}return g(),!0}function ce(){return n.getToken()!==10?(c(3,[],[2,5]),!1):($(!1),n.getToken()===6?(k(":"),g(),S()||c(4,[],[2,5])):c(5,[],[2,5]),l.pop(),!0)}function pe(){w(),g();let a=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(a||c(4,[],[]),k(","),g(),n.getToken()===2&&r)break}else a&&c(6,[],[]);ce()||c(4,[],[2,5]),a=!0;}return f(),n.getToken()!==2?c(7,[2],[]):g(),!0}function me(){E(),g();let a=!0,O=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(O||c(4,[],[]),k(","),g(),n.getToken()===4&&r)break}else O&&c(6,[],[]);a?(l.push(0),a=!1):l[l.length-1]++,S()||c(4,[],[4,5]),O=!0;}return b(),a||l.pop(),n.getToken()!==4?c(8,[4],[]):g(),!0}function S(){switch(n.getToken()){case 3:return me();case 1:return pe();case 10:return $(!0);default:return A()}}return g(),n.getToken()===17?i.allowEmptyContent?!0:(c(4,[],[]),!1):S()?(n.getToken()!==17&&c(9,[],[]),!0):(c(4,[],[]),!1)}var C;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter";})(C||(C={}));var ee;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF";})(ee||(ee={}));const ve=we;var ne;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter";})(ne||(ne={}));const te=(e,t)=>ve(ke(t,e,"utf8")),R=Symbol("implicitBaseUrl"),Ae=()=>{const{findPnpApi:e}=ge;return e&&e(process.cwd())},G=(e,t,i,n)=>{const l=`resolveFromPackageJsonPath:${e}:${t}:${i}`;if(n!=null&&n.has(l))return n.get(l);const s=te(e,n);if(!s)return;let o=t||"tsconfig.json";if(!i&&s.exports)try{const[m]=v(s.exports,t,["require","types"]);o=m;}catch{return !1}else !t&&s.tsconfig&&(o=s.tsconfig);return o=p$1.join(e,"..",o),n==null||n.set(l,o),o},z="package.json",Q="tsconfig.json",Oe=(e,t,i)=>{let n=e;if(e===".."&&(n=p$1.join(n,Q)),e[0]==="."&&(n=p$1.resolve(t,n)),p$1.isAbsolute(n)){if(_(i,n)){if(I(i,n).isFile())return n}else if(!n.endsWith(".json")){const b=`${n}.json`;if(_(i,b))return b}return}const[l,...s]=e.split("/"),o=l[0]==="@"?`${l}/${s.shift()}`:l,m=s.join("/"),u=Ae();if(u){const{resolveRequest:b}=u;try{if(o===e){const T=b(p$1.join(o,z),t);if(T){const k=G(T,m,!1,i);if(k&&_(i,k))return k}}else {let T;try{T=b(e,t,{extensions:[".json"]});}catch{T=b(p$1.join(e,Q),t);}if(T)return T}}catch{}}const w=q(t,p$1.join("node_modules",o),i);if(!w||!I(i,w).isDirectory())return;const v=p$1.join(w,z);if(_(i,v)){const b=G(v,m,!1,i);if(b===!1)return;if(b&&_(i,b)&&I(i,b).isFile())return b}const f=p$1.join(w,m),E=f.endsWith(".json");if(!E){const b=`${f}.json`;if(_(i,b))return b}if(_(i,f)){if(I(i,f).isDirectory()){const b=p$1.join(f,z);if(_(i,b)){const k=G(b,"",!0,i);if(k&&_(i,k))return k}const T=p$1.join(f,Q);if(_(i,T))return T}else if(E)return f}},je=(e,t,i,n)=>{const l=Oe(e,t,n);if(!l)throw new Error(`File '${e}' not found.`);if(i.has(l))throw new Error(`Circularity detected while resolving configuration: ${l}`);i.add(l);const s=p$1.dirname(l),o=ie(l,n,i);delete o.references;const{compilerOptions:m}=o;if(m){const u=["baseUrl","outDir"];for(const w of u){const v=m[w];v&&(m[w]=B(p$1.relative(t,p$1.join(s,v)))||"./");}}return o.files&&(o.files=o.files.map(u=>B(p$1.relative(t,p$1.join(s,u))))),o.include&&(o.include=o.include.map(u=>B(p$1.relative(t,p$1.join(s,u))))),o.exclude&&(o.exclude=o.exclude.map(u=>B(p$1.relative(t,p$1.join(s,u))))),o},ie=(e,t,i=new Set)=>{let n;try{n=te(e,t)||{};}catch{throw new Error(`Cannot resolve tsconfig at path: ${e}`)}if(typeof n!="object")throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);const l=p$1.dirname(e);if(n.compilerOptions){const{compilerOptions:s}=n;s.paths&&!s.baseUrl&&(s[R]=l);}if(n.extends){const s=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const o of s.reverse()){const m=je(o,l,new Set(i),t),u={...m,...n,compilerOptions:{...m.compilerOptions,...n.compilerOptions}};m.watchOptions&&(u.watchOptions={...m.watchOptions,...n.watchOptions}),n=u;}}if(n.compilerOptions){const{compilerOptions:s}=n,o=["baseUrl","rootDir"];for(const u of o){const w=s[u];if(w){const v=p$1.resolve(l,w),f=J(p$1.relative(l,v));s[u]=f;}}const{outDir:m}=s;m&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(m)||n.exclude.push(m),s.outDir=J(m));}else n.compilerOptions={};if(n.files&&(n.files=n.files.map(J)),n.include&&(n.include=n.include.map(B)),n.watchOptions){const{watchOptions:s}=n;s.excludeDirectories&&(s.excludeDirectories=s.excludeDirectories.map(o=>B(p$1.resolve(l,o))));}return n},le=(e,t=new Map)=>ie(e,t),$e=(e=process.cwd(),t="tsconfig.json",i=new Map)=>{const n=q(B(e),t,i);if(!n)return null;const l=le(n,i);return {path:n,config:l}};p$1.posix;process.platform==="win32";
|
|
62
65
|
|
|
63
66
|
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
|
|
64
67
|
const newLineRegExp = /\r?\n/;
|
|
@@ -161,6 +164,317 @@ function createIndexMap(source) {
|
|
|
161
164
|
return map;
|
|
162
165
|
}
|
|
163
166
|
|
|
167
|
+
// AST walker module for ESTree compatible trees
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
// An ancestor walk keeps an array of ancestor nodes (including the
|
|
171
|
+
// current node) and passes them to the callback as third parameter
|
|
172
|
+
// (and also as state parameter when no other state is present).
|
|
173
|
+
function ancestor(node, visitors, baseVisitor, state, override) {
|
|
174
|
+
var ancestors = [];
|
|
175
|
+
if (!baseVisitor) { baseVisitor = base
|
|
176
|
+
; }(function c(node, st, override) {
|
|
177
|
+
var type = override || node.type;
|
|
178
|
+
var isNew = node !== ancestors[ancestors.length - 1];
|
|
179
|
+
if (isNew) { ancestors.push(node); }
|
|
180
|
+
baseVisitor[type](node, st, c);
|
|
181
|
+
if (visitors[type]) { visitors[type](node, st || ancestors, ancestors); }
|
|
182
|
+
if (isNew) { ancestors.pop(); }
|
|
183
|
+
})(node, state, override);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
function makeTest(test) {
|
|
187
|
+
if (typeof test === "string")
|
|
188
|
+
{ return function (type) { return type === test; } }
|
|
189
|
+
else if (!test)
|
|
190
|
+
{ return function () { return true; } }
|
|
191
|
+
else
|
|
192
|
+
{ return test }
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
var Found = function Found(node, state) { this.node = node; this.state = state; };
|
|
196
|
+
|
|
197
|
+
// Find the innermost node of a given type that contains the given
|
|
198
|
+
// position. Interface similar to findNodeAt.
|
|
199
|
+
function findNodeAround(node, pos, test, baseVisitor, state) {
|
|
200
|
+
test = makeTest(test);
|
|
201
|
+
if (!baseVisitor) { baseVisitor = base; }
|
|
202
|
+
try {
|
|
203
|
+
(function c(node, st, override) {
|
|
204
|
+
var type = override || node.type;
|
|
205
|
+
if (node.start > pos || node.end < pos) { return }
|
|
206
|
+
baseVisitor[type](node, st, c);
|
|
207
|
+
if (test(type, node)) { throw new Found(node, st) }
|
|
208
|
+
})(node, state);
|
|
209
|
+
} catch (e) {
|
|
210
|
+
if (e instanceof Found) { return e }
|
|
211
|
+
throw e
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function skipThrough(node, st, c) { c(node, st); }
|
|
216
|
+
function ignore(_node, _st, _c) {}
|
|
217
|
+
|
|
218
|
+
// Node walkers.
|
|
219
|
+
|
|
220
|
+
var base = {};
|
|
221
|
+
|
|
222
|
+
base.Program = base.BlockStatement = base.StaticBlock = function (node, st, c) {
|
|
223
|
+
for (var i = 0, list = node.body; i < list.length; i += 1)
|
|
224
|
+
{
|
|
225
|
+
var stmt = list[i];
|
|
226
|
+
|
|
227
|
+
c(stmt, st, "Statement");
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
base.Statement = skipThrough;
|
|
231
|
+
base.EmptyStatement = ignore;
|
|
232
|
+
base.ExpressionStatement = base.ParenthesizedExpression = base.ChainExpression =
|
|
233
|
+
function (node, st, c) { return c(node.expression, st, "Expression"); };
|
|
234
|
+
base.IfStatement = function (node, st, c) {
|
|
235
|
+
c(node.test, st, "Expression");
|
|
236
|
+
c(node.consequent, st, "Statement");
|
|
237
|
+
if (node.alternate) { c(node.alternate, st, "Statement"); }
|
|
238
|
+
};
|
|
239
|
+
base.LabeledStatement = function (node, st, c) { return c(node.body, st, "Statement"); };
|
|
240
|
+
base.BreakStatement = base.ContinueStatement = ignore;
|
|
241
|
+
base.WithStatement = function (node, st, c) {
|
|
242
|
+
c(node.object, st, "Expression");
|
|
243
|
+
c(node.body, st, "Statement");
|
|
244
|
+
};
|
|
245
|
+
base.SwitchStatement = function (node, st, c) {
|
|
246
|
+
c(node.discriminant, st, "Expression");
|
|
247
|
+
for (var i$1 = 0, list$1 = node.cases; i$1 < list$1.length; i$1 += 1) {
|
|
248
|
+
var cs = list$1[i$1];
|
|
249
|
+
|
|
250
|
+
if (cs.test) { c(cs.test, st, "Expression"); }
|
|
251
|
+
for (var i = 0, list = cs.consequent; i < list.length; i += 1)
|
|
252
|
+
{
|
|
253
|
+
var cons = list[i];
|
|
254
|
+
|
|
255
|
+
c(cons, st, "Statement");
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
base.SwitchCase = function (node, st, c) {
|
|
260
|
+
if (node.test) { c(node.test, st, "Expression"); }
|
|
261
|
+
for (var i = 0, list = node.consequent; i < list.length; i += 1)
|
|
262
|
+
{
|
|
263
|
+
var cons = list[i];
|
|
264
|
+
|
|
265
|
+
c(cons, st, "Statement");
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
base.ReturnStatement = base.YieldExpression = base.AwaitExpression = function (node, st, c) {
|
|
269
|
+
if (node.argument) { c(node.argument, st, "Expression"); }
|
|
270
|
+
};
|
|
271
|
+
base.ThrowStatement = base.SpreadElement =
|
|
272
|
+
function (node, st, c) { return c(node.argument, st, "Expression"); };
|
|
273
|
+
base.TryStatement = function (node, st, c) {
|
|
274
|
+
c(node.block, st, "Statement");
|
|
275
|
+
if (node.handler) { c(node.handler, st); }
|
|
276
|
+
if (node.finalizer) { c(node.finalizer, st, "Statement"); }
|
|
277
|
+
};
|
|
278
|
+
base.CatchClause = function (node, st, c) {
|
|
279
|
+
if (node.param) { c(node.param, st, "Pattern"); }
|
|
280
|
+
c(node.body, st, "Statement");
|
|
281
|
+
};
|
|
282
|
+
base.WhileStatement = base.DoWhileStatement = function (node, st, c) {
|
|
283
|
+
c(node.test, st, "Expression");
|
|
284
|
+
c(node.body, st, "Statement");
|
|
285
|
+
};
|
|
286
|
+
base.ForStatement = function (node, st, c) {
|
|
287
|
+
if (node.init) { c(node.init, st, "ForInit"); }
|
|
288
|
+
if (node.test) { c(node.test, st, "Expression"); }
|
|
289
|
+
if (node.update) { c(node.update, st, "Expression"); }
|
|
290
|
+
c(node.body, st, "Statement");
|
|
291
|
+
};
|
|
292
|
+
base.ForInStatement = base.ForOfStatement = function (node, st, c) {
|
|
293
|
+
c(node.left, st, "ForInit");
|
|
294
|
+
c(node.right, st, "Expression");
|
|
295
|
+
c(node.body, st, "Statement");
|
|
296
|
+
};
|
|
297
|
+
base.ForInit = function (node, st, c) {
|
|
298
|
+
if (node.type === "VariableDeclaration") { c(node, st); }
|
|
299
|
+
else { c(node, st, "Expression"); }
|
|
300
|
+
};
|
|
301
|
+
base.DebuggerStatement = ignore;
|
|
302
|
+
|
|
303
|
+
base.FunctionDeclaration = function (node, st, c) { return c(node, st, "Function"); };
|
|
304
|
+
base.VariableDeclaration = function (node, st, c) {
|
|
305
|
+
for (var i = 0, list = node.declarations; i < list.length; i += 1)
|
|
306
|
+
{
|
|
307
|
+
var decl = list[i];
|
|
308
|
+
|
|
309
|
+
c(decl, st);
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
base.VariableDeclarator = function (node, st, c) {
|
|
313
|
+
c(node.id, st, "Pattern");
|
|
314
|
+
if (node.init) { c(node.init, st, "Expression"); }
|
|
315
|
+
};
|
|
316
|
+
|
|
317
|
+
base.Function = function (node, st, c) {
|
|
318
|
+
if (node.id) { c(node.id, st, "Pattern"); }
|
|
319
|
+
for (var i = 0, list = node.params; i < list.length; i += 1)
|
|
320
|
+
{
|
|
321
|
+
var param = list[i];
|
|
322
|
+
|
|
323
|
+
c(param, st, "Pattern");
|
|
324
|
+
}
|
|
325
|
+
c(node.body, st, node.expression ? "Expression" : "Statement");
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
base.Pattern = function (node, st, c) {
|
|
329
|
+
if (node.type === "Identifier")
|
|
330
|
+
{ c(node, st, "VariablePattern"); }
|
|
331
|
+
else if (node.type === "MemberExpression")
|
|
332
|
+
{ c(node, st, "MemberPattern"); }
|
|
333
|
+
else
|
|
334
|
+
{ c(node, st); }
|
|
335
|
+
};
|
|
336
|
+
base.VariablePattern = ignore;
|
|
337
|
+
base.MemberPattern = skipThrough;
|
|
338
|
+
base.RestElement = function (node, st, c) { return c(node.argument, st, "Pattern"); };
|
|
339
|
+
base.ArrayPattern = function (node, st, c) {
|
|
340
|
+
for (var i = 0, list = node.elements; i < list.length; i += 1) {
|
|
341
|
+
var elt = list[i];
|
|
342
|
+
|
|
343
|
+
if (elt) { c(elt, st, "Pattern"); }
|
|
344
|
+
}
|
|
345
|
+
};
|
|
346
|
+
base.ObjectPattern = function (node, st, c) {
|
|
347
|
+
for (var i = 0, list = node.properties; i < list.length; i += 1) {
|
|
348
|
+
var prop = list[i];
|
|
349
|
+
|
|
350
|
+
if (prop.type === "Property") {
|
|
351
|
+
if (prop.computed) { c(prop.key, st, "Expression"); }
|
|
352
|
+
c(prop.value, st, "Pattern");
|
|
353
|
+
} else if (prop.type === "RestElement") {
|
|
354
|
+
c(prop.argument, st, "Pattern");
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
base.Expression = skipThrough;
|
|
360
|
+
base.ThisExpression = base.Super = base.MetaProperty = ignore;
|
|
361
|
+
base.ArrayExpression = function (node, st, c) {
|
|
362
|
+
for (var i = 0, list = node.elements; i < list.length; i += 1) {
|
|
363
|
+
var elt = list[i];
|
|
364
|
+
|
|
365
|
+
if (elt) { c(elt, st, "Expression"); }
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
base.ObjectExpression = function (node, st, c) {
|
|
369
|
+
for (var i = 0, list = node.properties; i < list.length; i += 1)
|
|
370
|
+
{
|
|
371
|
+
var prop = list[i];
|
|
372
|
+
|
|
373
|
+
c(prop, st);
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
base.FunctionExpression = base.ArrowFunctionExpression = base.FunctionDeclaration;
|
|
377
|
+
base.SequenceExpression = function (node, st, c) {
|
|
378
|
+
for (var i = 0, list = node.expressions; i < list.length; i += 1)
|
|
379
|
+
{
|
|
380
|
+
var expr = list[i];
|
|
381
|
+
|
|
382
|
+
c(expr, st, "Expression");
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
base.TemplateLiteral = function (node, st, c) {
|
|
386
|
+
for (var i = 0, list = node.quasis; i < list.length; i += 1)
|
|
387
|
+
{
|
|
388
|
+
var quasi = list[i];
|
|
389
|
+
|
|
390
|
+
c(quasi, st);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
for (var i$1 = 0, list$1 = node.expressions; i$1 < list$1.length; i$1 += 1)
|
|
394
|
+
{
|
|
395
|
+
var expr = list$1[i$1];
|
|
396
|
+
|
|
397
|
+
c(expr, st, "Expression");
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
base.TemplateElement = ignore;
|
|
401
|
+
base.UnaryExpression = base.UpdateExpression = function (node, st, c) {
|
|
402
|
+
c(node.argument, st, "Expression");
|
|
403
|
+
};
|
|
404
|
+
base.BinaryExpression = base.LogicalExpression = function (node, st, c) {
|
|
405
|
+
c(node.left, st, "Expression");
|
|
406
|
+
c(node.right, st, "Expression");
|
|
407
|
+
};
|
|
408
|
+
base.AssignmentExpression = base.AssignmentPattern = function (node, st, c) {
|
|
409
|
+
c(node.left, st, "Pattern");
|
|
410
|
+
c(node.right, st, "Expression");
|
|
411
|
+
};
|
|
412
|
+
base.ConditionalExpression = function (node, st, c) {
|
|
413
|
+
c(node.test, st, "Expression");
|
|
414
|
+
c(node.consequent, st, "Expression");
|
|
415
|
+
c(node.alternate, st, "Expression");
|
|
416
|
+
};
|
|
417
|
+
base.NewExpression = base.CallExpression = function (node, st, c) {
|
|
418
|
+
c(node.callee, st, "Expression");
|
|
419
|
+
if (node.arguments)
|
|
420
|
+
{ for (var i = 0, list = node.arguments; i < list.length; i += 1)
|
|
421
|
+
{
|
|
422
|
+
var arg = list[i];
|
|
423
|
+
|
|
424
|
+
c(arg, st, "Expression");
|
|
425
|
+
} }
|
|
426
|
+
};
|
|
427
|
+
base.MemberExpression = function (node, st, c) {
|
|
428
|
+
c(node.object, st, "Expression");
|
|
429
|
+
if (node.computed) { c(node.property, st, "Expression"); }
|
|
430
|
+
};
|
|
431
|
+
base.ExportNamedDeclaration = base.ExportDefaultDeclaration = function (node, st, c) {
|
|
432
|
+
if (node.declaration)
|
|
433
|
+
{ c(node.declaration, st, node.type === "ExportNamedDeclaration" || node.declaration.id ? "Statement" : "Expression"); }
|
|
434
|
+
if (node.source) { c(node.source, st, "Expression"); }
|
|
435
|
+
};
|
|
436
|
+
base.ExportAllDeclaration = function (node, st, c) {
|
|
437
|
+
if (node.exported)
|
|
438
|
+
{ c(node.exported, st); }
|
|
439
|
+
c(node.source, st, "Expression");
|
|
440
|
+
};
|
|
441
|
+
base.ImportDeclaration = function (node, st, c) {
|
|
442
|
+
for (var i = 0, list = node.specifiers; i < list.length; i += 1)
|
|
443
|
+
{
|
|
444
|
+
var spec = list[i];
|
|
445
|
+
|
|
446
|
+
c(spec, st);
|
|
447
|
+
}
|
|
448
|
+
c(node.source, st, "Expression");
|
|
449
|
+
};
|
|
450
|
+
base.ImportExpression = function (node, st, c) {
|
|
451
|
+
c(node.source, st, "Expression");
|
|
452
|
+
};
|
|
453
|
+
base.ImportSpecifier = base.ImportDefaultSpecifier = base.ImportNamespaceSpecifier = base.Identifier = base.PrivateIdentifier = base.Literal = ignore;
|
|
454
|
+
|
|
455
|
+
base.TaggedTemplateExpression = function (node, st, c) {
|
|
456
|
+
c(node.tag, st, "Expression");
|
|
457
|
+
c(node.quasi, st, "Expression");
|
|
458
|
+
};
|
|
459
|
+
base.ClassDeclaration = base.ClassExpression = function (node, st, c) { return c(node, st, "Class"); };
|
|
460
|
+
base.Class = function (node, st, c) {
|
|
461
|
+
if (node.id) { c(node.id, st, "Pattern"); }
|
|
462
|
+
if (node.superClass) { c(node.superClass, st, "Expression"); }
|
|
463
|
+
c(node.body, st);
|
|
464
|
+
};
|
|
465
|
+
base.ClassBody = function (node, st, c) {
|
|
466
|
+
for (var i = 0, list = node.body; i < list.length; i += 1)
|
|
467
|
+
{
|
|
468
|
+
var elt = list[i];
|
|
469
|
+
|
|
470
|
+
c(elt, st);
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
base.MethodDefinition = base.PropertyDefinition = base.Property = function (node, st, c) {
|
|
474
|
+
if (node.computed) { c(node.key, st, "Expression"); }
|
|
475
|
+
if (node.value) { c(node.value, st, "Expression"); }
|
|
476
|
+
};
|
|
477
|
+
|
|
164
478
|
async function collectTests(ctx, filepath) {
|
|
165
479
|
const request = await ctx.vitenode.transformRequest(filepath, filepath);
|
|
166
480
|
if (!request)
|
|
@@ -177,8 +491,10 @@ async function collectTests(ctx, filepath) {
|
|
|
177
491
|
start: ast.start,
|
|
178
492
|
end: ast.end,
|
|
179
493
|
projectName: ctx.getName(),
|
|
180
|
-
meta: { typecheck: true }
|
|
494
|
+
meta: { typecheck: true },
|
|
495
|
+
file: null
|
|
181
496
|
};
|
|
497
|
+
file.file = file;
|
|
182
498
|
const definitions = [];
|
|
183
499
|
const getName = (callee) => {
|
|
184
500
|
var _a, _b, _c;
|
|
@@ -240,7 +556,6 @@ async function collectTests(ctx, filepath) {
|
|
|
240
556
|
name: definition.name,
|
|
241
557
|
end: definition.end,
|
|
242
558
|
start: definition.start,
|
|
243
|
-
projectName: ctx.getName(),
|
|
244
559
|
meta: {
|
|
245
560
|
typecheck: true
|
|
246
561
|
}
|
|
@@ -385,6 +700,8 @@ class Typechecker {
|
|
|
385
700
|
};
|
|
386
701
|
if (task.suite)
|
|
387
702
|
markState(task.suite, state);
|
|
703
|
+
else if (task.file && task !== task.file)
|
|
704
|
+
markState(task.file, state);
|
|
388
705
|
};
|
|
389
706
|
errors.forEach(({ error, originalError }) => {
|
|
390
707
|
var _a;
|
|
@@ -405,8 +722,12 @@ class Typechecker {
|
|
|
405
722
|
errors: errors2
|
|
406
723
|
};
|
|
407
724
|
errors2.push(error);
|
|
408
|
-
if (state === "fail"
|
|
409
|
-
|
|
725
|
+
if (state === "fail") {
|
|
726
|
+
if (suite.suite)
|
|
727
|
+
markState(suite.suite, "fail");
|
|
728
|
+
else if (suite.file && suite !== suite.file)
|
|
729
|
+
markState(suite.file, "fail");
|
|
730
|
+
}
|
|
410
731
|
});
|
|
411
732
|
this.markPassed(file);
|
|
412
733
|
});
|
|
@@ -584,9 +905,9 @@ class BaseReporter {
|
|
|
584
905
|
relative(path) {
|
|
585
906
|
return relativePath(this.ctx.config.root, path);
|
|
586
907
|
}
|
|
587
|
-
|
|
908
|
+
onFinished(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
588
909
|
this.end = performance.now();
|
|
589
|
-
|
|
910
|
+
this.reportSummary(files, errors);
|
|
590
911
|
if (errors.length) {
|
|
591
912
|
if (!this.ctx.config.dangerouslyIgnoreUnhandledErrors)
|
|
592
913
|
process.exitCode = 1;
|
|
@@ -632,7 +953,7 @@ class BaseReporter {
|
|
|
632
953
|
}
|
|
633
954
|
}
|
|
634
955
|
}
|
|
635
|
-
|
|
956
|
+
onWatcherStart(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
636
957
|
this.resetLastRunLog();
|
|
637
958
|
const failed = errors.length > 0 || hasFailed(files);
|
|
638
959
|
const failedSnap = hasFailedSnapshot(files);
|
|
@@ -678,7 +999,7 @@ class BaseReporter {
|
|
|
678
999
|
this._lastRunTimer = void 0;
|
|
679
1000
|
this.ctx.logger.logUpdate.clear();
|
|
680
1001
|
}
|
|
681
|
-
|
|
1002
|
+
onWatcherRerun(files, trigger) {
|
|
682
1003
|
this.resetLastRunLog();
|
|
683
1004
|
this.watchFilters = files;
|
|
684
1005
|
files.forEach((filepath) => {
|
|
@@ -732,14 +1053,14 @@ ${log.content}
|
|
|
732
1053
|
reason === "config" ? "\nRestarting due to config changes..." : "\nRestarting Vitest..."
|
|
733
1054
|
)));
|
|
734
1055
|
}
|
|
735
|
-
|
|
736
|
-
|
|
1056
|
+
reportSummary(files, errors) {
|
|
1057
|
+
this.printErrorsSummary(files, errors);
|
|
737
1058
|
if (this.mode === "benchmark")
|
|
738
|
-
|
|
1059
|
+
this.reportBenchmarkSummary(files);
|
|
739
1060
|
else
|
|
740
|
-
|
|
1061
|
+
this.reportTestSummary(files, errors);
|
|
741
1062
|
}
|
|
742
|
-
|
|
1063
|
+
reportTestSummary(files, errors) {
|
|
743
1064
|
const tests = getTests(files);
|
|
744
1065
|
const logger = this.ctx.logger;
|
|
745
1066
|
const executionTime = this.end - this.start;
|
|
@@ -793,7 +1114,7 @@ ${log.content}
|
|
|
793
1114
|
}
|
|
794
1115
|
logger.log();
|
|
795
1116
|
}
|
|
796
|
-
|
|
1117
|
+
printErrorsSummary(files, errors) {
|
|
797
1118
|
const logger = this.ctx.logger;
|
|
798
1119
|
const suites = getSuites(files);
|
|
799
1120
|
const tests = getTests(files);
|
|
@@ -812,20 +1133,20 @@ ${log.content}
|
|
|
812
1133
|
if (failedSuites.length) {
|
|
813
1134
|
logger.error(c.red(divider(c.bold(c.inverse(` Failed Suites ${failedSuites.length} `)))));
|
|
814
1135
|
logger.error();
|
|
815
|
-
|
|
1136
|
+
this.printTaskErrors(failedSuites, errorDivider);
|
|
816
1137
|
}
|
|
817
1138
|
if (failedTests.length) {
|
|
818
1139
|
logger.error(c.red(divider(c.bold(c.inverse(` Failed Tests ${failedTests.length} `)))));
|
|
819
1140
|
logger.error();
|
|
820
|
-
|
|
1141
|
+
this.printTaskErrors(failedTests, errorDivider);
|
|
821
1142
|
}
|
|
822
1143
|
if (errors.length) {
|
|
823
|
-
|
|
1144
|
+
logger.printUnhandledErrors(errors);
|
|
824
1145
|
logger.error();
|
|
825
1146
|
}
|
|
826
1147
|
return tests;
|
|
827
1148
|
}
|
|
828
|
-
|
|
1149
|
+
reportBenchmarkSummary(files) {
|
|
829
1150
|
const logger = this.ctx.logger;
|
|
830
1151
|
const benches = getTests(files);
|
|
831
1152
|
const topBenches = benches.filter((i) => {
|
|
@@ -836,7 +1157,7 @@ ${log.content}
|
|
|
836
1157
|
${c.cyan(c.inverse(c.bold(" BENCH ")))} ${c.cyan("Summary")}
|
|
837
1158
|
`);
|
|
838
1159
|
for (const bench of topBenches) {
|
|
839
|
-
const group = bench.suite;
|
|
1160
|
+
const group = bench.suite || bench.file;
|
|
840
1161
|
if (!group)
|
|
841
1162
|
continue;
|
|
842
1163
|
const groupName = getFullName(group, c.dim(" > "));
|
|
@@ -856,7 +1177,7 @@ ${c.cyan(c.inverse(c.bold(" BENCH ")))} ${c.cyan("Summary")}
|
|
|
856
1177
|
logger.log("");
|
|
857
1178
|
}
|
|
858
1179
|
}
|
|
859
|
-
|
|
1180
|
+
printTaskErrors(tasks, errorDivider) {
|
|
860
1181
|
var _a2, _b, _c;
|
|
861
1182
|
const errorsQueue = [];
|
|
862
1183
|
for (const task of tasks) {
|
|
@@ -886,15 +1207,14 @@ ${c.cyan(c.inverse(c.bold(" BENCH ")))} ${c.cyan("Summary")}
|
|
|
886
1207
|
this.ctx.logger.error(`${c.red(c.bold(c.inverse(" FAIL ")))} ${formatProjectName(projectName)}${name}`);
|
|
887
1208
|
}
|
|
888
1209
|
const project = this.ctx.getProjectByTaskId(tasks2[0].id);
|
|
889
|
-
|
|
1210
|
+
this.ctx.logger.printError(error, { project });
|
|
890
1211
|
errorDivider();
|
|
891
|
-
await Promise.resolve();
|
|
892
1212
|
}
|
|
893
1213
|
}
|
|
894
1214
|
registerUnhandledRejection() {
|
|
895
1215
|
const onUnhandledRejection = async (err) => {
|
|
896
1216
|
process.exitCode = 1;
|
|
897
|
-
|
|
1217
|
+
this.ctx.logger.printError(err, { fullStack: true, type: "Unhandled Rejection" });
|
|
898
1218
|
this.ctx.logger.error("\n\n");
|
|
899
1219
|
process.exit(1);
|
|
900
1220
|
};
|
|
@@ -1872,7 +2192,7 @@ function renderTree$1(tasks, options, level = 0, maxRows) {
|
|
|
1872
2192
|
const taskOutput = [];
|
|
1873
2193
|
let suffix = "";
|
|
1874
2194
|
let prefix = ` ${getStateSymbol(task)} `;
|
|
1875
|
-
if (level === 0 && task.type === "suite" && task
|
|
2195
|
+
if (level === 0 && task.type === "suite" && "projectName" in task)
|
|
1876
2196
|
prefix += formatProjectName(task.projectName);
|
|
1877
2197
|
if (task.type === "test" && ((_a = task.result) == null ? void 0 : _a.retryCount) && task.result.retryCount > 0)
|
|
1878
2198
|
suffix += c.yellow(` (retry x${task.result.retryCount})`);
|
|
@@ -1967,7 +2287,7 @@ function createListRenderer(_tasks, options) {
|
|
|
1967
2287
|
tasks = _tasks2;
|
|
1968
2288
|
return this;
|
|
1969
2289
|
},
|
|
1970
|
-
|
|
2290
|
+
stop() {
|
|
1971
2291
|
if (timer) {
|
|
1972
2292
|
clearInterval(timer);
|
|
1973
2293
|
timer = void 0;
|
|
@@ -2000,13 +2320,13 @@ class DefaultReporter extends BaseReporter {
|
|
|
2000
2320
|
}
|
|
2001
2321
|
}
|
|
2002
2322
|
async onTestRemoved(trigger) {
|
|
2003
|
-
|
|
2323
|
+
this.stopListRender();
|
|
2004
2324
|
this.ctx.logger.clearScreen(c.yellow("Test removed...") + (trigger ? c.dim(` [ ${this.relative(trigger)} ]
|
|
2005
2325
|
`) : ""), true);
|
|
2006
2326
|
const files = this.ctx.state.getFiles(this.watchFilters);
|
|
2007
2327
|
createListRenderer(files, this.rendererOptions).stop();
|
|
2008
2328
|
this.ctx.logger.log();
|
|
2009
|
-
|
|
2329
|
+
super.reportSummary(files, this.ctx.state.getUnhandledErrors());
|
|
2010
2330
|
super.onWatcherStart();
|
|
2011
2331
|
}
|
|
2012
2332
|
onCollected() {
|
|
@@ -2022,22 +2342,22 @@ class DefaultReporter extends BaseReporter {
|
|
|
2022
2342
|
this.renderer.update(files);
|
|
2023
2343
|
}
|
|
2024
2344
|
}
|
|
2025
|
-
|
|
2026
|
-
|
|
2345
|
+
onFinished(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
2346
|
+
this.stopListRender();
|
|
2027
2347
|
this.ctx.logger.log();
|
|
2028
|
-
|
|
2348
|
+
super.onFinished(files, errors);
|
|
2029
2349
|
}
|
|
2030
2350
|
async onWatcherStart(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
2031
|
-
|
|
2351
|
+
this.stopListRender();
|
|
2032
2352
|
await super.onWatcherStart(files, errors);
|
|
2033
2353
|
}
|
|
2034
|
-
|
|
2354
|
+
stopListRender() {
|
|
2035
2355
|
var _a;
|
|
2036
|
-
|
|
2356
|
+
(_a = this.renderer) == null ? void 0 : _a.stop();
|
|
2037
2357
|
this.renderer = void 0;
|
|
2038
2358
|
}
|
|
2039
2359
|
async onWatcherRerun(files, trigger) {
|
|
2040
|
-
|
|
2360
|
+
this.stopListRender();
|
|
2041
2361
|
await super.onWatcherRerun(files, trigger);
|
|
2042
2362
|
}
|
|
2043
2363
|
onUserConsoleLog(log) {
|
|
@@ -2156,7 +2476,7 @@ class DotReporter extends BaseReporter {
|
|
|
2156
2476
|
async onFinished(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
2157
2477
|
await this.stopListRender();
|
|
2158
2478
|
this.ctx.logger.log();
|
|
2159
|
-
|
|
2479
|
+
super.onFinished(files, errors);
|
|
2160
2480
|
}
|
|
2161
2481
|
async onWatcherStart() {
|
|
2162
2482
|
await this.stopListRender();
|
|
@@ -2170,7 +2490,7 @@ class DotReporter extends BaseReporter {
|
|
|
2170
2490
|
}
|
|
2171
2491
|
async onWatcherRerun(files, trigger) {
|
|
2172
2492
|
await this.stopListRender();
|
|
2173
|
-
|
|
2493
|
+
super.onWatcherRerun(files, trigger);
|
|
2174
2494
|
}
|
|
2175
2495
|
onUserConsoleLog(log) {
|
|
2176
2496
|
var _a;
|
|
@@ -2237,7 +2557,7 @@ class JsonReporter {
|
|
|
2237
2557
|
var _a2, _b2;
|
|
2238
2558
|
return Math.max(prev, (((_a2 = next.result) == null ? void 0 : _a2.startTime) ?? 0) + (((_b2 = next.result) == null ? void 0 : _b2.duration) ?? 0));
|
|
2239
2559
|
}, startTime);
|
|
2240
|
-
const assertionResults =
|
|
2560
|
+
const assertionResults = tests2.map((t) => {
|
|
2241
2561
|
var _a2, _b2, _c2, _d2;
|
|
2242
2562
|
const ancestorTitles = [];
|
|
2243
2563
|
let iter = t.suite;
|
|
@@ -2248,14 +2568,14 @@ class JsonReporter {
|
|
|
2248
2568
|
ancestorTitles.reverse();
|
|
2249
2569
|
return {
|
|
2250
2570
|
ancestorTitles,
|
|
2251
|
-
fullName:
|
|
2571
|
+
fullName: t.name ? [...ancestorTitles, t.name].join(" ") : ancestorTitles.join(" "),
|
|
2252
2572
|
status: StatusMap[((_a2 = t.result) == null ? void 0 : _a2.state) || t.mode] || "skipped",
|
|
2253
2573
|
title: t.name,
|
|
2254
2574
|
duration: (_b2 = t.result) == null ? void 0 : _b2.duration,
|
|
2255
|
-
failureMessages: ((_d2 = (_c2 = t.result) == null ? void 0 : _c2.errors) == null ? void 0 : _d2.map((e) => e.message)) || [],
|
|
2256
|
-
location:
|
|
2575
|
+
failureMessages: ((_d2 = (_c2 = t.result) == null ? void 0 : _c2.errors) == null ? void 0 : _d2.map((e) => e.stack || e.message)) || [],
|
|
2576
|
+
location: t.location
|
|
2257
2577
|
};
|
|
2258
|
-
})
|
|
2578
|
+
});
|
|
2259
2579
|
if (tests2.some((t) => {
|
|
2260
2580
|
var _a2;
|
|
2261
2581
|
return ((_a2 = t.result) == null ? void 0 : _a2.state) === "run";
|
|
@@ -2285,6 +2605,7 @@ class JsonReporter {
|
|
|
2285
2605
|
numFailedTests,
|
|
2286
2606
|
numPendingTests,
|
|
2287
2607
|
numTodoTests,
|
|
2608
|
+
snapshot: this.ctx.snapshot.summary,
|
|
2288
2609
|
startTime: this.start,
|
|
2289
2610
|
success,
|
|
2290
2611
|
testResults
|
|
@@ -2312,21 +2633,6 @@ class JsonReporter {
|
|
|
2312
2633
|
this.ctx.logger.log(report);
|
|
2313
2634
|
}
|
|
2314
2635
|
}
|
|
2315
|
-
async getFailureLocation(test) {
|
|
2316
|
-
var _a, _b;
|
|
2317
|
-
const error = (_b = (_a = test.result) == null ? void 0 : _a.errors) == null ? void 0 : _b[0];
|
|
2318
|
-
if (!error)
|
|
2319
|
-
return;
|
|
2320
|
-
const project = this.ctx.getProjectByTaskId(test.id);
|
|
2321
|
-
const stack = parseErrorStacktrace(error, {
|
|
2322
|
-
getSourceMap: (file) => project.getBrowserSourceMapModuleById(file),
|
|
2323
|
-
frameFilter: this.ctx.config.onStackTrace
|
|
2324
|
-
});
|
|
2325
|
-
const frame = stack[0];
|
|
2326
|
-
if (!frame)
|
|
2327
|
-
return;
|
|
2328
|
-
return { line: frame.line, column: frame.column };
|
|
2329
|
-
}
|
|
2330
2636
|
}
|
|
2331
2637
|
|
|
2332
2638
|
class VerboseReporter extends DefaultReporter {
|
|
@@ -2335,15 +2641,15 @@ class VerboseReporter extends DefaultReporter {
|
|
|
2335
2641
|
this.rendererOptions.renderSucceed = true;
|
|
2336
2642
|
}
|
|
2337
2643
|
onTaskUpdate(packs) {
|
|
2338
|
-
var _a, _b, _c
|
|
2644
|
+
var _a, _b, _c;
|
|
2339
2645
|
if (this.isTTY)
|
|
2340
2646
|
return;
|
|
2341
2647
|
for (const pack of packs) {
|
|
2342
2648
|
const task = this.ctx.state.idMap.get(pack[0]);
|
|
2343
2649
|
if (task && task.type === "test" && ((_a = task.result) == null ? void 0 : _a.state) && ((_b = task.result) == null ? void 0 : _b.state) !== "run") {
|
|
2344
2650
|
let title = ` ${getStateSymbol(task)} `;
|
|
2345
|
-
if (
|
|
2346
|
-
title += formatProjectName(task.
|
|
2651
|
+
if (task.file.projectName)
|
|
2652
|
+
title += formatProjectName(task.file.projectName);
|
|
2347
2653
|
title += getFullName(task, c.dim(" > "));
|
|
2348
2654
|
if (task.result.duration != null && task.result.duration > this.ctx.config.slowTestThreshold)
|
|
2349
2655
|
title += c.yellow(` ${Math.round(task.result.duration)}${c.dim("ms")}`);
|
|
@@ -2351,7 +2657,7 @@ class VerboseReporter extends DefaultReporter {
|
|
|
2351
2657
|
title += c.magenta(` ${Math.floor(task.result.heap / 1024 / 1024)} MB heap used`);
|
|
2352
2658
|
this.ctx.logger.log(title);
|
|
2353
2659
|
if (task.result.state === "fail") {
|
|
2354
|
-
(
|
|
2660
|
+
(_c = task.result.errors) == null ? void 0 : _c.forEach((error) => {
|
|
2355
2661
|
this.ctx.logger.log(c.red(` ${F_RIGHT} ${error == null ? void 0 : error.message}`));
|
|
2356
2662
|
});
|
|
2357
2663
|
}
|
|
@@ -2450,7 +2756,7 @@ class TapReporter {
|
|
|
2450
2756
|
}
|
|
2451
2757
|
}
|
|
2452
2758
|
}
|
|
2453
|
-
|
|
2759
|
+
onFinished(files = this.ctx.state.getFiles()) {
|
|
2454
2760
|
this.logger.log("TAP version 13");
|
|
2455
2761
|
this.logTasks(files);
|
|
2456
2762
|
}
|
|
@@ -3655,8 +3961,6 @@ createLogUpdate(process$2.stdout);
|
|
|
3655
3961
|
|
|
3656
3962
|
createLogUpdate(process$2.stderr);
|
|
3657
3963
|
|
|
3658
|
-
var version = "1.6.0";
|
|
3659
|
-
|
|
3660
3964
|
const HIGHLIGHT_SUPPORTED_EXTS = new Set(["js", "ts"].flatMap((lang) => [
|
|
3661
3965
|
`.${lang}`,
|
|
3662
3966
|
`.m${lang}`,
|
|
@@ -3670,7 +3974,7 @@ function highlightCode(id, source, colors) {
|
|
|
3670
3974
|
if (!HIGHLIGHT_SUPPORTED_EXTS.has(ext))
|
|
3671
3975
|
return source;
|
|
3672
3976
|
const isJsx = ext.endsWith("x");
|
|
3673
|
-
return highlight(source, { jsx: isJsx, colors:
|
|
3977
|
+
return highlight(source, { jsx: isJsx, colors: c });
|
|
3674
3978
|
}
|
|
3675
3979
|
|
|
3676
3980
|
class BaseSequencer {
|
|
@@ -3778,10 +4082,10 @@ class Logger {
|
|
|
3778
4082
|
this._clearScreenPending = void 0;
|
|
3779
4083
|
this.console.log(`${CURSOR_TO_START}${ERASE_DOWN}${log}`);
|
|
3780
4084
|
}
|
|
3781
|
-
|
|
4085
|
+
printError(err, options = {}) {
|
|
3782
4086
|
const { fullStack = false, type } = options;
|
|
3783
4087
|
const project = options.project ?? this.ctx.getCoreWorkspaceProject() ?? this.ctx.projects[0];
|
|
3784
|
-
|
|
4088
|
+
printError(err, project, {
|
|
3785
4089
|
fullStack,
|
|
3786
4090
|
type,
|
|
3787
4091
|
showCodeFrame: true,
|
|
@@ -3825,8 +4129,6 @@ class Logger {
|
|
|
3825
4129
|
this.console.error(c.dim("typecheck exclude: ") + c.yellow(config2.typecheck.exclude.join(comma)));
|
|
3826
4130
|
}
|
|
3827
4131
|
});
|
|
3828
|
-
if (config.watchExclude)
|
|
3829
|
-
this.console.error(c.dim("watch exclude: ") + c.yellow(config.watchExclude.join(comma)));
|
|
3830
4132
|
if (config.watch && (config.changed || ((_a = config.related) == null ? void 0 : _a.length))) {
|
|
3831
4133
|
this.log(`No affected ${config.mode} files found
|
|
3832
4134
|
`);
|
|
@@ -3842,7 +4144,7 @@ No ${config.mode} files found, exiting with code 1`));
|
|
|
3842
4144
|
printBanner() {
|
|
3843
4145
|
var _a, _b;
|
|
3844
4146
|
this.log();
|
|
3845
|
-
const versionTest = this.ctx.config.watch ? c.blue(`v${version}`) : c.cyan(`v${version}`);
|
|
4147
|
+
const versionTest = this.ctx.config.watch ? c.blue(`v${this.ctx.version}`) : c.cyan(`v${this.ctx.version}`);
|
|
3846
4148
|
const mode = this.ctx.config.watch ? c.blue(" DEV ") : c.cyan(" RUN ");
|
|
3847
4149
|
this.log(`${c.inverse(c.bold(mode))} ${versionTest} ${c.gray(this.ctx.config.root)}`);
|
|
3848
4150
|
if (this.ctx.config.sequence.sequencer === RandomSequencer)
|
|
@@ -3872,7 +4174,7 @@ Vitest is running in standalone mode. Edit a test file to rerun tests.`));
|
|
|
3872
4174
|
else
|
|
3873
4175
|
this.log();
|
|
3874
4176
|
}
|
|
3875
|
-
|
|
4177
|
+
printUnhandledErrors(errors) {
|
|
3876
4178
|
const errorMessage = c.red(c.bold(
|
|
3877
4179
|
`
|
|
3878
4180
|
Vitest caught ${errors.length} unhandled error${errors.length > 1 ? "s" : ""} during the test run.
|
|
@@ -3880,26 +4182,26 @@ This might cause false positive tests. Resolve unhandled errors to make sure you
|
|
|
3880
4182
|
));
|
|
3881
4183
|
this.log(c.red(divider(c.bold(c.inverse(" Unhandled Errors ")))));
|
|
3882
4184
|
this.log(errorMessage);
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
})
|
|
4185
|
+
errors.forEach((err) => {
|
|
4186
|
+
this.printError(err, { fullStack: true, type: err.type || "Unhandled Error" });
|
|
4187
|
+
});
|
|
3886
4188
|
this.log(c.red(divider()));
|
|
3887
4189
|
}
|
|
3888
|
-
|
|
4190
|
+
printSourceTypeErrors(errors) {
|
|
3889
4191
|
const errorMessage = c.red(c.bold(
|
|
3890
4192
|
`
|
|
3891
4193
|
Vitest found ${errors.length} error${errors.length > 1 ? "s" : ""} not related to your test files.`
|
|
3892
4194
|
));
|
|
3893
4195
|
this.log(c.red(divider(c.bold(c.inverse(" Source Errors ")))));
|
|
3894
4196
|
this.log(errorMessage);
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
})
|
|
4197
|
+
errors.forEach((err) => {
|
|
4198
|
+
this.printError(err, { fullStack: true });
|
|
4199
|
+
});
|
|
3898
4200
|
this.log(c.red(divider()));
|
|
3899
4201
|
}
|
|
3900
4202
|
}
|
|
3901
4203
|
|
|
3902
|
-
|
|
4204
|
+
function capturePrintError(error, ctx, project) {
|
|
3903
4205
|
let output = "";
|
|
3904
4206
|
const writable = new Writable({
|
|
3905
4207
|
write(chunk, _encoding, callback) {
|
|
@@ -3907,13 +4209,13 @@ async function captuerPrintError(error, ctx, project) {
|
|
|
3907
4209
|
callback();
|
|
3908
4210
|
}
|
|
3909
4211
|
});
|
|
3910
|
-
const result =
|
|
4212
|
+
const result = printError(error, project, {
|
|
3911
4213
|
showCodeFrame: false,
|
|
3912
4214
|
logger: new Logger(ctx, writable, writable)
|
|
3913
4215
|
});
|
|
3914
4216
|
return { nearest: result == null ? void 0 : result.nearest, output };
|
|
3915
4217
|
}
|
|
3916
|
-
|
|
4218
|
+
function printError(error, project, options) {
|
|
3917
4219
|
const { showCodeFrame = true, fullStack = false, type } = options;
|
|
3918
4220
|
const logger = options.logger;
|
|
3919
4221
|
let e = error;
|
|
@@ -3985,7 +4287,7 @@ async function printError(error, project, options) {
|
|
|
3985
4287
|
}
|
|
3986
4288
|
if (typeof e.cause === "object" && e.cause && "name" in e.cause) {
|
|
3987
4289
|
e.cause.name = `Caused by: ${e.cause.name}`;
|
|
3988
|
-
|
|
4290
|
+
printError(e.cause, project, { fullStack, showCodeFrame: false, logger: options.logger });
|
|
3989
4291
|
}
|
|
3990
4292
|
handleImportOutsideModuleError(e.stack || e.stackStr || "", logger);
|
|
3991
4293
|
return { nearest };
|
|
@@ -4156,7 +4458,7 @@ function flattenTasks$1(task, baseName = "") {
|
|
|
4156
4458
|
function removeInvalidXMLCharacters(value, removeDiscouragedChars) {
|
|
4157
4459
|
let regex = /((?:[\0-\x08\x0B\f\x0E-\x1F\uFFFD\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]))/g;
|
|
4158
4460
|
value = String(value || "").replace(regex, "");
|
|
4159
|
-
|
|
4461
|
+
{
|
|
4160
4462
|
regex = new RegExp(
|
|
4161
4463
|
"([\\x7F-\\x84]|[\\x86-\\x9F]|[\\uFDD0-\\uFDEF]|(?:\\uD83F[\\uDFFE\\uDFFF])|(?:\\uD87F[\\uDFFE\\uDFFF])|(?:\\uD8BF[\\uDFFE\\uDFFF])|(?:\\uD8FF[\\uDFFE\\uDFFF])|(?:\\uD93F[\\uDFFE\\uDFFF])|(?:\\uD97F[\\uDFFE\\uDFFF])|(?:\\uD9BF[\\uDFFE\\uDFFF])|(?:\\uD9FF[\\uDFFE\\uDFFF])|(?:\\uDA3F[\\uDFFE\\uDFFF])|(?:\\uDA7F[\\uDFFE\\uDFFF])|(?:\\uDABF[\\uDFFE\\uDFFF])|(?:\\uDAFF[\\uDFFE\\uDFFF])|(?:\\uDB3F[\\uDFFE\\uDFFF])|(?:\\uDB7F[\\uDFFE\\uDFFF])|(?:\\uDBBF[\\uDFFE\\uDFFF])|(?:\\uDBFF[\\uDFFE\\uDFFF])(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))",
|
|
4162
4464
|
"g"
|
|
@@ -4167,9 +4469,7 @@ function removeInvalidXMLCharacters(value, removeDiscouragedChars) {
|
|
|
4167
4469
|
}
|
|
4168
4470
|
function escapeXML(value) {
|
|
4169
4471
|
return removeInvalidXMLCharacters(
|
|
4170
|
-
String(value).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">")
|
|
4171
|
-
true
|
|
4172
|
-
);
|
|
4472
|
+
String(value).replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">"));
|
|
4173
4473
|
}
|
|
4174
4474
|
function executionTime(durationMS) {
|
|
4175
4475
|
return (durationMS / 1e3).toLocaleString("en-US", { useGrouping: false, maximumFractionDigits: 10 });
|
|
@@ -4265,7 +4565,7 @@ class JUnitReporter {
|
|
|
4265
4565
|
}, async () => {
|
|
4266
4566
|
if (!error)
|
|
4267
4567
|
return;
|
|
4268
|
-
const result =
|
|
4568
|
+
const result = capturePrintError(
|
|
4269
4569
|
error,
|
|
4270
4570
|
this.ctx,
|
|
4271
4571
|
this.ctx.getProjectByTaskId(task.id)
|
|
@@ -4313,7 +4613,8 @@ class JUnitReporter {
|
|
|
4313
4613
|
meta: {},
|
|
4314
4614
|
// NOTE: not used in JUnitReporter
|
|
4315
4615
|
context: null,
|
|
4316
|
-
suite: null
|
|
4616
|
+
suite: null,
|
|
4617
|
+
file: null
|
|
4317
4618
|
});
|
|
4318
4619
|
}
|
|
4319
4620
|
return {
|
|
@@ -4375,7 +4676,7 @@ class TapFlatReporter extends TapReporter {
|
|
|
4375
4676
|
onInit(ctx) {
|
|
4376
4677
|
super.onInit(ctx);
|
|
4377
4678
|
}
|
|
4378
|
-
|
|
4679
|
+
onFinished(files = this.ctx.state.getFiles()) {
|
|
4379
4680
|
this.ctx.logger.log("TAP version 13");
|
|
4380
4681
|
const flatTasks = files.flatMap((task) => flattenTasks(task));
|
|
4381
4682
|
this.logTasks(flatTasks);
|
|
@@ -4399,7 +4700,7 @@ class GithubActionsReporter {
|
|
|
4399
4700
|
onInit(ctx) {
|
|
4400
4701
|
this.ctx = ctx;
|
|
4401
4702
|
}
|
|
4402
|
-
|
|
4703
|
+
onFinished(files = [], errors = []) {
|
|
4403
4704
|
var _a, _b;
|
|
4404
4705
|
const projectErrors = new Array();
|
|
4405
4706
|
for (const error of errors) {
|
|
@@ -4426,7 +4727,7 @@ class GithubActionsReporter {
|
|
|
4426
4727
|
}
|
|
4427
4728
|
}
|
|
4428
4729
|
for (const { project, title, error } of projectErrors) {
|
|
4429
|
-
const result =
|
|
4730
|
+
const result = capturePrintError(error, this.ctx, project);
|
|
4430
4731
|
const stack = result == null ? void 0 : result.nearest;
|
|
4431
4732
|
if (!stack)
|
|
4432
4733
|
continue;
|
|
@@ -4651,7 +4952,7 @@ function createTableRenderer(_tasks, options) {
|
|
|
4651
4952
|
update();
|
|
4652
4953
|
return this;
|
|
4653
4954
|
},
|
|
4654
|
-
|
|
4955
|
+
stop() {
|
|
4655
4956
|
if (timer) {
|
|
4656
4957
|
clearInterval(timer);
|
|
4657
4958
|
timer = void 0;
|
|
@@ -4669,14 +4970,14 @@ function createTableRenderer(_tasks, options) {
|
|
|
4669
4970
|
class TableReporter extends BaseReporter {
|
|
4670
4971
|
renderer;
|
|
4671
4972
|
rendererOptions = {};
|
|
4672
|
-
|
|
4673
|
-
|
|
4973
|
+
onTestRemoved(trigger) {
|
|
4974
|
+
this.stopListRender();
|
|
4674
4975
|
this.ctx.logger.clearScreen(c.yellow("Test removed...") + (trigger ? c.dim(` [ ${this.relative(trigger)} ]
|
|
4675
4976
|
`) : ""), true);
|
|
4676
4977
|
const files = this.ctx.state.getFiles(this.watchFilters);
|
|
4677
4978
|
createTableRenderer(files, this.rendererOptions).stop();
|
|
4678
4979
|
this.ctx.logger.log();
|
|
4679
|
-
|
|
4980
|
+
super.reportSummary(files, this.ctx.state.getUnhandledErrors());
|
|
4680
4981
|
super.onWatcherStart();
|
|
4681
4982
|
}
|
|
4682
4983
|
async onCollected() {
|
|
@@ -4727,9 +5028,9 @@ class TableReporter extends BaseReporter {
|
|
|
4727
5028
|
}
|
|
4728
5029
|
async onFinished(files = this.ctx.state.getFiles(), errors = this.ctx.state.getUnhandledErrors()) {
|
|
4729
5030
|
var _a;
|
|
4730
|
-
|
|
5031
|
+
this.stopListRender();
|
|
4731
5032
|
this.ctx.logger.log();
|
|
4732
|
-
|
|
5033
|
+
super.onFinished(files, errors);
|
|
4733
5034
|
let outputFile = (_a = this.ctx.config.benchmark) == null ? void 0 : _a.outputJson;
|
|
4734
5035
|
if (outputFile) {
|
|
4735
5036
|
outputFile = pathe.resolve(this.ctx.config.root, outputFile);
|
|
@@ -4742,16 +5043,16 @@ class TableReporter extends BaseReporter {
|
|
|
4742
5043
|
}
|
|
4743
5044
|
}
|
|
4744
5045
|
async onWatcherStart() {
|
|
4745
|
-
|
|
5046
|
+
this.stopListRender();
|
|
4746
5047
|
await super.onWatcherStart();
|
|
4747
5048
|
}
|
|
4748
|
-
|
|
5049
|
+
stopListRender() {
|
|
4749
5050
|
var _a;
|
|
4750
|
-
|
|
5051
|
+
(_a = this.renderer) == null ? void 0 : _a.stop();
|
|
4751
5052
|
this.renderer = void 0;
|
|
4752
5053
|
}
|
|
4753
5054
|
async onWatcherRerun(files, trigger) {
|
|
4754
|
-
|
|
5055
|
+
this.stopListRender();
|
|
4755
5056
|
await super.onWatcherRerun(files, trigger);
|
|
4756
5057
|
}
|
|
4757
5058
|
onUserConsoleLog(log) {
|
|
@@ -4825,4 +5126,4 @@ const ReportersMap = {
|
|
|
4825
5126
|
"github-actions": GithubActionsReporter
|
|
4826
5127
|
};
|
|
4827
5128
|
|
|
4828
|
-
export { BaseSequencer as B, DefaultReporter as D, GithubActionsReporter as G, HangingProcessReporter as H, JsonReporter as J, Logger as L, ReportersMap as R, TapReporter as T, VerboseReporter as V, BasicReporter as a, DotReporter as b, JUnitReporter as c, TapFlatReporter as d, BenchmarkReportsMap as e, Typechecker as f, RandomSequencer as g,
|
|
5129
|
+
export { BaseSequencer as B, DefaultReporter as D, GithubActionsReporter as G, HangingProcessReporter as H, JsonReporter as J, Logger as L, ReportersMap as R, TapReporter as T, VerboseReporter as V, BasicReporter as a, DotReporter as b, JUnitReporter as c, TapFlatReporter as d, BenchmarkReportsMap as e, Typechecker as f, RandomSequencer as g, findNodeAround as h, generateCodeFrame as i, highlightCode as j, wrapSerializableConfig as w };
|