@circlesac/lint 0.0.25 → 0.0.26

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/main.js CHANGED
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
- var k={name:"@circlesac/lint",version:"0.0.25",type:"module",main:"dist/main.js",exports:{"./eslint":"./eslint.config.mjs","./prettier":"./prettier.config.mjs","./biome":"./biome.jsonc"},bin:{lint:"dist/main.js"},description:"🔧 A zero-config lint tool that uses ESLint, Prettier, and Biome",files:["dist",".prettierignore","biome.jsonc","eslint.config.mjs","prettier.config.mjs"],keywords:["cli","lint","eslint","prettier","biome","zeroconf"],private:!1,publishConfig:{access:"public"},dependencies:{chalk:"^4.1.2",commander:"^14.0.0",eslint:"^9.34.0","read-package-up":"^11.0.0","typescript-eslint":"^8.42.0"},devDependencies:{"@tsed/barrels":"^6.6.3","@types/bun":"^1.2.21","@types/node":"^24.3.0","@vitest/coverage-v8":"3.2.4",typescript:"^5.9.2",vitest:"^3.2.4"},scripts:{build:"barrels && bun lint && tsc --noEmit && bun run build.ts",dev:"bun run src/main.ts",start:"bun run build && bun run dist/main.js",lint:"bun dev --all",test:"vitest run --coverage",deploy:"npm version patch --force && npm publish","version:patch":"npm version patch","version:minor":"npm version minor","version:major":"npm version major",prepublishOnly:"bun run build"},license:"MIT"};import{Command as y}from"commander";import h from"chalk";class f{static instance;static getInstance(){if(!f.instance)f.instance=new f;return f.instance}constructor(){}error(n,i){if(i.includes(`
3
- `))console.error(`${h.red(n)}:
4
- ${i}`);else console.error(`${h.red(n)}: ${i}`)}}var e=f.getInstance();class $ extends y{constructor(n){super(n);this.action(this.executeInternal.bind(this))}async executeInternal(...n){try{await this.execute(...n)}catch(i){this.logError(i)}}logError(...n){console.error();for(let i of n)if(i instanceof Error){if(e.error("Error",i.message),i.stack)console.error(),e.error("Stack trace",i.stack);if(i.cause)console.error(),e.error("Caused by",String(i.cause))}else e.error("Message",String(i));console.error(),e.error("Command",this.name()),e.error("Time",Date.now().toString())}}import{execSync as C}from"child_process";import{access as E,appendFile as K,writeFile as N}from"fs/promises";import{dirname as x,join as Q,resolve as A}from"path";import{readPackageUp as S}from"read-package-up";import{fileURLToPath as V}from"url";async function B(n){let i=await W(),c=[...n.args];if(n.configArg&&n.configFile){let p=A(i,n.configFile);c.push(n.configArg,p)}if(n.ignoreArg&&n.ignoreFile){let p=A(i,n.ignoreFile);c.push(n.ignoreArg,p)}try{let p=`${n.command} ${c.join(" ")}`;return console.info(`\uD83D\uDD27 Running ${n.title}...`),console.info(` Command: ${p}`),C(p,{stdio:"pipe",cwd:process.cwd(),encoding:"utf8"}),console.info(`✅ ${n.title} completed`),!0}catch(p){console.info(`❌ ${n.title} failed`);let b="",r="",w,m="";if(p&&typeof p==="object"){let v=p;b=v.stdout?.toString()||"",r=v.stderr?.toString()||"",m=v.message||"",w=v.status}else m=String(p);let j={tool:n.name,command:n.command,args:c,workingDir:process.cwd(),timestamp:new Date().toISOString()};if(w!==void 0)j.exitCode=w;if(b)j.stdout=b;if(r||m)j.stderr=r||m;let I=await X(j);if(b||r||m){let v=b||r||m,O=v.split(`
5
- `).slice(0,5);if(console.error(O.join(`
2
+ var k={name:"@circlesac/lint",version:"0.0.26",type:"module",main:"dist/main.js",exports:{"./eslint":"./eslint.config.mjs","./prettier":"./prettier.config.mjs","./biome":"./biome.jsonc"},bin:{lint:"dist/main.js"},description:"🔧 A zero-config lint tool that uses ESLint, Prettier, and Biome",files:["dist",".prettierignore","biome.jsonc","eslint.config.mjs","prettier.config.mjs"],keywords:["cli","lint","eslint","prettier","biome","zeroconf"],private:!1,publishConfig:{access:"public"},dependencies:{chalk:"^4.1.2",commander:"^14.0.0",eslint:"^9.34.0","read-package-up":"^11.0.0","typescript-eslint":"^8.42.0"},devDependencies:{"@tsed/barrels":"^6.6.3","@types/bun":"^1.2.21","@types/node":"^24.3.0","@vitest/coverage-v8":"3.2.4",typescript:"^5.9.2",vitest:"^3.2.4"},scripts:{build:"barrels && bun lint && tsc --noEmit && bun run build.ts",dev:"bun run src/main.ts",start:"bun run build && bun run dist/main.js",lint:"bun dev --all",test:"vitest run --coverage",prepublishOnly:"bun run build"},license:"MIT"};import{Command as E}from"commander";import x from"chalk";class f{static instance;static getInstance(){if(!f.instance)f.instance=new f;return f.instance}constructor(){}error(n,i){if(i.includes(`
3
+ `))console.error(`${x.red(n)}:
4
+ ${i}`);else console.error(`${x.red(n)}: ${i}`)}}var m=f.getInstance();class $ extends E{constructor(n){super(n);this.action(this.executeInternal.bind(this))}async executeInternal(...n){try{await this.execute(...n)}catch(i){this.logError(i)}}logError(...n){console.error();for(let i of n)if(i instanceof Error){if(m.error("Error",i.message),i.stack)console.error(),m.error("Stack trace",i.stack);if(i.cause)console.error(),m.error("Caused by",String(i.cause))}else m.error("Message",String(i));console.error(),m.error("Command",this.name()),m.error("Time",Date.now().toString())}}import{execSync as K}from"child_process";import{access as N,appendFile as Q,writeFile as S}from"fs/promises";import{tmpdir as V}from"os";import{dirname as A,join as W,resolve as B}from"path";import{readPackageUp as X}from"read-package-up";import{fileURLToPath as Y}from"url";async function J(n){let i=await Z(),c=[...n.args];if(n.configArg&&n.configFile){let b=B(i,n.configFile);c.push(n.configArg,b)}if(n.ignoreArg&&n.ignoreFile){let b=B(i,n.ignoreFile);c.push(n.ignoreArg,b)}try{let b=`${n.command} ${c.join(" ")}`;return console.info(`\uD83D\uDD27 Running ${n.title}...`),console.info(` Command: ${b}`),K(b,{stdio:"pipe",cwd:process.cwd(),encoding:"utf8"}),console.info(`✅ ${n.title} completed`),!0}catch(b){console.info(`❌ ${n.title} failed`);let p="",r="",I,e="";if(b&&typeof b==="object"){let v=b;p=v.stdout?.toString()||"",r=v.stderr?.toString()||"",e=v.message||"",I=v.status}else e=String(b);let j={tool:n.name,command:n.command,args:c,workingDir:process.cwd(),timestamp:new Date().toISOString()};if(I!==void 0)j.exitCode=I;if(p)j.stdout=p;if(r||e)j.stderr=r||e;let u=await y(j);if(p||r||e){let v=p||r||e,q=v.split(`
5
+ `).slice(0,5);if(console.error(q.join(`
6
6
  `)),v.split(`
7
- `).length>5)console.error("...")}if(I){let v=I.split(/[/\\]/).pop()||I;console.error(""),console.error(`\uD83D\uDCC4 Full failure log saved to: ${v}`),await Z(`### ❌ ${n.title} Failed
7
+ `).length>5)console.error("...")}if(u)console.error(""),console.error(`\uD83D\uDCC4 Full failure log saved to: ${u}`),await H(`### ❌ ${n.title} Failed
8
8
 
9
- **Full log:** \`${v}\`
9
+ **Full log:** \`${u}\`
10
10
 
11
11
  <details><summary>View error details</summary>
12
12
 
13
13
  \`\`\`
14
- ${(r||b||m).slice(0,500)}
14
+ ${(r||p||e).slice(0,500)}
15
15
  \`\`\`
16
16
 
17
- </details>`)}else console.error(b||r||m);return!1}}async function W(){let n=V(import.meta.url),i=x(n),c=await S({cwd:i});if(!c)throw Error("Could not find package.json");return x(c.path)}async function X(n){try{let i=process.cwd(),c=Y(n),p=new Date().toISOString().replace(/[:.]/g,"-"),b=`circlesac-lint-${n.tool}-${p}.log`,r=Q(i,b);return await N(r,c,"utf8"),r}catch{return null}}function Y(n){let i=[];if(i.push("=".repeat(80)),i.push(`Tool: ${n.tool}`),n.toolVersion)i.push(`Version: ${n.toolVersion}`);if(i.push(`Command: ${n.command}`),i.push(`Arguments: ${JSON.stringify(n.args)}`),n.exitCode!==void 0)i.push(`Exit Code: ${n.exitCode}`);if(i.push(`Working Directory: ${n.workingDir}`),i.push(`Timestamp: ${n.timestamp}`),i.push("=".repeat(80)),i.push(""),n.stdout){let c=n.stdout.toString();i.push("STDOUT:"),i.push("-".repeat(80)),i.push(c),i.push("")}if(n.stderr){let c=n.stderr.toString();i.push("STDERR:"),i.push("-".repeat(80)),i.push(c),i.push("")}return i.join(`
18
- `)}async function Z(n){try{let i=process.env.GITHUB_STEP_SUMMARY;if(!i)return;let c="";try{await E(i),c=`
19
- `}catch{}await K(i,c+n+`
20
- `,"utf8")}catch{}}var J=[{name:"oxlint",title:"Oxlint",command:"npx oxlint",args:["--fix"]},{name:"eslint",title:"ESLint",command:"npx eslint",args:["--fix"],configArg:"--config",configFile:"eslint.config.mjs"},{name:"prettier",title:"Prettier",command:"npx prettier@latest",args:["'**/*.{ts,tsx,js,jsx,json,jsonc,md,cjs,mjs,mts,yml,yaml}'","'!**/sst-env.d.ts'","--write"],configArg:"--config",configFile:"prettier.config.mjs",ignoreArg:"--ignore-path",ignoreFile:".prettierignore"},{name:"biome",title:"Biome",command:"npx @biomejs/biome",args:["check","--write"],configArg:"--config-path",configFile:"biome.jsonc"}];class z extends ${constructor(){super("lint");this.option("--all","Run all tools");for(let n of J)this.option(`--${n.name}`,`Run ${n.title}`)}async execute(n){console.info("\uD83D\uDD27 Running lint tools...");let i=this.getEnabledTools(J,n),c=[];for(let r of i)c.push({tool:r.name,success:await B(r)});let p=c.filter((r)=>!r.success).map((r)=>r.tool),b=c.filter((r)=>r.success).map((r)=>r.tool);if(b.length>0)console.info(`✓ Completed: ${b.join(", ")}`);if(p.length>0)console.error(`✗ Failed: ${p.join(", ")}`),process.exitCode=1}getEnabledTools(n,i){if(i.all)return n;let c=n.filter((p)=>i[p.name]);if(c.length!==0)return c;return this.help(),process.exit(0),[]}}var u=new z;u.name(k.name);u.description(k.description);u.version(k.version);u.parse();
17
+ </details>`);else console.error(p||r||e);return!1}}async function Z(){let n=Y(import.meta.url),i=A(n),c=await X({cwd:i});if(!c)throw Error("Could not find package.json");return A(c.path)}async function y(n){try{let i=V(),c=G(n),b=new Date().toISOString().replace(/[:.]/g,"-"),p=`circlesac-lint-${n.tool}-${b}.log`,r=W(i,p);return await S(r,c,"utf8"),r}catch{return null}}function G(n){let i=[];if(i.push("=".repeat(80)),i.push(`Tool: ${n.tool}`),n.toolVersion)i.push(`Version: ${n.toolVersion}`);if(i.push(`Command: ${n.command}`),i.push(`Arguments: ${JSON.stringify(n.args)}`),n.exitCode!==void 0)i.push(`Exit Code: ${n.exitCode}`);if(i.push(`Working Directory: ${n.workingDir}`),i.push(`Timestamp: ${n.timestamp}`),i.push("=".repeat(80)),i.push(""),n.stdout){let c=n.stdout.toString();i.push("STDOUT:"),i.push("-".repeat(80)),i.push(c),i.push("")}if(n.stderr){let c=n.stderr.toString();i.push("STDERR:"),i.push("-".repeat(80)),i.push(c),i.push("")}return i.join(`
18
+ `)}async function H(n){try{let i=process.env.GITHUB_STEP_SUMMARY;if(!i)return;let c="";try{await N(i),c=`
19
+ `}catch{}await Q(i,c+n+`
20
+ `,"utf8")}catch{}}var O=[{name:"oxlint",title:"Oxlint",command:"npx oxlint",args:["--fix"]},{name:"eslint",title:"ESLint",command:"npx eslint",args:["--fix"],configArg:"--config",configFile:"eslint.config.mjs"},{name:"prettier",title:"Prettier",command:"npx prettier@latest",args:["'**/*.{ts,tsx,js,jsx,json,jsonc,md,cjs,mjs,mts,yml,yaml}'","'!**/sst-env.d.ts'","--write"],configArg:"--config",configFile:"prettier.config.mjs",ignoreArg:"--ignore-path",ignoreFile:".prettierignore"},{name:"biome",title:"Biome",command:"npx @biomejs/biome",args:["check","--write"],configArg:"--config-path",configFile:"biome.jsonc"}];class z extends ${constructor(){super("lint");this.option("--all","Run all tools");for(let n of O)this.option(`--${n.name}`,`Run ${n.title}`)}async execute(n){console.info("\uD83D\uDD27 Running lint tools...");let i=this.getEnabledTools(O,n),c=[];for(let r of i)c.push({tool:r.name,success:await J(r)});let b=c.filter((r)=>!r.success).map((r)=>r.tool),p=c.filter((r)=>r.success).map((r)=>r.tool);if(p.length>0)console.info(`✓ Completed: ${p.join(", ")}`);if(b.length>0)console.error(`✗ Failed: ${b.join(", ")}`),process.exitCode=1}getEnabledTools(n,i){if(i.all)return n;let c=n.filter((b)=>i[b.name]);if(c.length!==0)return c;return this.help(),process.exit(0),[]}}var w=new z;w.name(k.name);w.description(k.description);w.version(k.version);w.parse();
21
21
 
22
- //# debugId=05C61895AA91C37A64756E2164756E21
22
+ //# debugId=42A78A702138623764756E2164756E21
package/dist/main.js.map CHANGED
@@ -4,11 +4,11 @@
4
4
  "sourcesContent": [
5
5
  "import { Command } from \"commander\"\n\nimport { logger } from \"./logger.js\"\n\nexport abstract class BaseCommand extends Command {\n\tconstructor(name: string) {\n\t\tsuper(name)\n\t\tthis.action(this.executeInternal.bind(this))\n\t}\n\n\tprivate async executeInternal(...args: unknown[]) {\n\t\ttry {\n\t\t\tawait this.execute(...args)\n\t\t} catch (error) {\n\t\t\tthis.logError(error)\n\t\t}\n\t}\n\n\tprivate logError(...errors: unknown[]) {\n\t\tconsole.error()\n\n\t\tfor (const error of errors) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tlogger.error(\"Error\", error.message)\n\n\t\t\t\tif (error.stack) {\n\t\t\t\t\tconsole.error()\n\t\t\t\t\tlogger.error(\"Stack trace\", error.stack)\n\t\t\t\t}\n\n\t\t\t\tif (error.cause) {\n\t\t\t\t\tconsole.error()\n\t\t\t\t\tlogger.error(\"Caused by\", String(error.cause))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlogger.error(\"Message\", String(error))\n\t\t\t}\n\t\t}\n\n\t\tconsole.error()\n\t\tlogger.error(\"Command\", this.name())\n\t\tlogger.error(\"Time\", Date.now().toString())\n\t}\n\n\tprotected abstract execute(...args: unknown[]): Promise<void> | void\n}\n",
6
6
  "import chalk from \"chalk\"\n\nexport class Logger {\n\tprivate static instance: Logger\n\n\tstatic getInstance(): Logger {\n\t\tif (!Logger.instance) {\n\t\t\tLogger.instance = new Logger()\n\t\t}\n\t\treturn Logger.instance\n\t}\n\n\tprivate constructor() {}\n\n\terror(title: string, message: string) {\n\t\tconst multiline = message.includes(\"\\n\")\n\t\tif (multiline) {\n\t\t\tconsole.error(`${chalk.red(title)}:\\n${message}`)\n\t\t} else {\n\t\t\tconsole.error(`${chalk.red(title)}: ${message}`)\n\t\t}\n\t}\n}\n\nexport const logger = Logger.getInstance()\n",
7
- "import { execSync } from \"child_process\"\nimport { access, appendFile, writeFile } from \"fs/promises\"\nimport { dirname, join, resolve } from \"path\"\nimport { readPackageUp } from \"read-package-up\"\nimport { fileURLToPath } from \"url\"\n\nexport interface ToolConfig {\n\tname: string\n\ttitle: string\n\tcommand: string\n\targs: string[]\n\tconfigArg?: string\n\tconfigFile?: string\n\tignoreArg?: string\n\tignoreFile?: string\n}\n\ninterface FailureLogData {\n\ttool: string\n\ttoolVersion?: string\n\tcommand: string\n\targs: string[]\n\texitCode?: number\n\tstdout?: string\n\tstderr?: string\n\tworkingDir: string\n\ttimestamp: string\n}\n\nexport async function runTool(tool: ToolConfig): Promise<boolean> {\n\tconst packageRoot = await getPackageRoot()\n\n\tconst args = [...tool.args]\n\n\t// Add config file if specified\n\tif (tool.configArg && tool.configFile) {\n\t\tconst configPath = resolve(packageRoot, tool.configFile)\n\t\targs.push(tool.configArg, configPath)\n\t}\n\n\t// Add ignore file if specified\n\tif (tool.ignoreArg && tool.ignoreFile) {\n\t\tconst ignorePath = resolve(packageRoot, tool.ignoreFile)\n\t\targs.push(tool.ignoreArg, ignorePath)\n\t}\n\n\ttry {\n\t\tconst command = `${tool.command} ${args.join(\" \")}`\n\t\tconsole.info(`🔧 Running ${tool.title}...`)\n\t\tconsole.info(` Command: ${command}`)\n\n\t\t// Capture output to suppress it on success\n\t\texecSync(command, {\n\t\t\tstdio: \"pipe\",\n\t\t\tcwd: process.cwd(),\n\t\t\tencoding: \"utf8\"\n\t\t})\n\n\t\tconsole.info(`✅ ${tool.title} completed`)\n\t\treturn true\n\t} catch (error) {\n\t\t// On error, capture and save failure log\n\t\tconsole.info(`❌ ${tool.title} failed`)\n\n\t\tlet stdout = \"\"\n\t\tlet stderr = \"\"\n\t\tlet exitCode: number | undefined\n\t\tlet errorMessage = \"\"\n\n\t\tif (error && typeof error === \"object\") {\n\t\t\tconst execError = error as {\n\t\t\t\tstdout?: string | Buffer\n\t\t\t\tstderr?: string | Buffer\n\t\t\t\tmessage?: string\n\t\t\t\tstatus?: number\n\t\t\t\tsignal?: string\n\t\t\t}\n\t\t\tstdout = execError.stdout?.toString() || \"\"\n\t\t\tstderr = execError.stderr?.toString() || \"\"\n\t\t\terrorMessage = execError.message || \"\"\n\t\t\texitCode = execError.status\n\t\t} else {\n\t\t\terrorMessage = String(error)\n\t\t}\n\n\t\t// Save failure log\n\t\tconst logData: {\n\t\t\ttool: string\n\t\t\tcommand: string\n\t\t\targs: string[]\n\t\t\texitCode?: number\n\t\t\tstdout?: string\n\t\t\tstderr?: string\n\t\t\tworkingDir: string\n\t\t\ttimestamp: string\n\t\t} = {\n\t\t\ttool: tool.name,\n\t\t\tcommand: tool.command,\n\t\t\targs,\n\t\t\tworkingDir: process.cwd(),\n\t\t\ttimestamp: new Date().toISOString()\n\t\t}\n\t\tif (exitCode !== undefined) {\n\t\t\tlogData.exitCode = exitCode\n\t\t}\n\t\tif (stdout) {\n\t\t\tlogData.stdout = stdout\n\t\t}\n\t\tif (stderr || errorMessage) {\n\t\t\tlogData.stderr = stderr || errorMessage\n\t\t}\n\t\tconst logPath = await saveFailureLog(logData)\n\n\t\t// Show concise error output\n\t\tif (stdout || stderr || errorMessage) {\n\t\t\tconst output = stdout || stderr || errorMessage\n\t\t\t// Show first few lines only\n\t\t\tconst lines = output.split(\"\\n\").slice(0, 5)\n\t\t\tconsole.error(lines.join(\"\\n\"))\n\t\t\tif (output.split(\"\\n\").length > 5) {\n\t\t\t\tconsole.error(\"...\")\n\t\t\t}\n\t\t}\n\n\t\t// Show log path message\n\t\tif (logPath) {\n\t\t\t// Log is in CWD, so just show the filename\n\t\t\tconst filename = logPath.split(/[/\\\\]/).pop() || logPath\n\n\t\t\tconsole.error(\"\")\n\t\t\tconsole.error(`📄 Full failure log saved to: ${filename}`)\n\n\t\t\t// Append to GitHub Step Summary if in CI\n\t\t\tawait appendToGitHubStepSummary(\n\t\t\t\t`### ❌ ${tool.title} Failed\\n\\n` +\n\t\t\t\t\t`**Full log:** \\`${filename}\\`\\n\\n` +\n\t\t\t\t\t`<details><summary>View error details</summary>\\n\\n` +\n\t\t\t\t\t`\\`\\`\\`\\n${(stderr || stdout || errorMessage).slice(0, 500)}\\n\\`\\`\\`\\n\\n` +\n\t\t\t\t\t`</details>`\n\t\t\t)\n\t\t} else {\n\t\t\tconsole.error(stdout || stderr || errorMessage)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\n// Find the package root using read-package-up\nexport async function getPackageRoot(): Promise<string> {\n\tconst __filename = fileURLToPath(import.meta.url)\n\tconst __dirname = dirname(__filename)\n\n\tconst result = await readPackageUp({ cwd: __dirname })\n\tif (!result) {\n\t\tthrow new Error(\"Could not find package.json\")\n\t}\n\t// result.path is the path to package.json, so get its directory\n\treturn dirname(result.path)\n}\n\nexport async function saveFailureLog(data: FailureLogData): Promise<string | null> {\n\ttry {\n\t\tconst cwd = process.cwd()\n\n\t\t// Create log entry\n\t\tconst logEntry = createLogEntry(data)\n\n\t\t// Generate filename: circlesac-lint-<program>-<timestamp>.log\n\t\tconst timestamp = new Date().toISOString().replace(/[:.]/g, \"-\")\n\t\tconst filename = `circlesac-lint-${data.tool}-${timestamp}.log`\n\t\tconst logPath = join(cwd, filename)\n\n\t\t// Write log file\n\t\tawait writeFile(logPath, logEntry, \"utf8\")\n\n\t\treturn logPath\n\t} catch {\n\t\t// Silently fail if we can't write logs\n\t\treturn null\n\t}\n}\n\nfunction createLogEntry(data: FailureLogData): string {\n\tconst lines: string[] = []\n\tlines.push(\"=\".repeat(80))\n\tlines.push(`Tool: ${data.tool}`)\n\tif (data.toolVersion) lines.push(`Version: ${data.toolVersion}`)\n\tlines.push(`Command: ${data.command}`)\n\tlines.push(`Arguments: ${JSON.stringify(data.args)}`)\n\tif (data.exitCode !== undefined) lines.push(`Exit Code: ${data.exitCode}`)\n\tlines.push(`Working Directory: ${data.workingDir}`)\n\tlines.push(`Timestamp: ${data.timestamp}`)\n\tlines.push(\"=\".repeat(80))\n\tlines.push(\"\")\n\n\tif (data.stdout) {\n\t\tconst stdout = data.stdout.toString()\n\t\tlines.push(\"STDOUT:\")\n\t\tlines.push(\"-\".repeat(80))\n\t\tlines.push(stdout)\n\t\tlines.push(\"\")\n\t}\n\n\tif (data.stderr) {\n\t\tconst stderr = data.stderr.toString()\n\t\tlines.push(\"STDERR:\")\n\t\tlines.push(\"-\".repeat(80))\n\t\tlines.push(stderr)\n\t\tlines.push(\"\")\n\t}\n\n\treturn lines.join(\"\\n\")\n}\n\nexport async function appendToGitHubStepSummary(message: string): Promise<void> {\n\ttry {\n\t\tconst summaryPath = process.env.GITHUB_STEP_SUMMARY\n\t\tif (!summaryPath) return\n\n\t\t// Check if file exists, then append with newline prefix if it does\n\t\tlet summaryContent = \"\"\n\t\ttry {\n\t\t\tawait access(summaryPath)\n\t\t\tsummaryContent = \"\\n\"\n\t\t} catch {\n\t\t\t// File doesn't exist, start fresh\n\t\t}\n\t\tawait appendFile(summaryPath, summaryContent + message + \"\\n\", \"utf8\")\n\t} catch {\n\t\t// Silently fail if we can't write to GitHub summary (env var not set or other errors)\n\t}\n}\n",
7
+ "import { execSync } from \"child_process\"\nimport { access, appendFile, writeFile } from \"fs/promises\"\nimport { tmpdir } from \"os\"\nimport { dirname, join, resolve } from \"path\"\nimport { readPackageUp } from \"read-package-up\"\nimport { fileURLToPath } from \"url\"\n\nexport interface ToolConfig {\n\tname: string\n\ttitle: string\n\tcommand: string\n\targs: string[]\n\tconfigArg?: string\n\tconfigFile?: string\n\tignoreArg?: string\n\tignoreFile?: string\n}\n\ninterface FailureLogData {\n\ttool: string\n\ttoolVersion?: string\n\tcommand: string\n\targs: string[]\n\texitCode?: number\n\tstdout?: string\n\tstderr?: string\n\tworkingDir: string\n\ttimestamp: string\n}\n\nexport async function runTool(tool: ToolConfig): Promise<boolean> {\n\tconst packageRoot = await getPackageRoot()\n\n\tconst args = [...tool.args]\n\n\t// Add config file if specified\n\tif (tool.configArg && tool.configFile) {\n\t\tconst configPath = resolve(packageRoot, tool.configFile)\n\t\targs.push(tool.configArg, configPath)\n\t}\n\n\t// Add ignore file if specified\n\tif (tool.ignoreArg && tool.ignoreFile) {\n\t\tconst ignorePath = resolve(packageRoot, tool.ignoreFile)\n\t\targs.push(tool.ignoreArg, ignorePath)\n\t}\n\n\ttry {\n\t\tconst command = `${tool.command} ${args.join(\" \")}`\n\t\tconsole.info(`🔧 Running ${tool.title}...`)\n\t\tconsole.info(` Command: ${command}`)\n\n\t\t// Capture output to suppress it on success\n\t\texecSync(command, {\n\t\t\tstdio: \"pipe\",\n\t\t\tcwd: process.cwd(),\n\t\t\tencoding: \"utf8\"\n\t\t})\n\n\t\tconsole.info(`✅ ${tool.title} completed`)\n\t\treturn true\n\t} catch (error) {\n\t\t// On error, capture and save failure log\n\t\tconsole.info(`❌ ${tool.title} failed`)\n\n\t\tlet stdout = \"\"\n\t\tlet stderr = \"\"\n\t\tlet exitCode: number | undefined\n\t\tlet errorMessage = \"\"\n\n\t\tif (error && typeof error === \"object\") {\n\t\t\tconst execError = error as {\n\t\t\t\tstdout?: string | Buffer\n\t\t\t\tstderr?: string | Buffer\n\t\t\t\tmessage?: string\n\t\t\t\tstatus?: number\n\t\t\t\tsignal?: string\n\t\t\t}\n\t\t\tstdout = execError.stdout?.toString() || \"\"\n\t\t\tstderr = execError.stderr?.toString() || \"\"\n\t\t\terrorMessage = execError.message || \"\"\n\t\t\texitCode = execError.status\n\t\t} else {\n\t\t\terrorMessage = String(error)\n\t\t}\n\n\t\t// Save failure log\n\t\tconst logData: {\n\t\t\ttool: string\n\t\t\tcommand: string\n\t\t\targs: string[]\n\t\t\texitCode?: number\n\t\t\tstdout?: string\n\t\t\tstderr?: string\n\t\t\tworkingDir: string\n\t\t\ttimestamp: string\n\t\t} = {\n\t\t\ttool: tool.name,\n\t\t\tcommand: tool.command,\n\t\t\targs,\n\t\t\tworkingDir: process.cwd(),\n\t\t\ttimestamp: new Date().toISOString()\n\t\t}\n\t\tif (exitCode !== undefined) {\n\t\t\tlogData.exitCode = exitCode\n\t\t}\n\t\tif (stdout) {\n\t\t\tlogData.stdout = stdout\n\t\t}\n\t\tif (stderr || errorMessage) {\n\t\t\tlogData.stderr = stderr || errorMessage\n\t\t}\n\t\tconst logPath = await saveFailureLog(logData)\n\n\t\t// Show concise error output\n\t\tif (stdout || stderr || errorMessage) {\n\t\t\tconst output = stdout || stderr || errorMessage\n\t\t\t// Show first few lines only\n\t\t\tconst lines = output.split(\"\\n\").slice(0, 5)\n\t\t\tconsole.error(lines.join(\"\\n\"))\n\t\t\tif (output.split(\"\\n\").length > 5) {\n\t\t\t\tconsole.error(\"...\")\n\t\t\t}\n\t\t}\n\n\t\t// Show log path message\n\t\tif (logPath) {\n\t\t\t// Log is in tmp folder, show full path\n\t\t\tconsole.error(\"\")\n\t\t\tconsole.error(`📄 Full failure log saved to: ${logPath}`)\n\n\t\t\t// Append to GitHub Step Summary if in CI\n\t\t\tawait appendToGitHubStepSummary(\n\t\t\t\t`### ❌ ${tool.title} Failed\\n\\n` +\n\t\t\t\t\t`**Full log:** \\`${logPath}\\`\\n\\n` +\n\t\t\t\t\t`<details><summary>View error details</summary>\\n\\n` +\n\t\t\t\t\t`\\`\\`\\`\\n${(stderr || stdout || errorMessage).slice(0, 500)}\\n\\`\\`\\`\\n\\n` +\n\t\t\t\t\t`</details>`\n\t\t\t)\n\t\t} else {\n\t\t\tconsole.error(stdout || stderr || errorMessage)\n\t\t}\n\n\t\treturn false\n\t}\n}\n\n// Find the package root using read-package-up\nexport async function getPackageRoot(): Promise<string> {\n\tconst __filename = fileURLToPath(import.meta.url)\n\tconst __dirname = dirname(__filename)\n\n\tconst result = await readPackageUp({ cwd: __dirname })\n\tif (!result) {\n\t\tthrow new Error(\"Could not find package.json\")\n\t}\n\t// result.path is the path to package.json, so get its directory\n\treturn dirname(result.path)\n}\n\nexport async function saveFailureLog(data: FailureLogData): Promise<string | null> {\n\ttry {\n\t\tconst tmpDir = tmpdir()\n\n\t\t// Create log entry\n\t\tconst logEntry = createLogEntry(data)\n\n\t\t// Generate filename: circlesac-lint-<program>-<timestamp>.log\n\t\tconst timestamp = new Date().toISOString().replace(/[:.]/g, \"-\")\n\t\tconst filename = `circlesac-lint-${data.tool}-${timestamp}.log`\n\t\tconst logPath = join(tmpDir, filename)\n\n\t\t// Write log file\n\t\tawait writeFile(logPath, logEntry, \"utf8\")\n\n\t\treturn logPath\n\t} catch {\n\t\t// Silently fail if we can't write logs\n\t\treturn null\n\t}\n}\n\nfunction createLogEntry(data: FailureLogData): string {\n\tconst lines: string[] = []\n\tlines.push(\"=\".repeat(80))\n\tlines.push(`Tool: ${data.tool}`)\n\tif (data.toolVersion) lines.push(`Version: ${data.toolVersion}`)\n\tlines.push(`Command: ${data.command}`)\n\tlines.push(`Arguments: ${JSON.stringify(data.args)}`)\n\tif (data.exitCode !== undefined) lines.push(`Exit Code: ${data.exitCode}`)\n\tlines.push(`Working Directory: ${data.workingDir}`)\n\tlines.push(`Timestamp: ${data.timestamp}`)\n\tlines.push(\"=\".repeat(80))\n\tlines.push(\"\")\n\n\tif (data.stdout) {\n\t\tconst stdout = data.stdout.toString()\n\t\tlines.push(\"STDOUT:\")\n\t\tlines.push(\"-\".repeat(80))\n\t\tlines.push(stdout)\n\t\tlines.push(\"\")\n\t}\n\n\tif (data.stderr) {\n\t\tconst stderr = data.stderr.toString()\n\t\tlines.push(\"STDERR:\")\n\t\tlines.push(\"-\".repeat(80))\n\t\tlines.push(stderr)\n\t\tlines.push(\"\")\n\t}\n\n\treturn lines.join(\"\\n\")\n}\n\nexport async function appendToGitHubStepSummary(message: string): Promise<void> {\n\ttry {\n\t\tconst summaryPath = process.env.GITHUB_STEP_SUMMARY\n\t\tif (!summaryPath) return\n\n\t\t// Check if file exists, then append with newline prefix if it does\n\t\tlet summaryContent = \"\"\n\t\ttry {\n\t\t\tawait access(summaryPath)\n\t\t\tsummaryContent = \"\\n\"\n\t\t} catch {\n\t\t\t// File doesn't exist, start fresh\n\t\t}\n\t\tawait appendFile(summaryPath, summaryContent + message + \"\\n\", \"utf8\")\n\t} catch {\n\t\t// Silently fail if we can't write to GitHub summary (env var not set or other errors)\n\t}\n}\n",
8
8
  "import { BaseCommand } from \"../utils/base.js\"\nimport { runTool, type ToolConfig } from \"../utils/tools.js\"\n\nconst tools: ToolConfig[] = [\n\t{\n\t\tname: \"oxlint\",\n\t\ttitle: \"Oxlint\",\n\t\tcommand: \"npx oxlint\",\n\t\targs: [\"--fix\"]\n\t},\n\t{\n\t\tname: \"eslint\",\n\t\ttitle: \"ESLint\",\n\t\tcommand: \"npx eslint\",\n\t\targs: [\"--fix\"],\n\t\tconfigArg: \"--config\",\n\t\tconfigFile: \"eslint.config.mjs\"\n\t},\n\t{\n\t\tname: \"prettier\",\n\t\ttitle: \"Prettier\",\n\t\tcommand: \"npx prettier@latest\",\n\t\targs: [\"'**/*.{ts,tsx,js,jsx,json,jsonc,md,cjs,mjs,mts,yml,yaml}'\", \"'!**/sst-env.d.ts'\", \"--write\"],\n\t\tconfigArg: \"--config\",\n\t\tconfigFile: \"prettier.config.mjs\",\n\t\tignoreArg: \"--ignore-path\",\n\t\tignoreFile: \".prettierignore\"\n\t},\n\t{\n\t\tname: \"biome\",\n\t\ttitle: \"Biome\",\n\t\tcommand: \"npx @biomejs/biome\",\n\t\targs: [\"check\", \"--write\"],\n\t\tconfigArg: \"--config-path\",\n\t\tconfigFile: \"biome.jsonc\"\n\t}\n]\n\nexport class LintCommand extends BaseCommand {\n\tconstructor() {\n\t\tsuper(\"lint\")\n\t\tthis.option(\"--all\", \"Run all tools\")\n\t\tfor (const tool of tools) {\n\t\t\tthis.option(`--${tool.name}`, `Run ${tool.title}`)\n\t\t}\n\t}\n\n\tprotected async execute(options: Record<string, boolean>) {\n\t\tconsole.info(\"🔧 Running lint tools...\")\n\n\t\t// Validate options and determine which tools to run\n\t\tconst enabledTools = this.getEnabledTools(tools, options)\n\n\t\t// Run enabled tools sequentially\n\t\tconst results: { tool: string; success: boolean }[] = []\n\t\tfor (const tool of enabledTools) {\n\t\t\tresults.push({\n\t\t\t\ttool: tool.name,\n\t\t\t\tsuccess: await runTool(tool)\n\t\t\t})\n\t\t}\n\n\t\t// Report results\n\t\tconst failedTools = results.filter((r) => !r.success).map((r) => r.tool)\n\t\tconst successfulTools = results.filter((r) => r.success).map((r) => r.tool)\n\n\t\tif (successfulTools.length > 0) {\n\t\t\tconsole.info(`✓ Completed: ${successfulTools.join(\", \")}`)\n\t\t}\n\n\t\tif (failedTools.length > 0) {\n\t\t\tconsole.error(`✗ Failed: ${failedTools.join(\", \")}`)\n\t\t\tprocess.exitCode = 1\n\t\t}\n\t}\n\n\tprivate getEnabledTools(tools: ToolConfig[], options: Record<string, boolean>): ToolConfig[] {\n\t\t// If --all is specified, run all tools (regardless of individual tool options)\n\t\tif (options.all) return tools\n\n\t\t// Find all specified individual tool options\n\t\tconst selectedTools = tools.filter((tool) => options[tool.name])\n\t\tif (selectedTools.length !== 0) return selectedTools\n\n\t\t// No tools selected, show help and exit\n\t\tthis.help()\n\t\tprocess.exit(0)\n\t\treturn [] // This line is unreachable, but satisfies TypeScript\n\t}\n}\n",
9
9
  "#!/usr/bin/env node\n\nimport packageJson from \"../package.json\" with { type: \"json\" }\nimport { LintCommand } from \"./commands/lint.js\"\n\nconst program = new LintCommand()\nprogram.name(packageJson.name)\nprogram.description(packageJson.description)\nprogram.version(packageJson.version)\n\nprogram.parse()\n"
10
10
  ],
11
- "mappings": ";86BAAA,kBAAS,kBCAT,qBAEO,MAAM,CAAO,OACJ,gBAER,YAAW,EAAW,CAC5B,GAAI,CAAC,EAAO,SACX,EAAO,SAAW,IAAI,EAEvB,OAAO,EAAO,SAGP,WAAW,EAAG,EAEtB,KAAK,CAAC,EAAe,EAAiB,CAErC,GADkB,EAAQ,SAAS;AAAA,CAAI,EAEtC,QAAQ,MAAM,GAAG,EAAM,IAAI,CAAK;AAAA,EAAO,GAAS,EAEhD,aAAQ,MAAM,GAAG,EAAM,IAAI,CAAK,MAAM,GAAS,EAGlD,CAEO,IAAM,EAAS,EAAO,YAAY,EDpBlC,MAAe,UAAoB,CAAQ,CACjD,WAAW,CAAC,EAAc,CACzB,MAAM,CAAI,EACV,KAAK,OAAO,KAAK,gBAAgB,KAAK,IAAI,CAAC,OAG9B,gBAAe,IAAI,EAAiB,CACjD,GAAI,CACH,MAAM,KAAK,QAAQ,GAAG,CAAI,EACzB,MAAO,EAAO,CACf,KAAK,SAAS,CAAK,GAIb,QAAQ,IAAI,EAAmB,CACtC,QAAQ,MAAM,EAEd,QAAW,KAAS,EACnB,GAAI,aAAiB,MAAO,CAG3B,GAFA,EAAO,MAAM,QAAS,EAAM,OAAO,EAE/B,EAAM,MACT,QAAQ,MAAM,EACd,EAAO,MAAM,cAAe,EAAM,KAAK,EAGxC,GAAI,EAAM,MACT,QAAQ,MAAM,EACd,EAAO,MAAM,YAAa,OAAO,EAAM,KAAK,CAAC,EAG9C,OAAO,MAAM,UAAW,OAAO,CAAK,CAAC,EAIvC,QAAQ,MAAM,EACd,EAAO,MAAM,UAAW,KAAK,KAAK,CAAC,EACnC,EAAO,MAAM,OAAQ,KAAK,IAAI,EAAE,SAAS,CAAC,EAI5C,CE7CA,mBAAS,sBACT,iBAAS,gBAAQ,eAAY,oBAC7B,kBAAS,UAAS,aAAM,aACxB,wBAAS,wBACT,wBAAS,YAyBT,eAAsB,CAAO,CAAC,EAAoC,CACjE,IAAM,EAAc,MAAM,EAAe,EAEnC,EAAO,CAAC,GAAG,EAAK,IAAI,EAG1B,GAAI,EAAK,WAAa,EAAK,WAAY,CACtC,IAAM,EAAa,EAAQ,EAAa,EAAK,UAAU,EACvD,EAAK,KAAK,EAAK,UAAW,CAAU,EAIrC,GAAI,EAAK,WAAa,EAAK,WAAY,CACtC,IAAM,EAAa,EAAQ,EAAa,EAAK,UAAU,EACvD,EAAK,KAAK,EAAK,UAAW,CAAU,EAGrC,GAAI,CACH,IAAM,EAAU,GAAG,EAAK,WAAW,EAAK,KAAK,GAAG,IAYhD,OAXA,QAAQ,KAAK,wBAAa,EAAK,UAAU,EACzC,QAAQ,KAAK,eAAe,GAAS,EAGrC,EAAS,EAAS,CACjB,MAAO,OACP,IAAK,QAAQ,IAAI,EACjB,SAAU,MACX,CAAC,EAED,QAAQ,KAAK,KAAI,EAAK,iBAAiB,EAChC,GACN,MAAO,EAAO,CAEf,QAAQ,KAAK,KAAI,EAAK,cAAc,EAEpC,IAAI,EAAS,GACT,EAAS,GACT,EACA,EAAe,GAEnB,GAAI,GAAS,OAAO,IAAU,SAAU,CACvC,IAAM,EAAY,EAOlB,EAAS,EAAU,QAAQ,SAAS,GAAK,GACzC,EAAS,EAAU,QAAQ,SAAS,GAAK,GACzC,EAAe,EAAU,SAAW,GACpC,EAAW,EAAU,OAErB,OAAe,OAAO,CAAK,EAI5B,IAAM,EASF,CACH,KAAM,EAAK,KACX,QAAS,EAAK,QACd,OACA,WAAY,QAAQ,IAAI,EACxB,UAAW,IAAI,KAAK,EAAE,YAAY,CACnC,EACA,GAAI,IAAa,OAChB,EAAQ,SAAW,EAEpB,GAAI,EACH,EAAQ,OAAS,EAElB,GAAI,GAAU,EACb,EAAQ,OAAS,GAAU,EAE5B,IAAM,EAAU,MAAM,EAAe,CAAO,EAG5C,GAAI,GAAU,GAAU,EAAc,CACrC,IAAM,EAAS,GAAU,GAAU,EAE7B,EAAQ,EAAO,MAAM;AAAA,CAAI,EAAE,MAAM,EAAG,CAAC,EAE3C,GADA,QAAQ,MAAM,EAAM,KAAK;AAAA,CAAI,CAAC,EAC1B,EAAO,MAAM;AAAA,CAAI,EAAE,OAAS,EAC/B,QAAQ,MAAM,KAAK,EAKrB,GAAI,EAAS,CAEZ,IAAM,EAAW,EAAQ,MAAM,OAAO,EAAE,IAAI,GAAK,EAEjD,QAAQ,MAAM,EAAE,EAChB,QAAQ,MAAM,2CAAgC,GAAU,EAGxD,MAAM,EACL,SAAQ,EAAK;AAAA;AAAA,kBACO;AAAA;AAAA;AAAA;AAAA;AAAA,GAEP,GAAU,GAAU,GAAc,MAAM,EAAG,GAAG;AAAA;AAAA;AAAA,WAE5D,EAEA,aAAQ,MAAM,GAAU,GAAU,CAAY,EAG/C,MAAO,IAKT,eAAsB,CAAc,EAAoB,CACvD,IAAM,EAAa,EAAc,YAAY,GAAG,EAC1C,EAAY,EAAQ,CAAU,EAE9B,EAAS,MAAM,EAAc,CAAE,IAAK,CAAU,CAAC,EACrD,GAAI,CAAC,EACJ,MAAU,MAAM,6BAA6B,EAG9C,OAAO,EAAQ,EAAO,IAAI,EAG3B,eAAsB,CAAc,CAAC,EAA8C,CAClF,GAAI,CACH,IAAM,EAAM,QAAQ,IAAI,EAGlB,EAAW,EAAe,CAAI,EAG9B,EAAY,IAAI,KAAK,EAAE,YAAY,EAAE,QAAQ,QAAS,GAAG,EACzD,EAAW,kBAAkB,EAAK,QAAQ,QAC1C,EAAU,EAAK,EAAK,CAAQ,EAKlC,OAFA,MAAM,EAAU,EAAS,EAAU,MAAM,EAElC,EACN,KAAM,CAEP,OAAO,MAIT,SAAS,CAAc,CAAC,EAA8B,CACrD,IAAM,EAAkB,CAAC,EAGzB,GAFA,EAAM,KAAK,IAAI,OAAO,EAAE,CAAC,EACzB,EAAM,KAAK,SAAS,EAAK,MAAM,EAC3B,EAAK,YAAa,EAAM,KAAK,YAAY,EAAK,aAAa,EAG/D,GAFA,EAAM,KAAK,YAAY,EAAK,SAAS,EACrC,EAAM,KAAK,cAAc,KAAK,UAAU,EAAK,IAAI,GAAG,EAChD,EAAK,WAAa,OAAW,EAAM,KAAK,cAAc,EAAK,UAAU,EAMzE,GALA,EAAM,KAAK,sBAAsB,EAAK,YAAY,EAClD,EAAM,KAAK,cAAc,EAAK,WAAW,EACzC,EAAM,KAAK,IAAI,OAAO,EAAE,CAAC,EACzB,EAAM,KAAK,EAAE,EAET,EAAK,OAAQ,CAChB,IAAM,EAAS,EAAK,OAAO,SAAS,EACpC,EAAM,KAAK,SAAS,EACpB,EAAM,KAAK,IAAI,OAAO,EAAE,CAAC,EACzB,EAAM,KAAK,CAAM,EACjB,EAAM,KAAK,EAAE,EAGd,GAAI,EAAK,OAAQ,CAChB,IAAM,EAAS,EAAK,OAAO,SAAS,EACpC,EAAM,KAAK,SAAS,EACpB,EAAM,KAAK,IAAI,OAAO,EAAE,CAAC,EACzB,EAAM,KAAK,CAAM,EACjB,EAAM,KAAK,EAAE,EAGd,OAAO,EAAM,KAAK;AAAA,CAAI,EAGvB,eAAsB,CAAyB,CAAC,EAAgC,CAC/E,GAAI,CACH,IAAM,EAAc,QAAQ,IAAI,oBAChC,GAAI,CAAC,EAAa,OAGlB,IAAI,EAAiB,GACrB,GAAI,CACH,MAAM,EAAO,CAAW,EACxB,EAAiB;AAAA,EAChB,KAAM,EAGR,MAAM,EAAW,EAAa,EAAiB,EAAU;AAAA,EAAM,MAAM,EACpE,KAAM,GClOT,IAAM,EAAsB,CAC3B,CACC,KAAM,SACN,MAAO,SACP,QAAS,aACT,KAAM,CAAC,OAAO,CACf,EACA,CACC,KAAM,SACN,MAAO,SACP,QAAS,aACT,KAAM,CAAC,OAAO,EACd,UAAW,WACX,WAAY,mBACb,EACA,CACC,KAAM,WACN,MAAO,WACP,QAAS,sBACT,KAAM,CAAC,4DAA6D,qBAAsB,SAAS,EACnG,UAAW,WACX,WAAY,sBACZ,UAAW,gBACX,WAAY,iBACb,EACA,CACC,KAAM,QACN,MAAO,QACP,QAAS,qBACT,KAAM,CAAC,QAAS,SAAS,EACzB,UAAW,gBACX,WAAY,aACb,CACD,EAEO,MAAM,UAAoB,CAAY,CAC5C,WAAW,EAAG,CACb,MAAM,MAAM,EACZ,KAAK,OAAO,QAAS,eAAe,EACpC,QAAW,KAAQ,EAClB,KAAK,OAAO,KAAK,EAAK,OAAQ,OAAO,EAAK,OAAO,OAInC,QAAO,CAAC,EAAkC,CACzD,QAAQ,KAAK,oCAAyB,EAGtC,IAAM,EAAe,KAAK,gBAAgB,EAAO,CAAO,EAGlD,EAAgD,CAAC,EACvD,QAAW,KAAQ,EAClB,EAAQ,KAAK,CACZ,KAAM,EAAK,KACX,QAAS,MAAM,EAAQ,CAAI,CAC5B,CAAC,EAIF,IAAM,EAAc,EAAQ,OAAO,CAAC,IAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,IAAM,EAAE,IAAI,EACjE,EAAkB,EAAQ,OAAO,CAAC,IAAM,EAAE,OAAO,EAAE,IAAI,CAAC,IAAM,EAAE,IAAI,EAE1E,GAAI,EAAgB,OAAS,EAC5B,QAAQ,KAAK,gBAAe,EAAgB,KAAK,IAAI,GAAG,EAGzD,GAAI,EAAY,OAAS,EACxB,QAAQ,MAAM,aAAY,EAAY,KAAK,IAAI,GAAG,EAClD,QAAQ,SAAW,EAIb,eAAe,CAAC,EAAqB,EAAgD,CAE5F,GAAI,EAAQ,IAAK,OAAO,EAGxB,IAAM,EAAgB,EAAM,OAAO,CAAC,IAAS,EAAQ,EAAK,KAAK,EAC/D,GAAI,EAAc,SAAW,EAAG,OAAO,EAKvC,OAFA,KAAK,KAAK,EACV,QAAQ,KAAK,CAAC,EACP,CAAC,EAEV,CCpFA,IAAM,EAAU,IAAI,EACpB,EAAQ,KAAK,EAAY,IAAI,EAC7B,EAAQ,YAAY,EAAY,WAAW,EAC3C,EAAQ,QAAQ,EAAY,OAAO,EAEnC,EAAQ,MAAM",
12
- "debugId": "05C61895AA91C37A64756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "42A78A702138623764756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@circlesac/lint",
3
- "version": "0.0.25",
3
+ "version": "0.0.26",
4
4
  "type": "module",
5
5
  "main": "dist/main.js",
6
6
  "exports": {
@@ -52,10 +52,6 @@
52
52
  "start": "bun run build && bun run dist/main.js",
53
53
  "lint": "bun dev --all",
54
54
  "test": "vitest run --coverage",
55
- "deploy": "npm version patch --force && npm publish",
56
- "version:patch": "npm version patch",
57
- "version:minor": "npm version minor",
58
- "version:major": "npm version major",
59
55
  "prepublishOnly": "bun run build"
60
56
  },
61
57
  "license": "MIT"