{"_id":"@howells/lint","_rev":"54-001f786546103138eb6000af5e217f45","name":"@howells/lint","dist-tags":{"latest":"3.5.3"},"versions":{"0.1.0":{"name":"@howells/lint","version":"0.1.0","license":"MIT","_id":"@howells/lint@0.1.0","maintainers":[{"name":"howells","email":"daniel.howells@gmail.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs"},"dist":{"shasum":"e6f4368befb0d75cdc6a23f0d1d607a69fccf90e","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.0.tgz","fileCount":11,"integrity":"sha512-4FISjZFISuSPDGzWMTh5wndUlTrSFF7DLthX16vW8mrcQzuvNv0aybhKlLTNKS6ribrwnMxyJQIAoTjW9f1U4A==","signatures":[{"sig":"MEUCIArgOPVloF74s/vom2DvOweldbVdlFxD0rsYK7SfW9apAiEAueicTVOg7yUmCKyDdvFz/2WxB1RyPkd2XipinlmiWr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9253},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"_npmUser":{"name":"howells","email":"daniel.howells@gmail.com"},"_npmVersion":"10.8.2","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ultracite":"7.4.3","@biomejs/biome":"2.4.10"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.0_1775463601348_0.8424545781319521","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@howells/lint","version":"0.1.1","license":"MIT","_id":"@howells/lint@0.1.1","maintainers":[{"name":"howells","email":"daniel.howells@gmail.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs"},"dist":{"shasum":"e7c636bf9b74a5bd76df783fccf656cf45bde06d","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.1.tgz","fileCount":11,"integrity":"sha512-bN0kYPM/K7/6fQRaMmC4wHAnjs+V3v7a2DvKBFXudaUPUP4Yb9URwEssqLo20afCiA0yNX9toJRMo+QrenixLw==","signatures":[{"sig":"MEYCIQD6j64SP2/sSWTDHFELrCv7qw2Da6j0iJstZ+1XYyEN5AIhAJkBTjdoQZMyfRD/Jkq3v+22WzwHzw3evzqaEB5Uw5dj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9566},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"_npmUser":{"name":"howells","email":"daniel.howells@gmail.com"},"_npmVersion":"10.8.2","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ultracite":"7.4.3","@biomejs/biome":"2.4.10"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.1_1775470922621_0.44298020836131213","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@howells/lint","version":"0.1.2","license":"MIT","_id":"@howells/lint@0.1.2","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs"},"dist":{"shasum":"b748566db8389ca5fcbe7a210e24a59bb71e6073","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.2.tgz","fileCount":11,"integrity":"sha512-Himeg+sFmT7vze2PvmiRST+sK/A5nvI+DYHgcweZQRI/IrRm4ALmSYWQoxCnAj7ayFK0n+XfbEaHYsyA/MBTKw==","signatures":[{"sig":"MEYCIQDMSEfraCfAz/XrUlYFrShVCeLv/62fEolfVk1KN58kMQIhAP/GRvmiwVKQgXU92uahgsIdCn3gwkixMuy6c5ywMFYK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9566},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"_npmVersion":"10.9.4","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ultracite":"7.5.9","@biomejs/biome":"2.4.12"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.2_1776250919615_0.44972339989352417","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@howells/lint","version":"0.1.3","license":"MIT","_id":"@howells/lint@0.1.3","maintainers":[{"name":"danielhowells","email":"daniel.howells@gmail.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs"},"dist":{"shasum":"cc7faf1f5bb747ce3f5fc5701a29561fe92da3b9","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.3.tgz","fileCount":11,"integrity":"sha512-eElg6Tb+38HD0jX12seTycTbsDDLK84aNvSfQ9i+p8QFvYLU8EbwrMysCaPVJnC8VxfdRKH2AspuLffHCR3KqQ==","signatures":[{"sig":"MEUCIGPeT4JFVyIwFO4CcK0bd/p1gMSqER6Ahnk5bHl49tYmAiEA3ihYtMm1LdaniHH7Q8VuydLlWH5A9eZCusmRIctL+hE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9566},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"gitHead":"c6e79fc4ecd6062ec1f53583d68d8d30d17b6e56","_npmUser":{"name":"danielhowells","email":"daniel.howells@gmail.com"},"_npmVersion":"10.9.4","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"ultracite":"7.6.0","@biomejs/biome":"2.4.12"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.3_1776506075847_0.3933265341459218","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@howells/lint","version":"0.1.4","license":"MIT","_id":"@howells/lint@0.1.4","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"8f99077fd566cda9f274e7a8085f3ee5fd6542c9","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.4.tgz","fileCount":14,"integrity":"sha512-L9ASSBSvuA6QPjZvi2vqJfVS7X4RHdgscY9xQ2UFTIGIjUjCDXcMzhJ7eig+WwSuuyzwisvWDminAxdK0g59ew==","signatures":[{"sig":"MEYCIQCQmjBb39d+M59CHCwjj8A5d2OVXCG9OO94oeuVe4f4PgIhAN8NmGNCnFtWEIpNdXkajrTbpJzk9cbsJdTxY9xaQBLP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12186},"engines":{"node":">=20.19"},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"gitHead":"f191af20412ef7d19c203245b46a7f17ef518583","_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_npmVersion":"10.8.2","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ultracite":"7.6.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.12"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.4_1777713154319_0.5624896137241453","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@howells/lint","version":"0.1.5","license":"MIT","_id":"@howells/lint@0.1.5","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"4828b4f2134f875caf180d65e52a29abdabbdbea","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.5.tgz","fileCount":16,"integrity":"sha512-TQezzoj06pyJ0k+CffQyJIpKISCVrKaaXrX37a3heP66aFzo/WBcMAPwGW0Sz+cal6m/HMraCFwzGIbOtbDRmw==","signatures":[{"sig":"MEYCIQDoN0eGYjpl460IYD0LCowklEQ0/i5g0oUjlh/u0SL6PAIhAMf8AE5R1iFEbHgOlEEe8H+p3d1YMxVgF8oR617oAr2y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17261},"engines":{"node":">=20.19"},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"gitHead":"ff9e879aebd4bcc98d890055ac6aec9fcf8e5b36","_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_npmVersion":"10.8.2","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.5.1","dependencies":{"ultracite":"7.6.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.12"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.5_1777713644431_0.3861430920398252","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@howells/lint","version":"0.1.6","license":"MIT","_id":"@howells/lint@0.1.6","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-format":"bin/howells-format.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"39d6b1cb97583fe43b927eed6ad8f0a8594d6952","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.6.tgz","fileCount":16,"integrity":"sha512-ptWIRDVhWG2PE1VCQNsFoj7HQ+8AAZFCNwz5ozLU/6xXh5Qe/YqoHTwZxeAr5NuE185XI82T+cGgCOwCIdVMpw==","signatures":[{"sig":"MEUCICbQk7HX3JK67I6Q7qJbFrSFPtAx7KUf+sTzFZsVTULbAiEAu0VydW7LOKptjYBKU8yRLTyxLOdDe0CMOkUlvYIIXuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21814},"engines":{"node":">=22.18.0"},"exports":{"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./package.json":"./package.json"},"gitHead":"77d76f091c8f4534f0a26ebf0b8c1c2c78e2f442","_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_npmVersion":"10.9.3","description":"Pinned Biome and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ultracite":"7.6.2","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.1.6_1777740963018_0.4532835946545346","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@howells/lint","version":"0.1.7","license":"MIT","_id":"@howells/lint@0.1.7","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"eb998ef56014db1c11b02904b23ac80ccde30e67","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.7.tgz","fileCount":28,"integrity":"sha512-XlsSBfiRw+0uIQ7MLrWNWdv/qxZTKwXCi7+gcp9lwc2v+SwcXVcCTx09qyweGEllhSHa4ZWr2CcVpM0gJGTdYg==","signatures":[{"sig":"MEUCIDLi9ZAH1TowKSK8hiNyDCPSJsoNwg8auahtEAE2aGLmAiEAnzKzzAoKOpLJSCU6NagTjPgdFgQwK/yQhgs6BzRbWfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28046},"engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json"},"gitHead":"fc0e55c025f9210c1682eb9d27d18519a498a2a0","_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_npmVersion":"10.9.4","description":"Pinned Biome, Oxlint/Oxfmt, and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"oxfmt":"0.49.0","oxlint":"1.64.0","ultracite":"7.7.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.22.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.1.7_1778614588706_0.7383836054336479","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@howells/lint","version":"0.1.8","license":"MIT","_id":"@howells/lint@0.1.8","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"b9ebfc93b0370175d58ce911d8be9be0f1537b87","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.1.8.tgz","fileCount":28,"integrity":"sha512-vo4PlhoDqMLY9y8bXXAUiDXzsFLjV7dsvWhjEiZGMOsvMH1QSPY/kS/JX/FNBrdml2+jzC7q9IuSrtierRkJIA==","signatures":[{"sig":"MEQCIGumXyYmal1qrtS/bQmIMkyBViIZwIQSzt92Ww/xGNhKAiA7Cr2O5e4OhYsRnoFA+NL8KOl/t6llRwmzSqes6U0PAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28124},"_from":"file:howells-lint-0.1.8.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/907933ae973c19de043ec34768612e07/howells-lint-0.1.8.tgz","_integrity":"sha512-vo4PlhoDqMLY9y8bXXAUiDXzsFLjV7dsvWhjEiZGMOsvMH1QSPY/kS/JX/FNBrdml2+jzC7q9IuSrtierRkJIA==","_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, and Ultracite presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.51.0","oxlint":"1.66.0","ultracite":"7.7.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.1.8_1779539351823_0.9897886418892416","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@howells/lint","version":"0.2.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"de4a5539f3d908f8af8fe55efd46da97c37bdbc3","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.0.tgz","fileCount":30,"integrity":"sha512-rUc//Lb7xi3XkEmQDKEmtVLXsgkYEvrlwksll4sO4ItaoFFdBV9XyKZQ5yEErt8qppPtO+7QfJIt/SiwPXFKew==","signatures":[{"sig":"MEUCIFnb6jHx60ZW59jnlhcvOrfep85LuY1yfFBg9u+6FwOLAiEAsMZ3j9e++/+N+vzhQjJN1EoCiLivDgChP5sw4HdjL78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32907},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json"},"gitHead":"5a969706b1afcde4e500c863319cd6e707b6b8b6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.51.0","oxlint":"1.66.0","ultracite":"7.7.0","oxc-parser":"0.133.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0","oxlint-plugin-react-doctor":"0.2.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.2.0_1780229073637_0.06426501810381335","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@howells/lint","version":"0.2.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"72d22294e3cb7936769c3b3dfdeb63f088bcfe88","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.1.tgz","fileCount":32,"integrity":"sha512-TdIOSkI9X8X8a7NOsh6lRafuofYnjEFVWEyDyD0qKiQhNTQ1QqWW9TtQFpYpo/RxCOZ239WOkgZzN/gMiFqUyA==","signatures":[{"sig":"MEUCIHEwEI8CB1+a+N0tXC6LAzLNyjGRGNNlaYEk4Uo9ktRsAiEA9Z1t586bnZ6WHZSuZFLi+ZRefToLz9mOEfMWM17cR+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34259},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"351cec147aabaf5c3ad5c7e9d425fb58d1b8dd62","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.51.0","oxlint":"1.66.0","ultracite":"7.7.0","oxc-parser":"0.133.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0","oxlint-plugin-react-doctor":"0.2.14"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.2.1_1780310521233_0.018809280240313253","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@howells/lint","version":"0.2.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"73bebeec2b22230c8c7fbc8d5606984c0ad747f2","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.2.tgz","fileCount":34,"integrity":"sha512-4fl+OQ/mVCfU5iLrW6LJ6KXNTRjeSJA+wGLlD1JY1uuh9b68u5R/jQWDZzF3kuItJDo6TP8u/sZSGdOLM7hKcw==","signatures":[{"sig":"MEUCIGeoYwJ34ZWkjJNHY+IwpDcX1F6FABJ9N/pm6na1EcwfAiEA2wI1t590Plv1GrJKWth4jA5R6ynvhm04hOWZxLmiljE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37962},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"a8ba1592174803a7c83b590a154dac34ce2d7e9c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.51.0","oxlint":"1.66.0","ultracite":"7.8.1","oxc-parser":"0.133.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.2.2_1780744202532_0.5142099819487453","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@howells/lint","version":"0.2.3","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.3","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"a33ed700fe8378828ce00164f693657a308296e7","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.3.tgz","fileCount":34,"integrity":"sha512-X49cTJ38HxhP/ijChRATxAdXtvgRa0LqYD18QNvrFhrDnomSnaZmrrAN6FHw+Ao5tyfY8Mu49XHgIsd5g/BvkA==","signatures":[{"sig":"MEUCICLwxRCfFN7Mx3pnHzk5cNF6E8kFlVwzXcV+5g3FZ3r6AiEAh35FztkOR5AaubE7iKo6pGhudosuSGKLQ7dZusa/yp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37984},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"a63bd0ca08eebd5db97c6901efae2ddd69453941","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.51.0","eslint":"10.4.1","oxlint":"1.66.0","ultracite":"7.8.1","oxc-parser":"0.133.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.4"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.2.3_1780744273254_0.3796624259275512","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@howells/lint","version":"0.2.4","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.4","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"3fe0470199881fa13aa38d7d6e4163d168cb9d78","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.4.tgz","fileCount":34,"integrity":"sha512-Q6kTCY9DScuxZn4CISpkYYACFdIwhV1bLwEBRKdlvG0PJ08cScbtLHH3kQNg31OgkqpHCpZM81Os9xdRISKaMg==","signatures":[{"sig":"MEQCIC+YQYwhLRfC+vDFB3coYh/sQJ4HePfZ1vxqYTGxwC+yAiBjVVBkds6AXl8uuZXyhwBDPVUxhnMz8pSeCN/jOftWnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38288},"main":"index.js","type":"commonjs","_from":"file:/tmp/howells-lint-0.2.4.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/tmp/howells-lint-0.2.4.tgz","_integrity":"sha512-Q6kTCY9DScuxZn4CISpkYYACFdIwhV1bLwEBRKdlvG0PJ08cScbtLHH3kQNg31OgkqpHCpZM81Os9xdRISKaMg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.51.0","eslint":"10.4.1","oxlint":"1.66.0","ultracite":"7.8.1","oxc-parser":"0.133.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.15","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.2.4_1780744578447_0.3517719719719301","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@howells/lint","version":"0.2.5","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.5","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"9fa8923e285c2bcb825a688708fc47eb850dd5ca","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.5.tgz","fileCount":35,"integrity":"sha512-nlw6nj+o9N3963FiugiE9MEBzMVwJOXULGadZA1EDFKE3aW3euIhAfQYfS/vm+dZc4wRXkP0mi/L/z1xwbBKTA==","signatures":[{"sig":"MEYCIQDG/c2Rd80SiEwK7Bq6315YcOgJb6Lac1YT/j/0TJWUDQIhAJiIDhg5oHn9S1CNJgtOzXUSUh26Iqii8klYcxDvwj75","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40425},"main":"index.js","type":"commonjs","_from":"file:howells-lint-0.2.5.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/fe2d211000bdbeec83fa2ade07b04cd6/howells-lint-0.2.5.tgz","_integrity":"sha512-nlw6nj+o9N3963FiugiE9MEBzMVwJOXULGadZA1EDFKE3aW3euIhAfQYfS/vm+dZc4wRXkP0mi/L/z1xwbBKTA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.1","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.2.5_1780745922352_0.826126082135499","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@howells/lint","version":"0.2.6","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.6","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"08df9cd0098c21182afe28f4a1df91a0756e46a2","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.6.tgz","fileCount":35,"integrity":"sha512-dJ6BTM2AEa0iSu4B8hPiF+h1MAQqkx+Ms4FkWV6s6z4liUGAMok3CejMsesC5A/l0G2t96W+m6FGw1ZlKV8frg==","signatures":[{"sig":"MEQCIATPSkCK4owiPlwWN9fEJsGvYzIB3/64hMxF9942h/hwAiBBrsZrH2l3htG064XFwVRBC/6nYTKuU585tT9bQAi+cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40844},"main":"index.js","type":"commonjs","_from":"file:howells-lint-0.2.6.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/d542332c595964d08a2c20b41dc2e188/howells-lint-0.2.6.tgz","_integrity":"sha512-dJ6BTM2AEa0iSu4B8hPiF+h1MAQqkx+Ms4FkWV6s6z4liUGAMok3CejMsesC5A/l0G2t96W+m6FGw1ZlKV8frg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.1","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.2.6_1780746409955_0.4411380481717766","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@howells/lint","version":"0.2.7","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.7","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"c7e08a43dc17d923c1b56c3be404055651ed6eea","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.7.tgz","fileCount":35,"integrity":"sha512-BsmKi4FFTA1EfkdANjqEiKTXipEwPrA5UPDfsAa+uTEQgP7r0IDXxkJ2u1wheIp1tyrl9isGP17/zYh8QDVDgg==","signatures":[{"sig":"MEQCIHX3Dg+pyVaY688Ro5OALL6UkegRMEJsBqvonqMxupY9AiBXFWH/9Iuo9iavTW/LxTz455Obhrd6ToEbzGE6o0aCWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41035},"main":"index.js","type":"commonjs","_from":"file:howells-lint-0.2.7.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/0b3179bbf5f97a694f5913445dea470e/howells-lint-0.2.7.tgz","_integrity":"sha512-BsmKi4FFTA1EfkdANjqEiKTXipEwPrA5UPDfsAa+uTEQgP7r0IDXxkJ2u1wheIp1tyrl9isGP17/zYh8QDVDgg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.1","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.2.7_1780749207800_0.7741715237298219","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@howells/lint","version":"0.2.8","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.8","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"c03f056525d7202c6388c484dcb4d5c011a68db7","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.8.tgz","fileCount":36,"integrity":"sha512-EzVFkPaCA9KzwYvuvw8TXfiHB/Hj9BARwnIhxzr0YPzNsoK3cOlMQVe0cq8M+xXArSeY20/5pSxgxH9tLt+TtA==","signatures":[{"sig":"MEYCIQCPScJ884hXsL/5hArK3KeH77U7YiejnNnOQ/MaHTFLcwIhAM9phaNO0Z/NIwh4P3AJqOwEAymzVVX9v7+eKOKFBSH2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50058},"main":"index.js","type":"commonjs","_from":"file:howells-lint-0.2.8.tgz","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/private/var/folders/45/5vm28w013gn68pl0wwr511640000gn/T/8b713278d9d94da5cb4e98a1702caf37/howells-lint-0.2.8.tgz","_integrity":"sha512-EzVFkPaCA9KzwYvuvw8TXfiHB/Hj9BARwnIhxzr0YPzNsoK3cOlMQVe0cq8M+xXArSeY20/5pSxgxH9tLt+TtA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.1","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_0.2.8_1780760607336_0.8724555204269298","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@howells/lint","version":"0.2.9","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.2.9","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"b556289df34d8b88efc5a10e69296d472fc195ec","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.2.9.tgz","fileCount":36,"integrity":"sha512-CYUEoh16F4vLLWgpuAy09mG/OD56mBnBbNxT5x7eYzlhN+m7x1yoOChwBENBHjn7YY2d0ftEBgmJ0mdgt4CmXg==","signatures":[{"sig":"MEUCIEYBB1NCZWVcoKbIIGSDesJPKqawQ9vRU4Kvqi0G3LwmAiEAjmLkRv+a19saEKfotCQ2B+OA9syv79xP2Sz7yWdaQ6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50122},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"dc5d5661775425145773835b8beff1e961de4cb0","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.1","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-boundaries":"6.0.2","oxlint-plugin-react-doctor":"0.4.0","eslint-import-resolver-typescript":"4.4.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.2.9_1780841259373_0.2279281595419429","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@howells/lint","version":"0.3.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.3.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"5b08c67a58e7665ce961398c93a47a9656d02c52","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.3.0.tgz","fileCount":39,"integrity":"sha512-wRJB42a3pI5+TUYxkx5yxQByj8ZtKU9r8ZcARWtiy/uoJ4n7tmziWhqVsyB4xH0FpafILPKu3K/cJDDElezpyA==","signatures":[{"sig":"MEYCIQCnvWkOGRz+ZVqzejLQrkJGzhbrss2azcg4rnm11nf52AIhAJQXRN9MNagwbQkw+IQ4xAj42WL8Lp8DJtmFR7ArBoxu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57316},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"63e7652c3e5f538d5933c62d4c29d053d16a0a52","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.3.0_1780914038688_0.31218604617538626","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@howells/lint","version":"0.3.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.3.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"0b6e72b82efaf53cbd5a316620f7473ac8dce893","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.3.1.tgz","fileCount":41,"integrity":"sha512-9Nj2WVoYHUkuhrlNoiP9mYyDAdem4Wvbnop4lbZn+O/uqtihF96P7peeurNzB5LcV9hjQ3hN+FxsGoBITPiD4A==","signatures":[{"sig":"MEQCIDlBRg7QLh4nPOlcau8ntVtNV0erdbsW4y+ZxuD8MFHvAiBEvXpIMHNcidkF/SJ11O7TifubW3s639qbJ0LlfgH7RQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58416},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"afbcb9180784ffd07b98d76c648d793c03f73dc2","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.3.1_1780914331731_0.9241608615753227","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@howells/lint","version":"0.3.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.3.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-lint":"bin/howells-lint.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-format":"bin/howells-format.mjs","howells-ox-fix":"bin/howells-ox-fix.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ox-check":"bin/howells-ox-check.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-lint-strict":"bin/howells-lint-strict.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"510cdd48ae10d2360097cecad0f5410b7bcf6f01","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.3.2.tgz","fileCount":41,"integrity":"sha512-bWFn0NKYLqTxYloLuDzZ2kLm8thhGh3HRKdoiskowC9rY+/AKki2jvlzA3lxR0HoWcDJRLm6+/W4NwxgUnF5TA==","signatures":[{"sig":"MEUCIFbUtmlzvGRbhcJJEbgkJLoUAwMOrhDF+pazICol3bYuAiEA6U8RKe+slTqD1nY8/kZUUQR9Ye9TvqwjbSoNabGEcNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58399},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"743a35b51567cd01a35faaecb2310a87d37a53e1","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.3.2_1780914464156_0.9491084330891915","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@howells/lint","version":"0.4.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.4.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"b9da363eae02d89d6f5135ecc4ca76f47762ca68","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.4.0.tgz","fileCount":36,"integrity":"sha512-5lhoGbbK34hj5h32LngdHF6qKrDClTrkNKTteL1BEXR0PecJmn4Kb9/Be3wwzE2cyiHKuxPxEodKdzgDadQ0RQ==","signatures":[{"sig":"MEUCIDtfqVHoKgrQpAr+lkuIpsP6nDYzz0WI+rIjnhxtkbcJAiEAhLqrDtQfEydnpSnDFabK6VOuLSUgPpQgSK7o6J9fqx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55750},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"da00a5157f9e13ef585a10e4df213d754cec9081","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.4.0_1780915271135_0.08518018088734469","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@howells/lint","version":"0.4.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.4.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"6f9d4c35fe37e674f4764d4de398c695674ff9f0","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.4.1.tgz","fileCount":36,"integrity":"sha512-E3Eqdle5WNGWJZd9U/g8WPN5R/3XsiZa7itIbW5gFAGDs7J+meVxXf4KZltguo7caUd71nFm2AwQO/5oikHjHg==","signatures":[{"sig":"MEYCIQDrVmzZahkwxoLkkSDJs+wECPgPSYnEX6r8Qi3rypNc4AIhAJGycZI3HjBGjDJ0PDoV84d1T5j4XXk3B+vVC5EjU6PM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56742},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"1cad7074c88df71d25d10edf90987aaac9668957","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","_npmOperationalInternal":{"tmp":"tmp/lint_0.4.1_1781009172619_0.42979860410393167","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@howells/lint","version":"0.5.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@0.5.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"b00ae253c4f87daf9ff40e2ee7b05623a0084cd0","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-0.5.0.tgz","fileCount":36,"integrity":"sha512-6Ud2NVCVLodIUWBYuZkuHpi5mcEHLHfv7vq3/fDltLJxJPqn02raQKGiP9JapTTg26mgGHP02vxTg6Upjw/2Rg==","signatures":[{"sig":"MEUCIQDzK66BwNa0LRzI+jJK80uJIF5bxFVIgoENh5aylS2urAIgHhlj3xtL1pfuBzagH/Rkv/AMIvRP+KEVJJ8JtGVsWDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56956},"main":"index.js","type":"commonjs","engines":{"node":">=22.18.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"e10898e05e74a9ce43760f0b73d3f9aaeafb8f0b","scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.53.0","eslint":"10.4.1","oxlint":"1.68.0","ultracite":"7.8.2","oxc-parser":"0.134.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.4.16","oxlint-tsgolint":"0.23.0","eslint-plugin-playwright":"2.10.4","oxlint-plugin-react-doctor":"0.4.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_0.5.0_1781050722828_0.2077126414507411","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@howells/lint","version":"1.0.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.0.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"bff142f343db4855c030ae07e85f941223c7de05","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.0.0.tgz","fileCount":37,"integrity":"sha512-pQIeRGtS6yWxmq8YdDon/ysXPLe+3pUaL6B3QNwgVohywW0f8nz0ibeW1TBTDXF71ufwnmUn7CCv3gv2OT2pQg==","signatures":[{"sig":"MEUCIE/bQHEgm58cpmkS+63RDAXX1vmSwcGFUlsPiz5g4SnGAiEA1V31kfIUFY7g49XeEFVdqf95laW4iP9u4AXjABuJBik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61847},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.58.0","eslint":"10.6.0","oxlint":"1.73.0","ultracite":"7.9.2","oxc-parser":"0.139.0","@manypkg/cli":"^0.25.1","@biomejs/biome":"2.5.2","oxlint-tsgolint":"0.24.0","eslint-plugin-github":"6.0.0","eslint-plugin-sonarjs":"4.1.0","eslint-plugin-playwright":"2.10.5","oxlint-plugin-react-doctor":"0.7.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_1.0.0_1783423671386_0.8391260302258539","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@howells/lint","version":"1.1.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.1.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"948d9a6ec6c6e4c3c2cb805f4bbfd90fe2bc3769","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.1.0.tgz","fileCount":39,"integrity":"sha512-LMefUBNEcLVYlt7mxarpgAUSGqVEufj33Z5nmbChjaa0qUV6tMTngzRkcC1f/s3C+heXnw9cmqD2l1I3glWneg==","signatures":[{"sig":"MEQCIDsOm9mu1tWUO2W+hKzmXsobCROTV3RFp9iAZodigoiTAiAU5Nmc3Pull1+btS3YnwqiM7bofL4F7dyDouppNJVBvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82427},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"36c38dece93da76db8e3a77c02399e3361bdae32","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.58.0","eslint":"9.39.2","oxlint":"1.73.0","ultracite":"7.9.3","oxc-parser":"0.139.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@biomejs/biome":"2.5.3","oxlint-tsgolint":"0.24.0","eslint-plugin-github":"6.1.0","eslint-plugin-sonarjs":"4.1.0","eslint-plugin-playwright":"2.10.5","oxlint-plugin-react-doctor":"0.7.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_1.1.0_1783768266767_0.2537012823639413","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@howells/lint","version":"1.1.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.1.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"8d8c3b0e0b6cc3b20e67d003650cc805204ec25c","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.1.1.tgz","fileCount":39,"integrity":"sha512-l1wM5H3b+JtYyNPYSRcKEP5ecJCT2AfTRBy+BD4fuAJpw3zW1R4BvfgCRvSlpZW5l/Cz331kx8bFtFJvJyNJbA==","signatures":[{"sig":"MEUCIQDIsF/ylQXv13nKYGquhHJpurDE02sXLE7viD4hS5XttAIgEZSoCONzOiZRV2Mq6sdD53g155QEDFbYxAsc2yFV2p4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88132},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"81a9118298234bdb515ccffba78ec0ce687e0a0e","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"10.9.3","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"oxfmt":"0.58.0","eslint":"9.39.2","oxlint":"1.73.0","ultracite":"7.9.3","oxc-parser":"0.139.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@biomejs/biome":"2.5.3","oxlint-tsgolint":"0.24.0","eslint-plugin-github":"6.1.0","eslint-plugin-sonarjs":"4.1.0","eslint-plugin-playwright":"2.10.5","oxlint-plugin-react-doctor":"0.7.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_1.1.1_1783848873395_0.9107181655323755","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@howells/lint","version":"1.1.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.1.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"d680694c3bb7a42ef4cbcca5ff37a8b19da6b8ef","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.1.2.tgz","fileCount":41,"integrity":"sha512-AvjOCUorKjo2xvVVg2zZzvo3AubGDB97t1NJOvMIexgbw3jIGNBrjYRv1E0RK0/zXECuz6qiIRjlg68zvVFFKg==","signatures":[{"sig":"MEUCIE20MMye/89jPN3SD80P6LO1d3jV90bldVwXTrHifZ+aAiEAit8TN2ji7Jqp5kbLSyGFd/BOQZa3ibTS8oE7MQAA24E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89398},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.58.0","eslint":"9.39.2","oxlint":"1.73.0","ultracite":"7.9.3","oxc-parser":"0.139.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.0","@biomejs/biome":"2.5.3","oxlint-tsgolint":"0.24.0","eslint-plugin-github":"6.1.0","eslint-plugin-sonarjs":"4.1.0","eslint-plugin-playwright":"2.10.5","oxlint-plugin-react-doctor":"0.7.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_1.1.2_1784276720481_0.8712685219975886","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@howells/lint","version":"1.2.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.2.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"b36cc0070607494360b7ea4324701bd0d8538f3e","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.2.0.tgz","fileCount":41,"integrity":"sha512-kSpRtjo4mC9jNA4nZTFUa+821qWTG595lgdTBHvahBvDXwxfzmeJHqvnlQljIy+atgprQz8M0KhbWV4UOZ8SfA==","signatures":[{"sig":"MEUCIQD9EVVuR1kFQbSNajiId8zPxtyG5cgZIBM0XNXJcrOm+gIgP3Ww6yeEcvdiPuEyiWAZDnZMMO8cxEnUjMwEiR9bQJs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95988},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"8aa266e12ebc31f6347e3eb5c5a204ff14c2bc6b","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.16.0","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"oxfmt":"0.61.0","eslint":"9.39.5","oxlint":"1.76.0","ultracite":"7.10.0","oxc-parser":"0.142.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","@biomejs/biome":"2.5.6","oxlint-tsgolint":"7.0.2001","eslint-plugin-github":"6.1.2","eslint-plugin-sonarjs":"4.2.0","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_1.2.0_1785714281912_0.42024967670616453","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@howells/lint","version":"1.2.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@1.2.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-biome":"bin/howells-biome.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"17e05bde26a4465a924bdeb51e895d6488cba0df","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-1.2.1.tgz","fileCount":41,"integrity":"sha512-GpcrG22o2lCU7nlwMrM9jpFfLEY0IU02rd/q68xVpIehyjcLVmUrRtIsKn+fbp7sxLXu4qbG8GXsmBQHlxei3w==","signatures":[{"sig":"MEYCIQCikVhaTCbkx+HQwgbwKxgc6rMUuftwDYBTr49IBV6SbQIhANMwps5TnjBfQu/XNbD6eP611dZJD0lF5Xqksjslojh8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97749},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./biome/core":"./biome/core.json","./biome/next":"./biome/next.json","./biome/react":"./biome/react.json","./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"579936a40b68f0e30566cb2b260a486b42d654b0","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Biome, Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.61.0","eslint":"9.39.5","oxlint":"1.76.0","ultracite":"7.10.0","oxc-parser":"0.142.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","@biomejs/biome":"2.5.6","oxlint-tsgolint":"7.0.2001","eslint-plugin-github":"6.1.2","eslint-plugin-sonarjs":"4.2.0","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.3"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_1.2.1_1786615241114_0.19391880635259073","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@howells/lint","version":"2.0.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@2.0.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"7698c449f316fffea1193521e0372f3ada1e5827","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-2.0.0.tgz","fileCount":38,"integrity":"sha512-TQ75wgv+2Wc8be6k5RQY2/wD93uSiYmPYb0tyHoJPNSjaHrbgtB5kLOThZGvykIOWvJhkOG/w8KutjQ7/dhdMw==","signatures":[{"sig":"MEQCID0NCyA20278h5dlCvmKOunXh547hf6P3qTQf9hTTZxnAiADLic1CQCGcjcUTSrQGdpDBIXSJnO12R8UV0q6CW2A5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100621},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"df13eef45df56a2ac66a301433f5a9972686990f","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.63.0","eslint":"9.39.5","oxlint":"1.78.0","ultracite":"7.10.5","oxc-parser":"0.144.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","oxlint-tsgolint":"7.0.2001","eslint-plugin-github":"6.1.2","eslint-plugin-sonarjs":"4.2.0","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.12"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_2.0.0_1786787441835_0.5829087103913411","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@howells/lint","version":"2.1.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@2.1.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"65438c1015e452cfdcdf6a734d4e44a2e196d722","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-2.1.0.tgz","fileCount":38,"integrity":"sha512-O4weLu+9QCDiBb/CSWXGZOs0t8/Z2bZJWnki4B/0JrsCcAdBfASLWj8/oKf7a3JLJ6Rf7hyYjm2psjQk+Ln67g==","signatures":[{"sig":"MEQCIGNsduxFRdrFIOA4GizBjGbo1sOOg/Qd+cgE+AxpGtgeAiBsQgJO75NznB8pxgqdhzgFH8BPtoz17qHqR6itZoSlPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107921},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"ac528c93d66da807448a2251a0042789845ac047","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.63.0","eslint":"9.39.5","oxlint":"1.78.0","ultracite":"7.10.5","oxc-parser":"0.144.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","oxlint-tsgolint":"7.0.2001","eslint-plugin-github":"6.1.2","eslint-plugin-sonarjs":"4.2.0","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.12"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_2.1.0_1787235431730_0.5825583827934153","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@howells/lint","version":"2.2.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@2.2.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"63d2fd7aebbae1cfc8f360f717967449974238a4","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-2.2.0.tgz","fileCount":38,"integrity":"sha512-J8Mgd6NAyMg8KrnjixOeYM2KCu6lr7PHW3M6bDa3CTy2qj8kE0gi4me/VH9Yc+ahYFw58pJi3JKYBORa6sFyLw==","signatures":[{"sig":"MEUCIHKmiAy2+LyE/41CT4sWpTHajAl4BP7eWrRg68V3GnB2AiEAu9nF1UEIakw65KarDYYVAx+mcnu89JGryDExqw/uT4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110444},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"698700c1cf1d04c18468635f0d68dd78e01407fd","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.65.0","eslint":"9.39.5","oxlint":"1.80.0","ultracite":"7.10.6","oxc-parser":"0.144.0","typescript":"6.0.3","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","oxlint-tsgolint":"7.0.2001","eslint-plugin-github":"6.1.2","eslint-plugin-sonarjs":"4.2.0","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.12"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_2.2.0_1787843170950_0.7972504513139065","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@howells/lint","version":"3.0.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.0.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"6be697a096795a022a66c2147dd175d8b79a5819","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.0.0.tgz","fileCount":38,"integrity":"sha512-u4BoRn/9jldd3kZJ+WXdzVzWKVMeb7+y7MK3fcYz/SxSrTAvaAsrIq1iro+gFWiD0M+pWzys6uCo7rICZ4Ew+w==","signatures":[{"sig":"MEQCIExjBvcS1FdS4ZGyIM7h+VkyTpQUbx7vNcu01vF/ssEuAiB53G2XuIqwfxDuasR39LSmVWIKwzzVLlIWtsLlSiPEaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":111946},"type":"commonjs","_from":"file:/tmp/howells-lint-3.0.0.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"_resolved":"/tmp/howells-lint-3.0.0.tgz","_integrity":"sha512-u4BoRn/9jldd3kZJ+WXdzVzWKVMeb7+y7MK3fcYz/SxSrTAvaAsrIq1iro+gFWiD0M+pWzys6uCo7rICZ4Ew+w==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.65.0","eslint":"9.39.5","oxlint":"1.80.0","ultracite":"7.10.6","oxc-parser":"0.144.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.1.1","oxlint-tsgolint":"7.0.2001","eslint-plugin-playwright":"2.11.0","oxlint-plugin-react-doctor":"0.9.12"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.0.0_1788777587265_0.9269655103324201","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@howells/lint","version":"3.1.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.1.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"51d6dfcefdd0e077aff72c517b2cccffc35bc77c","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.1.0.tgz","fileCount":41,"integrity":"sha512-aKcZsDmomo5NLx5+HftJ4TLrjQrCUasqSJG0EHyyi43BPE1ippMEt3ys0jGJ3yD78T+UJ9hAmKgcqSTGsds3tA==","signatures":[{"sig":"MEUCIG4J5gLz4r/mCFIFC48I3+7sKQZfh4dUHLkwdso/400aAiEAn5mt7DbNcIF+lLVW85BAOb16F29CP3fpaM8z7T7ul40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283755},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"4ec47be79a1ec5b447d7998ee5cba91d2627df6c","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.1.0_1789138073234_0.029687562521861333","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@howells/lint","version":"3.2.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.2.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"aac80a60494076dfd08a9bcce4708817e984e758","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.2.0.tgz","fileCount":49,"integrity":"sha512-KHvC+oranbcSXbJACsyZi6EUp2Ro6ws5DSkEBwoWNOMY1x+98JT1pQqjxnaNhRD91UsBn2obEJ/Hg+INbACfQA==","signatures":[{"sig":"MEUCIQDPUsVZycQLAojnHNxb4H4Sck7Ece0EwDiyCpESFHb1HAIgC4S2a1GJmKx0SoU8SlpAYxSTBOHtc7YS32tAIFZnhxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCEnjuanfp85XNvhlc1/VKw+7QGIAQH3Wsa4UHQ5h6VwAIgTJIWH6f+LS6VqNyrm6FHFxILYqxkya594yKyzrD8dBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519332},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"c16c251784b7fb27e6728828bb5658f83079ddcd","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.2.0_1789429478897_0.6215992181553922","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@howells/lint","version":"3.2.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.2.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"c64d95e502570b415d6989c96d90a8352ebd60c4","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.2.1.tgz","fileCount":49,"integrity":"sha512-oYea/ohcUgIPOcJG9SB7EeyD/ZqRI45//qwkFZHH+WGIZDUnMrRCVVCHlf4dAcKBX0mndo7mJJi3E+WdiGNcvw==","signatures":[{"sig":"MEQCIAiyVHBx+w2EuIIdR/Ww8jfaMTRb2G7R2tziWeTdDmDfAiBWBuVEW7C4PvHaT3Jh401tsQq/fEAo0cPhN+hU9Flhng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDcMrb6CWm9PVXZU8Hwosz8WvbWadBI+6040YyQ2QyDpQIgVPUA3B44fRlsz3nEY83gUSRVFZDX6t/OZe9eGE2uoVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":521296},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"c3bcaabd68d107100eef46d24f7edee10865fabb","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.2.1_1789453048253_0.24987172836456595","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@howells/lint","version":"3.2.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.2.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"f410fc3bac61902f47d34065fc8b1e0cdfe6105d","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.2.2.tgz","fileCount":50,"integrity":"sha512-OEmDA08iNjOkiXoKKWiQt8blGf4XBiNR36yMtdu8+m8avOta+1RQLrSVsUUTnFKo2iUR9YolX24TsTXmNsFOaA==","signatures":[{"sig":"MEQCIAop7rlWYyEENVzwfpSgG7TKfnEQFkKZww5X0i8vw5+dAiA+JwNFxgN3H/PZmVHe2nwBF94Z1qc34Vmq8mneJv8Bbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGJ10zBbRVbUgQ7wbayyOCfl2V5q0MMoNWmc3JkKeimCAiEAyoBelTdNVWPa0VlGlkj5eZC15i9zERbam3nbKShiVsI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":523180},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"7b78d78eba682b521547819723b7eb35ece40b54","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"danielhowells","email":"daniel@danielhowells.com"},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.2.2_1789453782217_0.8865945092916523","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"@howells/lint","version":"3.2.5","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.2.5","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"d644baa32edb6880e1ff469dc5f7505fba0a811d","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.2.5.tgz","fileCount":50,"integrity":"sha512-DsfXKW+ftjMXslFvjtKnqFwrbomFbSD0yP1eZKHOMCx3SpRFyenrCBQb+8hsDz+mQFnKWyQ8sURDtiiNck8FtQ==","signatures":[{"sig":"MEUCICCkKALxxaPPqG1qYvCDBZXOIraHFcpksH+m3YL6xvelAiEAhji7I50CuXfNPs7GgElETFIkisKs4O/fWihh6aBbNcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZPMcyZjTdvUX0zqOgVtwoLAunMiw/hgGvZo0hTTs4QQIgRFDDuJnfGIz6HXTqBIv6e69X55o8lE9dGSNr9qws2S0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":528139},"type":"commonjs","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"gitHead":"2d24efe51ecbd2f1059ccf602d3a0a90f9f9de67","scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","_npmOperationalInternal":{"tmp":"tmp/lint_3.2.5_1789462351412_0.0014046794420337072","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@howells/lint","version":"3.3.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"6ad11d632d0f99939c2560d2b40f35bb5e9b1ca1","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.0.tgz","fileCount":51,"integrity":"sha512-7Qz1KZ1TbZco4ZEBt7xqLHMLf13Cgjw6ryM9KY9H8qxO4kCURl/Kog5GW3dNhHorKtNflEjSjiELo3LaCbN87A==","signatures":[{"sig":"MEUCIQCjPLyuRvhzvq26hwO2aXpFLS3iRP2WoCQ1IkEG+PBVDgIgVh0UBCIjSJ3T6eFI5/Fto1xr89nAeKj9HMk1IKOJzbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCelZrYVaqGLuycsjlPdzgROLsK/ObwyMHPsoMNa6JXjwIhALls5EUsjMG2E8wleKatN7mC/5AH0cFn7N9Nlh7UB/Oz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":534711},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.0.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.0.tgz","_integrity":"sha512-7Qz1KZ1TbZco4ZEBt7xqLHMLf13Cgjw6ryM9KY9H8qxO4kCURl/Kog5GW3dNhHorKtNflEjSjiELo3LaCbN87A==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.0_1789472790714_0.8605732557955246","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@howells/lint","version":"3.3.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"2f36fa535e9376baeb7c519928e42ef84358eb87","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.1.tgz","fileCount":51,"integrity":"sha512-e6ry0oIxQmhhHKSjVtANaUf7PPPCidiMOPA+AeYd+mHoDUgbqvefKJr5j6IRq6sC3M5jSKCnzPJCP7LiMjMzUQ==","signatures":[{"sig":"MEUCIQDxUR3uGaAkZOhQBrQnkUDREADWc9b6c/O1gjM4wVXMMAIgIjRZZhtksTM9jJKaiYJuf5FzjWRl2VOdnRbKgI1apBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICZax4P77Pim+bOI92aUlT6Ichw9EPYHGAfk7lxVv+gbAiADpVMTIyeOY+nVoORn34K/y3dYNc2LKUuRVAu5INRN9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":535319},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.1.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.1.tgz","_integrity":"sha512-e6ry0oIxQmhhHKSjVtANaUf7PPPCidiMOPA+AeYd+mHoDUgbqvefKJr5j6IRq6sC3M5jSKCnzPJCP7LiMjMzUQ==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.1_1789484759634_0.0241958318961204","host":"s3://npm-registry-packages-npm-production"}},"3.3.2":{"name":"@howells/lint","version":"3.3.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"51d406d473c1e40d615f77712adef0a0251607bd","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.2.tgz","fileCount":51,"integrity":"sha512-2LeN0eA7fBpvfniglMFg1425GDV+v7uEuo3FJOKdmKTCTPX31keqIBIED6iEMrNsx37bAMCgMJAq+jH8gimnlg==","signatures":[{"sig":"MEYCIQDbz0QEAhYC8f4bBakcrZKDD0hpFyq0BGg91+isiipQaAIhAMr+nu+omWIyLA/pHU3eOfq2Z+/K3X1n62VL0PhqEKi+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDxgXh7bMGdS5eLEhUpdoalivkVotxypD2x3YiJhIJIEgIgOhN+dUfkzVPzBfwcF6Xre32UvQYbApCD14v6ccBlJIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537376},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.2.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.2.tgz","_integrity":"sha512-2LeN0eA7fBpvfniglMFg1425GDV+v7uEuo3FJOKdmKTCTPX31keqIBIED6iEMrNsx37bAMCgMJAq+jH8gimnlg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.2_1789538624559_0.6329680330389211","host":"s3://npm-registry-packages-npm-production"}},"3.3.3":{"name":"@howells/lint","version":"3.3.3","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.3","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"4ab9b24fb0c408860c6e40f101639616828497d2","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.3.tgz","fileCount":51,"integrity":"sha512-kFRYXGubJGcA+EPdAc6SmhxhOtuSpVUOX69gZPWS51CjuwjDjYyfI0b6YhwpSVVsXP4dgkCe9KGzXSaed9qPkQ==","signatures":[{"sig":"MEYCIQCKU4k5nft3Xgv0YzXU7GE9H0HqSymBq9lz409rb8J47wIhAIGjOa/EPdNilWI+4HvyGYeBipcSJGe6Gzn9O3W80yv2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGW6Htw8dxxKagddaBJ9pelzGtrwD8VyaPy/mIbPSPmPAiBpauKiA0vAvAeXDVBPmdk8mzPJEvZglx5ZEKWL5UMzZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":537952},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.3.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.3.tgz","_integrity":"sha512-kFRYXGubJGcA+EPdAc6SmhxhOtuSpVUOX69gZPWS51CjuwjDjYyfI0b6YhwpSVVsXP4dgkCe9KGzXSaed9qPkQ==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.3_1789556352817_0.682691298045379","host":"s3://npm-registry-packages-npm-production"}},"3.3.4":{"name":"@howells/lint","version":"3.3.4","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.4","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"62260ddd076e5600789f4c6fcb2b8fe593a47663","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.4.tgz","fileCount":51,"integrity":"sha512-RBHn5XUNxn/R4EB0NtqkEVBQIMF78naMffURJl+e+mx317gInBbymuw67lDsgwvQacSrHaG95RQq9XyLNCTmgw==","signatures":[{"sig":"MEQCIBoKOZ7xyWPoW+kTI3g6P8qbkgS8HfLwn0wpZ38AalwYAiAvvC+X870sXnN6+mfhlNma8WzPZqIHHf/EggvGK8abfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJU3YGEoQKbsdhxn39EnqW/Daw+iKergwyZ29skywNmQIgMFw4Gxdk0S9rg+8WzDJTIn1H4y20r1c2aJTi24turKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":539821},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.4.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check","prepush":"pnpm check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.4.tgz","_integrity":"sha512-RBHn5XUNxn/R4EB0NtqkEVBQIMF78naMffURJl+e+mx317gInBbymuw67lDsgwvQacSrHaG95RQq9XyLNCTmgw==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.4_1789635284982_0.3799989894764053","host":"s3://npm-registry-packages-npm-production"}},"3.3.5":{"name":"@howells/lint","version":"3.3.5","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.3.5","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"71aec1cfb51732948fd7df5b41bebb245e815adb","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.3.5.tgz","fileCount":51,"integrity":"sha512-Czs8Oi2BfWtZbV3hspRYKYilua6uVIflJW7LlQPJrgVmnSynT3QConFC0iz4NyjS4W5NrYp9HV6yAxX8cS3TeQ==","signatures":[{"sig":"MEQCIDsxrfFrENIqN0CwLTO/JkIMRsIND9FUU4A8F+bmR2VdAiBdCCm6CWwZGu/1jjBuISSvN8Uf1Hx35ae4y6+A7TRLJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD6+Hdc9yLtK/0yypTFwq5Whv1bxQHhSOF2KzKODB3HbQIgGFbWeZSUVT0nRF5G+tWw0NYh5pXhib/3A2MjcZoNZQI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":543670},"type":"commonjs","_from":"file:/tmp/howells-lint-3.3.5.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","check":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs && node --test && pnpm peers check","prepush":"pnpm check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.3.5.tgz","_integrity":"sha512-Czs8Oi2BfWtZbV3hspRYKYilua6uVIflJW7LlQPJrgVmnSynT3QConFC0iz4NyjS4W5NrYp9HV6yAxX8cS3TeQ==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.3.5_1789741975676_0.3161837133586505","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@howells/lint","version":"3.4.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.4.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"30fafc37dfcbc0b00860ec48822b570d8fca7092","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.4.0.tgz","fileCount":60,"integrity":"sha512-oiB+bnvMRlaYF19iDdCChKTjovVXTVgPd7BYEqaSznatiCTZjx6SNVpsM8dF6tGJof5PHBo+HJnMtoOhw18uUg==","signatures":[{"sig":"MEQCIFMkySNXke/gxsg7Iob5Poguc192hTpK7ElQ4htCrNBvAiALx58LXZafU/Y1Edjo9GJNNzfTkBSoUfD+eMUOTa7ZzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDBbB20PLUNQ15nhiRk7fOb1XOpdzg9oPRk2HblC2SDSAIgNHAneGHKXTBlilWAZ3+Y6zN1vk0O3/mkghlmN5rGFPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":600188},"type":"commonjs","_from":"file:/tmp/howells-lint-3.4.0.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.4.0.tgz","_integrity":"sha512-oiB+bnvMRlaYF19iDdCChKTjovVXTVgPd7BYEqaSznatiCTZjx6SNVpsM8dF6tGJof5PHBo+HJnMtoOhw18uUg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.4.0_1789819226678_0.5420512696197157","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"@howells/lint","version":"3.4.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.4.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"762da84452cd810ef45019822e0826bfafe32d2c","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.4.1.tgz","fileCount":60,"integrity":"sha512-nUvEFcA6UNpx9+jiFUfsqyNnFbIAxsb0OfVno32N+8a8Nc7kdBpW/15jMQMRBCSRkhIoEJWT23RUv3P2OyTOgA==","signatures":[{"sig":"MEUCIG51hYkDILC1HgR73PVxW//al9EYo2XMaaWdbrF58H/nAiEAoyiQsBzb/qO8gJ3ZO3uFfpx78+C7i3mNpSEu4QzKvqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEmQmcoIk4EnxVlgbUfWjoM0341B94LniTyPu/GqC/9CAiEAtFT0bpG1gwtsyknJS2bejCg2DhC7jb2yID8xGHlXrKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":603309},"type":"commonjs","_from":"file:/tmp/howells-lint-3.4.1.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.4.1.tgz","_integrity":"sha512-nUvEFcA6UNpx9+jiFUfsqyNnFbIAxsb0OfVno32N+8a8Nc7kdBpW/15jMQMRBCSRkhIoEJWT23RUv3P2OyTOgA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.4.1_1789820050932_0.8679646583675311","host":"s3://npm-registry-packages-npm-production"}},"3.4.2":{"name":"@howells/lint","version":"3.4.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.4.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"639613911519876ce42e8f9452a3d908be4af1a0","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.4.2.tgz","fileCount":61,"integrity":"sha512-YyNDke4ie/XLqx2OkVhIwUWu1D8rrNsl2H4VzDn3z+fo1F0WVUCJpcCgExd1mIzVGv10NWv1/6Z5BmVsHpKt8A==","signatures":[{"sig":"MEUCICmWj8F1q9zENoRKYIxtKR39RfW9jPToTZqmxQN9amUcAiEAscLfcwRtv6T3OUo6fXm6pY837lBfiSqqduan7wiqys4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICBr7HMSW8d3KubAnZLezQXKWk6OBfTcJs4ItXlZrm5DAiACNRM9lspj8kMQl3pYqI5jvCOC9LDP7SqLFHPKSkUsJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":606337},"type":"commonjs","_from":"file:/tmp/howells-lint-3.4.2.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.4.2.tgz","_integrity":"sha512-YyNDke4ie/XLqx2OkVhIwUWu1D8rrNsl2H4VzDn3z+fo1F0WVUCJpcCgExd1mIzVGv10NWv1/6Z5BmVsHpKt8A==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.2.6","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.4.2_1789820774786_0.8107265584311931","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@howells/lint","version":"3.5.0","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.5.0","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ratchet":"bin/howells-ratchet.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"fa3b9db436fe6c0bd267ba798861d0751f03508e","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.5.0.tgz","fileCount":66,"integrity":"sha512-6i8ijrFEwdnOYjMIniHHH9Cni6+Kh5bR6lu5jqyK4Mc1nmrxRi8go3I5UXCcso2K3Iu0bcb0+pKoqSMF6+AtjA==","signatures":[{"sig":"MEUCIAXXCB6I2RIyZMQ9UjID0WYkYOKYPf8rUC3C3dOInbNiAiEA9nZ9QjDwBnyXvvDWRPA3GdF0ArvCarI4s34vlQXpbHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFqBMkjczZ/pW7Spb16Bc794/R9ezbhMjJtsHJ0oGVpAAiB58gqGKLa3nCBhwXkhfAAZJWE4IR4VOabsoRCGZzvqMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":646803},"type":"commonjs","_from":"file:/tmp/howells-lint-3.5.0.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.5.0.tgz","_integrity":"sha512-6i8ijrFEwdnOYjMIniHHH9Cni6+Kh5bR6lu5jqyK4Mc1nmrxRi8go3I5UXCcso2K3Iu0bcb0+pKoqSMF6+AtjA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.3.0","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.5.0_1789848407001_0.619571072181244","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"@howells/lint","version":"3.5.1","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.5.1","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ratchet":"bin/howells-ratchet.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"ea5dda1acfe2709ce3cee0c66399dcbb8dcf006c","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.5.1.tgz","fileCount":66,"integrity":"sha512-UeJebg3oxAfF/ynM+H/SVgQRLdmtM92+drZdO/wHwXLHb7FZddULWzh+KCFB9jgss94Quwylke0o9nhWNsJZDA==","signatures":[{"sig":"MEUCIBGmwuHzeMhlyOKAywLDvq3gOvmRwYgrIrE8u603eIMLAiEAvNbJgR9KvWaMQh5b1jtph1F9usUrymSm65NZCBgGHO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCpvrCnPqbyQcPHbT5b4PHSUQ51uaQ5qakHCgQoMcDFlwIhANfSnaGxssmR4C9SXs0Mst//PU1DdaOgTbk0GArVIjwy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":646813},"type":"commonjs","_from":"file:/tmp/howells-lint-3.5.1.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.5.1.tgz","_integrity":"sha512-UeJebg3oxAfF/ynM+H/SVgQRLdmtM92+drZdO/wHwXLHb7FZddULWzh+KCFB9jgss94Quwylke0o9nhWNsJZDA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.3.0","oxfmt":"0.67.0","oxlint":"1.82.0","globals":"17.12.0","ultracite":"7.11.1","oxc-parser":"0.148.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2001","oxlint-plugin-react-doctor":"0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.5.1_1789849203996_0.9458428356477817","host":"s3://npm-registry-packages-npm-production"}},"3.5.2":{"name":"@howells/lint","version":"3.5.2","keywords":[],"author":"","license":"MIT","_id":"@howells/lint@3.5.2","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"homepage":"https://github.com/howells/lint#readme","bugs":{"url":"https://github.com/howells/lint/issues"},"bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ratchet":"bin/howells-ratchet.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"dist":{"shasum":"f37ff511ac8e1ee8d4a2b38a247e412474620b60","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.5.2.tgz","fileCount":66,"integrity":"sha512-3GuVWV5GDmq8V14QbfkRB5e0BiTsCHzVBxmh90afxq1UM6mDj5ISVNINgPy3IrZ6DcP6TZ85YqmXBzOUKDXwqg==","signatures":[{"sig":"MEUCIDxhO0YTYYXLAY05kpmHiTyTmrZG6cmP5El0set6oHJYAiEAn+Wf6MJ8KiM0M4mj0s8uLNciB+5K5EyJaa2PxB13E5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA3VsTcSdIRVVUngDppmJ0aiXICFd3wb9Mt7rgImd8lyAiEAwjfNmm4nD8gm20EdOTsb8NVwEY51pCjw0MJS9AaegWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647744},"type":"commonjs","_from":"file:/tmp/howells-lint-3.5.2.tgz","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"_resolved":"/tmp/howells-lint-3.5.2.tgz","_integrity":"sha512-3GuVWV5GDmq8V14QbfkRB5e0BiTsCHzVBxmh90afxq1UM6mDj5ISVNINgPy3IrZ6DcP6TZ85YqmXBzOUKDXwqg==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"_nodeVersion":"24.15.0","dependencies":{"cn":"0.4.0","oxfmt":"0.70.0","oxlint":"1.85.0","globals":"17.12.0","ultracite":"7.12.0","oxc-parser":"0.151.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2002","oxlint-plugin-react-doctor":"0.9.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"tmp":"tmp/lint_3.5.2_1790724348194_0.6679667482293516","host":"s3://npm-registry-packages-npm-production"}},"3.5.3":{"_id":"@howells/lint@3.5.3","bin":{"howells-fix":"bin/howells-fix.mjs","howells-check":"bin/howells-check.mjs","howells-oxfmt":"bin/howells-oxfmt.mjs","howells-oxlint":"bin/howells-oxlint.mjs","howells-ratchet":"bin/howells-ratchet.mjs","howells-ultracite":"bin/howells-ultracite.mjs","howells-workspace-fix":"bin/howells-workspace-fix.mjs","howells-workspace-check":"bin/howells-workspace-check.mjs"},"bugs":{"url":"https://github.com/howells/lint/issues"},"dist":{"shasum":"1fa5bd8db2c1ac10f9d6cff2b15a85a35f553ae0","tarball":"https://registry.npmjs.org/@howells/lint/-/lint-3.5.3.tgz","fileCount":66,"integrity":"sha512-bgKK98V7Qfux87CU42yOoRWVisjg9VL5Dp68Lpmj/2Pd15p9LoKfgYZTXZx51qSDHcEjQ1cwFfSzQnEKLFIWvA==","signatures":[{"sig":"MEUCICP2Fa3RsS9ZHENrdpVz4vqyBh8o1WyEnbSVGHKS6RleAiEA8K7B4MBBVIQ/J0zcu99y0Xj6pofs/lPvYDFHb4Xzc4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDwn80pM6ZUATwH2RORkFGMrEe0+KsLy7JcwB/F+ybWyAiEA8fAyMhhjLt88TMy97R9v1qKjCgtaACV/oQXlroPMbJU="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@howells%2flint@3.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":687083},"name":"@howells/lint","type":"commonjs","_from":"file:/tmp/howells-lint-3.5.3.tgz","author":"","engines":{"node":">=24.15.0"},"exports":{"./oxfmt":{"types":"./oxfmt/index.d.mts","default":"./oxfmt/index.mjs"},"./oxlint/core":{"types":"./oxlint/core.d.mts","default":"./oxlint/core.mjs"},"./oxlint/neon":{"types":"./oxlint/neon.d.mts","default":"./oxlint/neon.mjs"},"./oxlint/next":{"types":"./oxlint/next.d.mts","default":"./oxlint/next.mjs"},"./oxlint/react":{"types":"./oxlint/react.d.mts","default":"./oxlint/react.mjs"},"./package.json":"./package.json","./oxlint/shadcn":{"types":"./oxlint/shadcn.d.mts","default":"./oxlint/shadcn.mjs"},"./oxlint/boundaries":{"types":"./oxlint/boundaries.d.mts","default":"./oxlint/boundaries.mjs"},"./oxlint/playwright":{"types":"./oxlint/playwright.d.mts","default":"./oxlint/playwright.mjs"},"./oxlint/react-doctor-rules":{"types":"./oxlint/react-doctor-rules.d.mts","default":"./oxlint/react-doctor-rules.mjs"}},"license":"MIT","scripts":{"lint":"node bin/howells-oxfmt.mjs --check . && oxlint --deny-warnings bin test oxlint oxfmt oxfmt.config.mjs","test":"node --test","prepush":"pnpm lint && pnpm test","lint:fix":"node bin/howells-oxfmt.mjs --write . && oxlint --fix bin test oxlint oxfmt oxfmt.config.mjs"},"version":"3.5.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"93bb5fc3-89f2-42c2-b19b-98c21e47df63"}},"homepage":"https://github.com/howells/lint#readme","keywords":[],"_resolved":"/tmp/howells-lint-3.5.3.tgz","_integrity":"sha512-bgKK98V7Qfux87CU42yOoRWVisjg9VL5Dp68Lpmj/2Pd15p9LoKfgYZTXZx51qSDHcEjQ1cwFfSzQnEKLFIWvA==","repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"_npmVersion":"11.12.1","description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","directories":{},"lint-staged":{"*.{js,ts,jsx,tsx,json,jsonc,css,md,mdx}":"node bin/howells-oxfmt.mjs --write"},"maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"_nodeVersion":"24.15.0","dependencies":{"cn":"0.4.0","oxfmt":"0.70.0","oxlint":"1.85.0","globals":"17.12.0","ultracite":"7.12.0","oxc-parser":"0.151.0","@manypkg/cli":"0.25.1","@howells/neon":"^0.2.0","oxlint-tsgolint":"7.0.2002","oxlint-plugin-react-doctor":"0.9.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lint-staged":"^17.5.1","@howells/husky":"^0.2.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lint_3.5.3_1790776121061_0.639526952598082"}}},"time":{"created":"2026-04-06T08:20:01.208Z","modified":"2026-09-30T13:48:41.686Z","0.1.0":"2026-04-06T08:20:01.510Z","0.1.1":"2026-04-06T10:22:02.768Z","0.1.2":"2026-04-15T11:01:59.761Z","0.1.3":"2026-04-18T09:54:36.004Z","0.1.4":"2026-05-02T09:12:34.459Z","0.1.5":"2026-05-02T09:20:44.580Z","0.1.6":"2026-05-02T16:56:03.157Z","0.1.7":"2026-05-12T19:36:28.853Z","0.1.8":"2026-05-23T12:29:11.980Z","0.2.0":"2026-05-31T12:04:33.788Z","0.2.1":"2026-06-01T10:42:01.418Z","0.2.2":"2026-06-06T11:10:02.665Z","0.2.3":"2026-06-06T11:11:13.393Z","0.2.4":"2026-06-06T11:16:18.603Z","0.2.5":"2026-06-06T11:38:42.502Z","0.2.6":"2026-06-06T11:46:50.105Z","0.2.7":"2026-06-06T12:33:27.942Z","0.2.8":"2026-06-06T15:43:27.482Z","0.2.9":"2026-06-07T14:07:39.564Z","0.3.0":"2026-06-08T10:20:38.833Z","0.3.1":"2026-06-08T10:25:31.872Z","0.3.2":"2026-06-08T10:27:44.313Z","0.4.0":"2026-06-08T10:41:11.277Z","0.4.1":"2026-06-09T12:46:12.762Z","0.5.0":"2026-06-10T00:18:42.995Z","1.0.0":"2026-07-07T11:27:51.544Z","1.1.0":"2026-07-11T11:11:06.943Z","1.1.1":"2026-07-12T09:34:33.530Z","1.1.2":"2026-07-17T08:25:20.644Z","1.2.0":"2026-08-02T23:44:42.063Z","1.2.1":"2026-08-13T10:00:41.261Z","2.0.0":"2026-08-15T09:50:41.976Z","2.1.0":"2026-08-20T14:17:11.859Z","2.2.0":"2026-08-27T15:06:11.090Z","3.0.0":"2026-09-07T10:39:47.409Z","3.1.0":"2026-09-11T14:47:53.391Z","3.2.0":"2026-09-14T23:44:39.008Z","3.2.1":"2026-09-15T06:17:28.339Z","3.2.2":"2026-09-15T06:29:42.317Z","3.2.5":"2026-09-15T08:52:31.515Z","3.3.0":"2026-09-15T11:46:30.821Z","3.3.1":"2026-09-15T15:05:59.730Z","3.3.2":"2026-09-16T06:03:44.638Z","3.3.3":"2026-09-16T10:59:12.898Z","3.3.4":"2026-09-17T08:54:45.105Z","3.3.5":"2026-09-18T14:32:55.820Z","3.4.0":"2026-09-19T12:00:26.784Z","3.4.1":"2026-09-19T12:14:11.065Z","3.4.2":"2026-09-19T12:26:14.944Z","3.5.0":"2026-09-19T20:06:47.099Z","3.5.1":"2026-09-19T20:20:04.092Z","3.5.2":"2026-09-29T23:25:48.304Z","3.5.3":"2026-09-30T13:48:41.186Z"},"bugs":{"url":"https://github.com/howells/lint/issues"},"license":"MIT","homepage":"https://github.com/howells/lint#readme","keywords":[],"repository":{"url":"git+https://github.com/howells/lint.git","type":"git"},"description":"Pinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.","maintainers":[{"name":"danielhowells","email":"daniel@danielhowells.com"}],"readme":"# `@howells/lint`\n\nPinned Oxlint/Oxfmt, Ultracite, and React Doctor presets for Howells projects.\n\nThe goal is not to invent a second lint philosophy. The goal is to:\n\n- pin a single `oxlint` version\n- pin a single `oxfmt` version\n- pin a single `ultracite` version\n- pin React Doctor's Oxlint plugin for React and Next.js projects on the Oxlint/Oxfmt lane\n- pin a single `@manypkg/cli` version for monorepo consistency checks\n- give every consumer the same small preset matrix\n- discourage repo-local overrides unless the project has a genuinely unique constraint\n\nOxlint/Oxfmt is the only toolchain. The Biome lane was removed in 2.0.0 - see `MIGRATIONS.md`. A project that still needs Biome presets stays on 1.x, which keeps working; it does not get new policy.\n\n## Agent Setup Checklist\n\nWhen configuring a project, do this in order:\n\n1. Require Node 24.15.0+ and pnpm in the root `package.json`, and pin `.node-version` to `24.15.0`.\n2. Install only `@howells/lint` as the direct lint dependency.\n3. Add `oxlint.config.ts` and `oxfmt.config.ts` that extend the closest Oxlint/Oxfmt presets.\n4. Add read-only `lint` and mutating `lint:fix` scripts.\n5. If the project is a monorepo, add root workspace scripts that run `howells-workspace-check`.\n6. Verify with `pnpm lint`.\n\nThe `howells-lint` agent skill in [`skills/howells-lint`](skills/howells-lint/SKILL.md) walks an agent through this setup and adds a ratchet when a backlog appears:\n\n```bash\nnpx skills@latest add howells/lint --skill howells-lint --global\n```\n\n## Requirements\n\nAll projects using this package should declare the runtime and package manager explicitly:\n\n```json\n{\n  \"packageManager\": \"pnpm@11.5.2\",\n  \"engines\": {\n    \"node\": \">=24.15.0\"\n  }\n}\n```\n\nAlso add a root `.node-version` file:\n\n```text\n24.15.0\n```\n\nInstall the shared tooling:\n\n```bash\npnpm add -D @howells/lint\n```\n\nDo not add `oxlint`, `oxfmt`, `oxlint-tsgolint`, `ultracite`, `oxlint-plugin-react-doctor`, or `@manypkg/cli` directly unless you are developing this package itself. They are pinned transitively here.\n\n## Oxlint/Oxfmt Presets\n\nUse these presets for every Howells JavaScript and TypeScript project. React and Next presets stack the relevant Ultracite Ox rules with [React Doctor](https://react.doctor) rules in one config.\n\nVersion 3 removes the GitHub and SonarJS plugins and their legacy TypeScript dependency. Type-aware checking runs through native oxlint-tsgolint. See [MIGRATIONS.md](./MIGRATIONS.md) for the deliberate coverage changes.\n\nReact Doctor and native Oxlint Next.js rules now arrive through Ultracite's React and Next presets, which register the React Doctor plugin and enable its rules at error severity. `@howells/lint` adds canonical Howells policy on top for file naming, barrel files, env access, workspace boundaries, file size, function size, complexity, and tests.\n\nThe core Oxlint preset enables type-aware linting and native Oxlint rules that keep code files navigable: `max-lines` errors above 600 non-comment, non-blank lines; `max-lines-per-function` warns above 120 non-comment, non-blank lines; `max-statements` warns above 45 statements per function; and `complexity` warns above cyclomatic complexity 15. It also rejects runtime `import()` expressions, including literal specifiers, so package loading stays statically traceable. Test files keep the file-level `max-lines` guard but disable function-size, statement-count, and complexity limits, because test framework callbacks naturally wrap many independent cases. Generated files should be ignored at the project level; rare intentional exceptions should use an exact-file override with a short refactor note.\n\nThe core preset carries two further Ultracite rule sets, so React, Next, and Playwright inherit them. [anti-slop](https://github.com/dmmulroy/anti-slop) rejects the low-evidence TypeScript that turns up when code is written fast: type assertions with no stated reason, `unknown` in parameters and returns, `Reflect.get`/`Reflect.apply` property access, module mocking, widen-then-assert. Ultracite vendors a bundled build of it, so nothing extra is installed. Ultracite's Vitest rules cover test files - roughly 60 rules scoped to `*.test.*`, `*.spec.*`, and `__tests__` - replacing the dozen this package used to hand-roll.\n\nCore, React, Next, and Playwright presets also enforce the default Howells workspace convention: apps live under `apps/*`, shared packages live under `packages/*`, packages must not import apps, and apps must not import sibling apps. The rule is intentionally narrow and does not infer boundary meaning from other workspace folder names.\n\nReact and Next presets also reject generic component suffixes that tend to hide responsibility: `wrapper`, `client`, `page`, `component`, `container`, and `manager`. The rule checks `.jsx` and `.tsx` filenames and PascalCase component declarations. It allows real Next App Router `app/**/page.tsx` files and their conventional `Page` export.\n\nNext presets reject App Router pages that only pass through to one imported client component. Route pages should keep server composition, data loading, and route-level structure in the page, then push only the interactive leaves behind a client boundary.\n\nAn opt-in `howells/no-raw-jsx-elements` rule bans raw lowercase JSX host elements (`<div>`, `<span>`, `<button>`, …) so application markup renders only design-system components. It is deliberately generic — the diagnostic carries no project-specific component names — so any project can point it at its own component vocabulary. It is **not** enabled by any preset, because banning every host element is a strong, project-specific choice that would break most consumers. The `howells` plugin is already loaded by every Oxlint preset (via `jsPlugins`), so a project turns the rule on by adding it to their own config and listing sanctioned host tags (for example the Next root shell's `html` and `body`) in the `allow` option. Uppercase components, member expressions (`Foo.Bar`), namespaced names, and fragments are always left alone.\n\n```ts\nimport next from \"@howells/lint/oxlint/next\";\n\nexport default {\n  extends: [next],\n  rules: {\n    \"howells/no-raw-jsx-elements\": [\"error\", { allow: [\"html\", \"body\"] }],\n  },\n};\n```\n\nAn opt-in `howells/no-raw-type-utilities` rule bans Tailwind **typographic** utilities in class strings **unless** they are sanctioned via the `allow` option — so type is styled only through a project's own design-system type classes. It is deliberately generic: it carries no project token table, and both what it governs and what it permits are supplied as params. It scans class strings with real AST scoping — `className`/`class` attributes, `cn`/`cx`/`clsx`/`cva`/`tv`/`twMerge`/`twJoin`/`classNames` call arguments, and `Record<*Size, string>` size-ladder objects — so it never fires on a same-spelled word in a comment, a JSDoc `@example`, or an unrelated string prop (a Radix `value=\"italic\"` is untouched).\n\n- `allow` — glob patterns (`*` wildcard) for the sanctioned classes (your design-system type tokens, plus whatever weights/leading/etc. you permit). Everything else in the governed namespace is reported.\n- `match` — glob patterns for the governed namespace. Defaults to standard Tailwind typography (`text-<size>`, arbitrary `text-[…]`, v4's `text-(length:…)` shorthand, `font-*`, `leading-*`, `tracking-*`, `uppercase`/`lowercase`/`capitalize`/`normal-case`, `italic`). Colour (`text-[#…]`), alignment (`text-center`), and wrapping (`text-balance`) are **not** governed by default; add them to `match` if you want them policed too.\n- Arbitrary sizes (`text-[13px]`) are governed like any other size, and get their own message: use the nearest step on the scale, or add a named step to `@theme`, so the value has a name the next file can reuse. The escape hatch stays open via `allow` for a value that genuinely has no name.\n- An arbitrary value is governed only where it reads as a length. `text-[13px]` and `text-[length:var(--x)]` report; `text-[#ec4899]` and `text-[oklch(0.7_0.1_20)]` do not, even with `text-*` in `match`, because a colour is not a typographic value. Colour in brackets belongs to `shadcn/no-arbitrary-values`, which the React and Next presets already enable, and the raw palette (`text-gray-500`, `border-slate-200`) to `shadcn/no-raw-colors`. Reach for those rather than widening `match` to cover colour.\n- A size is governed however it is written. The important marker in all three positions Tailwind allows (`!text-xl`, `hover:!text-xl`, `text-xl!`) and a leading modifier (`text-sm/6`, `text-[13px]/1.5`) are stripped before matching, so each reports as the bare utility. Splitting happens at depth zero counting both brackets and parentheses, so `text-[calc(1rem/2)]` stays whole and v4's `text-(length:--my-size)` shorthand is governed as the size it is.\n\n```ts\nimport react from \"@howells/lint/oxlint/react\";\n\nexport default {\n  extends: [react],\n  rules: {\n    \"howells/no-raw-type-utilities\": [\n      \"error\",\n      {\n        // The ONLY typographic classes this project permits — everything else\n        // in the default namespace (raw text-*, un-listed font weights, …) errors.\n        allow: [\n          \"text-caption\",\n          \"text-paragraph*\",\n          \"text-subheading*\",\n          \"text-heading*\",\n          \"text-title\",\n          \"text-2xs\",\n          \"text-eyebrow\",\n          \"font-normal\",\n          \"font-medium\",\n          \"font-semibold\",\n          \"font-mono\",\n        ],\n      },\n    ],\n  },\n};\n```\n\nSix further opt-in `howells/*` rules each replace a hand-rolled script in a consumer repo. None is enabled by a preset, and none carries a project's strings in a default: the governed namespace, utilities, tokens, helpers and directories are all parameters. The `howells` plugin is loaded by every preset through `jsPlugins`, so a consumer adds only the rule entry.\n\n- `howells/no-raw-motion-namespace` bans the full animation namespace (`motion.*`) so components render the lazy `m.*` primitives, which is what keeps the animation engine out of every consumer's bundle. It matches a JSX member name (`<motion.div>`), a member expression called as a function (`motion.create(...)`), and a `typeof` type query (`typeof motion.button`). Hooks and providers (`useScroll`, `AnimatePresence`, …) are bare identifiers, never members of the namespace, so they are untouched without an allow-list, and the namespace's name in a comment or a string is not a finding. Options: `namespace` (default `motion`), `replacement` (default `m`), `allowIn` for the paths that own the namespace. A path glob takes `**/` for any number of directories and `*` within one segment, so `**/*.stories.tsx` and `**/motion-config*` both work.\n- `howells/no-avoidable-arbitrary-spacing` reports an arbitrary spacing value only where it lands on a clean step of the scale and so has an exact standard equivalent: Tailwind v4 generates spacing from `--spacing`, so `w-[320px]` is `w-80`. `w-[13px]` is not on a step, has nothing to convert to, and stays quiet. Options: `utilities` (the spacing family), `step` (default `0.25`rem), `allowHalfSteps` (default `true`). A CSS variable, a `calc()`, a viewport unit, an arbitrary variant and every non-spacing scale are outside the rule.\n- `howells/design-token-alpha` pins a utility that mirrors a design token inline to the token's alpha, so an inline mirror cannot drift below the contrast the token was raised to. The match is anchored to a whole utility at both ends, so a different shade (`ring-gray-400/30`) and a longer utility containing the same text (`ring-offset-gray-500/30`) both stay quiet. Options: `tokens` as `{ utility, alpha }` pins, and `requireAlphaSuffix` to also report a bare token with no alpha.\n- `howells/transition-after-focus-helper` reports an unprefixed `transition-*` literal written before a helper that emits its own transition value in the same merge call. tailwind-merge keeps the last class in a conflicting group, so the helper's narrower `transition-[…]` silently deletes the earlier explicit list; the sanctioned order is helper first, superset after. Variant-prefixed tokens (`hover:transition-colors`) are a different group and never match, a nested merge call is its own scope, and a helper named in a comment is not a call. Options: `mergeFunctions` (default `[\"cn\"]`), `helpers` (required), `conflictPrefix` (default `transition`).\n- `howells/no-deep-package-imports` keeps a consumer on the flat shim a package publishes rather than its internal file layout, across imports, re-exports, `import()` and `require()`. It reads the target package's own `exports` map, so a subpath the package declares literally is public by the package's own account and is never reported; a wildcard pattern is deliberately not a declaration, since it would match every depth. Options: `prefixes` as `{ prefix, depth, allow }`.\n- `howells/no-raw-colour-in-class-strings` bans a raw colour value inside a bracketed arbitrary class value: hex in all three lengths, `oklch`/`oklab`/`lch`/`lab`/`color`, and `rgb`/`rgba`/`hsl`/`hsla`. A colour written there is invisible to the theme, so it does not answer a mode switch, cannot be retuned centrally, and is not audited for contrast. A `var(--token)` reference inside the brackets is the sanctioned escape and is never reported, and a length (`w-[13px]`) is another rule's business. Options: `functions` (default `[\"cn\"]`), `allowFunctions` (default `[\"var\"]`), `allowIn`.\n- `howells/no-out-of-bounds-package-imports` confines a dependency namespace to the one directory that owns it, which re-exports what the rest of the workspace needs. Options: `packages` (exact names, or a `*`-suffixed prefix such as `@mastra/*`) and `within` (the owning directories, matched at any depth). With either list empty the rule reports nothing, so a half-configured rule is inert rather than repo-wide.\n\n```ts\nimport react from \"@howells/lint/oxlint/react\";\n\nexport default {\n  extends: [react],\n  rules: {\n    \"howells/no-raw-motion-namespace\": [\n      \"error\",\n      { allowIn: [\"motion-config\", \"motion-tokens\"] },\n    ],\n    \"howells/no-avoidable-arbitrary-spacing\": \"error\",\n    \"howells/design-token-alpha\": [\n      \"error\",\n      { tokens: [{ utility: \"ring-gray-500\", alpha: 80 }] },\n    ],\n    \"howells/transition-after-focus-helper\": [\n      \"error\",\n      { helpers: [\"focusInput\", \"focusRing\"] },\n    ],\n    \"howells/no-deep-package-imports\": [\n      \"error\",\n      { prefixes: [{ prefix: \"@acme/ui/components\", depth: 1 }] },\n    ],\n    \"howells/no-raw-colour-in-class-strings\": [\n      \"error\",\n      { allowIn: [\"**/*.stories.tsx\"] },\n    ],\n    \"howells/no-out-of-bounds-package-imports\": [\n      \"error\",\n      { packages: [\"@mastra/*\", \"mastra\"], within: [\"packages/mastra\"] },\n    ],\n  },\n};\n```\n\nThe React and Next presets carry [`@shadcn/lint`](https://github.com/shadcn-ui/lint), an agent-first linter for Tailwind design systems, from a copy vendored in this package so ESLint is never installed. Its diagnostics name the fix from the project's own code: a `p-4` on a Button reports the sizes that Button declares and the file they live in. It reads `components.json` for a project's components and theme, and works without shadcn/ui.\n\nTwo of its six rules are enabled, because neither needs project configuration:\n\n- `shadcn/no-arbitrary-values` **warns** about an off-token value such as `p-[13px]` and names the scale value that matches. It warns rather than errors because what survives its allowances needs a judgement call, so at error severity it would gate every upgrade; `howells-check` prints it and exits 0. Raise it to `error`, or add `--deny-warnings` in CI, in a repo whose design system is tight enough to hold it. A bracket holding one CSS variable reference is exempt, with or without a Tailwind type hint, because `text-[var(--cs-text)]` and `text-[length:var(--cs-small)]` read a design token rather than hardcoding a value. A value that merely contains a variable, such as `shadow-[0_0_0_1px_var(--cs-border)]`, still reports. Layout values are allowed, because a reading measure, a grid track or a fluid offset has no token to move to; appearance keeps every check. A repo that wants arbitrary widths policed again drops `layout` from the allow list in its own config.\n- `shadcn/require-static-classes` rejects a `className` the linter cannot read, such as `` `mt-${size}` ``. A `cn(\"mt-2\", active && \"w-full\")` call is readable and passes.\n\nBoth report a malformed class rather than a disallowed one, so both stay silent in a project without Tailwind.\n\nThe other four are opt-in, because each one enforces a policy only the project holds. Add them to your own config:\n\n- `shadcn/no-restyle` is the rule the plugin exists for: it decides which classes a call site may put on a component. With no `contracts` it reports every existing override at once, so adopt it per component, and pair it with `componentSourceOverride` so components can still style their own internals. The override also turns off `require-static-classes` there: a wrapper that forwards `...rest` after destructuring `className` out trips the rule, which cannot see the destructure, and that is the shape of every component in a design-system directory.\n- `shadcn/no-inline-styles` bans inline styles and hardcoded colours in custom properties. It reports Motion's `style={{ y }}`, so a project using Motion names its exceptions in `allow`.\n- `shadcn/no-unknown-classes` reports a class Tailwind cannot generate. It reads any hand-written class name as a misspelling, so enable it only where Tailwind is the whole styling story.\n- `shadcn/no-raw-colors` reports the raw palette (`bg-pink-500`) and suggests the project's own theme colours.\n\n```ts\nimport next from \"@howells/lint/oxlint/next\";\nimport { componentSourceOverride } from \"@howells/lint/oxlint/shadcn\";\n\nexport default {\n  extends: [next],\n  rules: {\n    \"shadcn/no-restyle\": [\n      \"error\",\n      {\n        allow: [\"layout\"],\n        contracts: [{ pattern: \"^Button$\", allow: [\"w-full\", \"mt-*\", \"mb-*\"] }],\n      },\n    ],\n    \"shadcn/no-raw-colors\": \"error\",\n  },\n  overrides: [componentSourceOverride([\"components/ui/**\"])],\n};\n```\n\nOxlint reads `settings` from the root config only and does not merge it through `extends`, so a repo whose components resolve through a workspace alias rather than a local `components.json` declares them itself:\n\n```ts\nsettings: { shadcn: { ui: \"@workspace/ui/components\" } },\n```\n\nThe same block names a class-merging helper the plugin does not already know. It recognises `cn`, `clsx`, `classNames`, `twMerge` and `cva`; a repo with its own wrapper has to say so, or `shadcn/require-static-classes` reports every call as a className it cannot read:\n\n```ts\nsettings: { shadcn: { mergeFunctions: [\"joinClassNames\"] } },\n```\n\n`variantFunctions` does the same for a `cva` wrapper, and `componentImports` and `ignoreImports` for component recognition. All four are equally valid as a rule option, which is the spelling to reach for when only one rule should see them.\n\nSee [the plugin's rule documentation](https://github.com/shadcn-ui/lint/blob/main/docs/rules.md) for contracts, custom messages, and message placeholders, and [ADR 0005](./docs/adr/0005-vendor-the-shadcn-design-system-rules.md) for why the rules split this way.\n\nPlaywright support adds the recommended `eslint-plugin-playwright` rules through Oxlint, from a copy vendored in this package so ESLint is never installed, and promotes brittle E2E patterns to errors, including `playwright/no-wait-for-timeout`, `playwright/no-force-option`, `playwright/no-element-handle`, and `playwright/prefer-web-first-assertions`. Use the Playwright export as an overlay for app-level E2E tests, or as a standalone preset for dedicated E2E packages.\n\nThe Playwright export also turns Ultracite's Vitest rules off across the lane it governs, because a Playwright spec is not a Vitest file. Ultracite scopes those rules to `*.test.*`, `*.spec.*`, and `__tests__`, which is how Playwright specs are named under either convention, so they apply to E2E tests and lint them against a runner that is not there. `vitest/prefer-importing-vitest-globals` is the one that bites: it matches the names `expect` and `test` rather than the import source, so it fires on a correctly imported Playwright `expect` and no call site can satisfy it.\n\nThe exemption is scoped by path: a Vitest test outside the Playwright globs keeps every one of those rules.\n\nChoose the closest preset:\n\n- `@howells/lint/oxlint/core` for Node or non-React TypeScript\n- `@howells/lint/oxlint/react` for React (Ultracite React plus React Doctor's general rules)\n- `@howells/lint/oxlint/next` for Next.js (react preset + Ultracite Next plus React Doctor's Next.js rules, which only this preset enables)\n- `@howells/lint/oxlint/playwright` as an overlay for Playwright E2E tests or as a preset for dedicated E2E packages\n- `@howells/lint/oxlint/boundaries` for composing only the default workspace boundary rule into custom configs\n- `@howells/lint/oxlint/react-doctor-rules` for composing or disabling React Doctor rules in mixed workspaces\n- `@howells/lint/oxlint/shadcn` for composing the shadcn design-system rules into custom configs, and for `componentSourceOverride`\n\nNode or non-React TypeScript:\n\n```ts\nimport core from \"@howells/lint/oxlint/core\";\n\nexport default {\n  extends: [core],\n};\n```\n\nReact package:\n\n```ts\nimport react from \"@howells/lint/oxlint/react\";\n\nexport default {\n  extends: [react],\n};\n```\n\nNext.js app:\n\n```ts\nimport next from \"@howells/lint/oxlint/next\";\n\nexport default {\n  extends: [next],\n};\n```\n\nNext.js app with Playwright E2E tests:\n\n```ts\nimport next from \"@howells/lint/oxlint/next\";\nimport {\n  playwrightJsPlugins,\n  playwrightOverride,\n} from \"@howells/lint/oxlint/playwright\";\n\nexport default {\n  extends: [next],\n  jsPlugins: playwrightJsPlugins,\n  overrides: [\n    playwrightOverride([\"**/*.spec.ts\", \"**/*.e2e.ts\", \"tests/**/*.{ts,tsx}\"]),\n  ],\n};\n```\n\n`playwrightOverride` returns a complete override entry: the Playwright rules, the Vitest rules off, and `plugins: [\"vitest\"]`. That last part is load-bearing and easy to lose. Oxlint resolves a rule entry against the plugin set in scope at that point, and `vitest` is not in the core preset's top-level `plugins` — Ultracite enables it inside its own override. An entry that says `\"vitest/consistent-test-filename\": \"off\"` without naming the plugin is discarded in silence, at top level and in an override alike. Compose the pieces yourself with `playwrightRules`, `vitestRulesOff`, and `playwrightPlugins` if you need to, but keep all three together.\n\nDedicated Playwright E2E package:\n\n```ts\nimport playwright from \"@howells/lint/oxlint/playwright\";\n\nexport default {\n  extends: [playwright],\n};\n```\n\nCustom boundary-only config:\n\n```ts\nimport {\n  boundaryJsPlugins,\n  boundaryRules,\n  boundarySettings,\n} from \"@howells/lint/oxlint/boundaries\";\n\nexport default {\n  jsPlugins: boundaryJsPlugins,\n  settings: boundarySettings,\n  rules: boundaryRules,\n};\n```\n\nBoundary rules are already part of the core, React, Next, and Playwright presets. Use the boundary-only export only when building a custom Oxlint config that cannot extend the standard presets.\n\nMixed monorepo with a Next.js app and Node-only packages:\n\n```ts\nimport next from \"@howells/lint/oxlint/next\";\nimport { disabledReactDoctorRules } from \"@howells/lint/oxlint/react-doctor-rules\";\n\nexport default {\n  extends: [next],\n  overrides: [\n    {\n      files: [\"packages/**/*.ts\"],\n      rules: disabledReactDoctorRules,\n    },\n  ],\n};\n```\n\nCreate an `oxfmt.config.ts`:\n\n```ts\nimport howells from \"@howells/lint/oxfmt\";\n\nexport default howells;\n```\n\nThe package binaries discover `oxfmt.config.*` from the current directory up through its parents and pass it to Oxfmt explicitly. If a project has no Oxfmt config, they use the packaged Howells preset directly. An explicit `--config`/`-c` flag passed to `howells-oxfmt` always wins; `howells-check` and `howells-fix` reserve their config flag for Oxlint and discover the Oxfmt config automatically.\n\nOxlint type-aware mode is enabled by the shared core preset through the pinned `oxlint-tsgolint` dependency. Projects choosing the Oxlint/Oxfmt lane should be ready for Oxlint's TypeScript type-aware constraints.\n\nDuring migration only, a project may temporarily disable type-aware mode:\n\n```ts\nimport core from \"@howells/lint/oxlint/core\";\n\nexport default {\n  extends: [core],\n  options: {\n    typeAware: false,\n  },\n};\n```\n\nTreat this as a migration exception with a removal path, not as a normal project preference.\n\n## Package Scripts\n\n```json\n{\n  \"scripts\": {\n    \"lint\": \"howells-check .\",\n    \"lint:fix\": \"howells-fix .\"\n  }\n}\n```\n\nThere is no separate `lint:strict`; React Doctor, type-aware Oxlint, workspace boundaries, and Playwright overlays belong in the normal check.\n\nKeep `lint` non-mutating. Put all write behavior in `lint:fix` or `format` so CI and local checks have the same semantics.\n\nPrefer the package binaries over raw tool commands or long target lists. Use explicit script targets only when the package has a real scope constraint:\n\n```json\n{\n  \"scripts\": {\n    \"lint\": \"howells-check apps/web packages/ui\",\n    \"lint:fix\": \"howells-fix apps/web packages/ui\"\n  }\n}\n```\n\nUse `howells-fix --unsafe .` only when you deliberately want Oxlint's dangerous fixes.\n\n## Monorepo Roots\n\nUse workspace lint only at the monorepo root. Do not add `howells-workspace-check` to individual packages, and do not add it to single-package apps.\n\nA monorepo root should have:\n\n```json\n{\n  \"packageManager\": \"pnpm@11.5.2\",\n  \"engines\": {\n    \"node\": \">=24.15.0\"\n  },\n  \"scripts\": {\n    \"lint\": \"turbo run lint && howells-workspace-check\",\n    \"lint:fix\": \"turbo run lint:fix && howells-workspace-fix\",\n    \"check\": \"pnpm lint && pnpm typecheck && pnpm test\"\n  },\n  \"devDependencies\": {\n    \"@howells/lint\": \"^3.3.1\"\n  }\n}\n```\n\n`howells-workspace-check` validates that the root declares `packageManager: \"pnpm@...\"`, requires Node 24.15.0+ in `engines.node`, pins `.node-version` to `24.15.0`, keeps `pnpm-workspace.yaml` present when workspace package directories exist, and passes `manypkg check`.\n\nA gate should call `pnpm lint` or `pnpm prepush` so root workspace lint is not bypassed by a direct `turbo lint` command.\n\nGive the Turbo `lint` task the same build dependency as `typecheck` when workspace packages import each other through built output:\n\n```json\n{\n  \"tasks\": {\n    \"lint\": { \"dependsOn\": [\"^build\"] },\n    \"typecheck\": { \"dependsOn\": [\"^build\"] }\n  }\n}\n```\n\nType-aware linting is on by default, and it resolves a sibling package's types from what that package exports. When those exports point at `dist`, a lint task with no build dependency runs against packages that have not been built. On a clean clone that reports errors that are not in the code. On a developer machine it passes, because an earlier build left `dist` behind, so the gap shows up first in CI or on a fresh checkout. Measured in one monorepo: `pnpm lint` alone reported four errors that `pnpm prepush` did not, because `prepush` ran typecheck, and therefore the builds, first. A package whose exports point at source files needs no build step and no dependency.\n\n## Binaries\n\nInstallers only need `@howells/lint` as a direct dependency. Use these package binaries:\n\n- `howells-ultracite` proxies to the pinned Ultracite binary\n- `howells-check` runs both `oxfmt --check` and `oxlint`, discovers the project Oxfmt config or uses the packaged preset, reports both results in one pass, and fails if either fails\n- `howells-fix` runs `oxfmt --write`, then `oxlint --fix`, with the same Oxfmt config discovery and combined failure reporting\n- `howells-oxlint` proxies to the pinned Oxlint binary\n- `howells-oxfmt` proxies to the pinned Oxfmt binary with project-config discovery and packaged-preset fallback\n- `howells-workspace-check` runs workspace lint, then runs `manypkg check`\n- `howells-workspace-fix` runs `manypkg fix`\n- `howells-ratchet` gates Oxlint finding counts against a committed `lint-baseline.json`, which may fall but never rise, for a repo whose backlog is too large for `pnpm lint` to be the push gate yet. `docs/lint-ratchet.md` covers the baseline shape, the unit discovery, and migrating a hand-copied ratchet script\n\n`howells-check`, `howells-fix` and `howells-oxlint` discover `oxlint.config.*` upward from the working directory, and pass `--config` only for a spelling Oxlint ignores. Oxlint finds `oxlint.config.ts` and `oxlint.config.mts` on its own and handles a nested config per directory; it ignores `oxlint.config.cts`, `.js`, `.mjs` and `.cjs`, and a project writing one of those linted on Oxlint's defaults with no preset, no plugins and no rules, quietly and exiting 0. Prefer `oxlint.config.ts`: the flag pins one config for the whole run, which overrides a nested config belonging to a package, and the run says so until the file is renamed.\n\n`howells-check` and `howells-fix` forward flags to Oxlint. Known value-taking flags work in both forms, so `howells-check --config oxlint.config.ts src` and `howells-check --config=oxlint.config.ts src` are equivalent; bare arguments are treated as lint targets.\n\nDon't use `-D`/`--deny` to find out whether a rule exists. Oxlint ignores an unknown rule name on the command line without a word: `howells-oxlint -D totally/invented-rule src` exits 0 and still reports everything else, so a sweep that \"passes\" proves nothing about the rule you named. The same name in a config file is a hard start-up failure, `Plugin 'totally' not found` or `Rule '...' not found in plugin 'howells'`, and nothing lints until it is fixed. Check a rule by putting it in a config and watching it fail, or by running it against a file that should trip it.\n\n## Rules\n\n- Do not add local overrides just to preserve old ESLint behavior.\n- Do not create local `base`, `shared`, or `custom` preset wrappers.\n- If multiple repos need the same exception, add or adjust a preset here.\n- If a repo needs framework-specific linting, choose the matching preset instead of layering rules manually.\n- Prefer inline `oxlint-disable-next-line` comments for truly isolated exceptions over broad config overrides.\n- Keep package `lint` scripts read-only; use `lint:fix` for formatting and safe writes.\n- Prefer `howells-check .` over raw tool commands or long target lists unless a package has a real scope constraint.\n\n## Claude Code Hooks\n\nAdd this to `.claude/settings.json` so files are fixed on edit and at session end:\n\n```json\n{\n  \"hooks\": {\n    \"PostToolUse\": [\n      {\n        \"matcher\": \"Edit|Write\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"jq -r '.tool_input.file_path' | { read file_path; case \\\"$file_path\\\" in *.js|*.ts|*.jsx|*.tsx|*.json|*.jsonc|*.css|*.graphql) howells-fix \\\"$file_path\\\" 2>/dev/null || true ;; esac; }\"\n          }\n        ]\n      }\n    ],\n    \"Stop\": [\n      {\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"git diff --name-only --diff-filter=d HEAD | grep -E '\\\\.(js|ts|jsx|tsx|json|jsonc|css|graphql)$' | xargs howells-fix 2>/dev/null || true\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n## Upstream\n\nThis package wraps:\n\n- [Oxlint configuration docs](https://oxc.rs/docs/guide/usage/linter/config-file-reference.html)\n- [Oxfmt configuration docs](https://oxc.rs/docs/guide/usage/formatter/config-file-reference)\n- [Ultracite configuration docs](https://www.ultracite.ai/configuration)\n- [React Doctor docs](https://react.doctor/docs)\n- [`@shadcn/lint` docs](https://github.com/shadcn-ui/lint/blob/main/docs/README.md)\n","readmeFilename":"README.md"}