{"_id":"eslint-plugin-react-no-manual-memo","_rev":"6-807ab92cd6deb18bf79928bbc3199c89","name":"eslint-plugin-react-no-manual-memo","dist-tags":{"latest":"1.0.4"},"versions":{"0.0.1":{"name":"eslint-plugin-react-no-manual-memo","version":"0.0.1","author":{"name":"BellCube"},"license":"MIT","_id":"eslint-plugin-react-no-manual-memo@0.0.1","maintainers":[{"name":"bellcubedev","email":"zacharyc.public@gmail.com"}],"homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"dist":{"shasum":"1f95698b2ce8a6564b38cd684f419df5fe2adc8f","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-0.0.1.tgz","fileCount":70,"integrity":"sha512-kufdknAI+0H257Z2ZtDeYQudkaczSCIvtYR7D+Vfb54/yGNRECDEib8CYlOOU2jLt+l9snWit0FucvH2wp/POQ==","signatures":[{"sig":"MEUCIELlGPEolrTxirwUiVEPsBPAGce0uisLLdprHYuwx88CAiEA6BFi7WfwuI1zOt3X0nLaK/HapIus3F7U+tVKLU8tVk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":478324},"main":"build/legacy/index.cjs","type":"module","_from":"file:eslint-plugin-react-no-manual-memo-0.0.1.tgz","types":"build/legacy/index.d.ts","module":"build/legacy/index.js","exports":{".":{"import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"},"@tanstack/custom-condition":"./src/index.ts"},"./package.json":"./package.json"},"scripts":{"lint":"eslint && pnpm run eslint-docs-generator --check","test":"pnpm run /^test:[^:]+$/","build":"tsup --tsconfig tsconfig.prod.json","clean":"premove ./dist ./coverage ./dist-ts","docgen":"eslint-doc-generator","compile":"tsc --build","test:lib":"vitest","preinstall":"node -e \"if(process.env.CI == 'true') {console.log('Skipping preinstall...')} else {process.exit(1)}\" || npx -y only-allow pnpm","test:build":"pnpm run build && publint --strict && attw --pack","test:types":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","docgen:check":"eslint-doc-generator --check","test:lib:dev":"pnpm run test:lib --watch"},"_npmUser":{"name":"bellcubedev","email":"zacharyc.public@gmail.com"},"_resolved":"/tmp/5be2ea06944e894571c5c59b80a862f1/eslint-plugin-react-no-manual-memo-0.0.1.tgz","_integrity":"sha512-kufdknAI+0H257Z2ZtDeYQudkaczSCIvtYR7D+Vfb54/yGNRECDEib8CYlOOU2jLt+l9snWit0FucvH2wp/POQ==","repository":{"url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git","type":"git"},"_npmVersion":"10.9.3","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@typescript-eslint/utils":"^8.45.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","vite":"^7.1.9","husky":"^9.1.7","eslint":"^9.37.0","vitest":"3.2.4","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","typescript":"5.9.3","@types/node":"^24.6.2","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","eslint-doc-generator":"^2.2.2","@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@vitest/eslint-plugin":"^1.3.15","@typescript-eslint/parser":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","eslint-plugin-eslint-plugin":"^7.0.0","@typescript-eslint/rule-tester":"^8.45.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-react-no-manual-memo_0.0.1_1759630212812_0.15349568687812254","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"eslint-plugin-react-no-manual-memo","version":"1.0.0","author":{"name":"BellCube"},"license":"MIT","_id":"eslint-plugin-react-no-manual-memo@1.0.0","maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"dist":{"shasum":"5ee517c3a07d3466caf16ff5a432cb1f97bd972a","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-1.0.0.tgz","fileCount":70,"integrity":"sha512-/GHlzsB6/iuTRyuIO+sGFOsbc07od5nrYxBfe9T28IsIUGNLwbYuCb+DimlcbjJDyewqck78YEeqTBB5S7Rh7w==","signatures":[{"sig":"MEQCIEPROPdQrg8auNSFA8SJSP7rfVE4Rf0NQOz3KZxgCVQSAiAm3AxsdchZ96xnb3ioomOiSuRJKWL4TLMDHCwl/yyLew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-plugin-react-no-manual-memo@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":478462},"main":"build/legacy/index.cjs","pnpm":{"patchedDependencies":{"eslint-doc-generator":"patches/eslint-doc-generator.patch"},"onlyBuiltDependencies":["@parcel/watcher","esbuild","msw","unrs-resolver"]},"type":"module","types":"build/legacy/index.d.ts","module":"build/legacy/index.js","exports":{".":{"import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"},"@tanstack/custom-condition":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"2684d46bebcef2f25f28fa5d594cbb36ed1fe400","scripts":{"test":"pnpm run /^test:[^:]+$/","build":"tsup --tsconfig tsconfig.prod.json","clean":"premove ./dist ./coverage ./dist-ts","docgen":"eslint-doc-generator","compile":"tsc --build","test:lib":"vitest","preinstall":"node -e \"if(process.env.CI == 'true') {console.log('Skipping preinstall...')} else {process.exit(1)}\" || npx -y only-allow pnpm","test:build":"pnpm run build && publint --strict && attw --pack","test:types":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","docgen:check":"pnpm run build && eslint-doc-generator --check","test:lib:dev":"pnpm run test:lib --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed801e5f-edae-4a95-a103-7e77648957c9"}},"repository":{"url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git","type":"git"},"_npmVersion":"11.6.1","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@typescript-eslint/utils":"^8.45.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.9","husky":"^9.1.7","eslint":"^9.37.0","vitest":"3.2.4","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","typescript":"5.9.3","@types/node":"^24.6.2","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","eslint-doc-generator":"^2.2.2","@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@vitest/eslint-plugin":"^1.3.15","@typescript-eslint/parser":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","eslint-plugin-eslint-plugin":"^7.0.0","@typescript-eslint/rule-tester":"^8.45.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-react-no-manual-memo_1.0.0_1759637767125_0.24745332397942477","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"eslint-plugin-react-no-manual-memo","version":"1.0.1","author":{"name":"BellCube"},"license":"MIT","_id":"eslint-plugin-react-no-manual-memo@1.0.1","maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"dist":{"shasum":"b1bf13f2ea53c43cbc26dc82e70784eee1d1343c","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-1.0.1.tgz","fileCount":70,"integrity":"sha512-fxpv7qkE/Rf7Hlly4MwfcDLEWd4QF/Uz0ES1xIj2NNaHBP/fHet3CDypLv+HYzkYliDDttu4d9vpv73f6fvaCw==","signatures":[{"sig":"MEUCIALqyDy5STwJ8vfm6BQDXAxbXDlm9a6GI1N5jkQcWZGcAiEA9r9rb2W1C87TjttPq+Eg4qE/x1krpikk5H4ED/Kj1qU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-plugin-react-no-manual-memo@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476483},"main":"build/legacy/index.cjs","pnpm":{"patchedDependencies":{"eslint-doc-generator":"patches/eslint-doc-generator.patch"},"onlyBuiltDependencies":["@parcel/watcher","esbuild","msw","unrs-resolver"]},"type":"module","types":"build/legacy/index.d.ts","module":"build/legacy/index.js","exports":{".":{"import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"},"@tanstack/custom-condition":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"0f6fb968b1caa171711e5b477db073e7c5ea6329","scripts":{"test":"pnpm run /^test:[^:]+$/","build":"tsup --tsconfig tsconfig.prod.json","clean":"premove ./dist ./coverage ./dist-ts","docgen":"eslint-doc-generator","compile":"tsc --build","test:lib":"vitest","test:build":"pnpm run build && publint --strict && attw --pack","test:types":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","docgen:check":"pnpm run build && eslint-doc-generator --check","test:lib:dev":"pnpm run test:lib --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed801e5f-edae-4a95-a103-7e77648957c9"}},"repository":{"url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git","type":"git"},"_npmVersion":"11.6.1","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@typescript-eslint/utils":"^8.45.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.9","husky":"^9.1.7","eslint":"^9.37.0","vitest":"3.2.4","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","typescript":"5.9.3","@types/node":"^24.6.2","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","eslint-doc-generator":"^2.2.2","@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@vitest/eslint-plugin":"^1.3.15","@typescript-eslint/parser":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","eslint-plugin-eslint-plugin":"^7.0.0","@typescript-eslint/rule-tester":"^8.45.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-react-no-manual-memo_1.0.1_1759639048526_0.45741524392376665","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"eslint-plugin-react-no-manual-memo","version":"1.0.2","author":{"name":"BellCube"},"license":"MIT","_id":"eslint-plugin-react-no-manual-memo@1.0.2","maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"dist":{"shasum":"105cde1301e47343fcd282b6f7f221232e62418b","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-1.0.2.tgz","fileCount":70,"integrity":"sha512-ubDJUhfehGZ+e2bt1Lp4G7APhJACdj+3J4I1dMhSfBHc0D14SWElHnpcA5yU5HTyOMCP5b2osM4RwfGQvNhpdg==","signatures":[{"sig":"MEUCICUts9SNamJfB6prP+3HAEGbYASeRfAFSVdUYp0B6EnMAiEAvraJW4+RgD6J/KMmIOgAeKzJLMgrV7Jq6FPGEvsLEYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-plugin-react-no-manual-memo@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476915},"main":"build/legacy/index.cjs","pnpm":{"patchedDependencies":{"eslint-doc-generator":"patches/eslint-doc-generator.patch"},"onlyBuiltDependencies":["@parcel/watcher","esbuild","msw","unrs-resolver"]},"type":"module","types":"build/legacy/index.d.ts","module":"build/legacy/index.js","exports":{".":{"import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"},"@tanstack/custom-condition":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"13709c216b26bfc50e5eadb6f61782e2cad180bf","scripts":{"test":"pnpm run /^test:[^:]+$/","build":"tsup --tsconfig tsconfig.prod.json","clean":"premove ./dist ./coverage ./dist-ts","docgen":"eslint-doc-generator","compile":"tsc --build","test:lib":"vitest","test:build":"pnpm run build && publint --strict && attw --pack","test:types":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","docgen:check":"pnpm run build && eslint-doc-generator --check","test:lib:dev":"pnpm run test:lib --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed801e5f-edae-4a95-a103-7e77648957c9"}},"repository":{"url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git","type":"git"},"_npmVersion":"11.6.1","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@typescript-eslint/utils":"^8.45.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.9","husky":"^9.1.7","eslint":"^9.37.0","vitest":"3.2.4","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","typescript":"5.9.3","@types/node":"^24.6.2","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","eslint-doc-generator":"^2.2.2","@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@vitest/eslint-plugin":"^1.3.15","@typescript-eslint/parser":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","eslint-plugin-eslint-plugin":"^7.0.0","@typescript-eslint/rule-tester":"^8.45.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-react-no-manual-memo_1.0.2_1759691504362_0.1593252081580876","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"eslint-plugin-react-no-manual-memo","version":"1.0.3","keywords":["react","compiler","react-compiler","eslint","plugin","linting","memoization","memo","React.memo","hooks","react-hooks","useMemo","useCallback","optimization","performance","refactoring"],"author":{"name":"BellCube"},"license":"MIT","_id":"eslint-plugin-react-no-manual-memo@1.0.3","maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"dist":{"shasum":"fb79e56d09968c103f80a9ceb531966fe8d3400f","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-1.0.3.tgz","fileCount":70,"integrity":"sha512-854SocCnppgDH0KyYeSKYtrrsHZbdJKRvgaTF0Dr0nrnzNq/OPqfRqFOgAQrpPdGfJ9yv+wXtPsEcl3LO3fvxA==","signatures":[{"sig":"MEQCIFxHqoMwUV5T1koM417T7qNAZIbWdJtoHeSlYltuntCxAiBTbYZXZOzILWuwQG3I/pruAmq85eCkldrKyK8OKFTGhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-plugin-react-no-manual-memo@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":483662},"main":"build/legacy/index.cjs","pnpm":{"patchedDependencies":{"eslint-doc-generator":"patches/eslint-doc-generator.patch"},"onlyBuiltDependencies":["@parcel/watcher","esbuild","msw","unrs-resolver"]},"type":"module","types":"build/legacy/index.d.ts","module":"build/legacy/index.js","exports":{".":{"import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"},"@tanstack/custom-condition":"./src/index.ts"},"./package.json":"./package.json"},"gitHead":"f6519b60a3b439658fffc5627eeed8cfa110ecd8","scripts":{"test":"pnpm run /^test:[^:]+$/","build":"tsup --tsconfig tsconfig.prod.json","clean":"premove ./dist ./coverage ./dist-ts","docgen":"eslint-doc-generator","compile":"tsc --build","test:lib":"vitest","test:build":"pnpm run build && publint --strict && attw --pack","test:types":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","docgen:check":"pnpm run build && eslint-doc-generator --check","test:lib:dev":"pnpm run test:lib --watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed801e5f-edae-4a95-a103-7e77648957c9"}},"repository":{"url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git","type":"git"},"_npmVersion":"11.6.1","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@typescript-eslint/utils":"^8.45.0"},"react-native":"src/index.ts","_hasShrinkwrap":false,"packageManager":"pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa","devDependencies":{"tsup":"^8.5.0","vite":"^7.1.9","husky":"^9.1.7","eslint":"^9.37.0","vitest":"3.2.4","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","typescript":"5.9.3","@types/node":"^24.6.2","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","eslint-doc-generator":"^2.2.2","@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@vitest/eslint-plugin":"^1.3.15","@typescript-eslint/parser":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","eslint-plugin-eslint-plugin":"^7.0.0","@typescript-eslint/rule-tester":"^8.45.0","esbuild-plugin-file-path-extensions":"^2.1.4"},"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-react-no-manual-memo_1.0.3_1759692521347_0.17602892577906726","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"eslint-plugin-react-no-manual-memo","version":"1.0.4","description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","author":{"name":"BellCube"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git"},"keywords":["react","compiler","react-compiler","eslint","plugin","linting","memoization","memo","React.memo","hooks","react-hooks","useMemo","useCallback","optimization","performance","refactoring"],"bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"type":"module","types":"build/legacy/index.d.ts","main":"build/legacy/index.cjs","module":"build/legacy/index.js","react-native":"src/index.ts","exports":{".":{"@tanstack/custom-condition":"./src/index.ts","import":{"types":"./build/modern/index.d.ts","default":"./build/modern/index.js"},"require":{"types":"./build/modern/index.d.cts","default":"./build/modern/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false,"peerDependencies":{"eslint":"^8.57.0 || ^9.0.0"},"packageManager":"pnpm@10.18.0+sha512.e804f889f1cecc40d572db084eec3e4881739f8dec69c0ff10d2d1beff9a4e309383ba27b5b750059d7f4c149535b6cd0d2cb1ed3aeb739239a4284a68f40cfa","scripts":{"test":"pnpm run /^test:[^:]+$/","clean":"premove ./dist ./coverage ./dist-ts","compile":"tsc --build","test:eslint":"eslint --concurrency=auto ./src","test:types":"tsc --build","test:lib":"vitest","test:lib:dev":"pnpm run test:lib --watch","test:build":"pnpm run build && publint --strict && attw --pack","build":"tsup --tsconfig tsconfig.prod.json","docgen":"pnpm run build && eslint-doc-generator","docgen:check":"pnpm run docgen --check"},"dependencies":{"@typescript-eslint/utils":"^8.45.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.2","@cspell/eslint-plugin":"^9.2.1","@eslint/compat":"^1.4.0","@tanstack/config":"^0.20.3","@types/node":"^24.6.2","@typescript-eslint/parser":"^8.45.0","@typescript-eslint/rule-tester":"^8.45.0","@vitest/coverage-istanbul":"3.2.4","@vitest/eslint-plugin":"^1.3.15","esbuild-plugin-file-path-extensions":"^2.1.4","eslint":"^9.37.0","eslint-doc-generator":"^2.2.2","eslint-plugin-eslint-plugin":"^7.0.0","husky":"^9.1.7","premove":"^4.0.0","publint":"^0.3.13","tinyglobby":"^0.2.15","tsup":"^8.5.0","typescript":"5.9.3","vite":"^7.1.9","vitest":"3.2.4"},"pnpm":{"onlyBuiltDependencies":["@parcel/watcher","esbuild","msw","unrs-resolver"],"patchedDependencies":{"eslint-doc-generator":"patches/eslint-doc-generator.patch"}},"gitHead":"2366e98abacf0362cfbb9fbd46f423c0af8fcba0","_id":"eslint-plugin-react-no-manual-memo@1.0.4","homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","_nodeVersion":"22.20.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-KMtuaB9GpnLelRLwnrm+nl534LuyR9LMOrisfSYlgwqhrHKKbQlycAiwZTmsrTNj5VV1mUyI361ROFLEk+b6DA==","shasum":"84ea08b65f2eaa06bc90248964e898be1d5eac62","tarball":"https://registry.npmjs.org/eslint-plugin-react-no-manual-memo/-/eslint-plugin-react-no-manual-memo-1.0.4.tgz","fileCount":70,"unpackedSize":483615,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/eslint-plugin-react-no-manual-memo@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAQP3ybS+0GnkiqZKQ0/7EvBjNCRpFsI7GNNEZ399gZrAiEAubqLzSVjolbzS3jOB/HcKLn9cLJvyENfcKZ+gPeTsIY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ed801e5f-edae-4a95-a103-7e77648957c9"}},"directories":{},"maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eslint-plugin-react-no-manual-memo_1.0.4_1759693064226_0.7503513790800365"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-05T02:10:12.715Z","modified":"2025-10-05T19:37:44.794Z","0.0.1":"2025-10-05T02:10:13.070Z","1.0.0":"2025-10-05T04:16:07.411Z","1.0.1":"2025-10-05T04:37:28.754Z","1.0.2":"2025-10-05T19:11:44.594Z","1.0.3":"2025-10-05T19:28:41.557Z","1.0.4":"2025-10-05T19:37:44.428Z"},"bugs":{"url":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/issues"},"author":{"name":"BellCube"},"license":"MIT","homepage":"https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo#readme","keywords":["react","compiler","react-compiler","eslint","plugin","linting","memoization","memo","React.memo","hooks","react-hooks","useMemo","useCallback","optimization","performance","refactoring"],"repository":{"type":"git","url":"git+https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo.git"},"description":"ESLint plugin for React Compiler users to flag manual memoization (useMemo, useCallback, React.memo), reminding you to let the compiler do its thing ✨","maintainers":[{"name":"bellcubedev","email":"npm@bellcube.dev"}],"readme":"# eslint-plugin-react-no-manual-memo\n\n[![npm version](https://badge.fury.io/js/eslint-plugin-react-no-manual-memo.svg)](https://badge.fury.io/js/eslint-plugin-react-no-manual-memo)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nESLint plugin for codebases using React Compiler. Flags manual memoization (`useMemo`, `useCallback`, `React.memo`), reminding you to let the compiler do its thing ✨\n\n## Why?\n\n[As the React Compiler docs state](https://react.dev/learn/react-compiler/introduction):\n\n> React Compiler adds automatic memoization more precisely and granularly than is possible with [`useMemo`](https://react.dev/reference/react/useMemo), [`useCallback`](https://react.dev/reference/react/useCallback), and [`React.memo`](https://react.dev/reference/react/memo). If you choose to keep manual memoization, React Compiler will analyze them and determine if your manual memoization matches its automatically inferred memoization. If there isn’t a match, the compiler will choose to bail out of optimizing that component.\n\nWhen using React Compiler, manual memoization is no longer necessary in most cases. When the compiler sees manual memoization that does *not* match the memoization it generated, it will bail out to prevent breaking your components. __This leaves potential performance on the table *and* makes your components harder to read!__\n\nThis plugin helps you identify, and catch yourself writing, and remove these manual memoization patterns, since they are now largely redundant. In cases where manual memoization can improve on what the compiler is able to output, you're always free to disable the relevant rules!\n\n\n## Installation\n\n```bash\nnpm install --save-dev eslint-plugin-react-no-manual-memo\n# or\nyarn add --dev eslint-plugin-react-no-manual-memo\n# or\npnpm add --save-dev eslint-plugin-react-no-manual-memo\n```\n\n\n## Rules\n\n<!-- begin auto-generated rules list -->\n\n💼 Configurations enabled in.\\\n⚠️ Configurations set to warn in.\\\n🌐 Set in the `all` configuration.\\\n✅ Set in the `recommended` configuration.\\\n🔧 Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\n\n| Name                                                                                                                           | Description                                                                         | 💼   | ⚠️ | 🔧 |\n| :----------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- | :--- | :- | :- |\n| [no-component-memo](https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/blob/main/docs/no-component-memo.md)     | Disallow React.memo() in favor of React Compiler automatic memoization              | 🌐 ✅ |    | 🔧 |\n| [no-custom-memo-hook](https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/blob/main/docs/no-custom-memo-hook.md) | Disallow custom hooks that only use useCallback and useMemo                         | 🌐   | ✅  |    |\n| [no-hook-memo](https://github.com/BellCubeDev/eslint-plugin-react-no-manual-memo/blob/main/docs/no-hook-memo.md)               | Disallow manual memoization hooks (useMemo, useCallback) in favor of React Compiler | 🌐 ✅ |    | 🔧 |\n\n<!-- end auto-generated rules list -->\n\n\n## Usage\n\n### Flat Config (ESLint 9+)\n\nUse the recommended config inside `defineConfig()`:\n\n```js\nimport { defineConfig } from \"eslint/config\";\nimport reactNoManualMemo from 'eslint-plugin-react-no-manual-memo';\n\nexport default defineConfig([\n\treactNoManualMemo.configs['flat/recommended'],\n]);\n```\n\n> [!NOTE]\n> ESLint will throw an error if you try to use the flat config without wrapping your config in `defineConfig()`.\n>\n> See the [docs section](https://eslint.org/docs/latest/use/configure/combine-configs#apply-a-config-array) about using third-party configs for more information.\n\n<details>\n<summary>Or configure it manually:</summary>\n\n```js\nimport { defineConfig } from \"eslint/config\";\nimport reactNoManualMemo from 'eslint-plugin-react-no-manual-memo';\n\nexport default defineConfig([\n\t{\n\t\tplugins: {\n\t\t\t'react-no-manual-memo': reactNoManualMemo,\n\t\t},\n\t\trules: {\n\t\t\t'react-no-manual-memo/no-hook-memo': 'error',\n\t\t\t// ...and any other rules you want to enable\n\t\t},\n\t},\n]);\n```\n\n</details>\n\n### Legacy Config (.eslintrc)\n\nUse the recommended config:\n\n```json\n{\n\t\"extends\": [\"plugin:react-no-manual-memo/recommended\"]\n}\n```\n\n<details>\n<summary>Or configure it manually:</summary>\n\n```json\n{\n\t\"plugins\": [\"react-no-manual-memo\"],\n\t\"rules\": {\n\t\t\"react-no-manual-memo/no-hook-memo\": \"error\",\n\t\t// ...and any other rules you want to enable\n\t}\n}\n```\n\n</details>\n\n## License\n\nMIT\n","readmeFilename":"README.md"}