{"_id":"@putout/plugin-variables","_rev":"4160222","name":"@putout/plugin-variables","description":"🐊Putout plugin adds ability to find and remove useless","dist-tags":{"latest":"2.2.0"},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"time":{"modified":"2026-03-01T20:37:51.000Z","created":"2025-12-01T15:20:18.256Z","2.2.0":"2026-02-28T19:59:15.928Z","2.1.0":"2026-02-28T14:33:44.138Z","2.0.0":"2026-02-24T13:00:11.021Z","1.6.1":"2025-12-27T10:46:41.565Z","1.6.0":"2025-12-27T10:38:49.720Z","1.5.0":"2025-12-25T13:35:50.652Z","1.4.0":"2025-12-24T22:45:54.514Z","1.3.1":"2025-12-03T17:23:51.720Z","1.3.0":"2025-12-03T17:21:48.655Z","1.2.0":"2025-12-03T11:21:18.338Z","1.1.0":"2025-12-02T11:35:03.940Z","1.0.0":"2025-12-01T15:20:18.256Z"},"users":{},"author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"versions":{"2.2.0":{"name":"@putout/plugin-variables","version":"2.2.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^4.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/plugin-tape":"*","@putout/test":"^15.0.0","eslint":"^10.0.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^31.0.0","just-camel-case":"^6.2.0","madrun":"^13.0.0","montag":"^1.2.1","nodemon":"^3.0.1","superc8":"^12.0.0","supertape":"^12.0.0","try-catch":"^4.0.0"},"peerDependencies":{"putout":">=42"},"license":"MIT","engines":{"node":">=22"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@2.2.0","gitHead":"9cc65737c221da9b42f8ba8d9c1a2d4e137507cd","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"24.14.0","_npmVersion":"11.4.2","dist":{"shasum":"fef55cdda6a7e63d8385fe2da8e729ecb68b135c","size":14550,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-2.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-2.2.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_2.2.0_1772308755765_0.35805562576078964"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-28T19:59:15.928Z","publish_time":1772308755928,"_source_registry_name":"default","_cnpm_publish_time":1772308755928},"2.1.0":{"name":"@putout/plugin-variables","version":"2.1.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^4.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/plugin-tape":"*","@putout/test":"^15.0.0","eslint":"^10.0.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^31.0.0","just-camel-case":"^6.2.0","madrun":"^13.0.0","montag":"^1.2.1","nodemon":"^3.0.1","superc8":"^12.0.0","supertape":"^12.0.0","try-catch":"^4.0.0"},"peerDependencies":{"putout":">=42"},"license":"MIT","engines":{"node":">=22"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@2.1.0","gitHead":"6fc80bc5f6d6e7aa394ae49a50d85f0bc2419800","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"24.14.0","_npmVersion":"11.4.2","dist":{"shasum":"6a8327550dcfb4e998eacc212b72e1a804058ad3","size":14510,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-2.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-2.1.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_2.1.0_1772289223967_0.5072677659706022"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-28T14:33:44.138Z","publish_time":1772289224138,"_source_registry_name":"default","_cnpm_publish_time":1772289224138},"2.0.0":{"name":"@putout/plugin-variables","version":"2.0.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^4.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/plugin-tape":"*","@putout/test":"^15.0.0","c8":"^10.0.0","eslint":"^10.0.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^31.0.0","just-camel-case":"^6.2.0","madrun":"^13.0.0","montag":"^1.2.1","nodemon":"^3.0.1","supertape":"^12.0.0","try-catch":"^4.0.0"},"peerDependencies":{"putout":">=42"},"license":"MIT","engines":{"node":">=22"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@2.0.0","gitHead":"beab2e93a25c8fde7a4bf10c272ef442a1619a83","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.6.1","_npmVersion":"11.4.2","dist":{"shasum":"0d485d3e584c1916e5371559e8d76668aa2ead63","size":14484,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-2.0.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_2.0.0_1771938010887_0.4718677091312722"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-24T13:00:11.021Z","publish_time":1771938011021,"_source_registry_name":"default","_cnpm_publish_time":1771938011021},"1.6.1":{"name":"@putout/plugin-variables","version":"1.6.1","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/plugin-tape":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"^10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","montag":"^1.2.1","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.6.1","gitHead":"7b84d94ba588ed00f6c4ad8cb2fae469ea64282a","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"d5e791de980afa927245518206da6dfb4dc6499c","size":14467,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.6.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.6.1.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.6.1_1766832401386_0.27465570773057246"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-27T10:46:41.565Z","publish_time":1766832401565,"_source_registry_name":"default","_cnpm_publish_time":1766832401565},"1.6.0":{"name":"@putout/plugin-variables","version":"1.6.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/plugin-tape":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"^10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","montag":"^1.2.1","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.6.0","gitHead":"7b69093d1a81abaaa0e816ca9a69de337b9e6d9e","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"64470643d7e02a8768747d95351d727718d8a6ae","size":14436,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.6.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.6.0_1766831929552_0.5312894134656039"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-27T10:38:49.720Z","publish_time":1766831929720,"_source_registry_name":"default","_cnpm_publish_time":1766831929720},"1.5.0":{"name":"@putout/plugin-variables","version":"1.5.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"^10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","montag":"^1.2.1","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.5.0","gitHead":"beb55dbdc2d663af52863b9b6c2d17d8995fc604","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.1.0","_npmVersion":"11.4.2","dist":{"shasum":"48ce818127a74c492c880e3826e709dafce012ab","size":13488,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.5.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.5.0_1766669750498_0.4781628481575566"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-25T13:35:50.652Z","publish_time":1766669750652,"_source_registry_name":"default","_cnpm_publish_time":1766669750652},"1.4.0":{"name":"@putout/plugin-variables","version":"1.4.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"^10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","montag":"^1.2.1","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.4.0","gitHead":"40edb6a5d368fca137b0dc129974d755d7ba5055","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"24.12.0","_npmVersion":"11.2.0","dist":{"shasum":"2f0dde8b6a99284624a1b3478a92674ccd284868","size":13441,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.4.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.4.0_1766616354374_0.6279807621751106"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-24T22:45:54.514Z","publish_time":1766616354514,"_source_registry_name":"default","_cnpm_publish_time":1766616354514},"1.3.1":{"name":"@putout/plugin-variables","version":"1.3.1","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables","for-of"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-remove-useless-array-from":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"v10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.3.1","gitHead":"54bcd16ca41e7dab1e1f0072cbf151bb947b760e","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"9cfdbc5b9e4b7933239cdaf2e6b12bcaa913891c","size":13423,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.3.1.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.3.1_1764782631492_0.9949240025691941"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-03T17:23:51.720Z","publish_time":1764782631720,"_source_registry_name":"default","_cnpm_publish_time":1764782631720},"1.3.0":{"name":"@putout/plugin-variables","version":"1.3.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables","for-of"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-nodejs":"*","@putout/plugin-putout":"*","@putout/plugin-remove-useless-array-from":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"v10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","just-camel-case":"^6.2.0","madrun":"^11.0.0","nodemon":"^3.0.1","supertape":"^11.3.1","try-catch":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.3.0","gitHead":"af0386a60ec6e8161ebd3c44daec1310d7c290a0","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"5262b30eb4b8060cda931bc15d51ec5337cb5690","size":13412,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.3.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.3.0_1764782508449_0.2671361474114742"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-03T17:21:48.655Z","publish_time":1764782508655,"_source_registry_name":"default","_cnpm_publish_time":1764782508655},"1.2.0":{"name":"@putout/plugin-variables","version":"1.2.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables","for-of"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-remove-unused-variables":"*","@putout/plugin-remove-useless-array-from":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"v10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","madrun":"^11.0.0","nodemon":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.2.0","gitHead":"37a9fdaa937ef28d424f70ec2f6defb07f33649d","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"740aaf012b649b293ef71df262815ef2605afcb1","size":6019,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.2.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.2.0_1764760878151_0.782976821287076"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-03T11:21:18.338Z","publish_time":1764760878338,"_source_registry_name":"default","_cnpm_publish_time":1764760878338},"1.1.0":{"name":"@putout/plugin-variables","version":"1.1.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables","for-of"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-for-of":"*","@putout/plugin-maybe":"*","@putout/plugin-minify":"*","@putout/plugin-remove-useless-array-from":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"v10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","madrun":"^11.0.0","nodemon":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.1.0","gitHead":"6b85c9bb015e0e147dd46892e3b427943b9ec967","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"e898f41fae487744c3a43ce79267c7ef5225e372","size":4657,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.1.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.1.0_1764675303726_0.9011377898598891"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-02T11:35:03.940Z","publish_time":1764675303940,"_source_registry_name":"default","_cnpm_publish_time":1764675303940},"1.0.0":{"name":"@putout/plugin-variables","version":"1.0.0","type":"module","author":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com","url":"https://github.com/coderaiser"},"description":"🐊Putout plugin adds ability to find and remove useless","homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","main":"lib/index.js","release":false,"tag":false,"changelog":false,"repository":{"type":"git","url":"git+https://github.com/coderaiser/putout.git"},"scripts":{"test":"madrun test","watch:test":"madrun watch:test","lint":"madrun lint","fresh:lint":"madrun fresh:lint","lint:fresh":"madrun lint:fresh","fix:lint":"madrun fix:lint","coverage":"madrun coverage","report":"madrun report"},"dependencies":{},"keywords":["putout","putout-plugin","putout-plugin-remove","plugin","remove","useless","variables","for-of"],"devDependencies":{"@putout/eslint-flat":"^3.0.0","@putout/plugin-declare":"*","@putout/plugin-maybe":"*","@putout/plugin-remove-useless-array-from":"*","@putout/plugin-reuse-duplicate-init":"*","@putout/test":"^14.0.0","c8":"^10.0.0","eslint":"v10.0.0-alpha.0","eslint-plugin-n":"^17.0.0","eslint-plugin-putout":"^29.0.0","madrun":"^11.0.0","nodemon":"^3.0.1"},"peerDependencies":{"putout":">=41"},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"_id":"@putout/plugin-variables@1.0.0","gitHead":"0f6227530ff146628167eda09c9eefdb95689e85","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"_nodeVersion":"25.2.1","_npmVersion":"11.4.2","dist":{"shasum":"a5a0f641c0d4cd0726e49fa9da313cd5f88d8911","size":4131,"noattachment":false,"key":"/@putout/plugin-variables/-/@putout/plugin-variables-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/@putout/plugin-variables/download/@putout/plugin-variables-1.0.0.tgz"},"_npmUser":{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"},"directories":{},"maintainers":[{"name":"coderaiser","email":"mnemonic.enemy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/plugin-variables_1.0.0_1764602418053_0.8362503852066474"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-01T15:20:18.256Z","publish_time":1764602418256,"_source_registry_name":"default","_cnpm_publish_time":1764602418256}},"readme":"# @putout/plugin-variables [![NPM version][NPMIMGURL]][NPMURL]\n\n[NPMIMGURL]: https://img.shields.io/npm/v/@putout/plugin-variables.svg?style=flat&longCache=true\n[NPMURL]: https://npmjs.org/package/@putout/plugin-variables \"npm\"\n\n> A **variable** is a named reference to a **value**.\n>\n> (c) [MDN](https://developer.mozilla.org/en-US/docs/Glossary/Variable)\n\n????[**Putout**](https://github.com/coderaiser/putout) plugin adds ability to transform `variables`.\n\n## Install\n\n```\nnpm i @putout/plugin-variables -D\n```\n\n## Rules\n\n- ✅ [apply-declarations-order](#apply-declarations-order);\n- ✅ [convert-const-to-let](#convert-const-to-let');\n- ✅ [extract-keywords](#extract-keywords');\n- ✅ [reuse-duplicate-init](#reuse-duplicate-init);\n- ✅ [remove-useless-assignment](#remove-useless-assignmenn);\n- ✅ [remove-useless-declaration](#remove-useless-declaration);\n- ✅ [remove-useless-duplicate](#remove-useless-duplicate);\n- ✅ [remove-useless-variables](#remove-useless-variables);\n- ✅ [remove-useless-rename](#remove-useless-rename);\n- ✅ [remove-unused](#remove-unused);\n- ✅ [split-declarations](#split-declarations);\n\n## Config\n\n```json\n{\n    \"rules\": {\n        \"variables/apply-declarations-order\": \"on\",\n        \"variables/convert-const-to-let\": \"on\",\n        \"variables/extract-keywords\": \"on\",\n        \"variables/reuse-duplicate-init\": \"on\",\n        \"variables/remove-useless-assignment\": \"on\",\n        \"variables/remove-useless-declaration\": [\"on\", {\n            \"maxLength\": 20\n        }],\n        \"variables/remove-useless-duplicate\": \"on\",\n        \"variables/remove-useless-rename\": \"on\",\n        \"variables/remove-useless-remove\": \"on\",\n        \"variables/remove-unused\": \"on\",\n        \"variables/split-declarations\": \"on\"\n    }\n}\n```\n\n## apply-declarations-order\n\nHelps to [reuse duplicate init](#reuse-duplicate-init'). Checkout in ????[**Putout Editor**](https://putout.vercel.app/#/gist/b70ff926b36e1e97ec7129aa0e0458a7/ece0a706de2fd24a66b4671284f7f75017f3c268).\n\n### ❌ Example of incorrect code\n\n```js\nconst {env} = require('node:process');\nconst process = require('node:process');\n```\n\n### ✅ Example of correct code\n\n```js\nconst process = require('node:process');\nconst {env} = process;\n```\n\n## assignment\n\nCheckout in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/a2f7fe5e2c294443576f95dce6fde67e/0699ccb4f7335e8e3f80de891913a8e3ad4f35e3).\n\n### ❌ Example of incorrect code\n\n```js\nwhile (!(files = readDirectory(parentDir)).length) {}\n```\n\n### ✅ Example of correct code\n\n```js\nwhile (!readDirectory(parentDir).length) {}\n```\n\n## reuse-duplicate-init\n\n> Functions are one of the fundamental building blocks it contains set of statements that performs a calculations, takes some input and returns an output. To use a function, you must define it somewhere in the scope from which you wish to call it.\n>\n> (c) [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions)\n\n????[**Putout**](https://github.com/coderaiser/putout) plugin adds ability to reuse duplicate init.\n\n### ❌ Example of incorrect code\n\n```js\nconst putout = require('putout');\n\nconst {\n    a,\n    b,\n    operator,\n} = require('putout');\n\nconst {replaceWith} = operator;\n```\n\n### ✅ Example of correct code\n\n```js\nconst putout = require('putout');\n\nconst {\n    a,\n    b,\n    operator,\n} = putout;\n\nconst {replaceWith} = operator;\n```\n\n## remove-useless-rename\n\n### ❌ Example of incorrect code\n\n```js\nfunction hi(a) {\n    const b = a;\n}\n```\n\n### ✅ Example of correct code\n\n```js\nfunction hi(b) {}\n```\n\n## remove\n\n### ❌ Example of incorrect code\n\n```js\nconst child_process = require('node:child_process');\n\nconst {exec, spawn} = child_process;\n```\n\n### ✅ Example of correct code\n\n```js\nconst {exec, spawn} = require('node:child_process');\n```\n\n### remove\n\nCheck it out in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/041767876a6d41c82260b293a06c2b6b/addf2b49cf9235d9b7a1017065cec5dece232660).\n\n### ❌ Example of incorrect code\n\n```js\nconst a = 5;\nconst b = a;\n\nconst c = 5;\n\nd = c;\n```\n\n### ✅ Example of correct code\n\n```js\nconst b = 5;\n\nd = 5;\n```\n\n### remove-useless-declaration\n\nCheck it out in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/32177535829956ef4c7b51587a8853c3/1fe071ff6542dc66ffad55f4776733903ab07241).\n\n### ❌ Example of incorrect code\n\n```js\nfunction x() {\n    const a = 5;\n    return a;\n}\n\nconst z = b.c.replace('x', 'y');\n\nb.c = z;\n```\n\n### ✅ Example of correct code\n\n```js\nfunction x() {\n    return 5;\n}\n\nb.c = b.c.replace('x', 'y');\n```\n\n### remove-useless-duplicate\n\nCheck it out in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/32177535829956ef4c7b51587a8853c3/52f19ab0e467ad7cc54fa8c554c3b0804de9d1ca).\n\n### ❌ Example of incorrect code\n\n```js\nconst DestructuringErrors = function DestructuringErrors(a, b) {\n    return [a, b];\n};\n```\n\n### ✅ Example of correct code\n\n```js\nfunction DestructuringErrors(a, b) {\n    return [a, b];\n}\n\nbc = b.c.replace('x', 'y');\n```\n\n## remove-unreferenced\n\n### ❌ Example of incorrect code\n\n```js\nlet a;\nlet b;\n\na = 5;\nb = 6;\n\nconsole.log(a);\n```\n\n### ✅ Example of correct code\n\n```js\nlet a;\n\na = 5;\n\nconsole.log(a);\n```\n\n## split-declarations\n\n> - The [`let`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let) statement declares a block-scoped local variable, optionally initializing it to a value.\n> - [`const`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const) statements are also block-scoped. The value of a constant can't be changed through reassignment, and it can't be redeclared. However, if a constant is an **object** or **array** its properties or items can be updated or removed.\n>\n> (c) MDN\n\nAdd ability to find and split variable declarations because (re)moving a line is simpler and less error prone then changing coma (`,`) to colon (`;`).\nFor the same reason, **diff** of changed declarations are more comfortable to read.\n\n### ❌ Example of incorrect code\n\n```js\nlet a, b;\n```\n\n### ✅ Example of correct code\n\n```js\nlet a;\nlet b;\n```\n\n### Comparison\n\nLinter | Rule | Fix\n--------|-------|------------|\n???? **Putout** | [`remove-debugger`](https://github.com/coderaiser/putout/tree/master/packages/plugin-split-variable-declarations#readme) | ✅\n⏣ **ESLint** | [`no-var`](https://eslint.org/docs/latest/rules/one-var) | ✅\n\n## convert-const-to-let\n\n> The `TypeError` object represents an error when attempting to modify a value that cannot be changed.\n>\n> (c) [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError)\n\nConvert `const` to `let` to avoid `TypeError`.\nCheck out in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/61ffff64a356c47e66af4ea17a9a755d/e7f5fa455c208a7faa9319d94130996d39afcbf7).\n\n### ❌ Example of incorrect code\n\n```js\nlet a = 5;\n\na = 3;\n```\n\n### ✅ Example of correct code\n\n```js\nlet a = 5;\n\na = 3;\n```\n\n## remove-unused\n\n> A variable is a container for a value, like a `number` we might use in a sum, or a `string` that we might use as part of a sentence.\n>\n> (c) [MDN](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables)\n\n????[**Putout**](https://github.com/coderaiser/putout) plugin adds ability to find and remove the variables that are declared, but:\n\n- not passed as **argument** to a **function**;\n- not used as **operand** in **expression**;\n\nThat is **unused variables**. Most likely it is a leftovers due to incomplete transforming of the code. Such variables take up space and gives no value so they must be removed.\n\n☝️*Remember, when you [writing a transform](https://github.com/coderaiser/putout/tree/master/packages/engine-runner#readme) you can skip all parts related to **removing unused variables** and just reuse current **plugin** it will make your code simpler and less error prone.*\n\n☝️*No, you cannot just look at [`referenced` and `constant` fields](https://github.com/jamiebuilds/babel-handbook/blob/master/translations/en/plugin-handbook.md#user-content-bindings) to determine if you can remove variable and [here is why](https://putout.cloudcmd.io/#/gist/4277392f74b56b74911b779c9624af8d/cfec476f857dfb4f4c7a6247bdcc6b521fed8e70) one of the biggest plugins exists*.\n\n### ❌ Example of incorrect code\n\n```js\nconst a = 'hello';\nconst b = 'world';\n\nconsole.log(a);\n```\n\n### ✅ Example of correct code\n\n```js\nconst a = 'hello';\nconsole.log(a);\n```\n\n## Comparison\n\nLinter | Rule | Fix\n--------|-------|------------|\n???? **Putout**| [`remove-unused-variables`](https://github.com/coderaiser/putout/tree/master/packages/plugin-remove-unused-variables#readme)| ✅\n⏣ **ESLint** | [`no-unused-vars`](https://eslint.org/docs/rules/no-unused-vars) | ❌\n\n## extract-keywords\n\n> The JavaScript exceptions \"unexpected token\" occur when the parser does not see a token it recognizes at the given position, so it cannot make sense of the structure of the program. This might be a simple typo.\n>\n> (c) [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Unexpected_token)\n\nExtract `keywords` from variables. Check out in ????[**Putout Editor**](https://putout.cloudcmd.io/#/gist/fcaedaa9daf7f3a771274aca0da9ab1b/00850a5d28aec86b1b4083ba2ef9f81bd49aaaac).\n\n```diff\n-export const isTemplateMiddle = (a) => a?.type === 'TemplateMiddle',\n+export const isTemplateMiddle = (a) => a?.type === 'TemplateMiddle';\nexport const isTemplateTail = (a) => a?.type === 'TemplateTail';\n\n-const a 5;\n+const a = 5;\n\n-export const packContent = (content) {\n+export const packContent = (content) => {\n    console.log(a);\n}\n```\n\n## License\n\nMIT\n","_attachments":{},"homepage":"https://github.com/coderaiser/putout/tree/master/packages/plugin-variables#readme","bugs":{"url":"https://github.com/coderaiser/putout/issues"},"license":"MIT"}