{"_id":"eslint-template-visitor","_rev":"15-009357a3b620d807c49ce623827328a4","name":"eslint-template-visitor","dist-tags":{"latest":"2.3.2"},"versions":{"0.0.0-alpha.1":{"name":"eslint-template-visitor","version":"0.0.0-alpha.1","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":"^5.13.0"},"devDependencies":{"ava":"^1.4.1","coveralls":"^3.0.3","eslint":"^5.13.0","eslint-config-xo-overrides":"^1.3.0","esrecurse":"^4.2.1","nyc":"^14.0.0","ramda":"^0.26.1","reserved-words":"^0.1.2","seedrandom":"^3.0.1","shift-codegen":"^6.0.0","shift-fuzzer":"^1.0.2","shift-parser":"^6.0.1","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^7.2.3","xo":"^0.24.0"},"dependencies":{"eslint-visitor-keys":"^1.0.0","espree":"^5.0.1","multimap":"^1.0.2"},"xo":{"extends":["eslint-config-xo-overrides"]},"scripts":{"test":"xo && nyc ava --verbose"},"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor)","_id":"eslint-template-visitor@0.0.0-alpha.1","dist":{"shasum":"44bd6826f6a1a67d18688ba42a49d0bfd88bd717","integrity":"sha512-TwzxZQycVJgzLOoZ+vuOhzSjAHACpCTporono6od1AWnFYBFSGANuOHXJLaY/P8fZa7/6hp2ucDAimfyHkhUwQ==","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-0.0.0-alpha.1.tgz","fileCount":15,"unpackedSize":20457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcv5dnCRA9TVsSAnZWagAAiNIP/00ZsioKYFeGdT2GINvA\n5oNtf8SZjXM1lQ2n++2knHmX2Botf3xJ0jZDxA2dDE24cFdCv74YbOaFFCzI\nbV6NcK6I3HdEkcJ9iWqg86u7P/9LsU5YiSWeDHPBcp0XpCgnwP52CPD0wdsw\nkzmL61hCJnb/4Wj4BPffYWAeReyPQcbdt9M+qu4GFmGuOsWjdmJLb4V+O9NH\nnYGmP2SJCvgvmBqWIDl1W7sJ1laN/s4jHx7Nwh8G88CHHdrVgqJPkSdKG2YR\nZsn3kT7MK0dMgjZ7XOdQK6zl7OGI6ZjWGxeN3lPPy3sA/M/or6HYCc1NyYyq\nSmXpFduw20XQP8vbB2Sraxt9PyIHMa78iSfwi3jRwKJlVgL24af9dVw5wW4J\nb7fi0xMAuLPt0Ul84NphLsWO53mosHd2aSyFZkTEY5UU9SQiu1IU7nIERT4V\nfpRv2YXHT7ellVyH9/IJmhVWB+m0P3Fp6BWpBToac+T05jF7L5T7w76xoWdh\nxLsc/dLZBGpzhQ3KQiwPN4dXdpkEOGhg7pGi+ZENDiXNYBNNXISx9vgsHgbu\nLMkpAvtywD01hw1N6ay2/virvcL8aXqpXhKximRhWmt8CGSZHsraPMycYcSa\n0okBdtX/LwoIDDM7EI2lZ4Xx8kZPSriZdKZmR3/n2EUAub/5N2CaUM/KcK0Q\nFGLh\r\n=B7Ze\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDv7r3tyV1VMxKfDUdg6dwP5kb+iB/O8MQtLtxqsC/kzAiAK3kmRJu/zpW3fpUkkUGV06etTbkO/2socdf5JHs/90A=="}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_0.0.0-alpha.1_1556060006991_0.43555271169422904"},"_hasShrinkwrap":false},"0.0.0-alpha.2":{"name":"eslint-template-visitor","version":"0.0.0-alpha.2","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":"^5.13.0"},"devDependencies":{"ava":"^1.4.1","coveralls":"^3.0.3","eslint":"^5.13.0","eslint-config-xo-overrides":"^1.3.0","esrecurse":"^4.2.1","nyc":"^14.0.0","ramda":"^0.26.1","reserved-words":"^0.1.2","seedrandom":"^3.0.1","shift-codegen":"^6.0.0","shift-fuzzer":"^1.0.2","shift-parser":"^6.0.1","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^7.2.3","xo":"^0.24.0"},"dependencies":{"eslint-visitor-keys":"^1.0.0","espree":"^5.0.1","multimap":"^1.0.2"},"xo":{"extends":["eslint-config-xo-overrides"]},"scripts":{"test":"xo && nyc ava --verbose"},"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor)","_id":"eslint-template-visitor@0.0.0-alpha.2","dist":{"shasum":"b35fb8ffa72d8d11b6e09e8c356005c60c95bc60","integrity":"sha512-PFE2HXV6lqaDunfZbHsVZB9vLaQtCtdkJ5YDddr0od2nks0fvclFddUm9S7IvYuAtOzyLNGrx4YDtoGQ5k86PA==","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-0.0.0-alpha.2.tgz","fileCount":16,"unpackedSize":20492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcv5hACRA9TVsSAnZWagAAMIoQAIWYB5fzcxewfGjEY/HB\n/oCQbLvYMwYgSLmXWJLY+G7ySZUDBW7qYB7nONKqpOXpqdGd77NnwUv330AB\nxYbU8OjAqDBUk72dOAVacCnpR5zbYMMx/Tca8JmhftrBmkZD2YSj93oBqW4o\nHmaBxJjQct5cVG3stAgK7adqzGNjiVUGdaZ4sNFthCAxoKOK9/wSkn/4nHsN\nX2Ti4QSyZ4n3BS2/hzN9acrxxBzgLv30G5K/1eRGdX4n4QYxuBFyqRP90tVD\n4/371F5L+Bhd8RXT0kpXkZ4PET2WrcvcYXjd0iHQN1v9AzljCIffAaEzvUNa\noFHH7JBpD/jbgQ+n7zb+HPR5VDync17llbkvIOh1L+i8uU4MIh9lATBq+XJ5\noHqKqkP19tJ6YJD5oYnalJ0fvjiVmVQBcCn8ZGGI1Oa+DC4om/lwKnvBsI7Y\nYlG/U253gVXsgQvrH9pPEWpEA13OLR3ATZo87nQaNtKkgyINOaZBbGBuFwXe\nlGff1YDc4Mkt1GKRjRG4Kd1/i5qbFtqqTJMq6UdYMskHxTrJqjIpJqpPukGc\nEXSU+HgGdnbNVdRo3XX1o8RbPO+tTl+C/xGiD7mqSDcFNT0rM7uMKbR7/ARs\n+EYXG3zjiS9rbdFrjkw+FJiEpJV2Xqqgy8ai9C/lIWAl6vR3f1hLcXqkfa80\nwY/a\r\n=kdRR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCigZAHa42ReTUhkqKkorhkxHL65FFTgabll2MRVYH92wIhAPWOD5xhoJQ6x9W6W4J/Bv4Bge5HwIWpmhPGQsl8sI5U"}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_0.0.0-alpha.2_1556060223797_0.7312605442006599"},"_hasShrinkwrap":false},"0.0.0-alpha.3":{"name":"eslint-template-visitor","version":"0.0.0-alpha.3","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":"^5.13.0"},"devDependencies":{"ava":"^1.4.1","coveralls":"^3.0.3","eslint":"^5.13.0","eslint-config-xo-overrides":"^1.3.0","esrecurse":"^4.2.1","nyc":"^14.0.0","ramda":"^0.26.1","reserved-words":"^0.1.2","seedrandom":"^3.0.1","shift-codegen":"^6.0.0","shift-fuzzer":"^1.0.2","shift-parser":"^6.0.1","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^7.2.3","xo":"^0.24.0"},"dependencies":{"eslint-visitor-keys":"^1.0.0","espree":"^5.0.1","multimap":"^1.0.2"},"xo":{"extends":["eslint-config-xo-overrides"]},"scripts":{"test":"xo && nyc ava --verbose"},"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","_id":"eslint-template-visitor@0.0.0-alpha.3","dist":{"shasum":"ad232ea8bcc278f2ee49e0bf178ad6ac5e705e57","integrity":"sha512-xIFX6u3Ug4zYw3jNzrdbSbsplhBnYqcdgRWztj3vlDFhwbFArU9UjuuESseYGVZ8KIm8NcBOdiBOJDKPRWYN/A==","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-0.0.0-alpha.3.tgz","fileCount":16,"unpackedSize":20758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcw2RrCRA9TVsSAnZWagAA+uQP/iACn/I3tzYX8bOo+IwX\nyzx95E3h0y5WfzY+1QyzVv5Cf0tPOeU3jHbNOF8XM/40wfcvzFZVJw/c8t8z\nBH2E/00oVMxg3PmfV4bO2c6SioFN8pmRp2vb5cgZRnoTRZje2prYzmdZu34U\nleyZDTNh6bf5tR4UxAE6GlIlrC8fGtXPp0bof3O4QdoPtt5NT4zCCdzu1PDX\n+6gRXce9ZeXLemXRbGt+XLsPFlgzpt54T6sI/IZX4whQPD3PfzAK6hS/2+Gb\nPQb3v0sVAOmRvhobuiB6UefboTE9UqJ/gX6qdc+hO6XSBYgjrYgds+KsOC0L\nEMczYpjih8RKM8mPUDZm3rJzp1pXRuOBfoMgw/idrkw3WvA6mUsx0wFEWxLz\n+36nyoRj6bM7Smo+MMCuq9bjJpHsod5yVbPCkG0UT+5UU33fsRDCm05X6wGh\n3JrhPVh6EzCYO2nQSS3lr5HFH72mkavJnN+5Gle0rwzuOUSKNY/zc156yLgh\nzihziu2PMC1gMQ789bwI6f1vwjnOyZCbcX7K2qmOg5n+Uv5+usLQoUvUbxO6\ntTazi/D0D03T6Weh9GrplFCKeMjQG2zeXto/5mPpFx0vtlHyS+cPXGw0oU8n\nuYNs9jzRAeD/UHkQIbOrGfB564mlJTNuTStPr5n852qGxyWr9qCQ7AzCoKvI\nwajf\r\n=RU+M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZfgE89QZUpHbZrnGnlqyrJJK7JYvZ6TmmdQmmBP8rVwIhAInIoM7JHcrZuOHnY95G0m9gp9IlFU1SZ0Sh3uCrS0gl"}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_0.0.0-alpha.3_1556309099078_0.0887852406283256"},"_hasShrinkwrap":false},"1.0.0":{"name":"eslint-template-visitor","version":"1.0.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":"^5.13.0"},"devDependencies":{"ava":"^2.4.0","coveralls":"^3.0.6","eslint":"^6.4.0","eslint-ava-rule-tester":"^3.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^14.1.1","ramda":"^0.26.1","reserved-words":"^0.1.2","seedrandom":"^3.0.3","shift-codegen":"^6.0.0","shift-fuzzer":"^1.0.2","shift-parser":"^7.0.0","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^7.4.2","xo":"^0.24.0"},"dependencies":{"eslint-visitor-keys":"^1.1.0","espree":"^6.1.1","multimap":"^1.0.2"},"xo":{"extends":["eslint-config-xo-overrides"]},"scripts":{"test":"xo && nyc ava --verbose"},"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","_id":"eslint-template-visitor@1.0.0","dist":{"shasum":"f67daedda2916df890189df2e8532f711769950a","integrity":"sha512-hYf2FFoe0eNGQZbUMtYgRXPFPR9nnMm9qV+H1njO094fFks6QILzJKpAXbjwSJZ+XJw8X5gt/9WS2z35ou7/kQ==","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-1.0.0.tgz","fileCount":23,"unpackedSize":31744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdf8zpCRA9TVsSAnZWagAAXoMP/iwIodzxCjvg7bAQbX+1\n+S4E6yS/AM5iyOngxfmQEeHCZlDRF6G2e2XHyX6qDSKSqxMUUt6Gvb8ik2mL\nNbUaQ93b3axuAPpj5gC3o7w4qccehN8FiJpXmaK8j5+YDdd4OwmmV3tzpHtS\nXSGeDrHGQKZVsw26XmLU+FMv5U4Y2R/IrMrYegG7aMQmRJqMw9rFopXWBHRY\nwyWpPD9n4LrBST6DqkRILImfbkIsRS6blaX7XcpHvNGTip41oT0e9oTgHbJc\ngCEDojwNRnNvHDp5ElmgX2D8dw42R88qjH8HMrVmTrv3YAvs3lE+QAk7Ntj+\nLFlZZT/PnFH2vKF+tZEv5280J7hWyFr8n4RU2zXnQghVeR959nu/+shWvQ4K\nF0x7BRHctNI2IyDuBn/TeWRRIZiHhLkosPw8l8gcXE2b4pL9HwY7x3gNNCYk\ntleaPc8sGS1GElmpWX75z0k2tiXsB0OY3UGcijOpebI2D9piTfED11xe+m+t\nhcXOeoVXyGVQ+1Dit+kIndJZsyZ7Q5Uolu3oMlOsFmaYbaBbM7/48zKgEEdv\nbdC5Gk+X7lKLs+9RR8zvKjpXsaad3ll4Mmd2Lj5QyV/QbM1ynd6iznc9buyO\nuZxWLkw3xAvOoJPaKsj/9UnJOdGQpy8VQxPhmv0sHLjYmNat8oGaRomKr0py\nGJ4V\r\n=Golq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICyeCbWSimZ0z/uxHVK/94oL2ZiLs9yaYpeEvgTKr/9rAiAGSmYmYUPIVB55JYPMbIKVxVZltXEPtQ9+aAU8Mzo8SQ=="}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_1.0.0_1568656617031_0.4446780724671491"},"_hasShrinkwrap":false},"1.1.0":{"name":"eslint-template-visitor","version":"1.1.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":"^6.4.0"},"devDependencies":{"ava":"^2.4.0","coveralls":"^3.0.6","eslint":"^6.4.0","eslint-ava-rule-tester":"^3.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^14.1.1","ramda":"^0.26.1","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^6.0.0","shift-fuzzer":"^1.0.2","shift-parser":"^7.0.0","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^7.5.0","xo":"^0.24.0"},"dependencies":{"eslint-visitor-keys":"^1.1.0","espree":"^6.1.1","multimap":"^1.0.2"},"xo":{"extends":["eslint-config-xo-overrides"]},"scripts":{"test":"xo && nyc ava --verbose"},"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","_id":"eslint-template-visitor@1.1.0","dist":{"shasum":"f090d124d1a52e05552149fc50468ed59608b166","integrity":"sha512-Lmy6QVlmFiIGl5fPi+8ACnov3sare+0Ouf7deJAGGhmUfeWJ5fVarELUxZRpsZ9sHejiJUq8626d0dn9uvcZTw==","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-1.1.0.tgz","fileCount":22,"unpackedSize":31840,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdi/XhCRA9TVsSAnZWagAADMUP/AgsehklIeMNyVdKksi6\n49aXPRqW8rsN/EG55awqDQ2RAHwi5VWYZFXSchZC7Wbf3YScZa/bszAQLqV5\n9iirS+VF3+wRQtJ3+ZcmuOBDaCGnTmiaN+/Jzg0mLkxa+PC+yp3A/5GRYwp1\nJJNx1f/MiBezkdNm86AAlwak45SmIdf+ugAa1l9epo5z8fe0h74oMd0p6Hy3\nYn6OPCcUNpZNKX/1M0fP36phY7ZsL/UsbakGtsTu2+NGtyb28/3TsnaxT9hy\n8SaX2wVDsvtobdRO70Q2zcDycBZtUVQe0h06pdfhq6aQZL0xvrPig4HzQBSt\n1dZ2FPyoL3mU6gxf0kwE5IJkW7UnNM7JRiuGzX3hhzfjzQ44jCmzBzLVa5Bc\nW1fypidC6q6E6VWAsDdTN91mQtBiQFWdo2LeBrSxyqdxl2jAmsS7Qk7L+CO/\nX//Z+TlKVK4QO4gkTr1NAzg0IuGP54VjKH+FP3+aPsxeWSJ6Mu8IPGNon3M8\nLCyfb7mdVoCF8kVstgenwo7UccrqYdaj08/GJtIox3XBJsAwzJVwQUZIUREi\n/3Fu+VHWXFYB0xfbIa6b6lFLbH57sB5GwywW5JBkACZtc7zL5LEIr5akaKnV\n2QTami3k+CpjPX26c6RR+gMN7b8FVmedgvXTSZ2HMqexbQN9EIWp5JsK49zr\nMIPd\r\n=4NoC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICt5pYb2TVOATtDrDuHk/9pPg3bARfaLJ0qxHSg1W7rSAiAhd7EUk+GJiVVvXO4T5iJaRPn5WUoYwinqXHpZkmIsqw=="}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_1.1.0_1569453536692_0.2912266518731512"},"_hasShrinkwrap":false},"2.0.0":{"name":"eslint-template-visitor","version":"2.0.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.8.2","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.0.1","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.0","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.30.0"},"dependencies":{"eslint-visitor-keys":"^1.1.0","espree":"^7.0.0","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && nyc ava --verbose"},"gitHead":"298ac89a642e2b380951377cc1330d9180fede90","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","_id":"eslint-template-visitor@2.0.0","_nodeVersion":"14.1.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-WijrLXWk/TiiG9FBTeEeb2pj/nD8H4eKIYx1DhTv/c7QoFmelE5P+3gzKUcXWZz88AI2+Wjse9DTV8lXrhcUsw==","shasum":"7cb6471ed29a53ab28a1dcbfca38355251c2be06","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.0.0.tgz","fileCount":17,"unpackedSize":32020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevgjlCRA9TVsSAnZWagAAyQsP/imID0PYk4QDTJqWAJQv\nL3xOoNYNQYDMZCcASro699KfU8DdcPgp0xgwfcCOjNhsykJcAkTc9L1sa70F\nAPpZ6eryvXFpWUXNcuyI7KULmQH1+bm1JsMPr1oRplJFnNebmirDVzf/8h5M\nIl7IYA9jEy3ctlntBJQZLkz4J7HRjOkZVKONadTYr6lSiwU+2T8ACH3j6/mY\nwP4BUMeWRQXoLGYCVM9p1SNej605a6fIWXPXicuTxR6+zswy7pL8CMiZKGwy\nD8rxvO4fh1EU1PP8BSZ2imVtMoFqwUzIWmSDyITXi3iRbbIaAO61YJS7G6xJ\nwSphaXOW9yz/g/Ms9iWvnV24I8Ia/31Y7y98E7PnA+klFiU8VJvZfRYJa6RR\nVO2pCNYOqdlBqudg9dhx/RI5BS97KrtFiAf7/Wh+M1CiQZ0X4ifSgDzEQNHm\npDPS7eiqSh765sUX1A5+ZcEK1HkisX/URUbyWx7FYS3hqjkVXxqzgZef/8wo\n7x4h3gDJMLKYCxU14X8HcoAh1BBVDJCtP9ly9gEfgoFS+ZTXlx5GBFEtrXCw\n9SgccLNtbKZcd8cddJFUh/vDzYUgddgBz63WzFpY21A0qZhdcHq3vG0qFZDx\nlJEFiBNMocDMevwJbYPaA+ScsxTDNly2R6+dekWlNyxHq+iuK3bWbWG6J8wu\n2xVV\r\n=6hKv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7Oznl1ueqxcDYjUt1FPes86/vIYnr0sWlZOsQPwJIwQIhAOiSKrYMvOScEs1+SPAnVlUnmxpbam3ic3w9fJxVQQ63"}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.0.0_1589512420967_0.04561305899837431"},"_hasShrinkwrap":false},"2.1.0":{"name":"eslint-template-visitor","version":"2.1.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"eslint-visitor-keys":"^1.3.0","espree":"^7.1.0","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && nyc ava --verbose"},"gitHead":"59d212d55f959ff556c51c96ecca79e64ff8635f","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.1.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-/TPNO5c+FObiUqoZOH4kAPkPYQqaO3sEjCj1EE5xmbXlzhpUFbPAwB5iVwviJh/iv/Msf8vY/gRfgQDw2KYHtg==","shasum":"2c510a2be4b995ba5be66015d090401c771a04ef","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.1.0.tgz","fileCount":18,"unpackedSize":36290,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/x+yCRA9TVsSAnZWagAACh4P/1PE5BJiUOPX8cTXUfI6\niU8TIMV9uPuD+kzbtVJWlO/qi/0pUkqInuQw1s6jl3Xtm5MP7HIHlX0j7Myr\nyuceCv5RTxsK4yphFNFS+pTJ1UXHznwjXUEGdXK7se7VcPqIPcDKqczCQUBh\nTQgmTg9AqJVikKxjGDbcgF1rc7jbz/WA/CQ2OJVVM7/KLfRGsbtcS4eCeJgp\nx+oxEMzt/7bSIiWnqubf5p4BEsZ9HNW55rbD/Bpfu9Vbn6XxbszSxFvOuRho\nuj4MCLXpunPxbw2HzfPVuLl0G/8/aqkUh2v0BKY+BgiD9QG335DTbgCFXdVD\ngYABy6EPTB0qMDfd2PfjUjYlObQjB/zjsKB6sdhttvArB1UYwCJThFJZ8VTz\nDnKX+p/5JLecMn/pYK3F5+x+oQE9H1VqNB3VFx9VUw9k5ZCt7fsrC/Cu729T\nB3ZX54rhfOo9NFIYiIIgceE0AeolcOowG+rTft0xwmyotMFdUegTcMXxeM5N\nLZVq7zsuTQFplJqF0MOr6VxEFSOwqzMNf5DSYu0QoOQh75TLmsaJnXiTpcKy\nB3UtasjWIN3GSxZEKV3Ef4qqr1L7OwCDf4ciVWdkR/sX5bHY7GT53jnxHaUn\n2o1brycGUdvscEiEXm5wEfjAq79dpYwZPbomQmcbz9OyAc75DF3x2V1Exkvs\nVJrL\r\n=cTmD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7jspuYRScfeIE+gt6PSl/4ybZ05Cu5j0aevNfLlfJ1wIgEFaGfiTnj5CE1bXR/TtjoREeuV9T8JCtXpoPiFO3Dwo="}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.1.0_1593778097823_0.7808170676179498"},"_hasShrinkwrap":false},"2.1.1":{"name":"eslint-template-visitor","version":"2.1.1","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"eslint-visitor-keys":"^1.3.0","espree":"^7.1.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && nyc ava --verbose"},"gitHead":"aa0f37f0f306fd70c5221fe630e1211154d250b5","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.1.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-pJjukE5ofC+Q9x4QGwOBR1nz8ce1tZtsaZqgLY+riu84Lsv5gjvCDC5rjS/nLi8V5E5WwBlmVqAjcVtoCe0vFw==","shasum":"4fa46af0860bd73a686ea993dc3c492027816f67","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.1.1.tgz","fileCount":18,"unpackedSize":38232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/zDdCRA9TVsSAnZWagAA25kP/06HLd2veFr55K4w6y94\nP28Rcxb9sD44noJecnffobOGqYz1DNjUzSel19wvUveTOP1hOTF3qSucb7jR\n2bCq7ZnY+F3Hy2gQfF49hyduTKqWDxZ6TPx5YV2vzL377VsJaMoK0odbtyFO\njdx3N1Rgvgs84TGVAmRMkIfhZZmhzug5cwmKibP7OnTvLMeOUpR6zLfXm1yn\nWvNjjlgK8lFlhJKeqHu6It+9tr/vQgss+lDV6MEQoAnq4Lb6HXOKR5ZUZUL4\nVvxseEGPwsaNECXDSegDkH1worz7cauzyOi9MyJEJ10c/9lhpuK6x9IjPuq5\n/O3TY3wjq52vErW0F8S90o3150LySWVG5zs6D+FG+AMjrxynApAZ04cLMrLP\nX2IqAfkK6PaiVjROX0FXLxS82UkOZD5Fe/HqiI6chdv2HP5z8tnFdEchJfd/\nCEmmfYeVvIt03bt7wrrBRIU6RsR+A9bexuV8CpWm00Jc8LEq9A+Chp4OPcSi\nf9v67gVhJaG/AiXSiUS7FM/Os1aeD1Ht7E/uAkgofq3FuwUmlQIJt1y8Z0d8\n0Fn7sh3SDFdpI+LF6Zjfj4UDpwuvsMR1q3zkiXF3H+wVXsQNB+B6dNxrYxzK\nU2Dx0BiBiImE+3TMSGyeJWEsdlkc/yvOq9xACT6ukv5RTYjp+4orqyPqXFEM\nVOuO\r\n=e7nP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvblV6P3Y6RZK+DIAqmUUlWUpCJa/7EGD07s6yPqEDZwIhAPpjiToRRpYfGH8Cykv0htmq75jDt79tePDHppKN8gsQ"}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.1.1_1593782493452_0.1640750103489823"},"_hasShrinkwrap":false},"2.2.0":{"name":"eslint-template-visitor","version":"2.2.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"babel-eslint":"^10.1.0","eslint-visitor-keys":"^1.3.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=babel-eslint nyc ava --verbose"},"gitHead":"2c432bc6493624826fcd4aa57f3711b695f1826f","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.2.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6X476P0FLUg91l3wvyUU9ZI/KI2JM7BOKpbf4gZjLWW6K4slwcOQxHCWyIQ1bux5oDtOKDdhGQQVWWQGcxcdhA==","shasum":"f5718bdebf61455bbb37326c1204a8d7ccf4eb8c","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.0.tgz","fileCount":20,"unpackedSize":40793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/1nOCRA9TVsSAnZWagAAeacP/RwOH0eMQh5DIDxlvycu\n+mS7zbYIwHwJ4xeQ81XA3DrU3ug4xVfjYAukwpvIBcK+DnAKtO7mCagwEDjR\npeYyj3ezsTdU4fA4RL0lxSx8htfxRelg2c0NoVwBa/+LWuR5GSta8jPLA93J\nvhRRueZwJkFIbVmFxmiEUbjdgWxMxsnwlEcSp/evkSpkIxGN2Kp5dFRvxiX3\n4ivtZdPbrnGL3R2NniCNrnLOF5Hb6g250XPyQ+t+0oF75WKt0AvtVWKJtcbk\nSXXzcKYP6xDsfpuEJ0GD7lT9xBLqFJ42s9pGAvT9TI4Ln5npINAkYHmSO8+H\nal/EDq+0RhwcPZM2z7hNKxZgIvEh+gIzbg2+CM/nK4R251XfPdbm2j8AG8Vf\nSqdnCbl9KfOGjnI6kR0mhju6TU4wCr3Ac5vdbmd0vMj8/inICmxAKffZ5Djs\nvVix9at4KBf3+0nQ/w2ElpqzJqDQndmtVd5TJsNc1VubZ/z29FYW8iNaMPzZ\njBfAdNFf/ATEq2QHgY1eumcNRVaWn1/axOdBin5n/WbvkKidIRup8tQifEqf\nIJq9mBCclP+4VyPItXVF0JF5f3KMZJOUPi4yw6xH+gwsb6S1j7FNOVqcQI7m\nveFhIy8byA/Ru+zc6ig41PxSFsmVvjcDacpIjoL2tVNfD2qqUnPx5Yum6K8a\nBZcT\r\n=13bQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHG3fkS22b9giZnSR/VeoG5p0zvq97tbshHwhB8F2hHcAiAQnPYpFaBH9ONSoO1cdu78CckvoDVkimwRSNDBHQ0ODg=="}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.2.0_1593792974385_0.13479895114301343"},"_hasShrinkwrap":false},"2.2.1":{"name":"eslint-template-visitor","version":"2.2.1","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"babel-eslint":"^10.1.0","eslint-visitor-keys":"^1.3.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=babel-eslint nyc ava --verbose"},"gitHead":"7f96ae607e05950a6c5063542467b669b3b74530","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.2.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-q3SxoBXz0XjPGkUpwGVAwIwIPIxzCAJX1uwfVc8tW3v7u/zS7WXNH3I2Mu2MDz2NgSITAyKLRaQFPHu/iyKxDQ==","shasum":"2dccb1ab28fa7429e56ba6dd0144def2d89bc2d6","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.1.tgz","fileCount":20,"unpackedSize":41258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/3lUCRA9TVsSAnZWagAAoccP/jbiUCuZEbDJn8K0dR7N\nrsIdD9ecTB5DHzhSGXKp1cluCTr06bHETL3BFvlqZESfE7fDdFdIkzwxBnLA\nFsNA3yiWn3GzpdR6/x/DRqIWvad+d0RPS76onwR0TEZ8cUXILLGqSFnBd3nh\nUginMydyLSiVPdCoy4H8DpAwj0wpBgqj1ZadvX81FUlaAu170s5BFq75/1px\nIE54fI3azWEWVacbKFwW/Gdvsl2VbFhf6kEqA+Q80wsS9bqN8cZ0jn+E67tr\nIzq/7owuScm6EyWByjDPlaadArVRf2Sa1KfDEJFvslG6yGz6GImWFZuvZmFr\nwrWTYVUkqCdOvjXuKvwxFc4SMcpyx39VJztH93g/YNzBJDsXPB8S+7aWVR+w\nrE1h5Xoiuju1aRD4NV/q2XXOWgKSC4ZNDAaesNYRZxuwkwS2Rf/0DngAo0/V\nMfZ82EeUsltNrvFe9ccq2jOyIS014yn2kbFTYTFMl7rsre4SUcWUEz6QyJnO\nVGXIRhslE+4ZV9GW/DDTOCgPJN6Vz6806JQX9+06zKpDsnno2hS9uUTzZYOB\nw/KXfxvnhreKHiDqz5xMObppJZ3V+3ItMrAX5gIJi3GHbjQv+2nID9RpBEXA\nqubFHNla5DIK0AaGaQmWWYC2OJk1D6xmy+t5bnLvdcV29rF3Len27YIg6scA\nOwUG\r\n=BXiS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWINauJPEngLtD7jS5mEugSUUYCoaLSqYH66npGptVuwIhAJIgeGU2/cGgRjeffNOGwHkVi4v7tTtAfnR/ke1jXdl4"}]},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.2.1_1593801043664_0.5186180621571017"},"_hasShrinkwrap":false},"2.2.2":{"name":"eslint-template-visitor","version":"2.2.2","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"babel-eslint":"^10.1.0","eslint-visitor-keys":"^2.0.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=babel-eslint nyc ava --verbose"},"gitHead":"98d8228160c2e1141b8809ef403f10125ee0d6e5","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.2.2","_nodeVersion":"15.4.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-SkcLjzKw3JjKTWHacRDeLBa2gxb600zbCKTkXj/V97QnZ9yxkknoPL8vc8PFueqbFXP7mYNTQzjCjcMpTRdRaA==","shasum":"46cd2b06eca5c1d97369aadd96e131df88fdd59c","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.2.2.tgz","fileCount":20,"unpackedSize":41258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4jPsCRA9TVsSAnZWagAA2eYP/0jQ3wR7loSnfh4E9n3D\ngLerR6fjeEAffaeAE1Gi+/X9V1IHnmKNdnej5xI7ICVNpicSTevyTVlUAsoS\naRcRnDWvHhQwRduWKC7ShNzGCL9h+6YZBo4MtJTXg9c4MRkpP5gQGFJQ0c4l\npAU6x8CxbSH+2uwC+Kt4TrnT1jjlRtZsG52vAr0OIxTQsM4nhs8nj2GthVoi\nzwKVKpr2XRHvrAQ3lfwYfWwfLEenkXjMxZfxZxWKfr7s91nhAbQAq/LAyBz6\nAOgLsbRr0mxRNzJ/Ny7J0KbI0ItYq+OyFTl7EBTZhE+24nClfjEi8tRPUqOi\nbx/V/q3Gux1z8wbdnhqKbjTrq2b2oe0rKQYIWEladTlSPTGQjp5B0VQVgznE\nMGhSjBvSN4wSaVpS2c/RGlf8vpdLOpjpUYTFxvVfK2yvMmo39uafkCduGoXx\nFkWNK5LEirPtQ9iAW2+pikcAo9T97rhG4cAPGY+FzKEFK42H/wABcqeNUptv\ncLd594cf/sYSaPYcn2Zm1+Au1RNYZwfDR76rS0e4eSqZ0Z5qPkeh8ebFwlyJ\n1Rk+SnTCctGBL1AjHi0F4HOzGGubIxA9LJlHuqcvPt5qvtl3HjPp5AdyVmOG\nuhyObrXZrat6bbTcO3+Cc5OBNlJJwBwIdVBOL67I5DcHiMW9jR9mvyiCfZQQ\nhb2v\r\n=DyHD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEa+mOO2EqqUYyKeKPuMGKNBl0MxNWvwTmpuLKSJmqI3AiALRbJ932nvzlVGQlhKun94efabO7J0W+4uUwevbpWqPQ=="}]},"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.2.2_1608659948414_0.25265757994911353"},"_hasShrinkwrap":false},"2.3.0":{"name":"eslint-template-visitor","version":"2.3.0","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"@babel/eslint-parser":"^7.12.16","eslint-visitor-keys":"^2.0.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=@babel/eslint-parser nyc ava --verbose"},"gitHead":"778bafe58409a251d13d88668cd227d7feec4f8e","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.3.0","_nodeVersion":"15.8.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-TDR6OCUMrWQUDfxgjQzyuiK3/X5rCDmxA54MZ0BBa924CAj9uxBJ8/y1ai+/0OH3AhDjpbV4KwHjb1sRKs0+CQ==","shasum":"6340d98e5e19b5b4446cdc5e0413737aae773548","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.0.tgz","fileCount":20,"unpackedSize":41497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLHewCRA9TVsSAnZWagAAtWQP/RxhFTQfy0RlZU/B2KZK\ndvRR/Hx5hJOwIAlVQPNK/Bee4lpg/EGlPtwsIl/wWp5Ykoj+KVjhvZUPsNLX\nB3ndNfMnXjisByVsZIVHjc+FLGCYEwGSgypXZ9c8N+huD2GhXweRJluVqEUD\nyAFfqlIrGB5XUl5EoCFPxwSU8B+d1h6bixGwqmP/JVMhUUhIKQ/GZMRqUFDk\nC8wuLBpd43VeW30LsJ/Kj+m2eSWZW72utdGc/sUp6dvWP9YQw7DLtpoXoswF\nTFIpxZyay3pfCK7fuTCnbuemPVIKwr4I+zPXDw6AmW+l9WE5D7T53CqanqFY\nuQJtFd9rYcZZfz/HhbFU4K9FlJ9p5dJcf8BhR5dGg54+jSX8TCoGRnJQvdPK\ngECw9thV70h1+JGYU3xxpqmT0d4Lnf6HTzWbYeE6qlxHYGouclSp2QYkuW29\nqTGerEwSopyvhTfEuq94axIKsvh2pRQJLsXf2ocN4oncD1dQhHXxKusMk7U7\nT8NctAla8S+OPrALPSsWBJFuPiXu7vLHV1dUHXqZbqYR1mVdRjy5BM8S0PIh\nRlgJDs/FZqLKOLrF1YyvfBe2mmYw51WMvcz1dSNnEY/L82GVlXoIQVj1pnVB\nYuTwVYIPqU0KrVmFTJVcjlgxp5gpJEgo21OSjE7NBxCyKrjLTxB+CyHGnleW\nU/Vl\r\n=q3nn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3hMv9NQj5UHlO/G18eCjeHeOSz1qQJyJjkyCufBxo1AiEAq5MSSx8CKr1u31GM4PR1fRvJFyN1SyEcHWz+UAq3pno="}]},"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.3.0_1613526959861_0.5026037792873201"},"_hasShrinkwrap":false,"deprecated":"this package has been deprecated"},"2.3.1":{"name":"eslint-template-visitor","version":"2.3.1","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"@babel/core":"^7.12.16","@babel/eslint-parser":"^7.12.16","eslint-visitor-keys":"^2.0.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=@babel/eslint-parser nyc ava --verbose"},"gitHead":"c0527d6330b6217e6242dbb4c44cade79c3fe0d8","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.3.1","_nodeVersion":"15.8.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-K/76IDGPVbnb6bLkycR5MbVMJ3ERrZIYyLB2/+2JfqGrrIrjiQvSVLtmgTQYj1YJ/ibYG3eFyrwXHwu0f0q6Jg==","shasum":"58a35eca7687a8b48a37b99932a29253ba6c3d25","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.1.tgz","fileCount":20,"unpackedSize":41528,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLR75CRA9TVsSAnZWagAAo7wP/1VE94wWQjQiiKeE1kKA\nAY82/crkJOOpnZkt6hDRMXVJxwX3PeXY4Z6DZb/EjvLa4C0Xn9NxbqbS2ffd\nbxayVazd3eE1oo+OVv50feMooLxBf41syZUtZrUBpk2VdiCAG4nK7B6m4Ksq\n1Bl2nLiKCBwculk0RnEiZcgdAd47IfzvcJDM0QxtGNVeTAcKp22r9wTyHxZD\noKeboF78yZAChhYla3Tpgrp3j9cA1l43iUiSpajV4i3awoeyZ4cbW4VRI0mN\n6EJLf8hSL2g0wQprGSymR8JLKvbEvQ9qC3s6SVfNRvwoq/n6TYxE4oFhCjP5\nyUB+CtqmqNh6WRmk4yJ52PeJD21iKQZBONuRs1XYzNXmRpIRN8wxQIGa5prN\nOVxwZtIn1HUolHsOZqCpfA5g62wXylm2tgTlyldmIgAXEcbZuIh6XtKcuw7y\nOOCsIrXGNZACJFxyvDjK8CN2NIOvCKrZ7cymeqUP0B/GO96zAnKDalf46Znp\nG2qIJvSXsbHU1ZctAPH0zGaUWPidyA84082FxSjxkHUmPw/UMfrv0ZfleMrP\nnGg6P89f7fRpipRDihAJBDatva2RRz4vcmz9BL4wwv/Uql1AqGr0o4J2KEmK\nqIbv96kmMIiYgy9F+steRUN6a6hOx4Mbs0kFdU6vG80bgk5NDD1go5yv7gqx\nnsx4\r\n=deEW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvi5uyPV6LTz2lTXMKEjj9AnEDTOzILrJgpLw+MSnNZwIhAKGqvExdx2vs2K6cpTvjTnzdun2BgcIyK5SAg4EGRlIL"}]},"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.3.1_1613569785127_0.7747185425807015"},"_hasShrinkwrap":false},"2.3.2":{"name":"eslint-template-visitor","version":"2.3.2","main":"index.js","license":"GPL-3.0-or-later OR MIT","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"peerDependencies":{"eslint":">=7.0.0"},"devDependencies":{"ava":"^3.9.0","coveralls":"^3.1.0","eslint":"^7.0.0","eslint-ava-rule-tester":"^4.0.0","eslint-config-xo-overrides":"^1.4.0","esrecurse":"^4.2.1","nyc":"^15.1.0","ramda":"^0.27.0","reserved-words":"^0.1.2","seedrandom":"^3.0.5","shift-codegen":"^7.0.2","shift-fuzzer":"^1.0.2","shift-reducer":"^6.0.0","shift-scope":"^4.0.0","sinon":"^9.0.2","xo":"^0.32.0"},"dependencies":{"@babel/core":"^7.12.16","@babel/eslint-parser":"^7.12.16","eslint-visitor-keys":"^2.0.0","esquery":"^1.3.1","multimap":"^1.1.0"},"xo":{"extends":["eslint-config-xo-overrides"],"rules":{"unicorn/no-fn-reference-in-iterator":"off"}},"scripts":{"test":"xo && PARSER=espree nyc ava --verbose && PARSER=@babel/eslint-parser nyc ava --verbose"},"gitHead":"dfe46d502d960bd27c4b4b404fb71c89896c29d4","description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"},"homepage":"https://github.com/futpib/eslint-template-visitor#readme","_id":"eslint-template-visitor@2.3.2","_nodeVersion":"15.8.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==","shasum":"b52f96ff311e773a345d79053ccc78275bbc463d","tarball":"https://registry.npmjs.org/eslint-template-visitor/-/eslint-template-visitor-2.3.2.tgz","fileCount":20,"unpackedSize":41658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLeg3CRA9TVsSAnZWagAAm9kQAIAgRnte10vZwZrmvnnE\nHW8T6xYcZK+xDnlc8QNYlMMiRANIrVmtIrjVY+BIrHWvuTOuCVY243yoWv73\naGROIbMK5uahJvZINrBv3a2TJjxGh9inYbwjbSiL5FisvxmeVk7CoJ1DcwLg\nUEFvk97IHl9VXDiesO9CUtE6S2AsAkUIrlVeZqv8myxAkKQ1mADNy8b+V3/M\nboZbs7mwMzCmycFHZfxUqJwxHljWng/08/Esm5GSrnJrDYkgjJuTubUy0yEI\nqFaJ3N8f/02LqgeRReTYnhttSpKCmZCkDezUMfM3oxnTkNx1Hs7Euvy66aR8\nbV//2QsI5NnxUbYRRUWZ61CiYVKPb1aPHo6cl7ND3BFETJIWqRPLXTvY3Sie\nfFGoVXannPWa8FysZj50xPHzABo4rjijSYf3jU6ZCzi06dH2LzbI/T7/YNvk\n5RKygL/ozKC3DprSrsqNbDqImKqxiJuEOY04SvoIhch65sLo1gfcIDX+N+Mk\nRITNAVkBARDlBFRS5dBsz49DQUs1tDHCqkI6zoqgmCryO+P8g+Z+yetW6YlH\nUhb6/Mgbx5MfngO3ZBTNZIgL+ASkj0+/Pzs4dlHyUeIRsTfEKLseG4llOB9L\n0Vc0Q5U8dbaqAika1H741AZRUAh3ro/VwiwAu+I+4eDvKBDSFdGBxLgiMdnu\nHVeP\r\n=BvFM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCf0WgDI2I273ADJa3LPvl2eLItLekHa2k4G/4e9X6IaQIgQU4GC28axPnyd+VMVnvobJEKVYoRW/44Sy9muM6PzBQ="}]},"_npmUser":{"name":"futpib","email":"futpib@gmail.com"},"directories":{},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-template-visitor_2.3.2_1613621302545_0.2590202546909188"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-23T22:53:26.802Z","0.0.0-alpha.1":"2019-04-23T22:53:27.101Z","modified":"2022-05-01T17:18:17.630Z","0.0.0-alpha.2":"2019-04-23T22:57:03.922Z","0.0.0-alpha.3":"2019-04-26T20:04:59.287Z","1.0.0":"2019-09-16T17:56:57.221Z","1.1.0":"2019-09-25T23:18:56.817Z","2.0.0":"2020-05-15T03:13:41.106Z","2.1.0":"2020-07-03T12:08:17.978Z","2.1.1":"2020-07-03T13:21:33.665Z","2.2.0":"2020-07-03T16:16:14.509Z","2.2.1":"2020-07-03T18:30:43.766Z","2.2.2":"2020-12-22T17:59:08.555Z","2.3.0":"2021-02-17T01:55:59.983Z","2.3.1":"2021-02-17T13:49:45.267Z","2.3.2":"2021-02-18T04:08:22.651Z"},"maintainers":[{"name":"futpib","email":"futpib@gmail.com"}],"description":"[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](","license":"GPL-3.0-or-later OR MIT","readme":"# ESLint Template Visitor\n[![Build Status](https://travis-ci.org/futpib/eslint-template-visitor.svg?branch=master)](https://travis-ci.org/futpib/eslint-template-visitor) [![Coverage Status](https://coveralls.io/repos/github/futpib/eslint-template-visitor/badge.svg?branch=master)](https://coveralls.io/github/futpib/eslint-template-visitor?branch=master)\n\nSimplify eslint rules by visiting templates\n\n## Install\n\n```\nnpm install eslint-template-visitor\n\n# or\n\nyarn add eslint-template-visitor\n```\n\n## Showcase\n\n```diff\n+const eslintTemplateVisitor = require('eslint-template-visitor');\n+\n+const templates = eslintTemplateVisitor();\n+\n+const objectVariable = templates.variable();\n+const argumentsVariable = templates.spreadVariable();\n+\n+const substrCallTemplate = templates.template`${objectVariable}.substr(${argumentsVariable})`;\n\n const create = context => {\n \tconst sourceCode = context.getSourceCode();\n\n-\treturn {\n-\t\tCallExpression(node) {\n-\t\t\tif (node.callee.type !== 'MemberExpression'\n-\t\t\t\t|| node.callee.property.type !== 'Identifier'\n-\t\t\t\t|| node.callee.property.name !== 'substr'\n-\t\t\t) {\n-\t\t\t\treturn;\n-\t\t\t}\n-\n-\t\t\tconst objectNode = node.callee.object;\n+\treturn templates.visitor({\n+\t\t[substrCallTemplate](node) {\n+\t\t\tconst objectNode = substrCallTemplate.context.getMatch(objectVariable);\n+\t\t\tconst argumentNodes = substrCallTemplate.context.getMatch(argumentsVariable);\n\n \t\t\tconst problem = {\n \t\t\t\tnode,\n \t\t\t\tmessage: 'Prefer `String#slice()` over `String#substr()`.',\n \t\t\t};\n\n-\t\t\tconst canFix = node.arguments.length === 0;\n+\t\t\tconst canFix = argumentNodes.length === 0;\n\n \t\t\tif (canFix) {\n \t\t\t\tproblem.fix = fixer => fixer.replaceText(node, sourceCode.getText(objectNode) + '.slice()');\n \t\t\t}\n\n \t\t\tcontext.report(problem);\n \t\t},\n-\t};\n+\t});\n };\n```\n\nSee [examples](https://github.com/futpib/eslint-template-visitor/tree/master/examples) for more.\n\n## API\n\n### `eslintTemplateVisitor(options?)`\n\nCraete a template visitor.\n\nExample:\n\n```js\nconst eslintTemplateVisitor = require('eslint-template-visitor');\n\nconst templates = eslintTemplateVisitor();\n```\n\n#### `options`\n\nType: `object`\n\n##### `parserOptions`\n\nOptions for the template parser. Passed down to [`@babel/eslint-parser`](https://github.com/babel/@babel/eslint-parser#additional-parser-configuration).\n\nExample:\n\n```js\nconst templates = eslintTemplateVisitor({\n\tparserOptions: {\n\t\tecmaVersion: 2018,\n\t},\n});\n```\n\n### `templates.variable()`\n\nCreate a variable to be used in a template. Such a variable can match exactly one AST node.\n\n### `templates.spreadVariable()`\n\nCreate a spread variable. Spread variable can match an array of AST nodes.\n\nThis is useful for matching a number of arguments in a call or a number of statements in a block.\n\n### `templates.variableDeclarationVariable()`\n\nCreate a variable declaration variable. Variable declaration variable can match any type of variable declaration node.\n\nThis is useful for matching any variable declaration, be it `const`, `let` or `var`.\n\nUse it in place of a variable declaration keyword:\n\n```js\nconst variableDeclarationVariable = templates.variableDeclarationVariable();\n\nconst template = templates.template`() => {\n\t${variableDeclarationVariable} x = y;\n}`;\n```\n\n### `templates.template` tag\n\nCreates a template possibly containing variables.\n\nExample:\n\n```js\nconst objectVariable = templates.variable();\nconst argumentsVariable = templates.spreadVariable();\n\nconst substrCallTemplate = templates.template`${objectVariable}.substr(${argumentsVariable})`;\n\nconst create = () => templates.visitor({\n\t[substrCallTemplate](node) {\n\t\t// `node` here is the matching `.substr` call (i.e. `CallExpression`)\n\t}\n});\n```\n\n### `templates.visitor({ /* visitors */ })`\n\nUsed to merge template visitors with [common ESLint visitors](https://eslint.org/docs/developer-guide/selectors#listening-for-selectors-in-rules).\n\nExample:\n\n```js\nconst create = () => templates.visitor({\n\t[substrCallTemplate](node) {\n\t\t// Template visitor\n\t},\n\n\tFunctionDeclaration(node) {\n\t\t// Simple node type visitor\n\t},\n\n\t'IfStatement > BlockStatement'(node) {\n\t\t// ESLint selector visitor\n\t},\n});\n```\n\n### `template.context`\n\nA template match context. This property is defined only within a visitor call (in other words, only when working on a matching node).\n\nExample:\n\n```js\nconst create = () => templates.visitor({\n\t[substrCallTemplate](node) {\n\t\t// `substrCallTemplate.context` can be used here\n\t},\n\n\tFunctionDeclaration(node) {\n\t\t// `substrCallTemplate.context` is not defined here, and it does not make sense to use it here,\n\t\t// since we `substrCallTemplate` did not match an AST node.\n\t},\n});\n```\n\n#### `template.context.getMatch(variable)`\n\nUsed to get a match for a variable.\n\nExample:\n\n```js\nconst objectVariable = templates.variable();\nconst argumentsVariable = templates.spreadVariable();\n\nconst substrCallTemplate = templates.template`${objectVariable}.substr(${argumentsVariable})`;\n\nconst create = () => templates.visitor({\n\t[substrCallTemplate](node) {\n\t\tconst objectNode = substrCallTemplate.context.getMatch(objectVariable);\n\n\t\t// For example, let's check if `objectNode` is an `Identifier`: `objectNode.type === 'Identifier'`\n\n\t\tconst argumentNodes = substrCallTemplate.context.getMatch(argumentsVariable);\n\n\t\t// `Array.isArray(argumentNodes) === true`\n\t},\n});\n```\n\n### `template.narrow(selector, targetMatchIndex = 0)`\n\nNarrow the template to a part of the AST matching the selector.\n\nSometimes you can not define a wanted template at the top level due to JS syntax limitations.\nFor example, you can't have `await` or `yield` at the top level of a script.\n\nUse a wrapper function in the template and then `narrow` it to a wanted AST node:\n\n```js\nconst template = templates.template`\n\tasync () => { await 1; }\n`.narrow('BlockStatement > :has(AwaitExpression)');\n```\n\nThe `template` above is equivalent to this:\n\n```js\nconst template = templates.template`await 1`;\n```\n\nExcept the latter can not be defined directly due to [`espree` limitations](https://github.com/eslint/espree/issues/409).\n","readmeFilename":"README.md","homepage":"https://github.com/futpib/eslint-template-visitor#readme","repository":{"type":"git","url":"git+https://github.com/futpib/eslint-template-visitor.git"},"bugs":{"url":"https://github.com/futpib/eslint-template-visitor/issues"}}