UNPKG

@stacksjs/dtsx

Version:

A modern, fast .d.ts generation tool, powered by Bun.

13 lines (12 loc) 10.3 kB
// @bun import{yf as f,zf as D}from"./chunk-p0p65mbf.js";var L=D((l,P)=>{P.exports={name:"typescript",version:"7.0.2",license:"Apache-2.0",author:"Microsoft Corp.",homepage:"https://www.typescriptlang.org/",description:"TypeScript is a language for application scale JavaScript development",keywords:["TypeScript","Microsoft","compiler","language","javascript"],bugs:{url:"https://github.com/microsoft/TypeScript/issues"},repository:{type:"git",url:"https://github.com/microsoft/TypeScript.git"},type:"module",preferUnplugged:!0,engines:{node:">=16.20.0"},files:["bin","lib","dist","vendor","NOTICE.txt"],bin:{tsc:"./bin/tsc"},exports:{"./package.json":"./package.json",".":"./lib/version.cjs","./unstable/sync":"./dist/api/sync/api.js","./unstable/async":"./dist/api/async/api.js","./unstable/fs":"./dist/api/fs.js","./unstable/proto":"./dist/api/proto.js","./unstable/ast":"./dist/ast/index.js","./unstable/ast/is":"./dist/ast/is.js","./unstable/ast/factory":"./dist/ast/factory.generated.js","./unstable/ast/utils":"./dist/ast/utils.js","./unstable/ast/scanner":"./dist/ast/scanner.js","./unstable/ast/visitor":"./dist/ast/visitor.js","./unstable/ast/clone":"./dist/ast/clone.js"},imports:{"#getExePath":"./lib/getExePath.js","#enums/*":{types:"./dist/enums/*.enum.d.ts",default:"./dist/enums/*.js"},"#vscode-jsonrpc/node":"./vendor/vscode-jsonrpc/lib/node/main.js"},gitHead:"2bd066d87f5bafd315be9f40889d0a60b9e58e0b",publishConfig:{access:"public",tag:"latest"},optionalDependencies:{"@typescript/typescript-win32-x64":"7.0.2","@typescript/typescript-win32-arm64":"7.0.2","@typescript/typescript-linux-x64":"7.0.2","@typescript/typescript-linux-arm":"7.0.2","@typescript/typescript-linux-arm64":"7.0.2","@typescript/typescript-darwin-x64":"7.0.2","@typescript/typescript-darwin-arm64":"7.0.2","@typescript/typescript-aix-ppc64":"7.0.2","@typescript/typescript-freebsd-arm64":"7.0.2","@typescript/typescript-freebsd-x64":"7.0.2","@typescript/typescript-linux-loong64":"7.0.2","@typescript/typescript-linux-mips64el":"7.0.2","@typescript/typescript-linux-ppc64":"7.0.2","@typescript/typescript-linux-riscv64":"7.0.2","@typescript/typescript-linux-s390x":"7.0.2","@typescript/typescript-netbsd-arm64":"7.0.2","@typescript/typescript-netbsd-x64":"7.0.2","@typescript/typescript-openbsd-arm64":"7.0.2","@typescript/typescript-openbsd-x64":"7.0.2","@typescript/typescript-sunos-x64":"7.0.2"}}});var S=D((h)=>{var{version:F}=L();h.version=F;h.versionMajorMinor="7.0"});var x=f(S(),1);import{dirname as a,resolve as t}from"path";function X(b,p){let j=x.default.readConfigFile(b,x.default.sys.readFile);if(j.error)throw Error(`Error reading tsconfig.json: ${_(j.error)}`);let w=x.default.parseJsonConfigFileContent(j.config,x.default.sys,a(b));if(w.errors.length>0){let v=w.errors.map(_).join(` `);throw Error(`Error parsing tsconfig.json: ${v}`)}return{...w.options,...p}}function _(b){if(b.file&&b.start!==void 0){let{line:p,character:j}=b.file.getLineAndCharacterOfPosition(b.start),w=x.default.flattenDiagnosticMessageText(b.messageText,` `);return`${b.file.fileName}(${p+1},${j+1}): ${w}`}return x.default.flattenDiagnosticMessageText(b.messageText,` `)}function z(b){switch(b){case x.default.DiagnosticCategory.Error:return"error";case x.default.DiagnosticCategory.Warning:return"warning";case x.default.DiagnosticCategory.Suggestion:return"hint";case x.default.DiagnosticCategory.Message:default:return"info"}}function E(b){switch(b){case x.default.DiagnosticCategory.Error:return"Error";case x.default.DiagnosticCategory.Warning:return"Warning";case x.default.DiagnosticCategory.Suggestion:return"Suggestion";case x.default.DiagnosticCategory.Message:return"Message";default:return"Unknown"}}var O=new WeakMap;function d(b){let p=x.default.flattenDiagnosticMessageText(b.messageText,` `);if(b.file&&b.start!==void 0){let{line:j,character:w}=b.file.getLineAndCharacterOfPosition(b.start),v=b.file,H;if(b.length){let M=j,q=b.start+b.length,{line:B}=v.getLineAndCharacterOfPosition(q),G=O.get(v);if(!G)G=v.text.split(` `),O.set(v,G);let J=Math.max(0,M-1),y=Math.min(G.length,B+2);H=G.slice(J,y).join(` `)}return{file:v.fileName,line:j+1,column:w+1,message:p,code:b.code,severity:z(b.category),source:H,category:E(b.category)}}return{file:"<unknown>",line:0,column:0,message:p,code:b.code,severity:z(b.category),category:E(b.category)}}function W(b,p){let j=x.default.createCompilerHost(p);return x.default.createProgram(b,p,j)}async function T(b,p={}){let j=Date.now(),w;if(p.tsconfigPath)w=X(p.tsconfigPath,p.compilerOptions);else w={target:x.default.ScriptTarget.ESNext,module:x.default.ModuleKind.ESNext,moduleResolution:x.default.ModuleResolutionKind.Bundler,strict:p.strict??!0,skipLibCheck:p.skipLibCheck??!0,noEmit:!0,declaration:!0,...p.compilerOptions};let v=b;if(p.declarationsOnly)v=b.filter((y)=>y.endsWith(".d.ts"));if(p.include?.length){let y=p.include.map((I)=>new RegExp(I.replace(/\*/g,".*")));v=v.filter((I)=>y.some((U)=>U.test(I)))}if(p.exclude?.length){let y=p.exclude.map((I)=>new RegExp(I.replace(/\*/g,".*")));v=v.filter((I)=>!y.some((U)=>U.test(I)))}let H=W(v,w),q=[...H.getConfigFileParsingDiagnostics(),...H.getSyntacticDiagnostics(),...H.getSemanticDiagnostics(),...H.getDeclarationDiagnostics()].map(d);if(p.maxErrors&&q.length>p.maxErrors)q=q.slice(0,p.maxErrors);let B=q.filter((y)=>y.severity==="error").length,G=q.filter((y)=>y.severity==="warning").length,J=q.filter((y)=>y.severity==="info"||y.severity==="hint").length;if(p.warningsAsErrors)q=q.map((y)=>y.severity==="warning"?{...y,severity:"error"}:y),B+=G;return{success:B===0,diagnostics:q,errorCount:B,warningCount:p.warningsAsErrors?0:G,infoCount:J,filesChecked:v,durationMs:Date.now()-j}}async function s(b,p={}){return T(b,{...p,declarationsOnly:!0,skipLibCheck:!0,compilerOptions:{...p.compilerOptions,noEmit:!0,declaration:!1}})}async function n(b,p){let j=new Map,v={...p?X(p):{target:x.default.ScriptTarget.ESNext,module:x.default.ModuleKind.ESNext,moduleResolution:x.default.ModuleResolutionKind.Bundler},isolatedDeclarations:!0,declaration:!0,noEmit:!0},H=W(b,v);for(let M of b){let q=H.getSourceFile(M);if(!q){j.set(M,{compatible:!0,issues:[]});continue}let B=[],J=[...H.getSyntacticDiagnostics(q),...H.getSemanticDiagnostics(q)].filter((y)=>y.code>=9006&&y.code<=9099);for(let y of J)if(y.start!==void 0){let{line:I,character:U}=q.getLineAndCharacterOfPosition(y.start),K=x.default.flattenDiagnosticMessageText(y.messageText,` `),Q;if(K.includes("return type"))Q="return";else if(K.includes("parameter"))Q="parameter";else if(K.includes("variable"))Q="variable";else if(K.includes("property"))Q="property";B.push({line:I+1,column:U+1,message:K,missingAnnotation:Q})}j.set(M,{compatible:B.length===0,issues:B})}return j}function e(b,p,j,w){try{let I=function(Q){if(J>=Q.getStart()&&J<Q.getEnd())return x.default.forEachChild(Q,I)||Q;return},v=w?X(w):{target:x.default.ScriptTarget.ESNext,module:x.default.ModuleKind.ESNext,moduleResolution:x.default.ModuleResolutionKind.Bundler},H=W([b],v),M=H.getSourceFile(b);if(!M)return null;let q=M.getLineStarts().length;if(p<1||p>q)return null;let B=M.getLineStarts()[p-1],G=p<q?M.getLineStarts()[p]:M.text.length;if(j<1||j>G-B)return null;let J=M.getPositionOfLineAndCharacter(p-1,j-1),y=H.getTypeChecker(),U=I(M);if(!U)return null;let K=y.getTypeAtLocation(U);return y.typeToString(K)}catch{return null}}function i(b,p,j,w){try{let I=function(R){if(J>=R.getStart()&&J<R.getEnd())return x.default.forEachChild(R,I)||R;return},v=w?X(w):{target:x.default.ScriptTarget.ESNext,module:x.default.ModuleKind.ESNext,moduleResolution:x.default.ModuleResolutionKind.Bundler},H=W([b],v),M=H.getSourceFile(b);if(!M)return null;let q=M.getLineStarts().length;if(p<1||p>q)return null;let B=M.getLineStarts()[p-1],G=p<q?M.getLineStarts()[p]:M.text.length;if(j<1||j>G-B)return null;let J=M.getPositionOfLineAndCharacter(p-1,j-1),y=H.getTypeChecker(),U=I(M);if(!U)return null;let K=y.getSymbolAtLocation(U);if(!K){let R=y.getTypeAtLocation(U);return{type:y.typeToString(R)}}let Q=y.typeToString(y.getTypeOfSymbolAtLocation(K,U)),Y=x.default.displayPartsToString(K.getDocumentationComment(y));return{type:Q,documentation:Y||void 0}}catch{return null}}function o(b){let p=[];if(b.success)p.push(`\u2713 Type check passed (${b.filesChecked.length} files checked in ${b.durationMs}ms)`);else{p.push("\u2717 Type check failed"),p.push(` ${b.errorCount} error(s), ${b.warningCount} warning(s)`),p.push("");for(let j of b.diagnostics){let w=j.severity==="error"?"\u2717":j.severity==="warning"?"\u26A0":"\u2139";if(p.push(`${w} ${j.file}:${j.line}:${j.column}`),p.push(` ${j.message}`),j.source){let v=j.source.split(` `);for(let H of v)p.push(` \u2502 ${H}`)}if(j.suggestion)p.push(` \uD83D\uDCA1 ${j.suggestion}`);p.push("")}}return p.join(` `)}async function pp(b){let p=b.entrypoints.map((j)=>t(b.cwd,j));return T(p,{tsconfigPath:b.tsconfigPath,rootDir:b.root})}async function bp(b,p,j){let w=b,v=p,H=j,M=[],q=H?X(H):{target:x.default.ScriptTarget.ESNext,module:x.default.ModuleKind.ESNext,moduleResolution:x.default.ModuleResolutionKind.Bundler},B=W(w,q),G=W(v,{...q,declaration:!1}),J=B.getTypeChecker(),y=G.getTypeChecker();for(let I=0;I<w.length;I++){let U=B.getSourceFile(w[I]),K=G.getSourceFile(v[I]);if(!U||!K)continue;let Q=J.getSymbolAtLocation(U),Y=y.getSymbolAtLocation(K);if(!Q||!Y)continue;let R=J.getExportsOfModule(Q),k=y.getExportsOfModule(Y),C=new Map(k.map((V)=>[V.getName(),V]));for(let V of R){let Z=V.getName(),N=C.get(Z);if(!N){M.push({sourceName:Z,sourceType:J.typeToString(J.getTypeOfSymbolAtLocation(V,U)),dtsType:"<missing>"});continue}let $=J.typeToString(J.getTypeOfSymbolAtLocation(V,U)),A=y.typeToString(y.getTypeOfSymbolAtLocation(N,K));if($!==A&&!r($,A))M.push({sourceName:Z,sourceType:$,dtsType:A})}}return{valid:M.length===0,mismatches:M}}function r(b,p){let j=(H)=>H.replace(/\s+/g," ").replace(/\s*([<>,{}()[\]:;])\s*/g,"$1").trim(),w=j(b),v=j(p);if(w===v)return!0;if(v==="any")return!0;if(w.startsWith("Promise<")&&v.startsWith("PromiseLike<"))return!0;return!1}export{bp as validateGeneratedDeclarations,s as validateDeclarations,pp as typeCheckWithConfig,T as typeCheck,X as loadCompilerOptions,e as getTypeAtPosition,i as getQuickInfo,o as formatTypeCheckResults,n as checkIsolatedDeclarations};