{"_id":"@bambiste/mix-builder","_rev":"5-6141ae9f392cece026a643f4d3c43c68","name":"@bambiste/mix-builder","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@bambiste/mix-builder","version":"0.1.0","license":"MIT","_id":"@bambiste/mix-builder@0.1.0","maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"bin":{"mix-builder":"dist/lib/builder/cli.js","mix-publisher":"dist/lib/package-publisher/cli.js"},"dist":{"shasum":"ec46004358e80c1240954604ebd8f5d604797794","tarball":"https://registry.npmjs.org/@bambiste/mix-builder/-/mix-builder-0.1.0.tgz","fileCount":77,"integrity":"sha512-1I9HBWbx9LADYVb/giU3obNNbK7CJ5kCWCXRvchh0HIhkYPY9jqH3pDIJtKn16umX0iZp/EHD4c4DWaem3tl+w==","signatures":[{"sig":"MEYCIQDvl8+fA7Tlp2CVHkpFlgiDcT/htY4G+uiTDgwPVaxVLwIhAIGBOIg346ORTvqBhlZ+A8XVsiy6SDBd8sbAb30or0LC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":347364},"main":"./dist/index.js","type":"module","_from":"file:bambiste-mix-builder-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"private":false,"scripts":{"send":"pnpm publish --tag latest --no-git-check","test":"vitest","build":"tsc -p tsconfig.lib.json && node copy-build.js","artifact:copy":"cp ~/npm-artifacts/.npmrc .npmrc"},"_npmUser":{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"},"_resolved":"/tmp/a7e3ffb60e0c4b094671ea9f3eba7355/bambiste-mix-builder-0.1.0.tgz","_integrity":"sha512-1I9HBWbx9LADYVb/giU3obNNbK7CJ5kCWCXRvchh0HIhkYPY9jqH3pDIJtKn16umX0iZp/EHD4c4DWaem3tl+w==","_npmVersion":"10.9.8","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"ora":"^9.0.0","vite":"^6.0.0","chalk":"^5.6.2","tslib":"^2.3.0","rollup":"^4.53.5","esbuild":"^0.27.1","inquirer":"^13.1.0","fast-glob":"^3.3.3","log-update":"^7.0.2","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@vitest/ui":"^3.0.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/mix-builder_0.1.0_1783931389878_0.7227764569457726","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bambiste/mix-builder","version":"0.2.0","license":"MIT","_id":"@bambiste/mix-builder@0.2.0","maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"bin":{"mix-builder":"dist/lib/builder/cli.js","mix-publisher":"dist/lib/package-publisher/cli.js"},"dist":{"shasum":"156284b4d75d9af812f9391c226ee157712350b6","tarball":"https://registry.npmjs.org/@bambiste/mix-builder/-/mix-builder-0.2.0.tgz","fileCount":83,"integrity":"sha512-Rxft76nJlK0oBkp4DZhSwk8/rRw/w9zgcUGQ63lAqiORdxG6xQsDeyG5uOxF12aCQBIVC41zNxhVvGfwgp2dJw==","signatures":[{"sig":"MEQCIDHRiRNlcDhx2uXiNs0QEEnJn26ZdglY9ASXc6ZbbCKqAiB1NFGEyT3TyNRDB8VTOYmYs8XWiphWG0zrLlHLCHX+ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAmOLCoMnjaHw8LQiBucVZcaFTS/t28lI+gyHDiHSaHSAiByVCFp1Te/hAoLlbTAgVHuIB0juejk+SwAQ0+EjaMcAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366944},"main":"./dist/index.js","type":"module","_from":"file:bambiste-mix-builder-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"private":false,"scripts":{"send":"pnpm publish --tag latest --no-git-check","test":"vitest","build":"tsc -p tsconfig.lib.json && node copy-build.js","artifact:copy":"cp ~/npm-artifacts/.npmrc .npmrc"},"_npmUser":{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"},"_resolved":"/tmp/9afa6c3f1f8c9b1177a992e5d3da779c/bambiste-mix-builder-0.2.0.tgz","_integrity":"sha512-Rxft76nJlK0oBkp4DZhSwk8/rRw/w9zgcUGQ63lAqiORdxG6xQsDeyG5uOxF12aCQBIVC41zNxhVvGfwgp2dJw==","_npmVersion":"10.9.8","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ora":"^9.0.0","vite":"^6.0.0","chalk":"^5.6.2","tslib":"^2.3.0","rollup":"^4.53.5","esbuild":"^0.27.1","inquirer":"^13.1.0","fast-glob":"^3.3.3","picomatch":"^4.0.4","log-update":"^7.0.2","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@vitest/ui":"^3.0.0","@types/node":"^22.0.0","@types/picomatch":"^4.0.3","@vitest/coverage-v8":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/mix-builder_0.2.0_1789753187215_0.40865540483113216","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bambiste/mix-builder","version":"0.2.1","license":"MIT","_id":"@bambiste/mix-builder@0.2.1","maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"bin":{"mix-builder":"dist/lib/builder/cli.js","mix-publisher":"dist/lib/package-publisher/cli.js"},"dist":{"shasum":"025511c77035039bfe11beebf6c2ce688f96d939","tarball":"https://registry.npmjs.org/@bambiste/mix-builder/-/mix-builder-0.2.1.tgz","fileCount":83,"integrity":"sha512-3UmbZDMSmMLzvo5lJ5hkg098B8pJVWJftmWKiKRgipzJ3U2ph4VrUBwnDGiQPD6Ab8fvPN/H0+5xASt7CQN9Rw==","signatures":[{"sig":"MEYCIQCXPZQQKbO61qq3g2wP+QYp98Y51ydMxgI4FLskPpbP6QIhAI/HmrPHVE+eNkTuEtcjREzFWEYiZ0ge48muheF5C20E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3bf+k9d+nG5LTW3p8KlGzsgGTH2zO+/ZQFDs8gFVu7wIhAKdIbNpyjPamb6gkEWCZ099fCRCah/cJVXGVA2q34jiY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":370316},"main":"./dist/index.js","type":"module","_from":"file:bambiste-mix-builder-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"private":false,"scripts":{"send":"pnpm publish --tag latest --no-git-check","test":"vitest","build":"tsc -p tsconfig.lib.json && node copy-build.js","artifact:copy":"cp ~/npm-artifacts/.npmrc .npmrc"},"_npmUser":{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"},"_resolved":"/tmp/ae5f53470442d967131fdd381b68ae57/bambiste-mix-builder-0.2.1.tgz","_integrity":"sha512-3UmbZDMSmMLzvo5lJ5hkg098B8pJVWJftmWKiKRgipzJ3U2ph4VrUBwnDGiQPD6Ab8fvPN/H0+5xASt7CQN9Rw==","_npmVersion":"10.9.8","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ora":"^9.0.0","vite":"^6.0.0","chalk":"^5.6.2","tslib":"^2.3.0","rollup":"^4.53.5","esbuild":"^0.27.1","inquirer":"^13.1.0","fast-glob":"^3.3.3","picomatch":"^4.0.4","log-update":"^7.0.2","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@vitest/ui":"^3.0.0","@types/node":"^22.0.0","@types/picomatch":"^4.0.3","@vitest/coverage-v8":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/mix-builder_0.2.1_1789756382999_0.8161945733363529","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bambiste/mix-builder","version":"0.3.0","license":"MIT","_id":"@bambiste/mix-builder@0.3.0","maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"bin":{"mix-builder":"dist/lib/builder/cli.js","mix-publisher":"dist/lib/package-publisher/cli.js"},"dist":{"shasum":"ac9e38b0c436ba980c008059ed9275d934914608","tarball":"https://registry.npmjs.org/@bambiste/mix-builder/-/mix-builder-0.3.0.tgz","fileCount":83,"integrity":"sha512-h18k8vlPzG/SPWDRVoQ3ufiiJyl6FjfW6JgQv3tafq6vzRRX4tSmjNizD5NKnMe2e1VQb2gGTiXluOruAJdH5g==","signatures":[{"sig":"MEUCIQCErXsKRj8fKi6xb5VQkSE6gAvUERWqg5V2LmoyAiMWyAIgYEHZKIh2v912QA55eSDqR7GIkfLXIrlmcc8TtkBIw8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICH7opGQP0PubM2+eueUNRZAe5Sp+/PMJXOJ03p8ggzLAiAlJYm29oXaLT+uZR8Mysj39Myyio1WeAvF84XlOhRh9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372345},"main":"./dist/index.js","type":"module","_from":"file:bambiste-mix-builder-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"private":false,"scripts":{"send":"pnpm publish --tag latest --no-git-check","test":"vitest","build":"tsc -p tsconfig.lib.json && node copy-build.js","artifact:copy":"cp ~/npm-artifacts/.npmrc .npmrc"},"_npmUser":{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"},"_resolved":"/tmp/83aa4a478313e29597dd90f4d14e66f0/bambiste-mix-builder-0.3.0.tgz","_integrity":"sha512-h18k8vlPzG/SPWDRVoQ3ufiiJyl6FjfW6JgQv3tafq6vzRRX4tSmjNizD5NKnMe2e1VQb2gGTiXluOruAJdH5g==","_npmVersion":"10.9.8","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ora":"^9.0.0","vite":"^6.0.0","chalk":"^5.6.2","tslib":"^2.3.0","rollup":"^4.53.5","esbuild":"^0.27.1","inquirer":"^13.1.0","fast-glob":"^3.3.3","picomatch":"^4.0.4","log-update":"^7.0.2","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@vitest/ui":"^3.0.0","@types/node":"^22.0.0","@types/picomatch":"^4.0.3","@vitest/coverage-v8":"^3.0.5"},"_npmOperationalInternal":{"tmp":"tmp/mix-builder_0.3.0_1789778860329_0.011612365771709543","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@bambiste/mix-builder@0.4.0","bin":{"mix-builder":"dist/lib/builder/cli.js","mix-publisher":"dist/lib/package-publisher/cli.js"},"dist":{"shasum":"9f49d5cd58c062b796b50b4bc5424e4ec976e353","tarball":"https://registry.npmjs.org/@bambiste/mix-builder/-/mix-builder-0.4.0.tgz","fileCount":86,"integrity":"sha512-VDGY5Vt7wPtQF3kI+ERVC2oh5+ITxOV2KxRBOFxRJJm7pXAyWjDjNNMm5VJ71V6GU+FivJlUa4T/vxfsuu5apQ==","signatures":[{"sig":"MEQCIAW26+DitSwqLDVlkdk8MInjjrRhth6Ce51GaVMHw8vYAiAsT+t1gFR4EcGwUTUIAUMnkuS0Yd8RBxDLbJUCHW6X1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwGFJbhQ/LHLMhvaaX3Lbj0AEz/ukvIp0Jr+ISE4RILgIgEr7emfrio6hHlOrIbw3moj9EjzEbbXiuHhszAv6Oq0o="}],"unpackedSize":387047},"main":"./dist/index.js","name":"@bambiste/mix-builder","type":"module","_from":"file:bambiste-mix-builder-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","development":"./src/index.ts"},"./package.json":"./package.json"},"license":"MIT","private":false,"scripts":{"send":"pnpm publish --tag latest --no-git-check","test":"vitest","build":"tsc -p tsconfig.lib.json && node copy-build.js","artifact:copy":"cp ~/npm-artifacts/.npmrc .npmrc"},"version":"0.4.0","_npmUser":{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"},"_resolved":"/tmp/9d695ff2511bdf4428575630f3e026d7/bambiste-mix-builder-0.4.0.tgz","_integrity":"sha512-VDGY5Vt7wPtQF3kI+ERVC2oh5+ITxOV2KxRBOFxRJJm7pXAyWjDjNNMm5VJ71V6GU+FivJlUa4T/vxfsuu5apQ==","_npmVersion":"10.9.8","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","directories":{},"maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"ora":"^9.0.0","vite":"^6.0.0","chalk":"^5.6.2","tslib":"^2.3.0","rollup":"^4.53.5","esbuild":"^0.27.1","inquirer":"^13.1.0","fast-glob":"^3.3.3","picomatch":"^4.0.4","log-update":"^7.0.2","rollup-plugin-copy":"^3.5.0","@babel/preset-react":"^7.28.5","@rollup/plugin-json":"^6.1.0","@rollup/plugin-babel":"^6.1.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-commonjs":"^29.0.0","@rollup/plugin-typescript":"^12.3.0","@rollup/plugin-node-resolve":"^16.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.0.0","@vitest/ui":"^3.0.0","@types/node":"^22.0.0","@types/picomatch":"^4.0.3","@vitest/coverage-v8":"^3.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mix-builder_0.4.0_1789803237142_0.5453151868505677"}}},"time":{"created":"2026-07-13T08:29:49.660Z","modified":"2026-09-19T07:33:57.411Z","0.1.0":"2026-07-13T08:29:50.025Z","0.2.0":"2026-09-18T17:39:47.311Z","0.2.1":"2026-09-18T18:33:03.089Z","0.3.0":"2026-09-19T00:47:40.451Z","0.4.0":"2026-09-19T07:33:57.270Z"},"license":"MIT","description":"A fast esbuild + Rollup library bundler: multi-format output (esm/cjs/iife), CDN globals, and per-file raw + gzip size reporting.","maintainers":[{"name":"bambiste","email":"ibrahima.toure.dev@gmail.com"}],"readme":"# @bambiste/mix-builder\n\nA fast library bundler on top of **esbuild** and **Rollup**. Point it at your entries,\npick your formats, and it emits `esm` / `cjs` / `iife` bundles — with CDN globals and a\nper-file **raw + gzip** size report.\n\n## Install\n\n```bash\npnpm add -D @bambiste/mix-builder\n# npm i -D @bambiste/mix-builder · yarn add -D @bambiste/mix-builder\n```\n\nShips as ESM/CJS with a `mix-builder` CLI (and a `mix-publisher` for releases).\n\n## Usage\n\n### CLI\n\n```bash\n# esbuild, esm + cjs, minified, clean output dir, emit .d.ts\nnpx mix-builder --builder=esbuild --formats=esm,cjs --minify --clean --dts\n```\n\n### Config file\n\nKeep options in a JSON config and pass `--buildConfigFile`:\n\n```jsonc\n// build-config.json\n{\n  \"builder\": \"esbuild\",\n  \"outdir\": \"dist\",\n  \"esbuild\": {\n    \"entries\": [\"src/index.ts\"],\n    \"formats\": [\"esm\", \"cjs\"]\n  }\n}\n```\n\n```bash\nnpx mix-builder --buildConfigFile=build-config.json\n```\n\nAn alternate config runs a separate pass — e.g. a CDN build that doesn't disturb the\ndefault one:\n\n```jsonc\n// build-config.cdn.json — iife globals for unpkg/jsdelivr\n{\n  \"builder\": \"esbuild\",\n  \"outdir\": \"dist/cdn\",\n  \"esbuild\": {\n    \"entries\": { \"src/cdn/signal.ts\": { \"globalName\": \"Signal\", \"formats\": [\"iife\"] } },\n    \"noExternal\": true\n  }\n}\n```\n\n## Banner\n\n```jsonc\n// build-config.json\n{\n  \"esbuild\": {\n    \"banner\": \"/*! {name} v{version} | (c) {year} {author} | {license} */\"\n  }\n}\n```\n\n```jsonc\n// only the entry a consumer loads\n{\n  \"esbuild\": {\n    \"banner\": {\n      \"js\": \"/*! {name} v{version} */\",\n      \"include\": [\"src/index.ts\"],\n      \"exclude\": [\"src/**/*.spec.ts\"]\n    }\n  }\n}\n```\n\nA banner string applies to every entry. The object form allows selective inclusion and exclusion using globs. Tokens `{name}`, `{version}`, `{description}`, `{license}`, `{homepage}`, `{author}`, `{year}` are replaced from `package.json`; unknown tokens remain unchanged.\n\n## Minification\n\nThe default follows the format, because who loads the file decides. `iife` is loaded\nstraight into a browser over a `<script>` tag, so nothing downstream will minify it and\nit is minified. `esm` and `cjs` are consumed by a bundler that minifies anyway, so they\nare left readable. `cjs` is never minified.\n\nSetting `\"minify\"` in the config, or `--minify`, overrides the default in either\ndirection. While minifying, `minifySyntax`, `minifyWhitespace` and `minifyIdentifiers`\nact as opt-outs.\n\n## Compile-time constants\n\n`define` replaces identifiers at build time, so a production build can drop code a\ndevelopment build keeps. Values substitute as written, so a string needs its own quotes.\n`process.env.NODE_ENV` is set for you and can be overridden here.\n\n```jsonc\n// build-config.json\n{\n  \"esbuild\": {\n    \"define\": { \"__DEV__\": \"false\" }\n  }\n}\n```\n\n## tsc\n\nThe `tsc` block tells Mix Builder how to invoke the TypeScript compiler. It runs the compiler that the package depends on.\n\n| Key                | Default               | Description |\n|--------------------|-----------------------|-------------|\n| `project`          | `tsconfig.json`       | Path to the TypeScript configuration file. |\n| `enabled`          | `true`                | Whether the compiler step is active. |\n| `emitDeclarationOnly` | `false`           | Emit only declaration files when true. |\n| `failOnError`      | `true`                | Stop the build if the compiler reports errors. |\n| `args`             | *(empty)*             | Additional command-line arguments passed to `tsc`. |\n\n```json\n{\n  \"tsc\": {\n    \"project\": \"tsconfig.json\",\n    \"enabled\": true,\n    \"emitDeclarationOnly\": false,\n    \"failOnError\": true,\n    \"args\": []\n  }\n}\n```\n\nThe `clean` step runs before `tsc`, and any bundler steps run after it.\n\n## TypeScript\n\nesbuild strips types itself, so the esbuild path works with no TypeScript installed.  \nThe Rollup TypeScript plugin is optional via `plugins.typescript.enabled` and requires a TypeScript version that exposes the compiler API. It works with TypeScript 5.9.2 but not with TypeScript 7.0.2, which only exports version information.\n\n## Output\n\nEvery build prints an aligned table of the bundles it emitted, with raw and gzip sizes:\n\n```\n◆ mix-builder\n\n  ✓ Built signal.ts [iife] in 43ms\n  ✓ Built reactive.ts [iife] in 20ms\n  ✓ esbuild · 2 entries · 2 ok · 63ms\n\n  Output · dist\n  ─────────────────────────────────────────────\n  cdn/reactive.global.js   29.64 KB   8.68 KB gz\n  cdn/signal.global.js      3.36 KB   1.29 KB gz\n  ─────────────────────────────────────────────\n  2 files                  33.00 KB   9.97 KB gz\n\n✓ Built 2 entries in 73ms\n```\n\nOnly the files written by the current run are listed (mtime-filtered), so incremental\nbuilds don't re-report bundles from a previous pass.\n\n## Highlights\n\n- **esbuild or Rollup** (`--builder=esbuild|rollup|both`), or per-entry config.\n- **Multi-format** output: `esm`, `cjs`, `iife`.\n- **CDN globals** — per-entry `globalName` + `noExternal` produce self-contained\n  `*.global.js` for `<script>` use on unpkg / jsdelivr.\n- **Banners** — a copyright comment with `{name}`/`{version}`/`{year}` filled from\n  `package.json`, on the entries you pick.\n- **Size reporting** — raw + gzip per file, with a total.\n- **Typings** — `--dts` emits `.d.ts` alongside the bundles.\n- **External handling** — auto-externalize deps, or `noExternal` to inline them.\n\n## License\n\nMIT © Bambiste\n","readmeFilename":"README.md"}