{"_id":"@bitforgehq/prettier-config","_rev":"5-09c7e739952bef2390a3fe4259401c2f","name":"@bitforgehq/prettier-config","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@bitforgehq/prettier-config","version":"1.0.0","keywords":["prettier","prettier-config","angular","formatting"],"license":"MIT","_id":"@bitforgehq/prettier-config@1.0.0","maintainers":[{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},{"name":"raphaelbit","email":"raphael.anderegg@bitforge.ch"},{"name":"streinhard","email":"stefan.reinhard@bitforge.ch"}],"dist":{"shasum":"afdc2c9e56054e02cf72ada8199c44ac0bbbb625","tarball":"https://registry.npmjs.org/@bitforgehq/prettier-config/-/prettier-config-1.0.0.tgz","fileCount":3,"integrity":"sha512-wu6WXEwxo9GqoXnlFqY1rHjldhu2hjiUCXlNNjLkivWKjv2EXNmvZ8HP19zITBLMGk9UxfBcR/y7FRPzHK6ZoQ==","signatures":[{"sig":"MEUCID415fAj8qjAIssPYTF0gqysEYABN0QQt3equVq7DgNHAiEA/ssSmVGOP5oGjG/G2GjqoUruQyf5A2DudjYHM+YH0So=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2244},"main":"index.cjs","exports":{".":"./index.cjs"},"gitHead":"f66d333a529257511439524c675e4c0721bfed71","scripts":{"publish":"npm publish --access public"},"_npmUser":{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},"_npmVersion":"10.9.3","description":"Shared Prettier configuration for Angular projects","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"peerDependencies":{"prettier":"^3.0.0"},"peerDependenciesMeta":{"prettier":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/prettier-config_1.0.0_1769509252875_0.23108818657047991","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bitforgehq/prettier-config","version":"1.0.1","keywords":["prettier","prettier-config","angular","formatting"],"license":"MIT","_id":"@bitforgehq/prettier-config@1.0.1","maintainers":[{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},{"name":"raphaelbit","email":"raphael.anderegg@bitforge.ch"},{"name":"streinhard","email":"stefan.reinhard@bitforge.ch"}],"bin":{"sync-prettier-ignore":"bin/sync-prettier-ignore.js"},"dist":{"shasum":"ca8931148ac4f2de4b1a14fd2ec2ef2a85df87da","tarball":"https://registry.npmjs.org/@bitforgehq/prettier-config/-/prettier-config-1.0.1.tgz","fileCount":5,"integrity":"sha512-RkDFQWUVb41d0hDUSCxKaXBMpVe9FM6NUoDM2GfY2J1k8SCtXhZjHpDDXVP2DxA2lLSzez5RivuBiQHFPUvi+w==","signatures":[{"sig":"MEYCIQDX+tapp7HJd8rXoVX0LiM+6VfE4z7Be+fWtebJIEoc1wIhAIx/Utl56caFi97shTbMqAey8uG1my/nvhT7dbPes6e/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4312},"main":"index.cjs","exports":{".":"./index.cjs"},"gitHead":"f1f2b3a94b8535475ad4922ae2db2510d6e65cb4","scripts":{"publish":"npm publish --access public"},"_npmUser":{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},"_npmVersion":"10.9.3","description":"Shared Prettier configuration for Angular projects","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"peerDependencies":{"prettier":"^3.0.0"},"peerDependenciesMeta":{"prettier":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/prettier-config_1.0.1_1769516782528_0.624542516588473","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@bitforgehq/prettier-config","version":"2.0.0","keywords":["prettier","prettier-config","angular","tailwind","formatting"],"license":"MIT","_id":"@bitforgehq/prettier-config@2.0.0","maintainers":[{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},{"name":"raphaelbit","email":"raphael.anderegg@bitforge.ch"},{"name":"streinhard","email":"stefan.reinhard@bitforge.ch"}],"bin":{"sync-prettier-ignore":"bin/sync-prettier-ignore.js"},"dist":{"shasum":"a91ae71a2b0ee2365734ce79a54463ec536c5082","tarball":"https://registry.npmjs.org/@bitforgehq/prettier-config/-/prettier-config-2.0.0.tgz","fileCount":5,"integrity":"sha512-eBFH3KSm00iosSIzV+S/RyRqDQ30em5YiQLuXVYozBT6JKDLMv/XZVx5lpAgNna2S9kI0HrzUUdYccisBHuZzw==","signatures":[{"sig":"MEUCIQD9KJ5ClVA8LKz3wfVIHxk7wsN2VNzTWS/MqDu5hBkD1gIgQWo5yOoyrHNgajcCBfOkFWyFryNzAW38S+kPqpWJYXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5033},"main":"index.cjs","exports":{".":"./index.cjs"},"gitHead":"6a8094d4e73632a9fff91b6dbe13665418db1e22","scripts":{"test":"bun test test/smoke.test.js","release":"npm publish --access public"},"_npmUser":{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},"_npmVersion":"10.9.3","description":"Shared Prettier configuration for Angular 22 projects with Tailwind class sorting","directories":{},"_nodeVersion":"22.19.0","dependencies":{"prettier-plugin-tailwindcss":"^0.8.0"},"_hasShrinkwrap":false,"peerDependencies":{"prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/prettier-config_2.0.0_1784010089766_0.2109966378842667","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@bitforgehq/prettier-config","version":"2.0.1","keywords":["prettier","prettier-config","angular","tailwind","formatting"],"license":"MIT","_id":"@bitforgehq/prettier-config@2.0.1","maintainers":[{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},{"name":"raphaelbit","email":"raphael.anderegg@bitforge.ch"},{"name":"streinhard","email":"stefan.reinhard@bitforge.ch"}],"bin":{"sync-prettier-ignore":"bin/sync-prettier-ignore.js"},"dist":{"shasum":"cf5a21130b4fded9505d6d5e283b51cf61dc3e24","tarball":"https://registry.npmjs.org/@bitforgehq/prettier-config/-/prettier-config-2.0.1.tgz","fileCount":5,"integrity":"sha512-6E7Y+JXWRuwIG6Vq1WG3NFBaoc26xtnoEzPLxcSOo+DJv5W9OQAStQA6Ch8wwoLO8NqrcWJCMBoyPddE7laSqw==","signatures":[{"sig":"MEYCIQDoQO7F3N2v1xI8x5FvC9QwWxEqCNBtmSDFSDag165iCAIhAKY7oEMOnEFesDLwSAz4YKuTt28H+guzTTRuZQxdCWKQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5485},"main":"index.cjs","exports":{".":"./index.cjs"},"gitHead":"bd70215f1340ca840f19755fc8586331d3938ff4","scripts":{"test":"bun test test/smoke.test.js","release":"npm publish --access public"},"_npmUser":{"name":"lucatescari","email":"luca.tescari@bitforge.ch"},"_npmVersion":"10.9.3","description":"Shared Prettier configuration for Angular 22 projects with Tailwind class sorting","directories":{},"_nodeVersion":"22.19.0","dependencies":{"prettier-plugin-tailwindcss":"^0.8.0"},"_hasShrinkwrap":false,"peerDependencies":{"prettier":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/prettier-config_2.0.1_1785662318704_0.40026895543333474","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-27T10:20:52.747Z","modified":"2026-09-07T19:08:27.708Z","1.0.0":"2026-01-27T10:20:53.004Z","1.0.1":"2026-01-27T12:26:22.661Z","2.0.0":"2026-07-14T06:21:29.903Z","2.0.1":"2026-08-02T09:18:38.843Z"},"license":"MIT","keywords":["prettier","prettier-config","angular","tailwind","formatting"],"description":"Shared Prettier configuration for Angular 22 projects with Tailwind class sorting","maintainers":[{"email":"luca.tescari@bitforge.ch","name":"lucatescari"},{"email":"raphael.anderegg@bitforge.ch","name":"raphaelbit"}],"readme":"# @bitforgehq/prettier-config\n\nShared Prettier configuration for Angular 22 projects. Bundles Tailwind CSS\nclass sorting — including inside inline component templates — and formats\nstandalone `.html` files with Prettier's Angular parser (correct `@if`/`@for`\nindentation).\n\n## Installation\n\n```bash\nbun add -D prettier @bitforgehq/prettier-config\n```\n\n`prettier-plugin-tailwindcss` is bundled as a dependency of this package —\nnothing else to install.\n\n## Usage\n\nAdd to your `package.json`:\n\n```json\n{\n  \"prettier\": \"@bitforgehq/prettier-config\"\n}\n```\n\n### Sync .prettierignore (optional but recommended)\n\n```bash\nbunx sync-prettier-ignore\n```\n\nCreates a `.prettierignore` in your project root with common ignore patterns\nfor Angular/TypeScript/Bun projects.\n\n## What the config does\n\n- `semi: true`, `singleQuote: true`, `printWidth: 100`, `trailingComma: \"all\"`,\n  `arrowParens: \"always\"`, `tabWidth: 2`, `useTabs: false`, `endOfLine: \"lf\"`\n- **Tailwind class sorting** via `prettier-plugin-tailwindcss` — canonical\n  class order everywhere, including inline `template:` strings in `.ts`\n  components\n- **Angular parser for `*.html`** — control-flow blocks (`@if`, `@for`,\n  `@switch`) indent correctly (the default HTML parser mangles them)\n\n## Custom Tailwind themes\n\nIf your project defines custom utilities/theme values, point the sorter at\nyour stylesheet in a project-local `.prettierrc.cjs`:\n\n```js\nmodule.exports = {\n  ...require('@bitforgehq/prettier-config'),\n  tailwindStylesheet: './src/styles.css',\n};\n```\n\nWithout it, standard Tailwind utilities still sort correctly; only custom\nclasses are left in place.\n\n## Overriding options\n\nThe `\"prettier\": \"...\"` package.json form cannot be extended. To override,\nswitch to a `.prettierrc.cjs` that spreads this config:\n\n```js\nmodule.exports = {\n  ...require('@bitforgehq/prettier-config'),\n  printWidth: 120,\n};\n```\n\n## Scripts\n\n```json\n{\n  \"scripts\": {\n    \"format\": \"prettier --write \\\"**/*.{ts,html,json,md,css,scss}\\\"\",\n    \"format:check\": \"prettier --check \\\"**/*.{ts,html,json,md,css,scss}\\\"\"\n  }\n}\n```\n\n## Migrating from v1\n\nClass sorting changes formatting output. After upgrading, run the format\nscript once and commit the churn:\n\n```bash\nbunx prettier --write .\n```\n","readmeFilename":"README.md"}