{"_id":"@anyalphatop/cdpx","_rev":"9-9b4aaef0fc6ebdac0bf0fde0a6229d30","name":"@anyalphatop/cdpx","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@anyalphatop/cdpx","version":"1.0.0","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.0","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"d4aef865f6170882b7a88c4e86289a73a4010a27","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.0.tgz","fileCount":7,"integrity":"sha512-QcxUptW+2zW0e1+qMQWn70CC3hFdjU9GhjVsbA9pUR06yvujDAPeSkMggrIqMYK9bQdHNnFynmmPqfWYBohv3g==","signatures":[{"sig":"MEUCIQCasj0uiIMNo+Vho5RVF+b5voijSWyM+iBf6uVAkd4nXQIgRQkjWJXUJKF68ZYhZrQHQdZDNMA5N60BIRNMBdLyA78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2863},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7634dd2bd21846b3b8d01043d82e0399c4ebb90c","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.0_1774750297488_0.5057598913994905","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@anyalphatop/cdpx","version":"1.0.1","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.1","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"a3f848b3d9e77524a405dea92791ea73bf82d1ca","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.1.tgz","fileCount":7,"integrity":"sha512-UzncHrvgpnW6mHXN1HcVO24NCidFFw1+rhmsuah1BV47L9fORdKm2s5qccpK/9OXjAEH4D+JfJy3Nb/jQg2idQ==","signatures":[{"sig":"MEQCIHaUFnS/t7UNoE+SviAKtB5jq+gjCELQmlBYgR1wCS8WAiBhm12d75KAub5NBfsEw+V0YTqZtQV3u4yMwG6aVUpsTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2863},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"53625c1c73f67c319ba7fa40275b719f3dd097a2","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.1_1774750437425_0.9988736317937537","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@anyalphatop/cdpx","version":"1.0.2","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.2","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"34e5604c7fe1913f5347fd859dad46ce68752ce1","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.2.tgz","fileCount":27,"integrity":"sha512-yjRBRmb1Pr4cgiTiRBKzf0emROUGVSMPk4OgIrVCBtFf78UwQqeVHGoPTa0wygPn0nQpjugSM2iAyl34UjxvTg==","signatures":[{"sig":"MEYCIQCd00VcSC4f21tkyWG1zCRFnLDfRoKKT4epBPwwVJta1QIhANz0hZOTwC+o282eGSpVTUOz/EJUiGLHCxA9sCVridSK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7759},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"a7c47cdde01ce1227ee8a28992d8adf3e3d05016","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.2_1774752402596_0.14889921891012836","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@anyalphatop/cdpx","version":"1.0.3","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.3","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"24410eab32632c6637ed4598717d9f4408e03f2b","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.3.tgz","fileCount":55,"integrity":"sha512-OnN8jfFKPKq3bQxihDmMUFybOm0ujkjufaAVilpIHan/8tNW2QLl3c7Mlw48hFtbtgsJjmFzQGqkPXuBIboOLA==","signatures":[{"sig":"MEQCIE6YKUhVv7y3/ZmAevdtdW9I/BANe+otpWM9RJeiqJgrAiAlII/lOcPHVplk2XDfKfcl661kNR1slvNPGBeouitP7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30652},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"01e3327c017802ee487a6669e785b782d32093ca","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.3_1774777791896_0.19950358968454052","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@anyalphatop/cdpx","version":"1.0.4","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.4","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"f7b3216fabad85928c43ef566fb86a72e1754b9d","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.4.tgz","fileCount":59,"integrity":"sha512-QTaJvs0ZWirPY6hDVvCJnG3wHA21RU95QTPmDoflXPpVBeSwTZHLSeX7RtdSGygS8jA+HeBx/7Mc5pbqixfWBQ==","signatures":[{"sig":"MEUCIQDLj7fcKA6pX/m2vMH5sjZnbyJhUcRmlhYkvBWPjqcSQQIgaSqcFzvAOlHP/nRHzwp5yyFC7otiId0dw4fj7QB5fkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42174},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"658fc7f9f46def23bb6d75ddd799afe5c2f4081d","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","commander":"^14.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.4_1774780367689_0.5278078980107295","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@anyalphatop/cdpx","version":"1.0.5","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.5","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"3d559c72abfc2682939800be495e3c1634270490","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.5.tgz","fileCount":88,"integrity":"sha512-CNhPAeUPDRVHzXvVOFBjCkyvmbwtdRO5buha1BxFE1J1iydIVNfrFC6SCYeayHRbqZIzNTJ9tRGUec3ET8Z0UQ==","signatures":[{"sig":"MEYCIQD2/2oOjxfHEoGWrjG09LeYRR7AzhON1JE8PcgUOV4GgQIhANu9NpBV8Kg64OzsVBV2+mYl7WT330TtLY/BVsm2sXLc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67374},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"cb22e617da8b04f556ecd01e8c07f3302a98228b","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","jsdom":"^29.0.1","commander":"^14.0.3","@mozilla/readability":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@types/jsdom":"^28.0.1","@types/mozilla__readability":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.5_1774839332715_0.9926587381400194","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@anyalphatop/cdpx","version":"1.0.6","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.6","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"5ca3d4f4ea5ae693be81f69c35300938b77bb36d","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.6.tgz","fileCount":92,"integrity":"sha512-V8/xzulLqFhpA6uN3ZaXJwJ8zdBegRMk8h4BwA1km/1L2COC5OPaSkx+UV+OyOaSuxxG7+shnHlARbcmStA0uw==","signatures":[{"sig":"MEYCIQCJ0BWwrjBsGWe7XVhFzI1nI7ibte5Pcp36qwrry71tRAIhAKPHw6ITwZAcboMcD5n0g2nKlRq6D+f6uRELZuMd3ZRE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78911},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"ebfa07417a55aba5f5c4271853da71859de54943","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","jsdom":"^29.0.1","commander":"^14.0.3","@mozilla/readability":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@types/jsdom":"^28.0.1","@types/mozilla__readability":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.6_1774868809596_0.3301875536427965","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@anyalphatop/cdpx","version":"1.0.7","keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","_id":"@anyalphatop/cdpx@1.0.7","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"homepage":"https://github.com/anyalphatop/cdpx#readme","bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"bin":{"cdpx":"dist/index.js"},"dist":{"shasum":"58a3b9ce6cf739fc307c1ecd8458628b57860c14","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.7.tgz","fileCount":112,"integrity":"sha512-j1e6Z3Kqv5+qU+wv4kkoyALGw/7y8cUdfCaXjYgsCWbyCPigC7Z1aoZjYcoq+v7GcH1frYGvf9Zn75qsmrKlfA==","signatures":[{"sig":"MEQCIBfK7Xm3Vrt9oIthkg9U+tIj9tYs0o3ytUUqXwjakYghAiB4Zf6MdpP0h3J5zHllcKVYmUcATXMYLdoGTQay21NKVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120320},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/main.d.ts","import":"./dist/main.js"}},"gitHead":"68f1caa1dbc6d9ac8cf516f7e66faa4ebf57ba24","scripts":{"dev":"ts-node --esm src/index.ts","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"repository":{"url":"git+https://github.com/anyalphatop/cdpx.git","type":"git"},"_npmVersion":"11.9.0","description":"Make any website programmable via Chrome CDP.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","jsdom":"^29.0.1","tldts":"^7.0.27","commander":"^14.0.3","@mozilla/readability":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@types/jsdom":"^28.0.1","@types/mozilla__readability":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/cdpx_1.0.7_1775038999721_0.547660145784933","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@anyalphatop/cdpx","version":"1.0.8","description":"Make any website programmable via Chrome CDP.","main":"dist/main.js","types":"dist/main.d.ts","type":"module","exports":{".":{"import":"./dist/main.js","types":"./dist/main.d.ts"}},"bin":{"cdpx":"dist/index.js"},"scripts":{"build":"tsc","dev":"ts-node --esm src/index.ts","start":"node dist/index.js","prepublishOnly":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/anyalphatop/cdpx.git"},"keywords":["cdp","chrome","automation","cli","devtools"],"author":{"name":"leaderman"},"license":"ISC","engines":{"node":">=18"},"publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"homepage":"https://github.com/anyalphatop/cdpx#readme","dependencies":{"@mozilla/readability":"^0.6.0","commander":"^14.0.3","jsdom":"^29.0.1","playwright-core":"^1.59.1","tldts":"^7.0.27","ws":"^8.20.0"},"devDependencies":{"@types/jsdom":"^28.0.1","@types/mozilla__readability":"^0.4.2","@types/node":"^25.5.0","@types/ws":"^8.18.1","ts-node":"^10.9.2","typescript":"^6.0.2","vitest":"^4.1.4"},"gitHead":"a9c0956d1ab1f828f0dc362eadaff1cd1b126da4","_id":"@anyalphatop/cdpx@1.0.8","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-eaY2h+Kbbli1Gj+J/rEozhk1V+YPdPh+NaN7TPz/RV5Is/vtdKdO1Nz3tC8JfnaVAMxPmaYRc/6BH5NppIfT0Q==","shasum":"96065b27df1fda7d8d5d4d4b9473d597d812d9ab","tarball":"https://registry.npmjs.org/@anyalphatop/cdpx/-/cdpx-1.0.8.tgz","fileCount":136,"unpackedSize":146244,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDUZDlD6KkxSNLME2Nbn17K7SkxG+PKaAAyMSvMCEaFMAIgSDm2L+5faUAfWy9cq4qfScYzCdGZzA/XeW+eWWpNoiU="}]},"_npmUser":{"name":"ryanmiao","email":"miao.work2010@gmail.com"},"directories":{},"maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cdpx_1.0.8_1776047613224_0.9971576957933166"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-29T02:11:37.349Z","modified":"2026-04-13T02:33:33.592Z","1.0.0":"2026-03-29T02:11:37.621Z","1.0.1":"2026-03-29T02:13:57.569Z","1.0.2":"2026-03-29T02:46:42.759Z","1.0.3":"2026-03-29T09:49:52.040Z","1.0.4":"2026-03-29T10:32:47.856Z","1.0.5":"2026-03-30T02:55:32.862Z","1.0.6":"2026-03-30T11:06:49.749Z","1.0.7":"2026-04-01T10:23:19.857Z","1.0.8":"2026-04-13T02:33:33.456Z"},"bugs":{"url":"https://github.com/anyalphatop/cdpx/issues"},"author":{"name":"leaderman"},"license":"ISC","homepage":"https://github.com/anyalphatop/cdpx#readme","keywords":["cdp","chrome","automation","cli","devtools"],"repository":{"type":"git","url":"git+https://github.com/anyalphatop/cdpx.git"},"description":"Make any website programmable via Chrome CDP.","maintainers":[{"name":"ryanmiao","email":"miao.work2010@gmail.com"}],"readme":"# cdpx\n\n[English](README.md) | [中文](README.zh-CN.md)\n\n通过 Chrome CDP 让任何网站可编程。\n\n## 安装\n\n```bash\nnpm install -g @anyalphatop/cdpx\n```\n\n## 命令\n\n### `ping`\n\n测试与 Chrome CDP 服务器的连接。\n\n```bash\ncdpx ping\n```\n\n**示例：**\n\n```bash\ncdpx ping\nCDPX_HOST=127.0.0.1 CDPX_PORT=9222 cdpx ping\n```\n\n**返回结果：**\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `browserType` | `string` | 浏览器类型 |\n| `version` | `string` | 浏览器版本 |\n\n### `tab`\n\n标签页管理。\n\n#### `tab list`\n\n列出已连接 Chrome 浏览器中所有打开的标签页。\n\n```bash\ncdpx tab list\n```\n\n**返回结果：**\n\n返回一个标签页对象数组。\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `title` | `string` | 标签页标题 |\n| `url` | `string` | 标签页 URL |\n\n#### `tab count`\n\n统计已连接 Chrome 浏览器中打开的标签页数量。\n\n```bash\ncdpx tab count\n```\n\n**返回结果：**\n\n返回一个整数。\n\n```\n5\n```\n\n### `probe`\n\n测量指定 URL 到达 network idle 状态所需的时间。\n\n```bash\ncdpx probe <url>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `url` | 要测量的目标 URL |\n\n**选项：**\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--idle-window <ms>` | 判定 network idle 的静默窗口（毫秒） | `CDPX_NETWORK_IDLE_WINDOW` 或 `500` |\n\n**示例：**\n\n```bash\ncdpx probe https://weibo.com\ncdpx probe https://weibo.com --idle-window 1000\n```\n\n**返回结果：**\n\n返回从导航开始到 network idle 所经过的毫秒数。\n\n```\n1823\n```\n\n### `domains`\n\n列出加载页面时访问的所有注册域名。\n\n```bash\ncdpx domains <url>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `url` | 要加载的目标 URL |\n\n**选项：**\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--idle-window <ms>` | 判定 network idle 的静默窗口（毫秒） | `CDPX_NETWORK_IDLE_WINDOW` 或 `500` |\n\n**示例：**\n\n```bash\ncdpx domains https://weibo.com\n```\n\n**返回结果：**\n\n返回去重后按字母排序的注册域名 JSON 数组。子域名会折叠到注册域名（如 `static.example.com` → `example.com`）。\n\n```json\n[\"sinaimg.cn\", \"weibo.com\", \"weibocdn.com\"]\n```\n\n### `read`\n\n使用 Readability 获取指定页面的文章内容。\n\n```bash\ncdpx read <url>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `url` | 要读取的目标 URL |\n\n**选项：**\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--idle-window <ms>` | 判定 network idle 的静默窗口（毫秒） | `CDPX_NETWORK_IDLE_WINDOW` 或 `500` |\n| `--settle <ms>` | network idle 之后的额外等待时间（毫秒） | `0` |\n\n**示例：**\n\n```bash\ncdpx read https://example.com/article\ncdpx read https://example.com/article --settle 500\n```\n\n**返回结果：**\n\n返回一个 JSON 对象，包含以下字段：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `title` | `string \\| null` | 文章标题 |\n| `content` | `string \\| null` | 处理后的文章内容（HTML 格式） |\n| `textContent` | `string \\| null` | 去除所有 HTML 标签后的纯文本内容 |\n| `length` | `number \\| null` | 文章字符数 |\n| `excerpt` | `string \\| null` | 文章描述或摘要 |\n| `byline` | `string \\| null` | 作者信息 |\n| `dir` | `string \\| null` | 内容方向 |\n| `siteName` | `string \\| null` | 网站名称 |\n| `lang` | `string \\| null` | 内容语言 |\n| `publishedTime` | `string \\| null` | 发布时间 |\n\n### `x`\n\nx.com 相关命令。\n\n#### `x read`\n\n读取一条推文及其评论（可选）。\n\n```bash\ncdpx x read <url>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `url` | 推文 URL |\n\n**选项：**\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--comments` | 获取评论 | `false` |\n| `--limit <n>` | 最多获取评论数量 | `20` |\n| `--save-images` | 下载图片到本地 | `false` |\n| `--save-dir <dir>` | 图片保存目录 | `~/Downloads` |\n\n**示例：**\n\n```bash\ncdpx x read https://x.com/user/status/123456789\ncdpx x read https://x.com/user/status/123456789 --comments\ncdpx x read https://x.com/user/status/123456789 --comments --limit 50\ncdpx x read https://x.com/user/status/123456789 --save-images\ncdpx x read https://x.com/user/status/123456789 --save-images --save-dir /tmp/images\n```\n\n**返回结果：**\n\n返回一个 JSON 对象，包含以下字段：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `post` | `object` | 主推文 |\n| `post.type` | `'post' \\| 'article'` | 推文类型 |\n| `post.title` | `string \\| null` | 标题（仅 article 类型有值） |\n| `post.text` | `string \\| null` | 推文文本。article 类型中，图片 URL 会按原始位置内嵌在文本中 |\n| `post.cover` | `string \\| null` | 封面图 URL（仅 article 类型有值） |\n| `post.cover_path` | `string \\| null` | 封面图本地路径（仅指定 `--save-images` 时有值） |\n| `post.images` | `string[] \\| null` | 正文图片 URL 列表（仅 article 类型有值） |\n| `post.images_path` | `string[] \\| null` | 正文图片本地路径列表（仅指定 `--save-images` 时有值） |\n| `comments` | `object[]` | 评论列表（仅在指定 `--comments` 时返回） |\n| `comments[].text` | `string \\| null` | 评论文本 |\n\n#### `x posts`\n\n获取指定用户的推文列表。\n\n```bash\ncdpx x posts <id>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `id` | 用户 ID（用户名） |\n\n**选项：**\n\n| 选项 | 说明 | 默认值 |\n|------|------|--------|\n| `--since <timestamp>` | 只返回该 Unix 时间戳（秒）之后的推文 | — |\n| `--limit <n>` | 最多获取推文数量 | `10` |\n\n**示例：**\n\n```bash\ncdpx x posts elonmusk\ncdpx x posts elonmusk --limit 20\ncdpx x posts elonmusk --since 1700000000\n```\n\n**返回结果：**\n\n返回一个推文对象数组：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `id` | `string` | 推文 ID |\n| `time` | `number` | Unix 时间戳（秒） |\n| `text` | `string` | 推文文本 |\n\n### `douyin`\n\n抖音相关命令。\n\n#### `douyin video get-download-link`\n\n获取抖音视频的 MP4 下载链接。\n\n```bash\ncdpx douyin video get-download-link <url>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `url` | 抖音分享链接（如 `https://v.douyin.com/xxx/`） |\n\n**示例：**\n\n```bash\ncdpx douyin video get-download-link \"https://v.douyin.com/e57Hz45rJrA/\"\n```\n\n**返回结果：**\n\n返回一个 JSON 对象，包含以下字段：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `url` | `string` | 提取出的分享链接 |\n| `token` | `string` | 从 URL 中提取的分享 token |\n| `link` | `string` | MP4 直链下载地址 |\n\n### `weibo`\n\n微博相关命令。\n\n#### `weibo aisearch`\n\n使用微博 AI 搜索功能搜索内容，并以文本形式返回结果。\n\n```bash\ncdpx weibo aisearch <query>\n```\n\n**参数：**\n\n| 参数 | 说明 |\n|------|------|\n| `query` | 搜索关键词 |\n\n**示例：**\n\n```bash\ncdpx weibo aisearch \"人工智能\"\n```\n\n**返回结果：**\n\n返回 AI 生成的搜索结果纯文本字符串。\n\n#### `weibo hot`\n\n获取当前微博热搜榜单。\n\n```bash\ncdpx weibo hot\n```\n\n**返回结果：**\n\n返回一个热搜词条名称的字符串数组。\n\n```json\n[\"话题A\", \"话题B\", \"话题C\"]\n```\n\n#### `weibo post`\n\n发布一条微博。`--text`、`--file`、`--image` 三者至少需要指定一项。\n\n```bash\ncdpx weibo post [options]\n```\n\n**选项：**\n\n| 选项 | 说明 |\n|------|------|\n| `-t, --text <text>` | 微博文本内容 |\n| `-f, --file <path>` | 文本文件路径，文件内容将作为微博正文。与 `--text` 互斥 |\n| `-i, --image <paths...>` | 一张或多张图片的文件路径 |\n| `-o, --topic <topics...>` | 一个或多个话题，每个话题格式为 `#话题#`，追加在正文末尾另起一行 |\n\n**示例：**\n\n```bash\n# 纯文字\ncdpx weibo post -t \"今天天气不错\"\n\n# 文字加话题\ncdpx weibo post -t \"今天天气不错\" -o 生活 -o 日记\n\n# 从文件读取正文并带图片\ncdpx weibo post -f /path/to/content.txt -i /path/to/image.jpg\n\n# 纯图片\ncdpx weibo post -i /path/to/image.jpg\n\n# 多张图片加话题\ncdpx weibo post -i /path/to/a.jpg /path/to/b.jpg -o 摄影\n```\n","readmeFilename":"README.zh-CN.md"}