ultracite 6.0.0 → 6.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/ultracite/biome.jsonc +5 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -117,7 +117,7 @@ ${o}`)}}});var rs,le=P(()=>{rs=ue({"./husky.ts":()=>(re(),Z(Ge)),"./lefthook.ts"
|
|
|
117
117
|
`}else t+=`${s}: '${o}'
|
|
118
118
|
`;return t},fs=async()=>{try{let e=me(await W("./package.json","utf-8"));return e?e.type==="module":!1}catch{return!1}},gs=async e=>{let t=me(await W("./package.json","utf-8"));t&&(t["lint-staged"]?t["lint-staged"]=$(t["lint-staged"],y(e)):t["lint-staged"]=y(e),await k("./package.json",JSON.stringify(t,null,2)))},hs=async(e,t)=>{let s=await W(e,"utf-8"),o=me(s);if(!o)return;let n=$(o,y(t));await k(e,JSON.stringify(n,null,2))},ys=async(e,t)=>{let s=await W(e,"utf-8"),o=ms(s);if(!o)return;let n=$(o,y(t));await k(e,us(n))},ws=async(e,t)=>{let n=(await import(cs(e).href)).default||{},a=$(n,y(t)),i=`export default ${JSON.stringify(a,null,2)};
|
|
119
119
|
`;await k(e,i)},vs=async(e,t)=>{delete X.cache[X.resolve(`./${e}`)];let s=rs(`./${e}`),o=$(s,y(t)),n=`module.exports = ${JSON.stringify(o,null,2)};
|
|
120
|
-
`;await k(e,n)},pe=async e=>{await k(".lintstagedrc.json",JSON.stringify(y(e),null,2))},bs=async(e,t)=>{if(e==="./package.json"){await gs(t);return}if(e.endsWith(".json")||e==="./.lintstagedrc"){await hs(e,t);return}if(e.endsWith(".yaml")||e.endsWith(".yml")){await ys(e,t);return}let s=await fs();if(e.endsWith(".mjs")||e.endsWith(".js")&&s){try{await ws(e,t)}catch{await pe(t)}return}if(e.endsWith(".cjs")||e.endsWith(".js")&&!s)try{await vs(e,t)}catch{await pe(t)}},S={exists:async()=>{for(let e of Xe)if(await c(e))return!0;return!1},install:async e=>{await ls("lint-staged",{packageManager:e,workspace:await h()})},create:async e=>{await k(".lintstagedrc.json",JSON.stringify(y(e),null,2))},update:async e=>{let t=null;for(let s of Xe)if(await c(s)){t=s;break}if(!t){await pe(e);return}await bs(t,e)}}});import{initTRPC as Ts}from"@trpc/server";import{createCli as _s}from"trpc-cli";import l from"zod";var w={name:"ultracite",description:"The AI-ready formatter that helps you write and generate code faster.",version:"6.0.
|
|
120
|
+
`;await k(e,n)},pe=async e=>{await k(".lintstagedrc.json",JSON.stringify(y(e),null,2))},bs=async(e,t)=>{if(e==="./package.json"){await gs(t);return}if(e.endsWith(".json")||e==="./.lintstagedrc"){await hs(e,t);return}if(e.endsWith(".yaml")||e.endsWith(".yml")){await ys(e,t);return}let s=await fs();if(e.endsWith(".mjs")||e.endsWith(".js")&&s){try{await ws(e,t)}catch{await pe(t)}return}if(e.endsWith(".cjs")||e.endsWith(".js")&&!s)try{await vs(e,t)}catch{await pe(t)}},S={exists:async()=>{for(let e of Xe)if(await c(e))return!0;return!1},install:async e=>{await ls("lint-staged",{packageManager:e,workspace:await h()})},create:async e=>{await k(".lintstagedrc.json",JSON.stringify(y(e),null,2))},update:async e=>{let t=null;for(let s of Xe)if(await c(s)){t=s;break}if(!t){await pe(e);return}await bs(t,e)}}});import{initTRPC as Ts}from"@trpc/server";import{createCli as _s}from"trpc-cli";import l from"zod";var w={name:"ultracite",description:"The AI-ready formatter that helps you write and generate code faster.",version:"6.0.2",type:"module",bin:{ultracite:"dist/index.js"},files:["config/*","dist","README.md"],scripts:{build:"tsup",test:"vitest run","test:coverage":"vitest run --coverage"},main:"./config/ultracite/biome.jsonc",exports:{".":"./config/ultracite/biome.jsonc","./*":"./config/*/biome.jsonc"},author:"Hayden Bleasel <hello@haydenbleasel.com>",bugs:{url:"https://github.com/haydenbleasel/ultracite/issues"},homepage:"https://github.com/haydenbleasel/ultracite#readme",keywords:["ultracite","biome","linter","formatter","fixer"],license:"MIT",publishConfig:{access:"public",registry:"https://registry.npmjs.org/"},repository:{type:"git",url:"git+https://github.com/haydenbleasel/ultracite.git"},devDependencies:{"@biomejs/biome":"2.3.0","@types/node":"^24.9.1","@vitest/coverage-v8":"4.0.3",tsup:"^8.5.0",turbo:"^2.5.8",vitest:"^4.0.3"},dependencies:{"@clack/prompts":"^0.11.0","@trpc/server":"^11.6.0",deepmerge:"^4.3.1","jsonc-parser":"^3.3.1",nypm:"^0.6.2","trpc-cli":"^0.12.0",zod:"^4.1.12"},packageManager:"pnpm@10.19.0"};m();import{spawnSync as ft}from"child_process";import he from"process";var ee=e=>{let t=["npx","@biomejs/biome","check","--no-errors-on-unmatched"];e.length>0?t.push(...M(e)):t.push("./");let s=t.join(" "),o=ft(s,{stdio:"inherit",shell:!0});o.error&&(console.error("Failed to run Ultracite:",o.error.message),he.exit(1)),o.status!==0&&he.exit(o.status??1)};import{spawnSync as At}from"child_process";import{existsSync as A}from"fs";import{readFile as Ne}from"fs/promises";import{join as U}from"path";import{parse as Ut}from"jsonc-parser";m();import{readFile as ye,unlink as gt,writeFile as ht}from"fs/promises";import{parse as we}from"jsonc-parser";import{removeDependency as yt}from"nypm";var T=[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.config.js","eslint.config.js","eslint.config.mjs","eslint.config.cjs",".eslintignore"],ve=async()=>{try{let e=await ye("package.json","utf-8"),t=we(e);if(!t||typeof t!="object")return[];let s=t.dependencies||{},o=t.devDependencies||{},n={...s,...o};return Object.keys(n).filter(a=>a.includes("eslint"))}catch{return[]}},wt=async(e,t)=>{if(t.length!==0)try{for(let s of t)await yt(s,{packageManager:e})}catch(s){console.warn(s)}},vt=async()=>{let e=[];for(let t of T)if(await c(t))try{await gt(t),e.push(t)}catch(s){console.warn(s)}return e},bt=async()=>{let e="./.vscode/settings.json";if(!await c(e))return!1;try{let t=await ye(e,"utf-8"),s=we(t);if(!s||typeof s!="object")return!1;let o=!1,n={...s},a=["eslint.enable","eslint.format.enable","eslint.validate","eslint.workingDirectories","eslint.codeAction.showDocumentation","eslint.run","eslint.autoFixOnSave","eslint.quiet","eslint.packageManager","eslint.options","eslint.trace.server"];for(let i of a)i in n&&(delete n[i],o=!0);if("editor.codeActionsOnSave"in n){let i=n["editor.codeActionsOnSave"];if(i&&typeof i=="object"){let r=["source.fixAll.eslint","source.organizeImports.eslint"];for(let p of r)p in i&&(delete i[p],o=!0);Object.keys(i).length===0&&(n["editor.codeActionsOnSave"]=void 0)}}return o?(await ht(e,JSON.stringify(n,null,2)),!0):!1}catch(t){return console.warn(t),!1}},kt=async()=>{if((await ve()).length>0)return!0;for(let t of T)if(await c(t))return!0;return!1},te={hasEsLint:kt,remove:async e=>{let t=await ve();await wt(e,t);let s=await vt(),o=await bt();return{packagesRemoved:t,filesRemoved:s,vsCodeCleaned:o}}};m();import{readFile as be,unlink as xt,writeFile as Nt}from"fs/promises";import{parse as ke}from"jsonc-parser";import{removeDependency as Ct}from"nypm";var _=[".prettierrc",".prettierrc.js",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.config.js","prettier.config.js","prettier.config.mjs",".prettierignore"],xe=async()=>{try{let e=await be("package.json","utf-8"),t=ke(e);if(!t||typeof t!="object")return[];let s=t.dependencies||{},o=t.devDependencies||{},n={...s,...o};return Object.keys(n).filter(a=>a.includes("prettier"))}catch{return[]}},jt=async(e,t)=>{if(t.length!==0)try{for(let s of t)await Ct(s,{packageManager:e})}catch(s){console.warn(s)}},St=async()=>{let e=[];for(let t of _)if(await c(t))try{await xt(t),e.push(t)}catch(s){console.warn(s)}return e},Pt=async()=>{let e="./.vscode/settings.json";if(!await c(e))return!1;try{let t=await be(e,"utf-8"),s=ke(t);if(!s||typeof s!="object")return!1;let o=!1,n={...s},a=["editor.defaultFormatter","prettier.enable","prettier.requireConfig","prettier.configPath","prettier.printWidth","prettier.tabWidth","prettier.useTabs","prettier.semi","prettier.singleQuote","prettier.quoteProps","prettier.trailingComma","prettier.bracketSpacing","prettier.arrowParens","prettier.endOfLine"];for(let r of a)r in n&&(r==="editor.defaultFormatter"&&n[r]==="esbenp.prettier-vscode"||r!=="editor.defaultFormatter")&&(delete n[r],o=!0);let i=Object.keys(n).filter(r=>r.startsWith("[")&&r.includes("javascript"));for(let r of i){let p=n[r];p&&typeof p=="object"&&"editor.defaultFormatter"in p&&p["editor.defaultFormatter"]==="esbenp.prettier-vscode"&&(delete p["editor.defaultFormatter"],o=!0,Object.keys(p).length===0&&delete n[r])}return o?(await Nt(e,JSON.stringify(n,null,2)),!0):!1}catch(t){return console.warn(t),!1}},Rt=async()=>{if((await xe()).length>0)return!0;for(let t of _)if(await c(t))return!0;return!1},se={hasPrettier:Rt,remove:async e=>{let t=await xe();await jt(e,t);let s=await St(),o=await Pt();return{packagesRemoved:t,filesRemoved:s,vsCodeCleaned:o}}};var Ft=()=>{let e=At("npx @biomejs/biome --version",{shell:!0,encoding:"utf-8"});return e.status===0&&e.stdout?{name:"Biome installation",status:"pass",message:`Biome is installed (${e.stdout.trim()})`}:{name:"Biome installation",status:"fail",message:"Biome is not installed or not accessible"}},Et=async()=>{let e=U(process.cwd(),"biome.json"),t=U(process.cwd(),"biome.jsonc"),s=null;if(A(e)?s=e:A(t)&&(s=t),!s)return{name:"Biome configuration",status:"fail",message:"No biome.json or biome.jsonc file found"};try{let o=await Ne(s,"utf-8"),n=Ut(o);return Array.isArray(n?.extends)&&n.extends.includes("ultracite/core")?{name:"Biome configuration",status:"pass",message:"biome.json(c) extends ultracite/core"}:{name:"Biome configuration",status:"warn",message:"biome.json(c) exists but doesn't extend ultracite/core"}}catch{return{name:"Biome configuration",status:"fail",message:"Could not parse biome.json(c) file"}}},$t=async()=>{let e=U(process.cwd(),"package.json");if(!A(e))return{name:"Ultracite dependency",status:"warn",message:"No package.json found"};try{let t=JSON.parse(await Ne(e,"utf-8")),s=t.dependencies?.ultracite||t.devDependencies?.ultracite||t.peerDependencies?.ultracite;return s?{name:"Ultracite dependency",status:"pass",message:`Ultracite is in package.json (${s})`}:{name:"Ultracite dependency",status:"warn",message:"Ultracite not found in package.json dependencies"}}catch{return{name:"Ultracite dependency",status:"warn",message:"Could not parse package.json"}}},It=()=>{let e=_.some(s=>A(U(process.cwd(),s))),t=T.some(s=>A(U(process.cwd(),s)));if(e||t){let s=[];return e&&s.push("Prettier"),t&&s.push("ESLint"),{name:"Conflicting tools",status:"warn",message:`Found potentially conflicting tools: ${s.join(", ")}`}}return{name:"Conflicting tools",status:"pass",message:"No conflicting formatting/linting tools found"}},Ce=async()=>{let e=[];console.log(`\u{1FA7A} Running Ultracite doctor...
|
|
121
121
|
`),e.push(Ft()),e.push(await Et()),e.push(await $t()),e.push(It());let t=e.filter(n=>n.status==="pass").length,s=e.filter(n=>n.status==="fail").length,o=e.filter(n=>n.status==="warn").length;for(let n of e){let a;n.status==="pass"?a="\u2705":n.status==="fail"?a="\u274C":a="\u26A0\uFE0F",console.log(`${a} ${n.name}: ${n.message}`)}console.log(`
|
|
122
122
|
\u{1F4CA} Summary:`),console.log(` ${t} passed, ${o} warnings, ${s} failed`),s>0&&(console.log(`
|
|
123
123
|
\u{1F4A1} To fix issues, run: npx ultracite init`),process.exit(1)),o>0?console.log(`
|