{"_id":"@blacklizard/eslint-blacklizard","_rev":"2-f64e19cdb3a7f0a51032c223e2307e1e","name":"@blacklizard/eslint-blacklizard","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@blacklizard/eslint-blacklizard","version":"1.0.0","keywords":["eslint","eslintconfig","eslint-config","shareable-config","airbnb","lint","code-style"],"author":{"name":"blacklizard"},"license":"MIT","_id":"@blacklizard/eslint-blacklizard@1.0.0","maintainers":[{"name":"icodewithlizard","email":"jeevanlx@gmail.com"}],"dist":{"shasum":"1ec1ff89b5c72d0320d74e7113c8ec6cd355c446","tarball":"https://registry.npmjs.org/@blacklizard/eslint-blacklizard/-/eslint-blacklizard-1.0.0.tgz","fileCount":4,"integrity":"sha512-g7b4HJNSa88h5f7ZkCQuIlg76PVWQLmkU5BHn6IZ67odwtR3taB2BBdszQTl5AfTec2PHPwgAPWOqyCPtksnUQ==","signatures":[{"sig":"MEYCIQC5oJ7IZC1m4iYwmkYyNN28RNLRJ8sota/VDXMJnIKM4QIhANOA6ab4toyKHSN6qpUU5/wgY3xvFkMhKJYdk4AP+KDC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19970},"main":"eslint.config.mjs","type":"module","engines":{"node":">=24","pnpm":">=10"},"exports":{".":"./eslint.config.mjs"},"gitHead":"2b180f42b72361ec395ec599ef7c5fb8bfa9bc35","scripts":{"lint":"eslint .","test":"node --test","release":"pnpm lint && pnpm test && git tag \"v$npm_package_version\" && git push --follow-tags","version":"changeset version","changeset":"changeset"},"_npmUser":{"name":"icodewithlizard","email":"jeevanlx@gmail.com"},"_npmVersion":"11.12.1","description":"Reusable, opinionated ESLint config — blacklizard code standards.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@eslint/js":"^9.39.4","@eslint/css":"^1.2.0","@eslint/compat":"^2.1.0","eslint-plugin-vue":"^10.9.1","vue-eslint-parser":"^10.4.0","@html-eslint/parser":"^0.60.0","@typescript-eslint/parser":"^8.59.3","@html-eslint/eslint-plugin":"^0.60.0","eslint-config-airbnb-extended":"^3.1.0","eslint-plugin-better-tailwindcss":"^4.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"eslint":"^9.39.4","tailwindcss":"^4.3.0","@changesets/cli":"^2.31.0"},"peerDependencies":{"eslint":">=9"},"_npmOperationalInternal":{"tmp":"tmp/eslint-blacklizard_1.0.0_1779077909823_0.7588742868461928","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@blacklizard/eslint-blacklizard","version":"1.0.1","description":"Reusable, opinionated ESLint config — blacklizard code standards.","type":"module","repository":{"type":"git","url":"git+https://github.com/blacklizard/eslint.git"},"bugs":{"url":"https://github.com/blacklizard/eslint/issues"},"homepage":"https://github.com/blacklizard/eslint#readme","main":"eslint.config.mjs","exports":{".":"./eslint.config.mjs"},"scripts":{"lint":"eslint .","test":"node --test","changeset":"changeset","version":"changeset version","release":"pnpm lint && pnpm test && git tag \"v$npm_package_version\" && git push --follow-tags"},"keywords":["eslint","eslintconfig","eslint-config","shareable-config","airbnb","lint","code-style"],"author":{"name":"blacklizard"},"license":"MIT","publishConfig":{"access":"public"},"peerDependencies":{"eslint":">=9"},"engines":{"node":">=24","pnpm":">=10"},"packageManager":"pnpm@10.33.0","dependencies":{"@eslint/compat":"^2.1.0","@eslint/css":"^1.2.0","@eslint/js":"^9.39.4","@html-eslint/eslint-plugin":"^0.60.0","@html-eslint/parser":"^0.60.0","@typescript-eslint/parser":"^8.59.3","eslint-config-airbnb-extended":"^3.1.0","eslint-plugin-better-tailwindcss":"^4.5.0","eslint-plugin-vue":"^10.9.1","vue-eslint-parser":"^10.4.0"},"devDependencies":{"@changesets/cli":"^2.31.0","eslint":"^9.39.4","tailwindcss":"^4.3.0"},"gitHead":"6b2189d9a24f4543dbcdedd37739807482bbeefd","_id":"@blacklizard/eslint-blacklizard@1.0.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-k9yG7Oup0wKqxbpD/9wRP9JH4iymxFZ7E1qx69X98AN/af6/0rVutFvn68i7LiV07XIcgJXHSU13vlqZvjLoSg==","shasum":"3bf95f4dc3b24a4c26f16c8b3df33cc3bb937bd6","tarball":"https://registry.npmjs.org/@blacklizard/eslint-blacklizard/-/eslint-blacklizard-1.0.1.tgz","fileCount":5,"unpackedSize":20342,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blacklizard%2feslint-blacklizard@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC49ebRfq4tu4SGfWaDSKN6jdYbn2eGiFjxEXVMcL5hvAiAyApMAz+v/reo/YdAlH56sptWh+En1kWD0xmC5c6Pt0g=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87465db2-8ec4-4608-87fb-0984bce4b5d0"}},"directories":{},"maintainers":[{"name":"icodewithlizard","email":"jeevanlx@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-blacklizard_1.0.1_1779078796607_0.0837968530552522"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T04:18:29.745Z","modified":"2026-05-18T04:33:17.085Z","1.0.0":"2026-05-18T04:18:29.984Z","1.0.1":"2026-05-18T04:33:16.765Z"},"author":{"name":"blacklizard"},"license":"MIT","keywords":["eslint","eslintconfig","eslint-config","shareable-config","airbnb","lint","code-style"],"description":"Reusable, opinionated ESLint config — blacklizard code standards.","maintainers":[{"name":"icodewithlizard","email":"jeevanlx@gmail.com"}],"readme":"# @blacklizard/eslint-blacklizard\n\nReusable, opinionated ESLint config — Blacklizard code standards. Built on\n[`eslint-config-airbnb-extended`](https://www.npmjs.com/package/eslint-config-airbnb-extended),\nflat config, ESLint 9+.\n\n## Install\n\n```sh\npnpm add -D eslint @blacklizard/eslint-blacklizard\n```\n\n`eslint` is a peer dependency (`>=9`). Requires Node `>=24`.\n\n## Usage\n\nThe default export auto-configures itself — every rule set is scoped by file\nextension, so `.js`/`.ts`, `.vue`, `.html`, `.css` and `.eta` files each get\nthe right rules with no manual selection:\n\n```js\n// eslint.config.mjs — lints everything\nexport { default } from '@blacklizard/eslint-blacklizard';\n```\n\nThat is all most projects need. The individual configs are also exported if\nyou want to lint only one file type:\n\n```js\nexport { typescriptConfig as default } from '@blacklizard/eslint-blacklizard';\nexport { vueConfig as default } from '@blacklizard/eslint-blacklizard';\nexport { htmlConfig as default } from '@blacklizard/eslint-blacklizard';\nexport { cssConfig as default } from '@blacklizard/eslint-blacklizard';\nexport { etaConfig as default } from '@blacklizard/eslint-blacklizard';\n```\n\nTo extend a config with project-specific rules:\n\n```js\nimport config from '@blacklizard/eslint-blacklizard';\n\nexport default [\n  ...config,\n  {\n    rules: {\n      // project overrides\n    },\n  },\n];\n```\n\n## Exports\n\n| Export             | Files            | Covers                                                       |\n| ------------------ | ---------------- | ------------------------------------------------------------ |\n| `autoConfig`       | all of the below | every config combined, scoped by file extension              |\n| `typescriptConfig` | `.js`, `.ts`     | airbnb base + node + typescript; Tailwind classes in JSX/TSX  |\n| `vueConfig`        | + `.vue`         | above, widened to SFCs + `eslint-plugin-vue` + Tailwind       |\n| `htmlConfig`       | `.html`          | `@html-eslint` recommended markup rules                      |\n| `etaConfig`        | `.eta`           | JS inside `<% %>` exec tags of Eta templates                 |\n| `cssConfig`        | `.css`           | `@eslint/css` recommended rules                              |\n\n`default` is `autoConfig`.\n\n## Notable rule choices\n\n- `@stylistic/max-len`: 120 (comments + URLs exempt)\n- `@stylistic/semi`: always\n- `max-depth`: 2\n- `@stylistic/padding-line-between-statements`: blank lines after imports,\n  before `return`, around blocks and functions\n- `no-console`: error (allows `console.warn` / `console.error`)\n- Relaxed rules for `*.{test,spec}.*` and `__tests__/`\n\n## Tailwind CSS\n\n`typescriptConfig` and `vueConfig` lint Tailwind class attributes via\n[`eslint-plugin-better-tailwindcss`](https://github.com/schoero/eslint-plugin-better-tailwindcss)\n(`recommended` rules — class order, duplicates, conflicts, unknown classes).\n\nClass-resolution rules need to know your Tailwind setup, so consumers **must**\nadd a `settings` block pointing at it:\n\n```js\nimport { vueConfig } from '@blacklizard/eslint-blacklizard';\n\nexport default [\n  ...vueConfig,\n  {\n    settings: {\n      'better-tailwindcss': {\n        entryPoint: 'src/styles/app.css', // Tailwind v4: your CSS entry\n        // tailwindConfig: 'tailwind.config.js', // Tailwind v3 instead\n      },\n    },\n  },\n];\n```\n\n`tailwindcss` (`^3.3.0 || ^4.1.17`) must be installed in the project.\n\n## Requirements & caveats\n\n- **Typed linting** (`typescriptConfig`, `vueConfig`) needs a `tsconfig.json`\n  covering the linted files — including `.vue` for Vue projects. Without it,\n  ESLint reports `\"not found by the project service\"`.\n- **Tailwind**: without the `settings['better-tailwindcss']` block above,\n  class-resolution rules cannot work and will flag every class as unknown.\n- **HTML**: inline `<script>` JS is not linted — keep scripts in external\n  `.js` files.\n- **Eta**: only JS in `<% %>` exec tags is linted. Interpolation tags\n  (`<%= %>`, `<%~ %>`) and HTML markup are not checked.\n- **CSS**: `css/no-invalid-at-rules` is disabled — Tailwind at-rules\n  (`@apply`, `@theme`, `@utility`, `@variant`) are not standard CSS and would\n  otherwise false-flag every Tailwind file. All other `@eslint/css` rules\n  (empty blocks, duplicate imports/keyframes, `!important`, baseline, etc.)\n  stay on.\n\n## Releasing\n\nVersioning is managed with [changesets](https://github.com/changesets/changesets):\n\n```sh\npnpm changeset   # 1. record a change + pick bump type (patch/minor/major)\npnpm version     # 2. apply bumps, write CHANGELOG.md     (changeset version)\ngit commit -am \"version packages\"   # 3. commit the bump\npnpm release     # 4. lint + test, then tag + push\n```\n\nPushing the `v*` tag triggers the GitHub Actions workflow, which publishes to\nnpm with provenance.\n\n## License\n\nMIT\n# eslint\n","readmeFilename":"README.md","homepage":"https://github.com/blacklizard/eslint#readme","repository":{"type":"git","url":"git+https://github.com/blacklizard/eslint.git"},"bugs":{"url":"https://github.com/blacklizard/eslint/issues"}}