{"_id":"@coyote-labs/html-lint","_rev":"4-49893179de4794a8ee56e64ac1afc83c","name":"@coyote-labs/html-lint","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@coyote-labs/html-lint","version":"0.0.1","main":"index.js","license":"MIT","scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc","prepare":"npm run build","eslint":"eslint lib/**/**/*.ts bin/*.js index.js","test":"npm run eslint && npm run build && jest","serve":"docsify serve docs"},"bin":{"html-lint":"bin/html-lint.js"},"dependencies":{"@babel/code-frame":"^7.5.5","chalk":"^2.4.2","cosmiconfig":"^5.2.1","glob":"^7.1.4","lodash.chunk":"^4.2.0","lodash.merge":"^4.6.2","minimist":"^1.2.0","physical-cpu-count":"^2.0.0","promise.allsettled":"^1.0.1","reshape":"^1.0.1","typescript":"^3.5.3","v8-compile-cache":"^2.1.0","workerpool":"^4.0.0"},"devDependencies":{"@types/babel__code-frame":"^7.0.1","@types/cosmiconfig":"^5.0.3","@types/node":"^12.7.1","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^2.0.0","docsify-cli":"^4.3.0","eslint":"^6.2.2","eslint-plugin-jest":"^22.15.2","jest":"^24.8.0"},"jest":{"testEnvironment":"node"},"gitHead":"fbd4bd27ff70f4fcd3998225a490b884c53ca3c4","_id":"@coyote-labs/html-lint@0.0.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},"dist":{"integrity":"sha512-uR/rbnkyn9wVfZrRnir91/7eUpZi2JF8UdnTeoW2GXzbgZsbsqLPIyH+8SJ10Z/dYxJdu0cEJIrM1UkkPWm/8A==","shasum":"8f46698d7b47b9dab71eb069f73bc962fee3213f","tarball":"https://registry.npmjs.org/@coyote-labs/html-lint/-/html-lint-0.0.1.tgz","fileCount":112,"unpackedSize":457105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdaVgJCRA9TVsSAnZWagAACeEQAKFIDdydIjXi5TUCxVB1\nnjKL0yvVt4CPfJCvKpAlmG4dLnDcqGRn9FBUF5crspXl0Jno5AdjSVNKd4nt\nk98ufRofBt4dW/W5bBugfdHGsBdL6wAho3Vh5jSCqSbemJupo2AhuusHn5Xv\nFUG/7yaoTR3fd89Gtrc4L3AafLtVuM3dopxCpJl/KWa8M6269SYAL6/DJsg9\n6Eg4NrUBpB8x7g6GoksOFHXKodFIH+vLPHFvVqVraTR+f+vBx9mhderUmMCi\n2S20cL3cjVsxLkOEeRt2IcBMU0tsptPBWE4Q74oWFrPxlOlDYB7seXZ7V6TE\n2PznyH+saGza6wp/EtNryOWhHVJHl/DD2Cx8r8aZR7IuU68E0bV1KHDumq4t\nyMAH8SI917UHekzFIlg7shWj6Twr02Y/egXAsMxlSFO44QHzJT/lBGA/3/DS\nNIz2R40WeRqrZnsXqHaarBgoz4weOJ2aLIEo8HxAYAv9vuru5mEJHZXQcNOI\ncuYFu3ZTpjnCgUdgF+xj+N25AhwKJAasnyCfkWvq58+KBD+SeqdHASSSRkbq\nUzDA6P4Nf4V4qY1PN7zWWyxBGX7aUsjopIH56ooV96Mkov5UmVV8NEgASwg+\ni8L+J+/+E18CIUF49esFgdrqYIkdWgjv/JZnqQdtU6DWIBF8tQEvX2mwX2ac\nlfc1\r\n=E+yp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA5hBEg58R0iNhElTaoqJlD7DTpab03ufi5l0CqaOhtVAiBHvg2CXGJ7nYJV3v7BQM/fTcNebU7k7M8V8l1Es3xXeA=="}]},"maintainers":[{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/html-lint_0.0.1_1567184905364_0.2931101395904492"},"_hasShrinkwrap":false},"0.0.2":{"name":"@coyote-labs/html-lint","version":"0.0.2","main":"index.js","license":"MIT","scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc","prepare":"npm run build && cp docs/README.md .","eslint":"eslint lib/**/**/*.ts bin/*.js index.js","test":"npm run eslint && npm run build && jest","serve":"docsify serve docs"},"bin":{"html-lint":"bin/html-lint.js"},"dependencies":{"@babel/code-frame":"^7.5.5","chalk":"^2.4.2","cosmiconfig":"^5.2.1","glob":"^7.1.4","lodash.chunk":"^4.2.0","lodash.merge":"^4.6.2","minimist":"^1.2.0","physical-cpu-count":"^2.0.0","promise.allsettled":"^1.0.1","reshape":"^1.0.1","typescript":"^3.5.3","v8-compile-cache":"^2.1.0","workerpool":"^4.0.0"},"devDependencies":{"@types/babel__code-frame":"^7.0.1","@types/cosmiconfig":"^5.0.3","@types/node":"^12.7.1","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^2.0.0","docsify-cli":"^4.3.0","eslint":"^6.2.2","eslint-plugin-jest":"^22.15.2","jest":"^24.8.0"},"jest":{"testEnvironment":"node"},"gitHead":"65c9d98596b3ed0758ff2f93c6c8963a13d15f42","description":"> A meaningful static analysis tool for HTML","_id":"@coyote-labs/html-lint@0.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"},"dist":{"integrity":"sha512-BR92zCv9Atx6pRyfJNKW+FK+/zbLQqaH/MLkIqA/0EMa61BnRelJ0xVdUXWbKj2lyj23l4bmuIDrRiKgkpso4A==","shasum":"bc1a961130972e1bc5b96de2102089f5387bc8a2","tarball":"https://registry.npmjs.org/@coyote-labs/html-lint/-/html-lint-0.0.2.tgz","fileCount":113,"unpackedSize":459096,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdbg2eCRA9TVsSAnZWagAARWEP/2LxOReKWeTHJ+dOw6Lx\n0uEUf7IbV4aTX3TGbKG3q8kAfIEip+c1HFdJylWBxhgCrRnHihzlD7biEjGA\npG2LM0zztlOPb+20HUzeLE48/VJ7J57DqV0q0Xv0vjuRDqq2ZdOZTb4p9yGy\nIH8vK8qzhnor6dml/wTK0C6bAqHZLpayJNXLP0PvtFjoyr8FPNuBwYhixlUd\nnWc22SwSHVslxrP1dwvpzNB8ukdfLd0XFFjK1ckQJ9TkpxuOTjH+jpqdKDDY\nG2H70o7JhOGqqxCqqM2OYBDB01mlSjHclIT6HKoeRRMpTGtG45K/zX4bY0L8\nZq6d9sNubMNBdEjffJMX3+DW6Oo81xAOkt8hjDKE8EjZXuwIQwlcNwDjJo0j\nu/IIpVuBHwlwyAnxMHzraMJ4gmikO4IceXkeLS7ZYsMYVVnRKO01XVgcjVZx\nM8hYZftc8OTqHdQfdQAZhKhN46m/khlxfE/WosiXAquILM+2Ill9JgNBpp9Y\nfqsmt+dkQGptHPjlr3D8OZM3VGgPKcRjgOouWfH3HEghA8KjxXNALzB8cO5S\nEWTHthRBB48gOmA69ZM2EtfqaR8U71bl0zqiGyyFrvpz7hT0q+gjstunjY8r\nx580VYUgURaadhUvJYChdg18fne3eTkuQBdwrKWLjLx+FbqXOuXqj2we3z+N\noD8i\r\n=DtFI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDf107m/HxuQdgep5RMmnx6Ukjdtw5I3YZpM84/zsgy0AiEApyrEcim9laSU40Imji7OC+shiRLrj4lN4So49aW1ULE="}]},"maintainers":[{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/html-lint_0.0.2_1567493534011_0.10613680697272576"},"_hasShrinkwrap":false},"0.0.3":{"name":"@coyote-labs/html-lint","version":"0.0.3","main":"index.js","license":"MIT","scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc","replaceImgPath":"sed -i '' 's/.\\/_media\\/demo.png/.\\/docs\\/_media\\/demo.png/g' README.md","prepare":"npm run build && cp docs/README.md . && npm run replaceImgPath","eslint":"eslint lib/**/**/*.ts bin/*.js index.js","test":"npm run eslint && npm run build && jest","serve":"docsify serve docs"},"bin":{"html-lint":"bin/html-lint.js"},"dependencies":{"@babel/code-frame":"^7.5.5","chalk":"^2.4.2","cosmiconfig":"^5.2.1","glob":"^7.1.4","lodash.chunk":"^4.2.0","lodash.merge":"^4.6.2","minimist":"^1.2.0","physical-cpu-count":"^2.0.0","promise.allsettled":"^1.0.1","reshape":"^1.0.1","typescript":"^3.5.3","v8-compile-cache":"^2.1.0","workerpool":"^4.0.0"},"devDependencies":{"@types/babel__code-frame":"^7.0.1","@types/cosmiconfig":"^5.0.3","@types/node":"^12.7.1","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^2.0.0","docsify-cli":"^4.3.0","eslint":"^6.2.2","eslint-plugin-jest":"^22.15.2","jest":"^24.8.0"},"jest":{"testEnvironment":"node"},"gitHead":"7837ec1d64056e5294cd9ccfb3ad647426ce2225","description":"> A meaningful static analysis tool for HTML","_id":"@coyote-labs/html-lint@0.0.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"},"dist":{"integrity":"sha512-mTFkTCLSD+osIhEMsiLaDe49aaUVOR1Ym2XZnvYTgFBzPdept1BGl0H/6msYxBjVV+Ebzy1fSMoZSgJJ8B87Rw==","shasum":"d6d501cf38d28d6e6a3b7fbd5a28e2e28923f313","tarball":"https://registry.npmjs.org/@coyote-labs/html-lint/-/html-lint-0.0.3.tgz","fileCount":44,"unpackedSize":498043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddjqzCRA9TVsSAnZWagAAQBwQAJxAHOAS4JfjU1f2yUz3\nQ6aKfIAE+BrlmPtZb6zOmRDTKzEPkciLjaPpqsMJuMAAq6YslskLOVciy+8a\n9lTMNK1rZYnkFRANTB6P7ypaNYPsKvSHbD8fYZoNBvJ5+OmTdMTWROA6Hn2n\n1hfqeVAbbrdk1/7Y9eP4pIBCI4jmwu/L7QM0cutCpRHZAmVKtmtYyRKhrelG\nX5QP3DNq21sYLEINRv+8sGZAZ0Hhtzx6hV5EPeVRef9TnRVo9vFgzjP6UPWF\nn1AH+QfJjOPO9IT1g/6WFCbmWEEbmayIGATqzc3Q1Rt+PTYdezfpwpstTpWe\n573/MBGnJgyuWeAsEJxU2HTunKeAlUG00Si5IHJc8h16TcG4IhqQ2wJy1YzA\nWe5ZJhEVQy/CRRT/UJt9n+BWA6vf+HJghGiur5rzdWQCMSQVRituy9vasx89\nqyZKnpVfYo20gz5QzfyWespaP3mgBWFeEJ65ojQoPg6odOOP7CtdRtzdjg+z\nwcO9QK34pClVBqaZfXT3MrQL9F9BK0u8Fee+hkIVFadwNTPH02ZjY6UqIwfc\nrRSv90fO+h8dKfiNxa4YadVjdz3h6/GmjfCeVI9/juVeLxVyfn5FwlXVHlpF\nIrUCcUpotHPot6lv8wlfngIK8ut+OwKJEa+HVAfGAYc3+JDNeVai77VlcRZR\nMtYA\r\n=H48m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEA9ek5kZy4V1424QqEPCArqHQwDlKkiYy+4UGuRmfvjAiEA/WOe4HUzp0MY7+lQvLz+Ycfpsp8t0gHlxIh3cRjK9Ko="}]},"maintainers":[{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/html-lint_0.0.3_1568029362543_0.4015219234461911"},"_hasShrinkwrap":false},"0.0.4":{"name":"@coyote-labs/html-lint","version":"0.0.4","main":"index.js","license":"MIT","scripts":{"clean":"rm -rf dist","build":"npm run clean && tsc","prepare":"npm run build && node copyReadme","eslint":"eslint lib/**/**/*.ts bin/*.js index.js","test":"npm run eslint && npm run build && jest","serve":"docsify serve docs","publishNPM":"npm publish --verbose  --access public"},"bin":{"html-lint":"bin/html-lint.js"},"dependencies":{"@babel/code-frame":"^7.5.5","chalk":"^2.4.2","cosmiconfig":"^5.2.1","glob":"^7.1.4","lodash.chunk":"^4.2.0","lodash.merge":"^4.6.2","minimist":"^1.2.0","physical-cpu-count":"^2.0.0","promise.allsettled":"^1.0.1","reshape":"^1.0.1","typescript":"^3.5.3","v8-compile-cache":"^2.1.0","workerpool":"^4.0.0"},"devDependencies":{"@types/babel__code-frame":"^7.0.1","@types/cosmiconfig":"^5.0.3","@types/node":"^12.7.1","@typescript-eslint/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"^2.0.0","docsify-cli":"^4.3.0","eslint":"^6.2.2","eslint-plugin-jest":"^22.15.2","jest":"^24.8.0"},"jest":{"testEnvironment":"node"},"gitHead":"682bb0813035ef2b3e450e81f67a25af0334aba8","description":"[![npm version](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint.svg)](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint) [![Build Status](https://github.com/coyote-labs/html-lint/workflows/Build/badge.svg)](https://github.com/coyote-labs/html-lint/)","_id":"@coyote-labs/html-lint@0.0.4","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-wwxhDC77E7vJk8ZnHJlSuZl2EH6YezjXp8TDOe4vnSSFe6++V58SPeJuRmYVChK5rKble57lcRPoaAb6I48jZA==","shasum":"efb48fcfca33d6ca96d6d197a84206f938c43afa","tarball":"https://registry.npmjs.org/@coyote-labs/html-lint/-/html-lint-0.0.4.tgz","fileCount":38,"unpackedSize":40894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkzpwCRA9TVsSAnZWagAAXVIP/R/gk+JMHmkjy0NbUTpk\nx9DcwwLCbnEx6+/jeFAiHIDg+XNhMw/7z304DRkbsetKcqNlJSzsF7ihxuK9\niX8+G8D91YTZl2l/aPXln2ok+M79lzlg/lBwkrpBofUh0ErtDbXsZJp9TAXD\ngp8lVp4MyiBZRNH/nr8mzVKMlxmswr2JvbNPWxqyFUGkaPJDId5+nXb/qRD4\ntO6dLUE7XjbOE6ide3g1EctkJnfzXZk2frNHFlMKT8p1XGr4/TDLkiIt0ouO\n0Yyw+mmzJto4Iwo0cf3Yo3NgtmrfeoZZ2yTrQPNUuybf/YIpnaReIk4joZvm\nFOGfB0lanTdZmdC18jXUPnu08E2S3Hw3e7DqCuBtC1vu8vEtvfxLrLm2rslU\nqVZarCieyFVgo0KUF/lmzFQb29L7iKCPXR2XD0PG3P4IAJHjocNnVgOhpg8v\nbsVL4wpIKU1R5DvRdiocP72KJw0drHIklQtPRWuGJpgHMYczDaGrVyypu7rz\nQxLPLz6ckwWD6PIe6AZN+mO1XddkRkoP/9UFigUWMsHlK7M+yj5eBePHE1p2\n9NFAvkOTWaoYccQfRAPK9YmEefLWl/LY6X5qJrD2b4YFj6PzqNK2ajm8KeeE\nlq2cpITwNxs5F5lD66KyL77l0fxIFpzcLS26FwXmKn0Tpv0Dd5EnUS2EZ5Vp\nrqhu\r\n=qRCI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC1pAPxzB+sgh7MFa7jBjy5O3LnbJn6TrOBuVhfth9cxAiB6Opo+bA8+qEMKoP9rnBSRjPRfbf5z+iIEDMqm0uA90A=="}]},"maintainers":[{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"}],"_npmUser":{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/html-lint_0.0.4_1569929840188_0.21269070541017743"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-30T17:08:25.149Z","0.0.1":"2019-08-30T17:08:25.529Z","modified":"2022-04-05T01:32:11.406Z","0.0.2":"2019-09-03T06:52:14.214Z","0.0.3":"2019-09-09T11:42:42.686Z","0.0.4":"2019-10-01T11:37:20.338Z"},"maintainers":[{"name":"astronomersiva","email":"sivasubramanyama@gmail.com"},{"name":"vivek_raj","email":"kandhavivekraj@gmail.com"}],"license":"MIT","readme":"# html-lint\n\n[![npm version](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint.svg)](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint) [![Build Status](https://github.com/coyote-labs/html-lint/workflows/Build/badge.svg)](https://github.com/coyote-labs/html-lint/) \n\n> A meaningful static analysis tool for HTML\n\nhtml-lint is a linter for HTML files. It uses\n[reshape](https://github.com/reshape/reshape) to analyse\nyour HTML and provides feedback to make your HTML better.\n\n## Features\n\n* Only meaningful rules\n* Fully extensible using custom rules\n* Contextual feedback\n\n## Installation\n\n```bash\nyarn add -D @coyote-labs/html-lint\n```\n\n## Usage\n\n```bash\nnode_modules/.bin/html-lint build/**/*.html\n```\n\nYou can also use this programmatically.\n\n```js\nconst { htmlLint } = require('@coyote-labs/html-lint');\n\n(async() => {\n  try {\n    // it accepts glob patterns or an array of file paths.\n    await htmlLint('dist/*.html');\n  } catch (error) {\n    console.log(error)\n  }\n})();\n```\n\n![html-lint results](result.png)\n\n## Configuration\n\n### Project Level\n\nhtml-lint loads the following configuration files if they are present:\n\n* An `html-lint` property in package.json.\n* A `.html-lintrc` file in JSON or YAML format.\n* A `.html-lintrc.json`, `.html-lintrc.yaml`, `.html-lintrc.yml`,\n  or `.html-lintrc.js` file.\n* A `.html-lint.config.js` file exporting a JS object.\n\nThe configuration file can be used to toggle rules. The allowed levels\nare `on`, `off` and `warn`.\n\nFor example,\n\n```js\n{\n  'doctype-first': 'on',\n  'class-ad-disabled': 'off',\n  'src-not-empty': 'warn'\n}\n```\n\nYou can also use this file to configure [custom rules](extending.md), if any.\n\n```js\n{\n  'class-ad-disabled': 'off',\n  'custom-rules': {\n    'dir': 'my-custom-rules',\n    'rules': {\n      'custom-rule-one': 'error',\n      'custom-rule-two': 'warn'\n    }\n  }\n}\n```\n\n### File Level\n\nFile level rule configuration is also possible. For example,\n\n```html\n<!-- html-lint doctype-first:warn, id-ad-disabled:off -->\n<html>\n  <head>\n    <title>Hello</title>\n  </head>\n  <body>\n    <main class=\"sponsors\">\n      <ul>\n        <li id=\"company-ad\">Company A</li>\n        <li id=\"company\">Company B</li>\n      </ul>\n    </main>\n  </body>\n</html>\n```\n","readmeFilename":"README.md","description":"[![npm version](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint.svg)](https://badge.fury.io/js/%40coyote-labs%2Fhtml-lint) [![Build Status](https://github.com/coyote-labs/html-lint/workflows/Build/badge.svg)](https://github.com/coyote-labs/html-lint/)"}