{"_id":"anti-detect-browser","_rev":"24-f32d776fa1c6bc472a3f23128bcac968","name":"anti-detect-browser","dist-tags":{"latest":"2.19.1"},"versions":{"0.1.0":{"name":"anti-detect-browser","version":"0.1.0","keywords":["anti-detect","browser","fingerprint","playwright","cdp","stealth"],"license":"MIT","_id":"anti-detect-browser@0.1.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"347686478cc66354c48b18da8f9c03326cf2c3df","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-0.1.0.tgz","fileCount":10,"integrity":"sha512-Pq8eUfy3fiJ48nhANkTDcUmI8O7CZdmOmqLvNB1oLq/0R6FEgLh0D+vPIOx/1gVr+/bFt2nGrk3p4jy9Z4aqJw==","signatures":[{"sig":"MEUCIQD64xTTr88aWIPqVm1WmmqUwtcxo70CkdHaIeukqg1VZAIgNjm7jMWG9PppGDsnB4iTixn2d0o9IVfNyP//QIs4dfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1178943},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8527ec42cc2e02cdfbd8ba9d6a1808b2d3201b3c","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK with Playwright + CDP fingerprint injection","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","playwright":"^1.49.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"peerDependencies":{"playwright":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_0.1.0_1773643718161_0.22280464751445206","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"anti-detect-browser","version":"0.1.1","keywords":["anti-detect","browser","fingerprint","playwright","cdp","stealth"],"license":"MIT","_id":"anti-detect-browser@0.1.1","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"db9a9e869c1ea71a2b45ad95dd9ef4c8e457dbb0","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-0.1.1.tgz","fileCount":11,"integrity":"sha512-toaJvupMt+Qnl2Bv0OActJQN4TvsBMneXz6onFsS3AANoWSCRSaJgzpv6IDqNu9LtFgAfCEMIyl/iZ4DI+BWXg==","signatures":[{"sig":"MEQCIFWm7iP1WTo4ZuP9wTcklKiCDLDg/nnnirqRNBK/e7VsAiAyKIDls6+Kt6IZ5HkNHKBy6l7Ln3GSfzEiSe536yOw3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1192466},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"14cd0f589c18ca1e0f34c39e464adc8c21f72587","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK with Playwright + CDP fingerprint injection","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","playwright":"^1.49.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"peerDependencies":{"playwright":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_0.1.1_1773650024064_0.8292689764336152","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"anti-detect-browser","version":"0.1.2","keywords":["anti-detect","browser","fingerprint","playwright","cdp","stealth"],"license":"MIT","_id":"anti-detect-browser@0.1.2","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"938c322a5721710af99884d2275f6de0703fef62","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-0.1.2.tgz","fileCount":11,"integrity":"sha512-OV0NWyNWNy6flmNfAzva8WechFobD3rydipgzm5vXRYaixLT+MhPcr9G7+UKdj+3n6W0W2QU0Vlz1JXE/2MvaA==","signatures":[{"sig":"MEUCIFm6xJ7IX3P5ICTKsQXorPCKMG64ICffMdBaA6loSxzCAiEApoIWirDjoQme7r/A0UnT3IgJwWAy7Y/eF4/jW4l2fBw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1203606},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"14cd0f589c18ca1e0f34c39e464adc8c21f72587","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK with Playwright + CDP fingerprint injection","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","playwright":"^1.49.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"peerDependencies":{"playwright":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_0.1.2_1773651049835_0.406965944563076","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"anti-detect-browser","version":"0.1.3","keywords":["anti-detect","browser","fingerprint","playwright","cdp","stealth"],"license":"MIT","_id":"anti-detect-browser@0.1.3","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"7a70361513253d5caab37934ee3bac5b4aca3448","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-0.1.3.tgz","fileCount":11,"integrity":"sha512-v1bURcwQAdBGx7IpoHDE6EsNWsCYuNIaT7Y9UOPUc7cx3KwKfnABNM0quImPcBUDD5Gu34sDcVyEOsgF4l8GfA==","signatures":[{"sig":"MEUCIQDWpeZnJBwZKz16rWP5gVwqBDfH/5gJJErIJkjEFFVQKAIgEnYiq531J3gOsjhUkybttTfjBE576kjM76Hg3h+nl4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1203606},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"14cd0f589c18ca1e0f34c39e464adc8c21f72587","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK with Playwright + CDP fingerprint injection","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","playwright":"^1.49.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"peerDependencies":{"playwright":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_0.1.3_1773651998553_0.09854579969448052","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"anti-detect-browser","version":"0.1.4","keywords":["anti-detect","browser","fingerprint","playwright","cdp","stealth"],"license":"MIT","_id":"anti-detect-browser@0.1.4","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"000df4f6bad5f981fb49057824dd12cb6e0c015e","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-0.1.4.tgz","fileCount":11,"integrity":"sha512-jNF5nPvCluL7081xlbCq34T67y3Oqk1XRdNO8+P6o03mMuUF5xMVtstquyczbFzeH6P8qiXaNVliOIjhsyghsQ==","signatures":[{"sig":"MEYCIQCvoEBRL3M2kX4TMIDQO7pdncwIrg/6KhAZXGKWhZe3SgIhAPHKcl00UTr39gueQ301UxL1bK/I56roprt31Z7nzVOr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1223278},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"14cd0f589c18ca1e0f34c39e464adc8c21f72587","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK with Playwright + CDP fingerprint injection","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","playwright":"^1.49.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"peerDependencies":{"playwright":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_0.1.4_1773652148140_0.3346312191988856","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"anti-detect-browser","version":"1.2.1","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.2.1","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"a2f8cb5af8edffcb30788f9caeb494c8ca3c1313","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.2.1.tgz","fileCount":10,"integrity":"sha512-9rrCS4/yWq1rBtuwzWknMcr6KXFp0jc6ONVvZYO4N1rke0VWc4ZQG/xvlBxRLqLxHa3uZzKcoeaeNwj1fducQA==","signatures":[{"sig":"MEUCICYY/zd2ky7DI65mOvaorZdpMF7zOJOHC8MFn9LdMrewAiEA3xDrwcUZlK4Q1C0AnQIboKdY+gdSH4SmCIoNDRtWN0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":804933},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ac661d50a3fc8fda984393620aff06c649fc1dcf","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Windows-only anti-detect browser client SDK powered by the Engine runtime and Playwright CDP","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","adm-zip":"^0.5.17","unzipper":"^0.12.3","puppeteer-core":"24.39.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.2.1_1781748334945_0.1649121280723156","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"anti-detect-browser","version":"1.2.3","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.2.3","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"b686dfd730a82962985aa2dd441020098692490d","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.2.3.tgz","fileCount":12,"integrity":"sha512-Jh3p+5MbA21ma5xS0KG/j65QHGrMm/J3NAFjnxIQ/gwIxmUV3V0XpUmSEBXBg+XeNK4ZF5Vyalzw5GaalAxGIQ==","signatures":[{"sig":"MEUCIGyFXsgVPK0AD7P8EPoh74lvFSffOO1cQXTN/YBcUA3hAiEAlWqZ9pnzbDaKXZgPOnn/RUnWmQW4JQhvKrA0EtpqZmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1191911},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ac661d50a3fc8fda984393620aff06c649fc1dcf","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","prepublishOnly":"tsup"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Windows-only anti-detect browser client SDK powered by the Engine runtime and Playwright CDP","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","adm-zip":"^0.5.17","unzipper":"^0.12.3","puppeteer-core":"24.39.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.2.3_1781765842016_0.45730662607205463","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"anti-detect-browser","version":"1.2.4","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.2.4","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"4733de83243bb6a7c857b324a3b42a5dfdddf050","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.2.4.tgz","fileCount":12,"integrity":"sha512-HNoyjT8ty+5z2sDQhqcx00AcAQY8F0g5jKMFXMgwIgyb7TfTv/1WGfKLk4yQgo4yEx8eI40A2Amg5hu88bLGSQ==","signatures":[{"sig":"MEUCIQDP/mFKsS78RyJWzNCAHupEwam+M/DaSlqzId0J9LkyqgIgQi+SGwiWCC/wDA7EghBpKnyxs/alCpKahPV43HyuKt0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1201022},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"87af3570971a0a3263ea4fdfd4ace03af1268adb","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","prepublishOnly":"tsup"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Windows-only anti-detect browser client SDK powered by the Engine runtime and Playwright CDP","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","adm-zip":"^0.5.17","unzipper":"^0.12.3","puppeteer-core":"24.39.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.2.4_1782094916914_0.4323709797055695","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"anti-detect-browser","version":"1.3.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.3.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32","linux"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"67fa8ad4705444cb0cff9adef1120c80185b9d07","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.3.0.tgz","fileCount":8,"integrity":"sha512-GfbOy6YkX3UpO3kxM+8glXmLLffOGB9U/95WpnxtyghWNpAhkthCqZQk262FMAjLv1xvju8dkdFYya96A3hT5Q==","signatures":[{"sig":"MEQCICnLDL/xP3MtkqCTvL8yjYATXPm88kgYqsw0e9iXEkP2AiAcpiOmhgw34i3ZOchIgWuLnZakKJgL4AAtV5oK/y1rRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":620648},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"541b039cf39f5b3ea31c72020fbc2e3182186123","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist","prepublishOnly":"tsup"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_npmVersion":"10.8.2","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows + Linux)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","adm-zip":"^0.5.17","unzipper":"^0.12.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.3.0_1783647481039_0.6258736595497487","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"anti-detect-browser","version":"1.4.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.4.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32","linux"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"8de2b831f17161a8e5debeb41bfe932f248f3537","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.4.0.tgz","fileCount":7,"integrity":"sha512-21BKUnrJJv0kDu7AoB71vbvQ824Y3FAuD4C88b074K+f6B1st8EuTQsGQ5T+E2O86tVPidFEU7V6qz8zARtl5w==","signatures":[{"sig":"MEQCIApOUArAuNs06Xe287QkvlArsxOK58153F1OAQiMdV+nAiAm3MffLpLLnlF6HK7H/+g++dp9aaWgYC1t0E+fWTHJPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270923},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-1.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"C:\\Users\\znjac\\AppData\\Local\\Temp\\5c499a30b04dbd0ef3ca7b1604869ccc\\anti-detect-browser-1.4.0.tgz","_integrity":"sha512-21BKUnrJJv0kDu7AoB71vbvQ824Y3FAuD4C88b074K+f6B1st8EuTQsGQ5T+E2O86tVPidFEU7V6qz8zARtl5w==","_npmVersion":"10.9.4","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows + Linux)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","adm-zip":"^0.5.17","unzipper":"^0.12.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.4.0_1784094592523_0.5896470398101474","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"anti-detect-browser","version":"1.5.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@1.5.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","os":["win32","linux"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"8de4c33f2bfd8b25e4c1d5996094a3d6389a9521","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-1.5.0.tgz","fileCount":7,"integrity":"sha512-6dL4v0qZ+CLEuFxVdG2fGP26oGxKRotdkccNsardced4qgELAXfqo9NNOaA+CDEi1+GFTbsXIulB1zSzoOqRQw==","signatures":[{"sig":"MEYCIQDT69IV8gEmi/0wstARiQiYZwbwA5DtJ9/m7RXRq25gRQIhANEv5BZPC/DkNWll0IlUx9zZaT+WLPSWEA9QC8yHol3d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":349550},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-1.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"C:\\Users\\znjac\\AppData\\Local\\Temp\\d764e113df368b45fc7108148d38a8eb\\anti-detect-browser-1.5.0.tgz","_integrity":"sha512-6dL4v0qZ+CLEuFxVdG2fGP26oGxKRotdkccNsardced4qgELAXfqo9NNOaA+CDEi1+GFTbsXIulB1zSzoOqRQw==","_npmVersion":"10.9.4","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows + Linux)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","adm-zip":"^0.5.17","unzipper":"^0.12.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_1.5.0_1784863530372_0.02645467058054929","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"anti-detect-browser","version":"2.0.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.0.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"182544d6b0f85584c1f5651a8f2b9e1f4535a781","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.0.0.tgz","fileCount":9,"integrity":"sha512-mphD9wL3KwyalqcAvG0hb2LFBnkPfHrmEAhcEdxg4wpiR6j9eGkWa6HeF7owHsbIBGPMj3roUzz6+to0LSTnOg==","signatures":[{"sig":"MEYCIQChlC7sJv8DkbQeVfG9LFoh+rtaZdDww08Ob90t6ZhOQwIhAL0ied/eb3KNy6NEKdZEAdGXLlv1O2r1KIqyWFPlb82T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":384681},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"C:\\Users\\znjac\\AppData\\Local\\Temp\\5e10b6b6986e3500c7711e9db90e1d46\\anti-detect-browser-2.0.0.tgz","_integrity":"sha512-mphD9wL3KwyalqcAvG0hb2LFBnkPfHrmEAhcEdxg4wpiR6j9eGkWa6HeF7owHsbIBGPMj3roUzz6+to0LSTnOg==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"10.9.4","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows + Linux)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","adm-zip":"^0.5.17","unzipper":"^0.12.3","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/adm-zip":"^0.5.8","@types/unzipper":"^0.10.11","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.0.0_1785313799774_0.4039104727362224","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"anti-detect-browser","version":"2.2.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.2.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"04332ff39170bd008f56aa42adf77979cd50010d","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.2.0.tgz","fileCount":10,"integrity":"sha512-iC7uH74sOawtYsihpmpNOrPfwRG/e6G5JVU60l41xkz1TfjNmR+6UzzceaqVRv2Sp6By9jzzJ9fOIODBd2HSwA==","signatures":[{"sig":"MEUCIQDimuHLkzDTL4EQwr2yUJud6A0g/qy/ftUOikLp90W1mgIgU91bvgmeoO24ZKdiuv5fU+ciNTic7DQ0MFbISt0T0FU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404382},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/b676bd25942d5261b6aa9c1ced985b93/anti-detect-browser-2.2.0.tgz","_integrity":"sha512-iC7uH74sOawtYsihpmpNOrPfwRG/e6G5JVU60l41xkz1TfjNmR+6UzzceaqVRv2Sp6By9jzzJ9fOIODBd2HSwA==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.5.17","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.2.0_1785553290414_0.09165967332755787","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"anti-detect-browser","version":"2.2.1","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.2.1","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"aa37c646d250df7089458b775e4d2a0a3b132324","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.2.1.tgz","fileCount":10,"integrity":"sha512-CJ3sacj2g2xxAnDrJaoQA1EdeHmifzTvv0O00POm6q/rHKDHdOhNiZ4WCMTim5Z6xRhDZSaAEbwLcLahfn3IiQ==","signatures":[{"sig":"MEQCIAmeJPQi9lpEubkLrfoqFZpTXD02yKKjOCH5K/VTLIHYAiBZDNLM9FW9xVJxmliXpVbSfJPezdsGVuMubhzN3Glibw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412517},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/b8c4f18517bf5317aa9c14da6b67d245/anti-detect-browser-2.2.1.tgz","_integrity":"sha512-CJ3sacj2g2xxAnDrJaoQA1EdeHmifzTvv0O00POm6q/rHKDHdOhNiZ4WCMTim5Z6xRhDZSaAEbwLcLahfn3IiQ==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.5.17","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.2.1_1785832235378_0.37811227485222143","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"anti-detect-browser","version":"2.4.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.4.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"4e9745d368ebf03cdfc7ad8868d45eb8cd8183ef","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.4.0.tgz","fileCount":10,"integrity":"sha512-ABPwBn+NGUi+mKwn5/L317qJqKlhLw73f7Po/uprrKL2neMomUuVPA7OwU1D07nmxeK+MzT4/wTH1rFSXRjf7A==","signatures":[{"sig":"MEUCIQCy/C5ZTPlpvtDPuV4KeOBETkGB4N8UsZ7pIV2y5fv7OQIgTgAX648Ufdwfcz5f8/TXvwovBr2GGSSLtg7NpGM+cXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565092},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/dec3b34c9aa635a9ef93bdbd6cde82cd/anti-detect-browser-2.4.0.tgz","_integrity":"sha512-ABPwBn+NGUi+mKwn5/L317qJqKlhLw73f7Po/uprrKL2neMomUuVPA7OwU1D07nmxeK+MzT4/wTH1rFSXRjf7A==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.5.17","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.4.0_1786328681669_0.997121384962814","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"anti-detect-browser","version":"2.6.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.6.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"d4c02045e30c635b4887cc67463ba4f4f7e26c8c","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.6.0.tgz","fileCount":10,"integrity":"sha512-k17MtCdhpUk5cFMOKZWesaIGy6lOyraf+p25MfxqryiP2JJ/PEZIn77Bn7c42Z/2MHsh1tc738KnRkinkKNUgw==","signatures":[{"sig":"MEYCIQD14rPF/Mmu2ZG2ZW4UWhO7T0IxhlgX+q8eADtxf4LyNAIhAI5VUZyrguwa6dNTF93vrCGin0JhOsXsVLvr6ohkSGPy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":592004},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/aacfb0f0421edcf0f436a489d74bba06/anti-detect-browser-2.6.0.tgz","_integrity":"sha512-k17MtCdhpUk5cFMOKZWesaIGy6lOyraf+p25MfxqryiP2JJ/PEZIn77Bn7c42Z/2MHsh1tc738KnRkinkKNUgw==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.6.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.6.0_1786350948108_0.6894132542212243","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"anti-detect-browser","version":"2.7.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.7.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"642daf09cfd449444f5e93b8e0777496c5473eca","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.7.0.tgz","fileCount":11,"integrity":"sha512-72w+YGgja2X9YfcdzuhAscjmOS/ER5dwfJgJdO/lP0mjHg0aLzZ38sknRUA9IpiX/901X1OMOkxjWdTXR8/PAA==","signatures":[{"sig":"MEUCIQC4e91t0RIA6hIx87NKSN62VSRo8UETVYrJfe7lX/1u0QIgVcl1GSgmlgPS6c6Bw+4wm8bl7/wIFmz3JE7T+/s63BA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623698},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/8a3f56c4ca4baf0ae0d80ae6bcb3a478/anti-detect-browser-2.7.0.tgz","_integrity":"sha512-72w+YGgja2X9YfcdzuhAscjmOS/ER5dwfJgJdO/lP0mjHg0aLzZ38sknRUA9IpiX/901X1OMOkxjWdTXR8/PAA==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.6.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.7.0_1786499513326_0.30345864711219206","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"anti-detect-browser","version":"2.8.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.8.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"c4b4707089f2b06bd1bc617d0590e52b78bfdfa9","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.8.0.tgz","fileCount":11,"integrity":"sha512-QIQ+RGBWLwUtagy/DZ0kd0fytupFH0bnuEtxrQoQ1dMKJY1EEkQe+M1Y8s9YEg2s3+qfxx8l2MoHRQC2CJhE0g==","signatures":[{"sig":"MEUCIQD2NUPJqc9jiSEpXDdB3Z4ZjvnAmNlL2iGCAHZHEM+WqwIga8Y2dwzKktZFtQJEW13LTz30/ePTSyG1qrLX7XrBQFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":639859},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/9cb58347c798d17b42cc1c8e644ff4d4/anti-detect-browser-2.8.0.tgz","_integrity":"sha512-QIQ+RGBWLwUtagy/DZ0kd0fytupFH0bnuEtxrQoQ1dMKJY1EEkQe+M1Y8s9YEg2s3+qfxx8l2MoHRQC2CJhE0g==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime and Playwright CDP (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.6.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.8.0_1786530019467_0.5817526659911936","host":"s3://npm-registry-packages-npm-production"}},"2.19.0":{"name":"anti-detect-browser","version":"2.19.0","keywords":["anti-detect","browser","engine","playwright","stealth"],"license":"MIT","_id":"anti-detect-browser@2.19.0","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"homepage":"https://antibrow.com","bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"os":["win32","linux","darwin"],"bin":{"anti-detect-browser":"dist/cli.js"},"dist":{"shasum":"66903cbb8fd6c33121f3dfc2857215e933d1f5a9","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.19.0.tgz","fileCount":11,"integrity":"sha512-SsN4bxsj8utaCOEDIp8X+3R1RZeYftWAD8GEQwK2GVtzy5D4s76NOWMPKuRmlZl9vYgT9XLcgABfy/y18YmlMA==","signatures":[{"sig":"MEQCIC2rQnwQVqpPQbYR/lIQMErzCFJRIraPCqPyUW4uDvF0AiAe7Zo77R9f7a1xjU5Ftf3D190PLlWDL9Tofz16rJFJ8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795620},"main":"./dist/index.cjs","type":"module","_from":"file:anti-detect-browser-2.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/11e605252d221132240ba208fb08d49e/anti-detect-browser-2.19.0.tgz","_integrity":"sha512-SsN4bxsj8utaCOEDIp8X+3R1RZeYftWAD8GEQwK2GVtzy5D4s76NOWMPKuRmlZl9vYgT9XLcgABfy/y18YmlMA==","repository":{"url":"git+https://github.com/antibrow/antibrow.git","type":"git","directory":"js"},"_npmVersion":"11.16.0","description":"Anti-detect browser client SDK powered by the Engine runtime, driven with the Playwright API (Windows, macOS + Linux)","directories":{},"_nodeVersion":"24.18.1","dependencies":{"ws":"^8.0.0","socks":"^2.8.9","yauzl":"^3.4.0","adm-zip":"^0.6.0","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^2.0.0","@types/ws":"^8.0.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/yauzl":"^3.4.0","@types/adm-zip":"^0.5.8","playwright-core":"^1.60.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/anti-detect-browser_2.19.0_1786774752861_0.5192629753555864","host":"s3://npm-registry-packages-npm-production"}},"2.19.1":{"name":"anti-detect-browser","version":"2.19.1","description":"Anti-detect browser client SDK powered by the Engine runtime, driven with the Playwright API (Windows, macOS + Linux)","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"anti-detect-browser":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","adm-zip":"^0.6.0","socks":"^2.8.9","ws":"^8.0.0","yauzl":"^3.4.0"},"devDependencies":{"@types/adm-zip":"^0.5.8","@types/node":"^22.0.0","@types/ws":"^8.0.0","@types/yauzl":"^3.4.0","playwright-core":"^1.60.0","tsup":"^8.0.0","typescript":"^5.7.0","vitest":"^2.0.0"},"peerDependencies":{"playwright-core":">=1.40.0"},"keywords":["anti-detect","browser","engine","playwright","stealth"],"os":["win32","linux","darwin"],"homepage":"https://antibrow.com","license":"MIT","engines":{"node":">=18"},"repository":{"type":"git","url":"git+https://github.com/antibrow/antibrow.git","directory":"js"},"bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"scripts":{"build":"tsup","test":"vitest run","clean":"rm -rf dist"},"_id":"anti-detect-browser@2.19.1","_integrity":"sha512-f/NiZ20kwp27R3MyNLr0KAIWwEFYxFLWKkyDUOnOvRTfnLtwrvj+GNN58SaWETpI0c8Kx7H4RjtqAgVPRsuR1Q==","_resolved":"/private/var/folders/qb/z0f0f86d0qb5lnt6zv5l9w9r0000gn/T/f994e9cd6caed48a945c48e59a615a35/anti-detect-browser-2.19.1.tgz","_from":"file:anti-detect-browser-2.19.1.tgz","_nodeVersion":"24.18.1","_npmVersion":"11.16.0","dist":{"integrity":"sha512-f/NiZ20kwp27R3MyNLr0KAIWwEFYxFLWKkyDUOnOvRTfnLtwrvj+GNN58SaWETpI0c8Kx7H4RjtqAgVPRsuR1Q==","shasum":"b43b047530ad82813183063f588487499bedf97f","tarball":"https://registry.npmjs.org/anti-detect-browser/-/anti-detect-browser-2.19.1.tgz","fileCount":11,"unpackedSize":797655,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID1hGxPA+HY+qDpCDcAV3/2kJg618srxbbBstvpHVaTnAiEAlJ/P8eDm6cCGfCEj9I9wzgE91iywfUvbCe5+Dc4a8No="}]},"_npmUser":{"name":"antibrow","email":"zane79076@gmail.com"},"directories":{},"maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/anti-detect-browser_2.19.1_1786931535805_0.6079410853762002"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-16T06:48:38.160Z","modified":"2026-08-17T01:52:16.089Z","0.1.0":"2026-03-16T06:48:38.341Z","0.1.1":"2026-03-16T08:33:44.259Z","0.1.2":"2026-03-16T08:50:49.999Z","0.1.3":"2026-03-16T09:06:38.745Z","0.1.4":"2026-03-16T09:09:08.444Z","1.1.0":"2026-06-17T02:40:28.015Z","1.2.0":"2026-06-17T05:53:48.099Z","1.2.1":"2026-06-18T02:05:35.129Z","1.2.3":"2026-06-18T06:57:22.190Z","1.2.4":"2026-06-22T02:21:57.081Z","1.3.0":"2026-07-10T01:38:01.197Z","1.4.0":"2026-07-15T05:49:52.659Z","1.5.0":"2026-07-24T03:25:30.513Z","2.0.0":"2026-07-29T08:29:59.926Z","2.2.0":"2026-08-01T03:01:30.571Z","2.2.1":"2026-08-04T08:30:35.514Z","2.4.0":"2026-08-10T02:24:41.843Z","2.6.0":"2026-08-10T08:35:48.271Z","2.7.0":"2026-08-12T01:51:53.463Z","2.8.0":"2026-08-12T10:20:19.632Z","2.19.0":"2026-08-15T06:19:13.034Z","2.19.1":"2026-08-17T01:52:15.934Z"},"bugs":{"url":"https://github.com/antibrow/antibrow/issues"},"license":"MIT","homepage":"https://antibrow.com","keywords":["anti-detect","browser","engine","playwright","stealth"],"repository":{"type":"git","url":"git+https://github.com/antibrow/antibrow.git","directory":"js"},"description":"Anti-detect browser client SDK powered by the Engine runtime, driven with the Playwright API (Windows, macOS + Linux)","maintainers":[{"name":"antibrow","email":"zane79076@gmail.com"}],"readme":"![AntiBrow](https://antibrow.com/AntiBrow-mark.svg)\n\n# anti-detect-browser\n\n[English](README.md) | **Русский**\n\n**Антидетект-браузер, которым может управлять ваш AI-агент.**\n\nПодмена отпечатка на уровне ядра · **неограниченное количество локальных профилей, бесплатно** · стандартный API Playwright · встроенный MCP-сервер.\n\n[![npm version](https://img.shields.io/npm/v/anti-detect-browser?color=6366f1&label=npm)](https://www.npmjs.com/package/anti-detect-browser)\n[![node](https://img.shields.io/badge/node-%E2%89%A518-3c873a)](https://nodejs.org)\n![platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-6366f1)\n![MCP ready](https://img.shields.io/badge/agent-MCP%20ready-a855f7)\n![license](https://img.shields.io/badge/license-MIT-444)\n\n---\n\nДайте своей автоматизации - или своему AI-агенту - настоящий браузер, который веб **не сможет отличить от человека**. Отпечатки настоящих устройств подменяются на уровне ядра, управление идёт через тот же API Playwright, который вы уже пишете.\n\n## Почему anti-detect-browser\n\n### Локальность прежде всего, и бесплатно\n\nСоздавайте **неограниченное количество профилей браузера на своей машине - бесплатно, навсегда.** Никакой платы за профиль, никакой платы за место. Каждый профиль - это полностью изолированная личность: собственный отпечаток настоящего устройства, куки, хранилище и прокси, - сохранённая на диске и восстанавливаемая побайтово при следующем запуске. Назовите профиль - и он существует; ничего дополнительно готовить не нужно.\n\n### Готов к работе с агентами из коробки\n\nПоставляется как **MCP-сервер** - одна строка (`npx anti-detect-browser --mcp`) добавляет полностью снабжённый отпечатком браузер в Claude или любой MCP-клиент, так что ваш агент может переходить по страницам, кликать, вводить текст, читать содержимое и делать скриншоты настоящего веба. Предпочитаете код? `launch()` возвращает стандартные Playwright `BrowserContext` и `Page`, поэтому существующие скрипты работают без изменений - меняется только строка запуска.\n\n### Технически впереди\n\nОтпечатки подменяются на **уровне ядра** (собственный рантайм на базе Chromium 149), а не хрупкими патчами на JavaScript, которые антибот-системы вычисляют с первого взгляда. Сигналы остаются **согласованными** между Canvas, WebGL, WebGPU, шрифтами, аудио, `navigator`, экраном и часовым поясом - ничто не противоречит друг другу, потому что это профиль реального устройства, а не рандомизированный шум. Часовой пояс и геолокация **автоматически следуют за прокси**.\n\n### Аутентифицированные прокси - и ничего не нужно устанавливать, чтобы они заработали\n\nПередайте `http://`, `https://` или **`socks5://user:pass@host:port`**, и учётные данные будут обработаны **внутри движка** - запросы `407` для HTTP/HTTPS обрабатываются прямо в сетевом стеке, SOCKS5 - по протоколу согласования логина/пароля из RFC 1929. Вспомогательное расширение не устанавливается, поэтому `chrome://extensions` остаётся пустым; расширение для авторизации прокси, которое до сих пор поставляют многие антидетект-браузеры, можно перечислить с любой страницы, и само по себе является демаскирующим признаком. Учётные данные доходят только до сетевого процесса и никогда - до процесса рендеринга.\n\n## Доказательство того, что это работает\n\nНастоящий выход через резидентский IP, `Proxy: No`, 90% маскировки на whoer.net - и чистый прогон через CreepJS:\n\n![whoer.net result](https://antibrow.com/proof/whoer.webp)\n![CreepJS result](https://antibrow.com/proof/creepjs.webp)\n\n## Быстрый старт\n\n```bash\nnpm install anti-detect-browser\n```\n\nПолучите API-ключ в панели управления на [antibrow.com](https://antibrow.com/ru), затем:\n\n```ts\nimport { profile } from 'anti-detect-browser'\n\nconst key = process.env.ANTI_DETECT_BROWSER_KEY\n\n// Unlimited local profiles - just name one. It's created on disk on first use.\nconst p = await profile({ key, name: 'shopper-01' })\nconst { page, browser } = await p.launch()\n\nawait page.goto('https://whoer.net')      // standard Playwright from here on\nconsole.log(await page.title())\nawait browser.close()\n```\n\nС управляемым резидентским прокси (часовой пояс и гео следуют за ним) и визуальной меткой:\n\n```ts\nconst p = await profile({\n  key,\n  name: 'shopper-02',\n  proxy: { kind: 'managed' },   // claimed from the managed pool on first use, reused after\n})\n\nconst { page } = await p.launch({ label: 'acct@shop.com' })   // drawn by the kernel in front of the address bar\n```\n\nПрокси записывается при первом запуске, поэтому дальше достаточно имени:\n\n```ts\nconst same = await profile({ key, name: 'shopper-02' })\nawait same.launch()                       // тот же исходящий IP, часовой пояс и гео\n```\n\n`p.launch()` возвращает `{ browser, context, page, profileDir }` - `context` и `page` являются настоящими объектами Playwright.\n\n## Android-профили\n\nПопросите телефон - и профиль им станет, на той же машине с Windows, macOS или Linux, на которой вы уже работаете:\n\n```ts\nconst { page } = await ab.launch({\n  profile: 'phone-01',\n  deviceType: 'android',   // 'desktop' (default) | 'android'\n})\n```\n\nЭто **симуляция, запущенная на настольной машине**, а не парк устройств и не удалённый телефон. Меняется личность, которую видит страница, - и всё это отвечается прямо в ядре:\n\n| Поверхность | Что сообщает Android-профиль |\n|---|---|\n| UA + client hints | UA `Mobile Safari`, `Sec-CH-UA-Mobile: ?1`, `Sec-CH-UA-Platform: \"Android\"`, настоящие `model` и `platformVersion`, `formFactors: [\"Mobile\"]`, пустые `architecture` / `bitness` |\n| `navigator` | `platform: \"Linux armv81\"`, `maxTouchPoints`, мобильные значения ядер/памяти, отсутствие плагинов и mime-типов, `pdfViewerEnabled: false` |\n| Сенсор и раскладка | `ontouchstart`, `window.orientation`, портретная `screen.orientation`, `(pointer: coarse)` / `(hover: none)`, окно подогнано под размер экрана устройства, так что `innerWidth === screen.width` на странице с viewport-meta |\n| GPU | мобильные unmasked vendor/renderer и расширения сжатых текстур ETC/ASTC, которые действительно выставляет GPU телефона |\n| Экран, аудио, шрифты, соединение | взяты с того же устройства, что и всё остальное |\n\nТри настоящих телефона поставляются **прямо внутри пакета**, поэтому профиль на бесплатном тарифе может быть Android без единого сетевого запроса. Каждое поле берётся с одного устройства - пакет выбирает целую строку, а не отдельное поле, потому что только так значения согласуются между собой.\n\nВажно знать две вещи:\n\n- **Тип устройства фиксируется при создании.** Он хранится в персоне профиля, поэтому передача `deviceType` для уже существующего профиля ничего не даёт. Чтобы переключиться, создайте новый профиль.\n- **Для Android нужно ядро `151` или новее** - первое, которое несёт поддержку мобильных устройств. Для нового Android-профиля SDK берёт самое свежее подходящее ядро, устанавливает его за вас и завершается явной ошибкой, а не запускает настольное ядро под маской телефона. Проверить версию самостоятельно можно через `kernelSupportsAndroid(version)`, а получить список подходящих - через `androidCapableKernels()`.\n\nХотите, чтобы личность бралась из библиотеки отпечатков на сервере, а не из встроенной таблицы - каждый раз другая реальная машина, Android или Windows?\n\n```ts\nawait ab.launch({ profile: 'phone-02', deviceType: 'android', realFingerprint: true })\n```\n\n`realFingerprint` доступен на платных тарифах; бесплатные ключи сервер отклоняет, а не тихо понижает до сгенерированной персоны. Как и `deviceType`, применяется только при первом создании профиля.\n\n## Поддержание ядра браузера в актуальном состоянии\n\nЯдро браузера с отпечатками со временем получает новые сборки (свежие мажорные версии Chrome, исправления маскировки). Установленные ядра кешируются и **никогда не подменяются без вашего ведома** - вы сами решаете, когда обновляться.\n\n```ts\n// Any installed kernel have a newer build published?\nif (await ab.hasKernelUpdate()) {\n  const updated = await ab.updateKernel()   // pull the newer build(s)\n  console.log('updated kernels:', updated)  // → ['150']\n}\n\n// Or inspect per-version detail\nconst status = await ab.checkKernelUpdates()\n// [{ version, label, installed, installedBuild, availableBuild, updateAvailable }]\n\n// Update just one version, with progress\nawait ab.updateKernel('150', msg => console.log(msg))\n```\n\nДаже без этого `launch()` тихо проверяет (один раз за процесс, в фоне) и выводит однострочное уведомление, если доступна более новая сборка ядра, - так вы будете в курсе, но обновление никогда не произойдёт у вас за спиной и не замедлит запуск:\n\n```\n[anti-detect-browser] A newer browser kernel build is available for: Chrome 150. Run browser.updateKernel() to update now, or launch with { updateKernelBeforeLaunch: true }.\n```\n\nХотите, чтобы всё происходило само? Позвольте `launch()` проверить **и обновить** ядро профиля перед стартом - **по умолчанию выключено**:\n\n```ts\nawait ab.launch({\n  profile: 'shopper-01',\n  updateKernelBeforeLaunch: true,   // default false - when true, updates then launches (no notice)\n})\n```\n\nЕсли машина офлайн, проверка молча пропускается, и браузер запускается с уже установленным ядром - обновления никогда не блокируют запуск. (Уведомление идёт в stdout; MCP-сервер направляет его в stderr, чтобы не засорять канал JSON-RPC.)\n\n## Использование из AI-агента (MCP)\n\nДобавьте это в конфигурацию своего MCP-клиента - и агент получит скрытный браузер:\n\n```json\n{\n  \"mcpServers\": {\n    \"anti-detect-browser\": {\n      \"command\": \"npx\",\n      \"args\": [\"anti-detect-browser\", \"--mcp\"],\n      \"env\": { \"ANTI_DETECT_BROWSER_KEY\": \"your-api-key\" }\n    }\n  }\n}\n```\n\n**Инструменты:** `launch_browser`, `navigate`, `click`, `fill`, `screenshot`, `evaluate`, `get_content`, `list_profiles`, `create_profile`, `list_proxies`, `claim_proxy`, `start_live_view` и другие.\n\n`launch_browser` и `create_profile` принимают и `deviceType` (`\"desktop\"` / `\"android\"`), и `realFingerprint`, поэтому агент может запросить профиль телефона тем же вызовом, которым его запускает.\n\n## Автоматизация в больших масштабах\n\nАвтоматизация обычно создаёт отдельный профиль под каждую задачу. Передайте `temporary: true`,\nчтобы такие профили оказывались в отдельном дереве каталогов, не мешая\nпрофилям, которыми вы управляете вручную:\n\n```js\nimport { AntiDetectBrowser } from 'anti-detect-browser'\n\nconst ab = new AntiDetectBrowser({ key: process.env.ANTI_DETECT_BROWSER_KEY, temporary: true })\n\nfor (const task of tasks) {\n  const { page, browser } = await ab.launch({ profile: `task-${task.id}` })\n  await page.goto(task.url)\n  await browser.close()\n}\n\n// Temporary profiles are never deleted for you.\nconst removed = ab.clearTemporaryProfiles({ olderThanDays: 7 })\nconsole.log(`removed ${removed.length} temporary profiles`)\n```\n\nТри вещи, которые стоит знать:\n\n- **Они не отображаются в десктопном приложении.** Десктопное приложение\n  читает только управляемое дерево, поэтому временный профиль для него невидим.\n- **Два дерева - это разные пространства имён.** Временный `gmail` и\n  управляемый `gmail` - это два разных профиля со своей личностью и куками.\n- **Ничего не удаляется автоматически.** Временный профиль хранит свою\n  личность и свои сессии столько, сколько вы оставляете его на диске, - это и\n  делает его пригодным для повторного использования. Удаляйте их сами через\n  `ab.clearTemporaryProfiles()` или\n  `npx anti-detect-browser --clear-temp --older-than=7`.\n\nПри каждом запуске `temporary: false` возвращает один профиль обратно в управляемое дерево.\n\n### Linux-серверы, включая ARM\n\nЯдро для Linux выходит в двух сборках, x64 и arm64, и SDK сам выбирает ту, что\nсоответствует процессору, на котором он запущен. Настраивать ничего не нужно:\nпроцесс Node с архитектурой arm64 под Linux скачивает arm64-сборку ядра, а\nфлаги песочницы для контейнеров (`--no-sandbox`, `--disable-dev-shm-usage` и\nостальные) подставляются автоматически. ARM-инстанс здесь обычная цель, а не\nобходной путь, поэтому парку машин, который уже работает на ARM, не нужно\nдержать отдельную x86-машину ради браузера.\n\nЕдинственное, что меняется на сервере, - это headless. У настоящего headless\nChromium свой собственный отпечаток, поэтому ядро запускается в оконном режиме\nна виртуальном дисплее:\n\n```dockerfile\nFROM node:22-bookworm-slim\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n      xvfb libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \\\n      libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 \\\n      libgbm1 libasound2 libpango-1.0-0 libcairo2 fonts-liberation ca-certificates \\\n    && rm -rf /var/lib/apt/lists/*\nWORKDIR /app\nCOPY package*.json ./\nRUN npm install --omit=dev\nCOPY . .\nCMD [\"xvfb-run\", \"-a\", \"node\", \"index.js\"]\n```\n\nОдин и тот же файл собирается и под `linux/amd64`, и под `linux/arm64`.\n\nО чём стоит помнить, если кэш смонтирован как том: ядра разложены по версиям, а\nне по архитектурам (`~/.anti-detect-browser/kernels/<version>/`). Общий том для\namd64-хоста и arm64-хоста отдаст неверный бинарник тому из них, кто скачает\nвторым, поэтому для каждой архитектуры заведите свой том.\n\n### Чтобы окно не мешало вашей работе\n\nЗапуск забирает фокус, что становится проблемой, когда автоматизация должна\nработать рядом с вашей собственной. `focusWindow: false` открывает браузер\nпозади того, что сейчас на переднем плане:\n\n```js\nawait ab.launch({ profile: 'task-01', focusWindow: false })\n```\n\nОкно всё ещё на месте и обычного размера - это не headless-режим, поэтому в\nотпечатке ничего не меняется; окно просто не выходит на передний план. Порядок\nокон определяется ядром, а не SDK, поэтому перед тем, как на это полагаться,\nустановите для профиля последнюю версию ядра.\n\n### Облачная синхронизация\n\nЗапуск сам по себе никогда не создаёт облачный профиль. По умолчанию профиль\nсинхронизируется только тогда, когда сервер уже знает это имя, поэтому запуск\nавтоматизации не может заполнить вашу квоту синхронизации профилями, которые\nвы вовсе не собирались оставлять. Чтобы поместить новый профиль в облако,\nзапросите это явно:\n\n```js\nawait ab.launch({ profile: 'main-account', sync: true })   // create + sync\nawait ab.launch({ profile: 'main-account', sync: false })  // stay local\n```\n\n`sync: true` и `temporary: true` взаимно исключают друг друга; передача обоих\nприводит к исключению. `sync: true` также вызывает исключение, если ваш\nтариф не включает облачную синхронизацию.\n\n## Хэндл профиля\n\n`launch()` принимает имя профиля и забывает его сразу после возврата. `profile()`\nвместо этого отдаёт вам устойчивый хэндл - он разрешает профиль (создавая его\nпри первом использовании), а затем запоминает прокси, группу и теги, которые\nвы на нём задали, так что более поздний вызов `profile({ name })` без этих\nопций вернёт всё в точности так, как было оставлено:\n\n```ts\nimport { profile } from 'anti-detect-browser'\n\nconst p = await profile({\n  key: process.env.ANTI_DETECT_BROWSER_KEY,\n  name: 'shop-01',\n  proxy: 'http://user:pass@host:8080',\n})\nconst { page, browser } = await p.launch()\nawait browser.close()\n\n// позже, где угодно - прокси возвращается вместе с профилем\nconst same = await profile({ key: process.env.ANTI_DETECT_BROWSER_KEY, name: 'shop-01' })\nawait same.launch()\n```\n\n`profile()` принимает всё, что принимает конструктор `AntiDetectBrowser`, плюс\n`name` (обязательно), `proxy`, `sync`, `temporary`, `tags`, `group`,\n`userDataDir`, а также `deviceType` и `realFingerprint`, которые применяются\nтолько при первом создании профиля, как и в `launch()`. `tags` и `group`\nподчиняются правилу «передали - не передали», описанному ниже;\n`userDataDir` задаёт каталог профиля на том вызове, где он передан. Хэндл\nпредоставляет `name`, `id`, `synced`, `dir` и `proxy` как состояние для\nчтения, а также:\n\n- **`p.launch(options?)`** - запускает браузер. Принимает только опции уровня\n  сессии (`headless`, `label`, `focusWindow`, `liveView`,\n  `updateKernelBeforeLaunch`); передача `proxy`, `tags`, `group`, `sync` или\n  `temporary` здесь вызывает исключение - эти параметры принадлежат профилю,\n  а не одному запуску.\n- **`p.setProxy(next)`** - меняет привязку прокси у профиля. Строка URL\n  привязывает этот прокси напрямую. `{ kind: 'managed' }` забирает прокси из\n  управляемого пула при первом использовании и повторно использует тот же\n  самый при каждом следующем вызове; `{ kind: 'managed', managedProxyId }`\n  привязывает конкретный управляемый прокси по id. `null` снимает привязку и\n  переходит на прямое соединение.\n- **`p.swapProxy()`** - меняет текущий привязанный управляемый прокси на\n  другой выход. Вызывает исключение, если у профиля сейчас не привязан\n  управляемый прокси.\n- **`p.getGroup()` / `p.setGroup(group | null)`** и **`p.getTags()` /\n  `p.setTags(tags)`** - читают и напрямую записывают группу и теги профиля.\n  `setGroup(null)` очищает группу - это единственный способ снять её после\n  установки. Передача `group` или `tags` в `profile()` подчиняется тому же\n  правилу, что и `proxy`: передали раз - значение запомнено и держится\n  дальше; не передали - то, что уже сохранено, остаётся нетронутым.\n- **`p.enableSync()`** - переносит локальный профиль в облако, загружая его\n  текущее состояние с диска, чтобы другая машина, открывшая профиль с тем же\n  именем, получила настоящий браузер, а не пустую оболочку.\n- **`p.dangerousDisconnectSync()`** - удаляет облачную копию и её архив.\n  **Необратимо.** Локальный каталог не затрагивается и остаётся пригодным для\n  запуска - его прокси, группа и теги сначала считываются в локальную запись,\n  так что после удаления облачной строки профиль сохраняет свою личность.\n- **`p.export(filePath?)`** - упаковывает профиль с диска в переносимый архив\n  `.fpprofile` (личность, куки, хранилище, привязка прокси). Отражает\n  состояние диска на текущий момент, поэтому сначала запустите профиль хотя\n  бы раз - личность профиля не создаётся до первого запуска, и экспорт до\n  этого приведёт к исключению. Если привязан прокси по URL, он записывается\n  в архив полностью, вместе с паролем - тот, кому вы передадите файл,\n  получит и этот пароль вместе с профилем. Зашифрованный профиль сначала\n  преобразуется на временной копии, чтобы архив открывался без ключа: для\n  этого нужно, чтобы ядро профиля было установлено, а при неудаче экспорт\n  прерывается и файл не создаётся - лучше так, чем файл, который никто не\n  сможет открыть.\n\n## Что вы получаете\n\n| Возможность | |\n|---|---|\n| **Отпечатки настоящих устройств** | Подмена на уровне ядра, согласованная между Canvas / WebGL / WebGPU / шрифтами / аудио / часовым поясом |\n| **Android-профили** | `deviceType: 'android'` превращает профиль в личность настоящего телефона - сенсор, мобильные client hints, мобильный GPU - на вашей настольной машине |\n| **Неограниченные локальные профили** | Бесплатно на любом тарифе - изолированные, устойчивые, без платы за профиль |\n| **Стандартный API Playwright** | `launch()` возвращает настоящие `BrowserContext` / `Page` - учить нечего |\n| **Самообновляющееся ядро** | Обнаруживает новые сборки ядра браузера и подтягивает их по запросу, либо проверяет и обновляет перед запуском |\n| **Встроенный MCP-сервер** | Управляйте им из Claude или любого MCP-агента без клеевого кода |\n| **Управляемые резидентские прокси** | Один `proxyId` - исходящий IP, часовой пояс и гео согласованы между собой |\n| **Аутентифицированные HTTP/SOCKS5** | Учётные данные обрабатываются в движке (`407` / RFC 1929) - никакого расширения для авторизации прокси, которое можно перечислить |\n| **Live View** | Трансляция запущенной сессии в вашу панель управления в реальном времени |\n| **Облачная синхронизация профилей** | Переносите профиль (личность + состояние) между машинами |\n| **Параллелизм по тарифу** | Ограничение на одновременные браузеры, применяемое ядром |\n\nУправляемые прокси, Live View и облачная синхронизация доступны на платных тарифах. Локальные профили и полноценный движок отпечатков бесплатны.\n\n## Параллелизм и тарифы\n\nЛокальные профили не ограничены на любом тарифе. Количество браузеров, которые вы запускаете **одновременно**, масштабируется по тарифу (это обеспечивает ядро):\n\n| Тариф | Локальные профили | Одновременные браузеры | Облачная синхронизация | Прокси |\n|------|:---:|:---:|:---:|:---:|\n| Free | без ограничений | 1 | нет | нет |\n| Basic | без ограничений | 5 | да | да |\n| Pro | без ограничений | 20 | да | да |\n| Team | без ограничений | 100 | да | да |\n\nСм. [antibrow.com/pricing](https://antibrow.com/ru/tseny).\n\n## Требования\n\n- Node.js >= 18\n- Windows x64, macOS (universal) или Linux x64 / arm64\n- `playwright-core` (peer-зависимость)\n\n## Ссылки\n\n- Документация - [antibrow.com/docs/sdk](https://antibrow.com/ru/dokumentatsiya/sdk)\n- Панель управления / API-ключ - [antibrow.com](https://antibrow.com/ru)\n- Тарифы - [antibrow.com/pricing](https://antibrow.com/ru/tseny)\n\n## Лицензия\n\nMIT\n","readmeFilename":"README.ru.md"}