{"_id":"@bonsaicss/esbuild-plugin","_rev":"2-a3077a54a722ff9180fb3ea5eedc24f4","name":"@bonsaicss/esbuild-plugin","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@bonsaicss/esbuild-plugin","version":"0.1.0","keywords":["css","esbuild","esbuild-plugin","pruner","bonsaicss"],"license":"MIT","_id":"@bonsaicss/esbuild-plugin@0.1.0","maintainers":[{"name":"menesesevandro","email":"evandro.m.carneiro@gmail.com"}],"dist":{"shasum":"cbe300e8a2177b952d591034df1687904155f793","tarball":"https://registry.npmjs.org/@bonsaicss/esbuild-plugin/-/esbuild-plugin-0.1.0.tgz","fileCount":8,"integrity":"sha512-OK2I/7wgF8GesEfliozgdxakzDKLdBRLaeVPPUmS/N83wmLV0tFgfzT4gGGrgoYlpeoSdk8b+8+LEw7HuhXVmA==","signatures":[{"sig":"MEUCIC/V0QedDP8Av3wtdVz2RcsfnoRzVomkjdhgR53azuBjAiEAkB5C6pOyKJxu+uxbcWshxj5C6cdWT3dW702uhWeKWO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16719},"main":"./dist/index.cjs","type":"module","_from":"file:bonsaicss-esbuild-plugin-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"menesesevandro","email":"evandro.m.carneiro@gmail.com"},"_resolved":"/private/var/folders/qb/vlwc873j797133xp2sb8d7tr0000gn/T/a8aa4d005e06cda884b09789fb92c5ec/bonsaicss-esbuild-plugin-0.1.0.tgz","_integrity":"sha512-OK2I/7wgF8GesEfliozgdxakzDKLdBRLaeVPPUmS/N83wmLV0tFgfzT4gGGrgoYlpeoSdk8b+8+LEw7HuhXVmA==","_npmVersion":"11.10.0","description":"BonsaiCSS esbuild plugin — prune unused CSS during esbuild builds 🌳","directories":{},"_nodeVersion":"24.8.0","dependencies":{"@bonsaicss/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":">=0.17.0"},"peerDependencies":{"esbuild":">=0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/esbuild-plugin_0.1.0_1771197848115_0.4018090481301977","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bonsaicss/esbuild-plugin","version":"0.1.1","description":"BonsaiCSS esbuild plugin — prune unused CSS during esbuild builds 🌳","repository":{"type":"git","url":"git+https://github.com/Bonsai-CSS/bonsaicss.git","directory":"packages/bonsaicss-esbuild-plugin"},"publishConfig":{"access":"public"},"license":"MIT","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"dependencies":{"@bonsaicss/core":"0.1.1"},"peerDependencies":{"esbuild":">=0.17.0"},"devDependencies":{"esbuild":">=0.17.0"},"keywords":["css","esbuild","esbuild-plugin","pruner","bonsaicss"],"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"_id":"@bonsaicss/esbuild-plugin@0.1.1","bugs":{"url":"https://github.com/Bonsai-CSS/bonsaicss/issues"},"homepage":"https://github.com/Bonsai-CSS/bonsaicss#readme","_integrity":"sha512-BrVP/Zt3lpplFABpfgMJs8ZxDq28qYl2QN/+f+xyfXjCe+Qf4oEj9SobFjmHM60Hh4v13MyZUJ+Xd0g1psqcwA==","_resolved":"/private/var/folders/qb/vlwc873j797133xp2sb8d7tr0000gn/T/e18246f231e76491aa1272e0cc6d64e6/bonsaicss-esbuild-plugin-0.1.1.tgz","_from":"file:bonsaicss-esbuild-plugin-0.1.1.tgz","_nodeVersion":"24.8.0","_npmVersion":"11.10.0","dist":{"integrity":"sha512-BrVP/Zt3lpplFABpfgMJs8ZxDq28qYl2QN/+f+xyfXjCe+Qf4oEj9SobFjmHM60Hh4v13MyZUJ+Xd0g1psqcwA==","shasum":"427c1f3f04d097f787b60d7e4354f4d436e6d486","tarball":"https://registry.npmjs.org/@bonsaicss/esbuild-plugin/-/esbuild-plugin-0.1.1.tgz","fileCount":8,"unpackedSize":16872,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC7Sg2PqOA9bXn7tYmF8CACzaglMOABDhrrWm32M7RF0gIhAN1h2iyMiiaLRgxyD/h5JQijAyVcdrYiedgRn+qBwc7C"}]},"_npmUser":{"name":"menesesevandro","email":"evandro.m.carneiro@gmail.com"},"directories":{},"maintainers":[{"name":"menesesevandro","email":"evandro.m.carneiro@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/esbuild-plugin_0.1.1_1771258780911_0.04583057691881387"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-15T23:24:08.041Z","modified":"2026-02-16T16:19:41.207Z","0.1.0":"2026-02-15T23:24:08.274Z","0.1.1":"2026-02-16T16:19:41.062Z"},"license":"MIT","keywords":["css","esbuild","esbuild-plugin","pruner","bonsaicss"],"description":"BonsaiCSS esbuild plugin — prune unused CSS during esbuild builds 🌳","maintainers":[{"name":"menesesevandro","email":"evandro.m.carneiro@gmail.com"}],"readme":"# @bonsaicss/esbuild-plugin\n\n> esbuild plugin for BonsaiCSS 🌳 — prune unused CSS during esbuild builds.\n\n## Installation\n\n```bash\nnpm install @bonsaicss/esbuild-plugin esbuild\n```\n\n## Setup\n\n### Build Script\n\n```js\nimport esbuild from 'esbuild';\nimport bonsaiEsbuild from '@bonsaicss/esbuild-plugin';\n\nawait esbuild.build({\n  entryPoints: ['src/index.ts'],\n  bundle: true,\n  outdir: 'dist',\n  plugins: [\n    bonsaiEsbuild({\n      content: ['./src/**/*.{html,tsx,jsx,vue,svelte}'],\n    }),\n  ],\n});\n```\n\n### With tsup\n\n```ts\n// tsup.config.ts\nimport { defineConfig } from 'tsup';\nimport bonsaiEsbuild from '@bonsaicss/esbuild-plugin';\n\nexport default defineConfig({\n  entry: ['src/index.ts'],\n  esbuildPlugins: [\n    bonsaiEsbuild({\n      content: ['./src/**/*.{html,tsx}'],\n    }),\n  ],\n});\n```\n\n## Options\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `content` | `string[]` | — | **Required.** Glob patterns for content files to scan. |\n| `filter` | `RegExp` | `/\\.css$/` | Regex filter for the `onLoad` hook. |\n| `verbose` | `boolean` | `false` | Log pruning statistics to stderr. |\n| `safelist` | `string[]` | `[]` | Class names to always keep. |\n| `safelistPatterns` | `(string \\| RegExp)[]` | `[]` | Regex patterns for classes to preserve. |\n| `keepDynamicPatterns` | `boolean \\| (string \\| RegExp)[]` | `false` | Infer or provide dynamic class patterns. |\n\n## How It Works\n\nThe plugin uses two esbuild hooks:\n\n- **`onStart`** — Invalidates the scan cache at the start of each build.\n- **`onLoad`** — Intercepts CSS files matching the `filter` regex, reads them from disk, prunes unused rules, and returns the optimized CSS.\n\n## License\n\nMIT\n","readmeFilename":"README.md","homepage":"https://github.com/Bonsai-CSS/bonsaicss#readme","repository":{"type":"git","url":"git+https://github.com/Bonsai-CSS/bonsaicss.git","directory":"packages/bonsaicss-esbuild-plugin"},"bugs":{"url":"https://github.com/Bonsai-CSS/bonsaicss/issues"}}