{"_id":"eslint-stylistic-airbnb","_rev":"14-80542af2ec8d598e7d778424b0a5f7e6","name":"eslint-stylistic-airbnb","dist-tags":{"latest":"3.2.0"},"versions":{"1.0.0":{"name":"eslint-stylistic-airbnb","version":"1.0.0","keywords":["eslint","stylistic","airbnb","config"],"author":"","license":"MIT","_id":"eslint-stylistic-airbnb@1.0.0","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"dist":{"shasum":"17fbb924cad91fcdc48466ba2de771de955b668d","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-1.0.0.tgz","fileCount":9,"integrity":"sha512-bpR7EbFjIVKnR6zuxVY+0M1zZan8qO4n4c+Iw7fWwSON9VrNifnPEMR4IUg08J0UHi4UJs4dOeKmEl9+YItq/g==","signatures":[{"sig":"MEUCIAuMdYphATY8aZtu+dvIs21GNplqv2ccKeBKF6RfbhZHAiEAv/SI7GjFQUTV8JioJzn3k+CAi5o1LtV5YYX0/r/GquY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54561},"main":"index.js","_from":"file:eslint-stylistic-airbnb-1.0.0.tgz","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"_resolved":"/tmp/095bed25de96bcf4931424f962d12af3/eslint-stylistic-airbnb-1.0.0.tgz","_integrity":"sha512-bpR7EbFjIVKnR6zuxVY+0M1zZan8qO4n4c+Iw7fWwSON9VrNifnPEMR4IUg08J0UHi4UJs4dOeKmEl9+YItq/g==","_npmVersion":"10.8.2","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"22.6.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.40.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_1.0.0_1724196095867_0.2768374079139644","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"eslint-stylistic-airbnb","version":"1.0.1","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@1.0.1","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"4b18c162d12ea0f2668d3f05a376e0f149108bc8","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-1.0.1.tgz","fileCount":10,"integrity":"sha512-4WgNdr13zzAYqN+vsMZQDEsoKvnQxD6wle/ZjwCFPUUUmhJAaorYHCzIdJ/+aPIsTIaYw8YQQ/L8CbVjZ9a9ug==","signatures":[{"sig":"MEUCIQDXEWgNM14CqQ5iQirwcuHQB/86Px9pedWmtJwAdlOxJgIgCDuscPIe4gJXW9UiTBM52hBDn2rA1eiCkXJOD0szocw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55808},"main":"index.js","_from":"file:eslint-stylistic-airbnb-1.0.1.tgz","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"_resolved":"/tmp/7fcd0cb7219d159e8b59a2a6048da2bb/eslint-stylistic-airbnb-1.0.1.tgz","_integrity":"sha512-4WgNdr13zzAYqN+vsMZQDEsoKvnQxD6wle/ZjwCFPUUUmhJAaorYHCzIdJ/+aPIsTIaYw8YQQ/L8CbVjZ9a9ug==","repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"10.8.2","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"22.6.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.40.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_1.0.1_1724196522382_0.8845817555985467","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"eslint-stylistic-airbnb","version":"1.0.2","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@1.0.2","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"2433dce88c357561b7fac1b77128aaa3ffbdd55e","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-1.0.2.tgz","fileCount":10,"integrity":"sha512-19ex6+3Ji+2lwNuH6uPRmU02MevgPzM3qLb7oCT/TWZ4FrlOXffEocrTzfAt1B+FgCHzvJZ5H9H00l5nQj4+wA==","signatures":[{"sig":"MEQCIGtSYoDc2ZagME8Z3n1Yq9UOw8q9TFKcu9Xnrxe9/ESvAiBX1V+sQAzO752z68cVPSHo2p/famB3T8EqAxIz5q0/3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56008},"main":"index.js","_from":"file:eslint-stylistic-airbnb-1.0.2.tgz","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"_resolved":"/tmp/b500c8a832afac3759f18bfdfce206b0/eslint-stylistic-airbnb-1.0.2.tgz","_integrity":"sha512-19ex6+3Ji+2lwNuH6uPRmU02MevgPzM3qLb7oCT/TWZ4FrlOXffEocrTzfAt1B+FgCHzvJZ5H9H00l5nQj4+wA==","repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"10.8.2","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"22.6.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.40.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_1.0.2_1724407058066_0.06612392433967673","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"eslint-stylistic-airbnb","version":"2.0.0","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@2.0.0","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"b0faac4192410e345b88cbac02940feb279b338a","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-2.0.0.tgz","fileCount":10,"integrity":"sha512-kIs6Y+X3zpNjfCgxfmiL95P9aU9A92oXGudstMNvgmXOagyGrUMty2QZJ6Kb5Sepfp2zMMOIsSNEF4atBCozrg==","signatures":[{"sig":"MEUCIQDIx88HAmz9zseL1x6IRMBqhrt/NC4uLkAG/eBid53zbQIge/5dycm6Vq43SBULdWkA/qSIOIwh7H5GmpB2wxcCzAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56562},"main":"index.js","_from":"file:eslint-stylistic-airbnb-2.0.0.tgz","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"_resolved":"/tmp/72ecc1597f17deba04b5c5619f4ed9a9/eslint-stylistic-airbnb-2.0.0.tgz","_integrity":"sha512-kIs6Y+X3zpNjfCgxfmiL95P9aU9A92oXGudstMNvgmXOagyGrUMty2QZJ6Kb5Sepfp2zMMOIsSNEF4atBCozrg==","repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"10.8.3","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"22.8.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.57.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_2.0.0_1727116458891_0.22229149453794728","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"eslint-stylistic-airbnb","version":"2.0.1","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@2.0.1","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"fe4852081639db2c24406a8c74c6109cb2dd7abd","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-2.0.1.tgz","fileCount":10,"integrity":"sha512-Md93VTogDVn+bO4RrYA1gEsFtOQxOCBnrBRsPCJLREm6X9U5EkRV1gH/jSQEV5OaZMcLwNrQC/gOLYEloQ3UDA==","signatures":[{"sig":"MEYCIQCXVTnw5V684mljBiOvn7PiJJDmzkJP2tiMC5T0NdaJDAIhAKognf4BXNtlfynItEfHNTN1ESdt1ahX+9HY9Qiel3FL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56737},"main":"index.js","gitHead":"13999645ebc80a923f16f478d50afc85ac33e1cd","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.6.0","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"24.7.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e","peerDependencies":{"eslint":">=8.57.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_2.0.1_1760619135928_0.12175066325401107","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.1":{"name":"eslint-stylistic-airbnb","version":"3.0.0-rc.1","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.0.0-rc.1","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"08550633544c3d4327f636185b9d7e05ddd7072e","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.0.0-rc.1.tgz","fileCount":28,"integrity":"sha512-jg4RMuCoMmn1walUpx8ntuz9GQqbUsHteF4LnuGQZ2J6SdOFtxZM/H7cS8xEvN+C6dViWHX2HYfxNF7VmnAQgg==","signatures":[{"sig":"MEQCIE3bjC1eUvM72RSlxjpyAb/X0bUcTvlZP8zm1rN5Fr8UAiB4/HQSqYB+ZfE4wbknBz1lp7f3+xNOAAoLL1pfoo8Nqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95559},"main":"index.js","types":"./index.d.ts","gitHead":"aea37c6c7fce8ec79aac9e5505465dfc7f8ce872","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.6.2","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"25.0.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e","readmeFilename":"README.md","peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.0.0-rc.1_1768151627768_0.5990731605808435","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.2":{"name":"eslint-stylistic-airbnb","version":"3.0.0-rc.2","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.0.0-rc.2","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"fe8b6315ca8912fffb1d6ae2606490c9989b6964","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.0.0-rc.2.tgz","fileCount":29,"integrity":"sha512-dDaS82gS3SHLkZSzkzSDhwPCwhSBCnxBpWHVROF09jeEi1/Wb1qKZnbk9ClUxNdS5xQuyHrs/cX6W/dzmZuGNw==","signatures":[{"sig":"MEYCIQCCYC3lAzqlDE12crq0ys4FkKtL+N+bks1dh3moPfq68QIhANQreiDb1g9bHiGLRSSqbS5F3a3sr4KIDneiKzgei+mS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99210},"main":"index.js","types":"./index.d.ts","gitHead":"8312f37a6b697fefa138d5f917e7435bfa559993","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.6.2","description":"Airbnb config for eslint using stylistic plugin","directories":{},"_nodeVersion":"25.0.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e","readmeFilename":"README.md","peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.0.0-rc.2_1768347170889_0.8910800281076887","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.3":{"name":"eslint-stylistic-airbnb","version":"3.0.0-rc.3","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.0.0-rc.3","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"37910c6fde85bda8abfb4786257ca4a770d8ea14","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.0.0-rc.3.tgz","fileCount":35,"integrity":"sha512-X55wv17wuTWK7In4QQOjIeicP/oA7yziMN7s0Sgmw5veNhxLdWZae+XH8uAgE4KJwrp4AbrWjpKAsGxK/ydDxA==","signatures":[{"sig":"MEQCIF1Vogv2xmHchgY1FuBk0nss4Gt8wjDEmd2FKyNsLwFdAiBsWZsgse4rZ5d+NjVOwsCrcHkMEcIh3gVTpt+n/PNZoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102811},"main":"index.js","types":"./index.d.ts","gitHead":"86b341975aefb4e8937899998df11866d588c2d7","_npmUser":{"name":"solant","email":"runner62v6@gmail.com"},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.6.2","description":"Airbnb config for eslint using ESlint Stylistic formatting","directories":{},"_nodeVersion":"25.0.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.6.0+sha512.38dc6fba8dba35b39340b9700112c2fe1e12f10b17134715a4aa98ccf7bb035e76fd981cf0bb384dfa98f8d6af5481c2bef2f4266a24bfa20c34eb7147ce0b5e","readmeFilename":"README.md","peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.0.0-rc.3_1768866517859_0.8742820314452757","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"eslint-stylistic-airbnb","version":"3.0.0","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.0.0","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"b7969437d5e4097980c538bd5b48cdda0b8d5d37","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.0.0.tgz","fileCount":35,"integrity":"sha512-Ns99Sinm0ypIQRKFi9cqmVkf2kSk58vG1DAAA2kPgsyRrbAaXm8Em1wb1flp+KevDBqhWsqYPqCc+1fTIVWsRA==","signatures":[{"sig":"MEUCIQC20z2JLrxEcSZwd0SemeFgyFRuGFvz3HWBnAJt2ag1VwIgZsQ6ImDccEu9RUsDbk6MPxBEQ6JTIottB47e4wpfMcw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-stylistic-airbnb@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103106},"main":"index.js","types":"./index.d.ts","gitHead":"acb6c3e740c4faf529293aef9e9b103ba074698a","scripts":{"test":"pnpm run -r test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d791a8d6-963c-4d11-bafb-61a963e20931"}},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.9.0","description":"Airbnb config for eslint using ESlint Stylistic formatting","directories":{},"_nodeVersion":"24.14.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.0.0_1774308092997_0.9780923868869738","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"eslint-stylistic-airbnb","version":"3.0.2","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.0.2","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"a0c45120273b29fea2c83f920ca2989fcf0917db","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.0.2.tgz","fileCount":35,"integrity":"sha512-Iowc+vccT8NQSoi/Q5gZB8jkr88neOjSyfeR/B+v3VmX5xrYKQWJwCXBqgGPoRmX4rZtWC8+acGST5ulXhk6UQ==","signatures":[{"sig":"MEYCIQD9RCVsdR80b/RLzUNSmm68y5PTMxS5Akmr9iXUtboOcwIhANRitGJnVYEHBmBZgQM4HFswhtKc0yRQ+w1FTqoYgI8A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-stylistic-airbnb@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104150},"main":"index.js","types":"./index.d.ts","gitHead":"709d3e677493eae8122af4d53ff98dda481e009f","scripts":{"test":"pnpm run -r test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d791a8d6-963c-4d11-bafb-61a963e20931"}},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.9.0","description":"Airbnb config for eslint using ESlint Stylistic formatting","directories":{},"_nodeVersion":"24.14.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.0.2_1774656625856_0.7554503086792299","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"eslint-stylistic-airbnb","version":"3.1.0","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.1.0","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"508271d2fcb47dbf1e885c160393a8630f0b89f9","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.1.0.tgz","fileCount":35,"integrity":"sha512-DlZRJWkRTfvomOhALkeGEEHvkEQ8AaLHvLzbFYHSm+5fG/r9iCmomDpUuUpzHAaTv0zYLKpTnKMmLH6YdTTWAg==","signatures":[{"sig":"MEUCIF8LKNMOPFZLU/1KMbgoai5L+KjUN5IoaRIAAcJc4i8cAiEAut8EThaeCGVh+h+vFTTg81iWqAeIV7BiSxhBdS5XEf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-stylistic-airbnb@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105628},"main":"index.js","types":"./index.d.ts","gitHead":"3fbedbede9884d7ccf03e68ecd3a9aedd9c21f1c","scripts":{"test":"pnpm run -r test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d791a8d6-963c-4d11-bafb-61a963e20931"}},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.9.0","description":"Airbnb config for eslint using ESlint Stylistic formatting","directories":{},"_nodeVersion":"24.14.0","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"peerDependenciesMeta":{"eslint-plugin-vue":{"optional":true},"eslint-plugin-react":{"optional":true},"eslint-plugin-import-x":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.1.0_1774902977149_0.37888503701023124","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"eslint-stylistic-airbnb","version":"3.1.1","keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","_id":"eslint-stylistic-airbnb@3.1.1","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"dist":{"shasum":"5304a4b7485f6d425f17e689513136c1862c51ee","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.1.1.tgz","fileCount":35,"integrity":"sha512-KKJo0kjlbAERbSn98uD0mo02jFK09RD9d5zwNtLklDhc0upd6Qnuq2Qc6Egd7oWb8mB4IRPT9fgN7WiH/4p4Uw==","signatures":[{"sig":"MEUCIFfyZZYg5IdisWhx3BxpOrMgqgtupvKoRT0qiEvEZJojAiEAkustHRilkDc3fSnH/2jUi3c0fZdqLt3/PZD0D4p7T6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-stylistic-airbnb@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114750},"main":"index.js","types":"./index.d.ts","gitHead":"f1ecefe37ad4ef028ed1e9aa4000d8f7e83355b0","scripts":{"test":"pnpm run -r test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d791a8d6-963c-4d11-bafb-61a963e20931"}},"repository":{"url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git","type":"git"},"_npmVersion":"11.11.0","description":"Airbnb config for eslint using ESlint Stylistic formatting","directories":{},"_nodeVersion":"24.14.1","dependencies":{"confusing-browser-globals":"^1.0.11"},"_hasShrinkwrap":false,"peerDependencies":{"eslint":">=8.57.0","eslint-plugin-vue":"^10.6.0","eslint-plugin-react":"^7.36.1","eslint-plugin-import-x":"^4.0.0","@stylistic/eslint-plugin":">=2.0.0"},"peerDependenciesMeta":{"eslint-plugin-vue":{"optional":true},"eslint-plugin-react":{"optional":true},"eslint-plugin-import-x":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/eslint-stylistic-airbnb_3.1.1_1778367864024_0.227862958783267","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"eslint-stylistic-airbnb","version":"3.2.0","description":"Airbnb config for eslint using ESlint Stylistic formatting","main":"index.js","types":"./index.d.ts","scripts":{"test":"pnpm run -r test"},"repository":{"type":"git","url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git"},"bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"keywords":["eslint","stylistic","airbnb","config"],"license":"MIT","dependencies":{"confusing-browser-globals":"^1.0.11"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0 || ^10.0.0","@stylistic/eslint-plugin":">=2.0.0","eslint-plugin-react":"^7.36.1","eslint-plugin-vue":"^10.6.0","eslint-plugin-import-x":"^4.0.0"},"peerDependenciesMeta":{"eslint-plugin-react":{"optional":true},"eslint-plugin-vue":{"optional":true},"eslint-plugin-import-x":{"optional":true}},"gitHead":"deaf336f4a19721b96d603de3500895c72d7670a","_id":"eslint-stylistic-airbnb@3.2.0","homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-48c5IbHLFPugBB3+G/0xdmQTJcDTQ9EeSEAxOXGCrtmYL37ekHeHAl4nxgx8QKXuTEXQVORzv610bBOaSqpYsQ==","shasum":"bf2fba473519b9b4da74bce66e32b4692f01c1af","tarball":"https://registry.npmjs.org/eslint-stylistic-airbnb/-/eslint-stylistic-airbnb-3.2.0.tgz","fileCount":35,"unpackedSize":114872,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-stylistic-airbnb@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDvSbx0xGwYy6Vt+MjCz6vdcRX7WYX+gdpJEh9xw6LjsgIhAL3694a7fphNZ2FDTxfRGifeQ/PuJ9y0pyuSFx7I5KO0"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d791a8d6-963c-4d11-bafb-61a963e20931"}},"directories":{},"maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-stylistic-airbnb_3.2.0_1778761498763_0.45226535175138105"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-20T23:21:35.866Z","modified":"2026-05-14T12:24:59.211Z","1.0.0":"2024-08-20T23:21:36.082Z","1.0.1":"2024-08-20T23:28:42.658Z","1.0.2":"2024-08-23T09:57:38.254Z","2.0.0":"2024-09-23T18:34:19.088Z","2.0.1":"2025-10-16T12:52:16.129Z","3.0.0-rc.1":"2026-01-11T17:13:47.915Z","3.0.0-rc.2":"2026-01-13T23:32:51.094Z","3.0.0-rc.3":"2026-01-19T23:48:37.996Z","3.0.0":"2026-03-23T23:21:33.144Z","3.0.2":"2026-03-28T00:10:25.990Z","3.1.0":"2026-03-30T20:36:17.297Z","3.1.1":"2026-05-09T23:04:24.171Z","3.2.0":"2026-05-14T12:24:58.925Z"},"bugs":{"url":"https://github.com/Solant/eslint-stylistic-airbnb/issues"},"license":"MIT","homepage":"https://github.com/Solant/eslint-stylistic-airbnb#readme","keywords":["eslint","stylistic","airbnb","config"],"repository":{"type":"git","url":"git+https://github.com/Solant/eslint-stylistic-airbnb.git"},"description":"Airbnb config for eslint using ESlint Stylistic formatting","maintainers":[{"name":"solant","email":"runner62v6@gmail.com"}],"readme":"# eslint-stylistic-airbnb\n\n![NPM Downloads](https://img.shields.io/npm/dm/eslint-stylistic-airbnb)\n![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)\n\nAirbnb-style ESLint config, updated for modern use with ESLint Stylistic formatting.\n\n## Why\n\nThe original `eslint-config-airbnb` is outdated. This config fixes that by:\n\n- Replacing deprecated rules and plugins with modern alternatives.\n- Supporting ESLint 8.57+, 9, and 10 ([compatibility table](https://github.com/Solant/eslint-stylistic-airbnb/wiki/Plugin-compatibility-table)).\n- Offering both flat and legacy config formats.\n- Adding TypeScript support.\n- Adding support for other file types like CSS, SASS, SCSS and so on.\n- Including Airbnb-inspired addons for JSX, React, and Vue.\n\nIt uses [ESLint Stylistic](https://eslint.style/) instead of Prettier for formatting to match Airbnb's style closely.\n\n## Installation\n\nInstall the core packages:\n\n```bash\n# npm\nnpm install -D eslint @stylistic/eslint-plugin eslint-stylistic-airbnb globals\n\n# pnpm\npnpm add -D eslint @stylistic/eslint-plugin eslint-stylistic-airbnb globals\n\n# yarn\nyarn add -D eslint @stylistic/eslint-plugin eslint-stylistic-airbnb globals\n```\n## Usage\n\nJust grab any of the ready-to-go presets:\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg\" height=\"14px\" width=\"14px\" />\n    JavaScript\n</summary>\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  airbnb.configs['flat/recommended'],\n  \n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg\" height=\"14px\" width=\"14px\" />\n    TypeScript\n</summary>\n\nInstall additional dependencies:\n\n```bash\n# npm\nnpm install -D typescript-eslint\n\n# pnpm\npnpm add -D typescript-eslint\n\n# yarn\nyarn add -D typescript-eslint\n```\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport tseslint from 'typescript-eslint';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg\" height=\"14px\" width=\"14px\" />\n    JavaScript +\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg\" height=\"14px\" width=\"14px\" />\n    React\n</summary>\n\nInstall additional dependencies:\n\n```bash\n# npm\nnpm install -D eslint-plugin-react eslint-plugin-react-hooks\n\n# pnpm\npnpm add -D eslint-plugin-react eslint-plugin-react-hooks\n\n# yarn\nyarn add -D eslint-plugin-react eslint-plugin-react-hooks\n```\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport react from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  react.configs.flat.recommended,\n  reactHooks.configs.recommended,\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-jsx'],\n  airbnb.configs['flat/addon-react'],\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg\" height=\"14px\" width=\"14px\" />\n    TypeScript +\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg\" height=\"14px\" width=\"14px\" />\n    React\n</summary>\n\nInstall additional dependencies:\n\n```bash\n# npm\nnpm install -D typescript-eslint eslint-plugin-react eslint-plugin-react-hooks\n\n# pnpm\npnpm add -D typescript-eslint eslint-plugin-react eslint-plugin-react-hooks\n\n# yarn\nyarn add -D typescript-eslint eslint-plugin-react eslint-plugin-react-hooks\n```\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport react from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport tseslint from 'typescript-eslint';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n  react.configs.flat.recommended,\n  reactHooks.configs.recommended,\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-jsx'],\n  airbnb.configs['flat/addon-react'],\n  \n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/javascript/javascript-original.svg\" height=\"14px\" width=\"14px\" />\n    JavaScript +\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vuejs/vuejs-original.svg\" height=\"14px\" width=\"14px\" />\n    Vue\n</summary>\n\nInstall additional dependencies:\n\n```bash\n# npm\nnpm install -D eslint-plugin-vue\n\n# pnpm\npnpm add -D eslint-plugin-vue\n\n# yarn\nyarn add -D eslint-plugin-vue\n```\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport pluginVue from 'eslint-plugin-vue';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-vue'],\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  }\n];\n```\n</details>\n\n<details>\n<summary>\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg\" height=\"14px\" width=\"14px\" />\n    TypeScript +\n    <img src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vuejs/vuejs-original.svg\" height=\"14px\" width=\"14px\" />\n    Vue\n</summary>\n\nInstall additional dependencies:\n\n```bash\n# npm\nnpm install -D typescript-eslint eslint-plugin-vue\n\n# pnpm\npnpm add -D typescript-eslint eslint-plugin-vue\n\n# yarn\nyarn add -D typescript-eslint eslint-plugin-vue\n```\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport pluginVue from 'eslint-plugin-vue';\nimport tseslint from 'typescript-eslint';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-vue'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-vue-ts'],\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n\n### Customization\n\nYour config should include at least **one** base config:\n\n- `flat/recommended`\n- `flat/strict`\n- `flat/compat`\n\n```javascript\n// eslint.config.mjs\nimport airbnb from 'eslint-stylistic-airbnb';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  airbnb.configs['flat/recommended'],\n  \n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n\nAnd **any** number of additional configs, based on the framework, language and plugins that you use, for example:\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport react from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\nimport tseslint from 'typescript-eslint';\nimport globals from 'globals';\n\nexport default [\n  // global ignores\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n  react.configs.flat.recommended,\n  reactHooks.configs.recommended,\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-jsx'],\n  airbnb.configs['flat/addon-react'],\n  \n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n> [!WARNING]\n> When building your own config file, always make sure to:\n> - Insert all Airbnb configs after all other configs, but before any overrides\n> - Always use at least the `recommended` preset for all plugins that you use\n\nYou can edit any rules just like in any other ESLint config:\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/recommended'],\n  {\n    rules: {\n      // Use 4 spaces instead of 2\n      '@stylistic/indent': ['error', 4],\n    },\n  },\n];\n```\n\n### TypeScript\n\nAll base styling rules are compatible with TypeScript out of the box, but you still need to configure the parser. The preferred way is to use the `typescript-eslint` config.\n\n**Flat Config:**\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport tseslint from 'typescript-eslint';\n\nexport default [\n  ...tseslint.configs.recommended,\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n];\n```\n\nMake sure to include `addon-typescript` to prevent incorrect errors for [extension rules](https://typescript-eslint.io/rules#extension-rules) in TypeScript files.\n\n### Legacy Config (.eslintrc)\n\nFor older setups:\n\n```javascript\n// .eslintrc.js\nmodule.exports = {\n  extends: [\n    './node_modules/eslint-stylistic-airbnb/configs/recommended',\n    './node_modules/eslint-stylistic-airbnb/configs/addon-jsx',\n  ],\n};\n```\n\nNote: Prefer flat config for new projects—it's the future-proof choice.\n\n## Configuration Reference\n\n### Base configs\n\n#### `flat/recommended`\n\nBase Airbnb styles. All deprecated rules have been removed or replaced with modern alternatives. Some of the rules that were not enabled by default in the original Airbnb config due to semver versioning have been enabled.\n\n<details>\n<summary>Usage:</summary>\n\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/recommended'],\n];\n```\n</details>\n\n#### `flat/strict`\n\nSame as `flat/recommended` but with stricter rules that were not enabled in the original Airbnb config, though mentioned in the [Airbnb Style Guide](https://github.com/airbnb/javascript).\n\n<details>\n<summary>Usage:</summary>\n\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/strict'],\n];\n```\n</details>\n\n#### `flat/compat`\n\nThe original Airbnb config but without deprecated rules, for gradual migration purposes.\n\n<details>\n<summary>Usage:</summary>\n\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/compat'],\n];\n```\n</details>\n\n### Addon configs\n\n#### `flat/addon-import`\n\nImport-related Airbnb rules. Requires `eslint-plugin-import-x`.\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D eslint-plugin-import-x\n\n# pnpm\npnpm add -D eslint-plugin-import-x\n\n# yarn\nyarn add -D eslint-plugin-import-x\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport importX from 'eslint-plugin-import-x';\n\nexport default [\n  importX.configs['flat/recommended'],\n  \n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-import'],\n];\n```\n</details>\n\n#### `flat/addon-import-esm`\n\nAddition to the `flat/addon-import`, makes all imports ESM-style (with extension).\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D eslint-plugin-import-x\n\n# pnpm\npnpm add -D eslint-plugin-import-x\n\n# yarn\nyarn add -D eslint-plugin-import-x\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport importX from 'eslint-plugin-import-x';\n\nexport default [\n  importX.configs['flat/recommended'],\n  \n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-import'],\n  airbnb.configs['flat/addon-import-esm'],\n];\n```\n</details>\n\n#### `flat/addon-typescript`\n\nContains only Airbnb-specific replacements for `typescript-eslint` extension rules. All the base TypeScript styling is handled by the base config using ESLint Stylistic. Requires `typescript-eslint` to be installed. Should always be enabled if using TypeScript to prevent parser errors.\n\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D typescript-eslint\n\n# pnpm\npnpm add -D typescript-eslint\n\n# yarn\nyarn add -D typescript-eslint\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport tseslint from 'typescript-eslint';\n\nexport default [\n  ...tseslint.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n];\n```\n</details>\n\n#### `flat/addon-iterators`\n\nAllows `for...of` loops. Still disallows `for...in`, `with` statements, and labeled statements.\n\n<details>\n<summary>Usage:</summary>\n\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-iterators'],\n];\n```\n</details>\n\n#### `flat/addon-jsx`\n\nStylistic rules for `jsx` and `tsx` files.\n\n<details>\n<summary>Usage:</summary>\n\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-jsx'],\n];\n```\n</details>\n\n#### `flat/addon-react`\n\nReact-specific rules. Pair with `flat/addon-jsx`. Requires `eslint-plugin-react` (must-have) and `eslint-plugin-react-hooks` (highly recommended).\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D eslint-plugin-react eslint-plugin-react-hooks\n\n# pnpm\npnpm add -D eslint-plugin-react eslint-plugin-react-hooks\n\n# yarn\nyarn add -D eslint-plugin-react eslint-plugin-react-hooks\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport react from 'eslint-plugin-react';\nimport reactHooks from 'eslint-plugin-react-hooks';\n\nexport default [\n  react.configs.flat.recommended,\n  reactHooks.configs.recommended,\n  \n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-jsx'],\n  airbnb.configs['flat/addon-react'],\n];\n```\n</details>\n\n#### `flat/addon-vue`\n\nStylistic rules for `.vue` files. Requires `eslint-plugin-vue`. These rules are not part of the Airbnb style guide; instead, they are based on the base and React-specific style guides.\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D eslint-plugin-vue\n\n# pnpm\npnpm add -D eslint-plugin-vue\n\n# yarn\nyarn add -D eslint-plugin-vue\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport pluginVue from 'eslint-plugin-vue';\n\nexport default [\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-vue'],\n];\n```\n</details>\n\n#### `flat/addon-vue-ts`\n\nTypeScript-specific rules for `.vue` files. Use it together with `flat/addon-vue` and `flat/addon-typescript`. Requires `typescript-eslint` and `eslint-plugin-vue`.\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies:\n```bash\n# npm\nnpm install -D typescript-eslint eslint-plugin-vue\n\n# pnpm\npnpm add -D typescript-eslint eslint-plugin-vue\n\n# yarn\nyarn add -D typescript-eslint eslint-plugin-vue\n```\n\nUpdate eslint config:\n```javascript\nimport airbnb from 'eslint-stylistic-airbnb';\nimport tseslint from 'typescript-eslint';\nimport pluginVue from 'eslint-plugin-vue';\n\nexport default [\n  ...tseslint.configs['flat/recommended'],\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-vue'],\n  airbnb.configs['flat/addon-vue-ts'],\n];\n```\n</details>\n\n## IDE Configuration\n\n> IDE configurations below are based on [**@antfu/eslint-config**](https://github.com/antfu/eslint-config), adapted for this project.\n\n<details>\n<summary>VS Code</summary>\n\nInstall [VS Code ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)\n\nAdd the following settings to your `.vscode/settings.json`:\n\n```jsonc\n{\n  // Disable the default formatter, use eslint instead\n  \"prettier.enable\": false,\n  \"editor.formatOnSave\": false,\n\n  // Auto fix\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.eslint\": \"explicit\",\n    \"source.organizeImports\": \"never\"\n  },\n\n  // Silent the stylistic rules in your IDE, but still auto fix them\n  \"eslint.rules.customizations\": [\n    { \"rule\": \"@stylistic/*\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-indent\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spacing\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-spaces\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-order\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-dangle\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*-newline\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*quotes\", \"severity\": \"off\", \"fixable\": true },\n    { \"rule\": \"*semi\", \"severity\": \"off\", \"fixable\": true }\n  ],\n\n  // Enable eslint for all supported languages\n  \"eslint.validate\": [\n    \"javascript\",\n    \"javascriptreact\",\n    \"typescript\",\n    \"typescriptreact\",\n    \"vue\",\n    \"html\",\n    \"json\",\n    \"jsonc\"\n  ]\n}\n```\n\n</details>\n\n<details>\n<summary>Zed</summary>\n\nAdd the following settings to your `.zed/settings.json`:\n\n```jsonc\n{\n  // Use ESLint's --fix:\n  \"code_actions_on_format\": {\n    \"source.fixAll.eslint\": true\n  },\n  \"formatter\": [],\n  // Enable eslint for all supported languages\n  \"languages\": {\n    \"HTML\": {\n      \"language_servers\": [\"...\", \"eslint\"]\n    },\n    \"JSON\": {\n      \"language_servers\": [\"...\", \"eslint\"]\n    },\n    \"JSONC\": {\n      \"language_servers\": [\"...\", \"eslint\"]\n    }\n    // Add other languages as needed\n  },\n  \"lsp\": {\n    \"eslint\": {\n      \"settings\": {\n        \"workingDirectories\": [\"./\"],\n\n        // Silent the stylistic rules in your IDE, but still auto fix them\n        \"rulesCustomizations\": [\n          { \"rule\": \"@stylistic/*\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-indent\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-spacing\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-spaces\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-order\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-dangle\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*-newline\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*quotes\", \"severity\": \"off\", \"fixable\": true },\n          { \"rule\": \"*semi\", \"severity\": \"off\", \"fixable\": true }\n        ]\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Neovim</summary>\n\nUpdate your configuration to use the following:\n\n```lua\nlocal customizations = {\n  { rule = '@stylistic/*', severity = 'off', fixable = true },\n  { rule = '*-indent', severity = 'off', fixable = true },\n  { rule = '*-spacing', severity = 'off', fixable = true },\n  { rule = '*-spaces', severity = 'off', fixable = true },\n  { rule = '*-order', severity = 'off', fixable = true },\n  { rule = '*-dangle', severity = 'off', fixable = true },\n  { rule = '*-newline', severity = 'off', fixable = true },\n  { rule = '*quotes', severity = 'off', fixable = true },\n  { rule = '*semi', severity = 'off', fixable = true },\n}\n\nlocal lspconfig = require('lspconfig')\n-- Enable eslint for all supported languages\nlspconfig.eslint.setup(\n  {\n    filetypes = {\n      \"javascript\",\n      \"javascriptreact\",\n      \"javascript.jsx\",\n      \"typescript\",\n      \"typescriptreact\",\n      \"typescript.tsx\",\n      \"vue\",\n      \"html\",\n      \"json\",\n      \"jsonc\",\n    },\n    settings = {\n      -- Silent the stylistic rules in your IDE, but still auto fix them\n      rulesCustomizations = customizations,\n    },\n  }\n)\n```\n\n### Neovim format on save\n\nThere's few ways you can achieve format on save in neovim:\n\n- `nvim-lspconfig` has a `EslintFixAll` command predefined, you can create a autocmd to call this command after saving file.\n\n```lua\nlspconfig.eslint.setup({\n  --- ...\n  on_attach = function(client, bufnr)\n    vim.api.nvim_create_autocmd(\"BufWritePre\", {\n      buffer = bufnr,\n      command = \"EslintFixAll\",\n    })\n  end,\n})\n```\n\n- Use [conform.nvim](https://github.com/stevearc/conform.nvim).\n- Use [none-ls](https://github.com/nvimtools/none-ls.nvim)\n- Use [nvim-lint](https://github.com/mfussenegger/nvim-lint)\n\n</details>\n\n## Formatting other file types (css, scss, html, and others)\n\nThis config supports formatting of CSS and other non-JS file types using [eslint-plugin-format](https://github.com/antfu/eslint-plugin-format), which wraps external formatters like [oxfmt](https://github.com/oxc-project/oxc).\n\n<details>\n<summary>Usage:</summary>\n\nInstall additional dependencies (this example uses `oxfmt`, but you can choose any formatter supported by `eslint-plugin-format`):\n\n```bash\n# npm\nnpm install -D eslint-plugin-format oxfmt\n\n# pnpm\npnpm add -D eslint-plugin-format oxfmt\n\n# yarn\nyarn add -D eslint-plugin-format oxfmt\n```\n\nUpdate eslint config:\n\n```javascript\n// eslint.config.js\nimport format from 'eslint-plugin-format';\n\nexport default [\n  { ignores: ['dist'] },\n\n  airbnb.configs['flat/recommended'],\n\n  // Format standalone styling files\n  {\n    files: ['**/*.{css,scss}'],\n    languageOptions: {\n      parser: format.parserPlain,\n    },\n    plugins: { format },\n    rules: {\n      // format using oxfmt\n      'format/oxfmt': ['error'],\n      // format using dprint\n      // 'format/dprint': ['error'],\n      // format using prettier\n      // 'format/prettier': ['error'],\n    },\n  },\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n\n</details>\n\n<details>\n<summary>Usage with Vue SFC blocks:</summary>\n\nVue SFC blocks require additional processing to extract blocks for formatting. Install additional dependencies:\n\n```bash\npnpm add -D eslint-plugin-format oxfmt eslint-merge-processors eslint-processor-vue-blocks\n```\n\nUpdate eslint config:\n```javascript\n// eslint.config.js\nimport format from 'eslint-plugin-format';\nimport { mergeProcessors } from 'eslint-merge-processors';\nimport processorVueBlocks from 'eslint-processor-vue-blocks';\n\nexport default [\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-vue'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-vue-ts'],\n\n  // Extract <style> blocks from .vue files for formatting\n  {\n    files: ['**/*.vue'],\n    processor: mergeProcessors([\n      pluginVue.processors['.vue'],\n      processorVueBlocks({ blocks: { styles: true } }),\n    ]),\n  },\n\n  // Format standalone styling files\n  {\n    files: ['**/*.{css,scss}'],\n    languageOptions: {\n      parser: format.parserPlain,\n    },\n    plugins: { format },\n    rules: {\n      'format/oxfmt': ['error'],\n    },\n  },\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n\nUpdate eslint config:\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport pluginVue from 'eslint-plugin-vue';\nimport tseslint from 'typescript-eslint';\nimport globals from 'globals';\nimport format from 'eslint-plugin-format';\nimport { mergeProcessors } from 'eslint-merge-processors';\nimport processorVueBlocks from 'eslint-processor-vue-blocks';\n\nexport default [\n  { ignores: ['dist'] },\n\n  ...tseslint.configs.recommended,\n  ...pluginVue.configs['flat/recommended'],\n\n  airbnb.configs['flat/recommended'],\n  airbnb.configs['flat/addon-vue'],\n  airbnb.configs['flat/addon-typescript'],\n  airbnb.configs['flat/addon-vue-ts'],\n\n  // Extract <style> blocks from .vue files for formatting\n  {\n    files: ['**/*.vue'],\n    processor: mergeProcessors([\n      pluginVue.processors['.vue'],\n      processorVueBlocks({ blocks: { styles: true } }),\n    ]),\n  },\n\n  // Format standalone CSS files\n  {\n    files: ['**/*.css'],\n    languageOptions: {\n      parser: format.parserPlain,\n    },\n    plugins: { format },\n    rules: {\n      'format/oxfmt': ['error'],\n    },\n  },\n\n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n    linterOptions: {\n      reportUnusedDisableDirectives: 'error',\n    },\n  },\n];\n```\n</details>\n\n## Troubleshooting\n\n### Conflicts with Prettier\n\nThis config replaces Prettier. If conflicts arise:\n\n- Remove Prettier, `eslint-config-prettier`, and `eslint-plugin-prettier`.\n- Delete `.prettierrc` or `prettier.config.js`.\n- Configure your editor to format with ESLint instead.\n\n### Incorrect errors in TypeScript\n\nMake sure to add `addon-typescript`.\n\n### `no-undef` errors\n\nMake sure to specify globals via the `languageOptions.globals` property in your flat config. For example, to enable browser globals:\n\n```javascript\n// eslint.config.js\nimport airbnb from 'eslint-stylistic-airbnb';\nimport globals from 'globals';\n\nexport default [\n  airbnb.configs['flat/recommended'],\n  \n  {\n    languageOptions: {\n      globals: globals.browser,\n    },\n  },\n];\n```\n\nYou can also combine multiple environments: `{ ...globals.browser, ...globals.node }`. See the [globals package](https://www.npmjs.com/package/globals) for available options.\n\n## FAQ\n\n### Do I need to use a `recommended` config from `@eslint/js`?\n\nNo, all recommended rules are already included in the base airbnb config. You don't need to add `@eslint/js` recommended preset separately.\n\n## Migration Guide\n\n### From `eslint-config-airbnb`\n\n1. Uninstall old packages:\n   ```bash\n   npm uninstall eslint-config-airbnb eslint-config-airbnb-base eslint-config-airbnb-typescript\n   ```\n\n2. Install this package (see [Installation](#installation)).\n\n3. Update your config:\n   - Replace `'airbnb'` in the extends array with `'./node_modules/eslint-stylistic-airbnb/configs/recommended'` (or `compat`, if you want to minimize the number of changes)\n   - Replace `'airbnb-typescript'` in the extends array with `'./node_modules/eslint-stylistic-airbnb/configs/addon-typescript'`\n   - Replace `'airbnb/hooks'` with `'plugin:react-hooks/recommended'`\n\n4. Remove Prettier if using:\n   ```bash\n   npm uninstall prettier eslint-config-prettier eslint-plugin-prettier\n   ```\n\n5. Depending on the version of `eslint-config-airbnb`, you might get a different number of changes. Tweak rules as needed.\n\n> [!WARNING]\n> If you encounter an error like `TypeError: Cannot read properties of undefined (reading 'length')` in rule like `@stylistic/....` try downgrading the `@stylistic/eslint-plugin` package to version `2.1.0`.\n\n### From v2.x of this package\n\nUse the `flat/compat` or `compat` config to maintain v2.x behavior:\n\n```javascript\n// eslint.config.js (flat config)\nimport airbnb from 'eslint-stylistic-airbnb';\n\nexport default [\n  airbnb.configs['flat/compat'],\n];\n```\n\n```javascript\n// .eslintrc.js (legacy config)\nmodule.exports = {\n  extends: ['./node_modules/eslint-stylistic-airbnb/configs/compat'],\n};\n```\n\n## Contributing\n\nContributions welcome! Open an issue to discuss ideas first.\n\n## License\n\n[MIT](https://opensource.org/licenses/MIT)\n\n## Credits\n\n- [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript)\n- [ESLint Stylistic](https://eslint.style/)\n- [@antfu/eslint-config](https://github.com/antfu/eslint-config)\n","readmeFilename":"README.md"}