{"_id":"react-doctor-cli-dev","_rev":"32-b692fecf6aca7ab4183d5d73a848b1a4","name":"react-doctor-cli-dev","dist-tags":{"latest":"1.2.7"},"versions":{"1.0.0":{"name":"react-doctor-cli-dev","version":"1.0.0","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.0","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"7f9e8c531c1af33041ac73fb1e9e740ecaaebcd6","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.0.tgz","fileCount":82,"integrity":"sha512-bl6w4bneYBoLrYl+sKftirLzfGUujUm0D5htve5vEGgcJJ0vylaZ7BVLPO9IKCR5EuPWnAfO6nD9h0ETmuk0ww==","signatures":[{"sig":"MEQCIDNrGzHpeB04jnEA7kaMOA39SXHw4saFQ/cD8go2FD3vAiA5CvOQHGGfTCfF1IhdAALC3iSVyb1axWmqckwjbHKohA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693549},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.0_1780437471700_0.14796982720871665","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"react-doctor-cli-dev","version":"1.0.1","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.1","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"f68a470108ad286390350416719cd3ec56247f8d","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.1.tgz","fileCount":83,"integrity":"sha512-KZ5UnZ+aJ1o1eWE1/3/jrvc6bvjaHBbBAqdLhGfXRPnXfI8g5sLONd7qdiKTQy/pHMMRG+9lFu+xUBmoNc6zdg==","signatures":[{"sig":"MEUCIQC2mRIOAKLL+e03A40ZFhsh6h/dYnul/YEo6lGnq201oAIgMLEl8ivh4O5z5YMSz2vcPmw6xUspxfygq/UQnxXkKwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694499},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.1_1780438736277_0.2593858087076981","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"react-doctor-cli-dev","version":"1.0.2","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.2","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"4004f016611f0ba71891b557e08478b422e6d3aa","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.2.tgz","fileCount":82,"integrity":"sha512-l3G+k7JxwobxFVDoo7jJorMmLogz8GVzCub6MtXvsBUwmBTNIDG5cCz7yrvfepwmBl8e3C7JhJbId9bfqsdwDQ==","signatures":[{"sig":"MEYCIQC88TMg93ziN27GpL/kT2ssFw78FbOgHxyZ84lsoZs1igIhAMB672jNfbqTlI19r6NnzUJTNYo9YiqgDH75txz3+HoN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477229},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.2_1780562246006_0.9846039942205393","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"react-doctor-cli-dev","version":"1.0.3","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.3","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"688d6c235fd4b418f0c36be02cdb46bcbe515f60","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.3.tgz","fileCount":85,"integrity":"sha512-eovTT3dAVIqP/vucdsIpxcAbKXvsv/qwEhYJk6rSYS6Hb+iRK+nv4mIDnh237eQWlDr+DJd3XJ61YXtwwEwT9Q==","signatures":[{"sig":"MEUCIQDc/lGrxmTp2i8lZ1SeRUxWW8Nho6KcpOgUNETYY0unWwIgRad307AkmJh5Rn42aoz0bA+goFrQlIScImwAgZH9rQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501972},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.3_1780562879560_0.5369526391277968","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"react-doctor-cli-dev","version":"1.0.4","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.4","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"a79b1fe539b17840ee2d35cf89933aa498a191fe","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.4.tgz","fileCount":93,"integrity":"sha512-lnehaag5NF5jxO17KMlX1ey7E5S+XHqw0VDdzdjZAWs3NYqk4vkohsxBmDN3/HW72ulFRm0h0WvT7IqtcFSltg==","signatures":[{"sig":"MEQCIDOgSgnant7OfUDq700SkYIvN/YPIzmCVt6OJf8ApoonAiBgs0l8vZXor/JTPdNFyqz8fq2nOjNgLEh/EEfQzUAw/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4070945},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.4_1780590180147_0.131120359315811","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"react-doctor-cli-dev","version":"1.0.5","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.5","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"41def8cb5cf9d7a15f63df9e7d4498ff422401e8","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.5.tgz","fileCount":93,"integrity":"sha512-9OlKU4n5ub+VQd+uw4QuC9OpcVCTSPbPU4Rc8frJ3+d8b/a4y7aauWqbvtb02PwE63r6XiT1bnqZRuR8uHq8tg==","signatures":[{"sig":"MEUCIFC3C1GW+qh8M02pIzoABWjeMN34hWS3jaWA9ihJWy4KAiEA2SEUFIbjwGHhfetMwInfOwdiIl1n/xvQLiJ7qv7Kls0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4070920},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.5_1780590964131_0.4257319123986891","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"react-doctor-cli-dev","version":"1.0.6","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.6","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"a61258d859af5070a747d36ea1c7a7bee71c2004","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.6.tgz","fileCount":84,"integrity":"sha512-NaTFikXmFuyhJL5yQieaAv7SHutb/y24Z9YZd/R2o426vLjPT//fvb58ImpxaIIFBFpfWaRMoBH5/pxKIsMIKw==","signatures":[{"sig":"MEUCIQDifJMojS9ZKCekLi6XirmHCdK+38JpUjlr7E/jmh7YzwIgV4DFxl4W3542T+hZQc+a6YdYjiVW5lHFTBQkJ4UV41I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":481470},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.6_1780591416430_0.9403222114132608","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"react-doctor-cli-dev","version":"1.0.7","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.7","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"68632471fab44ce6d484dcb2bd97ce837962cc24","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.7.tgz","fileCount":84,"integrity":"sha512-mpS9pM9/bCYWu3wTLpAQHWuUV5ypx4wW8oQfsK7sFnV0s5dswQqjseWEu0hM3+c3KVDGe4kvtjg74iSAJhTjSA==","signatures":[{"sig":"MEUCIQDRuJDdd1G3rwoeZF3ZUza/UPE9w+mx0U7vhBNrH7zgPgIgclYsfXg2GA+cwO1Nm1QZAGyCEoiPg4FWE9jrFGjSr1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483476},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.7_1780593978115_0.8563878159373517","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"react-doctor-cli-dev","version":"1.0.9","keywords":["react","performance","profiler","cli","analyzer","dashboard","web-vitals"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.9","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"f5909810abb3bd8df62d08a7c64b208f09848da3","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.9.tgz","fileCount":114,"integrity":"sha512-qsWQQ9v8jTt02EwkTY6/MCGxSxxzuhosp9eCmKZkPLbleaGsWqrAx/SaZshbAIELY3XWXVC8KsRn5jLdExM0hw==","signatures":[{"sig":"MEQCIFrtWYJsHG9XGLXmKbmuaJj0Yew2egZJPSm9UjAxZ5IjAiAabvcKxaaCzVkM0qErwrnsJkE496avI4DZOR9/14J1hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1573655},"main":"index.js","type":"commonjs","engines":{"node":">=18.0.0"},"scripts":{"dev":"node scripts/dev.js","build":"node scripts/build.js","postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.9_1782945295620_0.29144425559408726","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"react-doctor-cli-dev","version":"1.0.12","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.12","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"03a360f8f39a1d66d4a884561abeb7e4ca86c36f","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.12.tgz","fileCount":147,"integrity":"sha512-Vj4gYZ5fkYAkuyYkrI6KiDX3UZo+5l023n3Eh8AdY7eHYnGUccbID0d/GazH5UmMaVdSrDncfbg3JEct1hgfjQ==","signatures":[{"sig":"MEQCIDIsCzZPec+FLYmmCBuNqpyQtqsu9Rn0oo6QrHH5LxYxAiBGISJUjiy6/uqKK0C4Gl883xalAneJ6FJsPlbBOjwzkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2179839},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.12_1782946215685_0.1653899238832104","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"react-doctor-cli-dev","version":"1.0.13","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.13","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"632cda4bcb8fba21fc7f9d9c169c185a9124a953","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.13.tgz","fileCount":149,"integrity":"sha512-q00Iwu2UJGWQ9+KfB0pQSikfVWjiLQaoGLUzCtvvMAepTx5OUtlaa5Fd301W0pl3h5NtdTeAPwHfra5hcDrlXQ==","signatures":[{"sig":"MEUCIATdbQEiRuFj0MDF3dq8Tid2qQ6OsT4UAnw0lHh4F5psAiEArjFZcP52vPOmtgFmXP8Qr2lAdst33ygm5JxfUkvl9R0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3065332},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.13_1783077687198_0.9628979056099729","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"react-doctor-cli-dev","version":"1.0.14","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.14","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"11303487964d7b4bf0e36849d992c79ac96bf11a","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.14.tgz","fileCount":141,"integrity":"sha512-RZVGifUdtgRbMWYm20UiN45Q+EEkBRlfw25Ylc2ugGzUN8IwO0yRXOzO6VgQMT+YOuvTt4y1s3FqkwzPywipow==","signatures":[{"sig":"MEYCIQCbYGiPCp0FLTQG5Fb0PfEDnWXAWO9RFymHrnkItnkejwIhANuToI2jyM5KJSMCIqmsw0i/QNPbHOH3FB+ezFoNEq0O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2204675},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.14_1783078816975_0.3850367968851163","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"react-doctor-cli-dev","version":"1.0.15","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.15","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"9325baccfa33765e76d8f4f9b4205f3f8f9722e2","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.15.tgz","fileCount":139,"integrity":"sha512-6hC/c5BGXpF8LfxbQcDmdmMggGsSN9RAq691B5080gmCh2hDpo/R3kPcg4CcKvIzY1U3paMUarVwG33MszhL1Q==","signatures":[{"sig":"MEYCIQDe7l2T0fXX+m2KRSmZwpoAzsITG9Ye7RpuAaPH0NJN8wIhAJtWgaN40svHFKC33uaHHaEmCKMhzHp+a51OLTLAzJmt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1320489},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.15_1783080536504_0.8268727893106433","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"react-doctor-cli-dev","version":"1.0.16","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.16","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"0ed5f3b4fac137f85c6871d874fbb1ec2ccc2253","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.16.tgz","fileCount":139,"integrity":"sha512-L14FxHq/C6u6r78HI1++VYw3CWCnxLBkCz8EaR9aqc8evAvn/ny0hiM96tvBFi/VN81LsdTdxQ0dM0SQCsEAbQ==","signatures":[{"sig":"MEQCIBzoTUQnC7j+jlPN3PY9DqAy/bC/pHz1m+nK62a3R8t6AiAOfI4E8ghutDlG739+PObwASAP6arrA1V85TS98WxTyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1321915},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.16_1783082886163_0.795269418213925","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"react-doctor-cli-dev","version":"1.0.17","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.17","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"8c1884c7308dc7b174b02e3f4fdcde52f516ddee","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.17.tgz","fileCount":140,"integrity":"sha512-Crneg7no1fAnSvpT6K/YNPu23m+iyM1epa7xGHXb5kgmVeH1i4ZvBaFehdqcIzcf8XOCqQIRPt720tDESS7NIA==","signatures":[{"sig":"MEQCICviHWFekenBs1MAcXrJ1bsKliIqSNIiTB+w1BsuQchlAiA1WZIAFMJkZLZpZBcPMcga1WAMNFIvwnZRHrBwoxTiwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1338732},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.17_1783249722919_0.9919413620627853","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"react-doctor-cli-dev","version":"1.0.18","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.0.18","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"39561df1594fe63955c3b1c0407792ad7381a92f","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.0.18.tgz","fileCount":140,"integrity":"sha512-QG6T45M9Wvy7pyMlnguhGM3p9NGtwZVJ+AcEd+IHgR1jn46ditnA7REyOreMy7+ygkps5q83HdITvTZvEim7hg==","signatures":[{"sig":"MEYCIQDyX+QDb8RDvgzQqrQSfsVPjHUsgP3/mLM74/OlKPFpoQIhAI5z05/zeJj8GVt7ZmqQYarrPNwVrnk83rqBwDy7A5+d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1338842},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.0.18_1783271430421_0.9838336601054136","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"react-doctor-cli-dev","version":"1.1.0","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.1.0","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"d9221cefdbb2ac2869e900f3c831995490653dee","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.0.tgz","fileCount":140,"integrity":"sha512-m7D2rDBP74ndnQMM/JVajtCOH5dyrEerxcApUchEjjX+oGpFw/i2D7dJrhUY9cbko0tGvfr5yyAjqrQEnCkhFQ==","signatures":[{"sig":"MEUCIQCNdwMv2CaOGzG5RE7m/jmesoVWp4eAv/6I89dd+OpYEgIgDi262P9panmrlevFpbbUKN9Bx7OAs0WVTcajFoi+Az8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1338408},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.0_1784023380070_0.950971668395828","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"react-doctor-cli-dev","version":"1.1.1","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.1.1","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"b76d6434f2ffbb3c793626f99c929745951cc22a","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.1.tgz","fileCount":140,"integrity":"sha512-6UCXLqNqhZtfLS9eD6cVUkeWka7iHDPMECycAHu9JfiKtpz3ZaxcWOlZpx9nPg+pwCjYLLGEFQx1auHA6ZgHvw==","signatures":[{"sig":"MEYCIQCXFzJ776AI1jH4/A5HhhdC3af0zkL8OPfLd7/dDCJxWAIhANdwqnI2YM0tZ4WqoqGiWYzN+GYP0SiaW3JKQVmo/4qF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1338384},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.1_1784893219734_0.46006164610562217","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"react-doctor-cli-dev","version":"1.1.2","keywords":["react","performance","profiler","cli","analyzer"],"author":{"name":"Ozma"},"license":"ISC","_id":"react-doctor-cli-dev@1.1.2","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"3c160dd97b2226b965e48808555b269826e2a60b","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.2.tgz","fileCount":141,"integrity":"sha512-QsCE6/NmfnscBt3iaCR6wtBXXGXIPyQ3VRrfojoQhmhB5iW77SlxebZ6NfXx7Tm5j5nXGzhhf56XgpJ24hx9MQ==","signatures":[{"sig":"MEQCIHqLjuzFysmCwvMcRE8rOZS2Cx7mBCX+kLHPsV/m5B0EAiBKkJZ2yeAFwvlT3DuW2qFum4ySvIq8llpKAgR8NkPRuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1341912},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.2_1785755550453_0.2555950283276789","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"react-doctor-cli-dev","version":"1.1.3","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.1.3","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"a388294331c636fd95b1fc400b9fda11de18ae7e","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.3.tgz","fileCount":141,"integrity":"sha512-o1vTAZ+jIYCdeD+3e8ZILjih70StJ88pYDqBKrLIcKLv2zvfqdFDqzIeR3bX+MHxr32/l6+3vKv5pkHpfRlKhA==","signatures":[{"sig":"MEQCIFEWuKxEwzenwpa3C9/TQblWwZph8vlc15wY9mE3RqvmAiAiLjmWUIIxEhZi3Y88OgqKFtvvWfgj/QKgiLvQwqoyfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1342099},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.3_1786547926351_0.5980279190226978","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"react-doctor-cli-dev","version":"1.1.4","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.1.4","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"c96d81f833fdd87a7a1643cad2ab287c8b5662e7","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.4.tgz","fileCount":141,"integrity":"sha512-JeHBmpaZXK/dMITGNrR8XOq69DbWPqRVbDiEPC0FeCkAkTBFwrD2jwSyOUMPUvmJy7gGHO43Xjf6hby15nbOPQ==","signatures":[{"sig":"MEQCIBf3DeszRjcmZaMDrxT31qTJ/wINWSqygur/wXEAY/X9AiBQOz/uKPYjnwb+RwYm//39BDQwlJ6ThU/gr90ie9itqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347619},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.4_1786548626685_0.40661187142349875","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"react-doctor-cli-dev","version":"1.1.5","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.1.5","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"a73cdcd70672f87b070192acfbd598cd93284929","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.5.tgz","fileCount":141,"integrity":"sha512-OvwZxYsc9b0vGPBIa8YFCrhmtmr9i6bRbYLDyt0ITfNmqK9FGVH/8PKfElq7Opgmwo5CXoWRCEJSoXuif8dzqA==","signatures":[{"sig":"MEUCIQCcGQLkM0+q4WXRyg9qShdYcV/p7ySiZR5Cz7rM+yCvaAIgIHOBEDzUiHLIliYdSTzgiLv7WDp0rGp7iZ0jDAheN+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1347855},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.5_1786556257360_0.8252695669647039","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"react-doctor-cli-dev","version":"1.1.6","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.1.6","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"07a9c8e93a45c9ca8ca1604aabb5d0047204ccfa","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.6.tgz","fileCount":141,"integrity":"sha512-i3WJyUcOqNlBhRAh2Fn3tNRXgEjJoeFsdiOobsc9gT9LCj0wHpg6zk98lNj0tPhsmpp08sDA58m48no+zTeCxg==","signatures":[{"sig":"MEYCIQDKlHTNeIgQbB+WlybxA/9tqk+jrSDb1gqefl+Pwk446QIhAMm8p6+z8jQA9bnO/mcrH2dex2k8eusoAW9Np4Q4VmJR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1352857},"main":"index.js","type":"commonjs","scripts":{},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.6_1787067378299_0.9032275435332111","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"react-doctor-cli-dev","version":"1.1.7","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.1.7","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"447700e28313926a2df9a5828f031c56ad3991e4","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.1.7.tgz","fileCount":141,"integrity":"sha512-NGwuY8vGjFJlrVslsGp71yJ+rn506Sakwp3x5Sd6IuX5W/LsdA3t1zEVUk3f+0A65QitrqnBzM7YR124giZ+fg==","signatures":[{"sig":"MEUCIQCSvDaw1b4J39J87k1RlLBiRGu84dvTt83tUJo2osS0nwIgZFXmQsi38Cw1oxsBhH0qPmMT0oFv4j4wUTjhdmyWJiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1354644},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.1.7_1787120888874_0.1181317428398172","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"react-doctor-cli-dev","version":"1.2.0","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.0","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"37fb2808d417fb718e97470932b5c537de68ac69","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.0.tgz","fileCount":141,"integrity":"sha512-KH7HXmzaPQyrL7log1WDgSewa0a4AKdHptGQXRximUF2561ft5zIJPxy+2icFCseywGM/z6RI16TH2I46xlPXg==","signatures":[{"sig":"MEUCIQCB8EwvtxdX1iyqF71PfY5+b/H/Zujff7H2veOiWwzsmAIgfjlZILggzv++iYmaR1NAhR+Ms9a5IquAk34wQO3b67g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1357361},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.0_1787128545478_0.0954772783285529","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"react-doctor-cli-dev","version":"1.2.1","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.1","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"5f9ca044eed3c8d42a70e5151e84a17788fe3d79","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.1.tgz","fileCount":141,"integrity":"sha512-q3TTd6Dj/VBLdtUBJ83PkVQj+fG0LfO7DIag9/Ihgcb2lCqXIOvG+CfZ1Do8GG6v06T8N2LaM+7DEN5PCvLUww==","signatures":[{"sig":"MEYCIQDFJqacegnKzYFDQTZN24hK1w4TWplksdEYvw0g8NvRuQIhAL9qYQv8ubTYsrnEx0OFdboR6eFRNXgkxbvT41Xea9BE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1357359},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.1_1787128867717_0.9756052232893524","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"react-doctor-cli-dev","version":"1.2.2","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.2","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"d83d17c9a66bed3dbf9835fb80650e754fb07fb6","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.2.tgz","fileCount":141,"integrity":"sha512-ySnwcVe20JL5uJm2L1qnLQ0+NB3e7RA59J7SDWBJ9c0TzzyNEjumeAIfw+7vPHN1+eyD0TchwlH6jQJwYw0eOg==","signatures":[{"sig":"MEUCIFMF8hhlZTE1sl43my7L+oQzEOcqNjntwOEi85xgwPL4AiEAqbSepuj8FjVzqxOpzaLCjj94NeqRP5t+bKWUHfwLQag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1360558},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.2_1787739412586_0.51019664929044","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"react-doctor-cli-dev","version":"1.2.3","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.3","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"778d47a11ed1e295c0924594a3c4b6cee843308b","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.3.tgz","fileCount":141,"integrity":"sha512-LkMa2h6UBK/iDSKodqcNcTY4SQ+1Vl+Xr2TXQvf1rDU6AzgBWqMBKfrfi/XW6m7dzVAGDGJEyAejPeiZ9wIOnw==","signatures":[{"sig":"MEQCIB1sxwRC+r2T73OL5Lbx7/6oOVG8RT2kStBWwItCzw5IAiBwFaqUPHGEptMzpma91e60VM/P37MVOsr+pXU8sz9uPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1363227},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^22.0.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.3_1788473316806_0.18600978133545132","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"react-doctor-cli-dev","version":"1.2.4","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.4","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"1fc813618eaf397008c84f6af549edef68686eed","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.4.tgz","fileCount":141,"integrity":"sha512-8gEk0+Uwm1KpNtLCyoan12VDIj0jtXuPrbY7dYO173/1soNZ2kXX39qc+XoaCS/2uU+CKs7PCpcX8mqJUGI9Ng==","signatures":[{"sig":"MEUCIQDgoBznpoO3c4n0+cy1RDbdHkEEOHVd+J7OhqUJaR5q7AIgBmieFxHfzJ0Hq0xQtGi12wkDKeNDUZvUeqgWpTADvA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1363228},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^25.10.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.4_1788554480247_0.30880086215195335","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"react-doctor-cli-dev","version":"1.2.5","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.5","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"29ab721e8b156a8676a7a9069c9f2fc75376f9c6","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.5.tgz","fileCount":141,"integrity":"sha512-DJEphwNNSuq95sFT0BdGckHLNq+4/Ocm/zfW/ypVAqkpMmK7EMZ8URR97ivckF7Fwz9rw5O2W/jFlVWdSNS8rw==","signatures":[{"sig":"MEQCIDb2uCYjZ3izxmTh/sukTjiVriGGNskhOj13opiNc7FVAiBk/YKpKwBF8ACdUXazQ/GQaFXSAMOBWfTBwCTivkZUcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1363372},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^25.10.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.5_1788990491299_0.31311585126299835","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"react-doctor-cli-dev","version":"1.2.6","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"author":{"name":"Ozma"},"license":"MIT","_id":"react-doctor-cli-dev@1.2.6","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"homepage":"https://react-doctor-cli.web.app","bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"bin":{"react-doctor":"cli/bin/react-doctor.js"},"dist":{"shasum":"36913409221da60712ddc3dd88d5fed138db2d63","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.6.tgz","fileCount":141,"integrity":"sha512-fPTB2YWNcbVUi+fuzpa78NKDfO9B96HFWVkXFosWAEL26mXCpunLlyE1VlqVpI809FrQ+dnHwD3nMBLhzchneQ==","signatures":[{"sig":"MEUCIQDax/RiuPPFqVJ6sOlHX+MhjRVk/s5Ldvc28PE3SsF65AIgY8GUOg2JZmU10s1Ws7YDS67pYW6AWhaMTEnUkpFeiJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDy76rvh+BKee78yI/z7fPI6HlPkSI5liy45hS9z1k+LAiEAo3MJ8qoiq9yyv62T9rr7jFv8UXiaDORd/6BdOEed2XA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1367926},"main":"index.js","type":"commonjs","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^25.10.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"tmp":"tmp/react-doctor-cli-dev_1.2.6_1789806490392_0.7575778523169936","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"_id":"react-doctor-cli-dev@1.2.7","bin":{"react-doctor":"cli/bin/react-doctor.js"},"bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"dist":{"shasum":"cac6cfe83700f9320615ce46f6b16c3315cf708b","tarball":"https://registry.npmjs.org/react-doctor-cli-dev/-/react-doctor-cli-dev-1.2.7.tgz","fileCount":141,"integrity":"sha512-xqK8SPnEHnP/TbHNqr0aCxxT43BvaPPuJe446IwjS+LWw8Azolmexe2aWbyj6KJjHcqJOFZ6rXaLmBkXZTdC3Q==","signatures":[{"sig":"MEUCIQDUTsAVIhKVIrh5J2kgNfZ1HhHo24CYq17/xipS1dRqwAIgcjYaX2Q5DNtArLo1eGVvv6nzxxotbV16v/ixseQ1gW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD3CkJ0sGEZ5K/rzlFcXnisLds4O+2g+rfz71OtoSzSWQIgUKKcFYNQrwkrB/ftp12Vypdi4RDvHU47LvvEI9uSbIY="}],"unpackedSize":1371590},"main":"index.js","name":"react-doctor-cli-dev","type":"commonjs","author":{"name":"Ozma"},"license":"MIT","scripts":{"build":"npm run build:cli && npm run build:dashboard","build:cli":"tsc -p cli/tsconfig.json","prepublishOnly":"npm run build","build:dashboard":"npm --prefix dashboard install && npm --prefix dashboard run build"},"version":"1.2.7","_npmUser":{"name":"ozma","email":"oussamahka101@gmail.com"},"homepage":"https://react-doctor-cli.web.app","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"_npmVersion":"11.5.1","description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","directories":{},"maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"_nodeVersion":"24.6.0","dependencies":{"ora":"^5.4.1","cors":"^2.8.6","glob":"^13.0.6","axios":"^1.6.0","chalk":"^4.1.2","dotenv":"^17.4.2","helmet":"^8.2.0","express":"^5.2.1","ts-node":"^10.9.2","chart.js":"^4.5.1","fs-extra":"^11.3.4","commander":"^12.0.0","typescript":"^5.0.0","web-vitals":"^5.1.0","@babel/types":"^7.29.0","@babel/parser":"^7.29.0","better-sqlite3":"^12.10.0","puppeteer-core":"^25.10.0","@babel/traverse":"^7.29.0","@fontsource/tajawal":"^5.2.7","@fontsource/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"nodemon":"^3.1.14","@types/cors":"^2.8.19","@types/node":"^25.9.1","@types/express":"^5.0.6","@types/fs-extra":"^11.0.4","@types/better-sqlite3":"^7.6.13","@types/babel__traverse":"^7.28.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-doctor-cli-dev_1.2.7_1789979918800_0.6610604933185933"}}},"time":{"created":"2026-06-02T21:57:51.559Z","modified":"2026-09-21T08:38:39.204Z","1.0.0":"2026-06-02T21:57:51.875Z","1.0.1":"2026-06-02T22:18:56.464Z","1.0.2":"2026-06-04T08:37:26.184Z","1.0.3":"2026-06-04T08:47:59.688Z","1.0.4":"2026-06-04T16:23:00.429Z","1.0.5":"2026-06-04T16:36:04.387Z","1.0.6":"2026-06-04T16:43:36.590Z","1.0.7":"2026-06-04T17:26:18.239Z","1.0.9":"2026-07-01T22:34:55.855Z","1.0.12":"2026-07-01T22:50:15.941Z","1.0.13":"2026-07-03T11:21:27.398Z","1.0.14":"2026-07-03T11:40:17.157Z","1.0.15":"2026-07-03T12:08:56.691Z","1.0.16":"2026-07-03T12:48:06.330Z","1.0.17":"2026-07-05T11:08:43.076Z","1.0.18":"2026-07-05T17:10:30.637Z","1.1.0":"2026-07-14T10:03:00.260Z","1.1.1":"2026-07-24T11:40:19.924Z","1.1.2":"2026-08-03T11:12:30.700Z","1.1.3":"2026-08-12T15:18:46.535Z","1.1.4":"2026-08-12T15:30:26.888Z","1.1.5":"2026-08-12T17:37:37.569Z","1.1.6":"2026-08-18T15:36:18.508Z","1.1.7":"2026-08-19T06:28:09.079Z","1.2.0":"2026-08-19T08:35:45.641Z","1.2.1":"2026-08-19T08:41:07.901Z","1.2.2":"2026-08-26T10:16:52.774Z","1.2.3":"2026-09-03T22:08:36.957Z","1.2.4":"2026-09-04T20:41:20.415Z","1.2.5":"2026-09-09T21:48:11.498Z","1.2.6":"2026-09-19T08:28:10.483Z","1.2.7":"2026-09-21T08:38:39.037Z"},"bugs":{"url":"https://github.com/softar-dev/React_Doctor/issues"},"author":{"name":"Ozma"},"license":"MIT","homepage":"https://react-doctor-cli.web.app","keywords":["react","react-performance","react-performance-analyzer","react-analyzer","react-profiler","static-analysis","runtime-analysis","web-vitals","performance","performance-analysis","cli","developer-tools"],"repository":{"url":"git+https://github.com/softar-dev/React_Doctor.git","type":"git"},"description":"React performance analyzer with static analysis, runtime profiling, rule engine, and dashboard upload","maintainers":[{"name":"ozma","email":"oussamahka101@gmail.com"}],"readme":"# 🩺 React Doctor\r\n\r\n**A TypeScript CLI for diagnosing React performance issues through static code analysis and real browser profiling.**\r\n\r\nReact Doctor combines **static analysis**, **runtime profiling**, and a **rule engine** to connect what is happening in your React code with what actually happens in the browser.\r\n\r\nInstead of reporting isolated warnings, React Doctor can correlate a code pattern with runtime evidence and turn it into a more actionable diagnosis.\r\n\r\n> **Example:** A component is missing `React.memo()` → runtime profiling shows it re-rendering repeatedly → React Doctor reports the relationship and recommends a targeted fix.\r\n\r\n> **Note:** React Doctor is not affiliated with [react.doctor](https://www.react.doctor/). They are separate, unrelated projects.\r\n\r\n[![npm version](https://img.shields.io/npm/v/react-doctor-cli-dev?style=flat-square)](https://www.npmjs.com/package/react-doctor-cli-dev)\r\n[![npm downloads](https://badgen.net/npm/dt/react-doctor-cli-dev)](https://www.npmjs.com/package/react-doctor-cli-dev)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)\r\n[![Node.js](https://img.shields.io/badge/Node.js-18%2B-green?style=flat-square\\&logo=node.js)](https://nodejs.org/)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-blue?style=flat-square\\&logo=typescript)\r\n](https://www.typescriptlang.org/)\r\n\r\n[![React Doctor Demo](https://github.com/user-attachments/assets/55261f3b-85e5-497d-861d-7e1e65f2e325)\r\n](https://www.typescriptlang.org/)\r\n\r\n---\r\n\r\n## Why React Doctor?\r\n\r\nReact performance problems often require looking at multiple layers of an application.\r\n\r\nA static analyzer can identify a suspicious code pattern. A browser profiler can show that something is actually happening at runtime. But connecting those two pieces of evidence is often left to the developer.\r\n\r\nReact Doctor brings them together:\r\n\r\n```text\r\n        React source code\r\n               │\r\n               ▼\r\n      ┌─────────────────┐\r\n      │ Static Analysis │\r\n      └────────┬────────┘\r\n               │\r\n       Code-level findings\r\n               │\r\n               ▼\r\n      ┌─────────────────┐\r\n      │ Runtime Profiler│\r\n      └────────┬────────┘\r\n               │\r\n      Browser measurements\r\n               │\r\n               ▼\r\n      ┌─────────────────┐\r\n      │   Rule Engine   │\r\n      └────────┬────────┘\r\n               │\r\n               ▼\r\n      Correlated diagnosis\r\n               │\r\n               ▼\r\n          Dashboard\r\n```\r\n\r\nThis lets React Doctor move from:\r\n\r\n> \"This component might have a performance problem.\"\r\n\r\nto:\r\n\r\n> \"This component has a performance-related code pattern, and runtime profiling shows evidence that it is affecting rendering.\"\r\n\r\n---\r\n\r\n## 🚀 Quick Start\r\n\r\n### 1. Install\r\n\r\n```bash\r\nnpm install -g react-doctor-cli-dev\r\n```\r\n\r\n### 2. Run a diagnostic\r\n\r\n```bash\r\nreact-doctor full ./my-react-app --upload\r\n```\r\n\r\nReact Doctor analyzes the project, profiles it in a real browser, combines the results, and opens the local dashboard.\r\n\r\n### 3. Or use `npx`\r\n\r\n```bash\r\nnpx react-doctor-cli-dev full ./my-react-app --upload\r\n```\r\n\r\nNo global installation required.\r\n\r\n---\r\n\r\n## ✨ What React Doctor Does\r\n\r\n### 🔍 Static Code Analysis\r\n\r\nReact Doctor parses JSX/TSX using Babel's AST tooling and looks for React-specific performance patterns.\r\n\r\nCurrent detectors include:\r\n\r\n* Missing `React.memo()` opportunities\r\n* Missing `useCallback()` opportunities\r\n* Missing `useMemo()` opportunities\r\n* Prop drilling\r\n* Inline functions\r\n* Inline styles\r\n* Console statements\r\n* Large/complex components\r\n* Dead code\r\n\r\nStatic findings provide the code-level context needed by the rule engine.\r\n\r\n---\r\n\r\n### ⚡ Runtime Performance Profiling\r\n\r\nReact Doctor launches Chrome through Puppeteer and measures the application under controlled conditions.\r\n\r\nIt collects:\r\n\r\n* **LCP** — Largest Contentful Paint\r\n* **FCP** — First Contentful Paint\r\n* **CLS** — Cumulative Layout Shift\r\n* **INP** — Interaction to Next Paint\r\n* **TTFB** — Time to First Byte\r\n* React commit durations\r\n* Component re-render counts\r\n* Screenshots during page loading\r\n* Route-level performance information\r\n\r\nYou can also profile different environments using viewport, CPU, and network settings.\r\n\r\n---\r\n\r\n### 🧠 Correlation & Rule Engine\r\n\r\nThe rule engine combines static and runtime evidence.\r\n\r\nReact Doctor currently includes **25 rules** covering different performance scenarios.\r\n\r\nFor example:\r\n\r\n```text\r\nStatic finding\r\n└── ProductCard is not memoized\r\n          +\r\nRuntime evidence\r\n└── ProductCard re-rendered 13 times\r\n          ↓\r\nCorrelated suggestion\r\n└── Excessive re-renders may be caused by\r\n    missing memoization\r\n```\r\n\r\nRules can use:\r\n\r\n* Static findings\r\n* Runtime measurements\r\n* Component information\r\n* Route information\r\n* Device information\r\n\r\nNot every rule requires runtime evidence. Some findings are useful from static analysis alone, while correlation rules become more specific when runtime evidence is available.\r\n\r\n---\r\n\r\n## 📊 Dashboard\r\n\r\nUse:\r\n\r\n```bash\r\nreact-doctor full ./my-app --upload\r\n```\r\n\r\nThe report is uploaded to the local dashboard and opened automatically.\r\n\r\n### Dashboard includes\r\n\r\n| Section               | Purpose                                                         |\r\n| --------------------- | --------------------------------------------------------------- |\r\n| **Overview**    | Overall performance score, Web Vitals, routes, and top findings |\r\n| **Web Vitals**  | Runtime metrics by route and device                             |\r\n| **Code Issues** | Static analysis findings with severity filtering                |\r\n| **Suggestions** | Actionable recommendations from the rule engine                 |\r\n| **History**     | Previous runs and performance trends                            |\r\n\r\nThe dashboard also provides:\r\n\r\n* Performance score\r\n* Route comparisons\r\n* Component re-render analysis\r\n* Screenshot filmstrip\r\n* Severity filters\r\n* Search and filtering\r\n* Historical performance tracking\r\n* Responsive interface\r\n* Dark theme\r\n\r\n> **Screenshot:** Add a real dashboard screenshot or short GIF here before publishing. For a developer tool, showing the actual result is more useful than another feature list.\r\n>\r\n> `docs/dashboard.png`\r\n>\r\n> ```md\r\n> ![React Doctor dashboard](docs/dashboard.png)\r\n> ```\r\n\r\n---\r\n\r\n## 🧩 How the Analysis Works\r\n\r\nA full diagnostic runs through several stages:\r\n\r\n### 1. Static Analysis\r\n\r\nReact Doctor scans JSX/TSX files and builds an AST-based representation of the source code.\r\n\r\n```text\r\nProject\r\n  ↓\r\nJSX / TSX files\r\n  ↓\r\nBabel AST\r\n  ↓\r\nStatic detectors\r\n  ↓\r\nStatic findings\r\n```\r\n\r\n### 2. Runtime Profiling\r\n\r\nThe application is launched and inspected through a real browser.\r\n\r\n```text\r\nReact application\r\n  ↓\r\nChrome / Puppeteer\r\n  ↓\r\nRoutes + browser metrics\r\n  ↓\r\nWeb Vitals + React runtime data\r\n```\r\n\r\n### 3. Rule Engine\r\n\r\nStatic findings and runtime measurements are evaluated together.\r\n\r\n```text\r\nStatic findings ─────┐\r\n                     ├──► Rule Engine ───► Suggestions\r\nRuntime evidence ────┘\r\n```\r\n\r\n### 4. Report Compilation\r\n\r\nThe results are merged into a structured report.\r\n\r\n```text\r\nStatic + Runtime + Rules\r\n          ↓\r\n    Final Report\r\n          ↓\r\n   JSON / Dashboard\r\n```\r\n\r\n---\r\n\r\n## 📦 Installation\r\n\r\n### Global installation\r\n\r\nRecommended when using React Doctor as a CLI:\r\n\r\n```bash\r\nnpm install -g react-doctor-cli-dev\r\n```\r\n\r\nVerify the installation:\r\n\r\n```bash\r\nreact-doctor --version\r\n```\r\n\r\n### Using `npx`\r\n\r\n```bash\r\nnpx react-doctor-cli-dev full ./my-app --upload\r\n```\r\n\r\n### Local project installation\r\n\r\nYou can also install it as a development dependency:\r\n\r\n```bash\r\nnpm install --save-dev react-doctor-cli-dev\r\n```\r\n\r\nThen add a script:\r\n\r\n```json\r\n{\r\n  \"scripts\": {\r\n    \"diagnose\": \"react-doctor full . --upload\"\r\n  }\r\n}\r\n```\r\n\r\nRun:\r\n\r\n```bash\r\nnpm run diagnose\r\n```\r\n\r\n---\r\n\r\n## ⚙️ Requirements\r\n\r\n* **Node.js:** 18+\r\n* **Google Chrome:** installed locally\r\n* **React project:** a project containing `package.json`\r\n* **Operating systems:** Windows, macOS, and Linux\r\n\r\nReact Doctor uses Chrome for runtime profiling.\r\n\r\n---\r\n\r\n## 🎯 Usage\r\n\r\n### Full diagnostic\r\n\r\nThe `full` command runs the complete analysis pipeline.\r\n\r\n```bash\r\nreact-doctor full ./my-react-app\r\n```\r\n\r\nWith dashboard:\r\n\r\n```bash\r\nreact-doctor full ./my-react-app --upload\r\n```\r\n\r\nDesktop and mobile:\r\n\r\n```bash\r\nreact-doctor full ./my-react-app --desktop --mobile\r\n```\r\n\r\nCPU and network simulation:\r\n\r\n```bash\r\nreact-doctor full ./my-react-app \\\r\n  --cpu 4 \\\r\n  --throttle slow4g\r\n```\r\n\r\nFull example:\r\n\r\n```bash\r\nreact-doctor full ./my-react-app \\\r\n  --desktop \\\r\n  --mobile \\\r\n  --cpu 4 \\\r\n  --throttle slow4g \\\r\n  --upload\r\n```\r\n\r\n---\r\n\r\n### Static analysis\r\n\r\nRun only the source-code analysis:\r\n\r\n```bash\r\nreact-doctor analyze ./my-react-app\r\n```\r\n\r\nThis is useful when you want fast feedback without launching the browser profiler.\r\n\r\n---\r\n\r\n### Runtime profiling\r\n\r\nRun the browser profiling stage independently:\r\n\r\n```bash\r\nreact-doctor profile ./my-react-app\r\n```\r\n\r\nMobile profiling:\r\n\r\n```bash\r\nreact-doctor profile ./my-react-app --mobile\r\n```\r\n\r\nNetwork simulation:\r\n\r\n```bash\r\nreact-doctor profile ./my-react-app \\\r\n  --mobile \\\r\n  --throttle 3g\r\n```\r\n\r\n---\r\n\r\n### Dashboard\r\n\r\nOpen the local dashboard:\r\n\r\n```bash\r\nreact-doctor dashboard\r\n```\r\n\r\nUse a different port:\r\n\r\n```bash\r\nreact-doctor dashboard --port 4000\r\n```\r\n\r\n---\r\n\r\n### Help\r\n\r\n```bash\r\nreact-doctor --help\r\n```\r\n\r\nCommand-specific help:\r\n\r\n```bash\r\nreact-doctor full --help\r\nreact-doctor analyze --help\r\nreact-doctor profile --help\r\nreact-doctor dashboard --help\r\n```\r\n\r\n---\r\n\r\n## 🖥️ CLI Options\r\n\r\n### `full`\r\n\r\n| Option                  | Description                                        | Default                             |\r\n| ----------------------- | -------------------------------------------------- | ----------------------------------- |\r\n| `[projectPath]`       | React project path                                 | Current directory                   |\r\n| `--desktop`           | Profile desktop viewport (1280×720)               | Enabled when no device is specified |\r\n| `--mobile`            | Profile mobile viewport (390×844)                 | Disabled                            |\r\n| `--cpu <rate>`        | CPU throttling:`1`, `4`, or `6`              | `1`                               |\r\n| `--throttle <preset>` | Network simulation:`none`, `slow4g`, or `3g` | `none`                            |\r\n| `--upload`            | Upload the report and open dashboard               | `false`                           |\r\n| `--api-url <url>`     | Backend API URL                                    | `http://localhost:3000`           |\r\n| `--api-key <key>`     | API key for backend authentication                 | Default key                         |\r\n| `--no-banner`         | Disable startup banner                             | `false`                           |\r\n\r\n### `analyze`\r\n\r\n| Option            | Description                            | Default           |\r\n| ----------------- | -------------------------------------- | ----------------- |\r\n| `[projectPath]` | React project path                     | Current directory |\r\n| `--full`        | Include the extended analysis pipeline | `false`         |\r\n\r\n### `profile`\r\n\r\n| Option                  | Description          | Default           |\r\n| ----------------------- | -------------------- | ----------------- |\r\n| `[projectPath]`       | React project path   | Current directory |\r\n| `--desktop`           | Use desktop viewport | `true`          |\r\n| `--mobile`            | Use mobile viewport  | `false`         |\r\n| `--cpu <rate>`        | CPU throttling       | `1`             |\r\n| `--throttle <preset>` | Network simulation   | `none`          |\r\n\r\n### `dashboard`\r\n\r\n| Option            | Description    | Default  |\r\n| ----------------- | -------------- | -------- |\r\n| `--port <port>` | Dashboard port | `3000` |\r\n\r\nFor the complete and most up-to-date option list, use:\r\n\r\n```bash\r\nreact-doctor <command> --help\r\n```\r\n\r\n---\r\n\r\n## 🔐 Backend Authentication\r\n\r\nWhen using `--upload`, reports are sent to the local React Doctor backend.\r\n\r\n### API key via CLI\r\n\r\n```bash\r\nreact-doctor full ./app \\\r\n  --upload \\\r\n  --api-key my-secret-key\r\n```\r\n\r\n### API key via environment variable\r\n\r\nLinux/macOS:\r\n\r\n```bash\r\nexport REACT_DOCTOR_API_KEY=my-secret-key\r\nreact-doctor full ./app --upload\r\n```\r\n\r\nWindows PowerShell:\r\n\r\n```powershell\r\n$env:REACT_DOCTOR_API_KEY=\"my-secret-key\"\r\nreact-doctor full ./app --upload\r\n```\r\n\r\n> **Security:** Change the default API key before using the backend in a shared or publicly accessible environment.\r\n\r\n---\r\n\r\n## 📄 Reports\r\n\r\nReact Doctor generates structured reports locally.\r\n\r\nTypical output:\r\n\r\n```text\r\n.react-doctor/\r\n└── finalreport.json\r\n```\r\n\r\nThe JSON report contains the compiled analysis results and can be used for further processing or integration with other tooling.\r\n\r\nWhen `--upload` is used, the report is also made available through the local dashboard.\r\n\r\n---\r\n\r\n## 🧪 Example\r\n\r\nA simplified example of a full diagnostic:\r\n\r\n```text\r\n  ┌─────────────────────────────────┐\r\n  │       🩺  React Doctor          │\r\n  │   React Performance Analyzer    │\r\n  └─────────────────────────────────┘\r\n\r\n  ── Full Diagnostic ──────────────────\r\n  Project          ./my-react-app\r\n  Device           desktop + mobile\r\n  CPU              4x\r\n  Network          slow4g\r\n\r\n  ── Step 1 / 4 — Static Analysis ─────\r\n  ✔ Static analysis complete — 42 files scanned\r\n    ● Files analyzed     42\r\n    ● Total issues       18\r\n    ● Critical           2\r\n    ● Warnings           5\r\n    ● Info               11\r\n\r\n  ── Step 2 / 4 — Runtime Profiler ────\r\n  ✔ Profiling complete\r\n    / [desktop]  Score: 94/100\r\n    / [mobile]   Score: 87/100\r\n\r\n  ── Step 3 / 4 — Rule Engine ─────────\r\n  ✔ Rule Engine complete — 14 suggestions\r\n    ❌ Unmemoized component is re-rendering excessively\r\n       [ProductCard]\r\n    ⚠️ React commits are exceeding 16ms budget\r\n\r\n  ── Step 4 / 4 — Report Compiler ─────\r\n  ✔ Final report compiled\r\n    ● Overall score 91/100\r\n    ● Report saved ./.react-doctor/finalreport.json\r\n\r\n  ── Dashboard ─────────────────────────\r\n  ✔ Backend started successfully\r\n  ✔ Report uploaded successfully\r\n    Opening dashboard http://localhost:3000/report/1\r\n\r\n  ✅ Full diagnostic finished.\r\n```\r\n\r\n---\r\n\r\n## 🏗️ Architecture\r\n\r\nReact Doctor is organized as a pipeline:\r\n\r\n```text\r\n┌──────────────────┐\r\n│   React Project  │\r\n└────────┬─────────┘\r\n         │\r\n         ▼\r\n┌──────────────────┐\r\n│   File Scanner   │\r\n└────────┬─────────┘\r\n         │\r\n         ▼\r\n┌──────────────────┐\r\n│ Static Analyzer  │◄──── Babel AST\r\n└────────┬─────────┘\r\n         │\r\n         ├──────────────────────┐\r\n         │                      │\r\n         ▼                      ▼\r\n┌──────────────────┐   ┌──────────────────┐\r\n│ Runtime Profiler │   │ Static Findings  │\r\n│ Puppeteer/Chrome │   │                  │\r\n└────────┬─────────┘   └────────┬─────────┘\r\n         │                      │\r\n         └──────────┬───────────┘\r\n                    ▼\r\n          ┌──────────────────┐\r\n          │   Rule Engine    │\r\n          │   25 rules       │\r\n          └────────┬─────────┘\r\n                   ▼\r\n          ┌──────────────────┐\r\n          │ Report Compiler  │\r\n          └────────┬─────────┘\r\n                   ▼\r\n          ┌──────────────────┐\r\n          │ JSON + Dashboard │\r\n          └──────────────────┘\r\n```\r\n\r\n### Repository structure\r\n\r\n```text\r\nReact_Doctor/\r\n├── cli/                       # Command-line interface\r\n│   ├── src/\r\n│   │   ├── commands/\r\n│   │   │   ├── full.ts\r\n│   │   │   ├── analyze.ts\r\n│   │   │   ├── profile.ts\r\n│   │   │   └── dashboard.ts\r\n│   │   ├── ui.ts\r\n│   │   ├── uploader.ts\r\n│   │   └── index.ts\r\n│   └── package.json\r\n│\r\n├── backend/                   # Express API + SQLite\r\n│   ├── src/\r\n│   │   ├── routes/\r\n│   │   ├── middleware/\r\n│   │   ├── db.ts\r\n│   │   └── index.ts\r\n│   ├── public/\r\n│   └── package.json\r\n│\r\n├── core/                      # Analysis engines\r\n│   ├── static-ana/\r\n│   ├── runtime/\r\n│   ├── rule-engine/\r\n│   └── report-compiler/\r\n│\r\n├── shared/                    # Shared types and schemas\r\n├── package.json\r\n├── tsconfig.json\r\n├── README.md\r\n└── LICENSE\r\n```\r\n\r\n---\r\n\r\n## 🛠️ Development\r\n\r\n### Clone the repository\r\n\r\n```bash\r\ngit clone https://github.com/softar-dev/React_Doctor.git\r\ncd React_Doctor\r\n```\r\n\r\n### Install dependencies\r\n\r\n```bash\r\nnpm install\r\n```\r\n\r\n### Build\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\n### Available development scripts\r\n\r\n| Command                   | Description                  |\r\n| ------------------------- | ---------------------------- |\r\n| `npm run build`         | Build the CLI and backend    |\r\n| `npm run build:cli`     | Build the CLI                |\r\n| `npm run build:backend` | Build the backend            |\r\n| `npm run dev:backend`   | Run the backend with nodemon |\r\n\r\n### Test the upload flow\r\n\r\nTerminal 1:\r\n\r\n```bash\r\ncd backend\r\nnpm run dev\r\n```\r\n\r\nTerminal 2:\r\n\r\n```bash\r\nreact-doctor full ./my-app \\\r\n  --upload \\\r\n  --api-key react-doctor-secret-key-change-this\r\n```\r\n\r\n---\r\n\r\n## 🤝 Contributing\r\n\r\nContributions are welcome.\r\n\r\nBefore opening a pull request:\r\n\r\n1. Fork the repository.\r\n2. Create a feature or fix branch.\r\n3. Make your changes.\r\n4. Test the affected functionality.\r\n5. Update documentation when necessary.\r\n6. Open a pull request with a clear description.\r\n\r\nExample branch names:\r\n\r\n```bash\r\ngit checkout -b feat/custom-rule\r\ngit checkout -b fix/runtime-profile\r\ngit checkout -b docs/update-installation\r\n```\r\n\r\n### Commit messages\r\n\r\nUse Conventional Commits where possible:\r\n\r\n```text\r\nfeat: add new performance detector\r\nfix: resolve runtime profiling issue\r\ndocs: update CLI reference\r\nrefactor: simplify rule evaluation\r\n```\r\n\r\n### Reporting bugs\r\n\r\n[Open an issue](https://github.com/softar-dev/React_Doctor/issues) and include:\r\n\r\n* Node.js version\r\n* Operating system\r\n* React version\r\n* React Doctor version\r\n* Command used\r\n* Steps to reproduce\r\n* Expected behavior\r\n* Actual behavior\r\n* Relevant logs or report output\r\n\r\nFor feature ideas and broader discussions, use [GitHub Discussions](https://github.com/softar-dev/React_Doctor/discussions).\r\n\r\n---\r\n\r\n## 🗺️ Roadmap\r\n\r\nPotential future improvements include:\r\n\r\n* [ ] Next.js App Router support\r\n* [ ] Custom rule creation\r\n* [ ] GitHub Actions integration\r\n* [ ] Performance budgets and thresholds\r\n* [ ] Automated pull request comments\r\n* [ ] CI performance regression detection\r\n* [ ] Additional framework support\r\n\r\nRoadmap items are subject to change as the project evolves.\r\n\r\nHave an idea? Open a [GitHub Discussion](https://github.com/softar-dev/React_Doctor/discussions).\r\n\r\n---\r\n\r\n## 🔗 Links\r\n\r\n* **Documentation:** https://react-doctor-cli.web.app\r\n* **npm:** https://www.npmjs.com/package/react-doctor-cli-dev\r\n* **GitHub:** https://github.com/softar-dev/React_Doctor\r\n* **Issues:** https://github.com/softar-dev/React_Doctor/issues\r\n* **Discussions:** https://github.com/softar-dev/React_Doctor/discussions\r\n* **Support:** https://react-doctor-cli.web.app/support\r\n\r\n---\r\n\r\n## 🙏 Built With\r\n\r\nReact Doctor is built with:\r\n\r\n* [TypeScript](https://www.typescriptlang.org/)\r\n* [Babel](https://babeljs.io/)\r\n* [Puppeteer](https://pptr.dev/)\r\n* [Express](https://expressjs.com/)\r\n* [SQLite](https://www.sqlite.org/)\r\n* [Chart.js](https://www.chartjs.org/)\r\n* [Web Vitals](https://github.com/GoogleChrome/web-vitals)\r\n* [Commander](https://github.com/tj/commander.js)\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nReact Doctor is released under the [MIT License](LICENSE).\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  Made with ❤️ for React developers\r\n</p>\r\n","readmeFilename":"README.md"}