{"_id":"wreq-js","_rev":"27-06aaf5c87531de3e7fa7f636b6b8ec35","name":"wreq-js","dist-tags":{"latest":"3.2.0"},"versions":{"0.1.0":{"name":"wreq-js","version":"0.1.0","keywords":["browser","fingerprint","bypass","anti-bot","tls","http2","impersonation","web-scraping","crawler","web-scraper","wreq","ja3","tls-fingerprint","ja4","browser-fingerprint-bypass"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@0.1.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"cee0413f312b23c3cb9dd3246862c38b259339f9","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-0.1.0.tgz","fileCount":28,"integrity":"sha512-tW0luZPAbHf8UeLEE+hgL8mk7dPcuux/B7XYj33FyOavKO7YXw6ra/eN2VNBpemSLDRK+eIBnFL2Dn9EV/9cgg==","signatures":[{"sig":"MEUCICuNADng+ZC/pu9Zcmde8TQnkDqlCwAo2dAZqKeivh6+AiEA+nu8a3SCQR4G6vW5LW+VppLKM1blGPOkZLcWdMlYd5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35170522},"main":"dist/wreq-js.js","napi":{"name":"wreq-js","triples":{"defaults":true,"additional":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-pc-windows-msvc"]}},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"b44f7c0388cba9f88fbfadcd23f839d7433acde1","scripts":{"test":"npm run build && node --test dist/test/http.spec.js dist/test/websocket.spec.js","build":"npm run build:rust && npm run build:ts","clean":"rimraf dist rust/target rust/*.node","format":"prettier --write \"src/**/*.{ts,js,json,md}\"","build:ts":"npm run clean:dist && tsc","artifacts":"napi artifacts","build:rust":"napi build --platform --release --cargo-cwd rust rust","clean:dist":"rimraf dist","format:check":"prettier --check \"src/**/*.{ts,js,json,md}\""},"_npmUser":{"name":"provincialsilver","email":"herasymov7@icloud.com"},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.2","description":"Browser fingerprint bypass library using Rust for TLS/HTTP2 impersonation","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.0.1","prettier":"^3.2.5","typescript":"^5.0.0","@types/node":"^20.0.0","@napi-rs/cli":"^2.18.0"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_0.1.0_1762545657488_0.2561255055788225","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"wreq-js","version":"0.2.0","keywords":["browser","fingerprint","bypass","anti-bot","tls","http2","impersonation","web-scraping","crawler","web-scraper","wreq","ja3","tls-fingerprint","ja4","browser-fingerprint-bypass"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@0.2.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"8d0e0843e0bfe26d41bfdd4c580015e879579602","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-0.2.0.tgz","fileCount":28,"integrity":"sha512-GENkR9ioa4FvMwaClJf+UXQ7czaOk99E3I+rM5Mkj5KdMU9UshIvv30NSEZ4v7Am9BHQPyYyxfd8MLD0DckCIA==","signatures":[{"sig":"MEUCIQCgmvdZdnlZDNeLBVAwsaI4zjxpi+RNIZpRnO7U82wvnAIget9wQergaBRckSvR/sE0tZNKYPxyu+Kcug24V/HBtec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35329487},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"f98aedd8eccf549391882f9373d028c7eed3d989","scripts":{"test":"npm run build && node --test dist/test/http.spec.js dist/test/websocket.spec.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.2","description":"Browser fingerprint bypass library using Rust for TLS/HTTP2 impersonation","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_0.2.0_1762613251897_0.6873988442307077","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"wreq-js","version":"1.0.0","keywords":["browser","fingerprint","bypass","anti-bot","tls","http2","impersonation","web-scraping","crawler","web-scraper","wreq","ja3","tls-fingerprint","ja4","browser-fingerprint-bypass"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.0.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"ce61f39a0436365e8576c81885a0e5b061d0723d","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.0.0.tgz","fileCount":36,"integrity":"sha512-Bhcwn3Bhopk35w9JmqRD3/Pa8a12jBaPeJ/BLHtC2vYAEyf4QE9FEjYdJyc/gxkbNR+O9yREHzEdKnWCbSX3Nw==","signatures":[{"sig":"MEYCIQDIZK8vX+WCZscEG+Az6vQvyvx25gReAvlLGDNjVlhnbwIhANloDM2bDCGsUacZhR0U1MECZ8NFVcSbulw89eWwzIU/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36348018},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"122774a1239dce2a5cbf90026146816a324a1fcd","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.2","description":"Browser fingerprint bypass library using Rust for TLS/HTTP2 impersonation","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.0.0_1762715768288_0.47127377805228","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"wreq-js","version":"1.1.0","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.1.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"7dfda6a454f94c1045b54653568c3edfb7c66ee1","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.1.0.tgz","fileCount":36,"integrity":"sha512-ZDW1flpo75Cum1YJIjnnx+N582W2po4yHk/IncNkwH24sjn4G6VcuJAc56saCB1vssyfKrcQ570zNhW/a7b6mA==","signatures":[{"sig":"MEYCIQDj+z/sB0b/+PEg8V4dgu59GFZYU6NWozdY4yzdDfa+vwIhAK+lwef4maSnc5XwA2rpeXwpEeojtEMa5B4TN36VOduM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36600018},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"7604b022c6c864db6aa426228891710bc689c724","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.1.0_1762800432890_0.2838862896081591","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"wreq-js","version":"1.1.1","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.1.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"899d9b90b4f3dbf897fe00de7bb6732c62c4e692","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.1.1.tgz","fileCount":36,"integrity":"sha512-HnuXP0Wx4FrhGyO4LYa1jG5Tig+2+ILEoME1P31VPvpWi3kyIrRjWRrw5MVubxevTR4W4fZ1ANUS1GoJUK1X4A==","signatures":[{"sig":"MEUCIQDdMwjnbieiI7kk+PR2Mu4A/l78QEiF/W+ZBVnEsFVOCwIgb0+oj1xSMqFs4pcSeLRK5KQudDXbhnY3UIi1T9gcpGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":36792644},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"fdc116bc621b7ed4c1b90482ef4f21a0cdfd98fd","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.2","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.1.1_1762803970694_0.26132231269109085","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"wreq-js","version":"1.2.0","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.2.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"8db571d1f7f48f2b4316428fa39ac9ebf26d68e7","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.2.0.tgz","fileCount":58,"integrity":"sha512-x2R70IzGQcbNJSmOeSuL/iLbrra2Nzgz1rpUo1jJogtHmOmGo17KIGeKgYqoW/AxxJjawxSUzQjaXdPbzHxtxg==","signatures":[{"sig":"MEYCIQDeaCHr+RukVpl2eAMX2rql3VcDdi6l5qJiF8Q+YPkLCAIhAJku/PvFM8smYgZMY8dd1NpGMqie4uyDU5ik4Kd/tKKp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51237539},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"0c7118d0f1c6f6d8f918aca5ebf5db5c83d04a05","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:report":"c8 report --reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.4","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.2.0_1764103350350_0.01136520164579724","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"wreq-js","version":"1.3.0","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.3.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"3e2dd071149f95de047b217faa7d13df0a0513e9","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.3.0.tgz","fileCount":61,"integrity":"sha512-XCCfC0C3piiSGlw1eWItyXPvwxaSJCH3fca7RGEwka92yAasDyPFhlneOYSXwb1mJEbIL7/7aJiISNI3aKYzwQ==","signatures":[{"sig":"MEQCIHdcP4tEJQj6M/yTv81z3BuIvG7W1in1XJkiasGluohRAiBm5eme2nHWWtMxsgclP0WwrAxs9p6FTcWFlU/uhgyFiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44066749},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"7d92d24cabe0361573ae8636d87f1473988fb2ac","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:report":"c8 report --reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.6.4","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","rimraf":"^6.1.0","typescript":"^5.0.0","@types/node":"^24.10.0","@napi-rs/cli":"^3.4.1","@biomejs/biome":"^2.3.4"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.3.0_1764241446570_0.631375098816642","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"wreq-js","version":"1.4.0","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.4.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"8934609d4c973558af3f9a6b80913abc2009363a","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.4.0.tgz","fileCount":61,"integrity":"sha512-xF37I12V5AA+4bCol3lQrF3+pMlt/gZ+aMWBgZOC7OcC9GQZvBhLdDqcN0FTr8isXc0qqbHRNTnDhpvKV3C5kQ==","signatures":[{"sig":"MEQCIExUUJQaN3R8sjtD2wenWEf2FYd3gXyIYKo0hoRph9tFAiBzNmDq8HMsmu4H9Fey/wJiSOHt1ExH556dXWT/K/eJeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42743089},"main":"dist/wreq-js.js","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"types":"dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.js"}},"gitHead":"3f259495e268773bc87d4b0760ffd46719d19f9c","scripts":{"test":"npm run build && node dist/test/run-with-local-server.js","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","build:ts":"npm run clean:dist && tsc","ci:biome":"biome ci .","artifacts":"napi artifacts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov node dist/test/run-with-local-server.js","test:coverage:report":"c8 report --reporter=text"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.2","@napi-rs/cli":"^3.5.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.4.0_1765549446006_0.05284806400893838","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"wreq-js","version":"1.5.1","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.5.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"7aa0c741b5dcbfa133c3cc96c3e0c96c5bf3bb51","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.5.1.tgz","fileCount":15,"integrity":"sha512-6PsjJkcTxMCCyeNil9QkYheOcLRYQ3pnj0QBW0UtbXa/5p1jAQmlZk4W/g6douW2XsOXfUzMgwSmlDi3RHecPg==","signatures":[{"sig":"MEQCIEfzOkRwCgQy7s20ZBaxaiPkijDh2EDIPCnwAdok5K4mAiBV19W8zJwGAQES1Thodd+BwrO8hXAAsSMq1oKu6fhJyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42490389},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"5ccf00da805d43022746cf8ccebe3f95644301d5","scripts":{"test":"npm run build && tsx src/test/run-with-local-server.ts","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov tsx src/test/run-with-local-server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.253","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.4","@napi-rs/cli":"^3.5.0","@biomejs/biome":"^2.3.10"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.5.1_1766508638263_0.7286991666629674","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"wreq-js","version":"1.5.2","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.5.2","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"8bd7f1e23a0ca3a7e52afe250f1c11c72d8dbb9a","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.5.2.tgz","fileCount":15,"integrity":"sha512-UGQhpMJ9q8BBDmLPuuclM3+jjm7ru+GQzRST4aVzFr7yyzKTYixNQY6JkMLdlFxirOkBfvYi1lsRu08kRy3l4g==","signatures":[{"sig":"MEQCIH+6AxQnXC7HmMd5UzvUqZFH7rAoZyMEfIu8Kk/XVq5/AiBGZsnCyh0MfQmwQNRu6W9YJR6Oxfhqw4yv/hJ0RaYGDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42616189},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"cf97383dbea86f771332d97d4572ae671b860a67","scripts":{"test":"npm run build && tsx src/test/run-with-local-server.ts","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov tsx src/test/run-with-local-server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.253","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.4","@napi-rs/cli":"^3.5.0","@biomejs/biome":"^2.3.10"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.5.2_1766779807190_0.7024437763419804","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"wreq-js","version":"1.6.0","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.6.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"49eb7d64f5460a69ef09bc8c39b1f60b05a411ff","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.6.0.tgz","fileCount":15,"integrity":"sha512-/yslBrUdPGkK3qqOq41xe52yRLNb982S4nIJbSNUDBBrFahUB1lMZCk4J+nTrfvZKQpKNkUL+58/iQ7IUCnuog==","signatures":[{"sig":"MEQCIB7V8nek2kLF/j77qTUi2V0C9U8X5eZSsDwH0kfuDJ5MAiAeBHakAo4Fe4fkn5cS7TYlS0ZYE1tXZD9ZP6lxywRdzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43500765},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"9cd671150e5ee87db42cdd73405ebd1041f674a0","scripts":{"test":"npm run build && tsx src/test/run-with-local-server.ts","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov tsx src/test/run-with-local-server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.255","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.4","@napi-rs/cli":"^3.5.0","@biomejs/biome":"^2.3.10"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.6.0_1767094894369_0.9385110164638997","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"wreq-js","version":"1.6.1","keywords":["browser-emulation","fingerprint","tls","http2","impersonation","web-scraping","web-scraper","crawler","fetch","http-client","rust","neon","native-addon","ja3","ja4","tls-fingerprint","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.6.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/sqdshguy/wreq-js#readme","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"a231b40edda9c7fd01386edaca24166c68ee88e5","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.6.1.tgz","fileCount":15,"integrity":"sha512-G6DZz2lfLInroglcfnzAaPdK+TR5AvoD2ggHxMRdM+xSr3wVjOZqX3hv+1Jp8Y7+wRxRVG89Us2DA+tj0C3KnQ==","signatures":[{"sig":"MEYCIQD1Ocjly+Pw0TzSynDJPCVHiiL2lkOKq7vZPriDV91W1wIhAJgDylaRrrgr6i1T41SGgFSp8m0z4n28kB/bjjx0eY4N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45887673},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"6c0ee9223da5ade5b7ca2eff5937b1f8933cf67f","scripts":{"test":"npm run build && tsx src/test/run-with-local-server.ts","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run build && c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","test:coverage:ci":"npm run build && c8 --reporter=text-summary --reporter=lcov tsx src/test/run-with-local-server.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance HTTP client for Node.JS with real-browser TLS and HTTP/2 fingerprints, powered by Rust","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.257","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.4","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.6.1_1767866296708_0.3343089620823827","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"wreq-js","version":"1.7.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@1.7.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"55da4d2f472135fea566391f8b9e1bdde1beaecb","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-1.7.0.tgz","fileCount":15,"integrity":"sha512-gxkFfJ+11B6Qkm0T/rhH8fpe5ff+bpfT6LIUYUnnO71Kxvmi2Mk5aTOjg84q73CJloxPax5OR5zz9ZTCuqKe1g==","signatures":[{"sig":"MEUCIQCHb8Cr4ZAQJ1wCQMavZBVxVgwDvhdGP806FdE8t01DgwIgDriZO/UsLEZrfPCAwHKaMYh49Dq88GajHlqyHEys/58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45913904},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"1cb8a30cb9192ff09abf20d24f91636f7ce4b602","scripts":{"test":"npm run test:run","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.9.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.326","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.11","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.3.14"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_1.7.0_1770581004350_0.013081518500483558","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"wreq-js","version":"2.0.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.0.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"3de81c1d110e2175431b48a6f517dde4f247183c","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.0.0.tgz","fileCount":15,"integrity":"sha512-8uNi1JxqapiQEhNije6pX+z2G4wAes2Y5e4x8f6/qKie6efETFKVwOLFpx+vWnwRMflh4QEG+8/baBwUBXaxgg==","signatures":[{"sig":"MEUCIQCDBTmTJeoFL+S2KQATsdekDCaHzk0TIvIqsBM4BQOKyQIgZQ2JV4wtBLiCKaII2D8RPqHIPK+vUGq4EF1zA+e5ipo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46341700},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"6f097f15196cdbec344ba8169f96b3cd547465a6","scripts":{"test":"npm run test:run","bench":"npm run build:rust && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.9.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.326","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.11","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.3.14","@typescript/native-preview":"^7.0.0-dev.20260209.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.0.0_1770735624933_0.5874135860867833","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"wreq-js","version":"2.0.1","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.0.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"514ca10d2f8ffd6de1684bf511863d36b3621be3","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.0.1.tgz","fileCount":15,"integrity":"sha512-7GcZpzVtRX/A5pqu2QXTcqKTiYJZZRIRiosJ94GT1+taQivysZmjvkwzk8IvLz1oE1P1rGWG8ujDLCYxusM1aQ==","signatures":[{"sig":"MEQCID9I4MFT0QrOztYdak7DEzeWliF4yjqlq4T34Gx0YC0IAiAYFLLAE7FaR3Zht45rODTC/2YZBx8r2yIirHrHd/5e/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46344786},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"7d6d638f0204f8410ab33b23faf7b628a7d96b11","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.9.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.13.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.326","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.2","typescript":"^5.9.3","@types/node":"^24.10.11","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.3.14","@typescript/native-preview":"^7.0.0-dev.20260209.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.0.1_1770740908497_0.14100180886115776","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"wreq-js","version":"2.1.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.1.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"ff47a9c57d1638e6cd054f67339a61710ebfe80b","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.1.0.tgz","fileCount":15,"integrity":"sha512-McZm7i/ZS/VIDPPoYq6QKGC1VPRPQQr2FDpxmLKMA5dduVZftMCDePazc7RAUt7xLk4zVbD4l3eSprcQlzfo1Q==","signatures":[{"sig":"MEUCIQC6C3Qinpz1UrY32LYO99eN/vVhjhafvjkX59nh9Vz3EgIgUETSYuz+n9YeNlwZA0M6CyEeATYAHrUBGzHVi2wHsMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46584945},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"cc24967957998151e0dc94cc3cf98d58a68875ab","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.367","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.3","typescript":"^5.9.3","@types/node":"^24.10.13","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.4.3","@typescript/native-preview":"^7.0.0-dev.20260219.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.1.0_1772392441299_0.41636396518849117","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"wreq-js","version":"2.1.1","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.1.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"c554d5257bfdeb79530bd305c792687a2b7c6104","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.1.1.tgz","fileCount":15,"integrity":"sha512-nJBOMBTczqcyHpF8a8YdPyxb30htK2RxuAfr6O8a6oyKHj2nRPjXbZcGXrquIdZx1b+6NV/GHweD3OqWwE7n4A==","signatures":[{"sig":"MEUCIGmdDWO4+Zsxb0DDzvhrZ/zH+GO0AwFx3J3jwIioMIyOAiEApwgl8K5H3ONp22X4Ni8i2Z+uWujrL2VopJTMaNNJqRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46586679},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"afa868367679f5f65fbf2a6f67a8d0962bcaccac","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.11.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.389","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.3","typescript":"^5.9.3","@types/node":"^24.10.15","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.4.4","@typescript/native-preview":"^7.0.0-dev.20260226.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.1.1_1772459870713_0.7795533706083004","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"wreq-js","version":"2.2.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.2.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"1a0ecb010824ff0bbb6c708a5872a57175330225","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.2.0.tgz","fileCount":15,"integrity":"sha512-lXW1/bvdPTpFMdfBftkJIp6OzxkAqAON4dlrKrmaFNT86eu60VCEVmEdK3nWY1ZyiEZ6IXQPRrc1uXG394BoBA==","signatures":[{"sig":"MEUCIQD3wjqhkzaYACufX0Mbfhw9G5rH/DMtcXzqBbEUc7FUYgIgZPF4CHzo2g5AaJexgDV3990mLK2FkeXu0jSY6Yx4EDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47864368},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"0a3f1d823f2a6661511f6337f1aff02149af13b1","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.11.1","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","tsx":"^4.21.0","mint":"^4.2.408","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.3","typescript":"^5.9.3","@types/node":"^24.11.2","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.4.6","@typescript/native-preview":"^7.0.0-dev.20260305.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.2.0_1773483430025_0.4044868509006774","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"wreq-js","version":"2.2.1","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.2.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"8ab251f8dd33a11ddcf01f8e4e82ddc380ec9a20","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.2.1.tgz","fileCount":15,"integrity":"sha512-hYmP87+YU7snsTHHy5UyV3QL5VVabaEMRspoZsah9ScCjbpgRWeY5ZxM3qEONsSCJTSPdVwOTWzUmbNxZGI5sg==","signatures":[{"sig":"MEQCIH5eL7pXRwaEvVu5IHVVm8yv/Y4K/tzElOlQAA1xroWaAiAlKi1ZYKsFgRpEpnX03B7X+1rpppEEAYgDMFSn54Tlrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47866639},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"f7502165673a37649bafd8fcc9610d08dcb74d48","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.11.1","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","mint":"^4.2.408","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.3","typescript":"^5.9.3","@types/node":"^24.11.2","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.4.6","@typescript/native-preview":"^7.0.0-dev.20260305.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.2.1_1773850598205_0.5504231581111254","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"wreq-js","version":"2.2.2","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.2.2","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"46f25e2e00cb02afe94ac2de0c412e447ad14882","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.2.2.tgz","fileCount":15,"integrity":"sha512-iNcPyvVg14nWtHMzN595GDH1ELB1CDfVUV4s+AfSrP2go01/LYVBCkx4AdyMNAup4myQEiNBBmRI2Co2MKsFPQ==","signatures":[{"sig":"MEQCIELScubqzoKxi7VbqDiOW2o5risubFnoqMAYlteO927fAiBpdrOZdW0fPMaNwMdngFJbL2PIMglhvn3po+yFWnopag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47872219},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"5a70678b0a957a928dce24444c4327ede3d6a3c8","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsup","ci:biome":"biome ci .","docs:dev":"cd docs && mint dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.12.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","mint":"^4.2.408","tsup":"^8.5.1","husky":"^9.1.7","rimraf":"^6.1.3","typescript":"^5.9.3","@types/node":"^24.11.2","@napi-rs/cli":"^3.5.1","@biomejs/biome":"^2.4.6","@typescript/native-preview":"^7.0.0-dev.20260305.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.2.2_1773918491984_0.9691630318238467","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"wreq-js","version":"2.3.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.3.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"b98b22c129ca988b7304af25091ff4e0a7cc128b","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.3.0.tgz","fileCount":14,"integrity":"sha512-jROBpTUhVH40qG+cAvBhdduKPGDSx55jK1dIDmVuu29sux9i8KY0u0wb5tHkMzXKDy9hrfHP+bpvaSq25rGwEA==","signatures":[{"sig":"MEQCIAOHD29EMYjZJx5tmR7xP1PkLz/mEHDk9FOeWW4mR7toAiBmHfw9VGaAj2chQPulU1ocw+FpjKnpwLcy+ZJ6+trywQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48174478},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"f743efe87d8c88161e176433f0b796a2daa5519d","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsdown","ci:biome":"biome ci .","docs:dev":"npm --prefix docs run dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","docs:install":"npm --prefix docs install","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.12.1","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.21.0","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.21.8","typescript":"^6.0.2","@types/node":"^24.12.2","@napi-rs/cli":"^3.6.1","@biomejs/biome":"^2.4.11","@typescript/native-preview":"^7.0.0-dev.20260409.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.3.0_1776178236863_0.1190852213211191","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"wreq-js","version":"2.3.1","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@2.3.1","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"f4a2243acf0edd037625c77397a91457a92d2fd9","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-2.3.1.tgz","fileCount":15,"integrity":"sha512-vaKasaKeskrDKEuuO5Q5uamEG9a6FrF5ZSicH7TCvYS4RxF7/gzaU/vYqwJzcs+uydyJPVWY1KCvfVCgp0tiGA==","signatures":[{"sig":"MEUCICrkMH4ttVj0YmiM0np3B23RVP/jMJRKfnzHu0XyAUpDAiEAv5KmyvY2nAvkzpLBi6La0NOi8tjPSMuySN6JNETi9As=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":56548157},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"57db58a23de876299143a2d1febb59ea0317cf63","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsdown","ci:biome":"biome ci .","docs:dev":"npm --prefix docs run dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","docs:install":"npm --prefix docs install","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"11.14.1","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.22.0","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.0","typescript":"^6.0.3","@types/node":"^24.12.4","@napi-rs/cli":"^3.6.2","@biomejs/biome":"^2.4.15","@typescript/native-preview":"^7.0.0-dev.20260515.1"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.3.1_1779268419972_0.12391154315846165","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"wreq-js","version":"3.0.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@3.0.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"450e0bf32a7a9b9c2df145e93a3f9b1f5facfa88","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-3.0.0.tgz","fileCount":15,"integrity":"sha512-RZCoRSevVPpH4A4B4MxbFGo/pVPFveWd2gbe4ENKpPWlKXEYklZSDESOjBMmrIsmnkHh+nhM4PNJvG+NL7wBPA==","signatures":[{"sig":"MEYCIQDEDGCLXGqRxr6CWMQoVYX9+PJtyFEMp0WCZaz1A4OZTwIhAI0yO2gcctM7NN2RkWwIHnm9BV5qdn8gc1+Cxq6LDg4k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59800018},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"08143870ba6acbda578b9e7bfe0608c6d77a797a","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsdown","ci:biome":"biome ci .","docs:dev":"npm --prefix docs run dev","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","docs:install":"npm --prefix docs install","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"12.0.2","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.1","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.8.1","@biomejs/biome":"^2.5.6","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_3.0.0_1786017431320_0.20859314523214167","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"wreq-js","version":"3.1.0","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","_id":"wreq-js@3.1.0","maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://wreq.sqdsh.win","bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"a980344ea1afe958d6ac5d865617c9a6a6b91d8b","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-3.1.0.tgz","fileCount":8,"integrity":"sha512-c+DF8s0kiCwTzXFwCNjBYJZMkodk2OukamoielaPegXWctrDth5tB1w0mszX7nysIJU4zge5q0RZUfoOfqH+uQ==","signatures":[{"sig":"MEYCIQDhG+9MkCttU2mf/gySjMriFK6ri0tl96TiwRsSqsjDCAIhAL3c+TxX+PbscLrLGrUtfs55BX3Ct/mDvAiW9JGt35n5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":662376},"main":"./dist/wreq-js.cjs","napi":{"targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-musl","x86_64-pc-windows-msvc"],"binaryName":"wreq-js","packageName":"@wreq-js/binding"},"type":"module","types":"./dist/wreq-js.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"bun":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js","require":"./dist/wreq-js.cjs"}},"gitHead":"f0590ce22a0b8b7361c939b166ceeeaaddd69e7d","scripts":{"test":"npm run test:run","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","build":"npm run build:rust && npm run build:ts","check":"biome check .","clean":"rimraf dist rust/target rust/*.node","prepare":"husky","build:ts":"tsdown","ci:biome":"biome ci .","docs:dev":"npm --prefix docs run dev","npm:dirs":"napi create-npm-dirs","test:run":"tsx src/test/run-with-local-server.ts","artifacts":"napi artifacts","bench:run":"tsx --expose-gc src/bench/run.ts","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","clean:dist":"rimraf dist","test:build":"npm run build && npm run test:run","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","npm:version":"napi version","docs:install":"npm --prefix docs install","test:coverage":"npm run test:coverage:run","typecheck:tsc":"tsc --noEmit -p tsconfig.json","prepublish:napi":"napi pre-publish --no-gh-release --skip-optional-publish","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","test:coverage:ci":"npm run build && npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"repository":{"url":"git+https://github.com/sqdshguy/wreq-js.git","type":"git"},"_npmVersion":"12.0.2","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.12","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.14","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.8.6","@biomejs/biome":"^2.5.8","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"optionalDependencies":{"@wreq-js/binding-darwin-x64":"3.1.0","@wreq-js/binding-darwin-arm64":"3.1.0","@wreq-js/binding-linux-x64-gnu":"3.1.0","@wreq-js/binding-linux-x64-musl":"3.1.0","@wreq-js/binding-win32-x64-msvc":"3.1.0","@wreq-js/binding-linux-arm64-gnu":"3.1.0","@wreq-js/binding-linux-arm64-musl":"3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_3.1.0_1787157756173_0.9997214225518325","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"wreq-js","version":"3.2.0","description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","type":"module","main":"./dist/wreq-js.cjs","types":"./dist/wreq-js.d.ts","exports":{".":{"types":"./dist/wreq-js.d.ts","bun":"./dist/wreq-js.cjs","require":"./dist/wreq-js.cjs","import":"./dist/wreq-js.js","default":"./dist/wreq-js.js"}},"scripts":{"build":"npm run build:rust && npm run build:ts","build:rust":"napi build --platform --release --manifest-path rust/Cargo.toml","build:ts":"tsdown","artifacts":"napi artifacts","npm:dirs":"napi create-npm-dirs","npm:version":"napi version","prepublish:napi":"napi pre-publish --no-gh-release --skip-optional-publish","test":"npm run test:run","test:run":"tsx src/test/run-with-local-server.ts","test:build":"npm run build && npm run test:run","test:coverage":"npm run test:coverage:run","test:coverage:run":"c8 --reporter=html --reporter=text --reporter=lcov tsx src/test/run-with-local-server.ts","test:coverage:ci":"npm run build && npm run test:coverage:run","build:bench-server":"cargo build --release --manifest-path rust/bench-server/Cargo.toml","bench":"npm run build:rust && npm run build:bench-server && tsx --expose-gc src/bench/run.ts","bench:run":"tsx --expose-gc src/bench/run.ts","bench:quick":"npm run build:rust && tsx --expose-gc src/bench/run.ts --scenario wreq.session.get.small","perf:aws:setup-iam":"bash ./scripts/aws-perf/setup-iam.sh","perf:aws:compare":"bash ./scripts/aws-perf/ec2-compare.sh","perf:aws:cleanup":"bash ./scripts/aws-perf/cleanup-stale.sh","check":"biome check .","check:fix":"biome check --write .","typecheck":"tsgo --noEmit -p tsconfig.json","typecheck:tsc":"tsc --noEmit -p tsconfig.json","clean":"rimraf dist rust/target rust/*.node","clean:dist":"rimraf dist","ci:biome":"biome ci .","docs:install":"npm --prefix docs install","docs:dev":"npm --prefix docs run dev","prepare":"husky"},"keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"contributors":[{"name":"will-work-for-meal"}],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/sqdshguy/wreq-js.git"},"bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"homepage":"https://wreq.sqdsh.win","devDependencies":{"@biomejs/biome":"^2.5.8","@napi-rs/cli":"^3.8.6","@types/node":"^24.13.3","@typescript/native-preview":"^7.0.0-dev.20260707.2","c8":"^11.0.0","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.14","tsx":"^4.23.12","typescript":"^6.0.3"},"engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"optionalDependencies":{"@wreq-js/binding-darwin-x64":"3.2.0","@wreq-js/binding-darwin-arm64":"3.2.0","@wreq-js/binding-linux-x64-gnu":"3.2.0","@wreq-js/binding-linux-arm64-gnu":"3.2.0","@wreq-js/binding-linux-x64-musl":"3.2.0","@wreq-js/binding-linux-arm64-musl":"3.2.0","@wreq-js/binding-win32-x64-msvc":"3.2.0","@wreq-js/binding-win32-arm64-msvc":"3.2.0","@wreq-js/binding-android-arm64":"3.2.0"},"napi":{"binaryName":"wreq-js","packageName":"@wreq-js/binding","targets":["x86_64-apple-darwin","aarch64-apple-darwin","x86_64-unknown-linux-gnu","aarch64-unknown-linux-gnu","x86_64-unknown-linux-musl","aarch64-unknown-linux-musl","x86_64-pc-windows-msvc","aarch64-pc-windows-msvc","aarch64-linux-android"]},"gitHead":"0d52d5fa252841aeef34d4d063b1766a59612bf7","_id":"wreq-js@3.2.0","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-dawhEbhvd5hxivKZSvv/mAQGO3mwZYESyctOvIIZ/H3DvQJzUM2UoFQsij0fg7hIClQ/GEQgg+2259UcFwhpMQ==","shasum":"57f45adfcf63bc0465ff706f62b0e0d69068c842","tarball":"https://registry.npmjs.org/wreq-js/-/wreq-js-3.2.0.tgz","fileCount":8,"unpackedSize":663922,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/wreq-js@3.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8Js2y0jd8H/sAI5VQg1yLYdZpIrTw8A4oNF/nILko0AIhAKE6woItcCuGoLpvKJ8IN3U5TcKpf5tJvcCPjRbIQuA6"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8a9e467a-18c6-4dd5-8e9f-0ebce44562c6"}},"directories":{},"maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wreq-js_3.2.0_1787500727348_0.0719550542685059"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-07T20:00:57.371Z","modified":"2026-08-23T15:58:47.771Z","0.1.0":"2025-11-07T20:00:57.905Z","0.2.0":"2025-11-08T14:47:32.289Z","1.0.0":"2025-11-09T19:16:08.655Z","1.1.0":"2025-11-10T18:47:13.332Z","1.1.1":"2025-11-10T19:46:11.158Z","1.2.0":"2025-11-25T20:42:30.854Z","1.3.0":"2025-11-27T11:04:06.963Z","1.4.0":"2025-12-12T14:24:06.631Z","1.5.0":"2025-12-23T15:59:53.615Z","1.5.1":"2025-12-23T16:50:38.906Z","1.5.2":"2025-12-26T20:10:07.836Z","1.6.0":"2025-12-30T11:41:35.017Z","1.6.1":"2026-01-08T09:58:17.417Z","1.7.0":"2026-02-08T20:03:24.979Z","2.0.0":"2026-02-10T15:00:25.657Z","2.0.1":"2026-02-10T16:28:29.188Z","2.1.0":"2026-03-01T19:14:02.167Z","2.1.1":"2026-03-02T13:57:51.394Z","2.2.0":"2026-03-14T10:17:10.676Z","2.2.1":"2026-03-18T16:16:38.851Z","2.2.2":"2026-03-19T11:08:12.622Z","2.3.0":"2026-04-14T14:50:37.566Z","2.3.1":"2026-05-20T09:13:40.492Z","3.0.0":"2026-08-06T11:57:11.802Z","3.1.0":"2026-08-19T16:42:36.398Z","3.2.0":"2026-08-23T15:58:47.478Z"},"bugs":{"url":"https://github.com/sqdshguy/wreq-js/issues"},"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","homepage":"https://wreq.sqdsh.win","keywords":["cloudflare","cloudflare-bypass","anti-bot","bypass","tls-fingerprint","browser-fingerprint","ja3","ja4","impersonation","browser-emulation","tls","http2","fetch","http-client","web-scraping","web-scraper","crawler","typescript","nodejs","rust","wreq","browser"],"repository":{"type":"git","url":"git+https://github.com/sqdshguy/wreq-js.git"},"description":"Node.js/TypeScript HTTP client with browser TLS fingerprint impersonation (JA3/JA4). Bypass Cloudflare and anti-bot detection. Rust-powered, fetch()-compatible.","contributors":[{"name":"will-work-for-meal"}],"maintainers":[{"name":"provincialsilver","email":"herasymov7@icloud.com"}],"readme":"# wreq-js\n\n[![npm](https://img.shields.io/npm/v/wreq-js.svg)](https://www.npmjs.com/package/wreq-js)\n[![downloads](https://img.shields.io/npm/dm/wreq-js.svg)](https://www.npmjs.com/package/wreq-js)\n[![CI](https://github.com/sqdshguy/wreq-js/actions/workflows/test.yml/badge.svg)](https://github.com/sqdshguy/wreq-js/actions/workflows/test.yml)\n[![node](https://img.shields.io/node/v/wreq-js.svg)](https://www.npmjs.com/package/wreq-js)\n[![license](https://img.shields.io/npm/l/wreq-js.svg)](./LICENSE)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/sqdshguy/wreq-js)\n\n`wreq-js` is an HTTP client for Node.js and TypeScript that makes your requests look like they came from a real browser, all the way down to the TLS handshake. It is built on native Rust bindings to [wreq](https://github.com/0x676e67/wreq), which uses BoringSSL under the hood.\n\nIf your code works in the browser but gets a 403 from Node, the usual reason is that your network fingerprint gives you away. Services like Cloudflare, DataDome, Akamai and PerimeterX look at your JA3 and JA4 TLS fingerprints and your HTTP/2 SETTINGS frame, and no amount of setting a `User-Agent` header will fix a mismatch there. Node's `tls` module does not expose the knobs you would need. This library does it at the native layer, so you get Cloudflare bypass and DataDome bypass behaviour at the transport level while keeping a normal `fetch` style API.\n\nIt stops at the transport layer. It does not run JavaScript, solve CAPTCHAs or handle behavioural analysis, so Turnstile, Akamai sensor data and Kasada need something like Playwright instead. If a target serves an interstitial that requires script execution, no TLS-level client gets past it, this one included.\n\n```ts\nimport { fetch } from 'wreq-js';\n\nconst res = await fetch('https://example.com/api', {\n  browser: 'chrome_149',\n  os: 'windows',\n});\n\nconsole.log(await res.json());\n```\n\n## Install\n\n```bash\nnpm install wreq-js\n# or: yarn add wreq-js / pnpm add wreq-js / bun add wreq-js\n```\n\nPrebuilt native binaries ship for macOS (Intel and Apple Silicon), Linux (x64 and arm64, glibc and musl), Windows (x64 and arm64), and Android arm64 under Termux. Each one lives in its own `@wreq-js/binding-*` package listed under `optionalDependencies`, so an install downloads only the addon your platform actually loads. Platforms outside that list are not supported; build from source with a Rust toolchain instead (see [docs/BUILD.md](docs/BUILD.md)).\n\nNode.js 20 or newer.\n\n## Features\n\n- Browser TLS and HTTP fingerprint profiles for Chrome, Firefox, Safari, Edge, Opera and OkHttp, currently up to Chrome 149 and Firefox 151\n- JA3, JA4 and Akamai HTTP/2 fingerprints that match what the real browser sends, verified against live capture (see [Alternatives](#alternatives))\n- Native Rust engine running in-process, no subprocess and no browser\n- `fetch` style API, plus sessions with a persistent cookie jar\n- WebSockets, both a one-await helper and a WHATWG style constructor, able to reuse session cookies and transport settings\n- Streaming request and response bodies with backpressure\n- Proxy support including SOCKS, per-request transport overrides, and connection pool tuning\n- Custom emulation if a preset gets you close but not all the way, with control over cipher order, extensions, ALPN, ALPS, GREASE, HTTP/2 SETTINGS and pseudo-header order\n- Written in TypeScript with generated definitions\n\n## Alternatives\n\nMeasured 2026-08-06 on an M-series Mac. \"H2 correct\" means the Akamai HTTP/2 fingerprint is byte identical to what real Chrome sends. Throughput is 300 sequential requests against a local server, so it reflects the JavaScript to native boundary rather than the network. Reproduce with `npm run bench`.\n\n| Library | Engine | Newest Chrome | H2 correct | req/s | Cold start |\n|---|---|---|---|---|---|\n| **wreq-js** | Rust `wreq` + BoringSSL, in-process | **149** | **Yes** | **12842** | **7 ms** |\n| [node-wreq](https://github.com/StopMakingThatBigFace/node-wreq) | Same Rust core | 149 | Yes | 6500 | 10 ms |\n| [impers](https://github.com/lexiforest/impers) | curl-impersonate, in-process | 146 | Yes | 8439 | 16 ms |\n| [impit](https://github.com/apify/impit) | Rust `reqwest` + patched `rustls` | 124 | **No** ([#385](https://github.com/apify/impit/issues/385)) | 6710 | 37 ms |\n| [node-tls-client](https://github.com/Sahil1337/node-tls-client) | Go shared library over FFI | 131 | Yes | not tested | downloads its native library at runtime |\n| [CycleTLS](https://github.com/Danny-Dasilva/CycleTLS) | Go subprocess with IPC | not tested | not tested | not tested | per-request IPC overhead |\n| [got-scraping](https://github.com/apify/got-scraping) | Pure JS, headers only | n/a | no TLS control | n/a | end of life |\n\nimpit's HTTP/2 SETTINGS are its underlying Rust HTTP library's defaults rather than Chrome's, so it omits `HEADER_TABLE_SIZE` and sends a `MAX_FRAME_SIZE` that Chrome never sends. Anything hashing that frame sees a client claiming to be Chrome while speaking HTTP/2 like a Rust program.\n\nIf you are migrating off `got-scraping`, note that it only ever rewrote headers. It never touched the TLS handshake, so anything that was blocking you on JA3 or JA4 was never something it could fix.\n\n## Use sessions\n\nA session keeps the connection pool and the TLS session cache alive across requests. Standalone `fetch()` opens a new connection every call, so you pay a full TLS handshake each time: roughly 53 ms against a typical host versus 15 ms on a session. Cookies persist too. Use a session for anything past a single request.\n\n```ts\nimport { createSession } from 'wreq-js';\n\nconst session = await createSession({ browser: 'chrome_149', os: 'windows' });\n\ntry {\n  await session.fetch('https://example.com/login', {\n    method: 'POST',\n    body: new URLSearchParams({ user: 'name', pass: 'secret' }),\n  });\n\n  const profile = await session.fetch('https://example.com/profile');\n  console.log(await profile.json());\n} finally {\n  await session.close();\n}\n```\n\n`withSession` does the cleanup for you:\n\n```ts\nimport { withSession } from 'wreq-js';\n\nconst data = await withSession(async (session) => {\n  const res = await session.fetch('https://example.com/api');\n  return res.json();\n}, { browser: 'chrome_149' });\n```\n\nIf you want pooled connections without a shared cookie jar, use a transport instead:\n\n```ts\nimport { createTransport, fetch } from 'wreq-js';\n\nconst transport = await createTransport({\n  browser: 'chrome_149',\n  proxy: 'http://user:pass@proxy.example.com:8080',\n  poolMaxIdlePerHost: 8,\n});\n\nconst res = await fetch('https://example.com', { transport });\n```\n\n## Proxies\n\nPass a proxy per request, or set one on the session or transport so it applies to everything.\n\n```ts\nconst res = await fetch('https://example.com', {\n  browser: 'chrome_149',\n  proxy: 'http://user:pass@proxy.example.com:8080',\n});\n```\n\n`socks5://` and `socks5h://` work as well. Inside a session the `proxy` field is session-scoped, so to override it for one call, pass a `transport` on that specific `session.fetch(...)`.\n\n## Streaming\n\nResponse bodies stream, so you can process large downloads without buffering them.\n\n```ts\nconst res = await fetch('https://example.com/large.json', { browser: 'chrome_149' });\n\nfor await (const chunk of res.body) {\n  process.stdout.write(`got ${chunk.length} bytes\\n`);\n}\n```\n\nSet `compress: false` if you want the raw compressed bytes and the `Content-Encoding` header left intact, which is what you want when you are proxying the response onward.\n\n## WebSockets\n\nOne await gets you a connected socket:\n\n```ts\nimport { websocket } from 'wreq-js';\n\nconst ws = await websocket('wss://example.com/ws', {\n  browser: 'chrome_149',\n  headers: { Authorization: 'Bearer token' },\n});\n\nws.onmessage = (event) => console.log(event.data);\nws.send('hello');\nws.close(1000, 'done');\n```\n\nOr use the constructor if you want browser-like `CONNECTING` behaviour:\n\n```ts\nimport { WebSocket } from 'wreq-js';\n\nconst ws = new WebSocket('wss://example.com/ws', { browser: 'chrome_149' });\nws.onopen = () => ws.send('connected');\n```\n\n`session.websocket(...)` reuses the cookies and transport settings from the session's HTTP calls, which is what you usually want after logging in.\n\n## Custom emulation\n\nWhen a preset gets you close but a specific target is still picky, layer overrides on top of it. Anything you do not specify keeps the profile's value.\n\n```ts\nconst res = await fetch('https://example.com', {\n  browser: 'chrome_149',\n  emulation: {\n    http2Options: {\n      headerTableSize: 65536,\n      initialWindowSize: 6291456,\n      headersPseudoOrder: ['Method', 'Authority', 'Scheme', 'Path'],\n    },\n  },\n});\n```\n\nHeader order and casing are preserved when you pass tuples, which matters for HTTP/1 against WAFs that check it:\n\n```ts\nawait fetch('https://example.com', {\n  headers: [\n    ['Accept', 'text/html'],\n    ['X-Request-Id', 'abc'],\n  ],\n});\n```\n\nThe full surface, including cipher lists, curves, ALPN, ALPS, GREASE and certificate compression, is documented in the [custom emulation guide](https://wreq.sqdsh.win).\n\n\n## FAQ\n\n**How do I see what fingerprint I am actually sending?**\n\n```ts\nconst r = await fetch('https://tls.peet.ws/api/all', { browser: 'chrome_149' });\nconst d = await r.json();\n\nconsole.log(d.tls.ja4, d.http2.akamai_fingerprint);\n```\n\nChrome should come back as `t13d1516h2_8daaf6152771_d8a2da3f94cd` and `1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p`. Node's built-in `fetch` reports `t13d5212h1_...` for comparison, which is 52 ciphers over HTTP/1.1 and matches no browser that has ever shipped.\n\n**Why am I still blocked?**\nCheck the fingerprint first with the snippet above. If it matches and you are still blocked, the target is almost certainly gating on something above the transport layer. Worth knowing: matching a browser is not always what a site rewards. Some targets block a well-formed Chrome fingerprint while happily serving plain undici, presumably because a browser with no cookie history looks stranger than an obvious script. Test your actual target rather than assuming.\n\n**Why does install sometimes compile from source?**\nBecause there is no prebuilt binary matching your platform and libc. You need a Rust toolchain for that path. Open an issue if your platform should be covered and is not.\n\n**Can I override the proxy for one request inside a session?**\nYes, pass a `transport` on that specific `session.fetch(...)` call. The session's own `proxy` field stays session-scoped.\n\n**Do I need to close sessions?**\nClose them when you are done if the process is long-lived. Pooled resources are released on garbage collection too, but explicit is better.\n\n**Which profile should I pick?**\nDefault to a recent Chrome on the OS you are claiming in your headers. Pick `os` to match, since a Chrome-on-Windows TLS fingerprint paired with a macOS `sec-ch-ua-platform` header is its own tell.\n\n## Documentation\n\nFull guides and API reference: [wreq.sqdsh.win](https://wreq.sqdsh.win)\n\n- [Quickstart](https://wreq.sqdsh.win/quickstart)\n- [API reference](https://wreq.sqdsh.win/api-reference/overview)\n- [Sessions](https://wreq.sqdsh.win/concepts/sessions)\n- [Browser profiles](https://wreq.sqdsh.win/concepts/browser-profiles)\n- [WebSockets](https://wreq.sqdsh.win/guides/websockets)\n- [Compatibility matrix](https://wreq.sqdsh.win/concepts/compatibility-matrix)\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md). Bug reports that include the target, the profile you used, and the fingerprint output from the [FAQ](#faq) snippet are the most useful kind.\n\n## Acknowledgments\n\nOriginally forked from [node-wreq](https://github.com/will-work-for-meal/node-wreq), since diverged with its own build matrix, session and transport model, and release cadence.\n\n- [wreq](https://github.com/0x676e67/wreq), the Rust HTTP client this is built on\n- [wreq-util](https://github.com/0x676e67/wreq-util), which maintains the emulation profiles\n- [NAPI-RS](https://napi.rs/) for the Rust and Node bindings\n\n## License\n\nMIT\n","readmeFilename":"README.md"}