svelte-typecheck 0.1.12 → 0.1.13
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/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{SERVE,wantsDaemon,runArguments,runThroughDaemon,daemonCommand}from"./shared-vv8rd0yb.js";var argv=process.argv.slice(2),command=argv.length===1?argv[0]:void 0,here=async(args)=>(await import("./shared-
|
|
2
|
+
import{SERVE,wantsDaemon,runArguments,runThroughDaemon,daemonCommand}from"./shared-vv8rd0yb.js";var argv=process.argv.slice(2),command=argv.length===1?argv[0]:void 0,here=async(args)=>(await import("./shared-xtb6nyjw.js")).main(args);if(argv[0]===SERVE)process.exitCode=await here(argv);else if(command==="start"||command==="stop"||command==="status")process.exitCode=await daemonCommand(command);else if(wantsDaemon(argv)){let args=runArguments(argv);process.exitCode=await runThroughDaemon(args,()=>here(args))}else process.exitCode=await here(argv);
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{typecheck2,watch2,createBaseline2,applyBaseline2}from"./shared-
|
|
1
|
+
import{typecheck2,watch2,createBaseline2,applyBaseline2}from"./shared-kjtkvz39.js";import{compilerDiagnostics2}from"./shared-sc5b13y9.js";export{applyBaseline2 as applyBaseline,compilerDiagnostics2 as compilerDiagnostics,createBaseline2 as createBaseline,typecheck2 as typecheck,watch2 as watch};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-typecheck",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A drop-in svelte-check replacement that checks with tsc, tsgo, tsrs or bun check. Up to 11x faster, zero dependencies.",
|
|
6
6
|
"author": "Eric Liu (https://github.com/metonym)",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{version2,package_default}from"./shared-kjtkvz39.js";export{package_default as default,version2 as version};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{lexComponent2,lexImportsExports,createLocator,svelteDirOf,compileAll,compileOffThread,compileKey,compileFilesOffThread,withEdits}from"./shared-sc5b13y9.js";import{configFingerprint}from"./shared-08kjv74r.js";import{spawn}from"node:child_process";import{createHash}from"node:crypto";import{existsSync as existsSync3,readFileSync as readFileSync3,statSync}from"node:fs";import{mkdir,readdir,readFile,rename,rm,writeFile}from"node:fs/promises";import{createRequire as createRequire2}from"node:module";import{basename as basename2,dirname as dirname3,join as join4,relative as relative2,resolve as resolve2,sep as sep2}from"node:path";var version2="0.1.12",package_default={version:version2};import{existsSync,readFileSync}from"node:fs";import{delimiter,dirname,join}from"node:path";import{pathToFileURL}from"node:url";var CHECKERS=["tsc","tsgo","tsrs","bun"],PACKAGES={tsc:[["typescript","tsc"]],tsgo:[["@typescript/native","tsc",7],["@typescript/native-preview","tsgo"],["typescript","tsc",7]],tsrs:[["tsrs","tsrs"]]},NODE_SHEBANG=/^#!.*\bnode\b/,WINDOWS_SHIM=/\.(cmd|bat)$/i;function onPath(name,platform=process.platform){let extensions=platform==="win32"?(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean).flatMap((ext)=>[ext.toLowerCase(),ext]):[""];for(let dir of(process.env.PATH??"").split(delimiter)){if(!dir)continue;for(let ext of extensions){let candidate=join(dir,name+ext);if(existsSync(candidate))return candidate}}return}function packageDir(name,cwd){for(let dir=cwd;;dir=dirname(dir)){let candidate=join(dir,"node_modules",name);if(existsSync(join(candidate,"package.json")))return candidate;if(dirname(dir)===dir)return}}function checkerCommand(checker,cwd){if(checker==="bun"){let bun=process.versions.bun?process.execPath:onPath("bun");return bun?{command:bun,prefix:[],version:process.versions.bun}:void 0}for(let[name,bin,major]of PACKAGES[checker]){let dir=packageDir(name,cwd);if(!dir)continue;let pkg=JSON.parse(readFileSync(join(dir,"package.json"),"utf-8"));if(major!==void 0&&!(Number.parseInt(pkg.version??"")>=major))continue;let relative=typeof pkg.bin==="string"?pkg.bin:pkg.bin?.[bin];if(!relative)continue;let path=join(dir,relative),head=readFileSync(path,"utf-8").slice(0,100);return NODE_SHEBANG.test(head)?{command:process.execPath,prefix:[path],version:pkg.version}:{command:path,prefix:[],version:pkg.version}}let found=onPath(checker);if(!found)return;return WINDOWS_SHIM.test(found)?{command:found,prefix:[],shell:!0}:{command:found,prefix:[]}}async function nativeCommand(command){let[launcher,...rest]=command.prefix;if(!launcher||rest.length>0)return command;let lookup=join(dirname(launcher),"..","lib","getExePath.js");if(!existsSync(lookup))return command;try{let{default:getExePath}=await import(pathToFileURL(lookup).href);return{...command,command:getExePath(),prefix:[]}}catch{return command}}function checkerArgs(checker,tsconfig){return checker==="bun"?["check","-p",tsconfig,"--no-pretty","--all"]:["-p",tsconfig,"--pretty","false"]}import{readdirSync}from"node:fs";import{join as join2}from"node:path";var GLOB_LITERAL=/[.+^$()|[\]\\]/g,LEADING_DOT_SLASH=/^\.\//;function globToRegExp(pattern){let source="";for(let i=0;i<pattern.length;i++){let char=pattern[i]??"";if(char==="*"&&pattern[i+1]==="*"){let slash=pattern[i+2]==="/";source+=slash?"(?:.*/)?":".*",i+=slash?2:1}else if(char==="*")source+="[^/]*";else if(char==="?")source+="[^/]";else if(char==="{")source+="(?:";else if(char==="}")source+=")";else if(char===",")source+="|";else source+=char.replace(GLOB_LITERAL,String.raw`\$&`)}return new RegExp(`^${source}$`)}function matcher(globs){if(globs.length===0)return()=>!1;let res=globs.map((pattern)=>globToRegExp(pattern.replace(LEADING_DOT_SLASH,"")));return(path)=>res.some((re)=>re.test(path))}function glob(root,globs){let matches=matcher(globs),dotFolders=globs.some((g)=>g.startsWith(".")||g.includes("/.")),found=[],walk=(dir,prefix)=>{for(let entry of readdirSync(dir,{withFileTypes:!0})){let rel=prefix+entry.name;if(entry.isDirectory()){if(entry.name==="node_modules")continue;if(entry.name.startsWith(".")&&!dotFolders)continue;walk(join2(dir,entry.name),`${rel}/`)}else if(matches(rel))found.push(rel)}};return walk(root,""),found.sort()}import{existsSync as existsSync2,readFileSync as readFileSync2}from"node:fs";import{createRequire}from"node:module";import{basename,dirname as dirname2,isAbsolute,join as join3,relative,resolve,sep}from"node:path";var LINE_COMMENT=/\/\/[^\n]*/g,BLOCK_COMMENT=/\/\*[\s\S]*?\*\//g,TRAILING_COMMA=/,(\s*[}\]])/g,STRING=/"(?:[^"\\]|\\.)*"/g,PLACEHOLDER=/"\0(\d+)"/g,WILDCARD=/[*?{]/,HAS_EXTENSION=/\.[^/\\]+$/,NODE_MODULES_JS=/\/node_modules\/.+\.[cm]?js$/,DEFAULT_EXCLUDE=["node_modules","bower_components","jspm_packages"],CONFIG_DIR="${configDir}";function parseJsonc(text){let strings=[],stripped=text.replace(STRING,(s)=>`"\x00${strings.push(s)-1}"`).replace(LINE_COMMENT,"").replace(BLOCK_COMMENT,"").replace(TRAILING_COMMA,"$1").replaceAll(PLACEHOLDER,(_,i)=>strings[Number(i)]??"");return JSON.parse(stripped)}function readInputs(path,read=[]){read.push(path);let config=parseJsonc(readFileSync2(path,"utf-8")),dir=dirname2(path),absolute=(list)=>list?.map((p)=>resolve(dir,p)),inputs={},bases=typeof config.extends==="string"?[config.extends]:config.extends;for(let base of bases??[]){let basePath=base.startsWith(".")?resolve(dir,base):createRequire(path).resolve(base),baseInputs=readInputs(basePath,read),difference=toPosix(relative(dir,dirname2(basePath))),rebase=(specs)=>specs?.map((spec)=>difference&&!isAbsolute(spec)&&!spec.startsWith(CONFIG_DIR)?`${difference}/${spec}`:spec);inputs={...inputs,...defined({...baseInputs,includeSpecs:rebase(baseInputs.includeSpecs),excludeSpecs:rebase(baseInputs.excludeSpecs)})}}let options=config.compilerOptions,baseUrl=options?.baseUrl?resolve(dir,options.baseUrl):void 0,pathsBase=baseUrl??inputs.baseUrl??dir;return{...inputs,...defined({include:absolute(config.include),exclude:absolute(config.exclude),files:absolute(config.files),rootDirs:absolute(options?.rootDirs),checkJs:options?.checkJs,allowJs:options?.allowJs,skipLibCheck:options?.skipLibCheck,moduleResolution:options?.moduleResolution,includeSpecs:config.include,excludeSpecs:config.exclude,outDir:options?.outDir&&resolve(dir,options.outDir),declarationDir:options?.declarationDir&&resolve(dir,options.declarationDir),baseUrl,paths:options?.paths&&Object.fromEntries(Object.entries(options.paths).map(([key,targets])=>[key,targets.map((t)=>resolve(pathsBase,t))]))})}}function defined(inputs){return Object.fromEntries(Object.entries(inputs).filter(([,value])=>value!==void 0))}function findUp(from,name){for(let dir=from;;dir=dirname2(dir)){let path=join3(dir,name);if(existsSync2(path))return path;if(dirname2(dir)===dir)return}}function findTsconfig(dir){let ts=findUp(dir,"tsconfig.json"),js=findUp(dir,"jsconfig.json");return ts&&(!js||ts.length>=js.length)?ts:js}var toPosix=(path)=>path.split(sep).join("/"),asTypeScriptPath=(path)=>toPosix(path).replace(/^[A-Z]:/,(drive)=>drive.toLowerCase());function splitGlob(pattern){let parts=toPosix(pattern).split("/"),at=parts.findIndex((part)=>WILDCARD.test(part));if(at===-1)return[pattern,""];return[parts.slice(0,at).join("/")||"/",parts.slice(at).join("/")]}function svelteGlobOf(pattern){if(pattern.endsWith(".svelte"))return pattern;if(WILDCARD.test(pattern))return pattern.endsWith("*")?`${pattern.slice(0,-1)}*.svelte`:void 0;return HAS_EXTENSION.test(pattern)?void 0:`${pattern}/**/*.svelte`}function absoluteMatcher(patterns){let globs=patterns.flatMap((p)=>{let posix=toPosix(p);return WILDCARD.test(posix)?[posix]:[posix,`${posix}/**`]}),matches=matcher(globs.map((g)=>g.replace(/^\//,"")));return(path)=>matches(toPosix(path).replace(/^\//,""))}function projectOf(options){let{workspace}=options,tsconfig=tsconfigOf(workspace,options.tsconfig);if(options.tsconfig&&tsconfig&&!existsSync2(tsconfig))throw Error(`Could not find tsconfig/jsconfig file at ${tsconfig}`);if(!tsconfig){let isIgnored=ignoreMatcher(options.ignore??[]);return{components:glob(workspace,options.components??["**/*.svelte"]).filter((rel)=>!isIgnored(rel)).map((rel)=>join3(workspace,rel)),files:[],include:[],exclude:[],rootDirs:[],configFiles:[],paths:{},checkJs:!0,allowJs:!0,skipLibCheck:!0,selfExports:{},raw:{},reports:()=>!1}}let configFiles=[],inputs=readInputs(tsconfig,configFiles),raw=parseJsonc(readFileSync2(tsconfig,"utf-8")),include=inputs.include??(inputs.files?[]:[join3(dirname2(tsconfig),"**/*")]),exclude=inputs.exclude??DEFAULT_EXCLUDE.map((p)=>join3(dirname2(tsconfig),p)),files=new Set(inputs.files??[]),isExcluded=absoluteMatcher(exclude),components;if(options.components)components=glob(workspace,options.components).map((rel)=>join3(workspace,rel));else{let found=new Set([...files].filter((f)=>f.endsWith(".svelte")));for(let pattern of include){let svelteGlob=svelteGlobOf(pattern);if(!svelteGlob)continue;let[base,rest]=splitGlob(svelteGlob);if(!rest){if(existsSync2(base))found.add(base);continue}if(!existsSync2(base))continue;for(let rel of glob(base,[rest]))found.add(join3(base,rel))}components=[...found].sort()}return components=components.filter((path)=>!isExcluded(path)),{tsconfig,components,files:inputs.files??[],include,exclude,rootDirs:inputs.rootDirs??[],configFiles,paths:{...importsOf(dirname2(tsconfig)),...inputs.paths},checkJs:inputs.checkJs??!1,allowJs:inputs.allowJs??basename(tsconfig)==="jsconfig.json",skipLibCheck:inputs.skipLibCheck??!1,selfExports:LEGACY_RESOLUTION.test(inputs.moduleResolution??"")?{}:exportsOf(dirname2(tsconfig)),raw,inputSpecs:inputs.files||raw.references?void 0:{include:inputs.includeSpecs??["**/*"],exclude:inputs.excludeSpecs??[inputs.outDir,inputs.declarationDir].flatMap((dir)=>dir?[asTypeScriptPath(dir)]:[])},reports:(path)=>!NODE_MODULES_JS.test(toPosix(path))}}function importsOf(dir){let path=findUp(dir,"package.json");if(!path)return{};let imports;try{({imports}=JSON.parse(readFileSync2(path,"utf-8")))}catch{return{}}let paths={};for(let[key,value]of Object.entries(imports??{})){let target=importTarget(value);if(key.startsWith("#")&&target?.startsWith("./"))paths[key]=[resolve(dirname2(path),target)]}return paths}function exportsOf(dir){let path=findUp(dir,"package.json");if(!path)return{};let name,exports;try{({name,exports}=JSON.parse(readFileSync2(path,"utf-8")))}catch{return{}}if(typeof name!=="string"||exports==null)return{};let subpaths=typeof exports==="object"&&!Array.isArray(exports)&&Object.keys(exports).some((key)=>key.startsWith("."))?exports:{".":exports},paths={};for(let[key,value]of Object.entries(subpaths)){if(!key.startsWith("."))continue;let targets=exportTargets(value).filter((target)=>target.startsWith("./")).map((target)=>resolve(dirname2(path),target));if(targets.length>0)paths[key==="."?name:`${name}/${key.slice(2)}`]=targets}return paths}function exportTargets(value){if(typeof value==="string")return[value];if(Array.isArray(value))return value.flatMap(exportTargets);if(!value||typeof value!=="object")return[];return Object.entries(value).flatMap(([condition,target])=>EXPORT_CONDITIONS.has(condition)?exportTargets(target):[])}var EXPORT_CONDITIONS=new Set(["types","import","default"]),LEGACY_RESOLUTION=/^(node|node10|classic)$/i;function importTarget(value){if(typeof value==="string")return value;if(Array.isArray(value))return importTarget(value[0]);if(!value||typeof value!=="object")return;let conditions=value;for(let condition of["types","import","default"])if(condition in conditions)return importTarget(conditions[condition]);return importTarget(Object.values(conditions)[0])}var PROGRAM_FILE=/\.(svelte|[cm]?[jt]sx?)$/,JS_FILE=/\.[cm]?jsx?$/;function byFolder(a,b){let pa=a.split(sep),pb=b.split(sep);for(let i=0;i<Math.min(pa.length,pb.length);i++){if(pa[i]===pb[i])continue;let aFile=i===pa.length-1,bFile=i===pb.length-1;if(aFile!==bFile)return aFile?-1:1;return(pa[i]??"")<(pb[i]??"")?-1:1}return pa.length-pb.length}function programFiles(project){let isExcluded=absoluteMatcher(project.exclude),found=new Set(project.files);for(let pattern of project.include){let fileGlob=WILDCARD.test(pattern)||HAS_EXTENSION.test(pattern)?pattern:`${pattern}/**/*`,[base,rest]=splitGlob(fileGlob);if(!rest){if(existsSync2(base)&&PROGRAM_FILE.test(base)&&(project.allowJs||!JS_FILE.test(base)))found.add(base);continue}if(!existsSync2(base))continue;let matched=glob(base,[rest]).map((rel)=>join3(base,rel)).filter((path)=>PROGRAM_FILE.test(path)&&(project.allowJs||!JS_FILE.test(path))&&!isExcluded(path)).sort(byFolder);for(let path of matched)found.add(path)}return[...found]}function scriptsOf(project,test){let isExcluded=absoluteMatcher(project.exclude),found=new Set;for(let pattern of project.include){let scriptGlob=WILDCARD.test(pattern)||HAS_EXTENSION.test(pattern)?pattern:`${pattern}/**/*`,[base,rest]=splitGlob(scriptGlob);if(!rest){if(existsSync2(base)&&test(base))found.add(base);continue}if(!existsSync2(base))continue;for(let rel of glob(base,[rest])){let path=join3(base,rel);if(test(path)&&!isExcluded(path))found.add(path)}}return[...found].sort()}function relativeTo(from,path){let rel=toPosix(relative(from,path));return rel.startsWith(".")||isAbsolute(rel)?rel:`./${rel}`}function ignoreMatcher(patterns){let tests=patterns.map((raw)=>{let pattern=raw.trim();if(pattern.endsWith("**"))pattern=pattern.slice(0,-2);if(pattern.startsWith("**")){let rest=pattern.slice(2);if(rest.includes("*"))throw Error(INVALID_IGNORE);return(path)=>path.includes(rest)}if(pattern.includes("*"))throw Error(INVALID_IGNORE);return(path)=>path.startsWith(pattern)});return(path)=>tests.some((test)=>test(path))}var INVALID_IGNORE="Invalid --ignore pattern: only ** at the start or end is supported";function tsconfigOf(workspace,option){if(option===!1)return;if(option)return resolve(workspace,option);return findTsconfig(workspace)}var SHIMS={"shims.d.ts":`type SvelteStore<T> = {
|
|
1
|
+
import{lexComponent2,lexImportsExports,createLocator,svelteDirOf,compileAll,compileOffThread,compileKey,compileFilesOffThread,withEdits}from"./shared-sc5b13y9.js";import{configFingerprint}from"./shared-08kjv74r.js";import{spawn}from"node:child_process";import{createHash}from"node:crypto";import{existsSync as existsSync3,readFileSync as readFileSync3,statSync}from"node:fs";import{mkdir,readdir,readFile,rename,rm,writeFile}from"node:fs/promises";import{createRequire as createRequire2}from"node:module";import{basename as basename2,dirname as dirname3,join as join4,relative as relative2,resolve as resolve2,sep as sep2}from"node:path";var version2="0.1.13",package_default={version:version2};import{existsSync,readFileSync}from"node:fs";import{delimiter,dirname,join}from"node:path";import{pathToFileURL}from"node:url";var CHECKERS=["tsc","tsgo","tsrs","bun"],PACKAGES={tsc:[["typescript","tsc"]],tsgo:[["@typescript/native","tsc",7],["@typescript/native-preview","tsgo"],["typescript","tsc",7]],tsrs:[["tsrs","tsrs"]]},NODE_SHEBANG=/^#!.*\bnode\b/,WINDOWS_SHIM=/\.(cmd|bat)$/i;function onPath(name,platform=process.platform){let extensions=platform==="win32"?(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean).flatMap((ext)=>[ext.toLowerCase(),ext]):[""];for(let dir of(process.env.PATH??"").split(delimiter)){if(!dir)continue;for(let ext of extensions){let candidate=join(dir,name+ext);if(existsSync(candidate))return candidate}}return}function packageDir(name,cwd){for(let dir=cwd;;dir=dirname(dir)){let candidate=join(dir,"node_modules",name);if(existsSync(join(candidate,"package.json")))return candidate;if(dirname(dir)===dir)return}}function checkerCommand(checker,cwd){if(checker==="bun"){let bun=process.versions.bun?process.execPath:onPath("bun");return bun?{command:bun,prefix:[],version:process.versions.bun}:void 0}for(let[name,bin,major]of PACKAGES[checker]){let dir=packageDir(name,cwd);if(!dir)continue;let pkg=JSON.parse(readFileSync(join(dir,"package.json"),"utf-8"));if(major!==void 0&&!(Number.parseInt(pkg.version??"")>=major))continue;let relative=typeof pkg.bin==="string"?pkg.bin:pkg.bin?.[bin];if(!relative)continue;let path=join(dir,relative),head=readFileSync(path,"utf-8").slice(0,100);return NODE_SHEBANG.test(head)?{command:process.execPath,prefix:[path],version:pkg.version}:{command:path,prefix:[],version:pkg.version}}let found=onPath(checker);if(!found)return;return WINDOWS_SHIM.test(found)?{command:found,prefix:[],shell:!0}:{command:found,prefix:[]}}async function nativeCommand(command){let[launcher,...rest]=command.prefix;if(!launcher||rest.length>0)return command;let lookup=join(dirname(launcher),"..","lib","getExePath.js");if(!existsSync(lookup))return command;try{let{default:getExePath}=await import(pathToFileURL(lookup).href);return{...command,command:getExePath(),prefix:[]}}catch{return command}}function checkerArgs(checker,tsconfig){return checker==="bun"?["check","-p",tsconfig,"--no-pretty","--all"]:["-p",tsconfig,"--pretty","false"]}import{readdirSync}from"node:fs";import{join as join2}from"node:path";var GLOB_LITERAL=/[.+^$()|[\]\\]/g,LEADING_DOT_SLASH=/^\.\//;function globToRegExp(pattern){let source="";for(let i=0;i<pattern.length;i++){let char=pattern[i]??"";if(char==="*"&&pattern[i+1]==="*"){let slash=pattern[i+2]==="/";source+=slash?"(?:.*/)?":".*",i+=slash?2:1}else if(char==="*")source+="[^/]*";else if(char==="?")source+="[^/]";else if(char==="{")source+="(?:";else if(char==="}")source+=")";else if(char===",")source+="|";else source+=char.replace(GLOB_LITERAL,String.raw`\$&`)}return new RegExp(`^${source}$`)}function matcher(globs){if(globs.length===0)return()=>!1;let res=globs.map((pattern)=>globToRegExp(pattern.replace(LEADING_DOT_SLASH,"")));return(path)=>res.some((re)=>re.test(path))}function glob(root,globs){let matches=matcher(globs),dotFolders=globs.some((g)=>g.startsWith(".")||g.includes("/.")),found=[],walk=(dir,prefix)=>{for(let entry of readdirSync(dir,{withFileTypes:!0})){let rel=prefix+entry.name;if(entry.isDirectory()){if(entry.name==="node_modules")continue;if(entry.name.startsWith(".")&&!dotFolders)continue;walk(join2(dir,entry.name),`${rel}/`)}else if(matches(rel))found.push(rel)}};return walk(root,""),found.sort()}import{existsSync as existsSync2,readFileSync as readFileSync2}from"node:fs";import{createRequire}from"node:module";import{basename,dirname as dirname2,isAbsolute,join as join3,relative,resolve,sep}from"node:path";var LINE_COMMENT=/\/\/[^\n]*/g,BLOCK_COMMENT=/\/\*[\s\S]*?\*\//g,TRAILING_COMMA=/,(\s*[}\]])/g,STRING=/"(?:[^"\\]|\\.)*"/g,PLACEHOLDER=/"\0(\d+)"/g,WILDCARD=/[*?{]/,HAS_EXTENSION=/\.[^/\\]+$/,NODE_MODULES_JS=/\/node_modules\/.+\.[cm]?js$/,DEFAULT_EXCLUDE=["node_modules","bower_components","jspm_packages"],CONFIG_DIR="${configDir}";function parseJsonc(text){let strings=[],stripped=text.replace(STRING,(s)=>`"\x00${strings.push(s)-1}"`).replace(LINE_COMMENT,"").replace(BLOCK_COMMENT,"").replace(TRAILING_COMMA,"$1").replaceAll(PLACEHOLDER,(_,i)=>strings[Number(i)]??"");return JSON.parse(stripped)}function readInputs(path,read=[]){read.push(path);let config=parseJsonc(readFileSync2(path,"utf-8")),dir=dirname2(path),absolute=(list)=>list?.map((p)=>resolve(dir,p)),inputs={},bases=typeof config.extends==="string"?[config.extends]:config.extends;for(let base of bases??[]){let basePath=base.startsWith(".")?resolve(dir,base):createRequire(path).resolve(base),baseInputs=readInputs(basePath,read),difference=toPosix(relative(dir,dirname2(basePath))),rebase=(specs)=>specs?.map((spec)=>difference&&!isAbsolute(spec)&&!spec.startsWith(CONFIG_DIR)?`${difference}/${spec}`:spec);inputs={...inputs,...defined({...baseInputs,includeSpecs:rebase(baseInputs.includeSpecs),excludeSpecs:rebase(baseInputs.excludeSpecs)})}}let options=config.compilerOptions,baseUrl=options?.baseUrl?resolve(dir,options.baseUrl):void 0,pathsBase=baseUrl??inputs.baseUrl??dir;return{...inputs,...defined({include:absolute(config.include),exclude:absolute(config.exclude),files:absolute(config.files),rootDirs:absolute(options?.rootDirs),checkJs:options?.checkJs,allowJs:options?.allowJs,skipLibCheck:options?.skipLibCheck,moduleResolution:options?.moduleResolution,includeSpecs:config.include,excludeSpecs:config.exclude,outDir:options?.outDir&&resolve(dir,options.outDir),declarationDir:options?.declarationDir&&resolve(dir,options.declarationDir),baseUrl,paths:options?.paths&&Object.fromEntries(Object.entries(options.paths).map(([key,targets])=>[key,targets.map((t)=>resolve(pathsBase,t))]))})}}function defined(inputs){return Object.fromEntries(Object.entries(inputs).filter(([,value])=>value!==void 0))}function findUp(from,name){for(let dir=from;;dir=dirname2(dir)){let path=join3(dir,name);if(existsSync2(path))return path;if(dirname2(dir)===dir)return}}function findTsconfig(dir){let ts=findUp(dir,"tsconfig.json"),js=findUp(dir,"jsconfig.json");return ts&&(!js||ts.length>=js.length)?ts:js}var toPosix=(path)=>path.split(sep).join("/"),asTypeScriptPath=(path)=>toPosix(path).replace(/^[A-Z]:/,(drive)=>drive.toLowerCase());function splitGlob(pattern){let parts=toPosix(pattern).split("/"),at=parts.findIndex((part)=>WILDCARD.test(part));if(at===-1)return[pattern,""];return[parts.slice(0,at).join("/")||"/",parts.slice(at).join("/")]}function svelteGlobOf(pattern){if(pattern.endsWith(".svelte"))return pattern;if(WILDCARD.test(pattern))return pattern.endsWith("*")?`${pattern.slice(0,-1)}*.svelte`:void 0;return HAS_EXTENSION.test(pattern)?void 0:`${pattern}/**/*.svelte`}function absoluteMatcher(patterns){let globs=patterns.flatMap((p)=>{let posix=toPosix(p);return WILDCARD.test(posix)?[posix]:[posix,`${posix}/**`]}),matches=matcher(globs.map((g)=>g.replace(/^\//,"")));return(path)=>matches(toPosix(path).replace(/^\//,""))}function projectOf(options){let{workspace}=options,tsconfig=tsconfigOf(workspace,options.tsconfig);if(options.tsconfig&&tsconfig&&!existsSync2(tsconfig))throw Error(`Could not find tsconfig/jsconfig file at ${tsconfig}`);if(!tsconfig){let isIgnored=ignoreMatcher(options.ignore??[]);return{components:glob(workspace,options.components??["**/*.svelte"]).filter((rel)=>!isIgnored(rel)).map((rel)=>join3(workspace,rel)),files:[],include:[],exclude:[],rootDirs:[],configFiles:[],paths:{},checkJs:!0,allowJs:!0,skipLibCheck:!0,selfExports:{},raw:{},reports:()=>!1}}let configFiles=[],inputs=readInputs(tsconfig,configFiles),raw=parseJsonc(readFileSync2(tsconfig,"utf-8")),include=inputs.include??(inputs.files?[]:[join3(dirname2(tsconfig),"**/*")]),exclude=inputs.exclude??DEFAULT_EXCLUDE.map((p)=>join3(dirname2(tsconfig),p)),files=new Set(inputs.files??[]),isExcluded=absoluteMatcher(exclude),components;if(options.components)components=glob(workspace,options.components).map((rel)=>join3(workspace,rel));else{let found=new Set([...files].filter((f)=>f.endsWith(".svelte")));for(let pattern of include){let svelteGlob=svelteGlobOf(pattern);if(!svelteGlob)continue;let[base,rest]=splitGlob(svelteGlob);if(!rest){if(existsSync2(base))found.add(base);continue}if(!existsSync2(base))continue;for(let rel of glob(base,[rest]))found.add(join3(base,rel))}components=[...found].sort()}return components=components.filter((path)=>!isExcluded(path)),{tsconfig,components,files:inputs.files??[],include,exclude,rootDirs:inputs.rootDirs??[],configFiles,paths:{...importsOf(dirname2(tsconfig)),...inputs.paths},checkJs:inputs.checkJs??!1,allowJs:inputs.allowJs??basename(tsconfig)==="jsconfig.json",skipLibCheck:inputs.skipLibCheck??!1,selfExports:LEGACY_RESOLUTION.test(inputs.moduleResolution??"")?{}:exportsOf(dirname2(tsconfig)),raw,inputSpecs:inputs.files||raw.references?void 0:{include:inputs.includeSpecs??["**/*"],exclude:inputs.excludeSpecs??[inputs.outDir,inputs.declarationDir].flatMap((dir)=>dir?[asTypeScriptPath(dir)]:[])},reports:(path)=>!NODE_MODULES_JS.test(toPosix(path))}}function importsOf(dir){let path=findUp(dir,"package.json");if(!path)return{};let imports;try{({imports}=JSON.parse(readFileSync2(path,"utf-8")))}catch{return{}}let paths={};for(let[key,value]of Object.entries(imports??{})){let target=importTarget(value);if(key.startsWith("#")&&target?.startsWith("./"))paths[key]=[resolve(dirname2(path),target)]}return paths}function exportsOf(dir){let path=findUp(dir,"package.json");if(!path)return{};let name,exports;try{({name,exports}=JSON.parse(readFileSync2(path,"utf-8")))}catch{return{}}if(typeof name!=="string"||exports==null)return{};let subpaths=typeof exports==="object"&&!Array.isArray(exports)&&Object.keys(exports).some((key)=>key.startsWith("."))?exports:{".":exports},paths={};for(let[key,value]of Object.entries(subpaths)){if(!key.startsWith("."))continue;let targets=exportTargets(value).filter((target)=>target.startsWith("./")).map((target)=>resolve(dirname2(path),target));if(targets.length>0)paths[key==="."?name:`${name}/${key.slice(2)}`]=targets}return paths}function exportTargets(value){if(typeof value==="string")return[value];if(Array.isArray(value))return value.flatMap(exportTargets);if(!value||typeof value!=="object")return[];return Object.entries(value).flatMap(([condition,target])=>EXPORT_CONDITIONS.has(condition)?exportTargets(target):[])}var EXPORT_CONDITIONS=new Set(["types","import","default"]),LEGACY_RESOLUTION=/^(node|node10|classic)$/i;function importTarget(value){if(typeof value==="string")return value;if(Array.isArray(value))return importTarget(value[0]);if(!value||typeof value!=="object")return;let conditions=value;for(let condition of["types","import","default"])if(condition in conditions)return importTarget(conditions[condition]);return importTarget(Object.values(conditions)[0])}var PROGRAM_FILE=/\.(svelte|[cm]?[jt]sx?)$/,JS_FILE=/\.[cm]?jsx?$/;function byFolder(a,b){let pa=a.split(sep),pb=b.split(sep);for(let i=0;i<Math.min(pa.length,pb.length);i++){if(pa[i]===pb[i])continue;let aFile=i===pa.length-1,bFile=i===pb.length-1;if(aFile!==bFile)return aFile?-1:1;return(pa[i]??"")<(pb[i]??"")?-1:1}return pa.length-pb.length}function programFiles(project){let isExcluded=absoluteMatcher(project.exclude),found=new Set(project.files);for(let pattern of project.include){let fileGlob=WILDCARD.test(pattern)||HAS_EXTENSION.test(pattern)?pattern:`${pattern}/**/*`,[base,rest]=splitGlob(fileGlob);if(!rest){if(existsSync2(base)&&PROGRAM_FILE.test(base)&&(project.allowJs||!JS_FILE.test(base)))found.add(base);continue}if(!existsSync2(base))continue;let matched=glob(base,[rest]).map((rel)=>join3(base,rel)).filter((path)=>PROGRAM_FILE.test(path)&&(project.allowJs||!JS_FILE.test(path))&&!isExcluded(path)).sort(byFolder);for(let path of matched)found.add(path)}return[...found]}function scriptsOf(project,test){let isExcluded=absoluteMatcher(project.exclude),found=new Set;for(let pattern of project.include){let scriptGlob=WILDCARD.test(pattern)||HAS_EXTENSION.test(pattern)?pattern:`${pattern}/**/*`,[base,rest]=splitGlob(scriptGlob);if(!rest){if(existsSync2(base)&&test(base))found.add(base);continue}if(!existsSync2(base))continue;for(let rel of glob(base,[rest])){let path=join3(base,rel);if(test(path)&&!isExcluded(path))found.add(path)}}return[...found].sort()}function relativeTo(from,path){let rel=toPosix(relative(from,path));return rel.startsWith(".")||isAbsolute(rel)?rel:`./${rel}`}function ignoreMatcher(patterns){let tests=patterns.map((raw)=>{let pattern=raw.trim();if(pattern.endsWith("**"))pattern=pattern.slice(0,-2);if(pattern.startsWith("**")){let rest=pattern.slice(2);if(rest.includes("*"))throw Error(INVALID_IGNORE);return(path)=>path.includes(rest)}if(pattern.includes("*"))throw Error(INVALID_IGNORE);return(path)=>path.startsWith(pattern)});return(path)=>tests.some((test)=>test(path))}var INVALID_IGNORE="Invalid --ignore pattern: only ** at the start or end is supported";function tsconfigOf(workspace,option){if(option===!1)return;if(option)return resolve(workspace,option);return findTsconfig(workspace)}var SHIMS={"shims.d.ts":`type SvelteStore<T> = {
|
|
2
2
|
subscribe: (run: (value: T) => any, invalidate?: any) => any;
|
|
3
3
|
};
|
|
4
4
|
type __sveltets_2_SvelteActionReturnType = {
|
|
@@ -238,7 +238,7 @@ K extends keyof HTMLElementTagNameMap
|
|
|
238
238
|
>;
|
|
239
239
|
};
|
|
240
240
|
interface IntrinsicElements extends MappedElements {}
|
|
241
|
-
}`};function shim(file){return SHIMS[file]}var DIAGNOSTIC=/^(.+?)\((\d+),(\d+)\): error (TS\d+): (.*)$/,CONTINUATION=/^\s+\S/,GLOBAL_DIAGNOSTIC=/^error (TS\d+): (.*)$/,TS_MODULE=/\.[cm]?tsx?$/,IDENTIFIER=/^[A-Za-z_$][\w$]*$/,DECLARATION_FILE=/\.d\.[cm]?ts$/,TS_DIRECTIVE=/^\s*\/\/\s*@ts-(ignore|expect-error)\b/,LINE_BREAK=/\r?\n/,JS_FILE2=/\.[cm]?jsx?$/,SYNTAX_CODE=/^TS[18]\d{3}$/,STOPPED=/Stopped before type checking/,TS_SCRIPT=/<script\b[^>]*\blang=["']?(ts|typescript)\b/,GENERATED_NAME=/(?:\+\+)?([^/\\]+?)(?:\.d\.svelte(?:\.ts)?|\.svelte\.[jt]s)$/,DRIVE_PATH=/\b[A-Z]:\//g,toPosix2=(path)=>path.split(sep2).join("/"),escapeRegExp=(text)=>text.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),TYPE_CODE=/^TS[2-7]\d{3}$/,TOKEN=/^(?:[\w$]+|"(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*'|`[^`]*`)/,STORE_ERROR=/^TS(2769|2345)$/,REACTIVE_NOISE=/^TS(7028|2695)$/,CACHE_FORMAT=2,RESULT_CACHE="result.json",EMIT_CACHE="emit-cache.json",COMPILE_CACHE="compile-cache.json",hash=(text)=>createHash("sha1").update(text).digest("hex"),TOOL_KEY=import.meta.url.endsWith(".ts")?hash(glob(import.meta.dirname,["**/*.ts"]).map((rel)=>readFileSync3(join4(import.meta.dirname,rel),"utf-8")).join("\x00")):version2,OFF_THREAD_AT=16,MANIFEST="manifest.json",DEFAULT_COMPILER_OPTIONS={allowJs:!0,noEmit:!0,declaration:!1,skipLibCheck:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,target:"esnext",module:"esnext",moduleResolution:"bundler"};class EmitError extends Error{}var SHELL_SPECIAL=/[\s"&|<>^()%!]/,quote=(arg)=>SHELL_SPECIAL.test(arg)?`"${arg.replaceAll('"','""')}"`:arg;function run(command,args,cwd,shell=!1){return new Promise((done,fail)=>{let env={...process.env,PWD:cwd},child=shell?spawn(quote(command),args.map(quote),{cwd,env,shell:!0}):spawn(command,args,{cwd,env}),output="";child.stdout.on("data",(chunk)=>{output+=chunk}),child.stderr.on("data",(chunk)=>{output+=chunk}),child.on("error",fail),child.on("close",()=>done(output))})}function parseDiagnostics(text){let found=[],continues=!1;for(let line of text.split(LINE_BREAK)){let m=DIAGNOSTIC.exec(line),global=m?null:GLOBAL_DIAGNOSTIC.exec(line);if(m)found.push({file:m[1]??"",line:Number(m[2]),column:Number(m[3]),code:m[4]??"",message:m[5]??""});else if(global)found.push({file:"",line:1,column:1,code:global[1]??"",message:global[2]??""});else if(continues&&CONTINUATION.test(line)){let last=found.at(-1);if(last)last.message+=`
|
|
241
|
+
}`};function shim(file){return SHIMS[file]}var DIAGNOSTIC=/^(.+?)\((\d+),(\d+)\): error (TS\d+): (.*)$/,CONTINUATION=/^\s+\S/,GLOBAL_DIAGNOSTIC=/^error (TS\d+): (.*)$/,TS_MODULE=/\.[cm]?tsx?$/,IDENTIFIER=/^[A-Za-z_$][\w$]*$/,DECLARATION_FILE=/\.d\.[cm]?ts$/,TS_DIRECTIVE=/^\s*\/\/\s*@ts-(ignore|expect-error)\b/,LINE_BREAK=/\r?\n/,JS_FILE2=/\.[cm]?jsx?$/,SYNTAX_CODE=/^TS[18]\d{3}$/,STOPPED=/Stopped before type checking/,TS_SCRIPT=/<script\b[^>]*\blang=["']?(ts|typescript)\b/,GENERATED_NAME=/(?:\+\+)?([^/\\]+?)(?:\.d\.svelte(?:\.ts)?|\.svelte\.[jt]s)$/,DRIVE_PATH=/\b[A-Z]:\//g,toPosix2=(path)=>path.split(sep2).join("/"),escapeRegExp=(text)=>text.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),TYPE_CODE=/^TS[2-7]\d{3}$/,TOKEN=/^(?:[\w$]+|"(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*'|`[^`]*`)/,STORE_ERROR=/^TS(2769|2345)$/,REACTIVE_NOISE=/^TS(7028|2695)$/,UNRESOLVED_MODULE=/^TS(2307|2732|2792)$/,CACHE_FORMAT=2,RESULT_CACHE="result.json",EMIT_CACHE="emit-cache.json",COMPILE_CACHE="compile-cache.json",hash=(text)=>createHash("sha1").update(text).digest("hex"),TOOL_KEY=import.meta.url.endsWith(".ts")?hash(glob(import.meta.dirname,["**/*.ts"]).map((rel)=>readFileSync3(join4(import.meta.dirname,rel),"utf-8")).join("\x00")):version2,OFF_THREAD_AT=16,MANIFEST="manifest.json",DEFAULT_COMPILER_OPTIONS={allowJs:!0,noEmit:!0,declaration:!1,skipLibCheck:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,target:"esnext",module:"esnext",moduleResolution:"bundler"};class EmitError extends Error{}var SHELL_SPECIAL=/[\s"&|<>^()%!]/,quote=(arg)=>SHELL_SPECIAL.test(arg)?`"${arg.replaceAll('"','""')}"`:arg;function run(command,args,cwd,shell=!1){return new Promise((done,fail)=>{let env={...process.env,PWD:cwd},child=shell?spawn(quote(command),args.map(quote),{cwd,env,shell:!0}):spawn(command,args,{cwd,env}),output="";child.stdout.on("data",(chunk)=>{output+=chunk}),child.stderr.on("data",(chunk)=>{output+=chunk}),child.on("error",fail),child.on("close",()=>done(output))})}function parseDiagnostics(text){let found=[],continues=!1;for(let line of text.split(LINE_BREAK)){let m=DIAGNOSTIC.exec(line),global=m?null:GLOBAL_DIAGNOSTIC.exec(line);if(m)found.push({file:m[1]??"",line:Number(m[2]),column:Number(m[3]),code:m[4]??"",message:m[5]??""});else if(global)found.push({file:"",line:1,column:1,code:global[1]??"",message:global[2]??""});else if(continues&&CONTINUATION.test(line)){let last=found.at(-1);if(last)last.message+=`
|
|
242
242
|
${line}`}continues=m!==null||global!==null||continues&&line.trim()!==""}return found}var STATIC_IMPORT=/(?:\bfrom\s*|^\s*import\s*)["']([^"']+)["']/gm,DYNAMIC_IMPORT=/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g,JS_EXTENSION=/\.([cm]?)js(x?)$/;function programOrder(specifiersOf,resolveImport){let order=new Map,imports=new Map,next=0,visit=(path)=>{if(order.has(path))return;order.set(path,Number.POSITIVE_INFINITY);for(let specifier of specifiersOf(path)){let target=resolveImport(path,specifier);if(!target)continue;imports.set(path,(imports.get(path)??new Set).add(target)),visit(target)}order.set(path,next++)};return{order,imports,add(roots){for(let root of roots)visit(root)}}}function importResolver(rootDirs,paths){let exists=new Map,isFile=(path)=>{let found=exists.get(path);if(found===void 0)found=statSync(path,{throwIfNoEntry:!1})?.isFile()??!1,exists.set(path,found);return found},fileAt=(target)=>[target,`${target}.ts`,`${target}.d.ts`,`${target}.js`,target.replace(JS_EXTENSION,".$1ts$2"),target.replace(JS_EXTENSION,".d.$1ts"),join4(target,"index.ts"),join4(target,"index.js")].find((path)=>!path.includes(`${sep2}node_modules${sep2}`)&&isFile(path)),throughRootDirs=(target)=>{let from=rootDirs.filter((dir)=>target.startsWith(`${dir}${sep2}`)).sort((a,b)=>b.length-a.length)[0];if(!from)return;let suffix=relative2(from,target);for(let dir of rootDirs){if(dir===from)continue;let found=fileAt(join4(dir,suffix));if(found)return found}return},patterns=Object.entries(paths).map(([key,targets])=>{let star=key.indexOf("*");return{key,star,targets}});return(from,specifier)=>{if(specifier.startsWith(".")){let target=resolve2(dirname3(from),specifier);return fileAt(target)??throughRootDirs(target)}for(let{key,star,targets}of patterns){let rest;if(star===-1){if(specifier!==key)continue;rest=""}else{let prefix=key.slice(0,star),suffix=key.slice(star+1);if(!specifier.startsWith(prefix)||!specifier.endsWith(suffix)||specifier.length<prefix.length+suffix.length)continue;rest=specifier.slice(prefix.length,specifier.length-suffix.length)}for(let target of targets){let found=fileAt(target.replace("*",rest));if(found)return found}}return}}var NON_BINDABLE=`Cannot use 'bind:' with this property. It is declared as non-bindable inside the component.
|
|
243
243
|
`;function withHint(d,svelteMajor){if(d.code==="TS2345"&&d.message.includes("ConstructorOfATypedSvelteComponent"))return{...d,message:`${d.message}
|
|
244
244
|
|
|
@@ -256,7 +256,7 @@ export * from "./++${name}.svelte.js";
|
|
|
256
256
|
${syntax.slice(0,20).map((d)=>`${d.file}(${d.line},${d.column}): ${d.code} ${d.message}`).join(`
|
|
257
257
|
`)}`);let locators=new Map,locator=(key,content)=>{let found=locators.get(key);if(!found)found=createLocator(content()),locators.set(key,found);return found},endOf=(source,offset,file)=>{let length=TOKEN.exec(source.slice(offset))?.[0].length??0,end=locator(file,()=>source).position(offset+length);return{endLine:end.line,endColumn:end.column}},diagnostics=[],dropped=[],storeErrors=[],seen=new Set;for(let d of raw){if(d.file===""){if(d.message.includes(outDir))throw new EmitError(`${d.code}: ${d.message}`);diagnostics.push({...d,file:project.tsconfig??workspace,severity:"error",source:"ts"});continue}let abs=resolve2(cwd,d.file),gen=outputs.get(abs),mapped;if(gen){let offset=locator(abs,()=>gen.output.code).offset(d.line,d.column),source=gen.output.toSource(offset);if(source===null){let store=STORE_ERROR.test(d.code)?gen.emitted.storeDeclarations.find((s)=>s.start<=offset&&offset<s.end):void 0;if(store){for(let use of store.uses){let at=locator(gen.svelte,()=>gen.source).position(use),end=locator(gen.svelte,()=>gen.source).position(use+store.name.length+1);storeErrors.push({...d,file:gen.svelte,line:at.line,column:at.column,endLine:end.line,endColumn:end.column,severity:"error",source:gen.isTs?"ts":"js",message:`Cannot use '${store.name}' as a store. '${store.name}' needs to be an object with a subscribe method on it.
|
|
258
258
|
|
|
259
|
-
${d.message}`})}continue}let binding=d.code==="TS2322"?gen.emitted.bindingChecks.find((b)=>b.start<=offset&&offset<b.end):void 0;if(binding){let at=locator(gen.svelte,()=>gen.source).position(binding.from),end=locator(gen.svelte,()=>gen.source).position(binding.to);diagnostics.push({...d,file:gen.svelte,line:at.line,column:at.column,endLine:end.line,endColumn:end.column,severity:"error",source:gen.isTs?"ts":"js",message:nonBindableMessage(d.message)});continue}dropped.push({...d,file:abs,severity:"error",source:"ts"});continue}let within=(ranges)=>ranges.some(([from,to])=>from<=source&&source<to);if(REACTIVE_NOISE.test(d.code)&&within(gen.emitted.reactive)||d.code==="TS2554"&&d.message.startsWith("Expected 3 arguments")&&within(gen.emitted.transitions))continue;let start=locator(gen.svelte,()=>gen.source).position(source);mapped=withHint({...d,file:gen.svelte,line:start.line,column:start.column,...endOf(gen.source,source,gen.svelte),severity:"error",source:gen.isTs?"ts":"js"},svelteMajor)}else if(inOutput(d.file)||!project.reports(abs)){if(inOutput(d.file))dropped.push({...d,file:abs,severity:"error",source:"ts"});continue}else{let content=readFileSync3(abs,"utf-8"),offset=locator(abs,()=>content).offset(d.line,d.column);mapped={...d,file:abs,...endOf(content,offset,abs),severity:"error",source:JS_FILE2.test(abs)?"js":"ts"}}let key=`${mapped.file}:${mapped.line}:${mapped.column}:${mapped.code}`;if(seen.has(key))continue;seen.add(key),diagnostics.push(mapped)}diagnostics.push(...storeErrors);let generatedPath=new RegExp(`${escapeRegExp(`${toPosix2(genDir)}/`)}[^"'\\s]*`,"gi");for(let d of diagnostics)if(d.message=d.message.replace(generatedPath,(path)=>asTypeScriptPath(join4(root,relative2(toPosix2(genDir),path)).replace(GENERATED_NAME,"$1.svelte"))),process.platform==="win32")d.message=d.message.replace(DRIVE_PATH,(drive)=>drive.toLowerCase());if(diagnostics.push(...compiled),sources.has("js"))diagnostics.push(...parseErrors);if(untypedImports.length>0){let expected=new Set,untypedErrors=[];for(let i of untypedImports){if(project.skipLibCheck&&DECLARATION_FILE.test(i.path))continue;if(i.directive){if(i.directive==="expect-error")expected.add(`${i.path}:${i.line-1}`);continue}untypedErrors.push({file:i.path,line:i.line,column:i.column,severity:"error",source:"ts",code:"TS7016",message:`Could not find a declaration file for module '${i.specifier}'. '${asTypeScriptPath(i.target)}' implicitly has an 'any' type.`})}for(let error of untypedErrors){let after=diagnostics.findIndex((d)=>d.file===error.file&&d.source!=="svelte"&&(d.line>error.line||d.line===error.line&&d.column>error.column));diagnostics.splice(after===-1?diagnostics.length:after,0,error)}if(expected.size>0){let kept=diagnostics.filter((d)=>!(d.code==="TS2578"&&expected.has(`${d.file}:${d.line}`)));diagnostics.length=0,diagnostics.push(...kept)}}if(project.tsconfig&&project.inputSpecs&&listedFiles.length===0)diagnostics.push({file:project.tsconfig,line:1,column:1,severity:"error",source:"ts",code:"TS18003",message:`No inputs were found in config file '${asTypeScriptPath(project.tsconfig)}'. Specified 'include' paths were '${JSON.stringify(project.inputSpecs.include)}' and 'exclude' paths were '${JSON.stringify(project.inputSpecs.exclude)}'.`});else if(project.tsconfig&&!options.components&&files.length===0)diagnostics.push({file:project.tsconfig,line:1,column:1,endLine:1,endColumn:1,severity:"warning",source:"svelte",code:"100001",message:`No svelte input files were found in config file '${asTypeScriptPath(project.tsconfig)}'. Did you forget to add svelte files to the 'include' in your ${basename2(project.tsconfig)}? Specified 'include' paths were '${JSON.stringify(project.raw.include)}' and 'exclude' paths were '${JSON.stringify(project.raw.exclude)}'`});let reported=errorsOnly?diagnostics.filter((d)=>d.severity==="error"):diagnostics;ordering.add([...new Set(reported.map((d)=>d.file))].filter((file)=>!listedSet.has(file)).sort(byFolder));let{order,imports}=ordering,skipped=0;if(options.only){let shown=new Set(options.only.map((path)=>resolve2(cwd,path)));for(let[file,targets]of imports)for(let target of targets)if(options.only.some((path)=>resolve2(cwd,path)===target))shown.add(file);let kept=reported.filter((d)=>shown.has(d.file));skipped=reported.length-kept.length,reported.length=0,reported.push(...kept)}let sourceRank=(d)=>d.source==="svelte"?0:1;reported.sort((a,b)=>(order.get(a.file)??0)-(order.get(b.file)??0)||sourceRank(a)-sourceRank(b));let result={diagnostics:reported,workspace,tsconfig:project.tsconfig,components:files.length,skipped,dropped,failed,checker,checkerVersion:command?.version,timings:{emit:emitted-started,check:checked-emitted,compile:compiledAt-(compileStartedAt??emitted)}},inputs=[...order.keys()].filter((path)=>!under(path,outDir)).flatMap((path)=>[path,...declarationsBeside(path)]);if(incremental)await fileFacts.save();if(incremental)await writeFile(resultPath,JSON.stringify({key:runKey,inputs,inputsKey:hash(JSON.stringify(statsOf(inputs))),result}));return await cleared?.deleted,result}var FACTS_CACHE="files.json";function svelteImportsOf(content,component){if(!content.includes(".svelte"))return[];let lexed=component?lexComponent2(content):void 0,ranges=lexed?[lexed.module,lexed.instance].flatMap((script)=>script?[[script.content.start,script.content.end]]:[]):[[0,content.length]],locate=createLocator(content),lines=content.split(`
|
|
259
|
+
${d.message}`})}continue}let binding=d.code==="TS2322"?gen.emitted.bindingChecks.find((b)=>b.start<=offset&&offset<b.end):void 0;if(binding){let at=locator(gen.svelte,()=>gen.source).position(binding.from),end=locator(gen.svelte,()=>gen.source).position(binding.to);diagnostics.push({...d,file:gen.svelte,line:at.line,column:at.column,endLine:end.line,endColumn:end.column,severity:"error",source:gen.isTs?"ts":"js",message:nonBindableMessage(d.message)});continue}dropped.push({...d,file:abs,severity:"error",source:"ts"});continue}let within=(ranges)=>ranges.some(([from,to])=>from<=source&&source<to);if(REACTIVE_NOISE.test(d.code)&&within(gen.emitted.reactive)||d.code==="TS2554"&&d.message.startsWith("Expected 3 arguments")&&within(gen.emitted.transitions))continue;let start=locator(gen.svelte,()=>gen.source).position(source);mapped=withHint({...d,file:gen.svelte,line:start.line,column:start.column,...endOf(gen.source,source,gen.svelte),severity:"error",source:gen.isTs?"ts":"js"},svelteMajor)}else if(inOutput(d.file)||!project.reports(abs)){if(inOutput(d.file))dropped.push({...d,file:abs,severity:"error",source:"ts"});continue}else{let content=readFileSync3(abs,"utf-8"),offset=locator(abs,()=>content).offset(d.line,d.column);mapped={...d,file:abs,...endOf(content,offset,abs),severity:"error",source:JS_FILE2.test(abs)?"js":"ts"}}let key=`${mapped.file}:${mapped.line}:${mapped.column}:${mapped.code}`;if(seen.has(key))continue;seen.add(key),diagnostics.push(mapped)}diagnostics.push(...storeErrors);let generatedPath=new RegExp(`${escapeRegExp(`${toPosix2(genDir)}/`)}[^"'\\s]*`,"gi");for(let d of diagnostics)if(d.message=d.message.replace(generatedPath,(path)=>asTypeScriptPath(join4(root,relative2(toPosix2(genDir),path)).replace(GENERATED_NAME,"$1.svelte"))),process.platform==="win32")d.message=d.message.replace(DRIVE_PATH,(drive)=>drive.toLowerCase());if(diagnostics.push(...compiled),sources.has("js"))diagnostics.push(...parseErrors);if(untypedImports.length>0){let expected=new Set,untypedErrors=[];for(let i of untypedImports){if(project.skipLibCheck&&DECLARATION_FILE.test(i.path))continue;if(i.directive){if(i.directive==="expect-error")expected.add(`${i.path}:${i.line-1}`);continue}untypedErrors.push({file:i.path,line:i.line,column:i.column,severity:"error",source:"ts",code:"TS7016",message:`Could not find a declaration file for module '${i.specifier}'. '${asTypeScriptPath(i.target)}' implicitly has an 'any' type.`})}for(let error of untypedErrors){let after=diagnostics.findIndex((d)=>d.file===error.file&&d.source!=="svelte"&&(d.line>error.line||d.line===error.line&&d.column>error.column));diagnostics.splice(after===-1?diagnostics.length:after,0,error)}if(expected.size>0){let kept=diagnostics.filter((d)=>!(d.code==="TS2578"&&expected.has(`${d.file}:${d.line}`)));diagnostics.length=0,diagnostics.push(...kept)}}if(project.tsconfig&&project.inputSpecs&&listedFiles.length===0)diagnostics.push({file:project.tsconfig,line:1,column:1,severity:"error",source:"ts",code:"TS18003",message:`No inputs were found in config file '${asTypeScriptPath(project.tsconfig)}'. Specified 'include' paths were '${JSON.stringify(project.inputSpecs.include)}' and 'exclude' paths were '${JSON.stringify(project.inputSpecs.exclude)}'.`});else if(project.tsconfig&&!options.components&&files.length===0)diagnostics.push({file:project.tsconfig,line:1,column:1,endLine:1,endColumn:1,severity:"warning",source:"svelte",code:"100001",message:`No svelte input files were found in config file '${asTypeScriptPath(project.tsconfig)}'. Did you forget to add svelte files to the 'include' in your ${basename2(project.tsconfig)}? Specified 'include' paths were '${JSON.stringify(project.raw.include)}' and 'exclude' paths were '${JSON.stringify(project.raw.exclude)}'`});let reported=errorsOnly?diagnostics.filter((d)=>d.severity==="error"):diagnostics;ordering.add([...new Set(reported.map((d)=>d.file))].filter((file)=>!listedSet.has(file)).sort(byFolder));let{order,imports}=ordering,skipped=0;if(options.only){let shown=new Set(options.only.map((path)=>resolve2(cwd,path)));for(let[file,targets]of imports)for(let target of targets)if(options.only.some((path)=>resolve2(cwd,path)===target))shown.add(file);let kept=reported.filter((d)=>shown.has(d.file));skipped=reported.length-kept.length,reported.length=0,reported.push(...kept)}let sourceRank=(d)=>d.source==="svelte"?0:1;reported.sort((a,b)=>(order.get(a.file)??0)-(order.get(b.file)??0)||sourceRank(a)-sourceRank(b));let result={diagnostics:reported,workspace,tsconfig:project.tsconfig,components:files.length,skipped,dropped,failed,checker,checkerVersion:command?.version,timings:{emit:emitted-started,check:checked-emitted,compile:compiledAt-(compileStartedAt??emitted)}},inputs=[...order.keys()].filter((path)=>!under(path,outDir)).flatMap((path)=>[path,...declarationsBeside(path)]);if(incremental)await fileFacts.save();if(incremental&&diagnostics.some((d)=>UNRESOLVED_MODULE.test(d.code)))await rm(resultPath,{force:!0});else if(incremental)await writeFile(resultPath,JSON.stringify({key:runKey,inputs,inputsKey:hash(JSON.stringify(statsOf(inputs))),result}));return await cleared?.deleted,result}var FACTS_CACHE="files.json";function svelteImportsOf(content,component){if(!content.includes(".svelte"))return[];let lexed=component?lexComponent2(content):void 0,ranges=lexed?[lexed.module,lexed.instance].flatMap((script)=>script?[[script.content.start,script.content.end]]:[]):[[0,content.length]],locate=createLocator(content),lines=content.split(`
|
|
260
260
|
`);return ranges.flatMap(([start,end])=>lexImportsExports(content.slice(start,end)).flatMap((statement)=>{let specifier=statement.source?.value;if(!specifier?.endsWith(".svelte"))return[];let at=locate.position(start+(statement.source?.start??0)),directive=TS_DIRECTIVE.exec(lines[at.line-2]??"")?.[1];return[{specifier,line:at.line,column:at.column,directive:directive==="ignore"||directive==="expect-error"?directive:null,names:statement.specifiers.flatMap((spec)=>{let name="imported"in spec?spec.imported:spec.local;return name==="*"?[]:[name]})}]}))}function untypedDeclaration(names){let declare=(name)=>`declare const ${name}: any;
|
|
261
261
|
type ${name}<${UNTYPED_PARAMS}> = any & [${UNTYPED_ARGS}];
|
|
262
262
|
`,named=[...names].filter((name)=>name!=="default"&&IDENTIFIER.test(name));return`${[UNTYPED,...named].map(declare).join("")}export default ${UNTYPED};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{EmitError,typecheck2,watch2,createBaseline2,applyBaseline2}from"./shared-
|
|
1
|
+
import{EmitError,typecheck2,watch2,createBaseline2,applyBaseline2}from"./shared-kjtkvz39.js";import{SERVE,serveDaemon}from"./shared-vv8rd0yb.js";import{readFileSync as readFileSync2,writeFileSync}from"node:fs";import{resolve}from"node:path";import{parseArgs}from"node:util";import{readFileSync}from"node:fs";import{relative,sep}from"node:path";var OUTPUT_FORMATS=["human","human-verbose","machine","machine-verbose"];function colors(force){let env=process.env,enabled=force??(env.FORCE_COLOR!==void 0?env.FORCE_COLOR!=="0":env.NO_COLOR===void 0&&Boolean(process.stdout.isTTY)&&env.TERM!=="dumb"),paint=(open,close)=>(text)=>enabled?`\x1B[${open}m${text}\x1B[${close}m`:text;return{red:paint(31,39),yellow:paint(33,39),green:paint(32,39),cyan:paint(36,39),magenta:paint(35,39)}}function lineOf(text,line){return text.split(`
|
|
2
2
|
`)[line-1]??""}function codeFrame(d,c){let text;try{text=readFileSync(d.file,"utf-8")}catch{return""}let endLine=d.endLine??d.line,endColumn=d.endColumn??d.column,first=lineOf(text,d.line),last=lineOf(text,endLine),middle=d.line===endLine?first.slice(0,d.column-1)+c.magenta(first.slice(d.column-1,endColumn-1))+first.slice(endColumn-1):first.slice(0,d.column-1)+c.magenta([first.slice(d.column-1),...text.split(`
|
|
3
3
|
`).slice(d.line,endLine-1),last.slice(0,endColumn-1)].join(`
|
|
4
4
|
`))+last.slice(endColumn-1),before=d.line>1?`${lineOf(text,d.line-1)}
|
|
@@ -78,6 +78,6 @@ The daemon:
|
|
|
78
78
|
|
|
79
79
|
Exits 1 on an error, or a warning with --fail-on-warnings.`;async function main(argv){if(argv[0]===SERVE&&argv[1])return await serveDaemon(argv[1],main),new Promise(()=>{});let values;try{values=parse(argv).values}catch(error){return console.error(`${error.message}
|
|
80
80
|
|
|
81
|
-
${HELP}`),1}if(values.help)return console.log(HELP),0;if(values.version){let{version}=await import("./shared-
|
|
81
|
+
${HELP}`),1}if(values.help)return console.log(HELP),0;if(values.version){let{version}=await import("./shared-0n816fks.js");return console.log(version),0}let format=formatOf(values.output),out=writer(format,(text)=>process.stdout.write(text),colors(colorFlag(values.color,values["no-color"]))),options={workspace:values.workspace??".",tsconfig:values["no-tsconfig"]?!1:values.tsconfig,ignore:values.ignore?.split(","),config:values.config,checker:values.checker??(values.tsgo||values["tsgo-experimental-api"]?"tsgo":void 0),components:values.components,outDir:values["out-dir"],declarations:!values["no-declarations"],svelte:values.svelte,diagnosticSources:values["diagnostic-sources"]?.split(",").map((source)=>source.trim()),compilerWarnings:parseCompilerWarnings(values["compiler-warnings"]),incremental:!values["no-incremental"]};if(values.changed||values.since)try{options.only=changedFiles(process.cwd(),values.since)}catch(error){return out.failure(error),1}let baselinePath=values.baseline&&resolve(values.baseline);if(values["update-baseline"]&&!baselinePath)return out.failure(Error("--update-baseline needs --baseline <file>")),1;let strict=values["strict-baseline"];if(strict&&!baselinePath)return out.failure(Error("--strict-baseline needs --baseline <file>")),1;for(let flag of["update-baseline","strict-baseline"])if(values[flag]&&(values.changed||values.since))return out.failure(Error(`--${flag} takes every file's: drop --changed`)),1;let baseline;if(baselinePath&&!values["update-baseline"])try{baseline=JSON.parse(readFileSync2(baselinePath,"utf-8"))}catch{return out.failure(Error(`No baseline at ${baselinePath}: write one with --update-baseline`)),1}let errorsOnly=values.threshold==="error",failOnWarnings=values["fail-on-warnings"],report=(result,watching)=>{if(result instanceof Error)return out.failure(result instanceof EmitError?Error(`${result.message}
|
|
82
82
|
This is a svelte-typecheck bug; please report it.`):result),1;if(baselinePath&&values["update-baseline"]){let written=createBaseline2(result.diagnostics,result.workspace);return writeFileSync(baselinePath,`${JSON.stringify(written,null,2)}
|
|
83
83
|
`),out.note(`Wrote ${result.diagnostics.length} diagnostics to ${baselinePath}`),0}let known=baseline?applyBaseline2(result.diagnostics,baseline,result.workspace):void 0,shown=known?known.diagnostics:result.diagnostics;out.start(result.workspace,watching&&!values.preserveWatchOutput);for(let d of shown)if(!errorsOnly||d.severity==="error")out.diagnostic(d,result.workspace);for(let f of result.failed)out.failure(Error(`${f.file}: failed to parse: ${f.message}`));let summary=summarize(shown,result.components);if(known?.known)out.note(`${known.known} more in the baseline, not shown`);if(known?.fixed)out.note(`${known.fixed} in the baseline are fixed: --update-baseline drops them`);if(result.skipped>0)out.note(`${result.skipped} more in files the changes don't reach, not shown`);return out.completion(summary,watching),summary.errors>0||result.failed.length>0||failOnWarnings&&summary.warnings>0||strict&&(known?.fixed??0)>0?1:0};if(values.watch)return watch2(options,(result)=>report(result,!0)),new Promise(()=>{});try{return report(await typecheck2(options),!1)}catch(error){return report(error,!1)}}function formatOf(output){if(output&&OUTPUT_FORMATS.includes(output))return output;return process.env.CLAUDECODE==="1"?"machine":"human-verbose"}function parse(argv){return parseArgs({args:argv,options:{workspace:{type:"string"},output:{type:"string"},tsconfig:{type:"string"},"no-tsconfig":{type:"boolean",default:!1},ignore:{type:"string"},config:{type:"string"},"diagnostic-sources":{type:"string"},threshold:{type:"string"},"compiler-warnings":{type:"string"},"fail-on-warnings":{type:"boolean",default:!1},color:{type:"boolean",default:!1},"no-color":{type:"boolean",default:!1},tsgo:{type:"boolean",default:!1},incremental:{type:"boolean",default:!1},"no-incremental":{type:"boolean",default:!1},watch:{type:"boolean",default:!1},preserveWatchOutput:{type:"boolean",default:!1},"tsgo-experimental-api":{type:"boolean",default:!1},checker:{type:"string"},components:{type:"string",multiple:!0},"out-dir":{type:"string"},"no-declarations":{type:"boolean",default:!1},svelte:{type:"string"},changed:{type:"boolean",default:!1},baseline:{type:"string"},"update-baseline":{type:"boolean",default:!1},"strict-baseline":{type:"boolean",default:!1},since:{type:"string"},daemon:{type:"boolean",default:!1},"no-daemon":{type:"boolean",default:!1},help:{type:"boolean",short:"h",default:!1},version:{type:"boolean",short:"v",default:!1}}})}function parseCompilerWarnings(list){if(!list)return;let levels={};for(let entry of list.split(",")){let[code,level]=entry.trim().split(":");if(code&&(level==="ignore"||level==="error"))levels[code]=level}return levels}function colorFlag(on,off){if(on)return!0;if(off)return!1;return}export{main};
|
package/shared-nd0atg19.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{version2,package_default}from"./shared-cawmryxt.js";export{package_default as default,version2 as version};
|