ultracite 5.3.6 → 5.3.8
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/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -117,7 +117,7 @@ ${n}`)}}});var ts,oe=j(()=>{ts=ce({"./husky.ts":()=>(se(),Y(Je)),"./lefthook.ts"
|
|
|
117
117
|
`}else t+=`${s}: '${n}'
|
|
118
118
|
`;return t},cs=async()=>{try{let e=re(await z("./package.json","utf-8"));return e?e.type==="module":!1}catch{return!1}},ls=async e=>{let t=re(await z("./package.json","utf-8"));t&&(t["lint-staged"]?t["lint-staged"]=$(t["lint-staged"],g(e)):t["lint-staged"]=g(e),await w("./package.json",JSON.stringify(t,null,2)))},ds=async(e,t)=>{let s=await z(e,"utf-8"),n=re(s);if(!n)return;let o=$(n,g(t));await w(e,JSON.stringify(o,null,2))},us=async(e,t)=>{let s=await z(e,"utf-8"),n=as(s);if(!n)return;let o=$(n,g(t));await w(e,rs(o))},ps=async(e,t)=>{let o=(await import(ss(e).href)).default||{},i=$(o,g(t)),r=`export default ${JSON.stringify(i,null,2)};
|
|
119
119
|
`;await w(e,r)},ms=async(e,t)=>{delete V.cache[V.resolve(`./${e}`)];let s=ts(`./${e}`),n=$(s,g(t)),o=`module.exports = ${JSON.stringify(n,null,2)};
|
|
120
|
-
`;await w(e,o)},ae=async e=>{await w(".lintstagedrc.json",JSON.stringify(g(e),null,2))},fs=async(e,t)=>{if(e==="./package.json"){await ls(t);return}if(e.endsWith(".json")||e==="./.lintstagedrc"){await ds(e,t);return}if(e.endsWith(".yaml")||e.endsWith(".yml")){await us(e,t);return}let s=await cs();if(e.endsWith(".mjs")||e.endsWith(".js")&&s){try{await ps(e,t)}catch{await ae(t)}return}if(e.endsWith(".cjs")||e.endsWith(".js")&&!s)try{await ms(e,t)}catch{await ae(t)}},D={exists:async()=>{for(let e of Ge)if(await a(e))return!0;return!1},install:async e=>{await ns("lint-staged",{packageManager:e,workspace:await f()})},create:async e=>{await w(".lintstagedrc.json",JSON.stringify(g(e),null,2))},update:async e=>{let t=null;for(let s of Ge)if(await a(s)){t=s;break}if(!t){await ae(e);return}await fs(t,e)}}});import{createCli as $s,trpcServer as Fs}from"trpc-cli";import c from"zod";var h={name:"ultracite",description:"The AI-ready formatter that helps you write and generate code faster.",version:"5.3.
|
|
120
|
+
`;await w(e,o)},ae=async e=>{await w(".lintstagedrc.json",JSON.stringify(g(e),null,2))},fs=async(e,t)=>{if(e==="./package.json"){await ls(t);return}if(e.endsWith(".json")||e==="./.lintstagedrc"){await ds(e,t);return}if(e.endsWith(".yaml")||e.endsWith(".yml")){await us(e,t);return}let s=await cs();if(e.endsWith(".mjs")||e.endsWith(".js")&&s){try{await ps(e,t)}catch{await ae(t)}return}if(e.endsWith(".cjs")||e.endsWith(".js")&&!s)try{await ms(e,t)}catch{await ae(t)}},D={exists:async()=>{for(let e of Ge)if(await a(e))return!0;return!1},install:async e=>{await ns("lint-staged",{packageManager:e,workspace:await f()})},create:async e=>{await w(".lintstagedrc.json",JSON.stringify(g(e),null,2))},update:async e=>{let t=null;for(let s of Ge)if(await a(s)){t=s;break}if(!t){await ae(e);return}await fs(t,e)}}});import{createCli as $s,trpcServer as Fs}from"trpc-cli";import c from"zod";var h={name:"ultracite",description:"The AI-ready formatter that helps you write and generate code faster.",version:"5.3.7",type:"module",bin:{ultracite:"dist/index.js"},files:["biome.jsonc","dist"],scripts:{build:"tsup",test:"vitest run","test:coverage":"vitest --coverage"},main:"./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:{"@auto-it/all-contributors":"^11.3.0","@auto-it/first-time-contributor":"^11.3.0","@biomejs/biome":"2.2.2","@types/node":"^24.3.0","@vitest/coverage-v8":"3.2.4",tsup:"^8.5.0"},dependencies:{"@clack/prompts":"^0.11.0",deepmerge:"^4.3.1","jsonc-parser":"^3.3.1",nypm:"^0.6.1","trpc-cli":"^0.10.2",vitest:"^3.2.4",zod:"^4.1.5"},packageManager:"pnpm@10.15.0"};p();import{spawnSync as lt}from"child_process";import ue from"process";var K=e=>{let t=["npx","@biomejs/biome","check","--no-errors-on-unmatched"];e.length>0?t.push(...F(e)):t.push("./");let s=t.join(" "),n=lt(s,{stdio:"inherit",shell:!0});n.error&&(console.error("Failed to run Ultracite:",n.error.message),ue.exit(1)),n.status!==0&&ue.exit(n.status??1)};import{spawnSync as jt}from"child_process";import{existsSync as S}from"fs";import{readFile as we}from"fs/promises";import{join as P}from"path";import{parse as Ct}from"jsonc-parser";p();import{readFile as pe,unlink as dt,writeFile as ut}from"fs/promises";import{parse as me}from"jsonc-parser";import{removeDependency as pt}from"nypm";var N=[".eslintrc",".eslintrc.js",".eslintrc.json",".eslintrc.yml",".eslintrc.yaml",".eslintrc.config.js","eslint.config.js","eslint.config.mjs","eslint.config.cjs",".eslintignore"],fe=async()=>{try{let e=await pe("package.json","utf-8"),t=me(e);if(!t||typeof t!="object")return[];let s=t.dependencies||{},n=t.devDependencies||{},o={...s,...n};return Object.keys(o).filter(i=>i.startsWith("eslint")||i.startsWith("@eslint/")||i==="@typescript-eslint/parser"||i==="@typescript-eslint/eslint-plugin")}catch{return[]}},mt=async(e,t)=>{if(t.length!==0)try{for(let s of t)await pt(s,{packageManager:e})}catch(s){console.warn(s)}},ft=async()=>{let e=[];for(let t of N)if(await a(t))try{await dt(t),e.push(t)}catch(s){console.warn(s)}return e},gt=async()=>{let e="./.vscode/settings.json";if(!await a(e))return!1;try{let t=await pe(e,"utf-8"),s=me(t);if(!s||typeof s!="object")return!1;let n=!1,o={...s},i=["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 r of i)r in o&&(delete o[r],n=!0);if("editor.codeActionsOnSave"in o){let r=o["editor.codeActionsOnSave"];if(r&&typeof r=="object"){let l=["source.fixAll.eslint","source.organizeImports.eslint"];for(let d of l)d in r&&(delete r[d],n=!0);Object.keys(r).length===0&&(o["editor.codeActionsOnSave"]=void 0)}}return n?(await ut(e,JSON.stringify(o,null,2)),!0):!1}catch(t){return console.warn(t),!1}},ht=async()=>{if((await fe()).length>0)return!0;for(let t of N)if(await a(t))return!0;return!1},Z={hasESLint:ht,remove:async e=>{let t=await fe();mt(e,t);let s=await ft(),n=await gt();return{packagesRemoved:t,filesRemoved:s,vsCodeCleaned:n}}};p();import{readFile as ge,unlink as yt,writeFile as wt}from"fs/promises";import{parse as he}from"jsonc-parser";import{removeDependency as bt}from"nypm";var I=[".prettierrc",".prettierrc.js",".prettierrc.json",".prettierrc.yml",".prettierrc.yaml",".prettierrc.config.js","prettier.config.js","prettier.config.mjs",".prettierignore"],ye=async()=>{try{let e=await ge("package.json","utf-8"),t=he(e);if(!t||typeof t!="object")return[];let s=t.dependencies||{},n=t.devDependencies||{},o={...s,...n};return Object.keys(o).filter(i=>i.startsWith("prettier")||i==="eslint-config-prettier"||i==="eslint-plugin-prettier")}catch{return[]}},kt=async(e,t)=>{if(t.length!==0)try{for(let s of t)await bt(s,{packageManager:e})}catch(s){console.warn(s)}},vt=async()=>{let e=[];for(let t of I)if(await a(t))try{await yt(t),e.push(t)}catch(s){console.warn(s)}return e},xt=async()=>{let e="./.vscode/settings.json";if(!await a(e))return!1;try{let t=await ge(e,"utf-8"),s=he(t);if(!s||typeof s!="object")return!1;let n=!1,o={...s},i=["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 l of i)l in o&&(l==="editor.defaultFormatter"&&o[l]==="esbenp.prettier-vscode"||l!=="editor.defaultFormatter")&&(delete o[l],n=!0);let r=Object.keys(o).filter(l=>l.startsWith("[")&&l.includes("javascript"));for(let l of r){let d=o[l];d&&typeof d=="object"&&"editor.defaultFormatter"in d&&d["editor.defaultFormatter"]==="esbenp.prettier-vscode"&&(d["editor.defaultFormatter"]=void 0,n=!0,Object.keys(d).length===0&&delete o[l])}return n?(await wt(e,JSON.stringify(o,null,2)),!0):!1}catch(t){return console.warn(t),!1}},Dt=async()=>{if((await ye()).length>0)return!0;for(let t of I)if(await a(t))return!0;return!1},Q={hasPrettier:Dt,remove:async e=>{let t=await ye();kt(e,t);let s=await vt(),n=await xt();return{packagesRemoved:t,filesRemoved:s,vsCodeCleaned:n}}};var St=()=>{let e=jt("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"}},Pt=async()=>{let e=P(process.cwd(),"biome.json"),t=P(process.cwd(),"biome.jsonc"),s=null;if(S(e)?s=e:S(t)&&(s=t),!s)return{name:"Biome configuration",status:"fail",message:"No biome.json or biome.jsonc file found"};try{let n=await we(s,"utf-8"),o=Ct(n);return Array.isArray(o?.extends)&&o.extends.includes("ultracite")?{name:"Biome configuration",status:"pass",message:"biome.json(c) extends ultracite"}:{name:"Biome configuration",status:"warn",message:"biome.json(c) exists but doesn't extend ultracite"}}catch{return{name:"Biome configuration",status:"fail",message:"Could not parse biome.json(c) file"}}},Rt=async()=>{let e=P(process.cwd(),"package.json");if(!S(e))return{name:"Ultracite dependency",status:"warn",message:"No package.json found"};try{let t=JSON.parse(await we(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"}}},At=()=>{let e=I.some(s=>S(P(process.cwd(),s))),t=N.some(s=>S(P(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"}},be=async()=>{let e=[];console.log(`\u{1FA7A} Running Ultracite doctor...
|
|
121
121
|
`),e.push(St()),e.push(await Pt()),e.push(await Rt()),e.push(At());let t=e.filter(o=>o.status==="pass").length,s=e.filter(o=>o.status==="fail").length,n=e.filter(o=>o.status==="warn").length;for(let o of e){let i;o.status==="pass"?i="\u2705":o.status==="fail"?i="\u274C":i="\u26A0\uFE0F",console.log(`${i} ${o.name}: ${o.message}`)}console.log(`
|
|
122
122
|
\u{1F4CA} Summary:`),console.log(` ${t} passed, ${n} warnings, ${s} failed`),s>0&&(console.log(`
|
|
123
123
|
\u{1F4A1} To fix issues, run: npx ultracite init`),process.exit(1)),n>0?console.log(`
|