{"_id":"@ascii-fx/compiler","_rev":"8-a699f4372b15aa442fb770e046cf89b2","name":"@ascii-fx/compiler","dist-tags":{"latest":"0.8.0"},"versions":{"0.2.0":{"name":"@ascii-fx/compiler","version":"0.2.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.2.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"32031cbebff07b16a4303c16217bd1714947beea","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.2.0.tgz","fileCount":20,"integrity":"sha512-FMxRu69Jk7Bc6v+O1qlZ5+lwKhrfhnpkMJgQRQEbVb2ysU6TrJqd/zNvKA3ASp3INfMak7tCgQw7UG4Ow+WHUg==","signatures":[{"sig":"MEQCIEIpJnITvCFNa08wcn2EbR720FLLgfNQ7DYjEBNp9P3bAiB/a66PMPMVRDNCQABsOJkhCXlpHNzaLDOD5Pu32lnmkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88111},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"amabush","email":"amabush@outlook.com"},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.2.0_1787497280927_0.9009489055041666","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ascii-fx/compiler","version":"0.3.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.3.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"73d67737277c1895fac895e77d4cd3b8c754c25b","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.3.0.tgz","fileCount":20,"integrity":"sha512-w5JNzEbNDJhIRainyWpjyk8JhYWY/5hP5L14W0zkub70bJjYHMxYxpKX6KOlLPnhahXJmzdRZ38XC5T3p2WSOA==","signatures":[{"sig":"MEYCIQCyvZuXQnQd/1uho6rcxa9UrdwIbMleLxyNQEC83ZE1agIhAMiBNdRUqcvTIMwwsmnu8l1tUDDfMP0ZLOzSc+nLnAH0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.3.0_1787573214076_0.436917656468663","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ascii-fx/compiler","version":"0.3.1","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.3.1","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"f18cbb56ff4762aec1b09a184f70285db719d400","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.3.1.tgz","fileCount":20,"integrity":"sha512-UPalSDSfrVvWPC7DUDPAjFARSKzARssEfLtU3KaRpBgybsnv47M9OxXE1kcnVdBPiJPRkxHJ25TJnVNtZ/Cy5Q==","signatures":[{"sig":"MEQCICwpGk5MUBMoLqpRRujDHHmM4bph50QbOBy/XnLU8OxwAiBkCiXRZkZV3YKphpFoE2LJc55yfbUuLHq1RqCvFS0hZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.3.1_1787588440162_0.513912235239053","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ascii-fx/compiler","version":"0.4.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.4.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"c7d910905f610333950ac4b6d8e7d408ae14e6fb","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.4.0.tgz","fileCount":20,"integrity":"sha512-1ZL3dJDtnVFCMkXp1Au+bRLi9dI5LazJYQOwdIJFWqtMvLXM9fqjwBltOV8YE6oi3qvnq4P6znWrB5tezRLZxA==","signatures":[{"sig":"MEUCIFRzM4ZN0wP9ollqbDEG/3PIA9OAXVfPgnF4weoFW8eeAiEA8+B3vhqe88IaKLOeyHKAlFaX8bDlA44owjPNQrpBOAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.4.0_1787909385104_0.8754608155290362","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@ascii-fx/compiler","version":"0.5.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.5.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"db736fc4ea9c60875e7ecadf59726ad1b5cd7d87","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.5.0.tgz","fileCount":20,"integrity":"sha512-uSjqE6tSidrIAjMDDgjBULkRURxdqtjf4BDGYu0XE0o+29AteW1z8JwbVn82wj3PjkLGLixFEWMgoMQ7T5YbLQ==","signatures":[{"sig":"MEUCIQDk1haB94CbLBnu7va0sLMtsFep0ipTEZ4yh2HusZ4SSQIgNis+WzKDROZzgALBvNWaEtidojK5LvpVYx1O/RMCXFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.5.0_1788524058655_0.11258268271317795","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@ascii-fx/compiler","version":"0.6.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.6.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"26b3a9570fa586297434dfbccfda394194b3a5ab","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.6.0.tgz","fileCount":20,"integrity":"sha512-BG5VpHZPIx+C0llIYmwOwVcEwZ6Qd06YyuESIya24Xku+iMUC+RlNEk6A9bplGO1sZHTro/jIesSPwO2ZmQHYQ==","signatures":[{"sig":"MEYCIQDYPps0zTqmdvLdbRyZAdtqscLCETQlUvsVv+xNA/XpHwIhALCJIrCDGdzukMlO8C3sz0cMjjtvRVvUcrCBbSnkEHmI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.6.0_1788635875708_0.46880812282793727","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@ascii-fx/compiler","version":"0.7.0","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","_id":"@ascii-fx/compiler@0.7.0","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"bin":{"ascii-fx":"./dist/cli.js"},"dist":{"shasum":"7c783ad65906f607c3c1f681d0273301d16e76ad","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.7.0.tgz","fileCount":20,"integrity":"sha512-Stk5FQSBhB5nNvtSEbkO+dvW114C89WiabedQhNTiRz3fxtY1jYeGPxyTJFodP9wH7J5ggQVAQFj9fyh3nDcdg==","signatures":[{"sig":"MEQCIGwx28qPnTrncfXgyilEhl6DUCZYZw+KA9YAGRzhOMYuAiAr4i4gUvX2xjO1H2Qp7/4SRG+ywMWdebkX8K/QMs2xSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89218},"type":"module","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"repository":{"url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","type":"git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"pngjs":"^7.0.0","fontkit":"^2.0.4","@ascii-fx/core":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^7.0.2","@types/node":"^26.2.0","@types/pngjs":"^6.0.5"},"_npmOperationalInternal":{"tmp":"tmp/compiler_0.7.0_1789086853002_0.9906324304717702","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@ascii-fx/compiler","version":"0.8.0","description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"license":"MIT","author":"Amir Abushanab (https://github.com/Amir-Abushanab)","repository":{"type":"git","url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","directory":"packages/compiler"},"bin":{"ascii-fx":"./dist/cli.js"},"type":"module","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"dependencies":{"fontkit":"^2.0.4","pngjs":"^7.0.0","@ascii-fx/core":"0.8.0"},"devDependencies":{"@types/node":"^26.2.0","@types/pngjs":"^6.0.5","tsup":"^8.5.1","typescript":"^7.0.2"},"engines":{"node":">=22"},"scripts":{"build":"tsup && tsc -p tsconfig.build.json && node scripts/postbuild.mjs","typecheck":"tsc --noEmit"},"_nodeVersion":"24.20.0","_id":"@ascii-fx/compiler@0.8.0","dist":{"integrity":"sha512-hiKVxy+lV5FTgnwuVnx0RO/5iJvuzxL1OzQXsUe/QPhqVrGKx13JcV+2SodUnI9JDkT39g0isw6CYciQ7l6Z8A==","shasum":"08c4d50394bde97a3253984a1eae56906066d363","tarball":"https://registry.npmjs.org/@ascii-fx/compiler/-/compiler-0.8.0.tgz","fileCount":20,"unpackedSize":89218,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ascii-fx%2fcompiler@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCzLfFsP5lksAkk3bxT5S1fR9OE0E5jZ+aXFdFvBRGqcgIgBME4NW+BY5NQpHCQ7xWAWDA9nwqHjvg9DSeDL9UZyaM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd93aaf0-0056-4096-91ee-5854ea08e243"}},"directories":{},"maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/compiler_0.8.0_1789149897732_0.134484199175136"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-23T15:01:20.737Z","modified":"2026-09-11T18:04:58.272Z","0.2.0":"2026-08-23T15:01:21.086Z","0.3.0":"2026-08-24T12:06:54.242Z","0.3.1":"2026-08-24T16:20:40.302Z","0.4.0":"2026-08-28T09:29:45.247Z","0.5.0":"2026-09-04T12:14:18.786Z","0.6.0":"2026-09-05T19:17:55.840Z","0.7.0":"2026-09-11T00:34:13.176Z","0.8.0":"2026-09-11T18:04:57.879Z"},"bugs":{"url":"https://github.com/Amir-Abushanab/ascii-fx/issues"},"author":"Amir Abushanab (https://github.com/Amir-Abushanab)","license":"MIT","homepage":"https://github.com/Amir-Abushanab/ascii-fx#readme","keywords":["ascii","ascii-art","ascii-fx","build-tool","cli","font","glyph-atlas","rasterizer"],"repository":{"type":"git","url":"git+https://github.com/Amir-Abushanab/ascii-fx.git","directory":"packages/compiler"},"description":"Build-time compiler for ASCII FX: deterministic font rasterization, glyph atlases, .asciip/.asciif generation.","maintainers":[{"name":"amabush","email":"amabush@outlook.com"}],"readme":"# @ascii-fx/compiler\n\nBuild-time only: turns a font into a glyph profile the matcher can use, and an image into a precompiled frame. Node, never the browser.\n\n```sh\npnpm add -D @ascii-fx/compiler\n```\n\nMost people never import this directly — [`@ascii-fx/vite`](../vite) wraps it as a plugin, and the runtime packages can compile a profile themselves at startup. Reach for it when you want to compile ahead of time, or in a build that isn't Vite.\n\n```ts\nimport { readFile } from 'node:fs/promises'\nimport { buildProfile } from '@ascii-fx/compiler'\n\nconst font = new Uint8Array(await readFile('GeistMono-Regular.ttf'))\nconst { profile, binary } = buildProfile({ font, characters: ' .:-=+*#%@' })\nawait writeFile('public/default.asciip', binary)\n```\n\n## Deterministic on purpose\n\nRasterization is an in-house fixed-point scanline rasterizer over [fontkit](https://github.com/foliojs/fontkit)'s glyph outlines — **no system rasterizer anywhere in the path**. The same font and the same options produce byte-identical `.asciip` output on macOS, Linux, and CI.\n\nThat matters because a profile's fingerprint is what a `.asciif` frame is validated against. If rasterization drifted between machines, frames compiled on your laptop would be refused by the same code running in CI. Golden-file tests pin it.\n\n## Colour glyphs\n\n`buildChromaticProfile` builds from decoded colour images rather than a font, carrying an RGBA atlas alongside the coverage plane, so the profile still works with the mask-fitting matchers:\n\n```ts\nimport { buildChromaticProfile } from '@ascii-fx/compiler'\n\nconst { binary } = buildChromaticProfile({ glyphs: [{ char: '🌊', image }, ...] })\n```\n\n## Static frames\n\n`buildFrame` matches an image at build time and emits `.asciif`, so the client ships glyph ids instead of doing any matching:\n\n```ts\nimport { buildFrame, decodePng } from '@ascii-fx/compiler'\n\nconst { binary } = buildFrame({ profile, image: decodePng(png), columns: 160 })\n```\n\nA frame records the fingerprint of the profile it was built against and refuses to decode against a different one — a stale `.asciif` fails loudly rather than rendering garbage.\n\n## CLI\n\n```sh\nnpx ascii-fx profile build --font GeistMono-Regular.ttf --out default.asciip\nnpx ascii-fx frame build --image hero.png --profile default.asciip --columns 160 --out hero.asciif\nnpx ascii-fx inspect default.asciip\n```\n\n## License\n\n[MIT](../../LICENSE)\n","readmeFilename":""}