{"_id":"qat-cli","_rev":"30-facf5281aaab6574c31ccf2643beb2e7","name":"qat-cli","dist-tags":{"latest":"0.3.22"},"versions":{"0.1.0":{"name":"qat-cli","version":"0.1.0","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.1.0","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"4dbb7290f6ccb09ed8ff941ddd0b7414d32233f5","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.1.0.tgz","fileCount":21,"integrity":"sha512-LlavtlevilwEHSS+YEki5Vgp6FCNRFSgkUMU7JeYN8uQvSqh9TilXQe98y0gSiJBH2xS7t6SHIkBAPYov3JRJw==","signatures":[{"sig":"MEQCIE6I26Ka3tNaKgsP6ltg0pcHSrkWHjXqq6TIOsQ/zGSSAiBR0BKgJeo+mZNbXxAU5UlP/vEwUSG6MTGZ4aEdgZCs+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":966493},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"51971ca21754fa72e45ad6eb8dd43481b34acb7a","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.1.0_1776232029212_0.3692219322336743","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"qat-cli","version":"0.2.0","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.0","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"57e7e7cb07b03876b29d8e234879f55e450cdede","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.0.tgz","fileCount":21,"integrity":"sha512-zZejOEKJM3f4chQayZmKbHRn8IDwvIfAWQ/Ov0JUj+XjbEmMiyqa5RFutRgb2yiLcK9KmpYqcPNFJl2V0LeH5w==","signatures":[{"sig":"MEQCIGNVIz9Kb3iR2+muH1LbPGwFGJqoIVNVKnsMcGF0o24ZAiAOOXsZXGRf1Ja87UGuMc4LInUpax4ck4/61YxcW0X/kQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1326887},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7b8dbf33afb5a1a4fc7a0db9bb72d9f0c78e5845","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.0_1776238931399_0.6340537408364573","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"qat-cli","version":"0.2.1","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.1","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"9e47363cd73d25a043e641642bebaf99331dd930","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.1.tgz","fileCount":21,"integrity":"sha512-ja0aSsjWvMIEpQT741Sn3K4woLUZU3HZa4OH6NTqb23Yb8t/W26iEysydDmgIHtQqHQD3+BDihTDSFYrbh27vQ==","signatures":[{"sig":"MEUCID32wNbYwrZtaOzF162SVkVIT1P6mSb14nA7yxmKxdrmAiEA7ibdEuefj5uLRuEzolq0YA/uoMvs+bblg3CIWYnRvos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1326557},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7b8dbf33afb5a1a4fc7a0db9bb72d9f0c78e5845","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.1_1776240707413_0.6709458799377963","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"qat-cli","version":"0.2.3","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.3","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"d870a181bc01fc5ea8648c4657d3e2c25ef3ffc0","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.3.tgz","fileCount":21,"integrity":"sha512-J0Kca4XWRQNpTTm1h243gghndYB4mdxjOMh/9xkFEbG0grtpAb86CsN5zhdN9lma4O5aVmKAVo22/TsqWcy+sw==","signatures":[{"sig":"MEUCIHzyWf0/BL8/qORPYH+e9zoocoWeQya1zuCXqn43HZrWAiEA5vtKgwqpt6oUhCmTcHfptsMm6RGpt5SrOZUuZFt5gBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1455393},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.3_1776245337855_0.33363463204998767","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"qat-cli","version":"0.2.4","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.4","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"81cd4a32315beb2389cf55f01a1336c904c7f91a","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.4.tgz","fileCount":21,"integrity":"sha512-522GGr3RzV/xBrIr99TfGLS/uWxc0WjJfhwapnCSszj80S+rVVqbrGjCpkW03QdCPBCrGZLicTsVdrObviEN6Q==","signatures":[{"sig":"MEQCIA+Mx0DdJQE7Yx2NUL99OR39D/iFr4edvroLkjbx7qAGAiAPO3CSZQsjhwM+QJcGhoPgyFF6BMEYj8sZQZRontKFqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1482600},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.4_1776245758922_0.5861516192672613","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"qat-cli","version":"0.2.5","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.5","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"01f5d7721964d9621dd863eb94a689bcb9bc2ca3","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.5.tgz","fileCount":21,"integrity":"sha512-lIHxntjZdhwfm1kpbvfmjnS9igmcUg0rPDj+LjtGjonFldUPRtWy8oe7SftDIM0M5MzXjj3VlrW2SttTAgN1Dg==","signatures":[{"sig":"MEQCIFSr/o8zi75eGymXASbEQbJNjDGucPbP5+BeO80tSj8pAiB+Pa9emrTBRT25owq6b2+ynQ4MOB3jlT+v10XyVyuSqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1493051},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.5_1776298597638_0.26934954219473295","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"qat-cli","version":"0.2.6","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.6","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"560cdbcaea8529f18b85491bb5b44b04c618b8eb","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.6.tgz","fileCount":21,"integrity":"sha512-Nd88Tb0H6mY4krKAJdojP9EbHujLzCBmzO3E6bpN3ZF/jxWN0gjNfB2byl699e4KThsfahmKsfu7Jjv2oYfYoQ==","signatures":[{"sig":"MEQCIBEZKYyKUj788pftnhTjyXCM4iT3V81mJIB3KoepqgsNAiAIDtr/rLnMM8zpn4qwO3RJruV7VQHa2+JJ0TyLERoc9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1495934},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.6_1776299278015_0.4639473159011791","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"qat-cli","version":"0.2.7","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.7","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"f5087cd5f85ea580af886039a82b6f6f8b85772b","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.7.tgz","fileCount":21,"integrity":"sha512-vVX9bhdOQvrwVUuAgSoKla/q6EgT8svrxw7xbZPId6U64cd4hCiQp6IrCvw7YtsKcn/iI3nWjNKwpgDjSjtm+g==","signatures":[{"sig":"MEQCIH+fywObFfNQ7TyppnhkYO3eiakEB8L00eaWVg3u7Al7AiA5z78xeEEKUOjiD8JEwySseCt+Omub/fKFLwF8inWcHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1497272},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.7_1776299871419_0.7251822677621027","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"qat-cli","version":"0.2.8","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.8","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"7bce1c3e328f4ab1bf3e834a44cbf26e438ea493","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.8.tgz","fileCount":21,"integrity":"sha512-eKWWI+NigmuACwCKGEDaoBCz5O++IPA3uvqv3HNRAX9pto/WkduQWbn0yGi0DjSLWWW0hWHb+fcJmtfQRn5fcg==","signatures":[{"sig":"MEUCIQCx3UQMXochMkOdVesQ8SzPf2YKpB6OJw4wa+EzouP2NwIgNqRqDu9qjkJP2l9CsuF5OJ3rtbMC/s4V07MTJk9uFR4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1511575},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.8_1776300816748_0.1846501393220885","host":"s3://npm-registry-packages-npm-production"}},"0.2.98":{"name":"qat-cli","version":"0.2.98","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.2.98","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"efae5ad3e5b5f0529131656adfe083d1f7b3ba87","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.2.98.tgz","fileCount":21,"integrity":"sha512-hdl/RApp99BmUizm00gGth2gem442uPAcn/EHWQggI6E5VkNbPLzkdAypM31vJPwgoaxEz38mE+qPZCnifg5GA==","signatures":[{"sig":"MEYCIQCVC81203MghqZmnH2OpPKRAruzIynpx09xOwrob8VquwIhAOi2+njPItGmmKaEs3Gq6tXZFRArGAyf8ir+3kJW/Hd1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1511579},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.2.98_1776301149048_0.23983877146121113","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"qat-cli","version":"0.3.1","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.1","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"6527f798030ef2397b10bc5d88429ab3396e14ca","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.1.tgz","fileCount":21,"integrity":"sha512-bbfrbKxchlNtVPP4qwXpgCHMrqaFZEHitcmtOvbBQ6za3JjEIh9BjddLADovkqJzYKitObojHo2AaaaoYJB6Og==","signatures":[{"sig":"MEYCIQC429uZ8jOJhDF19E+Lx2V/7F61L7WfdN4bPui2oGKpEQIhAP01WxqvSeI0UCsr4n2XxtVG8RmROi36WzWcGflUN7ET","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1550695},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.1_1776301895368_0.5186144530917838","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"qat-cli","version":"0.3.2","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.2","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"50824a12039bc4c3f608713eac7464eca2d6c291","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.2.tgz","fileCount":21,"integrity":"sha512-Z2+9ETm7IdZEb1L4WzzPreZBKk55eKl++gHmSHl/MfW+9uYujVi02+MUOERtkMnvDLMXaGTtrm+S+QGYDorxaw==","signatures":[{"sig":"MEUCIFtNCAtdXEesmUMi5Ojq+yZnbIm851inX3tjOaDDir5ZAiEA6G6PmaMvAknFgOH/WVsYIKUmY6h8vdx8f1DHTCJ5fwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1586994},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.2_1776303049779_0.9699886410260701","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"qat-cli","version":"0.3.3","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.3","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"8099fd4db0b67cf2fbb6a0301a968b044c34d25f","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.3.tgz","fileCount":21,"integrity":"sha512-p6Vn9bWQ/ZudKo39fjYC3J1RBHCyHcxgYurIs8r6xGRJcgqg4LFEIn/xj4N54tZYqqq6bl3rPlFStNblVPn0Og==","signatures":[{"sig":"MEUCIQCGyRSL7PMGpj93QSBFG0Jg4sSHobVbJ8sXpypzNwuOYgIgXpZ5Bi9OJ7ZXQFA32PUOBCa+QovY+FnUXq4FwCNQuh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1612474},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c29fd2111dc8d3ee9ebeb0958a096170aedebe96","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.3_1776304602892_0.5095499301052782","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"qat-cli","version":"0.3.4","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.4","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"1e6490ad9f0ae4fd7afdfc53a93fa04ec27faade","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.4.tgz","fileCount":21,"integrity":"sha512-lW5HX9ieTpCGdaYeXlml0fB9wmR7txSLtED2Am9DNf5VXOjAb7tDIUbk9KjFMjo0J+Y1tSuJ4NIMXckaThGZfw==","signatures":[{"sig":"MEUCIGMqC42+z5bnj6NuaU8Hazjtq8p+2DcpyCi3PI+Lrv87AiEA0arRfNzlfvt9wuaZVJGiEEtCPnszja2Zq6zixRYODAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1662595},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c40acfad0df5bf123d2374e67472c616d2558a5b","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.4_1776306481441_0.6268264068891285","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"qat-cli","version":"0.3.5","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.5","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"fd9d402e01ede440c51f3c771e1eb7959fcf2bcc","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.5.tgz","fileCount":21,"integrity":"sha512-34KGuT6gYgXoAu7FhzQQt8lK6MaSuI6at42SxXtn2Rxk8NhWIQoewmWDDgGvhvcEzSxDKScADll0KPsigumK2g==","signatures":[{"sig":"MEUCIBXn6isGBHXFzySuPep58ttsIUncjtl//BloohIVumgfAiEAufLl/lw3kDTMF51DGwVFs01q0oWB+wfuqRygjguao2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1730832},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3cc26442685d1bdceff0dc1961321022e388e054","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.5_1776308411328_0.5127362525084374","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"qat-cli","version":"0.3.6","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.6","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"51f5ddb00c9f7a5dfb211e5cc287d8bd4d48c27f","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.6.tgz","fileCount":21,"integrity":"sha512-PEHXOdakF8tD/tSxzW+IfFG52LqFrDLFTyfyMEvDQJwsCmUupK1Lp5pN6Db+l+hCUHwhIo8YztA1s7jRkOU4bQ==","signatures":[{"sig":"MEUCIHmZOWEf4Cm0Q3RalJDcDWa6UoDbCGI1PcFojx386ipuAiEA8SWRmQWUqFbYlw8e80sqPXVLKZCB1r+AoA6B6TwUCOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1741918},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.6_1776309871386_0.18788192665208414","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"qat-cli","version":"0.3.7","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.7","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"6e7fbd0bf06020d7b1afe36448a1e222553ca642","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.7.tgz","fileCount":21,"integrity":"sha512-Rcof4YesB1+PHgdfpISeqZ9TKbmGNiyizTfyVmU2hPm2RjU7I97lbi0DPDEUlF/YBIIFW8XU8duz4lnSqF6tEw==","signatures":[{"sig":"MEUCIHgxj4WWZZ4NvuRzLUO8SFkBm5e6o6w2WxO7b4WjSvqBAiEA70kbhhXzciL3QoGy+WmdJHBMHARxGWOnb+zwI/0bgbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1786154},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.7_1776318363797_0.9843925549958268","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"qat-cli","version":"0.3.8","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.8","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"f821a905b6e4f2d21a7b8c73bdd443972dae61e6","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.8.tgz","fileCount":21,"integrity":"sha512-lOAMHIGVKz2noWA0V2jFPFU2VwEiKov80iVuT1AF9+F3ZI4zLZYbQQIXvchZwA8iTsW+e9QGPcshtEXdjqz5rQ==","signatures":[{"sig":"MEUCIQDnXiRwOsp/VAAXpIeVpniNqSdLs1Dru5GT/oeCsLHuigIgeZzKmm369OC7czCsu7EpM2lkuSV9dOpCYuFBCI8CYA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1789287},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.8_1776319111761_0.4792377831828716","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"qat-cli","version":"0.3.9","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.9","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"0f5ebb29d0d74cef93babb0beb08d19cb5007bde","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.9.tgz","fileCount":21,"integrity":"sha512-JHcapQZ/ArgZOulVLH92m/YX7Su4Ztek+mfF3GpwbuOHeL9bDHqeJJ+xOMTvJ0GlOepoSWyzUjSkObvi/OUMqQ==","signatures":[{"sig":"MEUCIQDDDkrLFiRoPDmehcJ+c6JsBsB5qn5vsyFI2bndzQWIZwIgVmrgdsHqB04tZOmTZmKx8E3RoQq/TqnP2JZS1M3CMFc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1801076},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^2.1.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.9_1776319971549_0.07400922917381036","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"qat-cli","version":"0.3.10","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.10","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"a0786784cbb75732149435a6c5ed3088906ab012","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.10.tgz","fileCount":21,"integrity":"sha512-AjbvRpCo4Xp0L4HjdKUKj/lVHXMSwA4BBPomHPuvTW8i9UWwbvvTXiSBx7h1vOQRBeYhoA7ReFtYEoLZkRIYiA==","signatures":[{"sig":"MEQCIFEC5mPMIrgeSp2uxSp4y91ZVA9IdaJUhGDM+puYIdNQAiBP6a3KknvooCRRNK20wgCMajpXIRQm501tQ4quN7rq0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1847405},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^2.1.5","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.10_1776321041013_0.6567280764373822","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"qat-cli","version":"0.3.11","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.11","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"b9dc148b18a03196f5cfe858306d6b881e146c79","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.11.tgz","fileCount":21,"integrity":"sha512-xFPmTmAmrxf0/S2Cm/W4+6WU2QEqWjuc3NU65qssxFJiS/L8+jcbS5AHCup95eV73S/3vt431m5yp8OXfhA6ZA==","signatures":[{"sig":"MEUCIQD4Ea40XGl+LGIcnL38zkxPPePASVlR8XOCBzBi2nm5WwIgB7KaAYTTZojv7xJqlcum6N0pLHIIAcBufMKpxi+nfjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1846489},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.11_1776321649344_0.46143122000313674","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"qat-cli","version":"0.3.12","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.12","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"b76ae53d7d60fa49be5a65870b4bd75b18dc5aab","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.12.tgz","fileCount":21,"integrity":"sha512-w9l5rZzBfe0UpXbqV4S5e7kWRQjdONEf1oNFQvMQVGrwGh25c0RaK/vXmqbX5785OIT9vqdTaBbekngyu6MgoQ==","signatures":[{"sig":"MEUCIQDO7ssNLKrxiDRq9Nr8HHVL7ZQAmC0sShEZ0O1kXX+8pAIgYOjkjHkabTUYNmv9XWQOVpZxSV5ehC5owaCcmZfgJsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1850687},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.12_1776322368704_0.017295473850910126","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"qat-cli","version":"0.3.15","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.15","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"8d2b9b2bda941b9f50eaddb92434b582bcfd4ba6","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.15.tgz","fileCount":21,"integrity":"sha512-EWYAOu9eECUa4xmtw2YhxUXTk83wr/EqNn5BiSzMRfZw6wecth1qpLkjgn5gxnw+3SM13uroGccxMAG/bsaeBw==","signatures":[{"sig":"MEUCIQC40cNcLPYIGdO8BSGdOOgTY9g+yQNc2Y0B7wXmEqDMhgIgUw+bty+BEWJmjEnk+J8nMK1rBlUDbpZvuPWLaG4RMyE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1850727},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.15_1776323530627_0.6037717869874968","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"qat-cli","version":"0.3.16","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.16","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"81023e3b94f2fbcee65353f9d319f08bd1373a80","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.16.tgz","fileCount":21,"integrity":"sha512-LvI+jSP+MfNlTKuaNVwiX25RFqv9dxtfvoqw5XbLrsJuWJ899ywh6R0ysJCajgRLxGZbxIL6Pv3TbDVn7PGXbA==","signatures":[{"sig":"MEYCIQDmSCqfMcq/m+fxf+GyccmP62Ql9NbHm4OtlWDD6n5k/AIhAO5DHNEB+jxQrRUwxz1mswr24KlaVFKvwn/MQrIVGIz3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1886335},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5400180225ff92ba460879af243a04d2b66854e6","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","handlebars":"^4.7.8","pixelmatch":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.16_1776326730554_0.22975866166454773","host":"s3://npm-registry-packages-npm-production"}},"0.3.17":{"name":"qat-cli","version":"0.3.17","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.17","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"0ceec83885cac866b33f25b3e8ccf2710bf4e896","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.17.tgz","fileCount":21,"integrity":"sha512-lnXfJ9B6RvUigGZ3ZyHwZzeolM6TQ4HDvHOLdPRkH850coJJQ1fSGSFxuNcxPJArQSho1hKADxlR9bU1jnJOdQ==","signatures":[{"sig":"MEQCID7E54JlbTf0DYu+BpNAQi82mg8g3xwUsBKI1oDYclmyAiBOPz1iJj+VvmvLmu3aQbj595jjyV5Cf8iYUXbqwKEkxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1913912},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7676bf1a5ea1e1793f3917ad5e7721c6572a604d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","happy-dom":"^20.9.0","handlebars":"^4.7.8","lighthouse":"^13.1.0","pixelmatch":"^6.0.0","@vue/test-utils":"^2.4.6","@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.17_1776329119083_0.6473910594067223","host":"s3://npm-registry-packages-npm-production"}},"0.3.18":{"name":"qat-cli","version":"0.3.18","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.18","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"ac12a5946986c03aaa414ab152929b7e4bcb27d4","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.18.tgz","fileCount":21,"integrity":"sha512-wKJbuTnq8IMI1s3isinG59F++RwmXE5sNTB44mUOGW3mQAlupowhOiHrdZxthvadisyDGT6zh/6XE/axximmtQ==","signatures":[{"sig":"MEUCIGKFy/2IZtNrqaswQjDHj7oy05j8utNuQyD1cuFrqjQLAiEAhIuXDZ/cT9Z5FDK+ELRbtNQIsZKXOq9N2P3zJPi6OwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1933059},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3d8425114c16d4efeb962cac77b91a4e203dbc6d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","happy-dom":"^20.9.0","handlebars":"^4.7.8","lighthouse":"^13.1.0","pixelmatch":"^6.0.0","@vue/test-utils":"^2.4.6","@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.18_1776330413916_0.699405410845469","host":"s3://npm-registry-packages-npm-production"}},"0.3.19":{"name":"qat-cli","version":"0.3.19","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.19","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"f29dea9a64e8b13020a22639c169a35688753641","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.19.tgz","fileCount":21,"integrity":"sha512-ryxrAc+mI+ckKCiH6P+y37AvubezQKIXkoQWWGqfMQC7e8ZZoqmS0OjAM/ktuZjF0CpaRkbvOYTFnthSkj4Ukg==","signatures":[{"sig":"MEUCIE50SeGjxflNpqub+NVQZcKPxG2Rk465yphxlwlpPiewAiEA6VpV38pIRhhuWyt8qrm1cYzgD30RhXsULiMqjjuM6JY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2031888},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3d8425114c16d4efeb962cac77b91a4e203dbc6d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","happy-dom":"^20.9.0","handlebars":"^4.7.8","lighthouse":"^13.1.0","pixelmatch":"^6.0.0","@vue/test-utils":"^2.4.6","@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.19_1776332015707_0.926907610269269","host":"s3://npm-registry-packages-npm-production"}},"0.3.20":{"name":"qat-cli","version":"0.3.20","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.20","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"7a38edded1b1857a3e3a5dc385f33d475c26fb63","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.20.tgz","fileCount":21,"integrity":"sha512-bMUkQUCnNq2O30SkGyN96emvFVuQv1MV1Q+Pcruibcoz0XtRv1/rbs2b1E3Tkt/U4rX2rQFWO6Uz88661Pr9aQ==","signatures":[{"sig":"MEQCICOiXjEUwGdU7IUGq8AjMwxXML9zjbY6Vmbukuny0MxNAiA+f5VvU3bBH9Nw2e/87idzT9sSRMgWGSc3TYEYQ1S1yA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2004030},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ed72306846fd52f69332c87f15e99a9c76da9b8f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","happy-dom":"^20.9.0","handlebars":"^4.7.8","lighthouse":"^13.1.0","pixelmatch":"^6.0.0","@vue/test-utils":"^2.4.6","@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.20_1776386800302_0.3578799861786752","host":"s3://npm-registry-packages-npm-production"}},"0.3.21":{"name":"qat-cli","version":"0.3.21","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"author":"","license":"MIT","_id":"qat-cli@0.3.21","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"bin":{"qat":"bin/qat.js"},"dist":{"shasum":"9dfee08c330d2c8517140c740017a9928875dad8","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.21.tgz","fileCount":21,"integrity":"sha512-k4W4RASoyIQMjAdvaYVgTzrO8bHBLWtcWjiKbSIynpoP41mmakVPCuem0iS08/3csyE4+JFqAyleXQY78wDlHg==","signatures":[{"sig":"MEQCIHr8Hi+S4yZp6WmXTEkfCCgrqv7mHhi7E+K4V8VofyVAAiBbzFZ4WTGfGBiV8hP1Z379DrWgCgrCbLdnp74jjkWy9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2023606},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ed72306846fd52f69332c87f15e99a9c76da9b8f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.7","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ora":"^8.1.0","chalk":"^5.3.0","pngjs":"^7.0.0","vitest":"^4.1.4","express":"^4.21.0","inquirer":"^9.2.23","commander":"^12.1.0","happy-dom":"^20.9.0","handlebars":"^4.7.8","lighthouse":"^13.1.0","pixelmatch":"^6.0.0","@vue/test-utils":"^2.4.6","@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","typescript":"^5.6.3","@types/node":"^20.14.0","@types/pngjs":"^6.0.5","@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/pixelmatch":"^5.2.6"},"_npmOperationalInternal":{"tmp":"tmp/qat-cli_0.3.21_1776388343849_0.8144460480143023","host":"s3://npm-registry-packages-npm-production"}},"0.3.22":{"name":"qat-cli","version":"0.3.22","description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","type":"module","bin":{"qat":"bin/qat.js"},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","prepublishOnly":"npm run build"},"keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"license":"MIT","author":"","repository":{"type":"git","url":""},"dependencies":{"@playwright/test":"^1.59.1","@vitejs/plugin-vue":"^6.0.6","@vitest/coverage-v8":"^4.1.4","@vue/test-utils":"^2.4.6","chalk":"^5.3.0","commander":"^12.1.0","express":"^4.21.0","handlebars":"^4.7.8","happy-dom":"^20.9.0","inquirer":"^9.2.23","lighthouse":"^13.1.0","ora":"^8.1.0","pixelmatch":"^6.0.0","pngjs":"^7.0.0","vitest":"^4.1.4"},"devDependencies":{"@types/express":"^4.17.21","@types/inquirer":"^9.0.7","@types/node":"^20.14.0","@types/pixelmatch":"^5.2.6","@types/pngjs":"^6.0.5","tsup":"^8.3.5","typescript":"^5.6.3"},"engines":{"node":">=18.0.0"},"_id":"qat-cli@0.3.22","gitHead":"ed72306846fd52f69332c87f15e99a9c76da9b8f","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-MtJvQmYPi/O3pyoioF4f1v7UoQHdDRmV8widQKGmBJHHOG9CrMTPsFscFdJMb54Wv68AbKVcmrC0haoqcg78kQ==","shasum":"1e05006b3a0efac7b48f1824c561dc4221d7ff13","tarball":"https://registry.npmjs.org/qat-cli/-/qat-cli-0.3.22.tgz","fileCount":21,"unpackedSize":2081140,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHewbhcHgB28cMYjouUP9SSsb8uvoGuCyw+y8kIJHOPNAiEAiiMSl2BwDpND634A5pUCQybI0MYTacuVmCZEotJIfTg="}]},"_npmUser":{"name":"qih32323","email":"18953246819@163.com"},"directories":{},"maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qat-cli_0.3.22_1776389985275_0.5630711140153564"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-15T05:47:09.211Z","modified":"2026-04-17T01:39:45.531Z","0.1.0":"2026-04-15T05:47:09.381Z","0.2.0":"2026-04-15T07:42:11.617Z","0.2.1":"2026-04-15T08:11:47.574Z","0.2.3":"2026-04-15T09:28:58.042Z","0.2.4":"2026-04-15T09:35:59.138Z","0.2.5":"2026-04-16T00:16:37.945Z","0.2.6":"2026-04-16T00:27:58.182Z","0.2.7":"2026-04-16T00:37:51.641Z","0.2.8":"2026-04-16T00:53:36.938Z","0.2.98":"2026-04-16T00:59:09.249Z","0.3.1":"2026-04-16T01:11:35.539Z","0.3.2":"2026-04-16T01:30:50.058Z","0.3.3":"2026-04-16T01:56:43.048Z","0.3.4":"2026-04-16T02:28:01.596Z","0.3.5":"2026-04-16T03:00:11.577Z","0.3.6":"2026-04-16T03:24:31.573Z","0.3.7":"2026-04-16T05:46:04.000Z","0.3.8":"2026-04-16T05:58:31.988Z","0.3.9":"2026-04-16T06:12:51.837Z","0.3.10":"2026-04-16T06:30:41.160Z","0.3.11":"2026-04-16T06:40:49.554Z","0.3.12":"2026-04-16T06:52:48.933Z","0.3.15":"2026-04-16T07:12:10.799Z","0.3.16":"2026-04-16T08:05:30.962Z","0.3.17":"2026-04-16T08:45:19.264Z","0.3.18":"2026-04-16T09:06:54.067Z","0.3.19":"2026-04-16T09:33:35.934Z","0.3.20":"2026-04-17T00:46:40.469Z","0.3.21":"2026-04-17T01:12:24.012Z","0.3.22":"2026-04-17T01:39:45.424Z"},"license":"MIT","keywords":["testing","cli","vue","vitest","playwright","e2e","automation","lighthouse","visual-regression","mock-server","vben","nuxt"],"repository":{"type":"git","url":""},"description":"CLI automation testing tool for Vue projects - integrates Vitest, Playwright & Lighthouse","maintainers":[{"name":"qih32323","email":"18953246819@163.com"}],"readme":"<div align=\"center\">\r\n\r\n# QAT-CLI\r\n\r\n**Quick Auto Testing — 面向 Vue 项目，集成 Vitest & Playwright，AI 驱动覆盖测试全流程**\r\n\r\n[![npm version](https://img.shields.io/badge/version-0.3.22-blue.svg)](https://www.npmjs.com/package/qat-cli)\r\n[![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-green.svg)](https://nodejs.org/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue.svg)](https://www.typescriptlang.org/)\r\n\r\n[功能特性](#功能特性) · [快速开始](#快速开始) · [命令详解](#命令详解) · [配置文件](#配置文件) · [AI 辅助](#ai-辅助) · [API](#api) · [开发](#开发)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## QAT-CLI 是什么？\r\n\r\nQAT-CLI（Quick Auto Testing）是一个面向 Vue 生态的全局 CLI 测试工具，它不重复造轮子，而是将业界最优秀的测试框架（Vitest、Playwright、Lighthouse）整合到统一的命令行界面中，通过**交互式引导**+**智能项目检测**+**源码分析**+**AI 辅助**，让测试从\"不想写\"变成\"容易写\"。\r\n\r\n### 核心设计理念\r\n\r\n- **零配置起步** — `qat init` 一条命令完成项目检测、配置生成、目录创建、**自动生成测试用例**\r\n- **智能分类** — 根据文件类型自动选择测试类型：`.vue` → 组件测试，`utils/composables` → 单元测试，`api/` → API 测试\r\n- **AI 增强** — 全局 AI 模型配置，自动辅助生成测试代码、分析失败原因、建议修复方案\r\n- **源码分析驱动** — 自动扫描源码，提取导出/Props/Emits/API调用，生成个性化测试用例\r\n- **Mock 自动化** — 扫描源码中的 API 调用，自动生成 Mock 路由，无需手写\r\n- **框架智能适配** — 自动识别 Vben / Nuxt 等 Vue 框架及 UI 组件库，生成匹配的测试模板\r\n- **依赖隔离** — QAT-CLI 内置 Vitest 依赖，通过 Node API 直接调用（进程内运行），用户项目无需安装；Playwright/Lighthouse 通过 npx 子进程调用\r\n- **覆盖全流程** — 从创建用例 → 运行测试 → 视觉回归 → Mock 服务 → 生成报告，一站式解决\r\n- **可扩展** — 框架注册表 + 模板引擎 + AI Provider 注册，添加新框架只需一个注册函数\r\n\r\n---\r\n\r\n## 功能特性\r\n\r\n| 命令 | 说明 |\r\n|------|------|\r\n| `qat init` | 项目初始化：自动检测项目、配置 AI、**智能扫描源码生成测试用例** |\r\n| `qat create` | 交互式创建更多测试用例（源码分析 + AI 辅助） |\r\n| `qat run` | 运行测试（支持按类型/文件/标签/并行/监听/Dry Run） |\r\n| `qat status` | 查看 QAT 状态 — AI 模型信息、项目配置、连通性测试 |\r\n| `qat change` | 更改 AI 模型配置（全局生效，所有项目共享） |\r\n| `qat setup` | 一键安装测试所需的外部依赖 |\r\n| `qat mock` | Mock API 服务器管理（启动/停止/状态） |\r\n| `qat visual` | 视觉回归测试（截图比对与基线管理） |\r\n| `qat report` | 生成 HTML 测试报告 |\r\n\r\n### 支持的测试类型\r\n\r\n| 类型 | 运行器 | 说明 | 自动匹配规则 |\r\n|------|--------|------|-------------|\r\n| 单元测试 | Vitest | 函数/工具类/composables 测试 | `utils/`、`helpers/`、`services/`、`composables/`、`hooks/` |\r\n| 组件测试 | Vitest + @vue/test-utils | Vue SFC 组件挂载与交互测试 | `.vue` 文件 |\r\n| E2E 测试 | Playwright | 端到端用户流程测试 | 手动指定 |\r\n| API 测试 | Vitest + Express Mock | 接口请求/响应验证 | `api/` 目录下的文件 |\r\n| 视觉回归 | Playwright + pixelmatch | UI 截图差异比对 | 手动指定 |\r\n| 性能测试 | Lighthouse | Core Web Vitals 指标检测 | 手动指定 |\r\n\r\n---\r\n\r\n## 安装\r\n\r\n### 全局安装（推荐）\r\n\r\n```bash\r\nnpm install -g qat-cli\r\n```\r\n\r\n### 使用 npx（免安装）\r\n\r\n```bash\r\nnpx qat-cli --help\r\n```\r\n\r\n### 前置要求\r\n\r\n- **Node.js** >= 18.0.0\r\n- 一个 Vue 项目（Vue 2 / Vue 3 / Nuxt / Vben Admin 均可）\r\n\r\n> 所有测试框架依赖已全部内置，无需用户项目安装。只需 `npm install -g qat-cli` 即可运行所有测试类型。E2E 测试需要额外运行一次 `npx playwright install` 安装浏览器二进制。\r\n\r\n### 支持的框架\r\n\r\n| 框架 | 自动检测 | 模板适配 | UI 库适配 | Monorepo |\r\n|------|:--------:|:--------:|:---------:|:--------:|\r\n| Vue 3 | ✅ | ✅ | ✅ | ✅ |\r\n| Vue 2 | ✅ | ✅ | ✅ | — |\r\n| Vben Admin (5.x) | ✅ | ✅ | ✅ | ✅ |\r\n| Nuxt 3 | ✅ | ✅ | ✅ | ✅ |\r\n\r\n> 添加新框架只需调用 `registerFramework()` — [扩展指南](#框架扩展)\r\n\r\n### 支持的 UI 组件库\r\n\r\n组件测试模板会自动注入对应的全局插件注册，无需手动配置：\r\n\r\n| UI 库 | 自动检测 | 组件测试适配 |\r\n|-------|:--------:|:-----------:|\r\n| Ant Design Vue | ✅ | ✅ |\r\n| Element Plus | ✅ | ✅ |\r\n| Naive UI | ✅ | ✅ |\r\n| Vuetify | ✅ | ✅ |\r\n| PrimeVue | ✅ | ✅ |\r\n\r\n---\r\n\r\n## 快速开始\r\n\r\n```bash\r\n# 1. 进入项目目录（Vue / Vben / Nuxt 均可）\r\ncd my-vue-project\r\n\r\n# 2. 初始化（自动检测项目、配置 AI、生成测试用例）\r\nqat init\r\n\r\n# 3. 直接运行测试（init 已自动生成测试用例）\r\nqat run\r\n\r\n# 4. 如需更多测试用例\r\nqat create\r\n\r\n# 5. 查看 AI 模型状态\r\nqat status\r\n\r\n# 6. 切换 AI 模型\r\nqat change\r\n```\r\n\r\n---\r\n\r\n## 命令详解\r\n\r\n### `qat init`\r\n\r\n交互式初始化测试项目。自动检测项目结构、配置 AI、**智能扫描源码并生成测试用例**。\r\n\r\n```bash\r\nqat init           # 交互式引导\r\nqat init --force   # 强制覆盖已有配置\r\n```\r\n\r\n**执行流程：**\r\n\r\n1. **项目检测** — 自动识别框架、Vue 版本、UI 组件库、TypeScript 等\r\n2. **AI 配置** — 首次使用引导配置（apiKey / baseUrl / model），已配置则显示当前模型\r\n3. **连通性测试** — 同一行显示模型名称和延迟\r\n4. **生成配置文件** — `qat.config.js`\r\n5. **创建测试目录** — `tests/unit`、`tests/component`、`tests/e2e` 等\r\n6. **Mock 路由生成** — 自动扫描源码 API 调用\r\n7. **智能扫描源码 + 生成测试用例** — 根据文件类型自动选择测试类型\r\n\r\n**智能测试分类：**\r\n\r\n| 文件类型 | 自动归类 | 说明 |\r\n|---------|---------|------|\r\n| `*.vue` | 组件测试 | Vue SFC 文件 |\r\n| `composables/*.ts`、`hooks/*.ts`、`use*.ts` | 单元测试 | Composables / Hooks |\r\n| `utils/*.ts`、`helpers/*.ts`、`services/*.ts`、`lib/*.ts` | 单元测试 | 工具函数 / 服务 |\r\n| `api/*.ts` | API 测试 | API 接口文件 |\r\n\r\n**生成内容：**\r\n- `qat.config.js` — 测试配置文件（AI 配置存储在全局 `~/.qat/ai.json`）\r\n- `tests/` — 测试目录结构 + 自动生成的测试用例\r\n- `tests/mock/routes/auto-generated.json` — 自动生成的 Mock 路由\r\n\r\n**检测能力：**\r\n\r\n| 检测项 | 说明 |\r\n|--------|------|\r\n| 框架类型 | 自动识别 Vue / Vben Admin / Nuxt（含置信度） |\r\n| Vue 版本 | 自动识别 Vue 2 / Vue 3 |\r\n| UI 组件库 | 检测 Ant Design Vue / Element Plus / Naive UI 等 |\r\n| Vite 构建 | 检测 vite 依赖或配置文件 |\r\n| TypeScript | 检测 tsconfig 或 typescript 依赖 |\r\n| Monorepo | 检测 pnpm workspace / Turborepo / Nx / Lerna |\r\n| 子项目 | 自动发现 `apps/` 和 `packages/` 下的子项目 |\r\n| 包管理器 | 识别 npm / yarn / pnpm / bun |\r\n| 已有测试框架 | 检测 vitest / jest / playwright / cypress |\r\n| 组件目录 | 自动发现 `components/` 等目录 |\r\n\r\n**AI 配置**（首次运行自动引导）：\r\n\r\n```\r\n  AI 模型配置 (首次使用需配置，之后可通过 qat change 修改)\r\n\r\n? API Key (Ollama 本地可留空): sk-xxx\r\n? API Base URL: https://api.deepseek.com/v1\r\n? 模型名称: deepseek-chat\r\n  配置已保存至 ~/.qat/ai.json\r\n\r\n  ✓ 当前 AI 模型: deepseek-chat @ https://api.deepseek.com/v1 (sk-****1234)\r\n✔ AI 连通正常 deepseek-chat (234ms)\r\n```\r\n\r\n> 已配置 AI 后再运行 `qat init`，直接显示当前模型信息，无需重复配置。\r\n\r\n**自动生成的目录结构：**\r\n\r\n```\r\nmy-vue-project/\r\n├── qat.config.js\r\n└── tests/\r\n    ├── unit/\r\n    │   ├── format-utils.test.ts        ← 自动生成\r\n    │   └── use-auth.test.ts            ← 自动生成\r\n    ├── component/\r\n    │   ├── user-list.test.ts           ← 自动生成\r\n    │   └── login-form.test.ts          ← 自动生成\r\n    ├── e2e/\r\n    ├── api/\r\n    │   └── user-api.test.ts            ← 自动生成\r\n    ├── visual/\r\n    │   ├── baseline/\r\n    │   └── diff/\r\n    └── mock/\r\n        └── routes/\r\n            └── auto-generated.json      ← 自动生成的 Mock 路由\r\n```\r\n\r\n---\r\n\r\n### `qat status`\r\n\r\n查看 QAT 当前状态 — AI 模型信息、项目配置、连通性测试。\r\n\r\n```bash\r\nqat status\r\n```\r\n\r\n**输出示例：**\r\n\r\n```\r\n  AI 模型状态\r\n  ─────────────────────────────\r\n  模型:      deepseek-chat\r\n  API URL:   https://api.deepseek.com/v1\r\n  API Key:   sk-****1234\r\n  Provider:  openai\r\n  配置文件:  ~/.qat/ai.json\r\n✔ 连通正常 (234ms)\r\n\r\n  项目配置\r\n  ─────────────────────────────\r\n  框架:       Vue\r\n  源码目录:   src\r\n  Vitest:     ✓ (happy-dom)\r\n  Playwright: ✓ (chromium)\r\n  Mock:       ✓ (port 3456)\r\n  Visual:     ✓\r\n  Lighthouse: ✓\r\n```\r\n\r\n---\r\n\r\n### `qat change`\r\n\r\n更改 AI 模型配置。修改全局 `~/.qat/ai.json`，所有项目共享。\r\n\r\n```bash\r\nqat change\r\n```\r\n\r\n**交互流程：**\r\n\r\n1. 显示当前 AI 配置（模型 / API URL / API Key 脱敏）\r\n2. 引导输入新的 apiKey / baseUrl / model（默认填充当前值）\r\n3. 保存后自动测试连通性\r\n\r\n**输出示例：**\r\n\r\n```\r\n  当前 AI 配置:\r\n  模型:     deepseek-chat\r\n  API URL:  https://api.deepseek.com/v1\r\n  API Key:  sk-****1234\r\n\r\n? API Key (Ollama 本地可留空): ****\r\n? API Base URL: https://api.openai.com/v1\r\n? 模型名称: gpt-4o-mini\r\n\r\n  ✓ AI 配置已保存\r\n    ~/.qat/ai.json\r\n    模型: gpt-4o-mini @ https://api.openai.com/v1\r\n✔ AI 连通正常 (gpt-4o-mini, 456ms)\r\n```\r\n\r\n---\r\n\r\n### `qat setup`\r\n\r\n一键安装测试所需的外部依赖，根据 `qat.config.js` 中启用的功能自动判断。\r\n\r\n```bash\r\nqat setup             # 交互式选择并安装\r\nqat setup --dry-run   # 仅预览需要安装什么，不实际执行\r\nqat setup -f          # 强制重新安装已有依赖\r\n```\r\n\r\n**依赖分组：**\r\n\r\n| 分组 | 安装的包 | 对应配置项 |\r\n|------|---------|-----------|\r\n| Playwright 浏览器 | `npx playwright install` | `playwright.enabled` |\r\n\r\n> 测试框架全家桶已全部内置在 QAT-CLI 中：`vitest`、`@vue/test-utils`、`happy-dom`、`@vitest/coverage-v8`、`@vitejs/plugin-vue`、`@playwright/test`、`lighthouse`。用户项目无需安装任何测试框架依赖。`qat setup` 仅用于安装 Playwright 浏览器二进制文件（Chromium/Firefox/WebKit）。\r\n\r\n---\r\n\r\n### `qat create`\r\n\r\n交互式创建测试用例，支持自动发现 Vue 组件和工具文件，**源码分析 + AI 辅助**生成个性化测试。\r\n\r\n```bash\r\nqat create                           # 交互式创建\r\nqat create -t unit component         # 指定多个类型\r\nqat create -t unit -n my-utils       # 指定名称\r\nqat create -t e2e --target /login    # 指定被测目标\r\n```\r\n\r\n**选项：**\r\n\r\n| 选项 | 说明 |\r\n|------|------|\r\n| `-t, --type <types...>` | 测试类型（支持多选）：unit / component / e2e / api / visual / performance |\r\n| `-n, --name <name>` | 测试文件名称 |\r\n| `--target <paths...>` | 被测目标（支持多选，组件路径、页面路由等） |\r\n\r\n**源码分析驱动：**\r\n\r\n`qat create` 在生成测试前会自动分析目标源码：\r\n\r\n| 分析能力 | 说明 |\r\n|---------|------|\r\n| 导出项提取 | 识别函数/类/const/组件等导出，生成针对性测试 |\r\n| Props 分析 | 提取 `defineProps` 的对象/数组/类型形式，生成 props 测试 |\r\n| Emits 分析 | 提取 `defineEmits`，生成事件触发测试 |\r\n| Methods/Computed | Options API 的方法和计算属性 |\r\n| 必填/可选区分 | 自动区分 required/optional props，分别生成测试 |\r\n\r\n> 无源码分析数据时降级为通用模板，确保始终可用。\r\n\r\n**AI 增强模式：**\r\n\r\n启用 AI 后，会将源码分析结果 + 完整源码一并传给大模型，生成更精准的测试代码。\r\n\r\n---\r\n\r\n### `qat run`\r\n\r\n运行测试，支持多种筛选和执行方式。\r\n\r\n```bash\r\nqat run                    # 交互式选择运行\r\nqat run -t unit            # 只运行单元测试\r\nqat run -t unit component  # 运行多种类型\r\nqat run -f tests/unit/a.ts # 运行指定文件\r\nqat run -t e2e -b chromium # 指定浏览器\r\nqat run -p                 # 并行执行多种类型\r\nqat run -w                 # 监听模式（文件变更自动重跑）\r\n```\r\n\r\n**选项：**\r\n\r\n| 选项 | 说明 |\r\n|------|------|\r\n| `-t, --type <types...>` | 测试类型（支持多选） |\r\n| `-f, --file <file>` | 指定测试文件路径 |\r\n| `--tag <tag>` | 按标签筛选测试用例 |\r\n| `-w, --watch` | 监听模式 |\r\n| `-p, --parallel` | 并行执行测试 |\r\n| `-b, --browser <browser>` | 指定浏览器：chromium / firefox / webkit |\r\n\r\n**实时测试输出：**\r\n\r\n`qat run` 在串行模式下直接输出 vitest 的实时测试过程，你可以看到每个测试用例的执行状态、耗时和失败原因：\r\n\r\n```\r\n  ▶ 单元测试\r\n\r\n ✓ tests/unit/math.test.ts (2 tests) 5ms\r\n   ✓ should add 2ms\r\n   ✓ should subtract 1ms\r\n\r\n ✗ tests/unit/string.test.ts (1 test) 3ms\r\n   ✗ should trim 2ms\r\n     Expected \"hello \" to be \"hello\"\r\n\r\n ✓ 单元测试 通过\r\n\r\n  ─────────────────────────────────────────────────────\r\n  测试结果汇总\r\n  ─────────────────────────────────────────────────────\r\n  ...\r\n```\r\n\r\n**Vitest 运行策略：**\r\n\r\n| 策略 | 方式 | 说明 |\r\n|------|------|------|\r\n| **优先** | `vitest/node` Node API | 进程内运行，无 shell/glob 问题，结果直接获取 |\r\n| **回退** | 子进程 `execFile` | 当 Node API 不可用时回退，直接传文件路径（非 glob） |\r\n\r\n> Vitest 作为 QAT-CLI 的直接依赖内置，用户项目无需单独安装。\r\n\r\n**AI 失败分析：**\r\n\r\n测试失败时，如已配置 AI，自动调用大模型分析失败原因并给出修复建议：\r\n\r\n```\r\n  ✗ 单元测试 失败\r\n\r\n  🤖 AI 分析失败原因...\r\n\r\n    my-utils > should format date\r\n      错误: Expected \"2024-01-01\" but received undefined\r\n      → formatDate 需要传入有效 Date 对象，undefined 调用时返回了 undefined\r\n      → 在函数开头添加参数校验: if (!date) return ''\r\n```\r\n\r\n---\r\n\r\n### `qat mock`\r\n\r\nMock API 服务器管理，内置 Express 服务器。\r\n\r\n```bash\r\nqat mock start             # 启动 Mock 服务器（默认端口 3456）\r\nqat mock start -p 8080     # 指定端口\r\nqat mock stop              # 停止服务器\r\nqat mock status            # 查看运行状态\r\n```\r\n\r\n**特性：**\r\n- **自动生成路由** — `qat init` 扫描源码 API 调用，自动生成 Mock 路由\r\n- JSON / JS 路由配置文件\r\n- 请求参数模板替换（`{{params.id}}` / `{{query.key}}` / `{{body.field}}`）\r\n- 自定义延迟和响应头\r\n- 404 兜底路由\r\n\r\n---\r\n\r\n### `qat visual`\r\n\r\n视觉回归测试，基于 Playwright 截图 + pixelmatch 像素级比对。\r\n\r\n```bash\r\nqat visual test                      # 执行视觉回归测试\r\nqat visual test --threshold 0.05     # 自定义差异阈值\r\nqat visual approve                   # 批准当前截图为新基线\r\nqat visual clean                     # 清理所有基线快照\r\n```\r\n\r\n---\r\n\r\n### `qat report`\r\n\r\n生成 HTML 测试报告，聚合所有测试结果。\r\n\r\n```bash\r\nqat report                 # 生成报告\r\nqat report --open          # 自动打开浏览器\r\nqat report -o my-report    # 指定输出目录\r\n```\r\n\r\n---\r\n\r\n## 配置文件\r\n\r\n在项目根目录创建 `qat.config.js`（`qat init` 会自动生成）：\r\n\r\n```javascript\r\n// @ts-check\r\n/**\r\n * QAT 配置文件 - Quick Auto Testing\r\n * 修改后无需重启，下次运行 qat 命令时自动生效\r\n *\r\n * AI 模型配置请运行: qat change\r\n * AI 状态查看请运行: qat status\r\n */\r\nimport { defineConfig } from 'qat-cli';\r\n\r\nexport default defineConfig({\r\n  project: {\r\n    framework: 'vue',\r\n    vite: true,\r\n    srcDir: 'src',\r\n  },\r\n  vitest: {\r\n    enabled: true,\r\n    coverage: true,\r\n    globals: true,\r\n    environment: 'happy-dom',\r\n  },\r\n  playwright: {\r\n    enabled: true,\r\n    browsers: ['chromium'],\r\n    baseURL: 'http://localhost:5173',\r\n    screenshot: 'only-on-failure',\r\n  },\r\n  visual: {\r\n    enabled: true,\r\n    threshold: 0.1,\r\n    baselineDir: 'tests/visual/baseline',\r\n    diffDir: 'tests/visual/diff',\r\n  },\r\n  lighthouse: {\r\n    enabled: true,\r\n    urls: ['http://localhost:5173'],\r\n    runs: 3,\r\n    thresholds: { performance: 80, accessibility: 90 },\r\n  },\r\n  mock: {\r\n    enabled: true,\r\n    port: 3456,\r\n    routesDir: 'tests/mock/routes',\r\n  },\r\n  report: {\r\n    outputDir: 'qat-report',\r\n    open: false,\r\n  },\r\n});\r\n```\r\n\r\n### 配置项说明\r\n\r\n| 配置项 | 类型 | 默认值 | 说明 |\r\n|--------|------|--------|------|\r\n| `project.framework` | `FrameworkType` | `'vue'` | 项目框架 |\r\n| `project.uiLibrary` | `UILibrary` | `'none'` | UI 组件库 |\r\n| `project.srcDir` | `string` | `'src'` | 源码目录 |\r\n| `project.appDir` | `string` | — | Monorepo 子项目路径 |\r\n| `vitest.enabled` | `boolean` | `true` | 是否启用 Vitest |\r\n| `vitest.environment` | `string` | `'happy-dom'` | 测试环境 |\r\n| `playwright.enabled` | `boolean` | `true` | 是否启用 Playwright |\r\n| `playwright.baseURL` | `string` | `'http://localhost:5173'` | 开发服务器地址 |\r\n| `visual.threshold` | `number` | `0.1` | 差异阈值（0-1） |\r\n| `lighthouse.runs` | `number` | `3` | 采样次数 |\r\n| `mock.port` | `number` | `3456` | Mock 服务端口 |\r\n\r\n> AI 配置不再存储在 `qat.config.js` 中，而是全局存储在 `~/.qat/ai.json`，通过 `qat change` 修改，`qat status` 查看。\r\n\r\n---\r\n\r\n## AI 辅助\r\n\r\nQAT-CLI 内置 OpenAI 兼容协议的 AI Provider，**全局配置，所有项目共享**。\r\n\r\n### 全局 AI 配置\r\n\r\nAI 模型配置存储在 `~/.qat/ai.json`，与项目无关：\r\n\r\n```json\r\n{\r\n  \"provider\": \"openai\",\r\n  \"apiKey\": \"sk-xxx\",\r\n  \"baseUrl\": \"https://api.deepseek.com/v1\",\r\n  \"model\": \"deepseek-chat\"\r\n}\r\n```\r\n\r\n**管理命令：**\r\n\r\n| 命令 | 说明 |\r\n|------|------|\r\n| `qat status` | 查看 AI 模型信息 + 连通性测试 |\r\n| `qat change` | 更改 AI 模型配置（交互式） |\r\n\r\n### 支持的服务商\r\n\r\n| 服务商 | Base URL | 默认模型 | 需要 API Key |\r\n|--------|----------|---------|:------------:|\r\n| DeepSeek | `https://api.deepseek.com/v1` | `deepseek-chat` | ✅ |\r\n| OpenAI | `https://api.openai.com/v1` | `gpt-4o-mini` | ✅ |\r\n| Moonshot (月之暗面) | `https://api.moonshot.cn/v1` | `moonshot-v1-8k` | ✅ |\r\n| 智谱 (GLM-4) | `https://open.bigmodel.cn/api/paas/v4` | `glm-4-flash` | ✅ |\r\n| 通义千问 | `https://dashscope.aliyuncs.com/compatible-mode/v1` | `qwen-turbo` | ✅ |\r\n| Ollama (本地) | `http://localhost:11434/v1` | `qwen2.5-coder:7b` | ❌ |\r\n\r\n> 所有服务商统一使用 OpenAI 兼容协议，只需填写 apiKey / baseUrl / model 三个字段即可。\r\n\r\n### AI 能力\r\n\r\n| 能力 | 触发场景 | 说明 |\r\n|------|---------|------|\r\n| **测试生成** | `qat init` / `qat create` | AI 根据源码分析结果生成精准测试代码 |\r\n| **测试审计** | `qat init` / `qat create` | 独立审计员 AI 审查测试是否贴切准确，不通过则重新生成（最多3次） |\r\n| **失败分析** | `qat run` | 测试失败时自动分析原因，给出修复建议 |\r\n| **修复建议** | `qat run` | 针对具体错误给出问题定位 + 修复方案 + 示例代码 |\r\n\r\n### 双模型审计机制\r\n\r\nQAT-CLI 在生成测试用例时采用**生成者 + 审计员**双模型架构，确保测试质量：\r\n\r\n```\r\n┌─────────────┐     测试代码      ┌─────────────┐\r\n│  生成者 AI   │ ───────────────→ │  审计员 AI   │\r\n│  (Generator) │                  │  (Reviewer)  │\r\n└─────────────┘                  └──────┬──────┘\r\n       ↑                                │\r\n       │         审计反馈                │\r\n       └────── 未通过则重新生成 ←────────┘\r\n                                        │\r\n                                   通过 → 写入文件\r\n```\r\n\r\n**审计标准：**\r\n- 测试类型是否与源码匹配（如 `.vue` → 组件测试，`utils` → 单元测试）\r\n- 覆盖完整性（是否覆盖核心导出/Props/Emits）\r\n- 断言有效性（非空断言或永真断言）\r\n- 代码可运行性（无语法错误、导入正确）\r\n\r\n**防死循环：** 最多重试 3 次，3 次均未通过的测试仍会写入文件，但在最终审计报告中标注为\"未通过\"。\r\n\r\n**上下文隔离：** 生成者和审计员使用独立的 Provider 实例，上下文互不污染。\r\n\r\n### 配置方式\r\n\r\n**方式一：`qat init` 自动引导（推荐）**\r\n\r\n首次运行 `qat init` 时自动引导配置 AI，后续运行直接显示当前模型：\r\n\r\n```\r\n# 首次运行\r\n  AI 模型配置 (首次使用需配置，之后可通过 qat change 修改)\r\n\r\n? API Key (Ollama 本地可留空): sk-xxx\r\n? API Base URL: https://api.deepseek.com/v1\r\n? 模型名称: deepseek-chat\r\n\r\n# 后续运行\r\n  ✓ 当前 AI 模型: deepseek-chat @ https://api.deepseek.com/v1 (sk-****1234)\r\n✔ AI 连通正常 deepseek-chat (234ms)\r\n```\r\n\r\n**方式二：`qat change` 随时切换**\r\n\r\n```bash\r\nqat change    # 交互式修改 AI 配置\r\n```\r\n\r\n**方式三：Ollama 本地零成本使用**\r\n\r\n```bash\r\n# 先启动 Ollama 服务\r\nollama serve\r\n\r\n# 运行 qat change 配置\r\nqat change\r\n# Base URL: http://localhost:11434/v1\r\n# 模型: qwen2.5-coder:7b\r\n# API Key: (留空)\r\n```\r\n\r\n### 源码分析 + AI 联合增强\r\n\r\n`qat init` 和 `qat create` 在 AI 模式下会将**源码分析结果**（导出项/Props/Emits/Methods/Computed）传给大模型，让 AI 生成更精准的测试代码：\r\n\r\n```\r\n源码分析结果:\r\n导出项:\r\n  - async fetchUsers(page, size) [function]\r\n  - UserList [component]\r\nProps:\r\n  - users: Array (必填)\r\n  - loading: Boolean (可选)\r\nEmits:\r\n  - select(user)\r\n\r\n→ AI 根据这些结构化信息生成针对性测试\r\n```\r\n\r\n---\r\n\r\n## 源码分析器\r\n\r\nQAT-CLI 内置源码分析器，在生成测试时自动扫描目标文件，提取结构化信息。\r\n\r\n### 分析能力\r\n\r\n| 分析类型 | 支持的写法 |\r\n|---------|-----------|\r\n| **导出项** | `export function`、`export const/let/var`、`export class`、`export default` |\r\n| **Props** | `defineProps({})` 对象形式、`defineProps([])` 数组形式、`defineProps<T>()` 类型形式 |\r\n| **Emits** | `defineEmits([])` 数组形式、`defineEmits<T>()` 类型形式 |\r\n| **Methods** | Options API `methods: {}` |\r\n| **Computed** | Options API `computed: {}` |\r\n| **API 调用** | `fetch()`、`axios.get/post()`、`useFetch()`、`$fetch()`、自定义 HTTP 实例 |\r\n\r\n### 编程式使用\r\n\r\n```typescript\r\nimport { analyzeFile, scanAPICalls, generateMockRoutesFromAPICalls } from 'qat-cli';\r\n\r\n// 分析单个文件\r\nconst analysis = analyzeFile('src/components/UserList.vue');\r\nconsole.log(analysis.vueAnalysis?.props);   // [{ name: 'users', type: 'Array', required: true }]\r\nconsole.log(analysis.vueAnalysis?.emits);   // [{ name: 'select', params: ['user'] }]\r\nconsole.log(analysis.apiCalls);             // [{ method: 'GET', url: '/api/users' }]\r\n\r\n// 扫描整个项目的 API 调用\r\nconst apiCalls = scanAPICalls('src');\r\n\r\n// 自动生成 Mock 路由\r\nconst mockRoutes = generateMockRoutesFromAPICalls(apiCalls);\r\n```\r\n\r\n---\r\n\r\n## 框架扩展\r\n\r\nQAT-CLI 采用**框架注册表**模式，内置了 Vue / Vben / Nuxt 三种框架的检测规则。添加新框架只需调用 `registerFramework()` 注册即可。\r\n\r\n### 注册新框架\r\n\r\n```typescript\r\nimport { registerFramework } from 'qat-cli';\r\n\r\nregisterFramework({\r\n  type: 'quasar',\r\n  displayName: 'Quasar Framework',\r\n  detect(ctx) {\r\n    if (ctx.dependencies['quasar']) return 1.0;\r\n    return 0;\r\n  },\r\n  resolve(ctx) {\r\n    return {\r\n      uiLibrary: 'none',\r\n      monorepo: 'none',\r\n      appDirs: [],\r\n      srcDir: 'src',\r\n      componentDirs: ['src/components'],\r\n      pageDirs: ['src/pages'],\r\n      componentTestSetup: {\r\n        extraImports: [`import { Quasar } from 'quasar';`],\r\n        globalPlugins: ['Quasar'],\r\n        mountOptions: `{ global: { plugins: [Quasar] } }`,\r\n      },\r\n    };\r\n  },\r\n});\r\n```\r\n\r\n---\r\n\r\n## 外部扩展\r\n\r\nQAT-CLI 的编程式 API 可以通过**外部扩展文件**自动加载，无需修改源码。\r\n\r\n### 单文件模式\r\n\r\n在项目根目录创建 `qat.config.ext.ts`：\r\n\r\n```typescript\r\nimport { registerFramework, registerTemplate, registerAIProvider } from 'qat-cli';\r\n\r\nregisterFramework({ /* ... */ });\r\nregisterTemplate('custom-type', `...`);\r\nregisterAIProvider('my-provider', MyProvider);\r\n```\r\n\r\n### 多文件模式\r\n\r\n```\r\nproject/\r\n├── qat.ext/\r\n│   ├── index.ts           # 统一入口\r\n│   ├── framework.ts\r\n│   └── templates.ts\r\n```\r\n\r\n### 文件扫描优先级\r\n\r\n| 优先级 | 文件 | 说明 |\r\n|:------:|------|------|\r\n| 1 | `qat.config.ext.ts` | 单文件（最常用） |\r\n| 2 | `qat.config.ext.js` | JS 版本 |\r\n| 3 | `qat.ext/index.ts` | 目录入口 |\r\n| 4 | `qat.ext/*.ts` | 目录多文件 |\r\n\r\n---\r\n\r\n## API\r\n\r\nQAT-CLI 同时提供编程式 API，可以在 Node.js 中直接调用：\r\n\r\n```typescript\r\nimport {\r\n  // 配置\r\n  loadConfig, defineConfig, validateConfig,\r\n  // 检测\r\n  detectProject, discoverVueComponents, discoverUtilityFiles,\r\n  // 源码分析\r\n  analyzeFile, analyzeFiles, scanAPICalls, generateMockRoutesFromAPICalls,\r\n  // 框架注册表\r\n  registerFramework, getRegisteredFrameworks, detectFramework,\r\n  // 运行器\r\n  runVitest, runPlaywright, runLighthouse,\r\n  // AI\r\n  registerAIProvider, getAIProvider, isAIAvailable, testAIConnection,\r\n  // 全局 AI 配置\r\n  loadGlobalAIConfig, saveGlobalAIConfig, toAIConfig,\r\n  // 报告\r\n  generateHTMLReport, aggregateResults,\r\n  // 视觉回归\r\n  compareImages, createBaseline,\r\n  // Mock 服务\r\n  startMockServer, stopMockServer,\r\n} from 'qat-cli';\r\n\r\n// 使用全局 AI 配置\r\nconst globalAI = loadGlobalAIConfig();\r\nif (globalAI) {\r\n  const aiConfig = toAIConfig(globalAI);\r\n  const result = await testAIConnection(aiConfig);\r\n  console.log(result.ok);      // true/false\r\n  console.log(result.message); // \"连通正常 (234ms)\" 或错误信息\r\n}\r\n\r\n// 分析源码\r\nconst analysis = analyzeFile('src/utils/format.ts');\r\n\r\n// 扫描项目 API 调用并生成 Mock\r\nconst apiCalls = scanAPICalls('src');\r\nconst mockRoutes = generateMockRoutesFromAPICalls(apiCalls);\r\n\r\n// 运行测试\r\nconst testResult = await runVitest({ type: 'unit', coverage: true });\r\n```\r\n\r\n---\r\n\r\n## 架构\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────┐\r\n│                     用户项目 (my-vue-app)                     │\r\n│                                                              │\r\n│  ┌──────────┐  ┌──────────────┐  ┌───────────────┐          │\r\n│  │  vitest   │  │ @playwright/ │  │  lighthouse    │          │\r\n│  │(QAT内置) │  │ test (QAT内置)│  │  (QAT内置)     │          │\r\n│  └────┬─────┘  └──────┬───────┘  └──────┬────────┘          │\r\n│       │ Node API      │ npx 调用         │ npx 调用           │\r\n├───────┼────────────────┼─────────────────┼───────────────────┤\r\n│       ▼                ▼                 ▼                    │\r\n│  ┌────────────────────────────────────────────────────┐      │\r\n│  │           QAT-CLI 工具 (全局安装)                     │      │\r\n│  │                                                    │      │\r\n│  │  全局 AI 配置:                                       │      │\r\n│  │  ~/.qat/ai.json · qat status · qat change          │      │\r\n│  │                                                    │      │\r\n│  │  源码分析器 + 智能分类:                                │      │\r\n│  │  .vue → 组件测试 · utils → 单元测试 · api → API测试  │      │\r\n│  │                                                    │      │\r\n│  │  AI 增强:                                            │      │\r\n│  │  OpenAI 兼容协议 · DeepSeek · Ollama · 连通性测试     │      │\r\n│  │                                                    │      │\r\n│  │  Mock 自动化:                                        │      │\r\n│  │  源码 API 扫描 → 自动生成 Mock 路由                    │      │\r\n│  │                                                    │      │\r\n│  │  框架注册表:                                         │      │\r\n│  │  Vue ─ Vben Admin ─ Nuxt ─ [自定义框架]              │      │\r\n│  └────────────────────────────────────────────────────┘      │\r\n└─────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n### 项目结构\r\n\r\n```\r\nqat/\r\n├── bin/\r\n│   └── qat.js                    # CLI 入口\r\n├── src/\r\n│   ├── cli.ts                    # 命令注册 + Logo\r\n│   ├── index.ts                  # API 导出\r\n│   ├── commands/                 # 命令实现\r\n│   │   ├── init.ts               #   项目初始化（AI 配置 + 智能扫描 + 自动生成测试用例）\r\n│   │   ├── create.ts             #   创建用例（源码分析 + AI 辅助）\r\n│   │   ├── run.ts                #   运行测试（含 AI 失败分析）\r\n│   │   ├── status.ts             #   查看 AI 模型状态\r\n│   │   ├── change.ts             #   更改 AI 模型配置\r\n│   │   ├── setup.ts              #   依赖安装\r\n│   │   ├── mock.ts               #   Mock 服务\r\n│   │   ├── visual.ts             #   视觉回归\r\n│   │   └── report.ts             #   生成报告\r\n│   ├── runners/                  # 测试运行器\r\n│   │   ├── vitest-runner.ts\r\n│   │   ├── playwright-runner.ts\r\n│   │   └── lighthouse-runner.ts\r\n│   ├── services/                 # 核心服务\r\n│   │   ├── config.ts             #   配置管理\r\n│   │   ├── global-config.ts      #   全局 AI 配置 (~/.qat/ai.json)\r\n│   │   ├── test-reviewer.ts      #   生成者+审计员双模型审核流程\r\n│   │   ├── detector.ts           #   项目检测\r\n│   │   ├── source-analyzer.ts    #   源码分析器（导出/Props/Emits/API调用）\r\n│   │   ├── framework-registry.ts #   框架注册表\r\n│   │   ├── template.ts           #   模板引擎\r\n│   │   ├── reporter.ts           #   报告生成\r\n│   │   ├── mock-server.ts        #   Mock 服务器\r\n│   │   └── visual.ts             #   视觉比对\r\n│   ├── ai/                       # AI 集成\r\n│   │   ├── provider.ts           #   Provider 管理 + 连通性测试\r\n│   │   ├── openai-provider.ts    #   OpenAI 兼容 Provider\r\n│   │   └── noop-provider.ts      #   默认空实现\r\n│   ├── templates/                # 测试模板 (Handlebars)\r\n│   │   ├── unit-test.hbs\r\n│   │   ├── component-test.hbs\r\n│   │   ├── e2e-test.hbs\r\n│   │   ├── api-test.hbs\r\n│   │   ├── visual-test.hbs\r\n│   │   └── performance-test.hbs\r\n│   └── types/                    # 类型定义\r\n│       ├── index.ts\r\n│       └── ai.ts\r\n├── tests/                        # 测试文件\r\n├── package.json\r\n├── tsconfig.json\r\n├── tsup.config.ts\r\n└── vitest.config.ts\r\n```\r\n\r\n---\r\n\r\n## 开发\r\n\r\n### 环境准备\r\n\r\n```bash\r\ngit clone https://github.com/your-username/qat-cli.git\r\ncd qat-cli\r\n\r\nnpm install\r\nnpm run dev      # 开发模式\r\nnpm run build    # 构建\r\nnpm test         # 运行测试\r\nnpm run lint     # 类型检查\r\n```\r\n\r\n### 技术栈\r\n\r\n| 技术 | 用途 |\r\n|------|------|\r\n| TypeScript | 主要开发语言 |\r\n| Commander.js | CLI 框架 |\r\n| Inquirer.js | 交互式命令行（多选支持） |\r\n| Chalk | 终端彩色输出 |\r\n| Handlebars | 测试模板引擎 |\r\n| Express | Mock API 服务器 |\r\n| pixelmatch + pngjs | 视觉回归比对 |\r\n| Vitest + @vue/test-utils + happy-dom (内置) | 单元/组件/API 测试全家桶，开箱即用 |\r\n| @vitest/coverage-v8 (内置) | 测试覆盖率 |\r\n| @vitejs/plugin-vue (内置) | Vue SFC 编译支持 |\r\n| tsup | 构建打包 |\r\n\r\n### 本地调试\r\n\r\n```bash\r\nnpm run build\r\nnpm link\r\n\r\ncd my-vue-project\r\nqat init\r\nqat run\r\n\r\n# 取消链接\r\nnpm unlink -g qat-cli\r\n```\r\n\r\n---\r\n\r\n## 常见问题\r\n\r\n<details>\r\n<summary><strong>Q: QAT-CLI 和直接用 Vitest / Playwright 有什么区别？</strong></summary>\r\n\r\nQAT-CLI 不是一个测试框架，而是测试框架的**编排层**。它解决的核心问题是：\r\n1. **初始化成本高** — 自动检测项目、生成配置、自动生成测试用例\r\n2. **工具割裂** — Vitest/Playwright/Lighthouse 统一调度\r\n3. **测试难写** — 源码分析器 + AI 辅助生成个性化测试，而不是固定模板\r\n4. **报告分散** — 聚合为统一的 HTML 报告\r\n5. **失败难定位** — AI 自动分析失败原因并给出修复建议\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: 如何配置 AI？</strong></summary>\r\n\r\nAI 配置是全局的，存储在 `~/.qat/ai.json`，所有项目共享：\r\n\r\n- **首次配置** — 运行 `qat init` 时自动引导\r\n- **修改配置** — 运行 `qat change`\r\n- **查看状态** — 运行 `qat status`\r\n\r\n只需填写三个字段：apiKey、baseUrl、model。支持所有 OpenAI 兼容 API（DeepSeek / OpenAI / Ollama 等）。\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: AI 配置为什么不放在 qat.config.js 里？</strong></summary>\r\n\r\nAI 模型配置通常是跨项目共享的 — 你不会每个项目用不同的 AI。将 AI 配置放在全局 `~/.qat/ai.json` 中：\r\n- 一个配置所有项目使用\r\n- 切换模型只需 `qat change`，不用改每个项目的配置文件\r\n- API Key 不会意外提交到 Git\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: qat init 会自动生成测试用例吗？</strong></strong></summary>\r\n\r\n会。`qat init` 会自动扫描源码并根据文件类型智能生成测试：\r\n- `.vue` 文件 → 组件测试（component）\r\n- `composables/`、`hooks/`、`utils/`、`helpers/`、`services/` → 单元测试（unit）\r\n- `api/` → API 测试\r\n\r\n如果已配置 AI，测试用例将由 **生成者 + 审计员** 双角色协作生成（使用同一个模型，通过不同系统提示词扮演不同角色）：生成者负责写测试代码，审计员负责审查是否贴切准确，不通过则带具体问题反馈重新生成（最多 3 次），最终审计结果会在报告中显示。\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: Mock 路由还需要手动写吗？</strong></summary>\r\n\r\n不需要。`qat init` 会自动扫描源码中的 `fetch`/`axios`/`useFetch` 等 API 调用，自动生成对应的 Mock 路由文件（`auto-generated.json`）。如需自定义，直接编辑该文件即可。\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: 源码分析器支持哪些语法？</strong></summary>\r\n\r\n- **Props**: `defineProps({})` 对象形式、`defineProps([])` 数组形式、`defineProps<T>()` 类型形式\r\n- **Emits**: `defineEmits([])` 数组形式、`defineEmits<T>()` 类型形式\r\n- **导出**: `export function/const/class/default` 全部支持\r\n- **API 调用**: `fetch()`、`axios`、`useFetch()`、`$fetch()`、自定义 HTTP 实例\r\n- 支持 `<script setup>` 和 Options API\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: 依赖是装在全局还是项目里？</strong></summary>\r\n\r\n**所有测试框架依赖全部内置在 QAT-CLI 全局安装中**，用户项目零依赖即可运行所有测试类型：\r\n\r\n| 内置依赖 | 用途 |\r\n|---------|------|\r\n| `vitest` + `happy-dom` + `@vue/test-utils` + `@vitest/coverage-v8` + `@vitejs/plugin-vue` | 单元/组件/API 测试 |\r\n| `@playwright/test` | E2E/视觉回归测试 |\r\n| `lighthouse` | 性能测试 |\r\n\r\n唯一需要额外安装的是 **Playwright 浏览器二进制**（运行 `npx playwright install`），因为浏览器文件太大不适合打包进 npm。\r\n\r\n如果用户项目已安装了自己的 `vitest` 或有 `vitest.config.*` / `vite.config.*`，QAT-CLI 会优先使用用户项目的配置，确保与项目自身行为一致。\r\n</details>\r\n\r\n<details>\r\n<summary><strong>Q: 支持 CI/CD 环境吗？</strong></summary>\r\n\r\n支持。Playwright CI 下自动启用重试和 worker 限制，Lighthouse 使用 headless 模式，测试失败时 `process.exitCode = 1`。\r\n\r\n```bash\r\nqat run -p   # 并行运行所有测试\r\nqat report   # 生成报告\r\n```\r\n</details>\r\n\r\n---\r\n\r\n## 贡献\r\n\r\n欢迎贡献代码！\r\n\r\n1. Fork 本仓库\r\n2. 创建特性分支：`git checkout -b feature/my-feature`\r\n3. 提交更改：`git commit -m 'feat: add my feature'`\r\n4. 推送分支：`git push origin feature/my-feature`\r\n5. 提交 Pull Request\r\n\r\n### 提交规范\r\n\r\n使用 [Conventional Commits](https://www.conventionalcommits.org/) 格式：`feat:` / `fix:` / `docs:` / `refactor:` / `test:` / `chore:`\r\n\r\n---\r\n\r\n## License\r\n\r\n[MIT](./LICENSE) © 2024-present\r\n","readmeFilename":"README.md"}