{"_id":"@alibaba-aero/eslint-plugin-json","_rev":"8-c6ff365df12dacb514f7c64d1195bbbc","name":"@alibaba-aero/eslint-plugin-json","dist-tags":{"latest":"1.4.2"},"versions":{"1.4.1":{"name":"@alibaba-aero/eslint-plugin-json","version":"1.4.1","keywords":["eslint","eslintplugin","eslint-plugin","json","eslint-plugin-json"],"author":{"name":"Azeem Bande-Ali","email":"a.bandeali@gmail.com"},"license":"ISC","_id":"@alibaba-aero/eslint-plugin-json@1.4.1","maintainers":[{"name":"sh.nouri","email":"shabnam.nouriii@gmail.com"},{"name":"mirzarazi","email":"mirzarazi@gmail.com"},{"name":"farzadso","email":"farzad.au@gmail.com"},{"name":"pi0","email":"pyapar@gmail.com"},{"name":"farnabaz","email":"farnabaz@gmail.com"}],"homepage":"https://github.com/azeemba/eslint-plugin-json#readme","bugs":{"url":"https://github.com/azeemba/eslint-plugin-json/issues"},"url":"https://github.com/azeemba/eslint-plugin-json","dist":{"shasum":"6ddc92ea3873bc3d4cd56aaf705624a65f8d7e40","tarball":"https://registry.npmjs.org/@alibaba-aero/eslint-plugin-json/-/eslint-plugin-json-1.4.1.tgz","fileCount":9,"integrity":"sha512-dOEDIxao3qec7BZgB5pVJULM+vED129+J/VRc8XnMWHxbLp6uNntZQlBLIbiTSDfUxbCQ2Y+9gyn7XJM0xW9Xg==","signatures":[{"sig":"MEUCIH6G96KnmIhiv3WwS0jr8o8KpWgqQQFRyGsnNqfTNCDfAiEAx84Zl0VJ7vgazTsLcQkw3LFbD8p2j+6glhPu2nnwPPg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLePRCRA9TVsSAnZWagAAmm4P/3SM2XVH916uncYYs/cK\nwFi7G4NAWczQh3zNq85nFtvjN2otkd4UwjPFBg4+FmDBmo7xlw5RSFodycJe\nltMjLCIGQdAD4o8I7GgqNlTqWrUIWLfplMAQQgFnMm7H41mUBwy5xKavcp28\nC7VDEqKPOi19nzykBW0aahf42rXakG1/O85Xw0jDou/pfWgglD1Ppem4xZbR\nHKJbwuSDtLaxw3lGr9RLRQr+akHYoUx/fwvsdCTXq5gHKYTMifgsm8xKYw78\noSSOppEt1R5eMMj2u+YOZlgwTRE3UMEm6TG7mZZca+1wtHzZzB7lJm46pfPe\nT3lVDgiqfeZnto6p7aam98eqeONMSK4a1YKXZ6ykX4WszzFcEJyvhs1e665a\nkHbMFqf7eF9LmSgArqlV5l1ynryc5UruDyfSRHIkYu6Jt3Ym4uJDsqQT7823\n6wKSRjE/klL7PYcLhEjf6GN4f2E+jQnnIrixYT1x7CsWCd64EIcMRZFH/hro\nZmWqWw4GiJYEXipSlBfW20v5JBBdflQQ5+tUbnaMZt39aUSHaIP2qW11uQBd\nuKY5DFoNUu2TFA3voxxJfDKW/ux+/e/9LzoI5oBKqwtbSumyHAsS7gBMytgJ\nlEJ7OXm+dXsMxbuCPd0UACNr7NpFqokf71/Orc20JCQnliQ+0A9DyGgfaDP3\nyTgA\r\n=8Yr9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","engines":{"node":">=0.10.0"},"gitHead":"9dd89e059011abdebbd788070862014f16444f57","scripts":{"test":"mocha"},"_npmUser":{"name":"sh.nouri","email":"shabnam.nouriii@gmail.com"},"repository":{"url":"git+https://github.com/azeemba/eslint-plugin-json.git","type":"git"},"_npmVersion":"6.7.0","description":"Lint JSON files","directories":{},"_nodeVersion":"11.11.0","dependencies":{"vscode-json-languageservice":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","eslint":"~5.1.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-json_1.4.1_1563288529182_0.4407853057220057","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"@alibaba-aero/eslint-plugin-json","version":"1.4.2","keywords":["eslint","eslintplugin","eslint-plugin","json","eslint-plugin-json"],"author":{"name":"Azeem Bande-Ali","email":"a.bandeali@gmail.com"},"license":"ISC","_id":"@alibaba-aero/eslint-plugin-json@1.4.2","maintainers":[{"name":"farnabaz","email":"farnabaz@gmail.com"},{"name":"farzadso","email":"farzad.au@gmail.com"},{"name":"mirzarazi","email":"mirzarazi@gmail.com"},{"name":"pi0","email":"pyapar@gmail.com"},{"name":"sh.nouri","email":"shabnam.nouriii@gmail.com"}],"homepage":"https://github.com/azeemba/eslint-plugin-json#readme","bugs":{"url":"https://github.com/azeemba/eslint-plugin-json/issues"},"url":"https://github.com/azeemba/eslint-plugin-json","dist":{"shasum":"13f83694540dd6698f41ec60f2f8a0b715d40817","tarball":"https://registry.npmjs.org/@alibaba-aero/eslint-plugin-json/-/eslint-plugin-json-1.4.2.tgz","fileCount":9,"integrity":"sha512-GDGf/Z/bJNLCERRgkQuIa4X0Em5ez4JR2DtQmqenr5H4So6sZ02FjhW8jAyeHL1tvdmoo11EUZypSOItX/8lUA==","signatures":[{"sig":"MEUCIGZQ+ErCK07w+PGOhIeMkBdOR/hT6W8cIz2SY5mCpDzXAiEAuxBzjpsAhwhTAaPNwxHHlqMUmqBaj4gFWtDaBnva1JQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLeZJCRA9TVsSAnZWagAAgfMQAIIqqXBo3PeveOp+NYu5\nV66KytMsz4b3m4BuQnX3RpwEtBZy/Ol6lQgOp3tjQLikkYFEp+hHA78okdrF\nzL4pE5mFVFPf7OliBFLlpb0/D3VWP7KUpcY5OIwLTi3Ul11dj6ot0IuY75+9\n7fAPRN1eE52eSn3pOjAS0nV4N02HeapwnqOkLES3ay+ugFqfCD1lWiCSNEe0\nEil2UvEHXebGodnW0sDsqKgBwAhVkUNB11MeVSlaJgfjrTZdFJ6JpxuQ8EdR\noFDke/4t5lKOecxGaOJVN/FATsXJZq5IvIMmaEgnSKqRtlfWu9n7QuenSP3T\nQBgq2TumJ08ZSGyhUpzlSCsmA27GBIhWj9ysRocrUel9aeDl6R2yD1U0hHEf\nPSn0zzIqT6HzmsiCGKPk0uNGlL1jgt1i3AxvDuyr8yqq62Ny2JRbuOvrE0/C\njujsgspkGGfDucIT7ZMHERiXfOzPEEdL9F89q8m01+w+1tXGNGlGQT5cfpoN\nW+E6k1ayDxqfHT8VpqpLI4ik63NdMmKj74PaiY+bIM/L7gctLvAcG46PkARV\ncAy14dboaVeYVRiQDl7GN5H2dF5RT6zVwJQVjhYtYJAN4sSFN81jGJa5LZxt\n1Dbphx76e726sJdd3sEAROoIaU5TPB3rKIx9Jw9mRqliIwRZ7jcE6GJpSLGh\nnOMH\r\n=u7CI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","engines":{"node":">=0.10.0"},"gitHead":"1dccd08a8274b8d0f558a2c385572b0eb19c2a11","scripts":{"test":"mocha"},"_npmUser":{"name":"sh.nouri","email":"shabnam.nouriii@gmail.com"},"repository":{"url":"git+https://github.com/azeemba/eslint-plugin-json.git","type":"git"},"_npmVersion":"6.7.0","description":"Lint JSON files","directories":{},"_nodeVersion":"11.11.0","dependencies":{"vscode-json-languageservice":"^3.2.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","eslint":"~5.1.0"},"_npmOperationalInternal":{"tmp":"tmp/eslint-plugin-json_1.4.2_1563289160973_0.5445140374530573","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-07-16T14:48:48.963Z","modified":"2026-05-08T01:03:34.354Z","1.4.1":"2019-07-16T14:48:49.310Z","1.4.2":"2019-07-16T14:59:21.060Z"},"bugs":{"url":"https://github.com/azeemba/eslint-plugin-json/issues"},"author":{"name":"Azeem Bande-Ali","email":"a.bandeali@gmail.com"},"license":"ISC","homepage":"https://github.com/azeemba/eslint-plugin-json#readme","keywords":["eslint","eslintplugin","eslint-plugin","json","eslint-plugin-json"],"repository":{"url":"git+https://github.com/azeemba/eslint-plugin-json.git","type":"git"},"description":"Lint JSON files","maintainers":[{"email":"pyapar@gmail.com","name":"pi0"},{"email":"farnabaz@gmail.com","name":"farnabaz"},{"email":"farzad.au@gmail.com","name":"farzadso"},{"email":"mirzarazi@gmail.com","name":"mirzarazi"},{"email":"shabnam.nouriii@gmail.com","name":"sh.nouri"},{"email":"amiraliamhh@gmail.com","name":"amiraliameri"},{"email":"javid.izadfar@gmail.com","name":"javid.izadfar"},{"email":"sasan.farrokh@gmail.com","name":"sasanfarrokh"}],"readme":"# eslint-plugin-json\r\n\r\n[![Build Status](https://travis-ci.org/azeemba/eslint-plugin-json.svg)](https://travis-ci.org/azeemba/eslint-plugin-json) [![Code Climate](https://codeclimate.com/github/azeemba/eslint-plugin-json/badges/gpa.svg)](https://codeclimate.com/github/azeemba/eslint-plugin-json)\r\n\r\nLint JSON files\r\n\r\n## Installation\r\n\r\nYou'll first need to install [ESLint](http://eslint.org):\r\n\r\n```\r\n$ npm i eslint --save-dev\r\n```\r\n\r\nNext, install `@alibaba-aero/eslint-plugin-json`:\r\n\r\n```\r\n$ npm install @alibaba-aero/eslint-plugin-json --save-dev\r\n```\r\n\r\n**Note:** If you installed ESLint globally (using the `-g` flag) then you must also install `@alibaba-aero/eslint-plugin-json` globally.\r\n\r\n## Usage\r\n\r\nAdd `@alibaba-aero/eslint-plugin-json` to the plugins section of your `.eslintrc` configuration file. You can omit the `eslint-plugin-` prefix:\r\n\r\n```json\r\n{\r\n    \"plugins\": [\r\n        \"@alibaba-aero/json\"\r\n    ]\r\n}\r\n```\r\n\r\nYou can run ESLint on individual JSON files or you can use the `--ext` flag to add JSON files to the list.\r\n\r\n```\r\neslint . --ext .json --ext .js\r\neslint example.json\r\n```\r\n\r\n## FAQs\r\n\r\n\r\n#### How does eslint-plugin-json work?\r\n\r\nStarting from version 1.3, this plugin relies on what [VSCode](https://github.com/Microsoft/vscode-json-languageservice)\r\nuses for its implementation of JSON validation. \r\nThis plugin used to use JSHint, however due to the large size of \r\nthis dependency, it was replaced.\r\n\r\n\r\n#### Why doesn't this plugin use `eslint` itself or just `JSON.parse`?\r\n\r\n`eslint`'s parser is a JavaScript parser. JSON is a stricter subset and things\r\nthat are valid JavaScript are not valid JSON. This is why something more specific \r\nis more appropriate.\r\n\r\nWhile `JSON.parse` seems ideal, it is not designed to continue after the first error.\r\nSo if you have a missing trailing comma in the start of the file, the rest of the file\r\nwill go unlinted. A smarter parser that can self-correct after seeing errors is needed\r\nwhich the VSCode implementation provides by leveraging the\r\n[jsonc-parser](https://www.npmjs.com/package/jsonc-parser) module.\r\n\r\n\r\n#### Will this plugin provide more configuration?\r\n\r\nNow that we have moved to a different implementation for our validation, a lot\r\nmore things are possible. Optional support for JSON comments, trailing commas\r\nand schemas are possible.\r\n\r\nAdditionally, support for autofixing common errors is also possible.\r\n\r\n\r\n#### Is `eslint` really the best tool to lint my JSON?\r\n\r\nNot really. `eslint` plugin interface wasn't designed to lint a completely different language but\r\nits interface is flexible enough to allow it. So this plugin is certainly unusual.\r\n\r\nIdeally, your editor would natively supports linting JSON. If it doesn't though, then might as well\r\nuse this plugin. Hacky linting is better than no linting :)","readmeFilename":"README.md"}