{"maintainers":[{"email":"nicholas@nczconsulting.com","name":"nzakas"},{"email":"nicholas+eslint@nczconsulting.com","name":"eslint"},{"email":"ivolodin@gmail.com","name":"ivolodin"}],"dist-tags":{"latest":"3.7.1"},"description":"ECMAScript scope analyzer for ESLint","readme":"# ESLint Scope\n\nESLint Scope is the [ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) scope analyzer used in ESLint. It is a fork of [escope](http://github.com/estools/escope).\n\n## Usage\n\nInstall:\n\n```\nnpm i eslint-scope --save\n```\n\nExample:\n\n```js\nvar eslintScope = require('eslint-scope');\nvar espree = require('espree');\nvar estraverse = require('estraverse');\n\nvar ast = espree.parse(code);\nvar scopeManager = eslintScope.analyze(ast);\n\nvar currentScope = scopeManager.acquire(ast);   // global scope\n\nestraverse.traverse(ast, {\n    enter: function(node, parent) {\n        // do stuff\n\n        if (/Function/.test(node.type)) {\n            currentScope = scopeManager.acquire(node);  // get current function scope\n        }\n    },\n    leave: function(node, parent) {\n        if (/Function/.test(node.type)) {\n            currentScope = currentScope.upper;  // set to parent scope\n        }\n\n        // do stuff\n    }\n});\n```\n\n## Contributing\n\nIssues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/eslint-scope/issues).\n\n## Build Commands\n\n* `npm test` - run all linting and tests\n* `npm run lint` - run all linting\n\n## License\n\nESLint Scope is licensed under a permissive BSD 2-clause license.\n","repository":{"type":"git","url":"git+https://github.com/eslint/eslint-scope.git"},"bugs":{"url":"https://github.com/eslint/eslint-scope/issues"},"license":"BSD-2-Clause","versions":{"3.7.0":{"name":"eslint-scope","description":"ECMAScript scope analyzer for ESLint","homepage":"http://github.com/eslint/eslint-scope","main":"lib/index.js","version":"3.7.0","engines":{"node":">=4.0.0"},"repository":{"type":"git","url":"git+https://github.com/eslint/eslint-scope.git"},"bugs":{"url":"https://github.com/eslint/eslint-scope/issues"},"license":"BSD-2-Clause","scripts":{"test":"node Makefile.js test","lint":"node Makefile.js lint","release":"eslint-release","ci-release":"eslint-ci-release","gh-release":"eslint-gh-release","alpharelease":"eslint-prerelease alpha","betarelease":"eslint-prerelease beta"},"files":["LICENSE","README.md","lib"],"dependencies":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"},"devDependencies":{"chai":"^3.4.1","eslint":"^3.15.0","eslint-config-eslint":"^4.0.0","eslint-release":"^0.10.1","espree":"^3.1.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-license":"^0.3.3","shelljs":"^0.7.6","typescript":"~2.0.10","typescript-eslint-parser":"^1.0.0"},"gitHead":"c9146c664b88d077a44118effa800734bafa907c","_id":"eslint-scope@3.7.0","_shasum":"d95536f4081dee922e5fd60ed6795748ca54bb76","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"ivolodin","email":"ivolodin@gmail.com"},"dist":{"shasum":"d95536f4081dee922e5fd60ed6795748ca54bb76","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/eslint-scope/-/eslint-scope-3.7.0.tgz"},"maintainers":[{"name":"ivolodin","email":"ivolodin@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/eslint-scope-3.7.0.tgz_1489788609116_0.35722322948276997"},"directories":{}},"3.7.1":{"name":"eslint-scope","description":"ECMAScript scope analyzer for ESLint","homepage":"http://github.com/eslint/eslint-scope","main":"lib/index.js","version":"3.7.1","engines":{"node":">=4.0.0"},"repository":{"type":"git","url":"git+https://github.com/eslint/eslint-scope.git"},"bugs":{"url":"https://github.com/eslint/eslint-scope/issues"},"license":"BSD-2-Clause","scripts":{"test":"node Makefile.js test","lint":"node Makefile.js lint","release":"eslint-release","ci-release":"eslint-ci-release","gh-release":"eslint-gh-release","alpharelease":"eslint-prerelease alpha","betarelease":"eslint-prerelease beta"},"files":["LICENSE","README.md","lib"],"dependencies":{"esrecurse":"^4.1.0","estraverse":"^4.1.1"},"devDependencies":{"chai":"^3.4.1","eslint":"^3.15.0","eslint-config-eslint":"^4.0.0","eslint-release":"^0.10.1","espree":"^3.1.1","istanbul":"^0.4.5","mocha":"^3.2.0","npm-license":"^0.3.3","shelljs":"^0.7.6","typescript":"~2.0.10","typescript-eslint-parser":"^1.0.0"},"gitHead":"bec1febf351ae7137a62241c18eb78876ee4fb7f","_id":"eslint-scope@3.7.1","_shasum":"3d63c3edfda02e06e01a452ad88caacc7cdcb6e8","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.1","_npmUser":{"name":"ivolodin","email":"ivolodin@gmail.com"},"dist":{"shasum":"3d63c3edfda02e06e01a452ad88caacc7cdcb6e8","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/eslint-scope/-/eslint-scope-3.7.1.tgz"},"maintainers":[{"name":"eslint","email":"nicholas+eslint@nczconsulting.com"},{"name":"ivolodin","email":"ivolodin@gmail.com"},{"name":"nzakas","email":"nicholas@nczconsulting.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/eslint-scope-3.7.1.tgz_1492031610481_0.544424896594137"},"directories":{}}},"name":"eslint-scope","time":{"modified":"2017-07-12T23:09:35.003Z","created":"2017-03-17T22:10:11.109Z","3.7.0":"2017-03-17T22:10:11.109Z","3.7.1":"2017-04-12T21:13:31.158Z"},"readmeFilename":"README.md","homepage":"http://github.com/eslint/eslint-scope"}