{ "manifest": { "name": "eslint-scope", "description": "ECMAScript scope analyzer for ESLint", "homepage": "http://github.com/eslint/eslint-scope", "main": "./dist/eslint-scope.cjs", "type": "module", "exports": { ".": { "import": "./lib/index.js", "require": "./dist/eslint-scope.cjs" }, "./package.json": "./package.json" }, "version": "7.2.2", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "repository": { "type": "git", "url": "https://github.com/eslint/eslint-scope.git" }, "funding": "https://opencollective.com/eslint", "bugs": { "url": "https://github.com/eslint/eslint-scope/issues" }, "license": "BSD-2-Clause", "scripts": { "build": "rollup -c", "lint": "npm run build && node Makefile.js lint", "update-version": "node tools/update-version.js", "test": "npm run build && node Makefile.js test", "prepublishOnly": "npm run update-version && npm run build", "generate-release": "eslint-generate-release", "generate-alpharelease": "eslint-generate-prerelease alpha", "generate-betarelease": "eslint-generate-prerelease beta", "generate-rcrelease": "eslint-generate-prerelease rc", "publish-release": "eslint-publish-release" }, "files": [ "LICENSE", "README.md", "lib", "dist/eslint-scope.cjs" ], "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "devDependencies": { "@typescript-eslint/parser": "^4.28.1", "c8": "^7.7.3", "chai": "^4.3.4", "eslint": "^7.29.0", "eslint-config-eslint": "^7.0.0", "eslint-plugin-jsdoc": "^35.4.1", "eslint-plugin-node": "^11.1.0", "eslint-release": "^3.2.0", "eslint-visitor-keys": "^3.3.0", "espree": "^9.3.1", "mocha": "^9.0.1", "npm-license": "^0.3.3", "rollup": "^2.52.7", "shelljs": "^0.8.4", "typescript": "^4.3.5" }, "_registry": "npm", "_loc": "/home/josie/.cache/yarn/v6/npm-eslint-scope-7.2.2-integrity/node_modules/eslint-scope/package.json", "readmeFilename": "README.md", "readme": "[![npm version](https://img.shields.io/npm/v/eslint-scope.svg)](https://www.npmjs.com/package/eslint-scope)\n[![Downloads](https://img.shields.io/npm/dm/eslint-scope.svg)](https://www.npmjs.com/package/eslint-scope)\n[![Build Status](https://github.com/eslint/eslint-scope/workflows/CI/badge.svg)](https://github.com/eslint/eslint-scope/actions)\n\n# 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## Install\n\n```\nnpm i eslint-scope --save\n```\n\n## 📖 Usage\n\nTo use in an ESM file:\n\n```js\nimport * as eslintScope from 'eslint-scope';\n```\n\nTo use in a CommonJS file:\n\n```js\nconst eslintScope = require('eslint-scope');\n```\n\nExample:\n\n```js\nimport * as eslintScope from 'eslint-scope';\nimport * as espree from 'espree';\nimport estraverse from 'estraverse';\n\nconst ast = espree.parse(code, { range: true });\nconst scopeManager = eslintScope.analyze(ast);\n\nconst currentScope = scopeManager.acquire(ast); // global scope\n\nestraverse.traverse(ast, {\n enter (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(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", "licenseText": "Copyright JS Foundation and other contributors, https://js.foundation\nCopyright (C) 2012-2013 Yusuke Suzuki (twitter: @Constellation) and other contributors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\nARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\nTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n" }, "artifacts": [], "remote": { "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "type": "tarball", "reference": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "hash": "", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "registry": "npm", "packageName": "eslint-scope", "cacheIntegrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== sha1-3rT5JWM5DzIAaJSvYqItuhxGQj8=" }, "registry": "npm", "hash": "74eb76d4eee54cc84333e5fd981e065fe0d9ad9b425093cbff095c4eac72af1e48bced0862d20b76dad0190a7ef27e52d20c1256639ff4d42b8cc3a07d066522" }