diff --git a/eslint.config.js b/eslint.config.js index 76b67ef..f4eda60 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,5 +1,16 @@ import doob from '@do-ob/eslint-config'; +import reactCompiler from 'eslint-plugin-react-compiler'; export default [ ...doob.configs.recommended, + + { + plugins: { + 'react-compiler': reactCompiler, + }, + rules: { + ...reactCompiler.rules.recommended, + 'react-compiler/react-compiler': 'error', + }, + }, ]; diff --git a/package.json b/package.json index d75d7d6..90b4a7e 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,7 @@ "autoprefixer": "^10.4.19", "cssnano": "^7.0.2", "eslint": "^9.2.0", + "eslint-plugin-react-compiler": "0.0.0-experimental-51a85ea-20240601", "framer-motion": "^11.2.10", "postcss": "^8.4.38", "react": "18.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4b8b23..0f6fe76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: eslint: specifier: ^9.2.0 version: 9.4.0 + eslint-plugin-react-compiler: + specifier: 0.0.0-experimental-51a85ea-20240601 + version: 0.0.0-experimental-51a85ea-20240601(eslint@9.4.0) framer-motion: specifier: ^11.2.10 version: 11.2.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -293,6 +296,13 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -3643,6 +3653,12 @@ packages: engines: {node: '>=6.0'} hasBin: true + eslint-plugin-react-compiler@0.0.0-experimental-51a85ea-20240601: + resolution: {integrity: sha512-ROiKTVu9pZsNHyJepZj/JULWnkw8+I8+9gOF/MkJ8Q22/9f9MkPQkD2f6FXzVH+iyWbp7DQ3RXKhB3hWhf8AIg==} + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + peerDependencies: + eslint: '>=7' + eslint-plugin-tailwindcss@3.17.3: resolution: {integrity: sha512-DVMVVUFQ+lPraRSuUk2I41XMnusXT6b3WaQZYlUHduULnERaqe9sNfmpRY1IyxlzmKoQxSbZ8IHRhl9ePo8PeA==} engines: {node: '>=18.12.0'} @@ -3994,6 +4010,12 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + hermes-estree@0.20.1: + resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==} + + hermes-parser@0.20.1: + resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6004,6 +6026,15 @@ packages: engines: {node: '>=8.0.0'} hasBin: true + zod-validation-error@3.3.0: + resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + snapshots: '@adobe/css-tools@4.4.0': {} @@ -6242,6 +6273,14 @@ snapshots: '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.7)': + dependencies: + '@babel/core': 7.24.7 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-plugin-utils': 7.24.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -12226,6 +12265,18 @@ snapshots: optionalDependencies: source-map: 0.6.1 + eslint-plugin-react-compiler@0.0.0-experimental-51a85ea-20240601(eslint@9.4.0): + dependencies: + '@babel/core': 7.24.7 + '@babel/parser': 7.24.7 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.24.7) + eslint: 9.4.0 + hermes-parser: 0.20.1 + zod: 3.23.8 + zod-validation-error: 3.3.0(zod@3.23.8) + transitivePeerDependencies: + - supports-color + eslint-plugin-tailwindcss@3.17.3(tailwindcss@3.4.4): dependencies: fast-glob: 3.3.2 @@ -12669,6 +12720,12 @@ snapshots: he@1.2.0: {} + hermes-estree@0.20.1: {} + + hermes-parser@0.20.1: + dependencies: + hermes-estree: 0.20.1 + hosted-git-info@2.8.9: {} html-tags@3.3.1: {} @@ -14630,3 +14687,9 @@ snapshots: validator: 13.12.0 optionalDependencies: commander: 9.5.0 + + zod-validation-error@3.3.0(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod@3.23.8: {}