{"_id":"@alice-doctor/wreq-js","_rev":"5-97b8d7841024579ace8b5b1e65b32670","name":"@alice-doctor/wreq-js","dist-tags":{"latest":"3.0.1"},"versions":{"2.3.1":{"name":"@alice-doctor/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":"@alice-doctor/wreq-js@2.3.1","maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/alice-wreq/wreq-js#readme","bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"bc34d2e8e65bad76998610b479dac52ae51cd96f","tarball":"https://registry.npmjs.org/@alice-doctor/wreq-js/-/wreq-js-2.3.1.tgz","fileCount":11,"integrity":"sha512-heNN77fwErK5FlaVnIfk/16VXU9d7wt8Bldpsh4aOktK/vbcf931LGpnYBVnSuuyOmdlBVk+p/oNCVNVg+CpyA==","signatures":[{"sig":"MEUCIQDkzDkDjInQ4+3e+gWF2kMmNLuFy9nkfhhhmE064qNn2gIgV1X0zGqgm2wmumF07AXAt0jOFtoZxTp1NI/7yKQQlS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16623072},"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":"38ff3f6ee5d6e80c21f6423643a6f2281e4efd1d","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","postinstall":"node scripts/install-native.mjs","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":"alice-cli","email":"jooyeon970814@gmail.com"},"repository":{"url":"git+https://github.com/alice-wreq/wreq-js.git","type":"git"},"_npmVersion":"11.17.0","description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.1","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.8","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.7.3","@biomejs/biome":"^2.5.4","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.3.1_1784904857977_0.47753364463304937","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@alice-doctor/wreq-js","version":"2.3.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":"@alice-doctor/wreq-js@2.3.2","maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/alice-wreq/wreq-js#readme","bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"ecf4ddf22509dcc19b38112f1a8cb1f888182b3c","tarball":"https://registry.npmjs.org/@alice-doctor/wreq-js/-/wreq-js-2.3.2.tgz","fileCount":11,"integrity":"sha512-RccTuvZACxbjJ3NfhR3Fl2OAih49vGYndaOGJ1iKm0K4JpY+8wXN4hDrCQ56RVMrHS5gusRQkZTU1Mx++WHAWg==","signatures":[{"sig":"MEYCIQCTF9kmsbxI/7sKcQJagtJd4RWbFC2oweyZ+JMleHwlTQIhAIwawEBI0mJ+pcFmPruh52/hj5LkhlR2N623emdEMiVK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16623072},"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":"6349d10cf1ba288e829eca5517e8f996ca9ab067","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","postinstall":"node scripts/install-native.mjs","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":"alice-cli","email":"jooyeon970814@gmail.com"},"repository":{"url":"git+https://github.com/alice-wreq/wreq-js.git","type":"git"},"_npmVersion":"11.17.0","description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.1","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.8","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.7.3","@biomejs/biome":"^2.5.4","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.3.2_1784904953022_0.38984776499779783","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@alice-doctor/wreq-js","version":"2.3.3","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":"@alice-doctor/wreq-js@2.3.3","maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/alice-wreq/wreq-js#readme","bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"b304e1f680c26de4872897a06f8f0257937ec363","tarball":"https://registry.npmjs.org/@alice-doctor/wreq-js/-/wreq-js-2.3.3.tgz","fileCount":11,"integrity":"sha512-BxXLh8bLR5EqBud7StkRWplVTyJtRavxDyu/6Vxqvtw1r4e2owOE8jodPuC9cALj2All/ImKnYo2Kqzpdbn8gA==","signatures":[{"sig":"MEUCIQC7T0DlTC8lY8cBy7fsCUOD5acHfeJsbmQZh5ulWYRtvQIgHsJeRkfR4Vz3XYkS+Pb/yNtPqlfyls07z14oCWRXEK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16623072},"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":"6349d10cf1ba288e829eca5517e8f996ca9ab067","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","postinstall":"node scripts/install-native.mjs","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":"alice-cli","email":"jooyeon970814@gmail.com"},"repository":{"url":"git+https://github.com/alice-wreq/wreq-js.git","type":"git"},"_npmVersion":"11.17.0","description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","directories":{},"_nodeVersion":"26.5.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.1","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.8","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.7.3","@biomejs/biome":"^2.5.4","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_2.3.3_1784905151422_0.12727380685976608","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@alice-doctor/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":"@alice-doctor/wreq-js@3.0.0","maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"contributors":[{"name":"will-work-for-meal"}],"homepage":"https://github.com/alice-wreq/wreq-js#readme","bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"dist":{"shasum":"ec267ecff15fab254d930781c614358214acb783","tarball":"https://registry.npmjs.org/@alice-doctor/wreq-js/-/wreq-js-3.0.0.tgz","fileCount":12,"integrity":"sha512-SAcGMHgyN3H+cGirWJ4Cgcp69QwYjwoqVKmCtguLvoxcdojaSW6Fw4dApWTJLi+XB5TmlkVAt3mMy8Vd0YYoOA==","signatures":[{"sig":"MEUCIGeQIDDeu4wWCHq59J9B7uyCeQAnO5RJj54y1z16zwPZAiEArRJhP4XJSrISNTxn4rvUdUbCzi0yi9ciKSyz1d6pOr8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alice-doctor%2fwreq-js@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27260906},"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":"db7c9ec3122cc192bd1acfec3eda0ca124e2b51c","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","postinstall":"node scripts/install-native.mjs","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:5375ba79-c4b9-46c4-b615-3309d8d33d99"}},"repository":{"url":"git+https://github.com/alice-wreq/wreq-js.git","type":"git"},"_npmVersion":"12.0.2","description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^11.0.0","tsx":"^4.23.1","husky":"^9.1.7","rimraf":"^6.1.3","tsdown":"^0.22.8","typescript":"^6.0.3","@types/node":"^24.13.3","@napi-rs/cli":"^3.7.3","@biomejs/biome":"^2.5.4","@typescript/native-preview":"^7.0.0-dev.20260707.2"},"_npmOperationalInternal":{"tmp":"tmp/wreq-js_3.0.0_1786026678203_0.9478186817851699","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@alice-doctor/wreq-js","version":"3.0.1","description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","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","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","postinstall":"node scripts/install-native.mjs"},"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/alice-wreq/wreq-js.git"},"bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"homepage":"https://github.com/alice-wreq/wreq-js#readme","devDependencies":{"@biomejs/biome":"^2.5.4","@napi-rs/cli":"^3.7.3","@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.8","tsx":"^4.23.1","typescript":"^6.0.3"},"os":["darwin","linux","win32"],"cpu":["x64","arm64"],"napi":{"binaryName":"wreq-js","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"]},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=20.0.0"},"gitHead":"6d0b2d2925b8957e567b54a92f041d51c432b72a","_id":"@alice-doctor/wreq-js@3.0.1","_nodeVersion":"22.23.1","_npmVersion":"12.0.2","dist":{"integrity":"sha512-C4i92/eKz87iN4/8FkrbCLWsAKm0hdnqZbDwlCEyMxjoGoOOD/jmx2UFsDB/2cqMl0ePXvYOqoEmG75L0LeTvQ==","shasum":"d6c60defbf5d95d273f8a3650016f76bcf44a4be","tarball":"https://registry.npmjs.org/@alice-doctor/wreq-js/-/wreq-js-3.0.1.tgz","fileCount":13,"unpackedSize":35082374,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alice-doctor%2fwreq-js@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID3MtXs7T/GbFr8FnCikV7ybnxdMlhVnsiijEPPOl9rcAiBTAZCWcqhoqnddeDCnJ6ZehBubA5YhFpBoRFdNzQrNcA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:5375ba79-c4b9-46c4-b615-3309d8d33d99"}},"directories":{},"maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wreq-js_3.0.1_1786518869379_0.5410924129954968"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T14:54:17.846Z","modified":"2026-08-12T07:14:30.160Z","2.3.1":"2026-07-24T14:54:18.227Z","2.3.2":"2026-07-24T14:55:53.306Z","2.3.3":"2026-07-24T14:59:11.647Z","3.0.0":"2026-08-06T14:31:18.487Z","3.0.1":"2026-08-12T07:14:29.820Z"},"bugs":{"url":"https://github.com/alice-wreq/wreq-js/issues"},"author":{"name":"Oleksandr Herasymov","email":"herasymov7@icloud.com"},"license":"MIT","homepage":"https://github.com/alice-wreq/wreq-js#readme","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/alice-wreq/wreq-js.git"},"description":"alice-wreq fork: Node/TS HTTP client with browser TLS impersonation. Built on alice-wreq/wreq-rust + vendored wreq-util (safari_ios_26.6 peet).","contributors":[{"name":"will-work-for-meal"}],"maintainers":[{"name":"alice-cli","email":"jooyeon970814@gmail.com"}],"readme":"# @alice-doctor/wreq-js\n\n[![npm](https://img.shields.io/npm/v/@alice-doctor/wreq-js.svg)](https://www.npmjs.com/package/@alice-doctor/wreq-js)\n[![CI](https://github.com/alice-wreq/wreq-js/actions/workflows/build-release.yml/badge.svg)](https://github.com/alice-wreq/wreq-js/actions)\n[![GitHub](https://img.shields.io/badge/github-alice--wreq%2Fwreq--js-blue)](https://github.com/alice-wreq/wreq-js)\n\n**npm package name: `@alice-doctor/wreq-js`** (not the upstream `wreq-js`).\n\nalice-wreq fork of Node.js/TypeScript HTTP client for TLS fingerprinting (Cloudflare / DataDome 등), powered by native Rust bindings from [alice-wreq/wreq-rust](https://github.com/alice-wreq/wreq-rust) (upstream [wreq](https://github.com/0x676e67/wreq)).\n\nIf your requests work in a browser but get blocked from Node.js because your network fingerprint looks wrong, this is for you.\nYou keep a fetch style API and get browser profile level network behavior without running a full browser.\n\n1. Built in browser TLS and HTTP fingerprint profiles across Chrome, Firefox, Safari, Edge, Opera, and OkHttp families\n2. Native Rust engine for high throughput traffic with no browser process overhead\n3. Fetch style API with sessions, cookies, proxies, and transport controls\n4. WebSocket helper and constructor APIs with session cookie and transport reuse\n5. TypeScript first developer experience with generated definitions\n6. Native targets for macOS, Linux, and Windows\n\nCommon search terms: cloudflare bypass, datadome bypass, tls fingerprinting, ja3, ja4, browser impersonation, nodejs fetch, typescript http client.\n\n## Alternatives comparison\n\n| Library | Approach | API | Notes |\n|---------|----------|-----|-------|\n| **@alice-doctor/wreq-js** | Rust native ([alice-wreq/wreq-rust](https://github.com/alice-wreq/wreq-rust)) | Fetch style, TypeScript first | alice profiles (e.g. `chrome_150`, `safari_ios_26.6`) |\n| [CycleTLS](https://github.com/Danny-Dasilva/CycleTLS) | Go subprocess bridge | Promise based | Subprocess model |\n| [got-scraping](https://github.com/apify/got-scraping) | JavaScript HTTP client customization | `got` based | Header and request customization |\n| [node-tls-client](https://github.com/Sahil1337/node-tls-client) | Native shared library bindings | Custom | Behavior depends on upstream native layer |\n| [curl-impersonate](https://github.com/lwthiker/curl-impersonate) | curl based tooling | CLI and bindings | Binary/tooling workflow |\n\n## Documentation\n\nAll guides, concepts, and API reference live at:\n\n- https://wreq.sqdsh.win\n\n(If you're looking for examples, sessions/cookies, proxy usage, streaming, WebSockets, or the full API surface - it's all there.)\n\nQuick links:\n1. Quickstart: https://wreq.sqdsh.win/quickstart\n2. API overview: https://wreq.sqdsh.win/api-reference/overview\n3. Sessions: https://wreq.sqdsh.win/concepts/sessions\n4. WebSockets: https://wreq.sqdsh.win/guides/websockets\n5. Compatibility matrix: https://wreq.sqdsh.win/concepts/compatibility-matrix\n\n## Installation\n\n```bash\nnpm install @alice-doctor/wreq-js\n# or\nyarn add @alice-doctor/wreq-js\npnpm add @alice-doctor/wreq-js\nbun add @alice-doctor/wreq-js\n```\n\n> **Do not** `npm install @alice-doctor/wreq-js` for this fork — that installs the **upstream** package without alice profiles / natives.\n> Always use the scoped name: **`@alice-doctor/wreq-js`**.\n\n```json\n{\n  \"dependencies\": {\n    \"@alice-doctor/wreq-js\": \"^2.3.3\"\n  }\n}\n```\n\n```ts\nimport { fetch, getProfiles } from \"@alice-doctor/wreq-js\";\n```\n\nPrebuilt natives (GitHub Releases / postinstall):\n1. macOS — `darwin-arm64` (and `darwin-x64` when published)\n2. Linux — `linux-x64-gnu`, `linux-arm64-gnu` (musl when published)\n3. Windows — `win32-x64-msvc` (64-bit only)\n\nIf a matching prebuilt is missing, postinstall tries [GitHub Releases](https://github.com/alice-wreq/wreq-js/releases); otherwise build from source (Rust + cmake).\n\nSee also [ALICE_WREQ.md](./ALICE_WREQ.md).\n\n## Quick start\n\n```ts\nimport { fetch } from \"@alice-doctor/wreq-js\";\n\nconst res = await fetch(\"https://example.com/api\", {\n  browser: \"chrome_150\",\n  os: \"macos\",\n});\n\nconsole.log(await res.json());\n```\n\nBy default, standalone `fetch()` calls use isolated ephemeral cookie storage.\nUse `createSession()` when you want cookie persistence across requests.\n\n## Use sessions (recommended)\n\nFor **most real-world workloads**, start with a session and reuse it across requests.\nThis keeps one cookie and request context for multi step flows.\n\n```ts\nimport { createSession } from '@alice-doctor/wreq-js';\n\nconst session = await createSession({ browser: 'chrome_142', os: 'windows' });\n\ntry {\n  const a = await session.fetch('https://example.com/a');\n  const b = await session.fetch('https://example.com/b');\n  console.log(a.status, b.status);\n} finally {\n  await session.close();\n}\n```\n\nMore session patterns: https://wreq.sqdsh.win\n\n## WebSockets\n\nUse the helper for a connected socket from one `await`.\n\n```ts\nimport { websocket } from '@alice-doctor/wreq-js';\n\nconst ws = await websocket('wss://example.com/ws', {\n  browser: 'chrome_142',\n  headers: {\n    Authorization: 'Bearer token',\n  },\n});\n\nws.onmessage = (event) => {\n  console.log(event.data);\n};\n\nws.send('hello');\nws.close(1000, 'done');\n```\n\nUse the constructor when you want browser like `CONNECTING` behavior.\n\n```ts\nimport { WebSocket } from '@alice-doctor/wreq-js';\n\nconst ws = new WebSocket('wss://example.com/ws', {\n  browser: 'chrome_142',\n  os: 'windows',\n});\n\nws.onopen = () => {\n  void ws.send('connected');\n};\n```\n\nUse `session.websocket(...)` to reuse cookies and transport settings from session HTTP calls.\n\n```ts\nimport { createSession } from '@alice-doctor/wreq-js';\n\nconst session = await createSession({ browser: 'chrome_142' });\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 ws = await session.websocket('wss://example.com/ws');\n  ws.onmessage = (event) => {\n    console.log(event.data);\n  };\n} finally {\n  await session.close();\n}\n```\n\n## When to use\n\nUse `wreq-js` when your Node.js HTTP or WebSocket traffic gets blocked because of TLS fingerprinting or browser profile mismatches.\nIt is a good fit when you want Cloudflare bypass and DataDome bypass style network behavior with a familiar fetch style API.\nIt handles transport and fingerprint level behavior, not CAPTCHA solving and not in page JavaScript execution.\n\nIf you need DOM/JS execution, CAPTCHA solving, or full browser automation, use Playwright/Puppeteer instead.\n\n## FAQ\n\n1. Why use sessions?\nUse sessions for multi-step flows where cookie and request context should be shared.\n\n2. Why does install compile from source on some machines?\nIf a matching prebuilt native artifact is unavailable, npm may build from source.\n\n3. Can I use per-request proxy overrides inside a session?\nYes, by passing a `transport` on that specific `session.fetch(...)` call. The `proxy` field itself remains session-scoped.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Origins\n\nThis is a maintained fork of [will-work-for-meal/node-wreq](https://github.com/will-work-for-meal/node-wreq) (originally named `node-wreq`), with ongoing updates, compatibility fixes, and performance work.\n\n## Acknowledgments\n\n- [wreq](https://github.com/0x676e67/wreq) - Rust HTTP client with browser impersonation\n- [wreq-util](https://github.com/0x676e67/wreq-util) - related browser profile tooling in the upstream ecosystem\n- [NAPI-RS](https://napi.rs/) - Rust ↔ Node.js bindings\n","readmeFilename":"README.md"}