{"_id":"ansimax","_rev":"48-68b96b5cd2d40d9fa41de268ba00c95b","name":"ansimax","dist-tags":{"latest":"1.7.1"},"versions":{"1.0.0":{"name":"ansimax","version":"1.0.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"MIT","_id":"ansimax@1.0.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"05a31cfc9568cb4e304a31b543a99518cf4a3874","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.0.0.tgz","fileCount":8,"integrity":"sha512-RoOlycXM7J717HKaEwo1fZNTE4yMnTb4Yh+0Uqlv6YcKczUaJ0uBIR/FSM3lthWHVTkIA9eYjVm4zBaLBnHtng==","signatures":[{"sig":"MEUCIGkAodQvfk43cOub5b9BzrEhqrulDcyNbjCwNYdsQ1n2AiEAvK8PiAQ2njeAu+5OZR0/bvv7ctxnJI2tn5+kruI+d/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213328},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"470bed59d2c493a66c9cf0d8674ed8c9bf73f90b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"6.0.3","@types/jest":"^29.5.0","@types/node":"^20.19.39","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.0.0_1777636506928_0.4715661527203683","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"ansimax","version":"1.1.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.1.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"c2893c78636ca3c82e4370ba36b0cb78c384a9f4","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.1.0.tgz","fileCount":22,"integrity":"sha512-D4WWfYCeeD+QWws45wC9rcPuAJl0wih772nKT+mXgwLkDHyBKxiIXjwLcdD0iQzUgIwSR4ejEk5YOAj4SQIULg==","signatures":[{"sig":"MEUCIG8mWz47uwmSWrPsUR5m7b0zFFmE88SVHPmO2wEa0657AiEAukfn3Q8tSAw8OhfBXUnSZLUY0zXHzXSxT7Cdqig1OeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633668},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5f3e7f3f8bcff16562dda5847ea6c6bd475480f2","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.1.0_1778951466900_0.442476097368687","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"ansimax","version":"1.1.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.1.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"5596a204ae9113316badfbfe59738c55266686ce","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.1.1.tgz","fileCount":35,"integrity":"sha512-O5tpwhjHpXF9QjFE6a+Knpze3i9bxoUm0KUxvVWIQZQh2z+jdaPi/GwHqBM8Odlm0d1cigQKGi/bA49BjnmkkA==","signatures":[{"sig":"MEYCIQClyvAb2plrlXmFVJq1BOuVHbxSqabVuweqn5SZDmuRUQIhAKSiyLUztLx0Bx1aRdmZVS6qqaE+vPg62mjCeUcjiVai","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":702842},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ea027fdd6b3c34312800db03039729ae0dd784b6","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.1.1_1779033527688_0.8607250388955134","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"ansimax","version":"1.1.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.1.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"691812ee39d172e0428360d220b45aab18aaf0e4","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.1.2.tgz","fileCount":35,"integrity":"sha512-0mGmyfU4e5aETmI3jov+zQmkmM8MoNNtKIGZUUcwtdVnJXnBKYZILm1jB5JmoDZQTu/0UXpt2C3dZYDtoYb/Vw==","signatures":[{"sig":"MEYCIQDOBmDgsoNDL2OoPZr83NGUgc754s2ZRe9mU8dcTnMXCAIhAKV78xAilfPZDpUmP2UYSde2EIrPIIFgRFPV6qlWcSac","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709472},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"a59e4007348b331deaea89c6e53fdb32e95791e0","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.1.2_1779584323216_0.10721670385058557","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"ansimax","version":"1.2.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"93adda22354bca66e5f478ef3de6fe4adec0c69f","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.0.tgz","fileCount":35,"integrity":"sha512-TjQ1HOxteiRem2sGbm03lhSHZbbGdNLRH2Hl04gYZcH8EO0jgBpdzQOxy6vq/32EVvrvQm9B+JBNiLxyO8El8A==","signatures":[{"sig":"MEQCIHGl7ntiknz2fHZDQJxImpNVZSdOExiNgcIPuZuwgNRhAiBHGbWUY1i/9nneaO9GP51Y3I5aHn3wNIx/Qx2nUdrQ+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":730661},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fe43df75735e5a0c6e776fa20f389c270636911d","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.0_1780187529942_0.26870770509293407","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"ansimax","version":"1.2.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"9c4952bc61f9c6a83ae5da1338747f41e210fbb8","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.1.tgz","fileCount":35,"integrity":"sha512-MmF3NVb3mV0+ZNasjGEKEUUIVz7sh/aT4lggHrGxVyD5MV0ocKsuysLQ3HlA4ZFIlRx+81Vn7GkMuHNnpzuSXA==","signatures":[{"sig":"MEQCIHo00vCP2hrPlTVYoiXgPN7H+u7iuUplAHX7y4Vp4LUxAiA9JYhQFV0vMCMoGXLmKmY4gMou8Uh/sKvG7qOufLsRTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731046},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bc946c13a5d2c77d04302af24f0a07f95d268776","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.1_1780188718000_0.1508126448711875","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"ansimax","version":"1.2.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"dc25d4dc3bd559bcf9591fdf5703dc7edf11cf7c","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.2.tgz","fileCount":35,"integrity":"sha512-NP3UMp2aoa9uf1+Y7yZDcwpnBDugs/L8LhmE2CAawO1XpjXNLB8g9lro+gHTjRKmaEMp5r0FUdTyjx8+Es/q1g==","signatures":[{"sig":"MEUCIHCGsc+GKhKVRkwTuVBMNFoRpT4uvsk436CVlnAUxGbiAiEAhjGBuDA08NaHog3Klb4bP8uW4kezz8HVeeaoKJVEHbU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":739040},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"7b213a5b0be5ce5556d3a18417e5d94869570672","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.2_1780460593249_0.24506007472625768","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"ansimax","version":"1.2.3","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.3","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"70c13adf7437345a91b2e4a22144c62b32e291bd","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.3.tgz","fileCount":35,"integrity":"sha512-qwdD9mxCsMNTaOnFtrVdUfPvgGM4hdHEcQW3pLNztrZcDxKWwSjhFwJk7IanN20QIpdqyahm0zs+lHswVxUZkg==","signatures":[{"sig":"MEUCIQCzab2/+hMtkViN3zEhLi8ZAxtPEq6CYDby+3T6xHjpaQIgf7jA3MZ+LlTN+kANQYJpIVQjyO6x082GV7tqQej5dEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747260},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"845afdfe86955950a3fa17bd97c042233c677bb5","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.3_1780514003564_0.8445313051211085","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"ansimax","version":"1.2.4","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.4","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"6ff7ee0d64c195164398685c6860df547bb4c4a1","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.4.tgz","fileCount":35,"integrity":"sha512-dY47iwa/y/MzTkextgUuw5bRV7or4ctv+6Kz3nEm/mOxsG7nWB6v0YxRhDvKExyzW2+56bVfLci1bzZ8pZ7p1A==","signatures":[{"sig":"MEQCIElU8iAzKwDhH35MXS0ceSr3wyOEmyTt3tIFWXnDwpTdAiA8HZ2Fepiwx5jmCU6ct+7JZUHoUQ634MBMnWcz8ConBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":756261},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"eccefc279d62966682d4bf9b344fa78c85dfb6ac","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.4_1780531602559_0.9715742347301217","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"ansimax","version":"1.2.5","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.5","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"fbd50a1f8308e07c323514c3aa05f748aa1a9eaa","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.5.tgz","fileCount":35,"integrity":"sha512-6YI/M1BuMbsXeE262C0NorFA4nW/3QOjLyJm+BjVpadEshqX5lEJmRT/PpfpIL3YU9ZqrHKfLsdsu5XjVTZQQw==","signatures":[{"sig":"MEUCIQD+Wnfrpm0aT4vunGwHJDXRv1ithY2KXMuwq387Q23k2wIgA5eUK2xXpTUYmTWq0Q2+JzUUc9/ou9T9H2uas/eqSFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":791563},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"879c216589a369c1f0b8f60fd6238993dfdc2b6f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.5_1780607012560_0.23538041063533743","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"ansimax","version":"1.2.6","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.6","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"be7a88572b0de12444553e54957d5a2f63863f3b","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.6.tgz","fileCount":35,"integrity":"sha512-OsdY9bONHTu82I4UheCYHaK0RKJQUoDDAbfpDDY82tiQaTMTnzKUxg0d6xhjRfNpcGSCJ0wjmKrCKGnB2BJ4Zw==","signatures":[{"sig":"MEUCIG9jwQLtj0IG2ZeQzk8fdbB8eUDATEDObr+pbM5mm6tjAiEAoPZGAFEGQcvQDImvjv7ryQvyXGrVOGWdOt25CWdTSTs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":805526},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4631f22044ecd1e64298af03e6ea19ff1a15fade","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.6_1780630507351_0.29980258973817464","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"ansimax","version":"1.2.7","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.7","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"92c92f7b35b8046396c1146cf86598b0ae49db3f","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.7.tgz","fileCount":35,"integrity":"sha512-XMjHv3kaBirlnAnZmCr9DQ1BJsk0K64uJUZsQ8Cv7vL/IAQz+jGaqL16/E71gUp+0j1A24rsvl5iG/LUYdSqKQ==","signatures":[{"sig":"MEUCIQD7U0N9vJNyfkr8SQKqagU3U4ucbKVucBn/DaD4Z9pOKgIgTxHA05pSNmzJ/6ozHWFED8IfIuDAMC6JEN5LQuQ+Hr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":811534},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4808e8c5baf564ede02fee5a1224e33b0278095b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.7_1780858823966_0.005644613975802182","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"ansimax","version":"1.2.8","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.2.8","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"3d710a9a098b1718f09d0a0ab67cc3c79af8b879","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.2.8.tgz","fileCount":35,"integrity":"sha512-MEJDgGkQoVNyN/vzPZPnGaWEiQxnDgzRIEbtUFD96JEhggReKCoWPPH+dujSAErwIdgfR6RT7b3A3EffhxM50w==","signatures":[{"sig":"MEQCIBq8b40l5qoWLWUUo5ljmAeL3P0p+E6VzBv1+hNNhB5oAiBdBGQY/b+RbunWRgJNb0XCVkG9RXckhWu1wjovYP2stA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":820921},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"29a676ef45bd0aa030994686efff1a07a4657806","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.2.8_1781045702945_0.6830795152834772","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"ansimax","version":"1.3.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"974e3127fb42baba814fe0ec720d9bab3410dc99","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.0.tgz","fileCount":35,"integrity":"sha512-Osg5E4qWQfjx4t2O4Rya5lmaB6/R6YQEWwPucFToolLoW4MjGxlmNotZdymSl94L/zpvE5L7wPxKfdqZoH22iA==","signatures":[{"sig":"MEYCIQCoNYfsrwcUwr6Lg/Drdy8dUzsMr7g0CLGcYvqKBKeBxQIhANiqwxv69Yncy+TstXyQtl+hcjPtGgeOU//xza9R2RRW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869021},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c517c6c9866ba80e863da58425ffa5afe6331d9f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.0_1781309547622_0.21047953390985663","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"ansimax","version":"1.3.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"e0803093a6142124ec9ebab9f04c38c86ec602bc","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.1.tgz","fileCount":35,"integrity":"sha512-nHXyR5cDpF53Fy5rf+oVTem47QMhj/lK7/wHgAYPbSP+iTTO1N4rMLDpN1HWA1rxw762GdzRa7CmpXXHQi7pWQ==","signatures":[{"sig":"MEQCIG2pCggzKIMoWpfPeDhhkfYHZDubD9VNiyJ7CyE2NJbgAiBiP0HPzIYeT1LSb/nkfKiDN1Rqu+CCExEL2cnF1026qw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":889797},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fdeae88112d8c82f2c6b00111510f646aae498b7","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.1_1781391526414_0.6833744933779136","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"ansimax","version":"1.3.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"0c64b967532cd450322a12c31217901d95a736e8","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.2.tgz","fileCount":40,"integrity":"sha512-U8czLhY414G2aDuBK4lHICMo2ESPkGTSJa5fM5qWbweC70QbzrEwitlt6AEm8AAEmJ+LEY11g59DATBuZrA/8A==","signatures":[{"sig":"MEQCID3M0Clqy/KDL6Ds+Zz8EqD8jxuM5DLeCspvUwLqB759AiA75JHdQvoJcQ/5ep/PzPhw9wQeM0WqipF21Z5HYE/Nug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":978214},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"ebd8daff802657971ade57747c1be10aa00b97fd","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.2_1781463868731_0.03422816433898768","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"ansimax","version":"1.3.3","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.3","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"8aae853a348b59de164d1486dcdf1b88a5fec718","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.3.tgz","fileCount":40,"integrity":"sha512-KmMci5ZsYagkEPnjjc7QdeqiOIeLiLvn2UhWKgHh7wvu7Yp5o6BBUao6iu+HDAzT9XMCxqVmYlUmVGx+9Y8Z5A==","signatures":[{"sig":"MEYCIQCNLqrPJUKv+dy2Ks/wto3jviLExrwXKWgNGCYLcDj1twIhALYEoukcMbFjuBZFZbr1OMWXikyAlf6p4WKttSJywYaG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004683},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5bf9006e9405272c409a44b4c882277ad341b35b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.3_1781634018146_0.766344954582572","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"ansimax","version":"1.3.4","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.4","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"42054e1828c52e1cad70f7a0514769522151c89f","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.4.tgz","fileCount":40,"integrity":"sha512-HwZDbePI+ZEKCDiFXq6VNxlgAPJ8cXDY06CFI4kVyaBO5k8xT8CSG2yDMDaTY1ipqqMP4FFnMdDD1hSm6Y/xmg==","signatures":[{"sig":"MEYCIQCgCaAykeVti4nVdcsihN/8FIRYzuylOqzehlidBu0EKAIhAMghr7fW9/pZviOD/H1RDenMyS8Y0wIcTOsf93yxjmgW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1031870},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"66a22006294a4a5d04681346b04fc0b6888b922b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.4_1781931169928_0.8206530085462709","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"ansimax","version":"1.3.5","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.5","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"222c6d7dd91b1261d83e844a704e53d8bda11640","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.5.tgz","fileCount":40,"integrity":"sha512-j/BXHBGgVY228H9boH2mCZJZP0O8xgOqLynKclDgpmcTorKxMU7HFnq8paf3YfYshJAxKu5XB02XIsNH40uMrA==","signatures":[{"sig":"MEQCIC2e+KQvOspuhEIVnAZp7lB0Ir4OiWuBnbzxYlxm0/uFAiAmqb/+mpyHkb3a6Egch13N55iCGauZsSrJ1Dpqes/jtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1069671},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"f612b96c052cfaa720beb5106dc19af6e01b0396","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.5_1782013878510_0.12561145829934395","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"ansimax","version":"1.3.6","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.6","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"46655776cc80479219d82ae50737ef2ef4f86a24","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.6.tgz","fileCount":40,"integrity":"sha512-7eNU9SAhPYX7l7vRvSZGKIylN9lhXuQt5ByQdOV3unoX4wLyLhdKqcj0M/ncyes6LU2aXzpcsSdCsYUdjteYvg==","signatures":[{"sig":"MEQCIAiMrqMLJmcwRqUtYbveqZ5afMavcBOLBP12CEtEhUvHAiAPiCx6oVXgoRY3IZAmdzpcbgg1eMlRoj/vLkNkLl9Klg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1072344},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6f99d4f07363a93248b73cf1a41688eb6d031b37","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.6_1782174945677_0.9784326910270997","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"ansimax","version":"1.3.7","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.3.7","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"cd67727be773ac34fa1eb2d85b24010f7349be19","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.3.7.tgz","fileCount":40,"integrity":"sha512-Pkxhc8IOMhS3OLw3GBlt1Gucb632ZtGfiE9nvufUElVCpa3Ub3i24vYAv2uAATMc13TDweIONxK7lRpDOJ074Q==","signatures":[{"sig":"MEUCIQCM0cmeeMfx8BIsfwJ7S3VLHMKkxrNqJb/KS3HddkmrTgIgXmRFjjcDQmyxXM/6qNkdLvbQ2EbcceV2K9K5DM5NLMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078340},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"18c004a565f7a48b375a1095b9c9765419f9ec5e","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.3.7_1782176780060_0.8517201315506697","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"ansimax","version":"1.4.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"6970a716b1c6d97ff3d95474e7f536e9c84e7791","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.0.tgz","fileCount":40,"integrity":"sha512-arWNVJ5F1eIVTZUEbSXLQwKb/EMs7zWB4c2cycHdHmtosZvJ52RZD5UCHS0VtnCWjBSkezOmwF3C8qp2W6rIHg==","signatures":[{"sig":"MEQCIDLJXG0yp4cdgH1lFUMTMabYZTv8MKL1w7ppfyV2e7OUAiAA8FZwCUmyjephcMigjK4dEAB5wz9jYiwhmzMPNB2fCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1111110},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"83420e218aae669f8bb24a91fbf1032dc472fd76","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.0_1782261543848_0.31831185552740826","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"ansimax","version":"1.4.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"44cbba1a61661adf989a98d506caad9700a27e62","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.1.tgz","fileCount":40,"integrity":"sha512-x8yRbdUtQ7wD8+I1hX2EOeBEC7ATKICmCSOJnrED5lh05FVTShp3PWjr9hh4b3Z/xW8GMMd5gMviitodgY56GQ==","signatures":[{"sig":"MEUCIDnRQpzPnw3FB9v6YkbYsFN8xtmhbXde54brLEvKXxMrAiEAv7yKjWrEI88AT+EgXlMBFD77ivUB83Hh6G0H7Qye+O4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1123203},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"305309cf209b7dc3d134a9cc91e6a683ce59f8c7","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.1_1782516273079_0.08661201256086626","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"ansimax","version":"1.4.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"6a875d0289890bb124220fa972f70548fda878bd","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.2.tgz","fileCount":40,"integrity":"sha512-UEsQuOu1Y4Gt28jWimXmXIMbFUgU1vXvgEfBXyt45JafRel4gzNP3Hbx8tKijBXIbgmFQESihQvYFELABp3tEg==","signatures":[{"sig":"MEQCIG/aEHUMywLnxbZWuBcTIQOisEUmXZWMHGhxTRPafZQFAiA6F+veu+rNmayoRAE0ahUGfK+Sh8hC6HaLxcS5kDrxWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1130620},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2d5dd9d587444c0907248dfc50397630e009ab2f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.2_1782517998804_0.09520903700977357","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"ansimax","version":"1.4.3","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.3","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"ca536d84cafdb2bf1e134acae2d8feff8c341bd4","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.3.tgz","fileCount":40,"integrity":"sha512-DyGgCvDzZa+zs19fZrFNBs58DvkmAxax4nZLWBuuKvdDNOPuPIsQyyzCBMaQ8kpDuZKudg3bbctsS/25PVXuQQ==","signatures":[{"sig":"MEQCIB3X6RGTu6P9oJLQnzkP+1el1N0twI7tzHM/QlOj7f89AiBFvzyNHu18G6Dl6Uily3MyFyVivbd+z/wwaWbJwy1gtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1148487},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b3a247e5b2d20f9061d926dc2913664d7f102291","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.3_1782776807935_0.2893422264062613","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"ansimax","version":"1.4.4","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.4","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"483a05596931a670738e043e354cf285bfb58fcb","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.4.tgz","fileCount":40,"integrity":"sha512-2mMMNhEH5Ia0ZMQO9LUS8kZcBhk4TH1Px/NUgw7SQvS6pZ1KwsFS/KdtUXhsv1oVI2mlQlMzLkUHeobE0IG38Q==","signatures":[{"sig":"MEUCIDkGiuT8R+QwgYHx15sBB1ON1N+EmdtMlh1ol310Zr5YAiEA7xgleIhQ4w8tPMrrahPdscdlcNy67lzat22RnPAMfyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1168221},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2dd2fee5c5abf79c0e3649de81b98b15bebe08c5","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.4_1783091669225_0.6954401891816877","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"ansimax","version":"1.4.5","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.5","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"387ba1b0b0b0ad39b37cff97301e9393472b7165","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.5.tgz","fileCount":40,"integrity":"sha512-Xm86dxH1XXqd72EXOuizTirfHZa1zfyisLDilNw74xlYUslTiTmmQpmup7YghCWvNZ5YyPELyJFVMf65hb1Oiw==","signatures":[{"sig":"MEYCIQDCb+iZ9T5e1w7a8Kvglwcf4+aNBuhX0qwoLDEJVWpx7QIhAOH76aY31i8KOIekVzDb0VGeJ7cuHeO/5CI+DBGm58ZU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1176123},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5360fbb9aa9dfe8621e1e2ce3a12866993dec86f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.5_1783277602745_0.8031759981947104","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"ansimax","version":"1.4.6","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.6","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"ade9ca4170d81ae6f3cd7c05d9935a0d722f8903","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.6.tgz","fileCount":40,"integrity":"sha512-FHuQwgDR8vvqlu2jPqECm/0ADLgGrL6OPvWu2t7gJ4em5cMuAjd6EkZQIaaVtA/MvyH8HcPojEV6ZC+haozWmQ==","signatures":[{"sig":"MEUCIQDF7eiziPZ1w4ryy4iP96s+DFQzMpLtWzq4t2eC8fddAwIgLKB3ODXKEATt2jykvQg4FDVWLZi82a27/LBuloB/U+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1194415},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"964f8a2de293742bfa91c6b385fa8fb507e13278","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.6_1783380564958_0.41288830034823176","host":"s3://npm-registry-packages-npm-production"}},"1.4.7":{"name":"ansimax","version":"1.4.7","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.7","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"76807ab5692d96c804f9a121e29da41339fd1912","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.7.tgz","fileCount":40,"integrity":"sha512-+fbBKTrhfCWSJp+pTAxvPzCwa6zZPyzBm5sVAc2U190wbYJItAOVqkk4FFjmFIjrRyP39OMjzfFIxJNm1rmEPg==","signatures":[{"sig":"MEUCIFF/QZIXCwhbNziFx1qXY8zpcKovqMopHnkljIeVNXjwAiEAm70ioZU0AiiPhlMyY2rZPWHIsOJ7D50FzJyn3z6+CrA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215068},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d3c3e40f928409ec6f2af709c0b7f790e69109a1","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.7_1783717529920_0.3015234206268129","host":"s3://npm-registry-packages-npm-production"}},"1.4.8":{"name":"ansimax","version":"1.4.8","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.8","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"a19af645772f19f2ab7ec70f8604c85a8207b7b0","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.8.tgz","fileCount":40,"integrity":"sha512-11Q4NqDllVmVyeyPthOABDzCAwNKi20gqZa0ttcRMv/y+VIxAYhxa3y/4AMykeAVZYmAJTYEXyq35+AFDyKCrA==","signatures":[{"sig":"MEUCIEsHKIBB4nei0iVcGCxZeZUmF8Wsn5jxgrZTn8eTdZhDAiEAqxAPdAt1jCd0DENEPMQCf4Er/WBkCaUGhKOovI1iG30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1245615},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"829bbc8c450d1573d3535eafdd147bfc7f44fe00","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.8_1784350176802_0.2140067996861439","host":"s3://npm-registry-packages-npm-production"}},"1.4.9":{"name":"ansimax","version":"1.4.9","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.9","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"0fe6b5412a389c2d19811953d0a671c07dc155be","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.9.tgz","fileCount":40,"integrity":"sha512-VOFPHXtNytcx++Y1aP4RUMUm5GnJGABLlTSeji0RmIAzcP7JJqC/+IH63OshA1LS6qjpVXy6A1FCarbXTJPWRA==","signatures":[{"sig":"MEUCIQCNx8ymCRPWIUtZHPFVpAEgE/nC3orKMUThhGesSV+wggIgKaGFToW4jEjPIW18H2Wr1uzMmaapIIJSTWxS/ieK5HA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1252036},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e47824cccaa0a9fd5aa6293692201a0487e9ea32","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.9_1784661439353_0.6328928544797723","host":"s3://npm-registry-packages-npm-production"}},"1.4.10":{"name":"ansimax","version":"1.4.10","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.10","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"c44cebc726c27a6b147aa8973666cf1b54c28165","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.10.tgz","fileCount":40,"integrity":"sha512-B7F4jsLoQ55If5A52sa3qbgKHMDyY7ErrGP+PzIBel5Uzc5BwAzK+KauGZPurEM8RBmaopYfPHlBF5xVznPc4A==","signatures":[{"sig":"MEQCIAu5AfRuqJm/X5B5c7RaLshbL85opgwNUWBv7XvFvoa5AiBwY3Q97XQufQGBHAqFPjKCllrIvj5iOBYH4AmS0m2Bpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1261082},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d0ca343a93d483dc73e625a545c2f3ed3343c69c","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.10_1784684808729_0.7390770512784379","host":"s3://npm-registry-packages-npm-production"}},"1.4.11":{"name":"ansimax","version":"1.4.11","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.11","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"740ecb73415ed867b7ad92449ecc8eef29bdf84d","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.11.tgz","fileCount":40,"integrity":"sha512-XpdwHqwYykqi18WpUvAmPYf51exiSpubyLBvacDnB+RW3sBZhMut89P2mRf3IQ61W+z58TAjWsapj4lBoYJQAQ==","signatures":[{"sig":"MEYCIQCEeirX+wjTH3LTSPo43k4tBe2kUh8VzBn1+uKw4QOGCwIhAKX9P71SsCfKv1oy/Au9pnY5FcmdJkPRZhAljalpzjwx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1293349},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6fdca224449ef95d69f98fce53e78fb8a16fbcc6","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.11_1784842452366_0.2613134409380793","host":"s3://npm-registry-packages-npm-production"}},"1.4.12":{"name":"ansimax","version":"1.4.12","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.12","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"b5602f653eac89f3817775941f51d983c466475e","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.12.tgz","fileCount":40,"integrity":"sha512-IZhR+UmEmZth6eLqReKMVqwb7DSjbJAYsTllSIPunHMkDyfzD+hvX9FPx5Nw5kptSMyUHDJg4T4onXSmoFDDhQ==","signatures":[{"sig":"MEQCIDfQkczFvrbWxWGflu6dSHxDIepkyPToF+eyj9cbttdTAiByHzeTukMfRpatwZvtXW97+PaDG2YDa3dOqP10DZ4vAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1331004},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e0af340abd783c00a73801d84870cd3a8d32349e","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.12_1785021531186_0.6581099048563697","host":"s3://npm-registry-packages-npm-production"}},"1.4.13":{"name":"ansimax","version":"1.4.13","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.4.13","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"3a3e8908e7ca4a5fc7a6e924cdd636c5c4efa17b","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.4.13.tgz","fileCount":40,"integrity":"sha512-w1JdRTuqhpb0ajlR5D5I6pmOH3XLwwI5bvBTtWKg01Hj5It9qemWJJf5odGpeehmBNaVgRkdCbZ4t9NfbwO7Rg==","signatures":[{"sig":"MEUCIQDI9vB2gfh2aNX8n3n+PhE+pD5PwaWB+lqVZY+R8b2HMwIgBGbF+dKMYM5tA8nWq+HRNKyU71RMLJmMaHcQqQC8uX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1349151},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"eb2b56ce293c93b78f63baff5a946edae1b72a28","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.4.13_1785366589345_0.2526008428305597","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"ansimax","version":"1.5.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.5.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"29fadd8c481c64e16e739e3032075fc9388a283f","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.5.0.tgz","fileCount":40,"integrity":"sha512-s0isIGhRFYzDY0YUXLKKYhigZ116ympq0E9URKjkKUCiu8R3lT/8tOO/KBmsy32yHtkLd5IMOBjvWek5k7j42w==","signatures":[{"sig":"MEYCIQD/KWCUqhHWc3E+Dr3GzlDPT9FKzvaGl4peYWNiNhyQ0AIhAMp1UE3UWCrGjuYKPZhifIo5J2CDgjfX/RoY1DzQqGcS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1376275},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"386a28a2a5b1da0ec2f234703d835347f84c353d","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.5.0_1785442105482_0.453240637077178","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"ansimax","version":"1.5.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.5.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"3fb627e05a0fd57627b935154b44c814abd3dc30","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.5.1.tgz","fileCount":40,"integrity":"sha512-ors4V6erFjqc1GbUceqKStdT4RevWSw/lWb+rzDX/lgUA/37J5rBQfhTyzQoGkVJvXR8D+ggwqhBlzumclSzNQ==","signatures":[{"sig":"MEUCIG14kZYtM/HoA76eJhPDPxUuwtZYPRfKIzhtxCV6kfMrAiEAwduiwO1t0pGDEUS1uWNBVSDks9IpWmRdA+xaexjF80M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1390653},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b81c71ff934469a200492206fa68ab36b196925f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.13.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.5.1_1786076884851_0.6153815390455173","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"ansimax","version":"1.5.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.5.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"45b327bc52dc56a5f1ce00e8afb1e4458908d3ae","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.5.2.tgz","fileCount":40,"integrity":"sha512-+5J1oMUqOiPLTq6lbFBdRyuZ8D8oK8RYv+A34T8ewGo/6A50ifxU0kA3/KmbpaAn4OzDQ9VHK4OIu8YcnVBoNw==","signatures":[{"sig":"MEYCIQCeVQ5YdLb+K4OvuYZr1FJE55heAXWWxCE4cvddUAkU6QIhAOJ31PMbRux3KCIJYJRd18AysbMzHE0V5zXSouvn3G8j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1390030},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"507d5cbbea922fa80b16e30d0a23a1cf871326dc","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.5.2_1786392165731_0.6955905136838074","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"ansimax","version":"1.6.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"49afb2b35d8aed5714a295e5b1beb1266d1aae6b","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.0.tgz","fileCount":40,"integrity":"sha512-3ErSUxNZOpjsjptNewDLetJAg2uGrqWV21XVfBXkrXpxmB48t0oZpZEolcIzlGoTWw4VaFOL62fXCwpTL2dqlw==","signatures":[{"sig":"MEUCIQCYHdp/46K4vr/IcHgaNz7SP1AduX1/kQ+Vwm1TVOn5RQIgeDtpx4FV26LC8S+InxuFYFT9YJ+FZVbeNLHHW4yhBwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1415896},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"4d550bf068dfbbf975184b0f2b73327075612346","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.0_1786587355938_0.3758465984168686","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"ansimax","version":"1.6.1","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.1","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"fb5a23eaddcf1f6d7f45dcda5ec4b4506963ff6d","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.1.tgz","fileCount":40,"integrity":"sha512-Qfc1BSwmBieOkLfwZFoQlM2krOEFG+xTGJeUVMFjfK4jdM3F04mPbKs9cEPQC+v+y+3U/5mQnR7ejMh0YXNe4g==","signatures":[{"sig":"MEQCIDUpyEoqrHbsEzM1BKbOGvUS/mobr2nv2LW988lNjxqgAiBgdoLRK7GXwoEEdI50XPTWh9T5vjbpLIZiQECGXvgD5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1431559},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d778324695e817169572422a669fb60a742264fe","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.1_1786673689945_0.33266353540405347","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"ansimax","version":"1.6.2","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.2","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"d78b31bdd7b8354a662c2a4721782902f0b6abf1","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.2.tgz","fileCount":40,"integrity":"sha512-zDQ0p4QiXH4o57I+9bo+fYMvxNhTL7Wg/tnNUTDtLPlHEV73iuDd+zbKj39So+zu0YaHeDi0/AVN47F6Tdktyw==","signatures":[{"sig":"MEYCIQDjvCk0DJY3em1/P0LH9WTU2bF6R+LEHctvPoIFOlC/9QIhAPbI7QFa0zyYhLQQ0CG2PuV88lvJYIx0/atn0/wt52iG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1454589},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e7e1738540ac76958c4deecb3d3c84dbc146e2b4","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.2_1786825906647_0.2414521000266705","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"ansimax","version":"1.6.3","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.3","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"5cdc50e461b738265d94fcd5b7de5395ab95590d","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.3.tgz","fileCount":40,"integrity":"sha512-Pz0878iemVd4KCGXH2sMZZNKYO6lcOenvA6h6mBhOpfwMzdHr4JCrRgvK3GmgHv0EZt+hRNh5q/ClsJe+2XlEA==","signatures":[{"sig":"MEYCIQDuc59ODsLYDFoxQI0RRFAvpXKVS24PfO1/Q/P5lcZNFwIhAPMcVo0yW/NvppPgfxeawRBoijtp/1Xxm+/SME4ya8UI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1465707},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"99e184c22eafccbb4676b6c48ee21bd87f89f78b","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.3_1786933454760_0.032462686036891064","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"ansimax","version":"1.6.4","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.4","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"649d29876f98572d6a4e6d96a726f196cec3ceb8","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.4.tgz","fileCount":40,"integrity":"sha512-AXGWWz3/o9G2Peq8XZB4I4rrbRH5Y3I4D2pTUGDlzXdBfTkAi/eOFKdakkHR2yHSru3QbsKx4kkBokGPnqQLmg==","signatures":[{"sig":"MEUCIQCmtcC4MP2cBzRFT6YyoVhq9dibYzP8UafRdIQ8Vj5BBgIgFo1h6/ZEFDEfZj+8PPU3fBgAHGTD6h0WNoD7+EXvUn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1480405},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9aef8d38f90f82ae6e96ab1cc0d330edf3c0a4e7","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.4_1787168888361_0.8102968485512629","host":"s3://npm-registry-packages-npm-production"}},"1.6.5":{"name":"ansimax","version":"1.6.5","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.5","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"2c9151ad78293466581d5e0691607e89222e7756","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.5.tgz","fileCount":40,"integrity":"sha512-XKID0E7A8/Jb97N0KfPhu01RI6lCuEBd83+c0ZgcaNYNIBZcRMsSWjkmVfvhBvDLl6sKtdZjyzcYacQ5mOjb7w==","signatures":[{"sig":"MEUCIQCpNmBZD4HL8mV+QC6gdLLKgJHksFRc45PQlRa5L5kDYwIgdXwmCCHrAwQx5RxDmPlJo61x7+J5Y7h3PjnFJN4mY9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1495657},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"15121a9e5e3ade54a8edbd73ecc1a6ba43b25326","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.5_1787972828612_0.7506969178056553","host":"s3://npm-registry-packages-npm-production"}},"1.6.6":{"name":"ansimax","version":"1.6.6","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.6","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"f2af5eab86ad30224c71898f04386dfbf349b162","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.6.tgz","fileCount":40,"integrity":"sha512-fckQ+o358t0SNlXMapo8+g3WN69HL1gfGLUoA2tFRXSnAZNUYMuQJ6kDv5cyLZmTx7TXcsIq66QOW0xf341EHA==","signatures":[{"sig":"MEUCIQC/tN6urLnZTaccA4JZSLWPOopJJN0XxDKToYwVzA2RuwIgRLqclmH0uAe3ETtY+lp5opuQmvYfvr9eEHk+guB72Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1516006},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"5c530576d8802f33afb3434b4d9a467877f9df52","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.6_1788043478482_0.7557410376165492","host":"s3://npm-registry-packages-npm-production"}},"1.6.7":{"name":"ansimax","version":"1.6.7","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.6.7","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"f4c4867cb67878e98ed120ac2c10bd6b074ab11f","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.6.7.tgz","fileCount":40,"integrity":"sha512-C00wX0KCKRtX1w+qp+RRSCuqbb+1wC9517LGr+fyYcj3VswibFB4e7hQPbyZBEhckSY8TsRzORsdWQCpkHlJcA==","signatures":[{"sig":"MEUCIFftPDxPn5T9KuoPMZsZoaGCKCO2VNjajthNC9Fq2TpuAiEApqCEwMHKAtM6P52J544gYL7odUb8YyRhv31vxDUSpDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1535604},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"569fedd3a1ff0da9a77369fc104650d24b3705bc","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.6.7_1789145040901_0.45825238560000847","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"ansimax","version":"1.7.0","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","_id":"ansimax@1.7.0","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"homepage":"https://github.com/Brashkie/ansimax#readme","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"cad38fd4cd65986679e70584dee25471bc379dc4","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.7.0.tgz","fileCount":40,"integrity":"sha512-mgRux/LAdrHQSeUtuMKIUOSpQXyZ/2urqP03lU13QkCiAIXzNI772iopI1KuN58pTjgv815XVHHXbTeEsFPZsQ==","signatures":[{"sig":"MEQCIGZP7wGQaXnWyKDUhDaDfG/y9K+H/7C9batrNVS90pxUAiBa70UT94ZeamaIwGPlcA7TGkVr2YmkI7gv8RmMFoXI2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1565391},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9c9a18f2fdc30bea8b28814ecac3082ffde1352d","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"tmp":"tmp/ansimax_1.7.0_1789230564209_0.7235392859986305","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"_id":"ansimax@1.7.1","bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"dist":{"shasum":"6dbfbe5fbd9c96eca2e577df0f5aa3fcd20cc16a","tarball":"https://registry.npmjs.org/ansimax/-/ansimax-1.7.1.tgz","fileCount":40,"integrity":"sha512-dmaxbzzeNiHQ3vOS9pP635B8I549Vhz6wGyF6ERNlABcO23inGCEs81QI0NWdXRZAam1/e3cL5rdg851h+Zteg==","signatures":[{"sig":"MEUCIQDsiC/UT4WmUzPty/8o0fuusDPQzgHM5KklahANfrEApwIgXE98u32ioJlq0L/hvjoV0IoOTrXY//jfuaZchLX3cPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjAtoOg8fKt7jqlx3gQhV0C2U80pozr7iDcI7Jd0u1RQIhAP3tvemCbVgXMAie9CNrtkvxbzkZ7GXfMM6IXHGUxS6R"}],"unpackedSize":1582857},"main":"dist/index.js","name":"ansimax","types":"dist/index.d.ts","author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"module":"dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"c6acafce61421d56fb4987a8d4fd99663803162a","license":"Apache-2.0","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"tsup src/index.ts --format cjs,esm --dts --clean","format":"prettier --write \"src/**/*.{ts,tsx,json,md}\"","release":"npm version patch && npm publish","lint:fix":"eslint src --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test:watch":"jest --watch","format:check":"prettier --check \"src/**/*.{ts,tsx,json,md}\"","release:major":"npm version major && npm publish","release:minor":"npm version minor && npm publish","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test"},"version":"1.7.1","_npmUser":{"name":"brashkie","email":"fabianoarjunken@gmail.com"},"homepage":"https://github.com/Brashkie/ansimax#readme","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"_npmVersion":"11.17.0","description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","directories":{},"maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"_nodeVersion":"24.19.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.1","eslint":"^8.54.0","ts-jest":"^29.1.1","prettier":"^3.1.0","typescript":"^6.0.3","@types/jest":"^29.5.0","@types/node":"^20.10.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.13.0","@typescript-eslint/eslint-plugin":"^6.13.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ansimax_1.7.1_1790048192739_0.9956588394330996"}}},"time":{"created":"2026-05-01T11:55:06.874Z","modified":"2026-09-22T03:36:32.997Z","1.0.0":"2026-05-01T11:55:07.100Z","1.1.0":"2026-05-16T17:11:07.116Z","1.1.1":"2026-05-17T15:58:47.858Z","1.1.2":"2026-05-24T00:58:43.430Z","1.2.0":"2026-05-31T00:32:10.147Z","1.2.1":"2026-05-31T00:51:58.184Z","1.2.2":"2026-06-03T04:23:13.463Z","1.2.3":"2026-06-03T19:13:23.773Z","1.2.4":"2026-06-04T00:06:42.810Z","1.2.5":"2026-06-04T21:03:32.731Z","1.2.6":"2026-06-05T03:35:07.502Z","1.2.7":"2026-06-07T19:00:24.172Z","1.2.8":"2026-06-09T22:55:03.158Z","1.3.0":"2026-06-13T00:12:27.834Z","1.3.1":"2026-06-13T22:58:46.594Z","1.3.2":"2026-06-14T19:04:28.931Z","1.3.3":"2026-06-16T18:20:18.313Z","1.3.4":"2026-06-20T04:52:50.090Z","1.3.5":"2026-06-21T03:51:18.679Z","1.3.6":"2026-06-23T00:35:45.915Z","1.3.7":"2026-06-23T01:06:20.284Z","1.4.0":"2026-06-24T00:39:04.015Z","1.4.1":"2026-06-26T23:24:33.307Z","1.4.2":"2026-06-26T23:53:18.973Z","1.4.3":"2026-06-29T23:46:48.161Z","1.4.4":"2026-07-03T15:14:29.372Z","1.4.5":"2026-07-05T18:53:22.918Z","1.4.6":"2026-07-06T23:29:25.137Z","1.4.7":"2026-07-10T21:05:30.121Z","1.4.8":"2026-07-18T04:49:37.014Z","1.4.9":"2026-07-21T19:17:19.513Z","1.4.10":"2026-07-22T01:46:48.923Z","1.4.11":"2026-07-23T21:34:12.535Z","1.4.12":"2026-07-25T23:18:51.356Z","1.4.13":"2026-07-29T23:09:49.549Z","1.5.0":"2026-07-30T20:08:25.652Z","1.5.1":"2026-08-07T04:28:04.991Z","1.5.2":"2026-08-10T20:02:45.902Z","1.6.0":"2026-08-13T02:15:56.090Z","1.6.1":"2026-08-14T02:14:50.096Z","1.6.2":"2026-08-15T20:31:46.842Z","1.6.3":"2026-08-17T02:24:14.930Z","1.6.4":"2026-08-19T19:48:08.512Z","1.6.5":"2026-08-29T03:07:08.765Z","1.6.6":"2026-08-29T22:44:38.665Z","1.6.7":"2026-09-11T16:44:01.225Z","1.7.0":"2026-09-12T16:29:24.344Z","1.7.1":"2026-09-22T03:36:32.834Z"},"bugs":{"url":"https://github.com/Brashkie/ansimax/issues"},"author":{"url":"https://github.com/Brashkie","name":"Brashkie"},"license":"Apache-2.0","homepage":"https://github.com/Brashkie/ansimax#readme","keywords":["ansi","colors","terminal","console","cli","gradient","gradients","animation","animations","ascii","ascii-art","pixel-art","banner","spinner","loader","progress","progress-bar","components","table","badge","timeline","tree","trees","tui","canvas","sprite","theme","themes","styling","formatting","text-effects","typewriter","rgb","hex","truecolor","terminal-ui","command-line","nodejs","typescript","zero-dependencies","abort-signal","no-color","chalk-alternative","ora-alternative","figlet-alternative","boxen-alternative","inquirer-alternative"],"repository":{"url":"git+https://github.com/Brashkie/ansimax.git","type":"git"},"description":"Zero-dependency CLI rendering library: colors, gradients, animations, ASCII art, pixel art, components, and themes — all in TypeScript.","maintainers":[{"name":"brashkie","email":"fabianoarjunken@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"media/ansimax.png\" alt=\"Ansimax logo\" width=\"380\"/>\n\n### The ultimate CLI rendering library for Node.js\n\n_Colors • Gradients • Animations • ASCII Art • Pixel Art • Trees • Components • Themes_\n\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square)](LICENSE)\n[![npm](https://img.shields.io/badge/npm-v1.7.0-cb3837.svg?style=flat-square)](https://www.npmjs.com/package/ansimax)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6.svg?style=flat-square)](tsconfig.json)\n[![Coverage](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat-square)](#testing)\n[![Tests](https://img.shields.io/badge/tests-3000%2B%20passing-brightgreen.svg?style=flat-square)](#testing)\n[![Zero deps](https://img.shields.io/badge/dependencies-0-brightgreen.svg?style=flat-square)](#)\n[![Node](https://img.shields.io/badge/Node-%3E%3D18-43853d.svg?style=flat-square)](#requirements)\n[![ESM%20%2B%20CJS](https://img.shields.io/badge/ESM%20%2B%20CJS-dual-blueviolet.svg?style=flat-square)](#)\n\n**English** · [Español](README.es.md)\n\n</div>\n\n---\n\n<div align=\"center\">\n\n### 🎬 Preview\n\n<table>\n  <tr>\n    <td align=\"center\">\n      <strong>Animations</strong><br/>\n      <img src=\"media/animations.gif\" alt=\"Ansimax animations demo\" width=\"420\"/>\n    </td>\n    <td align=\"center\">\n      <strong>Loaders</strong><br/>\n      <img src=\"media/loaders.gif\" alt=\"Ansimax loaders demo\" width=\"420\"/>\n    </td>\n  </tr>\n</table>\n\n</div>\n\n---\n\n## 🌟 What is Ansimax?\n\nAnsimax is a **batteries-included rendering library** for building beautiful terminal UIs in Node.js. One package replaces a stack of 8+ dependencies — colors, gradients, ASCII art, spinners, progress bars, tables, menus, trees, themes, pixel art — combined into a single coherent TypeScript API with **zero runtime dependencies**.\n\n```bash\nnpm install ansimax\n```\n\n```js\nimport { color, gradient, ascii, loader, sleep } from 'ansimax';\n\nconsole.log(ascii.banner('hello', {\n  colorFn: (t) => gradient(t, ['#ff79c6', '#bd93f9', '#8be9fd']),\n}));\n\nconst stop = loader.spin('Building project', { color: '#bd93f9' });\nawait sleep(1500);\nstop('Build complete', true);\n```\n\n---\n\n## 💡 Why Ansimax?\n\n| Without Ansimax | With Ansimax |\n|---|---|\n| Install 8+ packages: `chalk`, `gradient-string`, `figlet`, `ora`, `cli-progress`, `cli-table3`, `boxen`, `inquirer` | One install: `ansimax` |\n| Mix incompatible APIs, different paradigms, conflicting types | Consistent functional API, single source of truth |\n| No coherent theme system across packages | Built-in themes (Dracula, Nord, Matrix, Cyberpunk, +5) |\n| Manual cursor cleanup, no crash safety | Reference-counted cursor + crash handlers built in |\n| No `AbortSignal` support in most CLI libs | Every animation, loader, and prompt is abortable |\n| Each lib brings its own runtime fallback logic | Unified `NO_COLOR` / `FORCE_COLOR` / TTY detection |\n| No memory bounds on color caches | Bounded LRU caches everywhere (no leaks under load) |\n\n---\n\n## 🆚 Comparison with the Node.js ecosystem\n\nAnsimax replaces a stack of popular Node.js libraries with **one coherent, typed, zero-dependency package**:\n\n| Feature | chalk | gradient-string | ora | cli-progress | figlet | boxen | inquirer | cli-table3 | **Ansimax** |\n|---|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n| Basic + 256 colors | ✅ | — | — | — | — | — | — | — | ✅ |\n| Truecolor with adaptive fallback | ✅ | ✅ | — | — | — | — | — | — | ✅ |\n| Multi-stop gradients | — | ✅ | — | — | — | — | — | — | ✅ |\n| **Animated gradients** | — | — | — | — | — | — | — | — | ✅ |\n| **Easing curves (5 presets + custom)** | — | — | — | — | — | — | — | — | ✅ |\n| **Conic gradients (radial sweep)** | — | — | — | — | — | — | — | — | ✅ |\n| ASCII banners | — | — | — | — | ✅ | — | — | — | ✅ |\n| **Image → ASCII converter** | — | — | — | — | — | — | — | — | ✅ |\n| **Figlet `.flf` font parser** | — | — | — | — | ✅ (own) | — | — | — | ✅ (250+ fonts) |\n| Custom font registry | — | — | — | — | partial | — | — | — | ✅ |\n| Boxes with multiple styles | — | — | — | — | — | ✅ | — | — | ✅ (6 styles) |\n| Spinners (multiple styles) | — | — | ✅ | — | — | — | — | — | ✅ (11 styles) |\n| Animated progress bars | — | — | — | ✅ | — | — | — | — | ✅ |\n| **Hierarchical/parallel tasks** | — | — | — | — | — | — | — | — | ✅ |\n| Tables (multi-line, ANSI-aware) | — | — | — | — | — | — | — | ✅ | ✅ |\n| Interactive menus + multi-select | — | — | — | — | — | — | ✅ | — | ✅ |\n| **Trees with cycle detection** | — | — | — | — | — | — | — | — | ✅ |\n| **Split layouts (vsplit/hsplit)** | — | — | — | — | — | — | — | — | ✅ (v1.3.0) |\n| **JSON colored pretty-printer** | — | — | — | — | — | — | — | — | ✅ (v1.3.0) |\n| **CSS Grid (colSpan/rowSpan/areas)** | — | — | — | — | — | — | — | — | ✅ (v1.4.1–v1.4.4) |\n| **Markdown → terminal renderer** | — | — | — | — | — | — | — | — | ✅ (v1.4.0–v1.4.4) |\n| **Syntax highlighting (js/ts/json/bash)** | — | — | — | — | — | — | — | — | ✅ (v1.4.5) |\n| **Pixel art + canvas + sprites** | — | — | — | — | — | — | — | — | ✅ |\n| **Theme system + per-instance isolation** | — | — | — | — | — | — | — | — | ✅ |\n| `AbortSignal` everywhere | — | — | partial | — | — | — | partial | — | ✅ |\n| `NO_COLOR` env support | ✅ | partial | partial | — | — | — | — | — | ✅ |\n| Stable error codes (`ANSIMAX_*`) | — | — | — | — | — | — | — | — | ✅ |\n| TypeScript-first (strict mode) | partial | partial | ✅ | partial | partial | ✅ | partial | partial | ✅ |\n| **Zero runtime dependencies** | ✅ | — | — | — | — | — | — | — | ✅ |\n| ESM + CJS dual export | partial | partial | ✅ | ✅ | partial | ✅ | partial | partial | ✅ |\n| **Test coverage** | ~95% | partial | partial | partial | partial | partial | partial | partial | **~98% (3000+ tests)** |\n\n> Comparison reflects what each library officially supports at time of writing. Some libraries can be combined to approach ansimax's feature set, but at the cost of bundle size, version-skew bugs, and inconsistent APIs.\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install ansimax\n# or\npnpm add ansimax\n# or\nyarn add ansimax\n```\n\n**Requirements:** Node.js ≥ 18. ESM and CJS both supported. Examples published with the package — see [`/examples`](./examples).\n\n---\n\n## ⚡ 30-second example\n\n```js\nimport { color, gradient, loader, ascii, sleep } from 'ansimax';\n\nconsole.log(ascii.banner('deploy', {\n  colorFn: (t) => gradient(t, ['#ff6b6b', '#feca57', '#48dbfb']),\n}));\n\nconst stop = loader.spin('Building project', { color: '#bd93f9' });\nawait sleep(1500);             // simulate async work\nstop('Build complete', true);  // ✓ + success color\n\nconsole.log(color.green('✓') + ' Ready in ' + color.bold('1.4s'));\n```\n\n---\n\n## 🚀 Quick Start\n\n```js\nimport { configure, color, themes, gradient } from 'ansimax';\n\n// Global configuration\nconfigure({ theme: 'dracula', animationSpeed: 'normal' });\n\n// Basic styling\nconsole.log(color.red('error'));\nconsole.log(color.bold(color.cyan('important')));\n\n// Multi-stop gradient\nconsole.log(gradient('rainbow text', [\n  '#ff5555', '#ffaa00', '#ffff00',\n  '#00ff00', '#0099ff', '#cc44ff',\n]));\n\n// Switch theme — fires subscribers\nthemes.use('cyberpunk');\nconsole.log(themes.primary('cyberpunk primary'));\n```\n\n---\n\n## ✨ Features\n\n- 🎨 **Colors** — Truecolor / 256 / basic with adaptive fallback. NO_COLOR / FORCE_COLOR / TTY detection\n- 🌈 **Gradients** — Multi-stop linear, radial, diagonal, arbitrary-angle. Custom presets via `registerPreset`\n- 🔠 **ASCII Art** — Banners (`big`/`small` fonts), boxes (6 styles), dividers, logos. Stream API + custom font registry\n- 🖼️ **Pixel Art** — Sprites, alpha blending, dithered gradients, canvas with dirty-rect rendering, braille mode (2×4 sub-pixel)\n- 🌳 **Trees** — Builder + plain-data API, 4 styles, per-node colors/icons, max-depth, cycle detection, walk/find/map/filter algorithms\n- 🎞️ **Animations** — Typewriter, fade, slide, pulse, wave, glitch, reveal. AbortSignal-aware, reducedMotion mode\n- ⏳ **Loaders** — 11 spinner styles, animated bars, hierarchical/parallel tasks, countdowns, multi-spinner manager\n- 🎬 **Frames** — Sequenced playback with pause/resume/seek, live push-based renderer, drift-corrected timing, morph\n- 🧱 **Components** — Tables (ANSI-aware, multi-line cells), badges, status lines, sections, columns, timelines, interactive menus\n- 🎨 **Themes** — 8 built-ins (Dracula, Nord, Monokai, Cyberpunk, Pastel, Matrix, Ocean, Sunset). Per-instance isolation, `onChange` listeners, `bg*` helpers\n- ⚙️ **Configure** — Centralized config with subscribers, batched updates, `withConfig()` temporary overrides, strict mode\n- 🛠️ **Utils** — ANSI primitives, cursor control, terminal hyperlinks (OSC 8), `setTitle`, `safeJson`, `onResize`, debounce/throttle/memoize\n\n---\n\n## 📸 Showcase\n\n### Colors & Gradients\n\n<img src=\"media/colors.png\" alt=\"Colors and gradients\" />\n\n```js\nimport { color, gradient, rainbow } from 'ansimax';\n\n// Basic colors\nconsole.log(color.red('red'), color.green('green'), color.blue('blue'));\n\n// Style modifiers\nconsole.log(color.bold('bold'), color.italic('italic'), color.underline('underlined'));\n\n// Multi-stop gradient\nconsole.log(gradient('fire to ocean', ['#ff6b6b', '#feca57', '#48dbfb']));\n\n// Built-in rainbow preset\nconsole.log(rainbow('built-in rainbow preset'));\n```\n\n### Animated Gradients (v1.2.0)\n\n<img src=\"media/animated-gradients.gif\" alt=\"Animated gradients preview\" />\n\n```js\nimport { animateGradient, sleep } from 'ansimax';\n\n// Color flow animation — runs until you call stop()\nconst ctrl = animateGradient('Loading...', ['#ff79c6', '#bd93f9', '#8be9fd'], {\n  duration: 2000,    // ms per cycle\n  fps: 30,\n  direction: 'forward',  // or 'reverse'\n});\n\nawait sleep(3000);\nctrl.stop();\n\n// v1.2.2: await directly (no .done needed)\nawait animateGradient('Done!', ['#50fa7b', '#bd93f9'], {\n  infinite: false, cycles: 2, duration: 800,\n});\n```\n\n### Easing Curves (v1.2.0)\n\n<img src=\"media/easing_curves.png\" alt=\"Easing curves preview\" />\n\n```js\nimport { gradient } from 'ansimax';\n\nconst stops = ['#ff79c6', '#bd93f9', '#8be9fd'];\n\n// Five built-in easings + custom function support\nconsole.log(gradient('hello world', stops, { easing: 'linear' }));\nconsole.log(gradient('hello world', stops, { easing: 'ease-in' }));\nconsole.log(gradient('hello world', stops, { easing: 'ease-out' }));\nconsole.log(gradient('hello world', stops, { easing: 'ease-in-out' }));\nconsole.log(gradient('hello world', stops, { easing: 'cubic-bezier' }));\n\n// Or pass your own easing function (t → eased t, both in [0,1])\nconsole.log(gradient('hello world', stops, { easing: (t) => t * t * t }));\n```\n\n### Conic Gradients (v1.2.0)\n\n<img src=\"media/conic_gradients.png\" alt=\"Conic gradients preview\" />\n\n```js\nimport { gradientRect } from 'ansimax';\n\n// Radial sweep around center — rainbow wheel\nconsole.log(gradientRect({\n  width: 30, height: 15,\n  colors: ['#ff0000', '#ffff00', '#00ff00', '#00ffff', '#0000ff', '#ff00ff', '#ff0000'],\n  style: 'conic',\n  startAngle: 0,   // rotation angle in degrees\n  dither: 'bayer',\n}));\n```\n\n### Reusable Gradients (v1.2.3)\n\n<img src=\"media/reusable-gradients.gif\" alt=\"Reusable gradients preview\" />\n\n```js\nimport { createGradient, reverseGradient, ascii } from 'ansimax';\n\n// Pre-resolve hex stops once — significantly faster for repeated use\nconst fire = createGradient(['#ff5555', '#ffb86c', '#f1fa8c']);\n\nconsole.log(fire('First line'));\nconsole.log(fire('Second line'));\nconsole.log(fire('Third line'));\n\n// Use as a colorFn for banners — same ColorFn signature\nconsole.log(ascii.banner('FIRE', { colorFn: fire }));\n\n// v1.2.4: inspect metadata\nconsole.log('Stops:', fire.stops);             // → ['#ff5555', '#ffb86c', '#f1fa8c']\nconsole.log('Resolved:', fire.resolvedStops);  // → [{r:255,g:85,b:85}, ...]\n\n// v1.2.4: reverse a gradient (preserves default options)\nconst ice = reverseGradient(fire);\nconsole.log(ice('Cool side'));\n\n// Per-call options still work — perfect for animation\nfor (let p = 0; p < 1; p += 0.05) {\n  process.stdout.write('\\r' + fire('flowing', { phase: p }));\n  await new Promise((r) => setTimeout(r, 50));\n}\n```\n\n### ASCII Art\n\n<img src=\"media/ascii_art.png\" alt=\"ASCII art\" />\n\n```js\nimport { ascii, gradient } from 'ansimax';\n\nconsole.log(ascii.banner('HELLO', {\n  font: 'big',\n  align: 'center',\n  colorFn: (t) => gradient(t, ['#ff79c6', '#bd93f9']),\n}));\n\nconsole.log(ascii.box('Rainbow box!', { padding: 1, borderStyle: 'rounded' }));\n```\n\n### Image → ASCII (v1.2.5)\n\n<div align=\"center\">\n  <img src=\"media/image-ascii-original.png\" alt=\"Original photo\" width=\"40%\" />\n</div>\n\n<table>\n  <tr>\n    <td align=\"center\">\n      <img src=\"media/image-ascii-1.png\" alt=\"Monochrome mode\" /><br/>\n      <sub><b>1. Monochrome</b></sub>\n    </td>\n    <td align=\"center\">\n      <img src=\"media/image-ascii-2.png\" alt=\"Color + Floyd-Steinberg dithering\" /><br/>\n      <sub><b>2. Color + Floyd-Steinberg</b></sub>\n    </td>\n  </tr>\n  <tr>\n    <td align=\"center\">\n      <img src=\"media/image-ascii-3.png\" alt=\"Edge detection (Sobel)\" /><br/>\n      <sub><b>3. Edge detection (Sobel)</b></sub>\n    </td>\n    <td align=\"center\">\n      <img src=\"media/image-ascii-4.png\" alt=\"Face mode for portraits\" /><br/>\n      <sub><b>4. Face mode (portraits)</b></sub>\n    </td>\n  </tr>\n</table>\n\n```js\nimport { ascii } from 'ansimax';\nimport sharp from 'sharp';\n\n// Get raw RGB pixels from any image library — example using `sharp`.\n// You can use jimp, pngjs, canvas, or any decoder. Ansimax stays zero-deps.\nconst { data, info } = await sharp('./photo.png')\n  .raw()\n  .toBuffer({ resolveWithObject: true });\n\n// Convert raw RGB buffer → PixelGrid (a 2D array of { r, g, b } objects)\nconst pixels = [];\nfor (let y = 0; y < info.height; y++) {\n  const row = [];\n  for (let x = 0; x < info.width; x++) {\n    const i = (y * info.width + x) * info.channels;\n    row.push({ r: data[i], g: data[i + 1], b: data[i + 2] });\n  }\n  pixels.push(row);\n}\n\n// Now use ansimax — multiple ways:\n\n// 1. Monochrome\nconsole.log(ascii.fromImage(pixels, { width: 80 }));\n\n// 2. Color + Floyd-Steinberg dithering + detailed ramp\nconsole.log(ascii.fromImage(pixels, {\n  width: 100,\n  color: true,\n  dither: 'floyd-steinberg',\n  ramp: 'detailed',\n}));\n\n// 3. Edge-detection mode (line art)\nconsole.log(ascii.fromImage(pixels, {\n  width: 80,\n  edgeDetect: 'sobel',\n  edgeThreshold: 50,\n  ramp: 'blocks',\n}));\n\n// 4. Face mode for portraits (boosts midtone contrast)\nconsole.log(ascii.fromImage(pixels, {\n  width: 60,\n  ramp: 'detailed',\n  faceMode: true,\n}));\n```\n\n### Figlet Fonts (v1.2.5)\n\n<img src=\"media/figlet_fonts.png\" alt=\"Figlet fonts preview\" />\n\n```js\nimport { readFileSync } from 'node:fs';\nimport { parseFiglet, ascii, gradient } from 'ansimax';\n\n// Download fonts from http://www.figlet.org/fontdb.cgi\nconst font = parseFiglet(readFileSync('./standard.flf', 'utf8'));\n\nconsole.log(ascii.figletText('Hello!', font));\n\n// With color\nconsole.log(ascii.figletText('STYLE', font, {\n  colorFn: (t) => gradient(t, ['#ff79c6', '#bd93f9', '#8be9fd']),\n}));\n```\n\n### Trees\n\n<img src=\"media/trees.png\" alt=\"Trees\" />\n\n```js\nimport { tree, color } from 'ansimax';\n\nconst project = tree({ label: 'my-app', icon: '📦', color: color.bold });\nconst src = project.add({ label: 'src', icon: '📁' });\nsrc.addLeaf({ label: 'index.ts', icon: '📄' });\nsrc.addLeaf({ label: 'app.ts',   icon: '📄' });\n\nconsole.log(project.render({\n  style: 'rounded',\n  palette: [color.cyan, color.green, color.magenta],\n  guideColor: color.dim,\n}));\n```\n\n### Pixel Art & Canvas\n\n<img src=\"media/pixel_art.png\" alt=\"Pixel art\" />\n\n```js\nimport { images, createCanvas, gradientRect, SPRITES } from 'ansimax';\n\n// Built-in sprite\nconsole.log(images.sprite('heart'));\n\n// Smooth gradient with Bayer dither\nconsole.log(gradientRect({\n  width: 50, height: 4,\n  colors: ['#ff6b6b', '#feca57', '#48dbfb'],\n  dither: 'bayer',\n}));\n\n// Custom canvas\nconst c = createCanvas(40, 10);\nc.fill({ r: 18, g: 18, b: 38 });\nc.drawCircle(20, 5, 4, { r: 255, g: 200, b: 0 }, true);\nconst starSprite = SPRITES.star;\nif (starSprite) c.drawSprite(2, 2, starSprite.pixels);\nc.print();\n```\n\n### Components\n\n<img src=\"media/components.png\" alt=\"Components\" />\n\n```js\nimport { components, color } from 'ansimax';\n\nconsole.log(components.table([\n  ['Module',     'Status',                'Coverage'],\n  ['colors',     color.green('● ready'),  '100%'],\n  ['animations', color.green('● ready'),  '100%'],\n  ['loaders',    color.green('● ready'),  '100%'],\n], { borderStyle: 'rounded' }));\n\nconsole.log(components.badge('VERSION', 'v1.7.0'));\nconsole.log(components.badge('BUILD',   'passing'));\n```\n\n### Timeline\n\n<img src=\"media/timeline.png\" alt=\"Timeline\" />\n\n```js\nimport { components } from 'ansimax';\n\nconsole.log(components.timeline([\n  { label: 'Project init',   done: true,  time: '10:00' },\n  { label: 'Build pipeline', done: true,  time: '10:15' },\n  { label: 'Run tests',      done: false, time: '10:32' },\n  { label: 'Deploy to npm',  done: false },\n]));\n```\n\n### Loaders & Progress\n\n<img src=\"media/loaders.png\" alt=\"Loaders and progress bars preview\" />\n\n```js\nimport { loader, sleep } from 'ansimax';\n\n// Spinner with success/failure\nconst stop = loader.spin('Loading...', { color: '#bd93f9' });\nawait sleep(1500);\nstop('Done!', true);   // ✓ green icon\n\n// Animated progress bar\nawait loader.progressAnimate(100, 'Downloading', {\n  color: '#50fa7b', delay: 25,\n});\n\n// Hierarchical tasks with parallel execution\nawait loader.tasks([\n  {\n    text: 'Build',\n    fn: async () => await sleep(500),\n    subtasks: [\n      { text: 'TypeScript', fn: async () => await sleep(800) },\n      { text: 'Bundle',     fn: async () => await sleep(600) },\n    ],\n  },\n  { text: 'Test', fn: async () => await sleep(700) },\n], { parallel: true });\n```\n\n### Animations\n\n<img src=\"media/animations-1.gif\" alt=\"Animations preview\" />\n\n```js\nimport { animate, gradient, sleep } from 'ansimax';\n\nawait animate.typewriter('Welcome to the deployment wizard...', {\n  speed: 30,\n  colorFn: (t) => gradient(t, ['#bd93f9', '#ff79c6']),\n});\n\nawait animate.fadeIn('Loading complete', { duration: 600 });\n\n// Race steps against a timeout — never hang\nawait animate.parallel([\n  async () => await sleep(500),   // simulated network check\n  async () => await sleep(700),   // simulated database check\n  async () => await sleep(400),   // simulated auth check\n], { timeout: 5000 });\n```\n\n### Themes\n\n<img src=\"media/themes.png\" alt=\"Themes\" />\n\n```js\nimport { themes, createTheme } from 'ansimax';\n\n// Built-in themes\nthemes.use('dracula');\nconsole.log(themes.primary('hello'));\n\n// Listen for changes\nconst off = themes.onChange((newTheme, oldTheme) => {\n  console.log(`Theme: ${oldTheme.name} → ${newTheme.name}`);\n});\n\n// Multi-tenant: each instance fully isolated\nconst tenantA = createTheme('nord');\nconst tenantB = createTheme('matrix');\n\n// Define a custom theme and register it ONLY in tenantA\ntenantA.register('custom', {\n  name: 'Custom',\n  primary:   '#ff5e5e',\n  secondary: '#5e5eff',\n  accent:    '#5eff5e',\n  success:   '#10b981',\n  warning:   '#fbbf24',\n  error:     '#ef4444',\n  info:      '#06b6d4',\n  muted:     '#6b7280',\n  bg:        '#1e293b',\n  surface:   '#334155',\n  text:      '#f1f5f9',\n  gradient:  ['#ff5e5e', '#5eff5e', '#5e5eff'],\n});\n\nconsole.log('tenantA themes include custom?', tenantA.list().includes('custom'));\nconsole.log('tenantB themes include custom?', tenantB.list().includes('custom'));\n//                                            ↑ false — full isolation\n```\n\n### Panels — Split Layouts (v1.3.0)\n\n<img src=\"media/panels.png\" alt=\"Panels and split layouts preview\" />\n\n```js\nimport { panels, ascii } from 'ansimax';\n\n// Side-by-side columns\nconst left  = ascii.box('Sidebar',   { borderStyle: 'rounded' });\nconst right = ascii.box('Main view', { borderStyle: 'rounded' });\n\nconsole.log(panels.vsplit([left, right], { gap: 2, align: 'center' }));\n\n// Vertical stacking\nconsole.log(panels.hsplit([\n  '── Application ──',\n  ascii.box('Body content'),\n  '── Footer ──',\n], { gap: 1, align: 'center' }));\n\n// Nested — sidebar + main inside an app shell\nconsole.log(panels.hsplit([\n  '── My App ──',\n  panels.vsplit([\n    ascii.box('Sidebar', { width: 20 }),\n    ascii.box('Main',    { width: 40 }),\n  ], { gap: 2 }),\n  '── End ──',\n]));\n```\n\n### JSON Pretty-print (v1.3.0)\n\n<img src=\"media/json_pretty.png\" alt=\"JSON pretty-print preview\" />\n\n```js\nimport { json } from 'ansimax';\n\n// Colored, depth-aware pretty-printing\nconsole.log(json.pretty({\n  name: 'ansimax',\n  version: '1.3.0',\n  features: ['colors', 'gradients', 'panels'],\n  stats: { tests: 2000, coverage: 0.98 },\n  active: true,\n}));\n\n// Depth limit — collapses deep objects to {...}\nconst deeplyNested = { a: { b: { c: { d: { e: 'too deep' } } } } };\nconsole.log(json.pretty(deeplyNested, { maxDepth: 2 }));\n\n// Item limit — huge arrays show \"... (N more)\"\nconst largeArray = Array.from({ length: 50 }, (_, i) => `item_${i}`);\nconsole.log(json.pretty(largeArray, { maxItems: 5 }));\n\n// Circular references handled gracefully\nconst obj = { name: 'foo' };\nobj.self = obj;\nconsole.log(json.pretty(obj));   // → \"self\": [Circular]\n```\n\n---\n\n## 📖 Documentation\n\nThe [`docs/`](./docs) folder contains comprehensive examples for every module:\n\n| Document | Description |\n|---|---|\n| [`docs/README.md`](./docs/README.md) | Documentation index — start here |\n| [`docs/examples-ts.md`](./docs/examples-ts.md) | 33 TypeScript examples (3 per module × 11 modules) |\n| [`docs/examples-mjs.md`](./docs/examples-mjs.md) | 33 JavaScript ESM examples |\n| [`docs/examples-cjs.md`](./docs/examples-cjs.md) | 33 JavaScript CommonJS examples |\n| [`docs/showcase.md`](./docs/showcase.md) | Complete demo app combining every module |\n\nEvery example is **copy-paste runnable** with realistic, mid-complexity scenarios — not just one-liners.\n\n---\n\n## 📚 Examples\n\nEleven production-grade examples ship in the npm package and are runnable directly. Find them in [`/examples`](./examples) once you install:\n\n| File | What it demonstrates |\n|---|---|\n| `01-quick-smoke.ts` | Quick smoke test — verifies every major import works |\n| `02-colors-gradients.ts` | Every color fn, gradient types, presets, compose, chain API |\n| `03-ascii-banners.ts` | Banners (`big`/`small`), 6 box styles, dividers, logo composer |\n| `04-trees.ts` | Tree builder + plain-data API, 4 styles, palettes, algorithms (walk/find/map/filter) |\n| `05-components.ts` | Tables, badges, status, sections, columns, timelines, progress bars |\n| `06-pixel-art.ts` | Sprites, custom canvas, gradient rects with dither, transforms (flip/rotate) |\n| `07-animations.ts` | typewriter, fadeIn/Out, slide, pulse, wave, glitch, reveal |\n| `08-loaders.ts` | spinner styles, animated progress, hierarchical tasks, countdown |\n| `09-themes.ts` | All 8 built-in themes, listeners, custom theme registration, per-instance isolation |\n| `10-everything.ts` | Comprehensive showcase — every module exercised in one cohesive demo |\n| `all-in-one.mjs` | Full demo in **ESM** (plain JS with `import`) — no TypeScript needed |\n| `all-in-one.cjs` | Full demo in **CommonJS** (plain JS with `require`) — no TypeScript needed |\n\nRun any example with:\n```bash\n# TypeScript examples\nnpx tsx examples/10-everything.ts\n\n# Plain JS — ESM\nnode examples/all-in-one.mjs\n\n# Plain JS — CommonJS\nnode examples/all-in-one.cjs\n```\n\n---\n\n## 🎯 Use Cases\n\n- **CLI installers & scaffolders** — beautiful first-run experience (create-react-app, create-next-app style)\n- **DevOps tools** — deployment dashboards, build pipelines, health monitors\n- **Dev experience** — better test runners, lint output, error formatting\n- **Interactive prompts** — menus, confirmations, multi-select wizards\n- **Data exploration** — tables, trees, charts for terminal-first workflows\n- **Status reporters** — real-time progress, multi-task orchestration\n- **ASCII intros** — game launchers, demo splash screens, login banners\n\n---\n\n## ⚙️ Configuration\n\nGlobal config affects every module that respects it (colors, themes, animation speed, etc.):\n\n```js\nimport { configure, getConfig, withConfig, onConfigKeyChange } from 'ansimax';\n\nconfigure({\n  colorMode:      'auto',     // 'none' | 'basic' | '256' | 'truecolor' | 'auto'\n  animationSpeed: 'normal',   // 'slow' | 'normal' | 'fast' | 'instant'\n  theme:          'dracula',  // any registered theme\n  reducedMotion:  false,\n});\n\n// Listen for changes (per-key — avoids over-firing)\nconst off = onConfigKeyChange('theme', (newTheme, oldTheme) => {\n  console.log(`Theme: ${oldTheme} → ${newTheme}`);\n});\n\n// Temporary override + auto-restore on completion or throw\nawait withConfig({ animationSpeed: 'fast' }, async () => {\n  // ...your fast-mode code here...\n});\n\n// Strict mode catches config typos\n// configure({ unknwnKey: 'x' }, { strict: true });  // throws RangeError\n```\n\n---\n\n## ⚠️ Error codes\n\nSeveral ansimax functions throw `Error` / `TypeError` / `RangeError` for invalid input.\nCatching by error code is the **stable, recommended** way to handle them programmatically — message text may evolve, but `.code` values are guaranteed semver-stable.\n\n```js\nimport { themes, ascii, parseFiglet } from 'ansimax';\n\ntry {\n  themes.use('inexistent-theme');\n} catch (e) {\n  if (e.code === 'ANSIMAX_UNKNOWN_THEME') {\n    themes.use('dracula');  // fallback\n  } else {\n    throw e;  // re-throw unexpected errors\n  }\n}\n```\n\n### All error codes\n\n| Code | Thrown by | Type | When |\n|---|---|---|---|\n| `ANSIMAX_INVALID_THEME` | `themes.register` | `TypeError` | Theme value is not a plain object |\n| `ANSIMAX_INVALID_THEME_NAME` | `themes.register` | `TypeError` | Theme has missing/empty `name` |\n| `ANSIMAX_UNKNOWN_THEME` | `themes.use` | `RangeError` | Requested theme name not registered |\n| `ANSIMAX_INVALID_FONT_NAME` | `ascii.registerFont` | `TypeError` | Empty or non-string font name |\n| `ANSIMAX_RESERVED_FONT_NAME` | `ascii.registerFont` | `Error` | Overwriting built-in font without `{ force: true }` |\n| `ANSIMAX_INVALID_FIGLET_INPUT` | `parseFiglet` | `TypeError` | Non-string or empty `.flf` content |\n| `ANSIMAX_INVALID_FIGLET_HEADER` | `parseFiglet` | `TypeError` | First line is not a valid FIGfont header |\n| `ANSIMAX_INVALID_FIGLET_HEIGHT` | `parseFiglet` | `TypeError` | Header declared zero/negative height |\n\n---\n\n## 🧩 Ecosystem packages\n\nThe **ansimax ecosystem** is structured in two tiers — companion packages that extend the core, and independent evolutions that target different platforms.\n\n### `@ansimax/*` — Companion packages\n\nScoped packages that extend `ansimax` without breaking its zero-dependency promise. Each is published independently but shares ansimax's philosophy and naming.\n\n| Package | Status | Description |\n|---|:-:|---|\n| `ansimax` | ✅ stable | Terminal-rendering core. Zero dependencies. |\n| `@ansimax/image` | 🟡 planned | Image-to-ASCII loader — PNG/JPEG/WebP from file/buffer/URL |\n| `@ansimax/cli` | 🟡 planned | Standalone binary — `npx @ansimax/cli demo`, font browser, image converter |\n| `@ansimax/fonts` | 🟡 planned | 250+ figlet `.flf` fonts pre-bundled, ready to use |\n| `@ansimax/sprites` | 🔴 future | Curated sprite library (animals, UI icons, technical diagrams) |\n| `@ansimax/video` | 🔴 future | Video frame extraction → ASCII playback |\n| `@ansimax/themes-extra` | 🔴 future | Community-contributed themes pack |\n\n**How they connect:**\n\n```\n                ┌─────────────────────────────┐\n                │   ansimax  (zero deps)      │  ← core, you always install\n                │   • colors, ASCII, panels   │\n                │   • types: PixelGrid, etc.  │\n                └────────────┬────────────────┘\n                             │ peer dependency\n        ┌────────────────────┼────────────────────┐\n        ▼                    ▼                    ▼\n  @ansimax/image      @ansimax/cli         @ansimax/fonts\n  (deps: jimp)        (binary)             (data only)\n```\n\nEach companion declares `\"ansimax\": \"^X.Y.Z\"` as `peerDependency` — semver-coordinated, never duplicated, never out of sync.\n\n### `ansimax-*` — Independent evolutions\n\nStandalone projects that build **alongside** ansimax for different platforms. Not companions — these are separate identities with their own scope and release cycle.\n\n| Package | Status | Description |\n|---|:-:|---|\n| `ansimax-native` | 🔴 future | **Rust + TS rewrite** of the rendering hot path. Native performance via napi-rs. Same API surface as `ansimax`. |\n| `ansimax-web` | 🔴 future | **Browser rendering** layer. ANSI → HTML/CSS conversion + canvas rendering. For demos, docs sites, web terminals. |\n\n**Sub-ecosystems**: each of these can have their own scoped sub-packages (`@ansimax-native/image`, `@ansimax-web/canvas`, etc.) over time.\n\n### Why two naming conventions?\n\nIndustry convention used by many mature ecosystems (Babel, Vue, Webpack, etc.):\n\n- **`@scope/*`** = \"same project family, coordinated release, same team\"\n- **`name-*`** = \"inspired by / works alongside, independent identity\"\n\nBy using both, ansimax signals:\n- The **core** (`ansimax`) stays small, zero-dep, focused on terminal rendering\n- The **ecosystem** (`@ansimax/*`) grows around it as opt-in extensions\n- **Evolutions** (`ansimax-native`, `ansimax-web`) explore different platforms without compromising the core\n\n> 💡 **Coming soon**: When `@ansimax/image` or similar packages are released, this section will link to them. Want one of these built sooner? [Open an issue](https://github.com/Brashkie/ansimax/issues) to vote.\n\n---\n\n## 🛣️ Roadmap\n\nAnsimax is being built toward a **full terminal rendering platform** — a Node-native answer to what Python developers get from `rich` + `textual` combined, with Node-specific improvements where it matters.\n\nThe roadmap intentionally targets — and aims to surpass — gaps that even mature Python TUI libraries haven't fully solved: live-diff renderers, animated gradients, terminal image protocols, and a true reactive layer.\n\n### ✅ Phase 1 — Core foundation\n- [x] Styling engine — ANSI 16 / 256 / truecolor with adaptive fallback\n- [x] Hex + RGB helpers with clamping and validation\n- [x] `NO_COLOR` / `FORCE_COLOR` env support + non-TTY auto-detection\n- [x] `AbortSignal` integration across animations and loaders\n- [x] `compose()` style stacking with single-reset emission\n- [x] Bounded LRU escape cache (512 entries, packed-RGB keyed)\n- [x] Custom preset registry (`registerPreset`, `listPresets`)\n\n### ✅ Phase 2 — Gradient engine\n- [x] Linear gradients (multi-stop)\n- [x] Rainbow + 6 built-in presets\n- [x] Radial gradients (in `gradientRect`)\n- [x] Diagonal gradients\n- [x] Arbitrary-angle gradients\n- [x] Bayer 4×4 dithering for smooth tonal transitions\n- [x] Single-stop UX (CSS-style behavior)\n- [x] **Animated gradients** — color flow over time with `animateGradient()` (v1.2.0)\n- [x] **Gradient interpolation curves** — `linear` / `ease-in` / `ease-out` / `ease-in-out` / `cubic-bezier` / custom (v1.2.0)\n- [x] **Conic gradients** — radial sweep with `style: 'conic'` (v1.2.0)\n- [x] **Mirror gradients** — symmetric `A→B→C→B→A` fill via `mirror` (v1.4.13)\n- [x] **Interpolation space** — `rgb` / `hsl` / `oklab` color-space blending (v1.4.13)\n- [x] **16 named gradient presets** — `viridis`, `plasma`, `pastel`, `cyberpunk`, and more (v1.6.0)\n- [x] **`presetStops()` + `gradientRect({ preset })`** — reuse named preset colors anywhere (v1.6.1)\n- [x] **`gradientScale()`** — sample a gradient into N discrete palette colors (v1.6.3)\n\n### ✅ Phase 3 — ASCII engine\n- [x] Block fonts (`big`, `small`)\n- [x] Banner with gradient + alignment + per-char coloring\n- [x] Box drawing (6 border styles)\n- [x] Divider with style variants\n- [x] Logo composer (gradient + box wrapping)\n- [x] Custom font registry (`registerFont`, `hasFont`, `listFonts`)\n- [x] Stream API (`ascii.stream()` with AbortSignal)\n- [x] **Image → ASCII** converter — `ascii.fromImage()` with luminance mapping (v1.2.5)\n- [x] **Color ASCII** rendering — preserve image colors via `color: true` (v1.2.5)\n- [x] **Image dithering** — Floyd-Steinberg error diffusion (v1.2.5)\n- [x] **4 dithering algorithms** — Floyd-Steinberg, Atkinson, JJN, Sierra (v1.6.2)\n- [x] **Face-optimized ASCII** — histogram stretching for portraits (v1.2.5)\n- [x] **Figlet font support** — `.flf` parser + renderer (`parseFiglet` + `ascii.figletText`) (v1.2.5)\n- [x] **Edge detection** — Sobel operator integrated in `fromImage` (v1.2.5, bonus)\n- [x] **ASCII ramp registry** — `registerAsciiRamp` + named presets (v1.4.13)\n\n### ✅ Phase 4 — Terminal UI primitives\n- [x] Tables (irregular rows, multi-line cells, ANSI-aware)\n- [x] Boxes with multiple styles\n- [x] Status messages + badges (with border option)\n- [x] Timelines with done/pending states\n- [x] Interactive menus (single + multi-select)\n- [x] Columns layout (truncate/wrap overflow)\n- [x] Sections (gradient headers with auto-width)\n- [x] Trees (collapsible, max-depth, cycle-safe)\n- [x] **Panels** — split layouts: `hsplit`, `vsplit` with alignment + nesting (v1.3.0)\n- [x] **Balanced table wrap** — minimum-raggedness word wrap for even cell lines (v1.6.2)\n- [x] **JSON/YAML pretty-printing** — colored, depth-limit, circular-safe (v1.3.0)\n- [x] **Grid system** — CSS Grid-inspired: `colSpan`, `rowSpan` (mark-and-pack), `flow`, `cellWidth`/`cellHeight`, and `gridAreas` template areas (v1.4.1–v1.4.4)\n- [x] **Markdown rendering** — headings (ATX + setext), lists (nested + task lists), code blocks, tables, blockquotes, inline styles, CommonMark escapes, autolinks, reference links, footnotes, HTML blocks (v1.4.0–v1.4.11)\n- [x] **Markdown theme registry** — custom palettes via `registerMarkdownTheme` (v1.4.11)\n- [x] **Syntax highlighting** — built-in grammars for JS/TS/JSON/Bash with aliases (v1.4.5)\n- [x] **Layouts** — CSS Grid (`grid`/`gridAreas`) + flexbox-style flow (`flex` with justify + grow, v1.4.7)\n- [x] **Logging integration** — createLogger with levels, fields, child loggers, transports + console/pino/winston shims (v1.4.12)\n\n### ✅ Phase 5 — Cursor & screen control\n- [x] Cursor visibility, save/restore, positioning, line navigation\n- [x] Screen clearing (line, area, full)\n- [x] Reference-counted cursor (overlapping calls safe)\n- [x] Crash-safe restore (exit/SIGINT/SIGTERM handlers)\n- [x] Terminal hyperlinks (OSC 8)\n- [x] Window title (OSC 2)\n- [x] Bell (BEL)\n- [x] **Managed alternate screen** — `createScreen` (alt buffer, guaranteed restore on crash) — TUI foundation (v1.7.0)\n\n### ✅ Phase 6 — Animation engine\n- [x] Typewriter, fadeIn, fadeOut, slide, pulse, wave, glitch, reveal\n- [x] All `AbortSignal`-aware\n- [x] `reducedMotion` mode for accessibility\n- [x] Frame morph (text → text interpolation, cinematic decryption)\n- [x] `parallel()` with timeout\n- [x] Signal propagation to nested animations\n- [x] **Easing functions library** (31 standard easings: cubic, elastic, bounce, back) (v1.3.5)\n- [x] **Animation composition** (`parallel + sequence + delay` DSL) (v1.5.0)\n- [x] **Spring physics** animations (`react-spring` style) (v1.5.0)\n- [x] **Tween engine** (interpolate any value type) (v1.5.0)\n\n### ✅ Phase 7 — Progress ecosystem\n- [x] Spinners (11 styles) with color + AbortSignal\n- [x] Animated progress bars\n- [x] Multi-task runners (sequential + parallel)\n- [x] Countdown timers\n- [x] Multi-spinner manager (stacked concurrent spinners)\n- [x] Hierarchical tasks (parent + subtasks rollup)\n- [x] **Live ETA estimation** (rolling average) (v1.6.0)\n- [x] **Live refresh diff renderer** (no flicker, only redraw changed lines) (v1.6.0)\n- [x] **Progress groups** (named groups with shared theme) (v1.6.1)\n- [x] **Throughput meters** (bytes/sec, ops/sec with auto-scaling units) (v1.6.0)\n\n### 🟡 Phase 8 — Capability detection\n- [x] TTY detection (auto-disable in pipes/CI)\n- [x] `NO_COLOR` / `FORCE_COLOR` env support\n- [x] Color depth detection (16 / 256 / truecolor)\n- [x] CI provider detection (GitHub Actions, CircleCI, GitLab, Buildkite, Drone, Travis)\n- [x] Terminal program detection (iTerm, vscode, WezTerm, Hyper, Apple_Terminal)\n- [x] Windows Terminal detection (`WT_SESSION`)\n- [x] **Unicode width detection** (CJK halfwidth/fullwidth, emoji clusters, ZWJ sequences) (v1.6.5)\n- [x] **Image protocol detection** — *detection only*, not an encoder: reports which protocol the terminal advertises so callers can plug in their own; ansimax itself renders via the universal path (v1.6.4)\n- [ ] **Terminal capability database** (full xterm capability flags + version probes)\n- [x] **Font metrics detection** — cell aspect ratio (`cellAspectRatio`, `aspectScale`) for pixel-accurate sub-cell layouts; overridable, defaults to the near-universal 0.5 (v1.7.1)\n\n### 🟡 Phase 9 — Advanced rendering\n- [x] Dirty-rectangle canvas (only redraw changed pixels)\n- [x] Bounded LRU caches (escape sequences, render cache, ANSI cache)\n- [x] Drift-corrected timing (animations stay locked to wall-clock)\n- [ ] **Diff renderer** (line-level damage tracking for full UIs)\n- [ ] **Virtual buffer** (compose UI without writing to stdout)\n- [ ] **Z-index / layering** (overlap panels with priority)\n- [ ] **Mouse event support** (click, hover, drag, scroll wheel)\n- [ ] **Keyboard event abstraction** (arrow keys, modifiers, key sequences, dead keys)\n- [ ] **Full TUI framework** (reactive components — Textual-equivalent for Node)\n\n### 🔴 Phase 10 — Terminal charts\n- [~] Bar charts (horizontal + vertical, grouped, stacked) — horizontal bar + histogram (v1.6.6)\n- [x] Line charts (with braille for sub-character resolution) — `lineChart`, 8× sub-pixel, multi-series, Wu-style per-cell coverage color (v1.7.1)\n- [x] Sparklines (inline mini-charts for status bars) (v1.6.6)\n- [ ] Area charts (filled with gradients)\n- [ ] Heatmaps (color-mapped 2D grids)\n- [ ] Pie / donut charts (with percentage labels)\n- [ ] Scatter plots\n- [ ] Box plots / candlestick charts\n- [ ] Real-time streaming charts (live data feed with rolling window)\n- [ ] **Plot composer** (multi-chart dashboards with shared axes)\n\n### 🔴 Phase 11 — Forms & Input\n- [ ] Text input prompts (with autocomplete + history)\n- [ ] Password prompts (masked, strength meter)\n- [ ] Confirm dialogs (yes/no with default highlight)\n- [ ] Numeric input (with min/max validation)\n- [ ] Date/time pickers (calendar widget)\n- [ ] File picker (filesystem navigator)\n- [ ] Form composer (multi-field with validation + error display)\n- [ ] **Wizard flows** (multi-step forms with back/forward, progress indicator)\n\n### 🔴 Phase 12 — Image & media\n\n**Philosophy:** ansimax renders images through *universal, self-generated*\nmethods that work in any terminal — never by depending on a proprietary\nprotocol. Kitty/iTerm/Sixel are treated as *detection* (Phase 8); emitting\nthem is optional and left to the caller. `renderImageAuto` already picks the\nbest portable method automatically.\n\n- [x] **Universal auto-render** — `renderImageAuto` picks half-blocks (color) or ASCII (no color) by capability (v1.6.7)\n- [x] **Half-block rendering** — `▀`/`▄` with fg/bg color, double vertical resolution, any truecolor terminal\n- [ ] Sixel encoder (open DEC format — pure algorithm, portable to any Sixel terminal)\n- [x] **Perceptual quantization** — `rgbTo256Perceptual` / `nearestPerceptual` via Oklab ΔE (kills banding vs RGB L2) (v1.7.0)\n- [ ] PNG/JPEG decode → pixel grid (feed into the universal renderers)\n- [ ] QR code generation (with size + ECC level options)\n- [ ] Bar code generation (Code 128, EAN-13)\n- [ ] *(detection-only, opt-in)* iTerm2 / Kitty encoders — caller-supplied, never the default\n\n### 🔴 Phase 13 — Plugin system\n- [ ] Plugin API for custom components\n- [ ] Theme marketplace\n- [ ] Custom font registration via npm packages\n- [ ] Community animations registry\n- [ ] Capability provider interface (plug in custom detectors)\n- [ ] Renderer plugins (swap stdout for any writable stream)\n\n### 🔴 Phase 14 — Reactivity layer (TUI framework)\n- [ ] **Component lifecycle** (mount/unmount/update hooks)\n- [ ] **Reactive state** (auto re-render on data change, signals or hooks)\n- [ ] **Virtual DOM diffing** (line-level updates)\n- [ ] **Event bus** (component communication)\n- [ ] **Application loop** (single render tree with full lifecycle)\n- [ ] **Routing** (multi-screen apps with history)\n- [ ] **DevTools integration** (inspect component tree, mark changed nodes)\n- [ ] **CSS-in-TS styling** (scoped styles per component)\n\n### 🔵 Phase 15 — AXSS / AXB styling pipeline (ecosystem)\n\nA dedicated stylesheet language for terminal UIs (**AXSS** — *Ansi eXtended\nStyle Sheets*) that compiles to a portable binary format (**AXB** — *Ansi\nBinary*) consumed by `ansimax-native`. The design is **frozen**;\nimplementation waits on `ansimax-native` (there is no engine to consume AXB\nyet, so this is deliberately not rushed).\n\n- [ ] **AXSS language** — high-level terminal stylesheets (`Button { color: yellow; padding: 1 2; }`) with type / id / multi-class / state selectors\n- [ ] **AXB binary format** — portable, versioned, little-endian bytecode; magic + format version + minimum engine version + CRC; extensible sections\n- [ ] **Declarative model** — AXB describes *state per selector*, not imperative instructions; the engine decides when each state applies\n- [ ] **Compile-time cascade & specificity** — resolved by the compiler (`id > class > type`, ties → last rule wins); the runtime receives flattened `StyleState`s\n- [ ] **Stable ID tables** — `PropertyId` / `StateId` / `ColorKind` are part of the spec with explicit values, never reordered or recycled\n- [ ] **Color encoding** — named / ANSI-256 / RGB tri-form with a discriminant byte\n- [ ] **`ansimax axb inspect`** — a disassembler/debugger born alongside the compiler (with optional debug metadata: `background: BLUE ← inherited from Button`)\n- [ ] **Multiple frontends** (later) — CSS / TOML / YAML / JSON / XML all producing the same AST → the same AXB, making AXB the engine's universal format\n\n> **Note:** AXSS is the human-readable frontend; AXB is the compact binary\n> the engine consumes. `.axb` is *bytecode* — low-level relative to AXSS, but\n> high-level relative to the hardware (closer to WASM/SPIR-V than to machine\n> code). It is designed to be shipped with your app, like a compiled shader.\n\n**Legend:** ✅ Complete · 🟡 Partial · 🔴 Planned · 🔵 Designed (awaiting `ansimax-native`)\n\n---\n\n## 🧪 Testing\n\n```bash\nnpm test              # Run all 3000+ tests\nnpm run test:watch    # Watch mode\nnpm run test:coverage # Coverage report\n```\n\nCoverage (as of v1.3.0):\n\n| Metric | Score |\n|---|:-:|\n| **Statements** | ~98% |\n| **Branches** | ~95% |\n| **Functions** | ~99% |\n| **Lines** | ~99% |\n| **Total tests** | **2,000+** |\n| **Test suites** | 27 |\n| **CI matrix** | Node 18, 20, 22, latest |\n| **Platforms tested** | Linux, macOS, Windows |\n\n---\n\n## 🛠️ Requirements\n\n- **Node.js** ≥ 18\n- **TypeScript** ≥ 5.0 (for typed consumption — optional)\n- **Terminal** with truecolor support recommended (Windows Terminal, iTerm2, WezTerm, Kitty, modern xterm). Gracefully degrades to 256 / 16 / no-color.\n\n---\n\n## 🏗️ Project Structure\n\n```\nansimax/\n├── src/\n│   ├── colors/         Color rendering + gradient engine\n│   ├── themes/         Theme system + 8 built-ins\n│   ├── ascii/          Banners, boxes, fonts\n│   ├── animations/     Typewriter, fade, slide, pulse, wave, glitch, reveal\n│   ├── loaders/        Spinners, progress, tasks, multi-loader\n│   ├── frames/         Sequenced playback + live renderer + morph\n│   ├── components/     Tables, badges, status, timelines, menus\n│   ├── images/         Sprites, canvas, dithered gradients\n│   ├── trees/          Tree builder + algorithms\n│   ├── utils/          ANSI primitives + helpers\n│   └── configure.ts    Global config + subscribers\n├── examples/           10 examples (TS) + 2 (JS — ESM & CJS) — all features covered\n└── __tests__/          27 test suites, 3000+ tests\n```\n\n---\n\n## 📝 Changelog\n\n### v1.7.0 — Perceptual color, managed screen, spline gradients, lap timing\n\nA larger minor. Highlights:\n\n- 🎨 **Perceptual quantization** — `rgbTo256Perceptual`, `nearestPerceptual`, `oklabDistance` (Oklab ΔE — kills banding vs RGB L2)\n- 🖥️ **Managed alternate screen** — `createScreen` (vim/htop-style full-screen with guaranteed restore) — TUI foundation\n- 🌈 **Spline gradients** — `gradientColorSpline` (Catmull-Rom C¹, smooth through multi-stops)\n- ⏱️ **Lap stopwatch** — `createStopwatch` (labelled splits, `report()`, `slowest()`)\n- 🧪 **+60 tests**\n\n```js\nimport { createScreen, rgbTo256Perceptual, gradientColorSpline, createStopwatch } from 'ansimax';\n\nawait createScreen().run((s) => { s.moveTo(1,1); s.write('Full-screen app'); });\nrgbTo256Perceptual(128, 64, 32);              // nearest xterm-256 by perceptual ΔE\ngradientColorSpline(stops, 0.25);             // smooth multi-stop sampling\nconst sw = createStopwatch(); sw.lap('load'); // profile stages\n```\n\nDrop-in replacement for `1.6.7`.\n\n### v1.6.7 — Universal image auto-render + cubic-bezier easing + event counter\n\n- 🖼️ **`renderImageAuto`** — picks half-blocks (color) or ASCII (no color) by capability; portable, no proprietary encoders\n- 📐 **`cubicBezier(x1,y1,x2,y2)`** — CSS-style easing factory (Newton–Raphson solve; supports overshoot)\n- 🔢 **`createCounter`** — event counter with EMA rate, total, and lifetime average\n- 🧪 **+50 tests**\n\n```js\nimport { renderImageAuto, cubicBezier, createCounter } from 'ansimax';\n\nconst { output, method } = renderImageAuto(pixels);  // 'halfblock' | 'ascii'\nconst ease = cubicBezier(0.25, 0.1, 0.25, 1);        // CSS \"ease\"\nconst c = createCounter(); c.tick(); c.formatRate();  // \"1.2K/s\"\n```\n\n> **On image protocols:** ansimax renders via universal, self-generated methods (half-blocks / ASCII) that work in any terminal. Sixel/Kitty/iTerm are *detection only* — surfaced so callers can plug in their own encoder, never emitted by default.\n\nDrop-in replacement for `1.6.6`.\n\n### v1.6.6 — Inline charts (Phase 10 begins) + stepped easings\n\n- 📊 **Inline charts** — `sparkline`, `bar`, `histogram` (also the `chart` namespace)\n- 🪜 **Stepped easings** — `steps(n, position)`, `stepStart`, `stepEnd` (CSS `steps()` style)\n- 〰️ **Smoothstep easings** — `smoothStep`, `smootherStep` (shader S-curves)\n- 🧪 **+45 tests**\n\n```js\nimport { sparkline, bar, histogram, steps } from 'ansimax';\n\nsparkline([1, 5, 2, 8, 3, 7, 9, 4]);   // '▁▅▂▇▃▆█▄'\nbar(0.66, { width: 12 });               // eighth-cell precision\nhistogram([{ label: 'GET', value: 1240 }, { label: 'POST', value: 430 }]);\nsteps(4);                               // staircase easing\n```\n\nDrop-in replacement for `1.6.5`.\n\n### v1.6.5 — Unicode width detection + ETA smoothing + numeric table alignment\n\n- 📏 **Unicode width detection** — `stringWidth`, `isFullWidth`, `isEmoji`, `isCombining`\n- 📊 **Rate formatters** — `formatPercent`, `formatRate` (`\"1.5 MB/s\"`, `\"1.2K req/s\"`)\n- 📈 **ETA EMA smoothing** — `createETA({ smoothing: 'ema' })` reacts faster to speed changes\n- 🔢 **Auto-aligned numeric columns** — `ascii.table({ autoAlignNumbers: true })`\n- 🧪 **+40 tests**\n\n```js\nimport { stringWidth, formatRate, createETA, ascii } from 'ansimax';\n\nstringWidth('中文');                                  // 4\nformatRate(1572864);                                 // \"1.5 MB/s\"\ncreateETA({ total: 1000, smoothing: 'ema' });        // faster reaction\nascii.table(rows, { autoAlignNumbers: true });       // numbers right-aligned\n```\n\nDrop-in replacement for `1.6.4`.\n\n### v1.6.4 — Image protocol detection + elapsed timer + colors refactor\n\n- 🖼️ **Image protocol detection** — `detectImageProtocol()` → `'kitty'` / `'iterm'` / `'sixel'` / `'none'`\n- ⏱️ **`createTimer`** — elapsed-time stopwatch (start/stop/reset, pause-aware)\n- 🧹 **Colors refactor** — shared core moved to `colors/internal.ts`; public API byte-for-byte identical\n- 🧪 **+40 tests**\n\n```js\nimport { detectImageProtocol, supportsInlineImages, createTimer } from 'ansimax';\n\ndetectImageProtocol();     // 'kitty' | 'iterm' | 'sixel' | 'none'\nsupportsInlineImages();    // boolean\n\nconst t = createTimer();\nt.start(); /* ...work... */ t.stop();\nt.formatted();             // \"1.5s\"\n```\n\nDrop-in replacement for `1.6.3`.\n\n### v1.6.3 — Refactor: split animations + contrast/a11y + gradient scale\n\n- 🧹 **Animations split** — the ~1,100-line module is now 5 focused files; public API byte-for-byte identical\n- ♿ **WCAG contrast helpers** — `relativeLuminance`, `contrastRatio`, `readableTextColor`, `meetsContrast`\n- 🎨 **`gradientScale()`** — sample a gradient into N discrete palette colors\n- 🧪 **+30 tests**\n\n```js\nimport { contrastRatio, readableTextColor, gradientScale } from 'ansimax';\n\ncontrastRatio({ r: 0, g: 0, b: 0 }, { r: 255, g: 255, b: 255 }); // 21 (max)\nreadableTextColor({ r: 255, g: 235, b: 59 });                    // black on yellow\ngradientScale(['#ff0000', '#0000ff'], 3);      // ['#ff0000','#800080','#0000ff']\n```\n\nDrop-in replacement for `1.6.2`.\n\n### v1.6.2 — Advanced algorithms: dithering, balanced wrap, statistics\n\n- 🖼️ **4 dithering algorithms** — `floyd-steinberg`, `atkinson`, `jjn`, `sierra` (error-diffusion kernels)\n- 📐 **Balanced table wrap** — minimum-raggedness word wrap (`balancedWrap: true`) for even cell lines\n- 🧮 **7 math helpers** — `median`, `variance`, `stddev`, `percentile`, `quantize`, `catmullRom`, `gaussian`\n- 🧪 **+45 tests**\n\n```js\nimport { ascii, balancedWrap, catmullRom, percentile } from 'ansimax';\n\nascii.fromImage(pixels, { dither: 'atkinson' });          // crisp, high contrast\nascii.table(rows, { wrap: true, balancedWrap: true });    // even wrapped lines\n\nbalancedWrap('I am a very long sentence here', 11);       // minimum raggedness\ncatmullRom(0, 10, 20, 30, 0.5);                            // → 15 (smooth spline)\npercentile([1, 2, 3, 4, 5], 50);                          // → 3\n```\n\nDrop-in replacement for `1.6.1`.\n\n### v1.6.1 — Phase 7 complete (progress groups) + gradient preset reuse\n\n- 📊 **`createProgressGroup`** — several named bars under one title/theme, flicker-free (completes **Phase 7**)\n- 🎨 **`presetStops(name)`** + **`hasPreset(name)`** — reuse a preset's colors anywhere\n- 🖼️ **`gradientRect({ preset })`** — fill a rectangle from a named preset\n- 🧪 **+45 tests**\n\n```js\nimport { createProgressGroup, presetStops, gradientRect } from 'ansimax';\n\nconst group = createProgressGroup({ title: 'Deploying' });\ngroup.add('api', 'API').add('web', 'Web');\ngroup.update('api', 0.4, '12 MB/s');\ngroup.complete('web');\ngroup.render();\n\ngradient('text', presetStops('viridis'), { mirror: true });\ngradientRect({ width: 40, height: 10, preset: 'plasma' });\n```\n\nDrop-in replacement for `1.6.0`.\n\n### v1.6.0 — Phase 7 progress meters + more gradient presets\n\n- ⏱️ **`createETA`** — rolling-average time-remaining estimator (`eta()`, `rate()`, `progress()`)\n- 📊 **`createThroughput`** — bytes/sec or ops/sec with auto-scaling units (`\"1.5 MB/s\"`)\n- 🖥️ **`createLiveRegion`** — flicker-free multi-line region: redraws only changed lines\n- 🎨 **8 new gradient presets** — `viridis`, `plasma`, `pastel`, `cyberpunk`, `mono`, `mint`, `dusk`, `cotton` (16 total)\n- 🧪 **+35 tests**\n\n```js\nimport { createETA, createThroughput, createLiveRegion } from 'ansimax';\n\nconst eta = createETA({ total: 1000 });\neta.update(downloaded);\nconsole.log(eta.eta());              // \"3.2s\"\n\nconst tp = createThroughput({ unit: 'bytes' });\ntp.update(bytesSoFar);\nconsole.log(tp.format());            // \"1.5 MB/s\"\n\nconst region = createLiveRegion();\nregion.render(['A: 10%', 'B: 0%']);\nregion.render(['A: 100%', 'B: 0%']); // only line A rewritten\n```\n\nDrop-in replacement for `1.5.2`.\n\n### v1.5.2 — Documentation audit: every example verified copy-paste-runnable\n\n- ✅ **All 52 README examples** executed against the real package and fixed (missing imports, self-contained snippets)\n- ✅ **docs/examples-{mjs,cjs,ts}.md** — 33/33 blocks each pass (ran ESM/CJS, type-checked TS); fixed 8 real TS API/type bugs\n- 🎬 **showcase.md rewritten** as one cohesive enterprise app (\"Stardust Deploy\") combining every module — not isolated snippets\n- 📝 **No library code changed** — documentation-only quality release\n\nDrop-in replacement for `1.5.1`.\n\n### v1.5.1 — Tween/spring quality-of-life: repeat, yoyo, callbacks, stagger\n\n- 🔁 **`repeat` + `yoyo`** — loop a tween N times (or `Infinity`), alternating direction\n- 📣 **`onStart` / `onComplete`** — lifecycle callbacks on `tween` and `spring` (not fired on abort)\n- 🎞️ **`stagger()`** — cascade a list of animations, each offset by `gap × index`\n- 🧪 **+22 tests**\n- 🔵 **Roadmap**: declared the frozen **AXSS → AXB** styling pipeline (Phase 15, awaiting `ansimax-native`)\n\n```js\nimport { tween, stagger } from 'ansimax';\n\nconst draw = (v) => process.stdout.write(`\\r${v.toFixed(2)}`);\nconst ctrl = new AbortController();\nsetTimeout(() => ctrl.abort(), 1500);\nawait tween({ from: 0, to: 1, duration: 200, repeat: Infinity, yoyo: true, onUpdate: draw, signal: ctrl.signal });\n\n// stagger a list — each row's animation starts 80ms after the previous\nconst rows = [{ setOpacity(v) {} }, { setOpacity(v) {} }, { setOpacity(v) {} }];\nawait stagger(rows.map((row) => (s) =>\n  tween({ from: 0, to: 1, duration: 200, onUpdate: (v) => row.setOpacity(v), signal: s })\n), 80);\n```\n\nDrop-in replacement for `1.5.0`.\n\n### v1.5.0 — Phase 6 closure: tween engine, spring physics, composition DSL\n\n- 🎬 **Tween engine** — `tween()` interpolates numbers, arrays, and objects over time with easing\n- 🌱 **Spring physics** — `spring()` react-spring-style (stiffness/damping/mass)\n- 🔗 **Composition DSL** — `sequence`, `parallel`, `delay`, `tweenStep`, `springStep`\n- 🧪 **+40 tests** · **Phase 6 complete**\n\n```js\nimport { tween, spring, sequence, delay } from 'ansimax';\n\n// `draw` is your render callback — here it just prints the current value\nconst draw = (v) => process.stdout.write(`\\r${Math.round(v)}   `);\n\nawait tween({ from: 0, to: 100, duration: 1000, easing: 'easeOutCubic', onUpdate: draw });\nawait spring({ from: 0, to: 100, config: { stiffness: 210, damping: 20 }, onUpdate: draw });\n\nawait sequence([\n  (s) => tween({ from: 0, to: 100, duration: 300, onUpdate: draw, signal: s }),\n  delay(200),\n  (s) => tween({ from: 100, to: 0, duration: 300, onUpdate: draw, signal: s }),\n]);\n```\n\nAll `AbortSignal`- and `reducedMotion`-aware. Drop-in replacement for `1.4.13`.\n\n### v1.4.13 — Phase 2 & 3 improvements: mirror gradients, HSL interpolation, ramp registry\n\n- 🔁 **Mirror gradients** — `mirror: true` reflects the palette (`A→B→C→B→A`) on `gradient`, `createGradient`, `gradientRect`\n- 🎨 **Interpolation space** — `interpolation: 'rgb' | 'hsl' | 'oklab'` for vivid or perceptually-smooth blends\n- 🖼️ **ASCII ramp registry** — `registerAsciiRamp` + 3 new presets (`minimal`, `thermal`, `hearts`)\n- 🧪 **+27 tests**\n\n```js\nimport { gradient, registerAsciiRamp, ascii } from 'ansimax';\n\ngradient('symmetric', ['#ff0000', '#00ff00', '#0000ff'], { mirror: true });\ngradient('vivid', ['#ff0000', '#0000ff'], { interpolation: 'hsl' });\n\nregisterAsciiRamp('retro', ' .oO0');\n// `pixels` is a 2D array of { r, g, b } — here a tiny 2×2 sample\nconst pixels = [\n  [{ r: 0, g: 0, b: 0 }, { r: 255, g: 255, b: 255 }],\n  [{ r: 128, g: 128, b: 128 }, { r: 0, g: 0, b: 0 }],\n];\nconsole.log(ascii.fromImage(pixels, { ramp: 'retro' }));\n```\n\nDrop-in replacement for `1.4.12`.\n\n### v1.4.12 — Logging integration + Phase 4/2 improvements\n\n- 🪵 **Logging** — `createLogger()` with 7 levels, structured fields, child loggers, pluggable transports\n- 🔌 **Drop-in shims** — `asConsole`, `pinoShim`, `winstonTransport`\n- 🖊️ **Markdown `==highlight==`** — GFM/Obsidian mark support\n- 📋 **`ascii.table` caption** — dimmed, centered note below the table\n- 🧪 **+40 tests**\n\n```js\nimport { createLogger } from 'ansimax';\n\nconst log = createLogger({ level: 'debug', name: 'api' });\nlog.info('server started', { port: 3000 });\nlog.child({ reqId: 'abc' }).debug('handling request');\n```\n\n**Phase 4 is now complete** (logging was the final item). Drop-in replacement for `1.4.11`.\n\n### v1.4.11 — Phase 4 closure: theme registry, footnotes, HTML blocks\n\n- 🎨 **Custom markdown themes** — `registerMarkdownTheme(name, palette)`, validated at registration\n- 📌 **Footnotes** — `[^label]` + `[^label]: text`, numbered by first reference (GFM behavior)\n- 🏷️ **HTML blocks** — `htmlMode: 'strip' | 'raw' | 'hide'` (CommonMark §4.6)\n- 🧪 **+38 tests**\n\n```js\nimport { registerMarkdownTheme, markdown } from 'ansimax';\n\nregisterMarkdownTheme('solarized', {\n  h1: ['#b58900', '#cb4b16'], h2: '#cb4b16', h3: '#d33682',\n  h4: '#6c71c4', h5: '#268bd2', h6: '#2aa198',\n  code: '#b58900', codeBlockBorder: '#586e75', link: '#268bd2',\n  blockquote: '#586e75', hr: '#586e75', tableHeader: '#cb4b16',\n});\n\nmarkdown.render('# Title\\n\\nCited[^a].\\n\\n[^a]: The note.', { theme: 'solarized' });\n```\n\n**Phase 4 is now complete.** Drop-in replacement for `1.4.10`.\n\n### v1.4.10 — ascii module split + table minColWidth\n\n- 🧩 **`ascii/` module split** — 1575-line `index.ts` → 9 focused modules (types/fonts/render/shapes/image/figlet/stream/table/index)\n- 📏 **`ascii.table` `minColWidth`** — floor on column shrinking so narrow columns stay legible\n\n```js\nimport { ascii } from 'ansimax';\n\nconst rows = [\n  ['Name', 'Role', 'Location'],\n  ['Ada Lovelace', 'Engineer', 'London'],\n  ['Alan Turing', 'Researcher', 'Manchester'],\n];\nconsole.log(ascii.table(rows, { maxWidth: 30, minColWidth: 4 }));\n// No column shrinks below 4 visible chars\n```\n\nThe module split is pure rearrangement — the `ascii` namespace and all exports are 100% backward-compatible. The dependency graph is strictly layered and acyclic. Drop-in replacement for `1.4.9`.\n\n### v1.4.9 — Table cell wrapping + coverage hardening\n\n- 📝 **`ascii.table` cell wrapping** — `wrap: true` word-wraps long cells to multiple lines instead of truncating\n- 🧪 **Coverage hardening** — closed remaining v1.4.8 branch gaps (reachable → tests, unreachable → documented `istanbul ignore`)\n\n```js\nimport { ascii } from 'ansimax';\n\nascii.table([\n  ['id', 'description'],\n  ['1', 'a fairly long description that wraps neatly across several lines'],\n], { maxWidth: 40, wrap: true });\n```\n\nColumn sizing runs first (water-filling), then cells wrap within the resulting widths. Rows grow to fit their tallest cell. `wrap: false` (default) keeps v1.4.8 ellipsis behavior.\n\nDrop-in replacement for `1.4.8`.\n\n### v1.4.8 — Grids, tables, wrapping + scroll regions\n\nFour additive features, zero breaking changes:\n\n- 📊 **`ascii.table`** — auto-layout tables with 6 border styles + water-filling column sizing\n- 🔲 **`panels.wrap`** — flex-wrap-style block flow (greedy bin-packing)\n- 📐 **`grid` per-cell align** — `cellAlign: ['start', 'center', 'end']`\n- 🖥️ **`cursor.scrollRegion` + `cursor.batch`** — DECSTBM scroll regions + atomic writes (Phase 5)\n- 🧪 **+36 tests**\n\n```js\nimport { ascii, panels, cursor } from 'ansimax';\n\n// Auto-sized table (widest column shrinks first when over budget)\nconsole.log(ascii.table([\n  ['Name', 'Role', 'Commits'],\n  ['Ada', 'Author', '1200'],\n], { align: ['left', 'left', 'right'], maxWidth: 40 }));\n\n// Wrap cards to fit the terminal width\nconst cards = ['A', 'B', 'C', 'D'].map((c) => ascii.box(c, { padding: 1 }));\nconsole.log(panels.wrap(cards, { maxWidth: 60, gapX: 2, gapY: 1 }));\n\n// Pinned header/footer with a scrolling body\nprocess.stdout.write(cursor.scrollRegion(2, 23));\n```\n\nDrop-in replacement for `1.4.7`.\n\n### v1.4.7 — Reference links + flexbox layout\n\nTwo roadmap items, zero breaking changes:\n\n- 🔗 **Markdown reference links** — `[text][ref]`, `[text][]`, `[shortcut]` + `[ref]: url \"title\"` definitions\n- 📐 **`panels.flex`** — flexbox-style layout with `justify` (start/end/center/between/around/evenly) + `grow` weights\n- 🧪 **+30 tests**\n\n```js\nimport { panels, ascii, markdown } from 'ansimax';\n\nconst [boxA, boxB, boxC] = ['A', 'B', 'C'].map((c) => ascii.box(c, { padding: 1 }));\n\n// Flexbox layout\nconsole.log(panels.flex([boxA, boxB, boxC], { width: 60, justify: 'between' }));\nconsole.log(panels.flex([boxA, boxB], { width: 40, grow: [3, 1] }));  // A grows 3× as much\n\n// Reference links\nmarkdown.render(`\nSee [the docs][docs] and [shortcut].\n\n[docs]: https://docs.example.com \"Documentation\"\n[shortcut]: https://example.com\n`);\n```\n\nBoth build on v1.4.6 foundations (link placeholders + `distribute`). Every `flex` justify strategy conserves total width exactly.\n\nDrop-in replacement for `1.4.6`.\n\n### v1.4.6 — Consolidation v4 + math toolkit + autolinks\n\nMaintenance + feature release. Zero breaking changes:\n\n- 🧹 **`HEX_RE` consolidated** — 5 duplicate copies → 1 (`isHexColor`)\n- 🔢 **New `utils/math` toolkit** — `lerp`, `smoothstep`, `mod`, `gcd`, `distribute`, and more (15 pure functions)\n- 🔗 **Markdown autolinks** — `<https://…>` and bare URLs render as terminal hyperlinks\n- 🧪 **+44 tests**\n\n```js\nimport { smoothstep, distribute, mod } from 'ansimax';\n\nsmoothstep(0, 1, 0.25);      // → 0.15625 (Hermite easing)\ndistribute(10, 3);           // → [4, 3, 3] (sums exactly to 10)\nmod(-1, 4);                  // → 3 (true modulo)\n\nimport { markdown } from 'ansimax';\nmarkdown.render('Docs at https://example.com');  // clickable link\n```\n\nDrop-in replacement for `1.4.5`.\n\n### v1.4.5 — Panels refactor + syntax highlighting\n\nTwo big improvements, zero breaking changes:\n\n- 🎨 **Syntax highlighting** for code blocks (js/ts/json/bash with aliases)\n- 📁 **Panels module refactored** from 1116-line monolith → 7 focused submodules\n- 🧩 **`grid` decomposed** into 3 pure phases (resolve → pack → render)\n- ➕ **3 new exports**: `highlightCode`, `tokenizeCode`, `isHighlightSupported`\n- 🧪 **+50 tests**\n\n```js\nimport { markdown } from 'ansimax';\n\nconsole.log(markdown.render(`\n\\`\\`\\`js\nconst greet = (name) => \\`Hello, \\${name}!\\`;\n\\`\\`\\`\n`));\n// Renders with keyword highlighting (const), string coloring, etc.\n```\n\nSupported languages: **js/javascript/jsx**, **ts/typescript/tsx**, **json**, **bash/sh/shell/zsh**.\n\nDirect API:\n\n```js\nimport { highlightCode, tokenizeCode, isHighlightSupported } from 'ansimax';\n\nhighlightCode('const x = 42;', 'js');    // ANSI-colored string\ntokenizeCode('const x = 42;', 'js');     // [{ kind, text }, ...]\nisHighlightSupported('rust');            // false\n```\n\nDrop-in replacement for `1.4.4`.\n\n### v1.4.4 — Grid areas + task lists + setext headings\n\nPatch release finishing the Phase 4 roadmap:\n\n- 🎨 **`panels.gridAreas`** — CSS Grid-style template areas with rectangle validation\n- ✅ **Task lists** in markdown: `- [ ]` and `- [x]` (GFM syntax)\n- 📄 **Setext headings** in markdown: `text\\n===` (h1) and `text\\n---` (h2)\n- 🧪 **+27 tests** for all new features\n\n```js\nimport { panels, markdown, ascii } from 'ansimax';\n\n// CSS Grid template areas\npanels.gridAreas(\n  { header: 'HEAD', sidebar: 'SIDE', main: 'MAIN', footer: 'FOOT' },\n  {\n    areas: [\n      ['header',  'header', 'header'],\n      ['sidebar', 'main',   'main'  ],\n      ['footer',  'footer', 'footer'],\n    ],\n  }\n);\n\n// Task lists render as [ ] / [✓]\nmarkdown.render(`\n- [ ] pending\n- [x] done\n- regular item\n`);\n\n// Setext headings work identically to # H1 / ## H2\nmarkdown.render(`\nTitle\n=====\n\nSubtitle\n--------\n`);\n```\n\nRectangle validation catches non-contiguous areas at compile time:\n```\nError: areas: \"foo\" is not a rectangle — cells at [0,0]..[1,1]\n       have 3 occurrences, expected 4\n```\n\nDrop-in replacement for `1.4.3`.\n\n### v1.4.3 — Grid rowSpan + markdown escapes + nested lists\n\nPatch release with 3 substantial new features:\n\n- 🎯 **`panels.grid` rowSpan** — CSS Grid-style multi-row layouts using mark-and-pack algorithm\n- ⛓️ **CommonMark escapes** in markdown: `\\*`, `\\_`, `\\`, `\\\\`, `\\[`, `\\]`, `\\~`\n- 🌳 **Nested lists** in markdown — recursive indentation-based sublists with depth-aware bullets\n- 🧪 **+27 tests** for all new features\n\n```js\nimport { panels, ascii, markdown } from 'ansimax';\n\nconst [sidebar, top, bottom, side2] = ['nav', 'top', 'bottom', 'aside']\n  .map((c) => ascii.box(c, { padding: 1 }));\n\n// CSS Grid-style layout\nconsole.log(panels.grid([sidebar, top, bottom, side2], {\n  columns: 3,\n  colSpan: [1, 2, 2, 1],\n  rowSpan: [2, 1, 1, 1],\n  cellHeight: 4,\n}));\n\n// Escape literal markdown characters\nmarkdown.render('Show \\\\*literal asterisks\\\\*');\n\n// Nested lists\nmarkdown.render(`\n- Outer\n  - Nested\n    - Deep\n`);\n```\n\n**Note**: `Block.type === 'list'` items are now `ListItem[]` (was `string[]`).\nOnly affects external code using `parseBlocks` directly; `markdown.render` users are unaffected.\n\n### v1.4.2 — Internal consolidation v3\n\nPatch release continuing v1.3.7's DRY work. Zero behavior changes:\n\n- ➕ **`ensureString(value)`** — coerce to string (null/undefined → '')\n- ➕ **`clampNonNeg(n, fallback?)`** — non-negative integer with safe fallback\n- ➕ **`clampPositiveInt(n, fallback?)`** — positive integer (≥ 1) with safe fallback\n- 🧹 Removed **10 duplicate inline implementations** across components, frames, loaders, trees\n- 🧪 **+18 tests** for the consolidated helpers\n\n```js\nimport { ensureString, clampNonNeg, clampPositiveInt } from 'ansimax';\n\nensureString(null)              // → ''\nclampNonNeg(-3)                 // → 0\nclampPositiveInt(0)             // → 1  (clamped up)\nclampPositiveInt(NaN, 10)       // → 10 (fallback)\n```\n\nDrop-in replacement for `1.4.1`.\n\n### v1.4.1 — Grid v2 + markdown refactor\n\nPatch release. Zero breaking changes:\n\n- 🎯 **`panels.grid` — colSpan**: per-block column span (CSS Grid-style auto-flow)\n- 📏 **`panels.grid` — cellHeight**: uniform row heights (complements `cellWidth`)\n- 🔀 **`panels.grid` — flow**: `'row'` (default) or `'column'` auto-flow direction\n- 📁 **`markdown` refactored** from 522-line monolith → 5 focused submodules (API unchanged)\n- 🌳 Submodule imports enabled: `import { parseBlocks } from 'ansimax/markdown/block-parser'`\n- 🧪 **+32 tests**\n\n```js\nimport { panels, ascii } from 'ansimax';\n\nconst [header, sidebar, con","readmeFilename":"README.md"}