@circlesac/lint 0.0.21 → 0.0.23

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/biome.jsonc CHANGED
@@ -62,6 +62,12 @@
62
62
  "!**/test/env.d.ts"
63
63
  ],
64
64
  "rules": {
65
+ "a11y": {
66
+ "noSvgWithoutTitle": "off",
67
+ "noStaticElementInteractions": "off",
68
+ "noLabelWithoutControl": "off",
69
+ "useKeyWithClickEvents": "off"
70
+ },
65
71
  "correctness": {
66
72
  "noSwitchDeclarations": "off"
67
73
  },
@@ -90,7 +96,8 @@
90
96
  "noImplicitAnyLet": "off",
91
97
  "noAssignInExpressions": "off",
92
98
  "noGlobalIsNan": "off",
93
- "noArrayIndexKey": "off"
99
+ "noArrayIndexKey": "off",
100
+ "noUnknownAtRules": "off"
94
101
  },
95
102
  "performance": {
96
103
  "noDelete": "off",
@@ -112,7 +119,7 @@
112
119
  },
113
120
  "overrides": [
114
121
  {
115
- "includes": ["**/*.json", "**/*.js"],
122
+ "includes": ["**/*.json", "**/*.js", "**/*.mjs"],
116
123
  "javascript": {
117
124
  "formatter": {
118
125
  "semicolons": "always"
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- var a={name:"@circlesac/lint",version:"0.0.21",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:{"@tszen/trycatch":"^0.1.0",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",globals:"^16.3.0",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 g}from"commander";import d from"chalk";class m{static instance;static getInstance(){if(!m.instance)m.instance=new m;return m.instance}constructor(){}error(n,e){if(e.includes(`
2
+ var m={name:"@circlesac/lint",version:"0.0.23",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:{"@tszen/trycatch":"^0.1.0",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",globals:"^16.3.0",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 g}from"commander";import d from"chalk";class c{static instance;static getInstance(){if(!c.instance)c.instance=new c;return c.instance}constructor(){}error(n,e){if(e.includes(`
3
3
  `))console.error(`${d.red(n)}:
4
- ${e}`);else console.error(`${d.red(n)}: ${e}`)}}var c=m.getInstance();class b extends g{constructor(n){super(n);this.action(this.executeInternal.bind(this))}async executeInternal(...n){try{await this.execute(...n)}catch(e){this.logError(e)}}logError(...n){console.error();for(let e of n)if(e instanceof Error){if(c.error("Error",e.message),e.stack)console.error(),c.error("Stack trace",e.stack);if(e.cause)console.error(),c.error("Caused by",String(e.cause))}else c.error("Message",String(e));console.error(),c.error("Command",this.name()),c.error("Time",Date.now().toString())}}import{execSync as j}from"child_process";import{dirname as w,resolve as u}from"path";import{readPackageUp as x}from"read-package-up";import{fileURLToPath as E}from"url";async function f(n){let e=await C(),i=u(e,n.configFile),s=[...n.args];if(s.push(n.configArg,i),n.ignoreArg&&n.ignoreFile){let r=u(e,n.ignoreFile);s.push(n.ignoreArg,r)}try{let r=`${n.command} ${s.join(" ")}`;return console.info(`\uD83D\uDD27 Running ${n.title}...`),console.info(` Command: ${r}`),j(r,{stdio:"pipe",cwd:process.cwd(),encoding:"utf8"}),console.info(`✅ ${n.title} completed`),!0}catch(r){if(console.info(`❌ ${n.title} failed`),r instanceof Error&&"stdout"in r)console.error(r.stdout);else if(r instanceof Error&&"stderr"in r)console.error(r.stderr);else console.error(String(r));return!1}}async function C(){let n=E(import.meta.url),e=w(n),i=await x({cwd:e});if(!i)throw new Error("Could not find package.json");return u(i.path,"..")}var h=[{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 v extends b{constructor(){super("lint");this.option("--all","Run all tools");for(let n of h)this.option(`--${n.name}`,`Run ${n.title}`)}async execute(n){console.info("\uD83D\uDD27 Running lint tools...");let e=this.getEnabledTools(h,n),i=[];for(let t of e)i.push({tool:t.name,success:await f(t)});let s=i.filter((t)=>!t.success).map((t)=>t.tool),r=i.filter((t)=>t.success).map((t)=>t.tool);if(r.length>0)console.info(`✓ Completed: ${r.join(", ")}`);if(s.length>0)console.error(`✗ Failed: ${s.join(", ")}`),process.exitCode=1}getEnabledTools(n,e){if(e.all)return n;let i=n.filter((s)=>e[s.name]);if(i.length!==0)return i;this.help()}}var p=new v;p.name(a.name);p.description(a.description);p.version(a.version);p.parse();
4
+ ${e}`);else console.error(`${d.red(n)}: ${e}`)}}var s=c.getInstance();class p extends g{constructor(n){super(n);this.action(this.executeInternal.bind(this))}async executeInternal(...n){try{await this.execute(...n)}catch(e){this.logError(e)}}logError(...n){console.error();for(let e of n)if(e instanceof Error){if(s.error("Error",e.message),e.stack)console.error(),s.error("Stack trace",e.stack);if(e.cause)console.error(),s.error("Caused by",String(e.cause))}else s.error("Message",String(e));console.error(),s.error("Command",this.name()),s.error("Time",Date.now().toString())}}import{execSync as j}from"child_process";import{dirname as w,resolve as b}from"path";import{readPackageUp as x}from"read-package-up";import{fileURLToPath as E}from"url";async function f(n){let e=await C(),i=[...n.args];if(n.configArg&&n.configFile){let r=b(e,n.configFile);i.push(n.configArg,r)}if(n.ignoreArg&&n.ignoreFile){let r=b(e,n.ignoreFile);i.push(n.ignoreArg,r)}try{let r=`${n.command} ${i.join(" ")}`;return console.info(`\uD83D\uDD27 Running ${n.title}...`),console.info(` Command: ${r}`),j(r,{stdio:"pipe",cwd:process.cwd(),encoding:"utf8"}),console.info(`✅ ${n.title} completed`),!0}catch(r){if(console.info(`❌ ${n.title} failed`),r instanceof Error&&"stdout"in r)console.error(r.stdout);else if(r instanceof Error&&"stderr"in r)console.error(r.stderr);else console.error(String(r));return!1}}async function C(){let n=E(import.meta.url),e=w(n),i=await x({cwd:e});if(!i)throw new Error("Could not find package.json");return b(i.path,"..")}var h=[{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 u extends p{constructor(){super("lint");this.option("--all","Run all tools");for(let n of h)this.option(`--${n.name}`,`Run ${n.title}`)}async execute(n){console.info("\uD83D\uDD27 Running lint tools...");let e=this.getEnabledTools(h,n),i=[];for(let t of e)i.push({tool:t.name,success:await f(t)});let r=i.filter((t)=>!t.success).map((t)=>t.tool),v=i.filter((t)=>t.success).map((t)=>t.tool);if(v.length>0)console.info(`✓ Completed: ${v.join(", ")}`);if(r.length>0)console.error(`✗ Failed: ${r.join(", ")}`),process.exitCode=1}getEnabledTools(n,e){if(e.all)return n;let i=n.filter((r)=>e[r.name]);if(i.length!==0)return i;this.help()}}var a=new u;a.name(m.name);a.description(m.description);a.version(m.version);a.parse();
5
5
 
6
- //# debugId=FFB56AD2837D9EB964756E2164756E21
6
+ //# debugId=893BB9AF34AC60D764756E2164756E21
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 { dirname, 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\nexport async function runTool(tool: ToolConfig): Promise<boolean> {\n\tconst packageRoot = await getPackageRoot()\n\tconst configPath = resolve(packageRoot, tool.configFile)\n\n\tconst args = [...tool.args]\n\targs.push(tool.configArg, configPath)\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, show the actual tool output\n\t\tconsole.info(`❌ ${tool.title} failed`)\n\t\tif (error instanceof Error && \"stdout\" in error) {\n\t\t\tconsole.error(error.stdout)\n\t\t} else if (error instanceof Error && \"stderr\" in error) {\n\t\t\tconsole.error(error.stderr)\n\t\t} else {\n\t\t\tconsole.error(String(error))\n\t\t}\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\treturn resolve(result.path, \"..\")\n}\n",
8
- "import { BaseCommand } from \"../utils/base.js\"\nimport { runTool, type ToolConfig } from \"../utils/tools.js\"\n\nconst tools: ToolConfig[] = [\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>) {\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\tthis.help()\n\t}\n}\n",
7
+ "import { execSync } from \"child_process\"\nimport { dirname, 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\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, show the actual tool output\n\t\tconsole.info(`❌ ${tool.title} failed`)\n\t\tif (error instanceof Error && \"stdout\" in error) {\n\t\t\tconsole.error(error.stdout)\n\t\t} else if (error instanceof Error && \"stderr\" in error) {\n\t\t\tconsole.error(error.stderr)\n\t\t} else {\n\t\t\tconsole.error(String(error))\n\t\t}\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\treturn resolve(result.path, \"..\")\n}\n",
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>) {\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\tthis.help()\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": ";29BAAA,kBAAS,kBCAT,qBAEO,MAAM,CAAO,OACJ,gBAER,YAAW,EAAW,CAC5B,IAAK,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,kBAAS,aAAS,aAClB,wBAAS,wBACT,wBAAS,YAaT,eAAsB,CAAO,CAAC,EAAoC,CACjE,IAAM,EAAc,MAAM,EAAe,EACnC,EAAa,EAAQ,EAAa,EAAK,UAAU,EAEjD,EAAO,CAAC,GAAG,EAAK,IAAI,EAI1B,GAHA,EAAK,KAAK,EAAK,UAAW,CAAU,EAGhC,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,CAGf,GADA,QAAQ,KAAK,KAAI,EAAK,cAAc,EAChC,aAAiB,OAAS,WAAY,EACzC,QAAQ,MAAM,EAAM,MAAM,EACpB,QAAI,aAAiB,OAAS,WAAY,EAChD,QAAQ,MAAM,EAAM,MAAM,EAE1B,aAAQ,MAAM,OAAO,CAAK,CAAC,EAE5B,MAAO,IAKT,eAAsB,CAAc,EAAoB,CACvD,IAAM,EAAa,EAAc,YAAY,GAAG,EAC1C,EAAY,EAAQ,CAAU,EAE9B,EAAS,MAAM,EAAc,CAAE,IAAK,CAAU,CAAC,EACrD,IAAK,EACJ,MAAM,IAAI,MAAM,6BAA6B,EAE9C,OAAO,EAAQ,EAAO,KAAM,IAAI,EC/DjC,IAAM,EAAsB,CAC3B,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,KAAO,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,EAAkC,CAE9E,GAAI,EAAQ,IAAK,OAAO,EAGxB,IAAM,EAAgB,EAAM,OAAO,CAAC,IAAS,EAAQ,EAAK,KAAK,EAC/D,GAAI,EAAc,SAAW,EAAG,OAAO,EAEvC,KAAK,KAAK,EAEZ,CC3EA,IAAM,EAAU,IAAI,EACpB,EAAQ,KAAK,EAAY,IAAI,EAC7B,EAAQ,YAAY,EAAY,WAAW,EAC3C,EAAQ,QAAQ,EAAY,OAAO,EAEnC,EAAQ,MAAM",
12
- "debugId": "FFB56AD2837D9EB964756E2164756E21",
11
+ "mappings": "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",
12
+ "debugId": "893BB9AF34AC60D764756E2164756E21",
13
13
  "names": []
14
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@circlesac/lint",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "type": "module",
5
5
  "main": "dist/main.js",
6
6
  "exports": {