{"_id":"@alexberriman/visual-dom-auditor","_rev":"8-fa4f5da2b6df700239be99b098696c56","name":"@alexberriman/visual-dom-auditor","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.1":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.1","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.1","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"ee6ad6d872f82c24619dabf1cecedff71217388a","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.1.tgz","fileCount":61,"integrity":"sha512-8vW2Iu72O43a54D9W9VC6bn73ejOC3TgAXGe+rwfw5Z2jZFnup+UEPVj428bgFnYcxQV2g+5AQw8yhPsgb3wIQ==","signatures":[{"sig":"MEUCICAS3YZtlTYZz4YVRvC/3hd3vavI6WFyPI2kzx+vYr5zAiEAzB+AtujQ5qDa9uBOaN7lU57AZBCCu097DIvp7LswSKE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4360873},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"62ad0806f5158f8eaf9a4027377db6e15938d004","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.1_1747811936211_0.6244210793536353","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.2","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.2","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"94d2eb31779cec1e0e0d8bac68b6e2c5a69eda46","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.2.tgz","fileCount":61,"integrity":"sha512-3moj5lF0f65+ujbZK6GujjW6T9tBYIy4nMs39mHkg61xFewf9xTvgaVKzH+pFraxN4f9AJUF2hCIk1V7hxcfxw==","signatures":[{"sig":"MEUCIQDIDIp8KotueT+BTVBL+WzmT74GgRB/KJZJ85GPDc7gtQIgENxTyxt3TA6/sefeG7BjMRPERapq3S5RsZqPITwzm0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4360873},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"62ad0806f5158f8eaf9a4027377db6e15938d004","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.2_1747812160358_0.675768443652847","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.3","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.3","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"22c518b4a8b89ccc6338c2119790b0ff654d0b86","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.3.tgz","fileCount":63,"integrity":"sha512-yxPD4qjTRVptIGSPQMlCYfxJqQk3QeDK/usSf+il68pvmPsaJc8BTHGqzCnQKZMI7T+dVuBJqDkkFrCT3AYOhA==","signatures":[{"sig":"MEUCIBpnQ3Eg1hSRoy39MMAp1HXICv6Gys3H4x2aPuXJ7koXAiEAmV1b+gEuB7cArBmyo0xX/VaTTbJGmC38CRsG8hjrH5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4406362},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"62ad0806f5158f8eaf9a4027377db6e15938d004","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.3_1747812330449_0.7610193406138213","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.4","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.4","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"b2df47524dbb48b8404b1bf8bd30ff3a1342e5ad","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.4.tgz","fileCount":64,"integrity":"sha512-rmY2TTSEod+OdwSq5molgujv6+IgtuXQZ4N28wGy0F8INUd9jb5IZfhqqasfPAKccvTxARmnGmsxOe2hb3n2HQ==","signatures":[{"sig":"MEUCIQDID3eqIviFOMLpFkM6cyb1Uxbqmz9SCW8L1OSp27XQcwIgRN+zAFieNzzvnMRvhXoj526o593mlYcBlIpCJCk3jYo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4499456},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1cab3039fec4a10acd0bcd4a46f796a3f622171a","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\n🎉 Release created! To publish to npm, run:\n   npm publish --access public\n'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.4_1747895448643_0.3375623371708234","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.5","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.5","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"50d7cd103c314b824d6c0bc009e9b20397941f51","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.5.tgz","fileCount":68,"integrity":"sha512-4iG+hDOXYiVfE6kf7gmAhKYqG/gct+QNzRbd5uXj6hAhDpWNIuHwTavcnJ9rqTEbXoC+oRnXAgbBlU1/XXXz8g==","signatures":[{"sig":"MEYCIQDT+Edh+/ZSTSjZfRokd32ooYKTiXjsIcjjeP32aL7cCQIhAP1hOZduqgDnjSuoVMvvOHUVg/OoQzLxQZUOAxt2BWeS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4682079},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"18457f6e802246be6c461a10a2163a6384501f39","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\n🎉 Release created! To publish to npm, run:\n   npm publish --access public\n'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.5_1747896666901_0.6717081843048673","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.6","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.6","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"c0def3aed56ce117bfbc35d92571b4f7b11f28e8","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.6.tgz","fileCount":68,"integrity":"sha512-uUpmcAP5kf9Pro0gZeL97XuKgfFsY8yyU+0I1HyNrGfzYvLYOegkFNqgK1txM0eVwNAk3xokBFZnfSVWgP5ITw==","signatures":[{"sig":"MEUCIE1iFzaH0hhx4A/+m6yIPSJQg8M0aUHgMmxyzO6zV+fDAiEA2rVkQHgNu6plvWvabqydHFC/3VWf5sJf7wTSpEx2Shc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4689395},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"40c8d0369ecfaefce412d4f40b91130f75b43ef8","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\n🎉 Release created! To publish to npm, run:\n   npm publish --access public\n'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^8.56.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^8.56.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^6.9.0","@typescript-eslint/eslint-plugin":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.6_1747902525851_0.9430995067333536","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.7","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/visual-dom-auditor@0.1.7","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"bin":{"visual-dom-auditor":"dist/index.js"},"dist":{"shasum":"8a0fd9abc8eb82df63f561e362554fd755f66de7","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.7.tgz","fileCount":113,"integrity":"sha512-expI4NmePrLmLXCWNoEAekrgiOXE7iUbWhg5gUS4sUMBP5p2ZFERRQjlbgrsT2BYogiRaoPKSKQo8G9O7KkQkA==","signatures":[{"sig":"MEQCIEF/co/6vDLPzomfDtLfx8bRhl9Oa6joeBREO+vw2xNNAiAyTzJzQjJakPgejrjLoEv8jCYV3Pc2kppRbxrj1tOgow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5814439},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"1025e5ebc7eb25a36fbf528f66262ed58bc237e9","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\n🎉 Release created! To publish to npm, run:\n   npm publish --access public\n'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/visual-dom-auditor.git","type":"git"},"_npmVersion":"11.3.0","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"24.1.0","dependencies":{"ora":"^8.2.0","pino":"^9.7.0","tslib":"^2.8.1","commander":"^12.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.22.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.22.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.16.0","@typescript-eslint/eslint-plugin":"^8.16.0"},"_npmOperationalInternal":{"tmp":"tmp/visual-dom-auditor_0.1.7_1748599074475_0.174399321061814","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@alexberriman/visual-dom-auditor","version":"0.1.8","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","main":"dist/index.js","types":"dist/index.d.ts","bin":{"visual-dom-auditor":"dist/index.js"},"type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx watch src/index.ts","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","test":"vitest run","test:watch":"vitest --watch","test:coverage":"vitest --coverage","prepare":"husky","lint":"eslint src/","lint:fix":"eslint src/ --fix","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check src/","typecheck":"tsc --noEmit","check":"npm run lint && npm run typecheck && npm run test","lint-staged":"lint-staged","prepublishOnly":"npm run build","release":"npm run check && npm version patch && git push && git push --tags && echo '\n🎉 Release created! To publish to npm, run:\n   npm publish --access public\n'"},"repository":{"type":"git","url":"git+https://github.com/alexberriman/visual-dom-auditor.git"},"author":{"name":"Alex Berriman"},"license":"MIT","bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","dependencies":{"commander":"^12.0.0","ora":"^8.2.0","pino":"^9.7.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0","ts-results":"^3.3.0","tslib":"^2.8.1"},"devDependencies":{"@eslint/js":"^9.22.0","@types/node":"^22.15.17","@typescript-eslint/eslint-plugin":"^8.16.0","@typescript-eslint/parser":"^8.16.0","@vitest/coverage-v8":"^3.1.3","eslint":"^9.22.0","eslint-config-prettier":"^10.1.5","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","husky":"^9.1.7","lint-staged":"^16.0.0","prettier":"^3.5.3","tsup":"^8.0.0","tsx":"^4.7.0","typescript":"^5.8.3","vitest":"^3.1.3"},"keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"_id":"@alexberriman/visual-dom-auditor@0.1.8","gitHead":"241e8fcdcd44de034e3fcdbb2ff740074b018c14","_nodeVersion":"24.1.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-fjIZFnbCJrK9B2XT5l4zAfnAa5mn7o4jtBmMPxl+Cj8NWUlfYqLE9k6zNONWolrA4tTaC0noLtOiLc53tNi9qw==","shasum":"ee0c8eb387356e173562fb18c671227487d3cf4a","tarball":"https://registry.npmjs.org/@alexberriman/visual-dom-auditor/-/visual-dom-auditor-0.1.8.tgz","fileCount":113,"unpackedSize":5814439,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDWz81EbCa00co/Oz9NPs3i21qqe06zFyeUS0XeDOylcwIgZ5UgsNc+AFKSIRk2hw7Tsn47RgPg0A/hLNEEBLvTWxg="}]},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"directories":{},"maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/visual-dom-auditor_0.1.8_1748826995578_0.1665241281081553"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-21T07:18:56.109Z","modified":"2025-06-02T01:16:36.015Z","0.1.1":"2025-05-21T07:18:56.473Z","0.1.2":"2025-05-21T07:22:40.601Z","0.1.3":"2025-05-21T07:25:30.709Z","0.1.4":"2025-05-22T06:30:48.921Z","0.1.5":"2025-05-22T06:51:07.203Z","0.1.6":"2025-05-22T08:28:46.112Z","0.1.7":"2025-05-30T09:57:54.769Z","0.1.8":"2025-06-02T01:16:35.819Z"},"bugs":{"url":"https://github.com/alexberriman/visual-dom-auditor/issues"},"author":{"name":"Alex Berriman"},"license":"MIT","homepage":"https://github.com/alexberriman/visual-dom-auditor#readme","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"repository":{"type":"git","url":"git+https://github.com/alexberriman/visual-dom-auditor.git"},"description":"CLI tool for detecting critical layout issues on webpages using a headless browser","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"readme":"<h1 align=\"center\">Visual DOM Auditor</h1>\n\n<div align=\"center\">\n  \n  **A CLI tool for detecting layout issues on websites by analyzing the DOM using Playwright.**\n  \n  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n  [![npm version](https://img.shields.io/npm/v/@alexberriman/visual-dom-auditor.svg)](https://www.npmjs.com/package/@alexberriman/visual-dom-auditor)\n  [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue)](https://www.typescriptlang.org/)\n  \n</div>\n\n<br>\n\n<div align=\"center\">\n  <h3>🚀 Quick Start</h3>\n  \n  ```bash\n  npx @alexberriman/visual-dom-auditor --url https://example.com\n  ```\n</div>\n\n<br>\n\n---\n\n## 📖 Table of Contents\n\n- [✨ Why Visual DOM Auditor?](#-why-visual-dom-auditor)\n- [🔥 Features](#-features)\n- [⚡ Installation](#-installation)\n- [🎯 Quick Examples](#-quick-examples)\n- [🛠️ Command Reference](#️-command-reference)\n- [🧪 Detectors](#-detectors)\n- [🕷️ Site Crawling](#️-site-crawling)\n- [📊 Output Formats](#-output-formats)\n- [🔄 CI/CD Integration](#-cicd-integration)\n- [🎨 Advanced Usage](#-advanced-usage)\n- [🤝 Contributing](#-contributing)\n- [📜 License](#-license)\n\n---\n\n## ✨ Why Visual DOM Auditor?\n\nYour CSS looks perfect. Your code validates. But your site still breaks visually. **Visual DOM Auditor** catches what other tools miss — the real layout issues that frustrate users.\n\n<div align=\"center\">\n  <br>\n  <img src=\"https://img.shields.io/badge/Catches-Real%20Visual%20Bugs-ff6b6b?style=for-the-badge\" alt=\"Catches Real Visual Bugs\">\n  <img src=\"https://img.shields.io/badge/CI%2FCD-Ready-4ecdc4?style=for-the-badge\" alt=\"CI/CD Ready\">\n  <img src=\"https://img.shields.io/badge/Zero-Config-ffd93d?style=for-the-badge\" alt=\"Zero Config\">\n  <br><br>\n</div>\n\n---\n\n## 🔥 Features\n\n<table>\n  <tr>\n    <td width=\"50%\">\n      <h3>🎯 Smart Detection</h3>\n      <ul>\n        <li>Overlapping elements</li>\n        <li>Broken button padding</li>\n        <li>Insufficient spacing</li>\n        <li>Container overflows</li>\n        <li>Unexpected scrollbars</li>\n        <li>Flex/Grid layout issues</li>\n        <li>Console errors</li>\n      </ul>\n    </td>\n    <td width=\"50%\">\n      <h3>⚡ Powerful Testing</h3>\n      <ul>\n        <li>Test single or multiple URLs</li>\n        <li>Responsive viewport testing</li>\n        <li>Site-wide crawling</li>\n        <li>Concurrent processing</li>\n        <li>JSON output for automation</li>\n        <li>CI/CD integration</li>\n        <li>Early exit on critical issues</li>\n      </ul>\n    </td>\n  </tr>\n</table>\n\n---\n\n## ⚡ Installation\n\n```bash\n# Use directly (recommended)\nnpx @alexberriman/visual-dom-auditor --url https://example.com\n\n# Or install globally\nnpm install -g @alexberriman/visual-dom-auditor\n```\n\n---\n\n## 🎯 Quick Examples\n\n### Basic Usage\n\n```bash\n# Analyze a single page\nnpx @alexberriman/visual-dom-auditor --url https://example.com\n\n# Test mobile layout\nnpx @alexberriman/visual-dom-auditor --url https://example.com --viewport mobile\n\n# Save results\nnpx @alexberriman/visual-dom-auditor --url https://example.com --save report.json\n```\n\n### Advanced Usage\n\n```bash\n# Test multiple pages with custom viewport\nnpx @alexberriman/visual-dom-auditor \\\n  --urls https://example.com https://example.com/about \\\n  --viewport 1366x768 \\\n  --save results.json\n\n# Crawl entire site\nnpx @alexberriman/visual-dom-auditor \\\n  --url https://example.com \\\n  --crawl \\\n  --max-pages 50 \\\n  --max-threads 5\n\n# Run specific detectors only\nnpx @alexberriman/visual-dom-auditor \\\n  --url https://example.com \\\n  --detectors \"overlap,console-error\"\n```\n\n---\n\n## 🛠️ Command Reference\n\n### Core Options\n\n| Option | Description | Default |\n|:-------|:------------|:--------|\n| `--url` | Single URL to analyze | - |\n| `--urls` | Multiple URLs to analyze | - |\n| `--viewport` | `desktop`, `tablet`, `mobile`, or `WIDTHxHEIGHT` | `desktop` |\n| `--save` | Save results to file | - |\n| `--format` | Output format | `json` |\n| `--verbose` | Show detailed logs | `false` |\n| `--exit-early` | Stop on first critical error | `false` |\n\n### Detector Options\n\n| Option | Description | Default |\n|:-------|:------------|:--------|\n| `--detectors` | Comma-separated list of detectors | All enabled |\n\n### Crawling Options\n\n| Option | Description | Default |\n|:-------|:------------|:--------|\n| `--crawl` | Enable site crawling | `false` |\n| `--max-depth` | Maximum crawl depth (1-10) | `3` |\n| `--max-pages` | Maximum pages to crawl (1-1000) | `50` |\n| `--max-threads` | Concurrent threads (1-10) | `3` |\n\n---\n\n## 🧪 Detectors\n\n### 🎯 Enabled by Default\n\n<details>\n<summary><b>🔴 Overlap Detector</b> — Finds overlapping elements</summary>\n\n```json\n{\n  \"type\": \"overlap\",\n  \"severity\": \"critical\",\n  \"elements\": [\n    {\"selector\": \".header-logo\", \"description\": \"Header logo\"},\n    {\"selector\": \".nav-menu\", \"description\": \"Navigation menu\"}\n  ],\n  \"overlapPercentage\": 65\n}\n```\n</details>\n\n<details>\n<summary><b>📏 Padding Detector</b> — Checks button/link padding</summary>\n\n```json\n{\n  \"type\": \"padding\",\n  \"severity\": \"major\",\n  \"element\": {\"selector\": \".submit-btn\", \"description\": \"Submit button\"},\n  \"insufficientSides\": [\"top\", \"bottom\"]\n}\n```\n</details>\n\n<details>\n<summary><b>↔️ Spacing Detector</b> — Validates element spacing</summary>\n\n```json\n{\n  \"type\": \"spacing\",\n  \"severity\": \"minor\",\n  \"spacing\": 2,\n  \"recommendedSpacing\": 8\n}\n```\n</details>\n\n<details>\n<summary><b>📦 Container Overflow</b> — Detects content overflow</summary>\n\n```json\n{\n  \"type\": \"container-overflow\",\n  \"severity\": \"major\",\n  \"overflowDirection\": \"right\",\n  \"overflowAmount\": 15\n}\n```\n</details>\n\n<details>\n<summary><b>📜 Scrollbar Detector</b> — Finds unwanted scrollbars</summary>\n\n```json\n{\n  \"type\": \"scrollbar\",\n  \"severity\": \"critical\",\n  \"overflowAmount\": 320\n}\n```\n</details>\n\n<details>\n<summary><b>🎨 Flex/Grid Detector</b> — Layout system issues</summary>\n\n```json\n{\n  \"type\": \"flex-grid\",\n  \"severity\": \"major\",\n  \"issue\": \"overflow\"\n}\n```\n</details>\n\n<details>\n<summary><b>🚨 Console Error Detector</b> — JavaScript errors</summary>\n\n```json\n{\n  \"type\": \"console-error\",\n  \"severity\": \"critical\",\n  \"level\": \"error\",\n  \"message\": \"TypeError: Cannot read property 'foo' of undefined\"\n}\n```\n</details>\n\n### 🔵 Disabled by Default\n\n- **Centering Detector** — Enable with `--detectors centering`\n\n---\n\n## 🕷️ Site Crawling\n\nAutomatically discover and analyze your entire website.\n\n```bash\n# Basic crawl\nnpx @alexberriman/visual-dom-auditor --url https://example.com --crawl\n\n# Advanced crawl with limits\nnpx @alexberriman/visual-dom-auditor \\\n  --url https://example.com \\\n  --crawl \\\n  --max-depth 5 \\\n  --max-pages 100 \\\n  --max-threads 5 \\\n  --save crawl-report.json\n```\n\n### How It Works\n\n1. **🚀 Starts** from your URL\n2. **🔍 Discovers** internal links\n3. **🧹 Filters** external/asset links\n4. **⚡ Analyzes** pages concurrently\n5. **📊 Reports** aggregated results\n\n---\n\n## 📊 Output Formats\n\n### Single URL\n\n```json\n{\n  \"url\": \"https://example.com\",\n  \"timestamp\": \"2023-05-20T10:15:30Z\",\n  \"issues\": [...],\n  \"metadata\": {\n    \"totalIssuesFound\": 3,\n    \"criticalIssues\": 1,\n    \"issuesByType\": {...}\n  }\n}\n```\n\n### Multiple URLs / Crawl\n\n```json\n{\n  \"timestamp\": \"2023-05-20T10:15:30Z\",\n  \"results\": [...],\n  \"summary\": {\n    \"totalUrls\": 15,\n    \"urlsWithIssues\": 8,\n    \"totalIssuesFound\": 23\n  },\n  \"crawlMetadata\": {\n    \"startUrl\": \"https://example.com\",\n    \"pagesSkipped\": 32,\n    \"crawlDuration\": 45000\n  }\n}\n```\n\n---\n\n## 🔄 CI/CD Integration\n\n### GitHub Actions\n\n```yaml\nname: Visual Audit\non: [push, pull_request]\n\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - name: Install Playwright\n        run: npx playwright install chromium\n      - name: Run Visual Audit\n        run: |\n          npx @alexberriman/visual-dom-auditor \\\n            --url https://staging.example.com \\\n            --crawl \\\n            --exit-early \\\n            --save report.json\n      - uses: actions/upload-artifact@v3\n        with:\n          name: audit-report\n          path: report.json\n```\n\n### Quick CI Commands\n\n```bash\n# Fail fast on critical issues\nnpx @alexberriman/visual-dom-auditor --url $STAGING_URL --exit-early\n\n# Full site audit\nnpx @alexberriman/visual-dom-auditor --url $STAGING_URL --crawl --max-pages 25\n```\n\n---\n\n## 🎨 Advanced Usage\n\n### Pipe to Other Tools\n\n```bash\n# Pretty print with jq\nnpx @alexberriman/visual-dom-auditor --url https://example.com | jq '.'\n\n# Extract critical issues\nnpx @alexberriman/visual-dom-auditor --url https://example.com | \\\n  jq '.issues[] | select(.severity == \"critical\")'\n\n# Count issues by type\nnpx @alexberriman/visual-dom-auditor --url https://example.com | \\\n  jq '.metadata.issuesByType'\n```\n\n### Programmatic Usage\n\n```javascript\nimport { analyzePage } from \"@alexberriman/visual-dom-auditor/core/analyzer\";\nimport { allDetectors } from \"@alexberriman/visual-dom-auditor/core/detectors\";\n\n// Custom analysis\nconst result = await analyzePage(page, config, allDetectors);\n```\n\n---\n\n## 🤝 Contributing\n\nWe love contributions! Check out our [contributing guide](CONTRIBUTING.md) to get started.\n\n```bash\n# Fork and clone\ngit clone https://github.com/YOUR_USERNAME/visual-dom-auditor\ncd visual-dom-auditor\n\n# Install dependencies\nnpm install\n\n# Make your changes\n# ...\n\n# Test\nnpm test\n\n# Submit PR\n```\n\n---\n\n## 📜 License\n\nMIT © [Alex Berriman](https://github.com/alexberriman)\n\n<div align=\"center\">\n  <br>\n  <sub>Built with ❤️ to make the web more visually perfect</sub>\n</div>","readmeFilename":"README.md"}