get-tsconfig 4.8.1 → 4.9.0

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/README.md CHANGED
@@ -38,7 +38,8 @@ For TypeScript related tooling to correctly parse `tsconfig.json` file without d
38
38
  ## API
39
39
 
40
40
  ### getTsconfig(searchPath?, configName?, cache?)
41
- Searches for a `tsconfig.json` file and parses it. Returns `null` if a config file cannot be found, or an object containing the path and parsed TSConfig object if found.
41
+
42
+ Searches for a tsconfig file (defaults to `tsconfig.json`) in the `searchPath` and parses it. (If you already know the tsconfig path, use [`parseTsconfig`](#parsetsconfigtsconfigpath-cache) instead). Returns `null` if a config file cannot be found, or an object containing the path and parsed TSConfig object if found.
42
43
 
43
44
  Returns:
44
45
 
@@ -102,7 +103,8 @@ console.log(getTsconfig('.', 'jsconfig.json'))
102
103
  ---
103
104
 
104
105
  ### parseTsconfig(tsconfigPath, cache?)
105
- The `tsconfig.json` parser used internally by `getTsconfig`. Returns the parsed tsconfig as `TsConfigJsonResolved`.
106
+
107
+ Parse the tsconfig file provided. Used internally by `getTsconfig`. Returns the parsed tsconfig as `TsConfigJsonResolved`.
106
108
 
107
109
  #### tsconfigPath
108
110
  Type: `string`
@@ -125,6 +127,8 @@ import { parseTsconfig } from 'get-tsconfig'
125
127
  console.log(parseTsconfig('./path/to/tsconfig.custom.json'))
126
128
  ```
127
129
 
130
+ ---
131
+
128
132
  ### createFileMatcher(tsconfig: TsconfigResult, caseSensitivePaths?: boolean)
129
133
 
130
134
  Given a `tsconfig.json` file, it returns a file-matcher function that determines whether it should apply to a file path.
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
- "use strict";var ve=Object.defineProperty;var l=(e,t)=>ve(e,"name",{value:t,configurable:!0});var a=require("node:path"),ee=require("node:fs"),Te=require("node:module"),Ae=require("resolve-pkg-maps"),Oe=require("fs");function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}l(B,"slash");const M=l(e=>{const t=ee[e];return(i,...n)=>{const s=`${e}:${n.join(":")}`;let o=i==null?void 0:i.get(s);return o===void 0&&(o=Reflect.apply(t,ee,n),i==null||i.set(s,o)),o}},"cacheFs"),F=M("existsSync"),je=M("readFileSync"),d=M("statSync"),ne=l((e,t,i)=>{for(;;){const n=a.posix.join(e,t);if(F(i,n))return n;const s=a.dirname(e);if(s===e)return;e=s}},"findUp"),R=/^\.{1,2}(\/.*)?$/,J=l(e=>{const t=B(e);return R.test(t)?t:`./${t}`},"normalizeRelativePath");function _e(e,t=!1){const i=e.length;let n=0,s="",o=0,r=16,c=0,u=0,p=0,T=0,w=0;function O(f,m){let g=0,y=0;for(;g<f||!m;){let j=e.charCodeAt(n);if(j>=48&&j<=57)y=y*16+j-48;else if(j>=65&&j<=70)y=y*16+j-65+10;else if(j>=97&&j<=102)y=y*16+j-97+10;else break;n++,g++}return g<f&&(y=-1),y}l(O,"scanHexDigits");function v(f){n=f,s="",o=0,r=16,w=0}l(v,"setPosition");function A(){let f=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&N(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&N(e.charCodeAt(n)))for(n++;n<e.length&&N(e.charCodeAt(n));)n++;else return w=3,e.substring(f,n);let m=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&&N(e.charCodeAt(n))){for(n++;n<e.length&&N(e.charCodeAt(n));)n++;m=n}else w=3;return e.substring(f,m)}l(A,"scanNumber");function b(){let f="",m=n;for(;;){if(n>=i){f+=e.substring(m,n),w=2;break}const g=e.charCodeAt(n);if(g===34){f+=e.substring(m,n),n++;break}if(g===92){if(f+=e.substring(m,n),n++,n>=i){w=2;break}switch(e.charCodeAt(n++)){case 34:f+='"';break;case 92:f+="\\";break;case 47:f+="/";break;case 98:f+="\b";break;case 102:f+="\f";break;case 110:f+=`
2
- `;break;case 114:f+="\r";break;case 116:f+=" ";break;case 117:const j=O(4,!0);j>=0?f+=String.fromCharCode(j):w=4;break;default:w=5}m=n;continue}if(g>=0&&g<=31)if(h(g)){f+=e.substring(m,n),w=2;break}else w=6;n++}return f}l(b,"scanString");function $(){if(s="",w=0,o=n,u=c,T=p,n>=i)return o=i,r=17;let f=e.charCodeAt(n);if(G(f)){do n++,s+=String.fromCharCode(f),f=e.charCodeAt(n);while(G(f));return r=15}if(h(f))return n++,s+=String.fromCharCode(f),f===13&&e.charCodeAt(n)===10&&(n++,s+=`
3
- `),c++,p=n,r=14;switch(f){case 123:return n++,r=1;case 125:return n++,r=2;case 91:return n++,r=3;case 93:return n++,r=4;case 58:return n++,r=6;case 44:return n++,r=5;case 34:return n++,s=b(),r=10;case 47:const m=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!h(e.charCodeAt(n));)n++;return s=e.substring(m,n),r=12}if(e.charCodeAt(n+1)===42){n+=2;const g=i-1;let y=!1;for(;n<g;){const j=e.charCodeAt(n);if(j===42&&e.charCodeAt(n+1)===47){n+=2,y=!0;break}n++,h(j)&&(j===13&&e.charCodeAt(n)===10&&n++,c++,p=n)}return y||(n++,w=1),s=e.substring(m,n),r=13}return s+=String.fromCharCode(f),n++,r=16;case 45:if(s+=String.fromCharCode(f),n++,n===i||!N(e.charCodeAt(n)))return r=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=A(),r=11;default:for(;n<i&&U(f);)n++,f=e.charCodeAt(n);if(o!==n){switch(s=e.substring(o,n),s){case"true":return r=8;case"false":return r=9;case"null":return r=7}return r=16}return s+=String.fromCharCode(f),n++,r=16}}l($,"scanNext");function U(f){if(G(f)||h(f))return!1;switch(f){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}l(U,"isUnknownContentCharacter");function E(){let f;do f=$();while(f>=12&&f<=15);return f}return l(E,"scanNextNonTrivia"),{setPosition:v,getPosition:l(()=>n,"getPosition"),scan:t?E:$,getToken:l(()=>r,"getToken"),getTokenValue:l(()=>s,"getTokenValue"),getTokenOffset:l(()=>o,"getTokenOffset"),getTokenLength:l(()=>n-o,"getTokenLength"),getTokenStartLine:l(()=>u,"getTokenStartLine"),getTokenStartCharacter:l(()=>o-T,"getTokenStartCharacter"),getTokenError:l(()=>w,"getTokenError")}}l(_e,"createScanner");function G(e){return e===32||e===9}l(G,"isWhiteSpace");function h(e){return e===10||e===13}l(h,"isLineBreak");function N(e){return e>=48&&e<=57}l(N,"isDigit");var te;(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"})(te||(te={})),new Array(20).fill(0).map((e,t)=>" ".repeat(t));const D=200;new Array(D).fill(0).map((e,t)=>`
4
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`\r
5
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`
6
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`\r
7
- `+" ".repeat(t));var I;(function(e){e.DEFAULT={allowTrailingComma:!1}})(I||(I={}));function $e(e,t=[],i=I.DEFAULT){let n=null,s=[];const o=[];function r(u){Array.isArray(s)?s.push(u):n!==null&&(s[n]=u)}return l(r,"onValue"),ye(e,{onObjectBegin:l(()=>{const u={};r(u),o.push(s),s=u,n=null},"onObjectBegin"),onObjectProperty:l(u=>{n=u},"onObjectProperty"),onObjectEnd:l(()=>{s=o.pop()},"onObjectEnd"),onArrayBegin:l(()=>{const u=[];r(u),o.push(s),s=u,n=null},"onArrayBegin"),onArrayEnd:l(()=>{s=o.pop()},"onArrayEnd"),onLiteralValue:r,onError:l((u,p,T)=>{t.push({error:u,offset:p,length:T})},"onError")},i),s[0]}l($e,"parse$1");function ye(e,t,i=I.DEFAULT){const n=_e(e,!1),s=[];function o(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(o,"toNoArgVisit");function r(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(r,"toNoArgVisitWithPath");function c(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(c,"toOneArgVisit");function u(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(u,"toOneArgVisitWithPath");const p=r(t.onObjectBegin),T=u(t.onObjectProperty),w=o(t.onObjectEnd),O=r(t.onArrayBegin),v=o(t.onArrayEnd),A=u(t.onLiteralValue),b=c(t.onSeparator),$=o(t.onComment),U=c(t.onError),E=i&&i.disallowComments,f=i&&i.allowTrailingComma;function m(){for(;;){const k=n.scan();switch(n.getTokenError()){case 4:g(14);break;case 5:g(15);break;case 3:g(13);break;case 1:E||g(11);break;case 2:g(12);break;case 6:g(16);break}switch(k){case 12:case 13:E?g(10):$();break;case 16:g(1);break;case 15:case 14:break;default:return k}}}l(m,"scanNext");function g(k,_=[],C=[]){if(U(k),_.length+C.length>0){let P=n.getToken();for(;P!==17;){if(_.indexOf(P)!==-1){m();break}else if(C.indexOf(P)!==-1)break;P=m()}}}l(g,"handleError");function y(k){const _=n.getTokenValue();return k?A(_):(T(_),s.push(_)),m(),!0}l(y,"parseString");function j(){switch(n.getToken()){case 11:const k=n.getTokenValue();let _=Number(k);isNaN(_)&&(g(2),_=0),A(_);break;case 7:A(null);break;case 8:A(!0);break;case 9:A(!1);break;default:return!1}return m(),!0}l(j,"parseLiteral");function ke(){return n.getToken()!==10?(g(3,[],[2,5]),!1):(y(!1),n.getToken()===6?(b(":"),m(),V()||g(4,[],[2,5])):g(5,[],[2,5]),s.pop(),!0)}l(ke,"parseProperty");function be(){p(),m();let k=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(k||g(4,[],[]),b(","),m(),n.getToken()===2&&f)break}else k&&g(6,[],[]);ke()||g(4,[],[2,5]),k=!0}return w(),n.getToken()!==2?g(7,[2],[]):m(),!0}l(be,"parseObject");function we(){O(),m();let k=!0,_=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(_||g(4,[],[]),b(","),m(),n.getToken()===4&&f)break}else _&&g(6,[],[]);k?(s.push(0),k=!1):s[s.length-1]++,V()||g(4,[],[4,5]),_=!0}return v(),k||s.pop(),n.getToken()!==4?g(8,[4],[]):m(),!0}l(we,"parseArray");function V(){switch(n.getToken()){case 3:return we();case 1:return be();case 10:return y(!0);default:return j()}}return l(V,"parseValue"),m(),n.getToken()===17?i.allowEmptyContent?!0:(g(4,[],[]),!1):V()?(n.getToken()!==17&&g(9,[],[]),!0):(g(4,[],[]),!1)}l(ye,"visit");var ie;(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"})(ie||(ie={}));var se;(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"})(se||(se={}));const Be=$e;var oe;(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"})(oe||(oe={}));const le=l((e,t)=>Be(je(t,e,"utf8")),"readJsonc"),z=Symbol("implicitBaseUrl"),L="${configDir}",Fe=l(()=>{const{findPnpApi:e}=Te;return e&&e(process.cwd())},"getPnpApi"),Q=l((e,t,i,n)=>{const s=`resolveFromPackageJsonPath:${e}:${t}:${i}`;if(n!=null&&n.has(s))return n.get(s);const o=le(e,n);if(!o)return;let r=t||"tsconfig.json";if(!i&&o.exports)try{const[c]=Ae.resolveExports(o.exports,t,["require","types"]);r=c}catch{return!1}else!t&&o.tsconfig&&(r=o.tsconfig);return r=a.join(e,"..",r),n==null||n.set(s,r),r},"resolveFromPackageJsonPath"),q="package.json",H="tsconfig.json",Le=l((e,t,i)=>{let n=e;if(e===".."&&(n=a.join(n,H)),e[0]==="."&&(n=a.resolve(t,n)),a.isAbsolute(n)){if(F(i,n)){if(d(i,n).isFile())return n}else if(!n.endsWith(".json")){const v=`${n}.json`;if(F(i,v))return v}return}const[s,...o]=e.split("/"),r=s[0]==="@"?`${s}/${o.shift()}`:s,c=o.join("/"),u=Fe();if(u){const{resolveRequest:v}=u;try{if(r===e){const A=v(a.join(r,q),t);if(A){const b=Q(A,c,!1,i);if(b&&F(i,b))return b}}else{let A;try{A=v(e,t,{extensions:[".json"]})}catch{A=v(a.join(e,H),t)}if(A)return A}}catch{}}const p=ne(a.resolve(t),a.join("node_modules",r),i);if(!p||!d(i,p).isDirectory())return;const T=a.join(p,q);if(F(i,T)){const v=Q(T,c,!1,i);if(v===!1)return;if(v&&F(i,v)&&d(i,v).isFile())return v}const w=a.join(p,c),O=w.endsWith(".json");if(!O){const v=`${w}.json`;if(F(i,v))return v}if(F(i,w)){if(d(i,w).isDirectory()){const v=a.join(w,q);if(F(i,v)){const b=Q(v,"",!0,i);if(b&&F(i,b))return b}const A=a.join(w,H);if(F(i,A))return A}else if(O)return w}},"resolveExtendsPath"),X=l((e,t)=>J(a.relative(e,t)),"pathRelative"),re=["files","include","exclude"],Ue=l((e,t,i,n)=>{const s=Le(e,t,n);if(!s)throw new Error(`File '${e}' not found.`);if(i.has(s))throw new Error(`Circularity detected while resolving configuration: ${s}`);i.add(s);const o=a.dirname(s),r=ue(s,n,i);delete r.references;const{compilerOptions:c}=r;if(c){const{baseUrl:u}=c;u&&!u.startsWith(L)&&(c.baseUrl=B(a.relative(t,a.join(o,u)))||"./");let{outDir:p}=c;p&&(p.startsWith(L)||(p=a.relative(t,a.join(o,p))),c.outDir=B(p)||"./")}for(const u of re){const p=r[u];p&&(r[u]=p.map(T=>T.startsWith(L)?T:B(a.relative(t,a.join(o,T)))))}return r},"resolveExtends"),Ee=["outDir","declarationDir"],ue=l((e,t,i=new Set)=>{let n;try{n=le(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 s=a.dirname(e);if(n.compilerOptions){const{compilerOptions:o}=n;o.paths&&!o.baseUrl&&(o[z]=s)}if(n.extends){const o=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const r of o.reverse()){const c=Ue(r,s,new Set(i),t),u={...c,...n,compilerOptions:{...c.compilerOptions,...n.compilerOptions}};c.watchOptions&&(u.watchOptions={...c.watchOptions,...n.watchOptions}),n=u}}if(n.compilerOptions){const{compilerOptions:o}=n,r=["baseUrl","rootDir"];for(const c of r){const u=o[c];if(u&&!u.startsWith(L)){const p=a.resolve(s,u),T=X(s,p);o[c]=T}}for(const c of Ee){let u=o[c];u&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(u)||n.exclude.push(u),u.startsWith(L)||(u=J(u)),o[c]=u)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(B),n.files&&delete n.files):n.files&&(n.files=n.files.map(o=>o.startsWith(L)?o:J(o))),n.watchOptions){const{watchOptions:o}=n;o.excludeDirectories&&(o.excludeDirectories=o.excludeDirectories.map(r=>B(a.resolve(s,r))))}return n},"_parseTsconfig"),S=l((e,t)=>{if(e.startsWith(L))return B(a.join(t,e.slice(L.length)))},"interpolateConfigDir"),Ne=["outDir","declarationDir","outFile","rootDir","baseUrl","tsBuildInfoFile"],ce=l((e,t=new Map)=>{const i=a.resolve(e),n=ue(i,t),s=a.dirname(i),{compilerOptions:o}=n;if(o){for(const c of Ne){const u=o[c];if(u){const p=S(u,s);o[c]=p?X(s,p):u}}for(const c of["rootDirs","typeRoots"]){const u=o[c];u&&(o[c]=u.map(p=>{const T=S(p,s);return T?X(s,T):p}))}const{paths:r}=o;if(r)for(const c of Object.keys(r))r[c]=r[c].map(u=>{var p;return(p=S(u,s))!=null?p:u})}for(const r of re){const c=n[r];c&&(n[r]=c.map(u=>{var p;return(p=S(u,s))!=null?p:u}))}return n},"parseTsconfig"),De=l((e=process.cwd(),t="tsconfig.json",i=new Map)=>{const n=ne(B(e),t,i);if(!n)return null;const s=ce(n,i);return{path:n,config:s}},"getTsconfig"),he=/\*/g,fe=l((e,t)=>{const i=e.match(he);if(i&&i.length>1)throw new Error(t)},"assertStarCount"),Pe=l(e=>{if(e.includes("*")){const[t,i]=e.split("*");return{prefix:t,suffix:i}}return e},"parsePattern"),de=l(({prefix:e,suffix:t},i)=>i.startsWith(e)&&i.endsWith(t),"isPatternMatch"),Ie=l((e,t,i)=>Object.entries(e).map(([n,s])=>(fe(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:Pe(n),substitutions:s.map(o=>{if(fe(o,`Substitution '${o}' in pattern '${n}' can have at most one '*' character.`),!t&&!R.test(o))throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");return a.resolve(i,o)})})),"parsePaths"),Se=l(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:i,paths:n}=t;if(!i&&!n)return null;const s=z in t&&t[z],o=a.resolve(a.dirname(e.path),i||s||"."),r=n?Ie(n,i,o):[];return c=>{if(R.test(c))return[];const u=[];for(const O of r){if(O.pattern===c)return O.substitutions.map(B);typeof O.pattern!="string"&&u.push(O)}let p,T=-1;for(const O of u)de(O.pattern,c)&&O.pattern.prefix.length>T&&(T=O.pattern.prefix.length,p=O);if(!p)return i?[B(a.join(o,c))]:[];const w=c.slice(p.pattern.prefix.length,c.length-p.pattern.suffix.length);return p.substitutions.map(O=>B(O.replace("*",w)))}},"createPathsMatcher"),pe=l(e=>{let t="";for(let i=0;i<e.length;i+=1){const n=e[i],s=n.toUpperCase();t+=n===s?n.toLowerCase():s}return t},"s"),xe=65,We=97,Ve=l(()=>Math.floor(Math.random()*26),"m"),Me=l(e=>Array.from({length:e},()=>String.fromCodePoint(Ve()+(Math.random()>.5?xe:We))).join(""),"S"),Re=l((e=Oe)=>{const t=process.execPath;if(e.existsSync(t))return!e.existsSync(pe(t));const i=`/${Me(10)}`;e.writeFileSync(i,"");const n=!e.existsSync(pe(i));return e.unlinkSync(i),n},"l"),{join:x}=a.posix,Y={ts:[".ts",".tsx",".d.ts"],cts:[".cts",".d.cts"],mts:[".mts",".d.mts"]},Je=l(e=>{const t=[...Y.ts],i=[...Y.cts],n=[...Y.mts];return e!=null&&e.allowJs&&(t.push(".js",".jsx"),i.push(".cjs"),n.push(".mjs")),[...t,...i,...n]},"getSupportedExtensions"),Ge=l(e=>{const t=[];if(!e)return t;const{outDir:i,declarationDir:n}=e;return i&&t.push(i),n&&t.push(n),t},"getDefaultExcludeSpec"),ae=l(e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeForRegexp"),ze=["node_modules","bower_components","jspm_packages"],Z=`(?!(${ze.join("|")})(/|$))`,Qe=/(?:^|\/)[^.*?]+$/,ge="**/*",W="[^/]",K="[^./]",me=process.platform==="win32",qe=l(({config:e,path:t},i=Re())=>{if("extends"in e)throw new Error("tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.");if(!a.isAbsolute(t))throw new Error("The tsconfig path must be absolute");me&&(t=B(t));const n=a.dirname(t),{files:s,include:o,exclude:r,compilerOptions:c}=e,u=s==null?void 0:s.map(b=>x(n,b)),p=Je(c),T=i?"":"i",O=(r||Ge(c)).map(b=>{const $=x(n,b),U=ae($).replaceAll(String.raw`\*\*/`,"(.+/)?").replaceAll(String.raw`\*`,`${W}*`).replaceAll(String.raw`\?`,W);return new RegExp(`^${U}($|/)`,T)}),v=s||o?o:[ge],A=v?v.map(b=>{let $=x(n,b);Qe.test($)&&($=x($,ge));const U=ae($).replaceAll(String.raw`/\*\*`,`(/${Z}${K}${W}*)*?`).replaceAll(/(\/)?\\\*/g,(E,f)=>{const m=`(${K}|(\\.(?!min\\.js$))?)*`;return f?`/${Z}${K}${m}`:m}).replaceAll(/(\/)?\\\?/g,(E,f)=>{const m=W;return f?`/${Z}${m}`:m});return new RegExp(`^${U}$`,T)}):void 0;return b=>{if(!a.isAbsolute(b))throw new Error("filePath must be absolute");if(me&&(b=B(b)),u!=null&&u.includes(b))return e;if(!(!p.some($=>b.endsWith($))||O.some($=>$.test(b)))&&A&&A.some($=>$.test(b)))return e}},"createFilesMatcher");exports.createFilesMatcher=qe,exports.createPathsMatcher=Se,exports.getTsconfig=De,exports.parseTsconfig=ce;
1
+ "use strict";var Te=Object.defineProperty;var l=(e,t)=>Te(e,"name",{value:t,configurable:!0});var a=require("node:path"),ee=require("node:fs"),ve=require("node:module"),Ae=require("resolve-pkg-maps"),Oe=require("fs");function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}l(B,"slash");const M=l(e=>{const t=ee[e];return(i,...n)=>{const s=`${e}:${n.join(":")}`;let o=i==null?void 0:i.get(s);return o===void 0&&(o=Reflect.apply(t,ee,n),i==null||i.set(s,o)),o}},"cacheFs"),F=M("existsSync"),je=M("readFileSync"),P=M("statSync"),ne=l((e,t,i)=>{for(;;){const n=a.posix.join(e,t);if(F(i,n))return n;const s=a.dirname(e);if(s===e)return;e=s}},"findUp"),R=/^\.{1,2}(\/.*)?$/,J=l(e=>{const t=B(e);return R.test(t)?t:`./${t}`},"normalizeRelativePath");function _e(e,t=!1){const i=e.length;let n=0,s="",o=0,r=16,f=0,u=0,p=0,v=0,w=0;function O(c,m){let g=0,y=0;for(;g<c;){let j=e.charCodeAt(n);if(j>=48&&j<=57)y=y*16+j-48;else if(j>=65&&j<=70)y=y*16+j-65+10;else if(j>=97&&j<=102)y=y*16+j-97+10;else break;n++,g++}return g<c&&(y=-1),y}l(O,"scanHexDigits");function T(c){n=c,s="",o=0,r=16,w=0}l(T,"setPosition");function A(){let c=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&d(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&d(e.charCodeAt(n)))for(n++;n<e.length&&d(e.charCodeAt(n));)n++;else return w=3,e.substring(c,n);let m=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&&d(e.charCodeAt(n))){for(n++;n<e.length&&d(e.charCodeAt(n));)n++;m=n}else w=3;return e.substring(c,m)}l(A,"scanNumber");function b(){let c="",m=n;for(;;){if(n>=i){c+=e.substring(m,n),w=2;break}const g=e.charCodeAt(n);if(g===34){c+=e.substring(m,n),n++;break}if(g===92){if(c+=e.substring(m,n),n++,n>=i){w=2;break}switch(e.charCodeAt(n++)){case 34:c+='"';break;case 92:c+="\\";break;case 47:c+="/";break;case 98:c+="\b";break;case 102:c+="\f";break;case 110:c+=`
2
+ `;break;case 114:c+="\r";break;case 116:c+=" ";break;case 117:const j=O(4);j>=0?c+=String.fromCharCode(j):w=4;break;default:w=5}m=n;continue}if(g>=0&&g<=31)if(D(g)){c+=e.substring(m,n),w=2;break}else w=6;n++}return c}l(b,"scanString");function $(){if(s="",w=0,o=n,u=f,v=p,n>=i)return o=i,r=17;let c=e.charCodeAt(n);if(G(c)){do n++,s+=String.fromCharCode(c),c=e.charCodeAt(n);while(G(c));return r=15}if(D(c))return n++,s+=String.fromCharCode(c),c===13&&e.charCodeAt(n)===10&&(n++,s+=`
3
+ `),f++,p=n,r=14;switch(c){case 123:return n++,r=1;case 125:return n++,r=2;case 91:return n++,r=3;case 93:return n++,r=4;case 58:return n++,r=6;case 44:return n++,r=5;case 34:return n++,s=b(),r=10;case 47:const m=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!D(e.charCodeAt(n));)n++;return s=e.substring(m,n),r=12}if(e.charCodeAt(n+1)===42){n+=2;const g=i-1;let y=!1;for(;n<g;){const j=e.charCodeAt(n);if(j===42&&e.charCodeAt(n+1)===47){n+=2,y=!0;break}n++,D(j)&&(j===13&&e.charCodeAt(n)===10&&n++,f++,p=n)}return y||(n++,w=1),s=e.substring(m,n),r=13}return s+=String.fromCharCode(c),n++,r=16;case 45:if(s+=String.fromCharCode(c),n++,n===i||!d(e.charCodeAt(n)))return r=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=A(),r=11;default:for(;n<i&&U(c);)n++,c=e.charCodeAt(n);if(o!==n){switch(s=e.substring(o,n),s){case"true":return r=8;case"false":return r=9;case"null":return r=7}return r=16}return s+=String.fromCharCode(c),n++,r=16}}l($,"scanNext");function U(c){if(G(c)||D(c))return!1;switch(c){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}l(U,"isUnknownContentCharacter");function E(){let c;do c=$();while(c>=12&&c<=15);return c}return l(E,"scanNextNonTrivia"),{setPosition:T,getPosition:l(()=>n,"getPosition"),scan:t?E:$,getToken:l(()=>r,"getToken"),getTokenValue:l(()=>s,"getTokenValue"),getTokenOffset:l(()=>o,"getTokenOffset"),getTokenLength:l(()=>n-o,"getTokenLength"),getTokenStartLine:l(()=>u,"getTokenStartLine"),getTokenStartCharacter:l(()=>o-v,"getTokenStartCharacter"),getTokenError:l(()=>w,"getTokenError")}}l(_e,"createScanner");function G(e){return e===32||e===9}l(G,"isWhiteSpace");function D(e){return e===10||e===13}l(D,"isLineBreak");function d(e){return e>=48&&e<=57}l(d,"isDigit");var te;(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"})(te||(te={})),new Array(20).fill(0).map((e,t)=>" ".repeat(t));const N=200;new Array(N).fill(0).map((e,t)=>`
4
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`\r
5
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`
6
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`\r
7
+ `+" ".repeat(t));var x;(function(e){e.DEFAULT={allowTrailingComma:!1}})(x||(x={}));function $e(e,t=[],i=x.DEFAULT){let n=null,s=[];const o=[];function r(u){Array.isArray(s)?s.push(u):n!==null&&(s[n]=u)}return l(r,"onValue"),ye(e,{onObjectBegin:l(()=>{const u={};r(u),o.push(s),s=u,n=null},"onObjectBegin"),onObjectProperty:l(u=>{n=u},"onObjectProperty"),onObjectEnd:l(()=>{s=o.pop()},"onObjectEnd"),onArrayBegin:l(()=>{const u=[];r(u),o.push(s),s=u,n=null},"onArrayBegin"),onArrayEnd:l(()=>{s=o.pop()},"onArrayEnd"),onLiteralValue:r,onError:l((u,p,v)=>{t.push({error:u,offset:p,length:v})},"onError")},i),s[0]}l($e,"parse$1");function ye(e,t,i=x.DEFAULT){const n=_e(e,!1),s=[];function o(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(o,"toNoArgVisit");function r(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(r,"toNoArgVisitWithPath");function f(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(f,"toOneArgVisit");function u(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(u,"toOneArgVisitWithPath");const p=r(t.onObjectBegin),v=u(t.onObjectProperty),w=o(t.onObjectEnd),O=r(t.onArrayBegin),T=o(t.onArrayEnd),A=u(t.onLiteralValue),b=f(t.onSeparator),$=o(t.onComment),U=f(t.onError),E=i&&i.disallowComments,c=i&&i.allowTrailingComma;function m(){for(;;){const k=n.scan();switch(n.getTokenError()){case 4:g(14);break;case 5:g(15);break;case 3:g(13);break;case 1:E||g(11);break;case 2:g(12);break;case 6:g(16);break}switch(k){case 12:case 13:E?g(10):$();break;case 16:g(1);break;case 15:case 14:break;default:return k}}}l(m,"scanNext");function g(k,_=[],C=[]){if(U(k),_.length+C.length>0){let h=n.getToken();for(;h!==17;){if(_.indexOf(h)!==-1){m();break}else if(C.indexOf(h)!==-1)break;h=m()}}}l(g,"handleError");function y(k){const _=n.getTokenValue();return k?A(_):(v(_),s.push(_)),m(),!0}l(y,"parseString");function j(){switch(n.getToken()){case 11:const k=n.getTokenValue();let _=Number(k);isNaN(_)&&(g(2),_=0),A(_);break;case 7:A(null);break;case 8:A(!0);break;case 9:A(!1);break;default:return!1}return m(),!0}l(j,"parseLiteral");function ke(){return n.getToken()!==10?(g(3,[],[2,5]),!1):(y(!1),n.getToken()===6?(b(":"),m(),V()||g(4,[],[2,5])):g(5,[],[2,5]),s.pop(),!0)}l(ke,"parseProperty");function be(){p(),m();let k=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(k||g(4,[],[]),b(","),m(),n.getToken()===2&&c)break}else k&&g(6,[],[]);ke()||g(4,[],[2,5]),k=!0}return w(),n.getToken()!==2?g(7,[2],[]):m(),!0}l(be,"parseObject");function we(){O(),m();let k=!0,_=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(_||g(4,[],[]),b(","),m(),n.getToken()===4&&c)break}else _&&g(6,[],[]);k?(s.push(0),k=!1):s[s.length-1]++,V()||g(4,[],[4,5]),_=!0}return T(),k||s.pop(),n.getToken()!==4?g(8,[4],[]):m(),!0}l(we,"parseArray");function V(){switch(n.getToken()){case 3:return we();case 1:return be();case 10:return y(!0);default:return j()}}return l(V,"parseValue"),m(),n.getToken()===17?i.allowEmptyContent?!0:(g(4,[],[]),!1):V()?(n.getToken()!==17&&g(9,[],[]),!0):(g(4,[],[]),!1)}l(ye,"visit");var ie;(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"})(ie||(ie={}));var se;(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"})(se||(se={}));const Be=$e;var oe;(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"})(oe||(oe={}));const le=l((e,t)=>Be(je(t,e,"utf8")),"readJsonc"),z=Symbol("implicitBaseUrl"),L="${configDir}",Fe=l(()=>{const{findPnpApi:e}=ve;return e&&e(process.cwd())},"getPnpApi"),Q=l((e,t,i,n)=>{const s=`resolveFromPackageJsonPath:${e}:${t}:${i}`;if(n!=null&&n.has(s))return n.get(s);const o=le(e,n);if(!o)return;let r=t||"tsconfig.json";if(!i&&o.exports)try{const[f]=Ae.resolveExports(o.exports,t,["require","types"]);r=f}catch{return!1}else!t&&o.tsconfig&&(r=o.tsconfig);return r=a.join(e,"..",r),n==null||n.set(s,r),r},"resolveFromPackageJsonPath"),q="package.json",H="tsconfig.json",Le=l((e,t,i)=>{let n=e;if(e===".."&&(n=a.join(n,H)),e[0]==="."&&(n=a.resolve(t,n)),a.isAbsolute(n)){if(F(i,n)){if(P(i,n).isFile())return n}else if(!n.endsWith(".json")){const T=`${n}.json`;if(F(i,T))return T}return}const[s,...o]=e.split("/"),r=s[0]==="@"?`${s}/${o.shift()}`:s,f=o.join("/"),u=Fe();if(u){const{resolveRequest:T}=u;try{if(r===e){const A=T(a.join(r,q),t);if(A){const b=Q(A,f,!1,i);if(b&&F(i,b))return b}}else{let A;try{A=T(e,t,{extensions:[".json"]})}catch{A=T(a.join(e,H),t)}if(A)return A}}catch{}}const p=ne(a.resolve(t),a.join("node_modules",r),i);if(!p||!P(i,p).isDirectory())return;const v=a.join(p,q);if(F(i,v)){const T=Q(v,f,!1,i);if(T===!1)return;if(T&&F(i,T)&&P(i,T).isFile())return T}const w=a.join(p,f),O=w.endsWith(".json");if(!O){const T=`${w}.json`;if(F(i,T))return T}if(F(i,w)){if(P(i,w).isDirectory()){const T=a.join(w,q);if(F(i,T)){const b=Q(T,"",!0,i);if(b&&F(i,b))return b}const A=a.join(w,H);if(F(i,A))return A}else if(O)return w}},"resolveExtendsPath"),X=l((e,t)=>J(a.relative(e,t)),"pathRelative"),re=["files","include","exclude"],Ue=l((e,t,i,n)=>{const s=Le(e,t,n);if(!s)throw new Error(`File '${e}' not found.`);if(i.has(s))throw new Error(`Circularity detected while resolving configuration: ${s}`);i.add(s);const o=a.dirname(s),r=ue(s,n,i);delete r.references;const{compilerOptions:f}=r;if(f){const{baseUrl:u}=f;u&&!u.startsWith(L)&&(f.baseUrl=B(a.relative(t,a.join(o,u)))||"./");let{outDir:p}=f;p&&(p.startsWith(L)||(p=a.relative(t,a.join(o,p))),f.outDir=B(p)||"./")}for(const u of re){const p=r[u];p&&(r[u]=p.map(v=>v.startsWith(L)?v:B(a.relative(t,a.join(o,v)))))}return r},"resolveExtends"),Ee=["outDir","declarationDir"],ue=l((e,t,i=new Set)=>{let n;try{n=le(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 s=a.dirname(e);if(n.compilerOptions){const{compilerOptions:o}=n;o.paths&&!o.baseUrl&&(o[z]=s)}if(n.extends){const o=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const r of o.reverse()){const f=Ue(r,s,new Set(i),t),u={...f,...n,compilerOptions:{...f.compilerOptions,...n.compilerOptions}};f.watchOptions&&(u.watchOptions={...f.watchOptions,...n.watchOptions}),n=u}}if(n.compilerOptions){const{compilerOptions:o}=n,r=["baseUrl","rootDir"];for(const f of r){const u=o[f];if(u&&!u.startsWith(L)){const p=a.resolve(s,u),v=X(s,p);o[f]=v}}for(const f of Ee){let u=o[f];u&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(u)||n.exclude.push(u),u.startsWith(L)||(u=J(u)),o[f]=u)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(B),n.files&&delete n.files):n.files&&(n.files=n.files.map(o=>o.startsWith(L)?o:J(o))),n.watchOptions){const{watchOptions:o}=n;o.excludeDirectories&&(o.excludeDirectories=o.excludeDirectories.map(r=>B(a.resolve(s,r))))}return n},"_parseTsconfig"),I=l((e,t)=>{if(e.startsWith(L))return B(a.join(t,e.slice(L.length)))},"interpolateConfigDir"),de=["outDir","declarationDir","outFile","rootDir","baseUrl","tsBuildInfoFile"],fe=l((e,t=new Map)=>{const i=a.resolve(e),n=ue(i,t),s=a.dirname(i),{compilerOptions:o}=n;if(o){for(const f of de){const u=o[f];if(u){const p=I(u,s);o[f]=p?X(s,p):u}}for(const f of["rootDirs","typeRoots"]){const u=o[f];u&&(o[f]=u.map(p=>{const v=I(p,s);return v?X(s,v):p}))}const{paths:r}=o;if(r)for(const f of Object.keys(r))r[f]=r[f].map(u=>{var p;return(p=I(u,s))!=null?p:u})}for(const r of re){const f=n[r];f&&(n[r]=f.map(u=>{var p;return(p=I(u,s))!=null?p:u}))}return n},"parseTsconfig"),Ne=l((e=process.cwd(),t="tsconfig.json",i=new Map)=>{const n=ne(B(e),t,i);if(!n)return null;const s=fe(n,i);return{path:n,config:s}},"getTsconfig"),De=/\*/g,ce=l((e,t)=>{const i=e.match(De);if(i&&i.length>1)throw new Error(t)},"assertStarCount"),he=l(e=>{if(e.includes("*")){const[t,i]=e.split("*");return{prefix:t,suffix:i}}return e},"parsePattern"),Pe=l(({prefix:e,suffix:t},i)=>i.startsWith(e)&&i.endsWith(t),"isPatternMatch"),xe=l((e,t,i)=>Object.entries(e).map(([n,s])=>(ce(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:he(n),substitutions:s.map(o=>{if(ce(o,`Substitution '${o}' in pattern '${n}' can have at most one '*' character.`),!t&&!R.test(o))throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");return a.resolve(i,o)})})),"parsePaths"),Ie=l(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:i,paths:n}=t;if(!i&&!n)return null;const s=z in t&&t[z],o=a.resolve(a.dirname(e.path),i||s||"."),r=n?xe(n,i,o):[];return f=>{if(R.test(f))return[];const u=[];for(const O of r){if(O.pattern===f)return O.substitutions.map(B);typeof O.pattern!="string"&&u.push(O)}let p,v=-1;for(const O of u)Pe(O.pattern,f)&&O.pattern.prefix.length>v&&(v=O.pattern.prefix.length,p=O);if(!p)return i?[B(a.join(o,f))]:[];const w=f.slice(p.pattern.prefix.length,f.length-p.pattern.suffix.length);return p.substitutions.map(O=>B(O.replace("*",w)))}},"createPathsMatcher"),pe=l(e=>{let t="";for(let i=0;i<e.length;i+=1){const n=e[i],s=n.toUpperCase();t+=n===s?n.toLowerCase():s}return t},"s"),Se=65,We=97,Ve=l(()=>Math.floor(Math.random()*26),"m"),Me=l(e=>Array.from({length:e},()=>String.fromCodePoint(Ve()+(Math.random()>.5?Se:We))).join(""),"S"),Re=l((e=Oe)=>{const t=process.execPath;if(e.existsSync(t))return!e.existsSync(pe(t));const i=`/${Me(10)}`;e.writeFileSync(i,"");const n=!e.existsSync(pe(i));return e.unlinkSync(i),n},"l"),{join:S}=a.posix,Y={ts:[".ts",".tsx",".d.ts"],cts:[".cts",".d.cts"],mts:[".mts",".d.mts"]},Je=l(e=>{const t=[...Y.ts],i=[...Y.cts],n=[...Y.mts];return e!=null&&e.allowJs&&(t.push(".js",".jsx"),i.push(".cjs"),n.push(".mjs")),[...t,...i,...n]},"getSupportedExtensions"),Ge=l(e=>{const t=[];if(!e)return t;const{outDir:i,declarationDir:n}=e;return i&&t.push(i),n&&t.push(n),t},"getDefaultExcludeSpec"),ae=l(e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeForRegexp"),ze=["node_modules","bower_components","jspm_packages"],Z=`(?!(${ze.join("|")})(/|$))`,Qe=/(?:^|\/)[^.*?]+$/,ge="**/*",W="[^/]",K="[^./]",me=process.platform==="win32",qe=l(({config:e,path:t},i=Re())=>{if("extends"in e)throw new Error("tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.");if(!a.isAbsolute(t))throw new Error("The tsconfig path must be absolute");me&&(t=B(t));const n=a.dirname(t),{files:s,include:o,exclude:r,compilerOptions:f}=e,u=s==null?void 0:s.map(b=>S(n,b)),p=Je(f),v=i?"":"i",O=(r||Ge(f)).map(b=>{const $=S(n,b),U=ae($).replaceAll(String.raw`\*\*/`,"(.+/)?").replaceAll(String.raw`\*`,`${W}*`).replaceAll(String.raw`\?`,W);return new RegExp(`^${U}($|/)`,v)}),T=s||o?o:[ge],A=T?T.map(b=>{let $=S(n,b);Qe.test($)&&($=S($,ge));const U=ae($).replaceAll(String.raw`/\*\*`,`(/${Z}${K}${W}*)*?`).replaceAll(/(\/)?\\\*/g,(E,c)=>{const m=`(${K}|(\\.(?!min\\.js$))?)*`;return c?`/${Z}${K}${m}`:m}).replaceAll(/(\/)?\\\?/g,(E,c)=>{const m=W;return c?`/${Z}${m}`:m});return new RegExp(`^${U}$`,v)}):void 0;return b=>{if(!a.isAbsolute(b))throw new Error("filePath must be absolute");if(me&&(b=B(b)),u!=null&&u.includes(b))return e;if(!(!p.some($=>b.endsWith($))||O.some($=>$.test(b)))&&A&&A.some($=>$.test(b)))return e}},"createFilesMatcher");exports.createFilesMatcher=qe,exports.createPathsMatcher=Ie,exports.getTsconfig=Ne,exports.parseTsconfig=fe;
package/dist/index.d.cts CHANGED
@@ -32,8 +32,8 @@ type Includes<Value extends readonly any[], Item> =
32
32
  @category Utilities
33
33
  */
34
34
  type IsEqual<A, B> =
35
- (<G>() => G extends A ? 1 : 2) extends
36
- (<G>() => G extends B ? 1 : 2)
35
+ (<G>() => G extends A & G | G ? 1 : 2) extends
36
+ (<G>() => G extends B & G | G ? 1 : 2)
37
37
  ? true
38
38
  : false;
39
39
 
@@ -173,6 +173,8 @@ declare namespace TsConfigJson {
173
173
  | 'ES2020'
174
174
  | 'ES2021'
175
175
  | 'ES2022'
176
+ | 'ES2023'
177
+ | 'ES2024'
176
178
  | 'ESNext'
177
179
  // Lowercase alternatives
178
180
  | 'es3'
@@ -186,6 +188,8 @@ declare namespace TsConfigJson {
186
188
  | 'es2020'
187
189
  | 'es2021'
188
190
  | 'es2022'
191
+ | 'es2023'
192
+ | 'es2024'
189
193
  | 'esnext';
190
194
 
191
195
  // eslint-disable-next-line unicorn/prevent-abbreviations
@@ -206,6 +210,8 @@ declare namespace TsConfigJson {
206
210
  | 'ES2016'
207
211
  | 'ES2016.Array.Include'
208
212
  | 'ES2017'
213
+ | 'ES2017.ArrayBuffer'
214
+ | 'ES2017.Date'
209
215
  | 'ES2017.Intl'
210
216
  | 'ES2017.Object'
211
217
  | 'ES2017.SharedMemory'
@@ -230,6 +236,7 @@ declare namespace TsConfigJson {
230
236
  | 'ES2020.SharedMemory'
231
237
  | 'ES2020.Intl'
232
238
  | 'ES2021'
239
+ | 'ES2021.Intl'
233
240
  | 'ES2021.Promise'
234
241
  | 'ES2021.String'
235
242
  | 'ES2021.WeakRef'
@@ -238,14 +245,29 @@ declare namespace TsConfigJson {
238
245
  | 'ES2022.Error'
239
246
  | 'ES2022.Intl'
240
247
  | 'ES2022.Object'
241
- | 'ES2022.SharedMemory'
242
- | 'ES2022.String'
243
248
  | 'ES2022.RegExp'
249
+ | 'ES2022.String'
250
+ | 'ES2023'
251
+ | 'ES2023.Array'
252
+ | 'ES2023.Collection'
253
+ | 'ES2023.Intl'
254
+ | 'ES2024'
255
+ | 'ES2024.ArrayBuffer'
256
+ | 'ES2024.Collection'
257
+ | 'ES2024.Object'
258
+ | 'ES2024.Promise'
259
+ | 'ES2024.Regexp'
260
+ | 'ES2024.SharedMemory'
261
+ | 'ES2024.String'
244
262
  | 'ESNext'
245
263
  | 'ESNext.Array'
246
264
  | 'ESNext.AsyncIterable'
247
265
  | 'ESNext.BigInt'
266
+ | 'ESNext.Collection'
267
+ | 'ESNext.Decorators'
268
+ | 'ESNext.Disposable'
248
269
  | 'ESNext.Intl'
270
+ | 'ESNext.Iterator'
249
271
  | 'ESNext.Promise'
250
272
  | 'ESNext.String'
251
273
  | 'ESNext.Symbol'
@@ -254,6 +276,7 @@ declare namespace TsConfigJson {
254
276
  | 'DOM.Iterable'
255
277
  | 'ScriptHost'
256
278
  | 'WebWorker'
279
+ | 'WebWorker.AsyncIterable'
257
280
  | 'WebWorker.ImportScripts'
258
281
  | 'WebWorker.Iterable'
259
282
  // Lowercase alternatives
@@ -273,6 +296,8 @@ declare namespace TsConfigJson {
273
296
  | 'es2016'
274
297
  | 'es2016.array.include'
275
298
  | 'es2017'
299
+ | 'es2017.arraybuffer'
300
+ | 'es2017.date'
276
301
  | 'es2017.intl'
277
302
  | 'es2017.object'
278
303
  | 'es2017.sharedmemory'
@@ -297,6 +322,7 @@ declare namespace TsConfigJson {
297
322
  | 'es2020.sharedmemory'
298
323
  | 'es2020.intl'
299
324
  | 'es2021'
325
+ | 'es2021.intl'
300
326
  | 'es2021.promise'
301
327
  | 'es2021.string'
302
328
  | 'es2021.weakref'
@@ -305,14 +331,29 @@ declare namespace TsConfigJson {
305
331
  | 'es2022.error'
306
332
  | 'es2022.intl'
307
333
  | 'es2022.object'
308
- | 'es2022.sharedmemory'
309
- | 'es2022.string'
310
334
  | 'es2022.regexp'
335
+ | 'es2022.string'
336
+ | 'es2023'
337
+ | 'es2023.array'
338
+ | 'es2023.collection'
339
+ | 'es2023.intl'
340
+ | 'es2024'
341
+ | 'es2024.arraybuffer'
342
+ | 'es2024.collection'
343
+ | 'es2024.object'
344
+ | 'es2024.promise'
345
+ | 'es2024.regexp'
346
+ | 'es2024.sharedmemory'
347
+ | 'es2024.string'
311
348
  | 'esnext'
312
349
  | 'esnext.array'
313
350
  | 'esnext.asynciterable'
314
351
  | 'esnext.bigint'
352
+ | 'esnext.collection'
353
+ | 'esnext.decorators'
354
+ | 'esnext.disposable'
315
355
  | 'esnext.intl'
356
+ | 'esnext.iterator'
316
357
  | 'esnext.promise'
317
358
  | 'esnext.string'
318
359
  | 'esnext.symbol'
@@ -321,6 +362,7 @@ declare namespace TsConfigJson {
321
362
  | 'dom.iterable'
322
363
  | 'scripthost'
323
364
  | 'webworker'
365
+ | 'webworker.asynciterable'
324
366
  | 'webworker.importscripts'
325
367
  | 'webworker.iterable';
326
368
 
@@ -550,6 +592,13 @@ declare namespace TsConfigJson {
550
592
  */
551
593
  newLine?: CompilerOptions.NewLine;
552
594
 
595
+ /**
596
+ Disable full type checking (only critical parse and emit errors will be reported).
597
+
598
+ @default false
599
+ */
600
+ noCheck?: boolean;
601
+
553
602
  /**
554
603
  Do not emit output.
555
604
 
@@ -692,6 +741,13 @@ declare namespace TsConfigJson {
692
741
  */
693
742
  isolatedModules?: boolean;
694
743
 
744
+ /**
745
+ Require sufficient annotation on exports so other tools can trivially generate declaration files.
746
+
747
+ @default false
748
+ */
749
+ isolatedDeclarations?: boolean;
750
+
695
751
  /**
696
752
  Generates corresponding '.map' file.
697
753
 
@@ -805,6 +861,13 @@ declare namespace TsConfigJson {
805
861
  */
806
862
  noUncheckedIndexedAccess?: boolean;
807
863
 
864
+ /**
865
+ Report error if failed to find a source file for a side effect import.
866
+
867
+ @default false
868
+ */
869
+ noUncheckedSideEffectImports?: boolean;
870
+
808
871
  /**
809
872
  Report errors for fallthrough cases in switch statement.
810
873
 
@@ -840,6 +903,11 @@ declare namespace TsConfigJson {
840
903
  */
841
904
  generateCpuProfile?: string;
842
905
 
906
+ /**
907
+ Generates an event trace and a list of types.
908
+ */
909
+ generateTrace?: boolean;
910
+
843
911
  /**
844
912
  Base directory to resolve non-relative module names.
845
913
  */
@@ -989,6 +1057,13 @@ declare namespace TsConfigJson {
989
1057
  */
990
1058
  checkJs?: boolean;
991
1059
 
1060
+ /**
1061
+ Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.
1062
+
1063
+ @default false
1064
+ */
1065
+ strictBuiltinIteratorReturn?: boolean;
1066
+
992
1067
  /**
993
1068
  Disable bivariant parameter checking for function types.
994
1069
 
@@ -1231,6 +1306,11 @@ declare namespace TsConfigJson {
1231
1306
  Specifies a list of type declarations to be excluded from auto type acquisition. For example, `['jquery', 'lodash']`.
1232
1307
  */
1233
1308
  exclude?: string[];
1309
+
1310
+ /**
1311
+ Disable infering what types should be added based on filenames in a project.
1312
+ */
1313
+ disableFilenameBasedTypeAcquisition?: boolean;
1234
1314
  };
1235
1315
 
1236
1316
  export type References = {
@@ -1328,8 +1408,23 @@ type TsConfigResult = {
1328
1408
  };
1329
1409
  type Cache<value = any> = Map<string, value>;
1330
1410
 
1411
+ /**
1412
+ * Finds a tsconfig file, defaulting to `tsconfig.json`, starting from a given path.
1413
+ *
1414
+ * @param searchPath Starting directory (default: `process.cwd()`).
1415
+ * @param configName Config file name (default: `tsconfig.json`).
1416
+ * @param cache Cache for previous results (default: new `Map()`).
1417
+ * @returns The tsconfig file path and parsed contents, or `null` if not found.
1418
+ */
1331
1419
  declare const getTsconfig: (searchPath?: string, configName?: string, cache?: Cache) => TsConfigResult | null;
1332
1420
 
1421
+ /**
1422
+ * Parses a tsconfig file at a given path
1423
+ *
1424
+ * @param tsconfigPath - Path to the tsconfig file.
1425
+ * @param cache - Cache for storing parsed tsconfig results (default: new `Map()`).
1426
+ * @returns The parsed and resolved tsconfig JSON.
1427
+ */
1333
1428
  declare const parseTsconfig: (tsconfigPath: string, cache?: Cache<string>) => TsConfigJsonResolved;
1334
1429
 
1335
1430
  /**
package/dist/index.d.mts CHANGED
@@ -32,8 +32,8 @@ type Includes<Value extends readonly any[], Item> =
32
32
  @category Utilities
33
33
  */
34
34
  type IsEqual<A, B> =
35
- (<G>() => G extends A ? 1 : 2) extends
36
- (<G>() => G extends B ? 1 : 2)
35
+ (<G>() => G extends A & G | G ? 1 : 2) extends
36
+ (<G>() => G extends B & G | G ? 1 : 2)
37
37
  ? true
38
38
  : false;
39
39
 
@@ -173,6 +173,8 @@ declare namespace TsConfigJson {
173
173
  | 'ES2020'
174
174
  | 'ES2021'
175
175
  | 'ES2022'
176
+ | 'ES2023'
177
+ | 'ES2024'
176
178
  | 'ESNext'
177
179
  // Lowercase alternatives
178
180
  | 'es3'
@@ -186,6 +188,8 @@ declare namespace TsConfigJson {
186
188
  | 'es2020'
187
189
  | 'es2021'
188
190
  | 'es2022'
191
+ | 'es2023'
192
+ | 'es2024'
189
193
  | 'esnext';
190
194
 
191
195
  // eslint-disable-next-line unicorn/prevent-abbreviations
@@ -206,6 +210,8 @@ declare namespace TsConfigJson {
206
210
  | 'ES2016'
207
211
  | 'ES2016.Array.Include'
208
212
  | 'ES2017'
213
+ | 'ES2017.ArrayBuffer'
214
+ | 'ES2017.Date'
209
215
  | 'ES2017.Intl'
210
216
  | 'ES2017.Object'
211
217
  | 'ES2017.SharedMemory'
@@ -230,6 +236,7 @@ declare namespace TsConfigJson {
230
236
  | 'ES2020.SharedMemory'
231
237
  | 'ES2020.Intl'
232
238
  | 'ES2021'
239
+ | 'ES2021.Intl'
233
240
  | 'ES2021.Promise'
234
241
  | 'ES2021.String'
235
242
  | 'ES2021.WeakRef'
@@ -238,14 +245,29 @@ declare namespace TsConfigJson {
238
245
  | 'ES2022.Error'
239
246
  | 'ES2022.Intl'
240
247
  | 'ES2022.Object'
241
- | 'ES2022.SharedMemory'
242
- | 'ES2022.String'
243
248
  | 'ES2022.RegExp'
249
+ | 'ES2022.String'
250
+ | 'ES2023'
251
+ | 'ES2023.Array'
252
+ | 'ES2023.Collection'
253
+ | 'ES2023.Intl'
254
+ | 'ES2024'
255
+ | 'ES2024.ArrayBuffer'
256
+ | 'ES2024.Collection'
257
+ | 'ES2024.Object'
258
+ | 'ES2024.Promise'
259
+ | 'ES2024.Regexp'
260
+ | 'ES2024.SharedMemory'
261
+ | 'ES2024.String'
244
262
  | 'ESNext'
245
263
  | 'ESNext.Array'
246
264
  | 'ESNext.AsyncIterable'
247
265
  | 'ESNext.BigInt'
266
+ | 'ESNext.Collection'
267
+ | 'ESNext.Decorators'
268
+ | 'ESNext.Disposable'
248
269
  | 'ESNext.Intl'
270
+ | 'ESNext.Iterator'
249
271
  | 'ESNext.Promise'
250
272
  | 'ESNext.String'
251
273
  | 'ESNext.Symbol'
@@ -254,6 +276,7 @@ declare namespace TsConfigJson {
254
276
  | 'DOM.Iterable'
255
277
  | 'ScriptHost'
256
278
  | 'WebWorker'
279
+ | 'WebWorker.AsyncIterable'
257
280
  | 'WebWorker.ImportScripts'
258
281
  | 'WebWorker.Iterable'
259
282
  // Lowercase alternatives
@@ -273,6 +296,8 @@ declare namespace TsConfigJson {
273
296
  | 'es2016'
274
297
  | 'es2016.array.include'
275
298
  | 'es2017'
299
+ | 'es2017.arraybuffer'
300
+ | 'es2017.date'
276
301
  | 'es2017.intl'
277
302
  | 'es2017.object'
278
303
  | 'es2017.sharedmemory'
@@ -297,6 +322,7 @@ declare namespace TsConfigJson {
297
322
  | 'es2020.sharedmemory'
298
323
  | 'es2020.intl'
299
324
  | 'es2021'
325
+ | 'es2021.intl'
300
326
  | 'es2021.promise'
301
327
  | 'es2021.string'
302
328
  | 'es2021.weakref'
@@ -305,14 +331,29 @@ declare namespace TsConfigJson {
305
331
  | 'es2022.error'
306
332
  | 'es2022.intl'
307
333
  | 'es2022.object'
308
- | 'es2022.sharedmemory'
309
- | 'es2022.string'
310
334
  | 'es2022.regexp'
335
+ | 'es2022.string'
336
+ | 'es2023'
337
+ | 'es2023.array'
338
+ | 'es2023.collection'
339
+ | 'es2023.intl'
340
+ | 'es2024'
341
+ | 'es2024.arraybuffer'
342
+ | 'es2024.collection'
343
+ | 'es2024.object'
344
+ | 'es2024.promise'
345
+ | 'es2024.regexp'
346
+ | 'es2024.sharedmemory'
347
+ | 'es2024.string'
311
348
  | 'esnext'
312
349
  | 'esnext.array'
313
350
  | 'esnext.asynciterable'
314
351
  | 'esnext.bigint'
352
+ | 'esnext.collection'
353
+ | 'esnext.decorators'
354
+ | 'esnext.disposable'
315
355
  | 'esnext.intl'
356
+ | 'esnext.iterator'
316
357
  | 'esnext.promise'
317
358
  | 'esnext.string'
318
359
  | 'esnext.symbol'
@@ -321,6 +362,7 @@ declare namespace TsConfigJson {
321
362
  | 'dom.iterable'
322
363
  | 'scripthost'
323
364
  | 'webworker'
365
+ | 'webworker.asynciterable'
324
366
  | 'webworker.importscripts'
325
367
  | 'webworker.iterable';
326
368
 
@@ -550,6 +592,13 @@ declare namespace TsConfigJson {
550
592
  */
551
593
  newLine?: CompilerOptions.NewLine;
552
594
 
595
+ /**
596
+ Disable full type checking (only critical parse and emit errors will be reported).
597
+
598
+ @default false
599
+ */
600
+ noCheck?: boolean;
601
+
553
602
  /**
554
603
  Do not emit output.
555
604
 
@@ -692,6 +741,13 @@ declare namespace TsConfigJson {
692
741
  */
693
742
  isolatedModules?: boolean;
694
743
 
744
+ /**
745
+ Require sufficient annotation on exports so other tools can trivially generate declaration files.
746
+
747
+ @default false
748
+ */
749
+ isolatedDeclarations?: boolean;
750
+
695
751
  /**
696
752
  Generates corresponding '.map' file.
697
753
 
@@ -805,6 +861,13 @@ declare namespace TsConfigJson {
805
861
  */
806
862
  noUncheckedIndexedAccess?: boolean;
807
863
 
864
+ /**
865
+ Report error if failed to find a source file for a side effect import.
866
+
867
+ @default false
868
+ */
869
+ noUncheckedSideEffectImports?: boolean;
870
+
808
871
  /**
809
872
  Report errors for fallthrough cases in switch statement.
810
873
 
@@ -840,6 +903,11 @@ declare namespace TsConfigJson {
840
903
  */
841
904
  generateCpuProfile?: string;
842
905
 
906
+ /**
907
+ Generates an event trace and a list of types.
908
+ */
909
+ generateTrace?: boolean;
910
+
843
911
  /**
844
912
  Base directory to resolve non-relative module names.
845
913
  */
@@ -989,6 +1057,13 @@ declare namespace TsConfigJson {
989
1057
  */
990
1058
  checkJs?: boolean;
991
1059
 
1060
+ /**
1061
+ Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.
1062
+
1063
+ @default false
1064
+ */
1065
+ strictBuiltinIteratorReturn?: boolean;
1066
+
992
1067
  /**
993
1068
  Disable bivariant parameter checking for function types.
994
1069
 
@@ -1231,6 +1306,11 @@ declare namespace TsConfigJson {
1231
1306
  Specifies a list of type declarations to be excluded from auto type acquisition. For example, `['jquery', 'lodash']`.
1232
1307
  */
1233
1308
  exclude?: string[];
1309
+
1310
+ /**
1311
+ Disable infering what types should be added based on filenames in a project.
1312
+ */
1313
+ disableFilenameBasedTypeAcquisition?: boolean;
1234
1314
  };
1235
1315
 
1236
1316
  export type References = {
@@ -1328,8 +1408,23 @@ type TsConfigResult = {
1328
1408
  };
1329
1409
  type Cache<value = any> = Map<string, value>;
1330
1410
 
1411
+ /**
1412
+ * Finds a tsconfig file, defaulting to `tsconfig.json`, starting from a given path.
1413
+ *
1414
+ * @param searchPath Starting directory (default: `process.cwd()`).
1415
+ * @param configName Config file name (default: `tsconfig.json`).
1416
+ * @param cache Cache for previous results (default: new `Map()`).
1417
+ * @returns The tsconfig file path and parsed contents, or `null` if not found.
1418
+ */
1331
1419
  declare const getTsconfig: (searchPath?: string, configName?: string, cache?: Cache) => TsConfigResult | null;
1332
1420
 
1421
+ /**
1422
+ * Parses a tsconfig file at a given path
1423
+ *
1424
+ * @param tsconfigPath - Path to the tsconfig file.
1425
+ * @param cache - Cache for storing parsed tsconfig results (default: new `Map()`).
1426
+ * @returns The parsed and resolved tsconfig JSON.
1427
+ */
1333
1428
  declare const parseTsconfig: (tsconfigPath: string, cache?: Cache<string>) => TsConfigJsonResolved;
1334
1429
 
1335
1430
  /**
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- var ve=Object.defineProperty;var l=(e,t)=>ve(e,"name",{value:t,configurable:!0});import a from"node:path";import ee from"node:fs";import Te from"node:module";import{resolveExports as Ae}from"resolve-pkg-maps";import Oe from"fs";function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}l(B,"slash");const R=l(e=>{const t=ee[e];return(i,...n)=>{const o=`${e}:${n.join(":")}`;let s=i==null?void 0:i.get(o);return s===void 0&&(s=Reflect.apply(t,ee,n),i==null||i.set(o,s)),s}},"cacheFs"),F=R("existsSync"),je=R("readFileSync"),P=R("statSync"),ne=l((e,t,i)=>{for(;;){const n=a.posix.join(e,t);if(F(i,n))return n;const o=a.dirname(e);if(o===e)return;e=o}},"findUp"),J=/^\.{1,2}(\/.*)?$/,M=l(e=>{const t=B(e);return J.test(t)?t:`./${t}`},"normalizeRelativePath");function _e(e,t=!1){const i=e.length;let n=0,o="",s=0,r=16,f=0,u=0,p=0,T=0,w=0;function O(c,m){let g=0,y=0;for(;g<c||!m;){let j=e.charCodeAt(n);if(j>=48&&j<=57)y=y*16+j-48;else if(j>=65&&j<=70)y=y*16+j-65+10;else if(j>=97&&j<=102)y=y*16+j-97+10;else break;n++,g++}return g<c&&(y=-1),y}l(O,"scanHexDigits");function v(c){n=c,o="",s=0,r=16,w=0}l(v,"setPosition");function A(){let c=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&N(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&N(e.charCodeAt(n)))for(n++;n<e.length&&N(e.charCodeAt(n));)n++;else return w=3,e.substring(c,n);let m=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&&N(e.charCodeAt(n))){for(n++;n<e.length&&N(e.charCodeAt(n));)n++;m=n}else w=3;return e.substring(c,m)}l(A,"scanNumber");function b(){let c="",m=n;for(;;){if(n>=i){c+=e.substring(m,n),w=2;break}const g=e.charCodeAt(n);if(g===34){c+=e.substring(m,n),n++;break}if(g===92){if(c+=e.substring(m,n),n++,n>=i){w=2;break}switch(e.charCodeAt(n++)){case 34:c+='"';break;case 92:c+="\\";break;case 47:c+="/";break;case 98:c+="\b";break;case 102:c+="\f";break;case 110:c+=`
2
- `;break;case 114:c+="\r";break;case 116:c+=" ";break;case 117:const j=O(4,!0);j>=0?c+=String.fromCharCode(j):w=4;break;default:w=5}m=n;continue}if(g>=0&&g<=31)if(h(g)){c+=e.substring(m,n),w=2;break}else w=6;n++}return c}l(b,"scanString");function $(){if(o="",w=0,s=n,u=f,T=p,n>=i)return s=i,r=17;let c=e.charCodeAt(n);if(G(c)){do n++,o+=String.fromCharCode(c),c=e.charCodeAt(n);while(G(c));return r=15}if(h(c))return n++,o+=String.fromCharCode(c),c===13&&e.charCodeAt(n)===10&&(n++,o+=`
3
- `),f++,p=n,r=14;switch(c){case 123:return n++,r=1;case 125:return n++,r=2;case 91:return n++,r=3;case 93:return n++,r=4;case 58:return n++,r=6;case 44:return n++,r=5;case 34:return n++,o=b(),r=10;case 47:const m=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!h(e.charCodeAt(n));)n++;return o=e.substring(m,n),r=12}if(e.charCodeAt(n+1)===42){n+=2;const g=i-1;let y=!1;for(;n<g;){const j=e.charCodeAt(n);if(j===42&&e.charCodeAt(n+1)===47){n+=2,y=!0;break}n++,h(j)&&(j===13&&e.charCodeAt(n)===10&&n++,f++,p=n)}return y||(n++,w=1),o=e.substring(m,n),r=13}return o+=String.fromCharCode(c),n++,r=16;case 45:if(o+=String.fromCharCode(c),n++,n===i||!N(e.charCodeAt(n)))return r=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return o+=A(),r=11;default:for(;n<i&&U(c);)n++,c=e.charCodeAt(n);if(s!==n){switch(o=e.substring(s,n),o){case"true":return r=8;case"false":return r=9;case"null":return r=7}return r=16}return o+=String.fromCharCode(c),n++,r=16}}l($,"scanNext");function U(c){if(G(c)||h(c))return!1;switch(c){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}l(U,"isUnknownContentCharacter");function E(){let c;do c=$();while(c>=12&&c<=15);return c}return l(E,"scanNextNonTrivia"),{setPosition:v,getPosition:l(()=>n,"getPosition"),scan:t?E:$,getToken:l(()=>r,"getToken"),getTokenValue:l(()=>o,"getTokenValue"),getTokenOffset:l(()=>s,"getTokenOffset"),getTokenLength:l(()=>n-s,"getTokenLength"),getTokenStartLine:l(()=>u,"getTokenStartLine"),getTokenStartCharacter:l(()=>s-T,"getTokenStartCharacter"),getTokenError:l(()=>w,"getTokenError")}}l(_e,"createScanner");function G(e){return e===32||e===9}l(G,"isWhiteSpace");function h(e){return e===10||e===13}l(h,"isLineBreak");function N(e){return e>=48&&e<=57}l(N,"isDigit");var te;(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"})(te||(te={})),new Array(20).fill(0).map((e,t)=>" ".repeat(t));const D=200;new Array(D).fill(0).map((e,t)=>`
4
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`\r
5
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`
6
- `+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(D).fill(0).map((e,t)=>`\r
7
- `+" ".repeat(t));var x;(function(e){e.DEFAULT={allowTrailingComma:!1}})(x||(x={}));function $e(e,t=[],i=x.DEFAULT){let n=null,o=[];const s=[];function r(u){Array.isArray(o)?o.push(u):n!==null&&(o[n]=u)}return l(r,"onValue"),ye(e,{onObjectBegin:l(()=>{const u={};r(u),s.push(o),o=u,n=null},"onObjectBegin"),onObjectProperty:l(u=>{n=u},"onObjectProperty"),onObjectEnd:l(()=>{o=s.pop()},"onObjectEnd"),onArrayBegin:l(()=>{const u=[];r(u),s.push(o),o=u,n=null},"onArrayBegin"),onArrayEnd:l(()=>{o=s.pop()},"onArrayEnd"),onLiteralValue:r,onError:l((u,p,T)=>{t.push({error:u,offset:p,length:T})},"onError")},i),o[0]}l($e,"parse$1");function ye(e,t,i=x.DEFAULT){const n=_e(e,!1),o=[];function s(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(s,"toNoArgVisit");function r(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}l(r,"toNoArgVisitWithPath");function f(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(f,"toOneArgVisit");function u(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}l(u,"toOneArgVisitWithPath");const p=r(t.onObjectBegin),T=u(t.onObjectProperty),w=s(t.onObjectEnd),O=r(t.onArrayBegin),v=s(t.onArrayEnd),A=u(t.onLiteralValue),b=f(t.onSeparator),$=s(t.onComment),U=f(t.onError),E=i&&i.disallowComments,c=i&&i.allowTrailingComma;function m(){for(;;){const k=n.scan();switch(n.getTokenError()){case 4:g(14);break;case 5:g(15);break;case 3:g(13);break;case 1:E||g(11);break;case 2:g(12);break;case 6:g(16);break}switch(k){case 12:case 13:E?g(10):$();break;case 16:g(1);break;case 15:case 14:break;default:return k}}}l(m,"scanNext");function g(k,_=[],C=[]){if(U(k),_.length+C.length>0){let d=n.getToken();for(;d!==17;){if(_.indexOf(d)!==-1){m();break}else if(C.indexOf(d)!==-1)break;d=m()}}}l(g,"handleError");function y(k){const _=n.getTokenValue();return k?A(_):(T(_),o.push(_)),m(),!0}l(y,"parseString");function j(){switch(n.getToken()){case 11:const k=n.getTokenValue();let _=Number(k);isNaN(_)&&(g(2),_=0),A(_);break;case 7:A(null);break;case 8:A(!0);break;case 9:A(!1);break;default:return!1}return m(),!0}l(j,"parseLiteral");function ke(){return n.getToken()!==10?(g(3,[],[2,5]),!1):(y(!1),n.getToken()===6?(b(":"),m(),V()||g(4,[],[2,5])):g(5,[],[2,5]),o.pop(),!0)}l(ke,"parseProperty");function be(){p(),m();let k=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(k||g(4,[],[]),b(","),m(),n.getToken()===2&&c)break}else k&&g(6,[],[]);ke()||g(4,[],[2,5]),k=!0}return w(),n.getToken()!==2?g(7,[2],[]):m(),!0}l(be,"parseObject");function we(){O(),m();let k=!0,_=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(_||g(4,[],[]),b(","),m(),n.getToken()===4&&c)break}else _&&g(6,[],[]);k?(o.push(0),k=!1):o[o.length-1]++,V()||g(4,[],[4,5]),_=!0}return v(),k||o.pop(),n.getToken()!==4?g(8,[4],[]):m(),!0}l(we,"parseArray");function V(){switch(n.getToken()){case 3:return we();case 1:return be();case 10:return y(!0);default:return j()}}return l(V,"parseValue"),m(),n.getToken()===17?i.allowEmptyContent?!0:(g(4,[],[]),!1):V()?(n.getToken()!==17&&g(9,[],[]),!0):(g(4,[],[]),!1)}l(ye,"visit");var ie;(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"})(ie||(ie={}));var oe;(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"})(oe||(oe={}));const Be=$e;var se;(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"})(se||(se={}));const le=l((e,t)=>Be(je(t,e,"utf8")),"readJsonc"),z=Symbol("implicitBaseUrl"),L="${configDir}",Fe=l(()=>{const{findPnpApi:e}=Te;return e&&e(process.cwd())},"getPnpApi"),Q=l((e,t,i,n)=>{const o=`resolveFromPackageJsonPath:${e}:${t}:${i}`;if(n!=null&&n.has(o))return n.get(o);const s=le(e,n);if(!s)return;let r=t||"tsconfig.json";if(!i&&s.exports)try{const[f]=Ae(s.exports,t,["require","types"]);r=f}catch{return!1}else!t&&s.tsconfig&&(r=s.tsconfig);return r=a.join(e,"..",r),n==null||n.set(o,r),r},"resolveFromPackageJsonPath"),H="package.json",X="tsconfig.json",Le=l((e,t,i)=>{let n=e;if(e===".."&&(n=a.join(n,X)),e[0]==="."&&(n=a.resolve(t,n)),a.isAbsolute(n)){if(F(i,n)){if(P(i,n).isFile())return n}else if(!n.endsWith(".json")){const v=`${n}.json`;if(F(i,v))return v}return}const[o,...s]=e.split("/"),r=o[0]==="@"?`${o}/${s.shift()}`:o,f=s.join("/"),u=Fe();if(u){const{resolveRequest:v}=u;try{if(r===e){const A=v(a.join(r,H),t);if(A){const b=Q(A,f,!1,i);if(b&&F(i,b))return b}}else{let A;try{A=v(e,t,{extensions:[".json"]})}catch{A=v(a.join(e,X),t)}if(A)return A}}catch{}}const p=ne(a.resolve(t),a.join("node_modules",r),i);if(!p||!P(i,p).isDirectory())return;const T=a.join(p,H);if(F(i,T)){const v=Q(T,f,!1,i);if(v===!1)return;if(v&&F(i,v)&&P(i,v).isFile())return v}const w=a.join(p,f),O=w.endsWith(".json");if(!O){const v=`${w}.json`;if(F(i,v))return v}if(F(i,w)){if(P(i,w).isDirectory()){const v=a.join(w,H);if(F(i,v)){const b=Q(v,"",!0,i);if(b&&F(i,b))return b}const A=a.join(w,X);if(F(i,A))return A}else if(O)return w}},"resolveExtendsPath"),Y=l((e,t)=>M(a.relative(e,t)),"pathRelative"),re=["files","include","exclude"],Ue=l((e,t,i,n)=>{const o=Le(e,t,n);if(!o)throw new Error(`File '${e}' not found.`);if(i.has(o))throw new Error(`Circularity detected while resolving configuration: ${o}`);i.add(o);const s=a.dirname(o),r=ue(o,n,i);delete r.references;const{compilerOptions:f}=r;if(f){const{baseUrl:u}=f;u&&!u.startsWith(L)&&(f.baseUrl=B(a.relative(t,a.join(s,u)))||"./");let{outDir:p}=f;p&&(p.startsWith(L)||(p=a.relative(t,a.join(s,p))),f.outDir=B(p)||"./")}for(const u of re){const p=r[u];p&&(r[u]=p.map(T=>T.startsWith(L)?T:B(a.relative(t,a.join(s,T)))))}return r},"resolveExtends"),Ee=["outDir","declarationDir"],ue=l((e,t,i=new Set)=>{let n;try{n=le(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 o=a.dirname(e);if(n.compilerOptions){const{compilerOptions:s}=n;s.paths&&!s.baseUrl&&(s[z]=o)}if(n.extends){const s=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const r of s.reverse()){const f=Ue(r,o,new Set(i),t),u={...f,...n,compilerOptions:{...f.compilerOptions,...n.compilerOptions}};f.watchOptions&&(u.watchOptions={...f.watchOptions,...n.watchOptions}),n=u}}if(n.compilerOptions){const{compilerOptions:s}=n,r=["baseUrl","rootDir"];for(const f of r){const u=s[f];if(u&&!u.startsWith(L)){const p=a.resolve(o,u),T=Y(o,p);s[f]=T}}for(const f of Ee){let u=s[f];u&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(u)||n.exclude.push(u),u.startsWith(L)||(u=M(u)),s[f]=u)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(B),n.files&&delete n.files):n.files&&(n.files=n.files.map(s=>s.startsWith(L)?s:M(s))),n.watchOptions){const{watchOptions:s}=n;s.excludeDirectories&&(s.excludeDirectories=s.excludeDirectories.map(r=>B(a.resolve(o,r))))}return n},"_parseTsconfig"),I=l((e,t)=>{if(e.startsWith(L))return B(a.join(t,e.slice(L.length)))},"interpolateConfigDir"),Ne=["outDir","declarationDir","outFile","rootDir","baseUrl","tsBuildInfoFile"],fe=l((e,t=new Map)=>{const i=a.resolve(e),n=ue(i,t),o=a.dirname(i),{compilerOptions:s}=n;if(s){for(const f of Ne){const u=s[f];if(u){const p=I(u,o);s[f]=p?Y(o,p):u}}for(const f of["rootDirs","typeRoots"]){const u=s[f];u&&(s[f]=u.map(p=>{const T=I(p,o);return T?Y(o,T):p}))}const{paths:r}=s;if(r)for(const f of Object.keys(r))r[f]=r[f].map(u=>{var p;return(p=I(u,o))!=null?p:u})}for(const r of re){const f=n[r];f&&(n[r]=f.map(u=>{var p;return(p=I(u,o))!=null?p:u}))}return n},"parseTsconfig"),De=l((e=process.cwd(),t="tsconfig.json",i=new Map)=>{const n=ne(B(e),t,i);if(!n)return null;const o=fe(n,i);return{path:n,config:o}},"getTsconfig"),he=/\*/g,ce=l((e,t)=>{const i=e.match(he);if(i&&i.length>1)throw new Error(t)},"assertStarCount"),de=l(e=>{if(e.includes("*")){const[t,i]=e.split("*");return{prefix:t,suffix:i}}return e},"parsePattern"),Pe=l(({prefix:e,suffix:t},i)=>i.startsWith(e)&&i.endsWith(t),"isPatternMatch"),xe=l((e,t,i)=>Object.entries(e).map(([n,o])=>(ce(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:de(n),substitutions:o.map(s=>{if(ce(s,`Substitution '${s}' in pattern '${n}' can have at most one '*' character.`),!t&&!J.test(s))throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");return a.resolve(i,s)})})),"parsePaths"),Ie=l(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:i,paths:n}=t;if(!i&&!n)return null;const o=z in t&&t[z],s=a.resolve(a.dirname(e.path),i||o||"."),r=n?xe(n,i,s):[];return f=>{if(J.test(f))return[];const u=[];for(const O of r){if(O.pattern===f)return O.substitutions.map(B);typeof O.pattern!="string"&&u.push(O)}let p,T=-1;for(const O of u)Pe(O.pattern,f)&&O.pattern.prefix.length>T&&(T=O.pattern.prefix.length,p=O);if(!p)return i?[B(a.join(s,f))]:[];const w=f.slice(p.pattern.prefix.length,f.length-p.pattern.suffix.length);return p.substitutions.map(O=>B(O.replace("*",w)))}},"createPathsMatcher"),pe=l(e=>{let t="";for(let i=0;i<e.length;i+=1){const n=e[i],o=n.toUpperCase();t+=n===o?n.toLowerCase():o}return t},"s"),Se=65,We=97,Ve=l(()=>Math.floor(Math.random()*26),"m"),Re=l(e=>Array.from({length:e},()=>String.fromCodePoint(Ve()+(Math.random()>.5?Se:We))).join(""),"S"),Je=l((e=Oe)=>{const t=process.execPath;if(e.existsSync(t))return!e.existsSync(pe(t));const i=`/${Re(10)}`;e.writeFileSync(i,"");const n=!e.existsSync(pe(i));return e.unlinkSync(i),n},"l"),{join:S}=a.posix,Z={ts:[".ts",".tsx",".d.ts"],cts:[".cts",".d.cts"],mts:[".mts",".d.mts"]},Me=l(e=>{const t=[...Z.ts],i=[...Z.cts],n=[...Z.mts];return e!=null&&e.allowJs&&(t.push(".js",".jsx"),i.push(".cjs"),n.push(".mjs")),[...t,...i,...n]},"getSupportedExtensions"),Ge=l(e=>{const t=[];if(!e)return t;const{outDir:i,declarationDir:n}=e;return i&&t.push(i),n&&t.push(n),t},"getDefaultExcludeSpec"),ae=l(e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeForRegexp"),ze=["node_modules","bower_components","jspm_packages"],q=`(?!(${ze.join("|")})(/|$))`,Qe=/(?:^|\/)[^.*?]+$/,ge="**/*",W="[^/]",K="[^./]",me=process.platform==="win32",He=l(({config:e,path:t},i=Je())=>{if("extends"in e)throw new Error("tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.");if(!a.isAbsolute(t))throw new Error("The tsconfig path must be absolute");me&&(t=B(t));const n=a.dirname(t),{files:o,include:s,exclude:r,compilerOptions:f}=e,u=o==null?void 0:o.map(b=>S(n,b)),p=Me(f),T=i?"":"i",O=(r||Ge(f)).map(b=>{const $=S(n,b),U=ae($).replaceAll(String.raw`\*\*/`,"(.+/)?").replaceAll(String.raw`\*`,`${W}*`).replaceAll(String.raw`\?`,W);return new RegExp(`^${U}($|/)`,T)}),v=o||s?s:[ge],A=v?v.map(b=>{let $=S(n,b);Qe.test($)&&($=S($,ge));const U=ae($).replaceAll(String.raw`/\*\*`,`(/${q}${K}${W}*)*?`).replaceAll(/(\/)?\\\*/g,(E,c)=>{const m=`(${K}|(\\.(?!min\\.js$))?)*`;return c?`/${q}${K}${m}`:m}).replaceAll(/(\/)?\\\?/g,(E,c)=>{const m=W;return c?`/${q}${m}`:m});return new RegExp(`^${U}$`,T)}):void 0;return b=>{if(!a.isAbsolute(b))throw new Error("filePath must be absolute");if(me&&(b=B(b)),u!=null&&u.includes(b))return e;if(!(!p.some($=>b.endsWith($))||O.some($=>$.test(b)))&&A&&A.some($=>$.test(b)))return e}},"createFilesMatcher");export{He as createFilesMatcher,Ie as createPathsMatcher,De as getTsconfig,fe as parseTsconfig};
1
+ var Te=Object.defineProperty;var l=(e,t)=>Te(e,"name",{value:t,configurable:!0});import a from"node:path";import ee from"node:fs";import ve from"node:module";import{resolveExports as Ae}from"resolve-pkg-maps";import Oe from"fs";function B(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}l(B,"slash");const R=l(e=>{const t=ee[e];return(i,...n)=>{const s=`${e}:${n.join(":")}`;let o=i==null?void 0:i.get(s);return o===void 0&&(o=Reflect.apply(t,ee,n),i==null||i.set(s,o)),o}},"cacheFs"),F=R("existsSync"),je=R("readFileSync"),x=R("statSync"),ne=l((e,t,i)=>{for(;;){const n=a.posix.join(e,t);if(F(i,n))return n;const s=a.dirname(e);if(s===e)return;e=s}},"findUp"),J=/^\.{1,2}(\/.*)?$/,M=l(e=>{const t=B(e);return J.test(t)?t:`./${t}`},"normalizeRelativePath");function _e(e,t=!1){const i=e.length;let n=0,s="",o=0,r=16,f=0,u=0,p=0,v=0,w=0;function O(c,m){let g=0,y=0;for(;g<c;){let j=e.charCodeAt(n);if(j>=48&&j<=57)y=y*16+j-48;else if(j>=65&&j<=70)y=y*16+j-65+10;else if(j>=97&&j<=102)y=y*16+j-97+10;else break;n++,g++}return g<c&&(y=-1),y}l(O,"scanHexDigits");function T(c){n=c,s="",o=0,r=16,w=0}l(T,"setPosition");function A(){let c=n;if(e.charCodeAt(n)===48)n++;else for(n++;n<e.length&&d(e.charCodeAt(n));)n++;if(n<e.length&&e.charCodeAt(n)===46)if(n++,n<e.length&&d(e.charCodeAt(n)))for(n++;n<e.length&&d(e.charCodeAt(n));)n++;else return w=3,e.substring(c,n);let m=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&&d(e.charCodeAt(n))){for(n++;n<e.length&&d(e.charCodeAt(n));)n++;m=n}else w=3;return e.substring(c,m)}l(A,"scanNumber");function b(){let c="",m=n;for(;;){if(n>=i){c+=e.substring(m,n),w=2;break}const g=e.charCodeAt(n);if(g===34){c+=e.substring(m,n),n++;break}if(g===92){if(c+=e.substring(m,n),n++,n>=i){w=2;break}switch(e.charCodeAt(n++)){case 34:c+='"';break;case 92:c+="\\";break;case 47:c+="/";break;case 98:c+="\b";break;case 102:c+="\f";break;case 110:c+=`
2
+ `;break;case 114:c+="\r";break;case 116:c+=" ";break;case 117:const j=O(4);j>=0?c+=String.fromCharCode(j):w=4;break;default:w=5}m=n;continue}if(g>=0&&g<=31)if(D(g)){c+=e.substring(m,n),w=2;break}else w=6;n++}return c}l(b,"scanString");function $(){if(s="",w=0,o=n,u=f,v=p,n>=i)return o=i,r=17;let c=e.charCodeAt(n);if(G(c)){do n++,s+=String.fromCharCode(c),c=e.charCodeAt(n);while(G(c));return r=15}if(D(c))return n++,s+=String.fromCharCode(c),c===13&&e.charCodeAt(n)===10&&(n++,s+=`
3
+ `),f++,p=n,r=14;switch(c){case 123:return n++,r=1;case 125:return n++,r=2;case 91:return n++,r=3;case 93:return n++,r=4;case 58:return n++,r=6;case 44:return n++,r=5;case 34:return n++,s=b(),r=10;case 47:const m=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n<i&&!D(e.charCodeAt(n));)n++;return s=e.substring(m,n),r=12}if(e.charCodeAt(n+1)===42){n+=2;const g=i-1;let y=!1;for(;n<g;){const j=e.charCodeAt(n);if(j===42&&e.charCodeAt(n+1)===47){n+=2,y=!0;break}n++,D(j)&&(j===13&&e.charCodeAt(n)===10&&n++,f++,p=n)}return y||(n++,w=1),s=e.substring(m,n),r=13}return s+=String.fromCharCode(c),n++,r=16;case 45:if(s+=String.fromCharCode(c),n++,n===i||!d(e.charCodeAt(n)))return r=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return s+=A(),r=11;default:for(;n<i&&U(c);)n++,c=e.charCodeAt(n);if(o!==n){switch(s=e.substring(o,n),s){case"true":return r=8;case"false":return r=9;case"null":return r=7}return r=16}return s+=String.fromCharCode(c),n++,r=16}}l($,"scanNext");function U(c){if(G(c)||D(c))return!1;switch(c){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}l(U,"isUnknownContentCharacter");function E(){let c;do c=$();while(c>=12&&c<=15);return c}return l(E,"scanNextNonTrivia"),{setPosition:T,getPosition:l(()=>n,"getPosition"),scan:t?E:$,getToken:l(()=>r,"getToken"),getTokenValue:l(()=>s,"getTokenValue"),getTokenOffset:l(()=>o,"getTokenOffset"),getTokenLength:l(()=>n-o,"getTokenLength"),getTokenStartLine:l(()=>u,"getTokenStartLine"),getTokenStartCharacter:l(()=>o-v,"getTokenStartCharacter"),getTokenError:l(()=>w,"getTokenError")}}l(_e,"createScanner");function G(e){return e===32||e===9}l(G,"isWhiteSpace");function D(e){return e===10||e===13}l(D,"isLineBreak");function d(e){return e>=48&&e<=57}l(d,"isDigit");var te;(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"})(te||(te={})),new Array(20).fill(0).map((e,t)=>" ".repeat(t));const N=200;new Array(N).fill(0).map((e,t)=>`
4
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`\r
5
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`
6
+ `+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>"\r"+" ".repeat(t)),new Array(N).fill(0).map((e,t)=>`\r
7
+ `+" ".repeat(t));var P;(function(e){e.DEFAULT={allowTrailingComma:!1}})(P||(P={}));function $e(e,t=[],i=P.DEFAULT){let n=null,s=[];const o=[];function r(u){Array.isArray(s)?s.push(u):n!==null&&(s[n]=u)}return l(r,"onValue"),ye(e,{onObjectBegin:l(()=>{const u={};r(u),o.push(s),s=u,n=null},"onObjectBegin"),onObjectProperty:l(u=>{n=u},"onObjectProperty"),onObjectEnd:l(()=>{s=o.pop()},"onObjectEnd"),onArrayBegin:l(()=>{const u=[];r(u),o.push(s),s=u,n=null},"onArrayBegin"),onArrayEnd:l(()=>{s=o.pop()},"onArrayEnd"),onLiteralValue:r,onError:l((u,p,v)=>{t.push({error:u,offset:p,length:v})},"onError")},i),s[0]}l($e,"parse$1");function ye(e,t,i=P.DEFAULT){const n=_e(e,!1),s=[];function o(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(o,"toNoArgVisit");function r(k){return k?()=>k(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(r,"toNoArgVisitWithPath");function f(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}l(f,"toOneArgVisit");function u(k){return k?_=>k(_,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>s.slice()):()=>!0}l(u,"toOneArgVisitWithPath");const p=r(t.onObjectBegin),v=u(t.onObjectProperty),w=o(t.onObjectEnd),O=r(t.onArrayBegin),T=o(t.onArrayEnd),A=u(t.onLiteralValue),b=f(t.onSeparator),$=o(t.onComment),U=f(t.onError),E=i&&i.disallowComments,c=i&&i.allowTrailingComma;function m(){for(;;){const k=n.scan();switch(n.getTokenError()){case 4:g(14);break;case 5:g(15);break;case 3:g(13);break;case 1:E||g(11);break;case 2:g(12);break;case 6:g(16);break}switch(k){case 12:case 13:E?g(10):$();break;case 16:g(1);break;case 15:case 14:break;default:return k}}}l(m,"scanNext");function g(k,_=[],C=[]){if(U(k),_.length+C.length>0){let h=n.getToken();for(;h!==17;){if(_.indexOf(h)!==-1){m();break}else if(C.indexOf(h)!==-1)break;h=m()}}}l(g,"handleError");function y(k){const _=n.getTokenValue();return k?A(_):(v(_),s.push(_)),m(),!0}l(y,"parseString");function j(){switch(n.getToken()){case 11:const k=n.getTokenValue();let _=Number(k);isNaN(_)&&(g(2),_=0),A(_);break;case 7:A(null);break;case 8:A(!0);break;case 9:A(!1);break;default:return!1}return m(),!0}l(j,"parseLiteral");function ke(){return n.getToken()!==10?(g(3,[],[2,5]),!1):(y(!1),n.getToken()===6?(b(":"),m(),V()||g(4,[],[2,5])):g(5,[],[2,5]),s.pop(),!0)}l(ke,"parseProperty");function be(){p(),m();let k=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(k||g(4,[],[]),b(","),m(),n.getToken()===2&&c)break}else k&&g(6,[],[]);ke()||g(4,[],[2,5]),k=!0}return w(),n.getToken()!==2?g(7,[2],[]):m(),!0}l(be,"parseObject");function we(){O(),m();let k=!0,_=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(_||g(4,[],[]),b(","),m(),n.getToken()===4&&c)break}else _&&g(6,[],[]);k?(s.push(0),k=!1):s[s.length-1]++,V()||g(4,[],[4,5]),_=!0}return T(),k||s.pop(),n.getToken()!==4?g(8,[4],[]):m(),!0}l(we,"parseArray");function V(){switch(n.getToken()){case 3:return we();case 1:return be();case 10:return y(!0);default:return j()}}return l(V,"parseValue"),m(),n.getToken()===17?i.allowEmptyContent?!0:(g(4,[],[]),!1):V()?(n.getToken()!==17&&g(9,[],[]),!0):(g(4,[],[]),!1)}l(ye,"visit");var ie;(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"})(ie||(ie={}));var se;(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"})(se||(se={}));const Be=$e;var oe;(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"})(oe||(oe={}));const le=l((e,t)=>Be(je(t,e,"utf8")),"readJsonc"),z=Symbol("implicitBaseUrl"),L="${configDir}",Fe=l(()=>{const{findPnpApi:e}=ve;return e&&e(process.cwd())},"getPnpApi"),Q=l((e,t,i,n)=>{const s=`resolveFromPackageJsonPath:${e}:${t}:${i}`;if(n!=null&&n.has(s))return n.get(s);const o=le(e,n);if(!o)return;let r=t||"tsconfig.json";if(!i&&o.exports)try{const[f]=Ae(o.exports,t,["require","types"]);r=f}catch{return!1}else!t&&o.tsconfig&&(r=o.tsconfig);return r=a.join(e,"..",r),n==null||n.set(s,r),r},"resolveFromPackageJsonPath"),H="package.json",X="tsconfig.json",Le=l((e,t,i)=>{let n=e;if(e===".."&&(n=a.join(n,X)),e[0]==="."&&(n=a.resolve(t,n)),a.isAbsolute(n)){if(F(i,n)){if(x(i,n).isFile())return n}else if(!n.endsWith(".json")){const T=`${n}.json`;if(F(i,T))return T}return}const[s,...o]=e.split("/"),r=s[0]==="@"?`${s}/${o.shift()}`:s,f=o.join("/"),u=Fe();if(u){const{resolveRequest:T}=u;try{if(r===e){const A=T(a.join(r,H),t);if(A){const b=Q(A,f,!1,i);if(b&&F(i,b))return b}}else{let A;try{A=T(e,t,{extensions:[".json"]})}catch{A=T(a.join(e,X),t)}if(A)return A}}catch{}}const p=ne(a.resolve(t),a.join("node_modules",r),i);if(!p||!x(i,p).isDirectory())return;const v=a.join(p,H);if(F(i,v)){const T=Q(v,f,!1,i);if(T===!1)return;if(T&&F(i,T)&&x(i,T).isFile())return T}const w=a.join(p,f),O=w.endsWith(".json");if(!O){const T=`${w}.json`;if(F(i,T))return T}if(F(i,w)){if(x(i,w).isDirectory()){const T=a.join(w,H);if(F(i,T)){const b=Q(T,"",!0,i);if(b&&F(i,b))return b}const A=a.join(w,X);if(F(i,A))return A}else if(O)return w}},"resolveExtendsPath"),Y=l((e,t)=>M(a.relative(e,t)),"pathRelative"),re=["files","include","exclude"],Ue=l((e,t,i,n)=>{const s=Le(e,t,n);if(!s)throw new Error(`File '${e}' not found.`);if(i.has(s))throw new Error(`Circularity detected while resolving configuration: ${s}`);i.add(s);const o=a.dirname(s),r=ue(s,n,i);delete r.references;const{compilerOptions:f}=r;if(f){const{baseUrl:u}=f;u&&!u.startsWith(L)&&(f.baseUrl=B(a.relative(t,a.join(o,u)))||"./");let{outDir:p}=f;p&&(p.startsWith(L)||(p=a.relative(t,a.join(o,p))),f.outDir=B(p)||"./")}for(const u of re){const p=r[u];p&&(r[u]=p.map(v=>v.startsWith(L)?v:B(a.relative(t,a.join(o,v)))))}return r},"resolveExtends"),Ee=["outDir","declarationDir"],ue=l((e,t,i=new Set)=>{let n;try{n=le(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 s=a.dirname(e);if(n.compilerOptions){const{compilerOptions:o}=n;o.paths&&!o.baseUrl&&(o[z]=s)}if(n.extends){const o=Array.isArray(n.extends)?n.extends:[n.extends];delete n.extends;for(const r of o.reverse()){const f=Ue(r,s,new Set(i),t),u={...f,...n,compilerOptions:{...f.compilerOptions,...n.compilerOptions}};f.watchOptions&&(u.watchOptions={...f.watchOptions,...n.watchOptions}),n=u}}if(n.compilerOptions){const{compilerOptions:o}=n,r=["baseUrl","rootDir"];for(const f of r){const u=o[f];if(u&&!u.startsWith(L)){const p=a.resolve(s,u),v=Y(s,p);o[f]=v}}for(const f of Ee){let u=o[f];u&&(Array.isArray(n.exclude)||(n.exclude=[]),n.exclude.includes(u)||n.exclude.push(u),u.startsWith(L)||(u=M(u)),o[f]=u)}}else n.compilerOptions={};if(n.include?(n.include=n.include.map(B),n.files&&delete n.files):n.files&&(n.files=n.files.map(o=>o.startsWith(L)?o:M(o))),n.watchOptions){const{watchOptions:o}=n;o.excludeDirectories&&(o.excludeDirectories=o.excludeDirectories.map(r=>B(a.resolve(s,r))))}return n},"_parseTsconfig"),I=l((e,t)=>{if(e.startsWith(L))return B(a.join(t,e.slice(L.length)))},"interpolateConfigDir"),de=["outDir","declarationDir","outFile","rootDir","baseUrl","tsBuildInfoFile"],fe=l((e,t=new Map)=>{const i=a.resolve(e),n=ue(i,t),s=a.dirname(i),{compilerOptions:o}=n;if(o){for(const f of de){const u=o[f];if(u){const p=I(u,s);o[f]=p?Y(s,p):u}}for(const f of["rootDirs","typeRoots"]){const u=o[f];u&&(o[f]=u.map(p=>{const v=I(p,s);return v?Y(s,v):p}))}const{paths:r}=o;if(r)for(const f of Object.keys(r))r[f]=r[f].map(u=>{var p;return(p=I(u,s))!=null?p:u})}for(const r of re){const f=n[r];f&&(n[r]=f.map(u=>{var p;return(p=I(u,s))!=null?p:u}))}return n},"parseTsconfig"),Ne=l((e=process.cwd(),t="tsconfig.json",i=new Map)=>{const n=ne(B(e),t,i);if(!n)return null;const s=fe(n,i);return{path:n,config:s}},"getTsconfig"),De=/\*/g,ce=l((e,t)=>{const i=e.match(De);if(i&&i.length>1)throw new Error(t)},"assertStarCount"),he=l(e=>{if(e.includes("*")){const[t,i]=e.split("*");return{prefix:t,suffix:i}}return e},"parsePattern"),xe=l(({prefix:e,suffix:t},i)=>i.startsWith(e)&&i.endsWith(t),"isPatternMatch"),Pe=l((e,t,i)=>Object.entries(e).map(([n,s])=>(ce(n,`Pattern '${n}' can have at most one '*' character.`),{pattern:he(n),substitutions:s.map(o=>{if(ce(o,`Substitution '${o}' in pattern '${n}' can have at most one '*' character.`),!t&&!J.test(o))throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");return a.resolve(i,o)})})),"parsePaths"),Ie=l(e=>{const{compilerOptions:t}=e.config;if(!t)return null;const{baseUrl:i,paths:n}=t;if(!i&&!n)return null;const s=z in t&&t[z],o=a.resolve(a.dirname(e.path),i||s||"."),r=n?Pe(n,i,o):[];return f=>{if(J.test(f))return[];const u=[];for(const O of r){if(O.pattern===f)return O.substitutions.map(B);typeof O.pattern!="string"&&u.push(O)}let p,v=-1;for(const O of u)xe(O.pattern,f)&&O.pattern.prefix.length>v&&(v=O.pattern.prefix.length,p=O);if(!p)return i?[B(a.join(o,f))]:[];const w=f.slice(p.pattern.prefix.length,f.length-p.pattern.suffix.length);return p.substitutions.map(O=>B(O.replace("*",w)))}},"createPathsMatcher"),pe=l(e=>{let t="";for(let i=0;i<e.length;i+=1){const n=e[i],s=n.toUpperCase();t+=n===s?n.toLowerCase():s}return t},"s"),Se=65,We=97,Ve=l(()=>Math.floor(Math.random()*26),"m"),Re=l(e=>Array.from({length:e},()=>String.fromCodePoint(Ve()+(Math.random()>.5?Se:We))).join(""),"S"),Je=l((e=Oe)=>{const t=process.execPath;if(e.existsSync(t))return!e.existsSync(pe(t));const i=`/${Re(10)}`;e.writeFileSync(i,"");const n=!e.existsSync(pe(i));return e.unlinkSync(i),n},"l"),{join:S}=a.posix,Z={ts:[".ts",".tsx",".d.ts"],cts:[".cts",".d.cts"],mts:[".mts",".d.mts"]},Me=l(e=>{const t=[...Z.ts],i=[...Z.cts],n=[...Z.mts];return e!=null&&e.allowJs&&(t.push(".js",".jsx"),i.push(".cjs"),n.push(".mjs")),[...t,...i,...n]},"getSupportedExtensions"),Ge=l(e=>{const t=[];if(!e)return t;const{outDir:i,declarationDir:n}=e;return i&&t.push(i),n&&t.push(n),t},"getDefaultExcludeSpec"),ae=l(e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),"escapeForRegexp"),ze=["node_modules","bower_components","jspm_packages"],q=`(?!(${ze.join("|")})(/|$))`,Qe=/(?:^|\/)[^.*?]+$/,ge="**/*",W="[^/]",K="[^./]",me=process.platform==="win32",He=l(({config:e,path:t},i=Je())=>{if("extends"in e)throw new Error("tsconfig#extends must be resolved. Use getTsconfig or parseTsconfig to resolve it.");if(!a.isAbsolute(t))throw new Error("The tsconfig path must be absolute");me&&(t=B(t));const n=a.dirname(t),{files:s,include:o,exclude:r,compilerOptions:f}=e,u=s==null?void 0:s.map(b=>S(n,b)),p=Me(f),v=i?"":"i",O=(r||Ge(f)).map(b=>{const $=S(n,b),U=ae($).replaceAll(String.raw`\*\*/`,"(.+/)?").replaceAll(String.raw`\*`,`${W}*`).replaceAll(String.raw`\?`,W);return new RegExp(`^${U}($|/)`,v)}),T=s||o?o:[ge],A=T?T.map(b=>{let $=S(n,b);Qe.test($)&&($=S($,ge));const U=ae($).replaceAll(String.raw`/\*\*`,`(/${q}${K}${W}*)*?`).replaceAll(/(\/)?\\\*/g,(E,c)=>{const m=`(${K}|(\\.(?!min\\.js$))?)*`;return c?`/${q}${K}${m}`:m}).replaceAll(/(\/)?\\\?/g,(E,c)=>{const m=W;return c?`/${q}${m}`:m});return new RegExp(`^${U}$`,v)}):void 0;return b=>{if(!a.isAbsolute(b))throw new Error("filePath must be absolute");if(me&&(b=B(b)),u!=null&&u.includes(b))return e;if(!(!p.some($=>b.endsWith($))||O.some($=>$.test(b)))&&A&&A.some($=>$.test(b)))return e}},"createFilesMatcher");export{He as createFilesMatcher,Ie as createPathsMatcher,Ne as getTsconfig,fe as parseTsconfig};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-tsconfig",
3
- "version": "4.8.1",
3
+ "version": "4.9.0",
4
4
  "description": "Find and parse the tsconfig.json file from a directory path",
5
5
  "keywords": [
6
6
  "get-tsconfig",