{"_id":"shugoi","_rev":"125-6e3503f9ab724a7de928a8b23ffbbeda","name":"shugoi","dist-tags":{"latest":"0.5.5"},"versions":{"0.1.0":{"name":"shugoi","version":"0.1.0","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.1.0","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"d24fa37a9e426460555c9153c838e9a84b949292","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.1.0.tgz","fileCount":14,"integrity":"sha512-YkFuz1E84b1SIYlcGqhCCXI3EE1JpDOyBA6e/+Bk8JcHOLlzkq6XSaEM9Kfct1Bzdjyr4Ajh1UEDgNsBDGy8ig==","signatures":[{"sig":"MEYCIQDayuntyLoS1EyKtnZ68sDrlPpevlPJ+erFJ+ZnMZffugIhAJ/7fwHyxmFfNmkia6OmAfav2s2hWuVwZl9T12XAlw5Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125614},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"bf2b72ed933560b820ed5435f45c290efec0c737","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.1.0_1784684354600_0.5073405954847876","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"shugoi","version":"0.1.1","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.1.1","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"94054e66909179b48ac1aa7d1dfd929ed4577f38","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.1.1.tgz","fileCount":14,"integrity":"sha512-i1hseFfDkaSQHB2XBFVxeYe+Pt3pkD0/IrnQx3N90KMhrvTOaCrHV1a90HRt+b4Jn3ncDpneabJvWNFRJHy9pw==","signatures":[{"sig":"MEUCIQDjk5KR8ncaXkkmd39/o9Dz+OtCuq2xY8cpiTM6v4EeiQIgNyOEYaO62imEQVd9HWZ71wnfUweN9SiiByudceXt5UA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132536},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"2b49bf83223248dc9d127dfc95c1df5e0f9141de","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.1.1_1784736157071_0.022526636000917977","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"shugoi","version":"0.1.2","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.1.2","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"b670b7fb801552c37f7ce009d2de56bc38437f80","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.1.2.tgz","fileCount":14,"integrity":"sha512-4xJEBu6OVnLtHw+pa5JyWEcMixhhOHfVlzbKn1CWKKvDuhwPlgjdoKFTbLzD0pv/2OejKbdQ8ffxSaSMUgIDZg==","signatures":[{"sig":"MEUCIFxttiEdxKI6DCicc3I0ePREnRV/HP9mftyiU76nOknCAiEAtzQt4L/kmUbOihIReFs9u5ldRcTllOe8AylBc5uDAck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132584},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"175058eeddf6c758933882b36073aeb53c687a65","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.1.2_1784736382879_0.2911127170314747","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"shugoi","version":"0.1.3","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.1.3","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"9931bc33643843736ad54b0bbe898899cad4a5f5","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.1.3.tgz","fileCount":14,"integrity":"sha512-ZkRrBC+tyht4OV4kYOuq9TEmHVhv3ev8K2WYccC+PYgZsOLeoVsSvbHYGOvKt9iH8Y0E69B5KfVRp3EhEHmnWg==","signatures":[{"sig":"MEQCIEH4oYUhxIo6/UXncEl1zXogBwC6pouXtaqmsSUagwnYAiAKZTdTOrxpW02h3ACafuaGytjUQb4K1osCX2x34nKzvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133974},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"084c1ebb85b04f273e79d32e817d6f0c451aa3e5","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.1.3_1784738202760_0.726983505448366","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"shugoi","version":"0.1.4","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.1.4","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"1812919acb91dcbfae1dff7c24b051335355c916","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.1.4.tgz","fileCount":14,"integrity":"sha512-97rox2RdDOLL4OGpPYBgGeCJMUxOgiXRV9CI0zLCHLwbUe4KXbN3Vg3G/W8FkpAzjske+thScShBw93ByEja/w==","signatures":[{"sig":"MEYCIQCSKPcfLSnT0ZXIKovgeK8DPjxWY4doYzvDTlXUVnfW6QIhAM4dJ6shT91wcexYJu9YQzIGBSu8wf60bB0tScgiyVfW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136244},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"a7db948cfed3d7a24ac884a8e33b0ef467160d5d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.1.4_1784740761571_0.7819418496914543","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"shugoi","version":"0.2.0","keywords":["shugoi","anti-abuse","anti-bot","tor-detection","headless-detection","security","protection"],"license":"MIT","_id":"shugoi@0.2.0","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://github.com/shugoi/shugoi-npm#readme","bugs":{"url":"https://github.com/shugoi/shugoi-npm/issues"},"dist":{"shasum":"b323e60dca5af0fb272a79e0e9a6aa9a9919af99","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.0.tgz","fileCount":3,"integrity":"sha512-5ejTCZYnA0xgLXaykq4kxYXwobFqOC9+U+IeRa7w6dYdFtPrPd589lv+KkzVpCNH7f6gBv3vr3ySTYjyTNfNbw==","signatures":[{"sig":"MEYCIQCnfFYznZeinHaahaVXFN/i9rucWdtKybRaym27K/p5jgIhAN4viDt0GL+WP5W0gdmUVQFYVnsYRSAqadC3TR5nu+Y6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31220},"main":"./src/index.js","type":"module","engines":{"node":">=20"},"exports":{".":"./src/index.js","./next":"./src/next.js"},"gitHead":"14fc8b6c203b805326d9a3ccdae2c593bcfda494","_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/shugoi/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi Anti-Abuse Protection — split-rendering, invisible Unicode obfuscation, inline guard scripts, Tor detection, and anti-bot middleware for Node.js (Express, Fastify, Next.js, Vanilla)","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.0_1784760955460_0.6351832634276358","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"shugoi","version":"0.2.1","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.1","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"a62a9db9e35b2b8ce54dc735ae4a53e08cec9df6","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.1.tgz","fileCount":14,"integrity":"sha512-9FvbmLK5U5g8ViqaASL8+p91rX4MK9ypjL4PXGCdEyRUEoG77yQLm1F1NIgSrLIe3d26dvPA1tXpqKBjCFpy2g==","signatures":[{"sig":"MEYCIQCGNmh5EV5q3pk0d9JHN/AZJIdSPnrRslF8lFs2Z62AZQIhANLmdWAJD18thFcd8v15+Yvagv1FxCaSDZf43mLIkWJG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199831},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.1_1784823612481_0.8682380966152823","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"shugoi","version":"0.2.2","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.2","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"2fa03da798e5fdcd4696dddcec6be8208693a9f4","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.2.tgz","fileCount":14,"integrity":"sha512-2gotRVnB3MSf7PA4IstCEH03NiGeN9KWnwyhk/X+6Ny5MtIXF1i4WO3ts8c7zb8vsV596kFEjQeciibZaqpVtA==","signatures":[{"sig":"MEUCIQC9UHwLfxPCXAbxo9ANcPmdePtyk2Uw5l4KYQ1EaWa1MAIgIoEBwHD4mNeqv6DBUm/yi+zaTm6AdGxpOUUdntJSVIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204977},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.2_1784823732656_0.7830821724411443","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"shugoi","version":"0.2.3","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.3","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"11cd3c427e1f57d6f6482677ba1b9a1b352303bc","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.3.tgz","fileCount":14,"integrity":"sha512-guYXb0xhmaNCckdnPfzZIVV3S3bBSdpt4v2fb7LCA/sqDZvjDsZm7WvN8yfZpPU6A2KDP9K7YL2i7D1oU0tBjw==","signatures":[{"sig":"MEUCIQDEns3qXHPpNpS3qLNr0t/kWNe6PiWSnRn/98aytRfGKwIgWXzXv4NCXR+AmP8c+OmWlJINZHbqEbyi62zemQlA+4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205501},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.3_1784825443652_0.8977871501128007","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"shugoi","version":"0.2.4","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.4","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"aaa63c3f564d4e8dad6a165598ecafdd27431d70","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.4.tgz","fileCount":14,"integrity":"sha512-gHaBFZSUKTMWwsKtLP12YDnqGSuSRPxaiwIPvsuMKKbVW383D03XDdIriH11LELsBl/KkZcqhwDjJ+XQrSha8A==","signatures":[{"sig":"MEUCIBIGHgk+eo6aRijvYLrS+oK7e3jhaMimJ9Q+RaYnTorzAiEAsxqKp5avJQ/CB744ZcKOq+eg9aR/7lBFzgR/tCjv910=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205379},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.4_1784825514571_0.19888646295900636","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"shugoi","version":"0.2.5","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.5","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"82024fc8cbb962d17b848db3b80993fbc2b4689b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.5.tgz","fileCount":14,"integrity":"sha512-/29e/0oY/VQDxNRkfd4nEz/p352c8hvZKBip6S+jvwHWhWSlcGPlhpRZ2ZrhBI5zZ7DoXXEKZVwLvYjyJ29eDA==","signatures":[{"sig":"MEUCIBVcXcNhnw+Kgt1oBaVR3/zkBhtKMokuSwoL9mP6z3DQAiEAzazDc5nG35siqtgqNupXxX7BRTM/hPPJimuDwZG0SuQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276767},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.5_1784826243333_0.06557145807012854","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"shugoi","version":"0.2.6","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.6","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"1ffd5d2a4211ab206c92bfbf5e970f8b0c371480","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.6.tgz","fileCount":14,"integrity":"sha512-lK4JuhDD1bZjgGWax4tETHZ6v1EQgdsNtWA8VeAhdaNmD6KNwquaZ0RizfzEISyClJy3b3m7819gBk00L5auGA==","signatures":[{"sig":"MEYCIQCXBsmADs2+HyOM7cdbNv6pN8BXcbJXQO6qnTCPb8eEoAIhANZ1hEDbX+2AVXAq04SjUF7HAj2hJqVL4Q3RJgaIQkLY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276791},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.6_1784826333416_0.1783080317937904","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"shugoi","version":"0.2.7","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.7","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"1c6670a1fdddf6ab823e4de47776e8692b83af23","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.7.tgz","fileCount":14,"integrity":"sha512-vH29JDD0qyzpMYx01MVGWssIuELt6MqKfq9Kdx6B/1M5PahOYU072V2qNl/aQLwI68BzXUCmd5LIJ8LkKhepEQ==","signatures":[{"sig":"MEUCIDYibWIS4zkaXtBMWuR8CS+k7mIr2bcJS/5ON0eI1ZzSAiEAzlG9zhgsc8Y3d3uLg7kEbCEHQdw4wHGYZyj+RonlyfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277521},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.7_1784827410283_0.26438146769959703","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"shugoi","version":"0.2.8","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.8","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"f297d805d1c70ec4a8cda0c98f7cdb74c18aa413","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.8.tgz","fileCount":14,"integrity":"sha512-zcGFcGI5hA1kjZe0WYcXyP6onp3PyxA/5BDQSJEaWhCrDcFIpIL+QsJTGEqU8J0zK+cMvKBsIVA3cxCzi9s0rg==","signatures":[{"sig":"MEUCIEe+kSQ6tVPC7EElyB5RCEz0kZ7PjqM4tuviRrU77fDrAiEAwkLw2ijJhHp0qq8t/JhLxhMRLSGY4TCKaA1ReSCGLrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283455},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.8_1784829684539_0.36420429237062724","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"shugoi","version":"0.2.9","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.9","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"b5d154b6cfd40a7aeb189cf5b4bbcd6d92cd274f","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.9.tgz","fileCount":14,"integrity":"sha512-1Ku0CmysCN78QEgZuR311gRiM3uA1GQbco7ZSooRxKZQsUuqoTzbgPiUMYPJZQxoyUxJsCCWreJG0n/1whV56A==","signatures":[{"sig":"MEQCIE67253KbJE8pJVr5TFMvoN1Gyg/ydQZiBq/WrNrSSVmAiBteovMqVqeOCuaTNR7dq1Sia6tw4TJ/UNbqIN+PT7RqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283395},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.9_1784829755272_0.4115904844572764","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"shugoi","version":"0.2.10","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.10","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"944b78eb805a9aec7e0a819e7b495ede18ebe5a9","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.10.tgz","fileCount":14,"integrity":"sha512-l4TLL7sHePoFIEV6z4mWECd4Oy+WhiXnQIz+I6sdL0iXZH/0T9wG27i+zeAatvWdPi+VfARgeTLXffPOXgGwuQ==","signatures":[{"sig":"MEYCIQDbRvNGpkoYZW6oM479mx7aybYcE3FRVMI06V9c62mFVAIhAOABiYHze8qmMxuIwNbF7UC/PuDoPsPkdgbbKQLo4HzG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283288},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"d8377c806cfaf5cce948f725d83c834e3713ffcc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.10_1784829948256_0.42590397241619216","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"shugoi","version":"0.2.11","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.11","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"4cc1128f189bf94408b2803c01b327465b0105cd","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.11.tgz","fileCount":14,"integrity":"sha512-+qQaeAX/9N8ejh6DYOzkowDdmBM0xmpnSOmYmdMrKVhtZi9ts0QXqiIhbE56lgxHy+5pwOpwk2CbPRW9I5lL1g==","signatures":[{"sig":"MEYCIQDwg9uDBDt21cz5aGG6F40Kn3WSRbPxlM2A6tFUgAWUwgIhANbtZeuns4Hlw4chRlo9LjTBiQ7Nfvd5pxKaP7FX4dwg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":396142},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"4fbda4fa064e8485f951f5c18cf53c1ff871aaba","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.11_1784926674024_0.6481222147370875","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"shugoi","version":"0.2.12","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.12","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"12635e3c7de00eead8da60f43f5176f131e0068a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.12.tgz","fileCount":14,"integrity":"sha512-K0oGgbMq8kVgdrG/PHaiOzL6dt7J2awjs7etHeYuoC9vE4hXh1UY0rgzTy/gk9T8CoD9QTS2/qANXstitLNNNw==","signatures":[{"sig":"MEUCIBkqSoHC6zu5i6ZMhsPc3L/eFRgPVkHA173ZPtLXqa6LAiEAoHplaQeDoRbEuTXt1k3jPAYfJM30AbQDT8pTDB5Khm4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393058},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"4fbda4fa064e8485f951f5c18cf53c1ff871aaba","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.12_1784986781543_0.6444882166074706","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"shugoi","version":"0.2.13","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.13","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"7bbaa5e07714d069576d9d16633c86b313fce95d","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.13.tgz","fileCount":14,"integrity":"sha512-5NXVn1NZ8XkERp0zknG8qQQnRjtDuVitwJieJjXLtGA7zG4FxhuXfZJWdsi5VSiFgnYoF9MMsellG6N8XGX1vw==","signatures":[{"sig":"MEQCIDqTkNbtFIyFSZ1snlrvOHH+8kfjCHQDmKp5p7WoDT3lAiBEX2A7RXNS0hP41bRpKqheAw/ubEG5M28VcirLHDIS8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391062},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"905c78ae877b9a9b6c30b5a8b174732e46c11319","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.13_1785000276117_0.3958078870832462","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"shugoi","version":"0.2.14","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.14","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"46856f75991fdd73e9d37eb974bd181f3d28a35b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.14.tgz","fileCount":14,"integrity":"sha512-X92tBRcZ6/JMTdMdT2+DSqrMe9EmzXDIzxjYqEIFWlifXDp2SVZIZPQPGG/wi8gL0PUy3zlJznm1TFdDzMsWKQ==","signatures":[{"sig":"MEYCIQDoce8fNkM9xh5yhfBbgqmX6m0Ti+xbZ6SqdrSh9QYbJAIhAIKxC/fQjlcZWWtTaPC/RoJMt5fVVkAJuOL2iPn7DTlc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393716},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"874c97ac294699b14e043bd8764ca5a35bf72157","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.14_1785003561904_0.8683757388475981","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"shugoi","version":"0.2.15","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.15","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"3138723717da81b119a31a6638105d8b08ce4fa8","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.15.tgz","fileCount":14,"integrity":"sha512-9t3qwArrM1sRfTkZN3gUoFeMlxbTWdiIm+KcORgIR9YKJPsWj0akY0ntZ3dtJhKxcrzrCVlN1pfVDmY7ljA5Wg==","signatures":[{"sig":"MEUCIQDKpxeX6vDYM8acDwld/pQ3ly9ZKBQ8yzxgEVGwNktsFwIgF0hfJWMYDPRxkCOi6KJ725NS2hahGjoj6PDe4y2wIes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394398},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"9d13251b38ce8b8335fd7790d35e6d30821ff2ec","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.15_1785003652909_0.1501650152131484","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"shugoi","version":"0.2.16","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.16","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"1332b821eab51e4d7d89087f0b127ee03990818e","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.16.tgz","fileCount":14,"integrity":"sha512-lNt7Rds64vA7ru7l09/dpmVwtOf4ymWA+AuRWxrpDV8QtMKPrAccXBHyqcZsAfn34ZgPzCj4t4rqGTihY8DflA==","signatures":[{"sig":"MEYCIQCLERvjkmXUkHYJOS2I4YrzFLiKT/I92G4goJbs9B9xrAIhAJNVyQuNfJHr6kvraqMZEPzGXgPYHQNGiBCNNezus/xk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394686},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"e04f4c6bfe50d0eff5197c65fa7b89f822250c17","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.16_1785003942862_0.4721065872313037","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"shugoi","version":"0.2.17","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.17","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"e0372397d6d627f270af918cba51df6517340864","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.17.tgz","fileCount":14,"integrity":"sha512-C94cXMAtYECuv2gqy5SCo+fKX+TRAWPG3xywVpiP9YJ/b5C+ZVocSoKmEOiHgqwNj/3TRvH9F+ta3kJi1UVB/w==","signatures":[{"sig":"MEUCIA4AseyasY1GdPhEp4vE4qxjaQ4pBN5aEDbUkmbdy3rwAiEAifAGJ5IMpgiut09XSCLGSyVuEVT6luojqok0zvTlNJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394768},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"7e7f6a029c48185a3cf44d8aa93776f2b177462f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.17_1785004305204_0.8252980935353098","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"shugoi","version":"0.2.18","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.18","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"b10c51dd6e11fddc033565c24c9a163962af9c67","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.18.tgz","fileCount":14,"integrity":"sha512-snO6u0i/e91W0G79pWq/Jnx9TP8bE07Xrhq04PKqMFvKI7wDTpI3TEjgb8d433qphdNQBcxRFGqkTIfbOEt1fA==","signatures":[{"sig":"MEUCIDGx/f1qlVn9Lgva+sm0RZ7Eo0Ze0jLPFAKgXIuzwGuyAiEAo+C+bX/GnM1j0ZY3K8mBnoHBFcW/Yvfz9cYa0MKQVKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398100},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"7e7f6a029c48185a3cf44d8aa93776f2b177462f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.18_1785009276952_0.28570482186297164","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"shugoi","version":"0.2.19","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.19","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"0067733d11dab217694a6b4f36f608698f8ee7ac","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.19.tgz","fileCount":14,"integrity":"sha512-HSiAZv20MdbPSVMHah3tW8s3/uTesctDb6TSqUQkA+p+lavCLAvXtb52U41uLaTLKwTE15/UfSfEjr2cStS6HQ==","signatures":[{"sig":"MEUCIQCFvDgQIRA6oe6D84Wo4T3VnR0Hmn7KTR5a6IRWKpoIZwIgVqEuKk87FgRiiEiG5KQLyIeHbYBzsClS1cJXFao3LqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":399778},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"7e7f6a029c48185a3cf44d8aa93776f2b177462f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.19_1785009977817_0.19167232946584756","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"shugoi","version":"0.2.20","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"license":"MIT","_id":"shugoi@0.2.20","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"dist":{"shasum":"a97f318ef5d89088bea79171c11317008884278c","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.20.tgz","fileCount":14,"integrity":"sha512-ebqkroR0jGyEvWQg5p/F6BJQINw3hYuZ99v6m7POjuVKWbOK4kuAR7IEX8uG0Mmy/1HC+uKqeY8qQlFZPHo8Sw==","signatures":[{"sig":"MEYCIQCKQGstEZjw7eCgPblHggjjH8eTUEl9h81ycck1qggmAAIhAJJRy009lnLiSt88IkpK0CsDTqi1wpHP3/v3RQbhKFgc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":400952},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}}},"gitHead":"7e7f6a029c48185a3cf44d8aa93776f2b177462f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.20_1785013181569_0.8980222553132147","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"shugoi","version":"0.2.21","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.2.21","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"e63de2c81c56c6cf2f9b47f353529911fc70d198","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.2.21.tgz","fileCount":16,"integrity":"sha512-h3euQ5iXZmFjWjaeynq7HR5INnnpOI5gGpWcMx1Y2lpeG3Wmb0YNc3ga8WhsiXr7yzYBVaHmuTLAPprny8vz3A==","signatures":[{"sig":"MEQCICEYNVtyoCXr4qtUMiqaoP/s04Vbk/I8JT2FnFq6UUhlAiACDwySa4Le0RUFbpDKW69xvjIMD9dsthIxK45+B0WFoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":558147},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"90f47171dfa4a3db41b433173f3ab54979875554","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.2.21_1785431053046_0.008292372140319193","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"shugoi","version":"0.3.0","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.0","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"9e905f6653107b8710c855c6e89e5908153c9c85","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.0.tgz","fileCount":16,"integrity":"sha512-SkloNvvFlULNs2ybiQfIlOkopGclEeQpK8eOtK9dn0Ba4ONs86a5l/s15UGV2MB23rBOUbbxaXSLQScCTwbudQ==","signatures":[{"sig":"MEUCIH8Rf6+nXQa6CdGXTAYCpaQxuHcdvzZXzj0EeYmLgnAaAiEA0oHLPnAtTtb6Q4eDhdnfthu/ojekDCyQ68E3er2sHKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557262},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"90f47171dfa4a3db41b433173f3ab54979875554","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.0_1785440692712_0.6543626746968023","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"shugoi","version":"0.3.1","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.1","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"dddac3777efb39486b88c3ebd6fa9c1a111b7dc2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.1.tgz","fileCount":16,"integrity":"sha512-1JebGvt/AuHCaqi1Xi88meV2ZQy1ilzxrN6beZlEsLqOEpgj8tDTDtGMAQz+6nXxxSE5xAkqcFQ2xuqMCFfeBA==","signatures":[{"sig":"MEUCIHBv/t6bOt2co1OKU7ZZ8Fq16Z9GoDrswtOi5tOzjh6CAiEA3GHojBl1EKdOROVYlkbyn6aHb52jsXLZAPE0O6yv+HY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":490263},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"90f47171dfa4a3db41b433173f3ab54979875554","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.1_1785442480624_0.4232300359137917","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"shugoi","version":"0.3.2","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.2","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"ce5c871c6bed79402ddf43990bc74f79242da406","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.2.tgz","fileCount":22,"integrity":"sha512-ipilIV8HJRkEqaDcSxFmCtsJ8wwGLjGFTsTq1HfLCgH7jGdg5I8hEBtPIWdbMz+9u14Lt1SZ3zP6TlRxyNSGWw==","signatures":[{"sig":"MEUCIEpZ6MQDJdE+XSM6JpA/X07lSD9XPsMoClkNxba/oq/sAiEAz5hjAoKQwwiZEwQ2kENBVYudmr8lV19q5gA8Wvs4qIA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514116},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"58d72491195646f954a989c0885d3417b02fa63c","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.2_1785501630686_0.45685726774017543","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"shugoi","version":"0.3.3","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.3","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"fa91abac36ab672a438a34bef45dd821e0bfe71a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.3.tgz","fileCount":22,"integrity":"sha512-EQbOfbxJotJmE8n9jy6cas4rWvRWyA3B0NstS5+k65/yiaOKucukNvL7EH1R8gfopgpYWadz9ksf6IewS1H9Mw==","signatures":[{"sig":"MEUCIQDcQYsMkAqkz0ZQBogJJHeCa+GNgDKm6xD4GbIT/J0tOgIgD25XucyoCFyFiRXn+aO4UbJ2WaQxBmSDkAV2heANlh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538588},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"058276f58be5bc94a7ebc3806798be34775449f3","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.3_1785604854384_0.2154000215305416","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"shugoi","version":"0.3.4","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.4","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"1e92249bb63b3dd71c341159a6f88df1a49ca771","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.4.tgz","fileCount":22,"integrity":"sha512-16OwiIMFhPk8khjRqC+ot1VM6yyvSAEumLL7joFTtkH2D8Lt6Ls1I84lnwi50kYPoqOhpUZLfWlrLUnVHPl9Rg==","signatures":[{"sig":"MEYCIQCI8t5/lT1267N5iq8aLLM7z96ZfUKdPZAIgM7fCWteFAIhAODl5/db21KUEL0dFJKLzOO1Mwqu6JfU/y3NYN4MDANE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":581860},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"628f77ae0cfd4494b1e5f5220913e6c0396c1bf0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.4_1785622909218_0.5179002410400746","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"shugoi","version":"0.3.5","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.5","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"efc350d5707b88e0ef78afb7d095c32c823c4ce5","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.5.tgz","fileCount":22,"integrity":"sha512-wY/mCCgWCgXvGjt9RzC1y+E7S/K/A26QV2rIvFejSPa8pz/lZj2LXrlzQrA5AI+whPgyyxsxzOJgGW9fjZD59A==","signatures":[{"sig":"MEQCIGN6SG2x+2SYV83HqGG3hU8h/QFNaL+gJ9XChRMwfCH2AiAzGLj4IW5urB+gdgUnssmVetRXVEzvlBKYeSHfUEUqsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623372},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"eb2b7f8254b3c175942026a35be00d85d771059d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.5_1785628591726_0.3387043227691484","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"shugoi","version":"0.3.6","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.6","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"4f47bca738de1b77f3c5a6b9a856f652e9fab812","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.6.tgz","fileCount":22,"integrity":"sha512-/5ht43osP9pF0cPUZz3oHw6wRRw6l4x4D71k9Vc+bFacY/8VjxAY+tEkDRcsSshXXSLy3PJpqnNCmVNKm2OB5g==","signatures":[{"sig":"MEYCIQCFCVc9ueAgHsfYFNvfhUGCXkJGiA+xF1kzjYV9ylb82QIhAJWpWO1Tk3GtuEnLuCSlmGf23WRZ6dz9X6wcq6Uqi4ZN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":626245},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"ebd6b5cafa4028465744b1820daf8ee29887eb31","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.6_1785670811670_0.9073829808609437","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"shugoi","version":"0.3.7","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.7","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"10d4bd51758c5da75b5103a5c50263c01f5a87e0","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.7.tgz","fileCount":22,"integrity":"sha512-fo3AFmQmL859c3+CDzpphudZecyPP3b9H4DQoWwbY33HZ7rulQ+wOLBhsdgmkUHZqMrxdyWiwUVcMgIJJnchrw==","signatures":[{"sig":"MEUCIQDWfKw5a8BR6MH1zLBlaT0zr+csJ1Ht35kbL2UD6ULi+wIgQyQoahv0erEMZtjK3gR3LKplW8Zia1YFp4ptAJtGNDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":637542},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"88e4e6649869e753433cf36e9f780cf58583390b","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.7_1785681325127_0.8961521882900456","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"shugoi","version":"0.3.8","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.3.8","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"e2e129411a3d1721429fa22417fc4058843e8e72","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.3.8.tgz","fileCount":22,"integrity":"sha512-IlNwgS7ZqiuM08KuqPnwKW30VM1RD6XL9SW48BVSVqylY52LkitGIkcMqUxA3Dj8pFTqch14pre4xayMiPWkng==","signatures":[{"sig":"MEYCIQDbXdjVDUH873cmp0DBUzNLk61AVMU1LVPo2L/WrNfbdAIhAPpjP4vNs84Qhf7M6hihrNcKOHJDx2sjuYCtd43gHxB9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":651634},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"74e88a55b7c8badfa3d5e5285b08b3f570c7eb33","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.3.8_1785688505110_0.875569291853854","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"shugoi","version":"0.4.5","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.5","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"c77ea1c28193216501bf767c8bd76306c81d2ba1","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.5.tgz","fileCount":22,"integrity":"sha512-o+e9Tv6/Wz7eKDhOKuqXIVgyemvuG33J+bPNIL/gAywqfd5AdEQkREyZqyYjNWYpy0dVDx76cI8NT7I3vCYcKQ==","signatures":[{"sig":"MEQCID/RGY1LPwFPiRlVMGmHmlNalYXcnBKcA37OpWqjjZgJAiBxH2dnvOnaZU/a0bOGnonUZzao6kYArequ/fPvHwkGgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":699119},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"d7bc267a1e5ac24e595b303e513fc6dc4584d24e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.5_1785765580417_0.5192335154169536","host":"s3://npm-registry-packages-npm-production"}},"0.4.16":{"name":"shugoi","version":"0.4.16","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.16","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"85316d7cbb528208ffa3ebd457c48be623eb4057","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.16.tgz","fileCount":22,"integrity":"sha512-sc5XCYs1A7mNkmQNrqynVSfOeCD75rt+HAR25muaLP5LEhYh5wAJCRF4jRPI/fDkZbp26tt2urysHKoMQZ1mNA==","signatures":[{"sig":"MEUCIQCQpiV0/Rb+fsY2Z/LEO7OUvuqo/Ym7r5x+Y+2DB8VRJwIgeFllkangqrSquukScQLJRyBACIZj6AyOrSw59qhKppo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":712338},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"caf955051e62024782e6123d95d67f0d2a972550","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.16_1785846429848_0.8064733018279691","host":"s3://npm-registry-packages-npm-production"}},"0.4.17":{"name":"shugoi","version":"0.4.17","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.17","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"8ffd681eb6f5c180115a519ebd4b9de6b8e7aca6","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.17.tgz","fileCount":22,"integrity":"sha512-jX2WCfxMlI0Xi7zCNzBWMh3bH4NlAzesHx36NLwSQNiCD3qxGdqFZbFaAHbDX5vfKiD+R9fw7puP1227c78KHw==","signatures":[{"sig":"MEUCICdII6q51s8+L9tSJ3XoO1ycpArRn+23TTy4l8K60PKOAiEA17HAJvAVkg9r6znFNHlqHBzuyOkF/6umX02hBDmFhOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":712180},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"caf955051e62024782e6123d95d67f0d2a972550","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.17_1785847030748_0.9094295749625385","host":"s3://npm-registry-packages-npm-production"}},"0.4.18":{"name":"shugoi","version":"0.4.18","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.18","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"4184407fadf3f76fef17413bf255012f11a66c80","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.18.tgz","fileCount":22,"integrity":"sha512-vqUDmw7pcUZOjamK4GZxLNS3+tZXMITRtdwsebJdsa+n+q2OOVzAs0OOEK/DdFMCzEY9Jur04DghBApRR2Df3w==","signatures":[{"sig":"MEUCIBOl/jE5TWzTySsov+0zUiszczOMxV+df4c5OFL4lBshAiEAqEz8JyVQ/AYJAlzJTw18W3WYZSOEaK7mIfXmYLBPbUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":724890},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"83479b27bcaa211735eeef8be808ee2cffee9c31","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.18_1785848636099_0.3595417944222543","host":"s3://npm-registry-packages-npm-production"}},"0.4.19":{"name":"shugoi","version":"0.4.19","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.19","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"30881dae12b02449a5e7c178b725f18c22134181","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.19.tgz","fileCount":22,"integrity":"sha512-iRk+Rq6gXg3YiB687eaYtakv8K0IBFcttSz9x38mq7US63Wkfbh2L6Og4JL/f5/gkHNRX4cs78jbfBAvLfPyTw==","signatures":[{"sig":"MEUCIQC3JpZFu3WLVh8BGJXIinofe3bYESMRc6IUdqY+H2BleAIgFEiwHwcglIfMG9/7JNg623WEHD3XMJyDKGcFW/nD0Cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":725284},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"96e3e5d35f2c579a04c1386a5d4cf0e88fff5716","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.19_1785849335450_0.677708217953082","host":"s3://npm-registry-packages-npm-production"}},"0.4.20":{"name":"shugoi","version":"0.4.20","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.20","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"bf7400e497d1dfd8dc9ea9a92ad5a9cc6fc98c7a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.20.tgz","fileCount":22,"integrity":"sha512-EDSWHhsjR0lCChagd8cGfFvmGZ2TBacQaAPCA/aYSh43r4t8oiLDWW1y3Zc/hg3eJDwqgsTr1QaJNTZ9Dsxn0w==","signatures":[{"sig":"MEUCIHcVQjyOxihmAousUJM56XlktWU5RJEDYoHtayO0W7OMAiEA35yu10pds4q54XIIxRPtZZkXlQtIXg/2psr6VYQBpvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":740690},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c6972d469cf9cad488a304c50cdf3cabc4d246ac","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.20_1786030977387_0.9087946932464097","host":"s3://npm-registry-packages-npm-production"}},"0.4.21":{"name":"shugoi","version":"0.4.21","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.21","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"642efb84c80e279b5661bd17557d744716d39a81","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.21.tgz","fileCount":22,"integrity":"sha512-PgeSK6BcRaSJS+Z5Y36oq3fnPqRrfk08htn9JUleKtV/I0OFdk/xdsmz0j+9jv9xvxj0Cr+lv2bjAppXj3e1ug==","signatures":[{"sig":"MEYCIQDzoquD4xxdC+m4sshbl6zSNQMV3gg8psT4MSvqfixKswIhAK6gErUfUQoUgainp0XXnmcfO1Ly4WBcbtwUerANwnXH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747902},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c6972d469cf9cad488a304c50cdf3cabc4d246ac","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.21_1786050523810_0.3911392361439252","host":"s3://npm-registry-packages-npm-production"}},"0.4.22":{"name":"shugoi","version":"0.4.22","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.22","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"a4bc1af63039414e031bf90190f61c9512d642f8","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.22.tgz","fileCount":22,"integrity":"sha512-20zQVM6RRCwAT8xPu71rtKBy6pbG9fG+I9wEnFan3n6Ax/TWCJBDk0IUVhi3hMXzMvmRWy++AVeB3dtQ9lb3iw==","signatures":[{"sig":"MEUCIQCgFpGkvMXkzcjsCkyOA4rMmzM1M0xpDaBdJTrioxAdLAIgZZJg2ed2vgrMscw1Ka5woirigbzQnOsVTQ+Lqs55V/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":747902},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c6972d469cf9cad488a304c50cdf3cabc4d246ac","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.22_1786050769672_0.8257850489775576","host":"s3://npm-registry-packages-npm-production"}},"0.4.23":{"name":"shugoi","version":"0.4.23","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.23","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"3f2da655d778c65701fe9074b9101f07d97b6137","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.23.tgz","fileCount":22,"integrity":"sha512-h9jDEGAucieW13XZgET03J++S7NyPqu1cqTQwraOyVyKK/U5BfFCWODMI/ogccz6H43dgPEgNX8qJwRwgtbgtw==","signatures":[{"sig":"MEUCIH5WLaQfKDC6SVK57pwdf+m/JbaKMdlPWWvyXXNuX9J4AiEA80TM/iZPal3nlU5fTBdrVPc02ZEcRIqpBAOHrTCnB4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":767826},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c6972d469cf9cad488a304c50cdf3cabc4d246ac","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.23_1786051695433_0.78542527470179","host":"s3://npm-registry-packages-npm-production"}},"0.4.24":{"name":"shugoi","version":"0.4.24","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.24","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"9000158d0bee74240657f83834a12a1c43d3bcde","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.24.tgz","fileCount":22,"integrity":"sha512-e5HyHl7Eh4/Cg01Z2ydoyHtU7pJDAsBJuKugOuC8NyDwhGyr7ahKpiiVNkaEzfOE7ueto6jDXYKSPwR8FXbj/Q==","signatures":[{"sig":"MEQCICwfUEjAhkGfYQ4Blr5lyyWD9TwtB6zjlLMTjiyscHiyAiBCAfE6uMatEMXClQnIYpoKcR0kWfvyFouQHnVIggyZ2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779509},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c6972d469cf9cad488a304c50cdf3cabc4d246ac","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.24_1786130837702_0.5421817494873054","host":"s3://npm-registry-packages-npm-production"}},"0.4.25":{"name":"shugoi","version":"0.4.25","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.25","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"8fc91bd9bb0d640495084470d347ef319ebdff55","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.25.tgz","fileCount":22,"integrity":"sha512-hKSPery+xrivTH/J+d2ll//b/vNS3AutjVmcE9YVpN5TWuIzWtZaTlbY0npdYOAB8fxyvT+UphZtYLePMoIm+g==","signatures":[{"sig":"MEUCIG3skK+ySelDguiTvC06mk9Zdc0hDyh9XnpWxnnkjpA9AiEAgjK+2G3GP1uK0UkxYibVVSzgVip+resIdiCn8xP1xG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783401},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"644cff5159b8446f7cb172adb3c33066bb212d37","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.25_1786213081769_0.3381353060843737","host":"s3://npm-registry-packages-npm-production"}},"0.4.29":{"name":"shugoi","version":"0.4.29","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.29","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"313055d056d9fff69b75c986661572e67af67ac2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.29.tgz","fileCount":22,"integrity":"sha512-U6tKxRZwKYxq944ee+caBZ8BVMqeP9+GKaKY9xysw9k+2uRUx6m6WMgVQOd05+7GoCj+9zQl+i3oXs80auZhfA==","signatures":[{"sig":"MEUCIDjq9bG5mIY01p4rGnF3rkN0PS6yXp3lcgXdoW3x67dXAiEApmAbGKXp/puZlGu5nwB/DfVAf2j2esuMOLmpHdL2G98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":793036},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"c11f7e226aa1dc03cd484f76c724969ee631b2b1","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","tsup":"^8.3.0","vitest":"^2.1.0","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.29_1786238750047_0.3118670843341653","host":"s3://npm-registry-packages-npm-production"}},"0.4.30":{"name":"shugoi","version":"0.4.30","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.30","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/RoxasYTB/shugoi-npm/issues"},"dist":{"shasum":"54145778f354fb5c643d86c86db84c6ef76be976","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.30.tgz","fileCount":16,"integrity":"sha512-KGcbolvoPSVP3HIgyHD2bwdfNQdw7W5yK/QS45Ti/DkZWt5pIicVKiskwFZlrliqDPOUn6fxvWQkqP7qzKvEVw==","signatures":[{"sig":"MEQCICGqQXuD/NvMrsGn+IZX/SfxZ8sJIbZiyCQPkHpewfzSAiBPwpbKZsBbsHE+qDmiTa/GOPE/NlaWgB4lHuy5lTgfjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296602},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"74721b5216f271bef08bb90843d37c919d7806df","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/RoxasYTB/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.30_1786276313277_0.9514509860235125","host":"s3://npm-registry-packages-npm-production"}},"0.4.31":{"name":"shugoi","version":"0.4.31","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.31","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"71836f1c01e45909d28d60e83f732370638b370d","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.31.tgz","fileCount":18,"integrity":"sha512-Ww1YLv2TzvLUADM3TzW5PRYteLoRx1Y3G9YdrTv23N9TXL91NDUJs8yuvDQ5Vh4X71WKH95/4GmeGu5UToAvww==","signatures":[{"sig":"MEQCICYt/ahm7yLlGGmOi4stRbOvN9CEziQPDZ7Ap+/fAdJbAiA/p1Q6MGCyyEvjnKsHSVAxaxZzdi1jEUX9n1Y++fmzTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293607},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"b8ebe99d2b60c656879d6e7bb5d728595b97cfb4","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.31_1786564142965_0.4359372542889659","host":"s3://npm-registry-packages-npm-production"}},"0.4.32":{"name":"shugoi","version":"0.4.32","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.32","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"3746edca13a4f0929fbab9378c87d23cd5a12bc1","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.32.tgz","fileCount":18,"integrity":"sha512-ZjOVquW+689RjsgyaVvY9OS/mrnGPW5A82EBuBauN4LSORLR9cdKIovz93F2fRagK/uYp77zY0SOQ4ooCXfAHg==","signatures":[{"sig":"MEQCIF2LcFEJUAgfw6heW3VIoOq8QulrnpK1orBLlGg7bNBWAiBhCWnndKTd4byl7lSKAUTzl/uvfE7k+kKBPFHJKwE/IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293763},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"f29d24e0880b6e65cf784be90cf49faee50659b4","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.32_1786564287037_0.0812678994594993","host":"s3://npm-registry-packages-npm-production"}},"0.4.33":{"name":"shugoi","version":"0.4.33","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.33","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"1c23f62553c2415019e1b372425651682ed53363","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.33.tgz","fileCount":18,"integrity":"sha512-2zvuNxpncDjSqRbu42wsXUy2IblOgiOM/kUJBFChMa/pkZzwy23liYJQmV/5FHwzb/AMEC3IrnokziEyJaDyiw==","signatures":[{"sig":"MEYCIQCjnFYwFzgxiuZbfLIymiaVXXt6zccgQ78Yq7VMagyt6AIhAJQQaU9FUtieL/Bm4P7k1AuWyxPyt6Io/vyMbsdO9Cwa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293889},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"12b120116a1af8451932be7ef92e96d0ed33cbc0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.33_1786564403903_0.9494670238679717","host":"s3://npm-registry-packages-npm-production"}},"0.4.34":{"name":"shugoi","version":"0.4.34","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.34","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"ae3f5c56229f8e8c2f26930a116abf21e6eb79af","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.34.tgz","fileCount":18,"integrity":"sha512-rb+tNArXGeDPYh9SDrXVvtQw2aD6rzlWB5a1Ni4aW2XOXRhSUcnIe8Zxnjc7tR8Nj/sEIoztY1VOsjHNWTaXOQ==","signatures":[{"sig":"MEQCIDq2Vf4pFxSzkbHaSJEsKiUKT8jPPwjzOd8vwz9tJsEPAiBN5yK274GGMB3k8kO27CA2yi+mmVTZuXuLu6wzPWr0Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292885},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"bc5bc917c574f548618f658a2da7de810dade545","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.34_1786564545196_0.1534010329896185","host":"s3://npm-registry-packages-npm-production"}},"0.4.35":{"name":"shugoi","version":"0.4.35","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.35","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"ebb2e59859090ee382f8d4a762e920239098074d","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.35.tgz","fileCount":18,"integrity":"sha512-NN2W1WAfXzz9NZO0mzEkUkF1g+70UFu/qAdvrt4V26JI6KW3osPmjHADRQaIoSR1pgFIitbIFaf3eAKa98jtAQ==","signatures":[{"sig":"MEYCIQDzdyz61ffw2dAzfQzY6CiAdsSZNrHAVHWWoRpMWsqtWQIhAKWsDV0VBEUfsf0Cozwpuk31P0iGgOid1L4v+6pxY7Rx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316617},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"464305c9d2abb853e65e216dc894026f456fe55e","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.35_1787403831920_0.6625648193567","host":"s3://npm-registry-packages-npm-production"}},"0.4.36":{"name":"shugoi","version":"0.4.36","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.36","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"cd36c1b42439bc1ad38bd4d4500384fc002ddfb4","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.36.tgz","fileCount":18,"integrity":"sha512-JR/eE78SMoA59Mu+V03RcR3a9ZUaxMJv5SlE7GxxGU3in0h1JBpD+pBoKZ8qk7yLRLjmsbtIFQAr0aV4j/MHmQ==","signatures":[{"sig":"MEQCIGz9ul8vPNw19ghw53oA6BevXKrpWZ2pSMetnf1Ou1zSAiBnHvSiWWazzs7pLUdMHmsV7pnga5XjHi6vvqJjXeyjZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318459},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"22f8ed3f9dcb844350c65a8d50ad9524f7e07b8b","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.36_1787404722226_0.8454481593402781","host":"s3://npm-registry-packages-npm-production"}},"0.4.37":{"name":"shugoi","version":"0.4.37","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.37","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"eb09d6cd1b9d7f133e2c6570497b13ec9bfb8505","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.37.tgz","fileCount":18,"integrity":"sha512-EDZNjm5YGJvDpzcYJSclbq6qkd46MY/uXC+7oSsyZxAMnSAZnb3DX7UnEPeV8JxLGXqgSoHY41rVlDH+BdvkLw==","signatures":[{"sig":"MEYCIQCWDOUMlpC/PeXgZhJQ1PVr5DenwdBa9rBBndbLw6kbgQIhAN2PpzFGzT1Pf8Cp/HGZERdH5mD5jVKeUozX5opiTx7W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318207},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"15073f6b9f500c8ee1deada44eecd2b31cbf32d9","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.37_1787405010022_0.6850051913745046","host":"s3://npm-registry-packages-npm-production"}},"0.4.38":{"name":"shugoi","version":"0.4.38","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.38","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"20e65d354d427ae28d16b1212f0ea410be815fe1","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.38.tgz","fileCount":18,"integrity":"sha512-SL6iUK8GF7PxgfqjnYe2kWYhLrC4LCOaJNNnjsFYkkpKYiPaSg25wjPmCt9ObtOgrJ7vd/brlN8ZrfQw37JniQ==","signatures":[{"sig":"MEUCIFdM2djgv+RwHJye6FRz/MqhAVwxz9//NhjpOmmf9/QpAiEAnKNF2LiWLLroAQkvk+T9CWJ6rWPa6sL81Idn5yvPeRI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318609},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"899db2369e0875af35414aaec7c4b0bf2f442620","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.38_1787405301795_0.004735924126752389","host":"s3://npm-registry-packages-npm-production"}},"0.4.39":{"name":"shugoi","version":"0.4.39","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.39","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"30c15794ed8240562c1b237d0366432ec0040374","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.39.tgz","fileCount":18,"integrity":"sha512-XLXELfKKCqZHIMvPTcc3FId8Nf8ZzUy2KRXf8YCWjr8MSD8qeUxLuInQRn/Pc6iEBpVBqGi/RrbJWf4Tqvin7Q==","signatures":[{"sig":"MEQCIDK4kXdHDtbrJtmsDLUr3vpPoNAdnkMkVKyOcOSiQ0/vAiAdccKRzwSDK0oQKi6khgLajap/4FWhOXBFXCCxQv+YOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318645},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"50a91276892753af9b8ca94417b9ee460eafb418","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.39_1787410629393_0.8893084308806247","host":"s3://npm-registry-packages-npm-production"}},"0.4.40":{"name":"shugoi","version":"0.4.40","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.40","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"87d101ad316b75494afea82757e6a010fe1ee8bd","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.40.tgz","fileCount":18,"integrity":"sha512-0apHiU9Tv5vJuaddNyuOyaPnJqOFRz75vMTLldlgpaez/INCrX94PG83xU9wfiujWiZ4+UAL6X6QGueQpA/6Gg==","signatures":[{"sig":"MEYCIQDOJBemhHqTeyB6k3zuLFgMO4aPSrFfZFjB9sysyXYtzQIhAOKHF2yMrHNRige3kYEJJnj2SZkwZ0sq0zIrF7GDcL8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":475313},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"663e35f39298472a2dc880868777fc1883b2d67d","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.1","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.40_1787487757677_0.2739484079125367","host":"s3://npm-registry-packages-npm-production"}},"0.4.41":{"name":"shugoi","version":"0.4.41","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.41","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"862b64abe3fc859f2719fd0bfbb6601ab097cfaa","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.41.tgz","fileCount":18,"integrity":"sha512-nRpQadgzobMZtvtTJQO16T/G7nmlSaipBdUBV+YeDaYMJ18zlduIgyo0Pdg/xCiUGwxoJ+Y06bjiu8DPt9ukkg==","signatures":[{"sig":"MEUCIDdp4QQdCkhA/cvdXtvBpX9+hgbBBLHMKberERE1gH6GAiEAw7emHT3afAMVr5whODm7Obtjb5ORM5m9Mx91Yu/S+xM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488344},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"b1437c91b92954de1cb167ebb39376cd738b7d65","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"12.0.2","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.41_1787850406899_0.10872092929669663","host":"s3://npm-registry-packages-npm-production"}},"0.4.42":{"name":"shugoi","version":"0.4.42","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.42","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"f7ab87d35b373c783588c1ec03b7234a32d20415","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.42.tgz","fileCount":46,"integrity":"sha512-exc1T6EgIndBpM+O+WomjlnONNyrxkJq3mcTYaeBzY8J6zauiwa7FrZoKWuufCuXDbbHy6k+I48yJjVzxOehfg==","signatures":[{"sig":"MEUCIBERek2ZZlnfluTomgOmiBNnFKHVFHpPV9ZSkzWv0xe4AiEA9O9e/tthhugHK5rnd2r91IjuH+BzDL9bihZGvGlHV4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661331},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"da7f2736b1abacb87bcae2d0f6dd64ce924c9029","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.42_1788903800693_0.17732735851500103","host":"s3://npm-registry-packages-npm-production"}},"0.4.43":{"name":"shugoi","version":"0.4.43","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.43","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"c9a8436b5576cba1584414532d72037fa1a638b2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.43.tgz","fileCount":46,"integrity":"sha512-dbf34Kk+/jheDWXp+mwgUYSkpy0OzdsBF7f0Tjj5liLf2+UWz6pX+u3HAlMaQUv/zhnuMc7+lasbfgG5wkJXHQ==","signatures":[{"sig":"MEUCIQDRrGzBTuROaLsrwiq7/8IZqUO03P68MdrpqeHNpKsOcAIgBH0zCnk1YvPAN0xzv6hntFKp8Ao0rOOzEzw0wCkzozg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661588},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"534a76e82fef61559e6cd333260540cd777ff1aa","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.43_1788904357463_0.6622136639523393","host":"s3://npm-registry-packages-npm-production"}},"0.4.44":{"name":"shugoi","version":"0.4.44","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.44","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"2508ca87841772013214bb054263d70cfc0d9c15","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.44.tgz","fileCount":46,"integrity":"sha512-+LUEZGZJFmd0sWNwfJK1vTXU/357wfktxUQMx+O3yjQKkq/P5vFlRuSCZx0AvSQH05EKcS5y77MmO8TOBh6r0Q==","signatures":[{"sig":"MEUCIQDO0P1ROWEIZ9iWmTz2ACKvwpwd07TQulELZfwC29lrGgIgRYjnXS/ZWLynxLTvWogJwpd0GOeAzFEPZBS1jnVYBw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664008},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"534a76e82fef61559e6cd333260540cd777ff1aa","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.44_1788904790666_0.6599448726622823","host":"s3://npm-registry-packages-npm-production"}},"0.4.45":{"name":"shugoi","version":"0.4.45","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.45","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"cb5e3f10813278740d77fb0b5a8e37fa974fe723","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.45.tgz","fileCount":46,"integrity":"sha512-v40j267Ae39YXUeCZL660kNIAV/njw54II5ae4QaavPFK32SGX56nuXmCkfWY/DG0EgReXDLwXflTrRty/fNxg==","signatures":[{"sig":"MEUCIEVnI8YrToamhSBfga7/XUhFdIpqGqtK5gXk6G4eH3uGAiEA14BgY86HtQxN9FP11B2j85UpeYCe0MUz9lWK2w0K7nw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":665672},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"085e966a9062b06efdafcec6dbb01b1656fdd198","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.45_1788905310129_0.25570341802548424","host":"s3://npm-registry-packages-npm-production"}},"0.4.46":{"name":"shugoi","version":"0.4.46","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.46","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"a73195a83cd043bdefe9e876feba34a045d3d100","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.46.tgz","fileCount":46,"integrity":"sha512-odXzxN0k2aS7fqFtzF4gjC2vr/745gSHz32ihv6Q7Z/uUTsztmeT5CckdFf7d6cnSqGwI6DD39sgmatrHaOMPA==","signatures":[{"sig":"MEQCIB1JnS6yujbJEGHUdQyebvuKickxVMQ/aY/2TDVSicdSAiA8lbVXdRSWylWlvSCZ3ZvqlOq5krB6xLfJcOIklgCM2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667172},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"39f2b2b65fcac9a341287105a87fa2189c3dc780","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.46_1788905903287_0.27309834205279615","host":"s3://npm-registry-packages-npm-production"}},"0.4.47":{"name":"shugoi","version":"0.4.47","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.47","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"4fbb74de963ea1c04ac397c77f05581952fbd187","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.47.tgz","fileCount":46,"integrity":"sha512-DnqOvOFhDkqPhCG/6UXykVMwXmX6+A0ogJwBnqZw2pH0B5TOlB6t3fEC5zLwD3Lpu83KMeDwxexuMlW4WiYhdQ==","signatures":[{"sig":"MEUCIBU9WOreX5o4/KhTUZBFUTjOh1vwVvLGM0YSRLsR6430AiEA/MVZhdhtllOy7qRMyl1e8YdqUqUqWRzNojNppj8Juxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667565},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"67dd636f022e9cf87456379b4963c45e6fe9c9d1","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.47_1788906536356_0.45831109839031803","host":"s3://npm-registry-packages-npm-production"}},"0.4.48":{"name":"shugoi","version":"0.4.48","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.48","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"1a241ad1db69b67f39efe2ab82d03b4f1378aba3","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.48.tgz","fileCount":46,"integrity":"sha512-Vb6awsFLV+n73CpD+xijMxY8aHZzZ8rtchnlqXjsn1kFopE9ksAUtFgnJ0R23uuoNr2a0yyf3fyUxXZUpLM1ng==","signatures":[{"sig":"MEUCIQD3y7k1fFe2IScpQSPLyg24czaarMZ+5oPzYarDy1S9uQIgdGUk7pdzYRdL1yrlar0H95JYxEDwtYq8n4mEjTgZFbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668350},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"ca1f638783309ed300fca16e8cdf81cdc7cbe59c","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.48_1788906879337_0.8133281049834149","host":"s3://npm-registry-packages-npm-production"}},"0.4.49":{"name":"shugoi","version":"0.4.49","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.49","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"393bf560fb2abf18d49786da718cf4d574e816f7","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.49.tgz","fileCount":46,"integrity":"sha512-lfp8A3Biwpxn4/rRQAVFy2GkW9v4supFX6pYZJ2aVyukygWQ9gYjzKAG97iKKR82bhZBqO1ZctcT9cykZfMAfg==","signatures":[{"sig":"MEYCIQDCtL+BtKm7cXK/apLc7iYqM5sEzUpPDpJk1Tknui123wIhAMNERAVpY1XIZ9hyYgUf28bYso9ssL4TaBkYhAl2O4Go","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668755},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"7c91829c4c4ca345307246411c3530b00dab41f8","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.49_1788907177378_0.6316595267189202","host":"s3://npm-registry-packages-npm-production"}},"0.4.50":{"name":"shugoi","version":"0.4.50","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.50","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"9f316c48ac541cfb52bb9c07fcf009d9de15c145","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.50.tgz","fileCount":46,"integrity":"sha512-FGlHKu0EWuo9hjOTLVV0t2YZ6cTIz+V+vWRzC5KHvHn88doxVDriUbJCtS7KFIcqHb8wS2g/L6xxs5I/V7IYnQ==","signatures":[{"sig":"MEUCIA2zVgZqhZsZ9MBO8oB5jwzdEA8GVn0Le9ARxQIeA96fAiEAro9e6Cne7fIIw+59XKrI+vibLm3pUwxQnS5YwAd+TIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668276},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"fc3d27cb7221e6d64891cdbd10f22f0473d9def5","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.50_1788907226034_0.7181759940651538","host":"s3://npm-registry-packages-npm-production"}},"0.4.51":{"name":"shugoi","version":"0.4.51","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.51","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"9384cd93b0fb197363a6eab62b8f1eb65ee467f7","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.51.tgz","fileCount":46,"integrity":"sha512-3Ix7QPW7aUsFYFm65FxJ5ZTpmG4BKm0kLCSuQVXFqX/NfuwwMDQ6Jr40eVaJhIMd0NVZw+KYHCmZiIyNp6zu+g==","signatures":[{"sig":"MEUCIF9L1GYhSM1udU2J8QUpG/9I0xOKXWuwRv8kmrindTjsAiEAvQTBDtI+oQ1jSCiadZRdwB2kpAV+OsJdy2vsRbLqc/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668316},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"dc59a06ace7138c75f6039333cd19ae2fb0d0dbe","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.51_1788907446995_0.08805018218097493","host":"s3://npm-registry-packages-npm-production"}},"0.4.52":{"name":"shugoi","version":"0.4.52","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.52","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"ff3001fe92efbbb7d5bc72a05f404c5f19998911","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.52.tgz","fileCount":46,"integrity":"sha512-6em+opsHKCkShfpQaUiylyzgnVztOLgFy3Fzsprnp9vnkvRhfDI74lDRtf6iVJGzOIlxxkhFfzRY4kgKSCtwgw==","signatures":[{"sig":"MEQCIAKQnMC3+tMTd+/1VXrfTy2hUJO3zi4vlg8c0avgm5TPAiBSeCydXkYuTiLvAw3IHTcHtzFeN/rvXqIDIgA7UIe7Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668871},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"0da135ef3d925ba67b04e10c65b0d9218ae84058","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.52_1788907895556_0.4280904286554461","host":"s3://npm-registry-packages-npm-production"}},"0.4.53":{"name":"shugoi","version":"0.4.53","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.53","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"69251580e514dfd759897ce35fe753de549b04b9","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.53.tgz","fileCount":47,"integrity":"sha512-pO+KiQtQbt6VHWZ/WQiVMAM4HwfJay394/1fH8EY3Gw/fnfLqXWNgskQzl8u+/aSfseDmqJjUi5Z7sdFgv5Ksg==","signatures":[{"sig":"MEUCIQD3ZJXVwwHGVzQ9cJCXKuCUb61EBVLki38gfpJwylPRBQIgZJPZgaZUYR/0HCsGuTCVl9XVHoXn4ZUbQE5TWlwh6yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705708},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.53_1788948442025_0.1837244275997003","host":"s3://npm-registry-packages-npm-production"}},"0.4.54":{"name":"shugoi","version":"0.4.54","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.54","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"e51c4330f35e8435c92b527f62c233757f677c06","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.54.tgz","fileCount":47,"integrity":"sha512-CLcLDrD8miMTBaVihubaSLEs8oe7/EQuO/ZBKXwSsw39gWZ+iE5HK/NI6a+VOfEtsHPDlWXF9fWf/h/20THiAw==","signatures":[{"sig":"MEQCIAO9FnHUOX/YAJChPBdBoPdTZhvJQHHnmnVaYFXb6ljkAiAUeAACzj5Sgs2lSf+V0mieg2hiqc5rhWu58s72SojiwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706481},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.54_1788949052307_0.33303609489331","host":"s3://npm-registry-packages-npm-production"}},"0.4.55":{"name":"shugoi","version":"0.4.55","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.55","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"eef393e37186ddec2683b8a77bde0be8406cffe2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.55.tgz","fileCount":47,"integrity":"sha512-IFz6XdvYqULrfthBBeqQ9TCm4v8JbNA2XZ/etxC4KLViQLb66vZyp+Y9m5hl3owwFkqgj4uVSipsdxogCj5IQA==","signatures":[{"sig":"MEUCIB/dEUd90v2OAc+2H/KOZshKupZOHlKuqru3vU+/WyN2AiEA7+9LEQgahDt2HQO9n/ug4A8QuX+3ozDc8j0lCydibfo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709471},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.55_1788951111196_0.14768585868441741","host":"s3://npm-registry-packages-npm-production"}},"0.4.56":{"name":"shugoi","version":"0.4.56","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.56","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"0482fd2d0d653a072114b34a8acf02baa581aa3b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.56.tgz","fileCount":47,"integrity":"sha512-Mi0yBL/8i5v7VIfy6at4T5NrcLtFneUGxEKYalDNS6zdQc1U2HA+Y14LgHM7XKRU7KejO5LzTD5XewF6zXk8TA==","signatures":[{"sig":"MEUCIBI6NzaGI/VWJXFAYCitKz3iAwEhgbgcV3s/MGoE+sqRAiEAx3F3hQTpwO9xa6GYerxIHkorYHIXceYdH2FDm3McSWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708385},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.56_1788951390182_0.12317059774446038","host":"s3://npm-registry-packages-npm-production"}},"0.4.57":{"name":"shugoi","version":"0.4.57","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.57","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"3801573599c5af1d84f27696734eb18a78addcc2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.57.tgz","fileCount":47,"integrity":"sha512-aK49K4pl0Wi7ThBcWPBz6JqkBq+CWcFMFrj3WeKqKSmLJTiYk/auR976zDA1j31Xfzryu0+OY/D8NVowZAK+Hg==","signatures":[{"sig":"MEYCIQCS7VBLUNSM0QzIiK3axjn020y08TL2SYsq53SHc0w1zgIhALKp+XyoA17FB5ecBPoWDeIYGewq5rPfOPaWz7JDxpbP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":709020},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.57_1788951480481_0.060729970911490794","host":"s3://npm-registry-packages-npm-production"}},"0.4.58":{"name":"shugoi","version":"0.4.58","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.58","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"9c87087ceba64b0bc0be12f78c8022b9acdfecaa","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.58.tgz","fileCount":47,"integrity":"sha512-SP8F7V74VoCOJAui697um83Nl2m0D0Ap+cnyCWADm1NWLPsC7faaVP+ceB93gz3hCH5A/rqi1/KZRXLuOj+s1A==","signatures":[{"sig":"MEYCIQCL5uQieCJEI+Rk8hF6+YRHt43bgDQSoi6MN3hTxEKCbwIhANRn9MjU3lPgqxnyGKTYge0mQ3RI5azBNlNnwL4FZmtD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711570},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3c4709ccd8e34870aeaff0d10410b2c0a04b1c71","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.58_1788951804026_0.9367248732166895","host":"s3://npm-registry-packages-npm-production"}},"0.4.59":{"name":"shugoi","version":"0.4.59","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.59","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"93a538740b5ce78129fe52dc43dd47731078e2bd","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.59.tgz","fileCount":18,"integrity":"sha512-rKVU8I4CKkuldkvZ55ab2o6ycPhusP4kQgK5ZUqcp/GN9Tge+Dy2UYJDB7fAMDn9EwwH+49Awk/PvFT3Vvm3NQ==","signatures":[{"sig":"MEQCIHyvwXiBUl3nRMkVj8uqBGREvO/4XQakUDK39XYkUCLgAiBs64pBuAr60UbiIdwA0OjmE6+wvnM/cxH2XTRdmBYnRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545578},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"2f7172de281fc7b711e26d2c543cb3b9b0789bf0","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.59_1789126793892_0.653332148227384","host":"s3://npm-registry-packages-npm-production"}},"0.4.60":{"name":"shugoi","version":"0.4.60","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.60","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"1bb8b018c93473ae1dc0a12cefe6b339195d264a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.60.tgz","fileCount":18,"integrity":"sha512-lg7dE3IBMeZj6NhOP/lk9O/qdKgBJkLmMNytaqdkge8GlzCoS7QMViLlErQ2Dmn4Jc78X+TMoqLCHqj2IrxfZQ==","signatures":[{"sig":"MEQCIB3W0/5NCoLDCORREMVwCq9KDUERSaItSWYgV5rRmea5AiALkOIcjY0bAJYhKAFb1tIUe6DlUsew4ige6Xatc1mDtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544190},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"76f2830ac3187adcee05c562466833ab5c3e8b7c","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.60_1789126872319_0.14895865435337008","host":"s3://npm-registry-packages-npm-production"}},"0.4.61":{"name":"shugoi","version":"0.4.61","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.61","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"61462b9ad32639e3f0fce01d005a6f6e509d2492","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.61.tgz","fileCount":18,"integrity":"sha512-V+hIAVkZs5LsPaK3EjDAOx4sWVq+uwBSqhV4S/WQr173UNF2Rqg1+tR6q87b9aozv6wHPJzdRjQDIN/qRtcA3A==","signatures":[{"sig":"MEUCIQCOHAw/paXYBLAel6G3NLXS5Kq7hBBa5n1AO90dmpi2sQIgBh+XySFnoD93u4zaeLVsqYizLZWX9NpSQUELLtQRh1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544190},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"19bd166822572e9f398fd6e8a5a3dfe91daa072f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"^4.21.0","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.61_1789128799059_0.9184736490588574","host":"s3://npm-registry-packages-npm-production"}},"0.4.62":{"name":"shugoi","version":"0.4.62","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.62","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"ecdcc2d41e6f7a42f039ab2e9cd553f09a62a667","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.62.tgz","fileCount":47,"integrity":"sha512-9DAD7dL7YxGxyDhzXWxD6Y/KMPIDDSedCB01MV76qfvW5WIywj0Sqte+XT+qQaWNHvtYName6eEUUXi+acfSgQ==","signatures":[{"sig":"MEYCIQCPt2vvManWAVin33uTaQ95aV5MQnFFpTqKEgQOby5UawIhAKYNJfR7W72GGZmasMdkqc4cD70KLZtI3EiBLnSJZZ1d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":716833},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.62_1789409002892_0.5649854922197486","host":"s3://npm-registry-packages-npm-production"}},"0.4.63":{"name":"shugoi","version":"0.4.63","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.63","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"9eae51552d95adf9e583e5a715ae65bd517cd12a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.63.tgz","fileCount":47,"integrity":"sha512-0g9AJAiuksenqjZFrGshaEPwoo8DSut4t3Th3+5Wsziez0jUd4nucy8J6AJnxMShTOd8LHmeCcHpZo3wW7ykEw==","signatures":[{"sig":"MEYCIQCRbZ3pdNW8LaCF74xF7GgS9kdF6tUzRySthrosF0NsPQIhAJPW0sgWcI/53NFVwpKjC27Pd11ZyyWX6O0TvUaMZvtA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":718150},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.63_1789409350716_0.22417627795547213","host":"s3://npm-registry-packages-npm-production"}},"0.4.64":{"name":"shugoi","version":"0.4.64","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.64","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"58bfc1f7999077fda3c416b7dbf5bb3ddcc9fc31","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.64.tgz","fileCount":47,"integrity":"sha512-O9a555RETpxV7Ht9wEXLVpPQ7yXMYTzmno0KGWPSsjuSAYKExh/JE3d0R1755lyeJ6DgWmfWPiP3aekIZn3WvA==","signatures":[{"sig":"MEYCIQDak5OyAX35hM4ZP/iqMlOee/gyha+hNQhpzv6N8uqsIwIhAJlFTPSnZTUGoNq+E1vIo7YauvE7do2bhLqYu9fwH3rV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":718933},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.64_1789409642322_0.913962002606693","host":"s3://npm-registry-packages-npm-production"}},"0.4.65":{"name":"shugoi","version":"0.4.65","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.65","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"e13b1e8691fcc96cd5e86d98df630393d37f3139","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.65.tgz","fileCount":47,"integrity":"sha512-+3TAgyJnurcGDEL0Z+3i/nN7PznWHEz7ijem9/rSDJcI3cmUD9aGLxVqN2+wqvaWGQj2+lxThpbIpAQAvE5nuw==","signatures":[{"sig":"MEQCIE6mLAv5uRuXWnyRy+/iQaOD3ksIvvhx0/6nnwS/DEJ+AiBSPiikZx7FJO0JtMz5Q7N2Xh43N1kMPFa8gSbaRCHCGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731038},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.65_1789410126429_0.6861980747349474","host":"s3://npm-registry-packages-npm-production"}},"0.4.66":{"name":"shugoi","version":"0.4.66","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.66","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"af308334895cf5456910078045d3de43b77baf08","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.66.tgz","fileCount":47,"integrity":"sha512-z5DC4kZ/NrtYd3Tz8auQxatghGGg7wzzxo2QKFW9w8XkarYwpivDPX8HNDkNQIs2WALlaI9+sVpzqzXmt1n63Q==","signatures":[{"sig":"MEYCIQDyetjvnVWwN7CRyJagIVXXwm51IphWmJfHjBs9UhTkxwIhAJcXccr3KvAVXJGyQp2o3fr6GWHA/Zb5q4C6U+Ub5dbq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731443},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.66_1789410283935_0.7174905772040063","host":"s3://npm-registry-packages-npm-production"}},"0.4.67":{"name":"shugoi","version":"0.4.67","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.67","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"3edcea20e21f78b0540cecfacebd78f82880287a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.67.tgz","fileCount":47,"integrity":"sha512-PyRxdxb6PVw4H4G3JbYb5l4oJSOvUW6FBROn9Ku021HIdPUOHVQ1dfNCYxv0Or4bECEA/GczKho0rSnARTRfKQ==","signatures":[{"sig":"MEYCIQDmH1oC6B/HArZmf9svjj90UP1iBIU4vYiKAvOGvqMS8AIhAKeeq61fUIqTB1TaDDvhjMRrQht4fW7NVjjdxg7CW+hX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731921},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.67_1789410838935_0.13721761420541045","host":"s3://npm-registry-packages-npm-production"}},"0.4.68":{"name":"shugoi","version":"0.4.68","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.68","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"873689584cd07e1f055d75f465702c32933748e5","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.68.tgz","fileCount":47,"integrity":"sha512-saHNr+MupPp3j2++4LqnmIi/ccm0avTwOw8o8NeyqFyx4mnm10Wd6qGdeKMXRDziFdZmWYSQZSZXVCKTLe+Npg==","signatures":[{"sig":"MEUCIQDVJI+3/j9GhKFtsTVyBcUHeiIuZi2eOmXF3g/SVDa2igIgC8sXqCF5qHjxA2RJS0W9/BCC/2TbiiNVtLl5UHUMsic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731915},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.68_1789411372628_0.2638146664871326","host":"s3://npm-registry-packages-npm-production"}},"0.4.69":{"name":"shugoi","version":"0.4.69","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.69","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"f1c61faf20f01e15962883007e8db6593522f3c1","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.69.tgz","fileCount":47,"integrity":"sha512-DNGOizCEiC9zKMaEXHYwUbfQY1oq1poaURGCBH+ljT+TsyriepP1teZ65sCmRWVj/l4PlZh3oWxU0Xxhox3+nw==","signatures":[{"sig":"MEUCIQDnuGfoCZyfDCvSVejkN2TOSZDYgmIidf1W+YZN1qjbYgIgRuqlz69wDJibFnF42q1QNXAI5yTFHyNXkr/0Tgd2dCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":731921},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.69_1789411615324_0.7787293317889465","host":"s3://npm-registry-packages-npm-production"}},"0.4.70":{"name":"shugoi","version":"0.4.70","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.70","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"c522738b16a4ecf0493b3eaa806e694e236fd751","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.70.tgz","fileCount":47,"integrity":"sha512-OB56sZjr9nXXBh/HM3ylL9QLBoKKqglZsft8Wv2idV3qlLDcG+2Nou0szZ2NM+mMi1BatvOYLYMOo/41t3dnsA==","signatures":[{"sig":"MEUCIE3wOTcIT0VzH6gneIYn4qn+GHtMMzDH0p80cliLPI6CAiEArZJLPpMfmiq41qxFTotxBiu4fb1ewm09laEk0zkS6BQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":732116},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.70_1789411909857_0.10574827864932179","host":"s3://npm-registry-packages-npm-production"}},"0.4.71":{"name":"shugoi","version":"0.4.71","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.71","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b7bd99310e3305ac032875e24ca71ff0492ff1ed","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.71.tgz","fileCount":47,"integrity":"sha512-Uzu4xh6hBIMKn+lnbwWO+RuVcJO8ky2oYB00DQXbNhxoi0ub5kaZmq1XZDaIV2auz2aT6IJtIi2VqAthoUNG9A==","signatures":[{"sig":"MEQCIFTpRueAES4TKObbKQTeT+rxC+R9N0EQYR1l1AJs4UKOAiAOEkDC77DmWt2Of985scm5eR3LzjP5X9sbQgNZ7bWXmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703977},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.71_1789421840005_0.3142727812319881","host":"s3://npm-registry-packages-npm-production"}},"0.4.72":{"name":"shugoi","version":"0.4.72","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.72","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"98a0954d63b55b5a550414bc1fc83f83c2957f3b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.72.tgz","fileCount":47,"integrity":"sha512-0JHoa6EjQ5dQdvAcaYbwEkgjTx2IizpBcEQ7d8tP9zZ00R4/vUy7tw7ck0/bNmbodPzJfJe06j1XwSne+pfn/g==","signatures":[{"sig":"MEYCIQC0cngz9t/6dWXh5+SOX+N4a7YilPqV7wYzQfgqjHSaMQIhAM4QLNeAekx2Q6pHl9bDEbSwAxbZOHnn113KzpJpzscR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":704250},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.72_1789422235337_0.3778356114342589","host":"s3://npm-registry-packages-npm-production"}},"0.4.73":{"name":"shugoi","version":"0.4.73","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.73","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"c70f4e5719681480848c1926cb46932d65b2c288","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.73.tgz","fileCount":47,"integrity":"sha512-KgKW/GFJAXdOOP+16WQJqO+lFFP8O/oG/x/n3E/a5aHPU/9QJXPKA+TvW4ht5JgldbUA1ghdV2si4/4z8LYvFg==","signatures":[{"sig":"MEQCIC4fTyqe1rqVyvN4xriazdRZxlnsczls+eOoixDE3G3CAiAv3Vynmhg5h3APoNgfCQ3W8fUehcDSB12i00KVijuJXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":704307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.73_1789422542883_0.4599855886969628","host":"s3://npm-registry-packages-npm-production"}},"0.4.74":{"name":"shugoi","version":"0.4.74","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.74","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"8732bec88dcc5df9be32d878d3f9663c5b0b2dd0","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.74.tgz","fileCount":47,"integrity":"sha512-RzQ9Jtx/sTeBMeFFy1sgsM0LOCMtxK7FDTfkiRGJ59BCXKM/6EBJpqrklpC4HoTZm6ARqfTgTgTpUaIxxTj8lw==","signatures":[{"sig":"MEUCIEk6a9LM5SB6shsGki8v4E/X50s+iqFfgFSrzLeZGOv0AiEApKuI7Xi7jHR+gAUTQPhQH5nwh1rsfb2Tyym0LAJMYNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":704967},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.74_1789423415789_0.8822184473636883","host":"s3://npm-registry-packages-npm-production"}},"0.4.75":{"name":"shugoi","version":"0.4.75","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.75","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"c19be29d7d5fdf99709654f9125522fe4b25589c","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.75.tgz","fileCount":47,"integrity":"sha512-TO1nP1VjhehVomaCayYwzXCd4UBP5Y8JriMcZk6Kq0TRK89cMoySyvbWEc5HhOH5TRCJ0e+UnZ2+2Xv603Oy0A==","signatures":[{"sig":"MEYCIQDPVZ8an5CPxa6JMJqMy0LWMepBh/s7gUAQP9Z8Esn0bQIhAMeiI4osBXY2KnmOaL1XomR2+4Xp6yQshXYWTdbxBAVO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708618},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.75_1789423590004_0.7561369912963531","host":"s3://npm-registry-packages-npm-production"}},"0.4.76":{"name":"shugoi","version":"0.4.76","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.76","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"f53bc6c70032ddd842be8ebc4918ecd4a647a8fa","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.76.tgz","fileCount":47,"integrity":"sha512-X6kb0K6TiBnA30WncGF93My2TXMm8+nFei29Ke/Y66+nBMj9+SVjbElQttIwaTpmPlMqlJKfQoQll9kVRAYzPw==","signatures":[{"sig":"MEUCIHfuqNc5fUFLEGhxX0FUMNFQUxBUGGo0LL2XxqCv99XeAiEAgVl5FINwLwrTBvdg3TRic1kp2hnrb1HhXTcQT/tWX14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":707778},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.76_1789423778471_0.23782363335794687","host":"s3://npm-registry-packages-npm-production"}},"0.4.77":{"name":"shugoi","version":"0.4.77","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.77","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"ffcd37f231aff3396b1ab26a5722f50b46462bee","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.77.tgz","fileCount":47,"integrity":"sha512-tNhC0U9c5WXnu8EY9imyQykFTeeySFtvEfrHhg6CvTSRG0ggbP8etoVVW331bZ4i/p5VesUQMwgif1Lt17QPLA==","signatures":[{"sig":"MEQCIGrih86nheVzgS5mx29M2unVJIoN5IMdodN6/8Ln0X75AiBBntPX16Yzm2PxFqc6DmqEf4jwkngRqTDFJWDjX/E5uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706043},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.77_1789424367228_0.8318108564774722","host":"s3://npm-registry-packages-npm-production"}},"0.4.78":{"name":"shugoi","version":"0.4.78","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.78","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"af762441f71ce196b76880ab969b9f08c65b8ab7","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.78.tgz","fileCount":47,"integrity":"sha512-sokNeUBOpbhyJTDfOSAVUB2pAe+DdcCVP4nu+KjNdYz50+khazjOSf+rPky/6dbNy9D+HG2qri9imBXfcWdxrg==","signatures":[{"sig":"MEQCIHGedFgNlgF/dJnSWSG3DbHfc4Na0G3Ye6ONTYnf1R0IAiBxt0Y8sPhDMk4iASQH20gqT4xtSuGJZMG+VW7cXeYOng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706861},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.78_1789424601803_0.4574577210948898","host":"s3://npm-registry-packages-npm-production"}},"0.4.79":{"name":"shugoi","version":"0.4.79","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.79","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b10d03ef013edd4dec1e84c87bca036e6b643792","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.79.tgz","fileCount":47,"integrity":"sha512-wIShs1G6b3RzthbA1p4LanKIPR+uIXD1YPwWzP49R9tbU0EsShMbfEVcX9EXq5QJOVFd+jHYS0PIl2udAdnpuQ==","signatures":[{"sig":"MEQCIB4LS+UhZboIHd0QWsb5tMGX3u07oXFNu1+ibSlWOqT4AiBONO9Ec/K+a/sB3iF3yy7XPC4RsgN0wmVrU6POyPBxGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706861},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.79_1789424673989_0.3063367810468838","host":"s3://npm-registry-packages-npm-production"}},"0.4.80":{"name":"shugoi","version":"0.4.80","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.80","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"875450918feb5890fc2c894e47869a7e0bcbf77a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.80.tgz","fileCount":47,"integrity":"sha512-pZWQY7tSzJKvTzs8dnVIFULKtLsarHVMMsKZ3dqWNke4dNHHh2EqNtKOigWBMCFWywgYVff/XwIM42HfWfM4eA==","signatures":[{"sig":"MEUCIEtIQqMzfnZ8E3x2UikapPSxVebD/+0X8P2RfYZlN17UAiEA74qmyS0ftH40HwtIODV3L7cfP51w5zh+suyoswxKaKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706986},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.80_1789424915304_0.610589659288213","host":"s3://npm-registry-packages-npm-production"}},"0.4.81":{"name":"shugoi","version":"0.4.81","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.81","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"19be9455a64e5f927d6276ca8fa4361616720de2","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.81.tgz","fileCount":47,"integrity":"sha512-dxjbtjAX9DbfKDEnbNxPj02QUxPP4RFvqiBML4Fsn3VAdklMB/JCgn3+bXplNR+KgKGkWC+hfBD7ZOZvanp+Bw==","signatures":[{"sig":"MEUCIBHzuuXKpCEVrAJjkSDF11m2X6y3YqX//SbOTd0OdxPlAiEAiumIX0ENEol/OfyhorikUh0gzfTdTTMo2gfjWrYNg84=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":706986},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3639002557ee61507566131b0b1f27b85973bcd0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.81_1789425146523_0.7678577519396019","host":"s3://npm-registry-packages-npm-production"}},"0.4.82":{"name":"shugoi","version":"0.4.82","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.82","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"2a322bf74b77e759fcce5a3355d65670cbaf9890","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.82.tgz","fileCount":47,"integrity":"sha512-sX+xveXjsRkzLpRpXlVbevZV2LLdfhKcsQ5AoA95/Wj14XVBvPiW4IuLNxjQ++vBdmcLTkP1beVmJyDEO54QVw==","signatures":[{"sig":"MEQCIAKvWTBHRxvBAAdP/qjLbf9KvCUPVaw0LPFiiWCsORkBAiBpjx0ctZrIFdVSBx1BFVhwsR0xl2koYOpuzokPwWwwQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708804},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"db5c881004df375b08f081061f803c44dedabe42","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.82_1789564586866_0.1250339014903985","host":"s3://npm-registry-packages-npm-production"}},"0.4.83":{"name":"shugoi","version":"0.4.83","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.83","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"2510b1460cc1539d0fc5fe3e7efc75e3610bb720","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.83.tgz","fileCount":47,"integrity":"sha512-kR7acoDnGQKykClqYlBCYuCAb27SrK6jsEL48xZ1asv0umVPNjuUeDMOmgydLUClX8D0gt2BuavUYMU4oiOlsw==","signatures":[{"sig":"MEYCIQCAlYLFHrd1MzrJs2VpLrMLaNiifX5hmvQa6AGzu8n3tQIhALAeJLT6fOpcwMSZ90im2+UjoPw5nwolQrZ7FQ9qEl8r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":719476},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"10460cbbbfa98e549dc08058e165839ce73615ef","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.83_1789571363016_0.9817984543784699","host":"s3://npm-registry-packages-npm-production"}},"0.4.84":{"name":"shugoi","version":"0.4.84","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.84","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"3b317c4f6827e3c8d4e183ae9e6e11c91dedadec","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.84.tgz","fileCount":47,"integrity":"sha512-9WNZH/3m2Hl1+qbIaFZeJcB9mOohCtRj92XAhsyXO+6Vwitgj0b+cC1HINE6c8uKR6y8QtQmeL4fy9qStG7mfw==","signatures":[{"sig":"MEUCIQCOMQaMvksoF373GWvRYsqm9A/Sy6uwOGZKmr9B198UDAIgIgzwF8EEmTQiw3IHvFIE1wSEkf01BuxjXLApDBCD6YA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":721728},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"3500af8da59a7ee9f6947fbbbf258ab9641578e0","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.84_1789572589286_0.5949816722271604","host":"s3://npm-registry-packages-npm-production"}},"0.4.85":{"name":"shugoi","version":"0.4.85","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.85","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"d4cb9ede87d81784c9b8126bb4631210cd53be7b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.85.tgz","fileCount":47,"integrity":"sha512-qBZVU6LbxmFKyitDEgXmuQIOhuijUAh80OrKWVjAKqMIv3mKP72fnHtrihfRtpkhIqNghnSzwPZcexIiWtetAQ==","signatures":[{"sig":"MEYCIQDHn62Z4fL9JTGPZ0vofEd8U5z1jFrMJYQnmT4MS+pnBwIhAMuIlAnmG+vIIC0g30u4hlI58bGHZPD8PZu7WrbFS76J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722039},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"31794a2a41eea504c715a12ece5dfe5442a04699","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.85_1789573277008_0.3651695666908832","host":"s3://npm-registry-packages-npm-production"}},"0.4.86":{"name":"shugoi","version":"0.4.86","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.86","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b17b77fe01d3a3898eb860a3a5990663ed0c8228","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.86.tgz","fileCount":47,"integrity":"sha512-mBT7hZpuRkUWIgWCew4PWsvXtkmt9o2VAu4QEybQ8OeJbFSRWZt/WWYx2imOxtnnux+lzxXRooJJ2U7k5iEtXw==","signatures":[{"sig":"MEUCIQDtJicw14A/0Y3QRLSAtazPHCKztXlRSIuCNZV9ToIn1AIgYCtO9ejD6dc4CnMERMelpmaHRwpTJk4uw3iJ3XkC1vw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":723262},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"0dc86462b3024d8e86a12276fb37ab3589faf38d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.86_1789591241270_0.7720661185159972","host":"s3://npm-registry-packages-npm-production"}},"0.4.87":{"name":"shugoi","version":"0.4.87","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.87","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b59fb451d39131a7d9a997246ca09d602af9ef97","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.87.tgz","fileCount":47,"integrity":"sha512-ggWlnRf+Fp2Bw19z6CkKhtWkm48S8r2+1PiMduDdXxymxLOFMdaEUDy2OKC+S8KgqvBjstwUZaEcTWKrCYv3bg==","signatures":[{"sig":"MEQCIBBKk6ukJQXXezNRbp4aPF/UkYAZfoDumPH8QQ8VlWmRAiBY4kAt2/pW8rmnp2XOgMDPAv9oDVS6FMmMGsg8/8IzvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":724174},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"704366ecebded6ddfc0849530256e2bed566ba10","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.87_1789591544854_0.42357742010253996","host":"s3://npm-registry-packages-npm-production"}},"0.4.88":{"name":"shugoi","version":"0.4.88","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.88","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"52a27f415f5ccc8bd200cab567bc35ccbdc19d5f","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.88.tgz","fileCount":47,"integrity":"sha512-ZqQJrWWbqTxgnw35znQSSdWPGLzut67nBeDfWSyiFDZ7qNUKMwgh/N0FUHXZ493SVu+bJKx8FVu45WjqvAO/3A==","signatures":[{"sig":"MEUCIQDtcjveq9ZPDI7ozJnOIkxyqCs3l4BXbpRRq3n+EiQI8QIgCtKP3oecubMSgp73DTYvLb33n9T3sLZwIbsrrMZ5CE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":725609},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"f6415c33a8ea4d1d633b1be0466dc797270c8528","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.88_1789597989896_0.9169007053191494","host":"s3://npm-registry-packages-npm-production"}},"0.4.89":{"name":"shugoi","version":"0.4.89","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.89","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"e54421bac79bf487d3987f872b0c0970034d6ced","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.89.tgz","fileCount":48,"integrity":"sha512-O9Dg2i0ugX/4wIJO5Jo/YdFCR7Ves2BFEiV6C6NWsakzC6tTlS0OIko/5fi5+Mm2ZKfNExksWVmH67RVuWthNw==","signatures":[{"sig":"MEUCIAba6VqCP3TpBwEJWjo31iIQSx4n3VHifWW5cKtGLciMAiEAwgfJlTCp0ssZaoQLHyM6waqFY8fclUFXjA/kvJVV/Z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":742692},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"f6415c33a8ea4d1d633b1be0466dc797270c8528","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.89_1789600377348_0.9889232141087587","host":"s3://npm-registry-packages-npm-production"}},"0.4.90":{"name":"shugoi","version":"0.4.90","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.90","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b87a7ad19ebf772bad4560626a286d374f4d582e","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.90.tgz","fileCount":48,"integrity":"sha512-R7EY1AzGJM/dWMIygqiS4Fqwk7RDff9a/MtyKGxCKTF1B0pjsZnBJ69erErdFNfG5dYWWCn5rwCSNs0VohzImw==","signatures":[{"sig":"MEUCIQC7TldjPdGbC34CsWSJbtJcoQYoJzMnY2JC4oWDaWvmOgIgVxrQIIQgjrGAGj7R956NdKssIimzGC+DvHPFRe9/iQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":742732},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"f6415c33a8ea4d1d633b1be0466dc797270c8528","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.90_1789641452355_0.4998665867790171","host":"s3://npm-registry-packages-npm-production"}},"0.4.91":{"name":"shugoi","version":"0.4.91","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.91","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"66b089e6e1f6d0f1fb91631d20b3760c6c2939d9","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.91.tgz","fileCount":50,"integrity":"sha512-d6uBHZNCOMambVOLxKsNACaxasCu5eabaKNdotl8laAeQBh/SFAqeyQEdrmCdwep/Tp95metd0rVHxCotiJmpA==","signatures":[{"sig":"MEYCIQDdRVe3QIYSM6mE63jPpXlQTWOJIpSKANwkEI7YS+TvrAIhANSOo/NuLbre8uJN8IDAZukjlZCKfJMvpddWoMrtBjFg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD6WrWMGT3wWWog429YNv1eRNM2RE240Df8FNWqbLEkgwIhAPPVbLIzvUSoI8OVJ5zDVnduF/aj0ZAjHng4baxjhnCT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":781853},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.91_1790119439667_0.1759374381461707","host":"s3://npm-registry-packages-npm-production"}},"0.4.92":{"name":"shugoi","version":"0.4.92","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.92","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"8585d4479acda091dd971a5d0c814d2c6719151b","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.92.tgz","fileCount":50,"integrity":"sha512-mjX521Duvs/1KMrd4El46Oj/OgghDD7GIsNvsCNWKQV6/W/grTVHsvR00J7l0hx6bbjj0dohRbY/T00P6gk+KQ==","signatures":[{"sig":"MEUCIQCF37FZxqG2v3vhsZQrV/LoLeEAevWFJMBGfu56zatukQIgdfJFvomYntvB+LUkyOAAT39Upvftw0JFhE2bl3VIcaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICyez4nOwPyxzhTt2kbI2ZnDKapeiyPZo97ng/kJUTs7AiEA1W6qXsHhOOIW0usV50fQDDfmo7HrKzqQWgiqNSOFHzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783057},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.92_1790121217141_0.24105210276320244","host":"s3://npm-registry-packages-npm-production"}},"0.4.93":{"name":"shugoi","version":"0.4.93","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.93","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"fe1a9d09bcdfe544556460738c72ffbc024201d1","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.93.tgz","fileCount":50,"integrity":"sha512-PLjfP1Qc1KHeDTcoPAotw49IugQ1vJMbjNeKIVaX19ZwF50qBXQSC6U8vL8VY+QJ2eVHZqBKlFvy61S8YuwpBQ==","signatures":[{"sig":"MEUCIQDKJc9WPg4HuSc+P8UtpqlI6cks0jLlFGCyLfzNzCYQwAIgUt/TlrWe2W4oc2FVTEkPXzX1eVe2EyXX7s1iwr6t+2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCHfZTyVOCDOJl8Zcy/LmeGXVUn9ZJZF7BK6i2i52Ff9gIgMHY52Dixg6KxrYrmp7poLtrv+sRTts+wRCL4Vrq77rI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":784066},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.93_1790121537765_0.54090780626682","host":"s3://npm-registry-packages-npm-production"}},"0.4.94":{"name":"shugoi","version":"0.4.94","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.94","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"bf422942d0f0a6d6abcc66a3ff5832ebe1af0c20","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.94.tgz","fileCount":50,"integrity":"sha512-vZNzjgrQTvWveAhe/1kYt6v63ZBJzeZUK2tadB/go32Mak+GU3Me2QnVvMR2zpHn6tJWWNKcjou06Llp3EN2zA==","signatures":[{"sig":"MEUCIQDwcM8z7P7u4K3bsGRFQqR1Xqq+OzFt9zEKHyZRXyDl2gIgdTEeXvPevM2/wlSxLoE3wovuqhZjQxw/80dizzHNZtc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEnWnQroGEMLFSzD8+zMQcMFKPysYygsJs4DlcPMGGr7AiBmxLUPBNNGMwkpG+ExxAOHilJuR5Mi/yIxudxqPnkajA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787062},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.94_1790178088304_0.6197292258086666","host":"s3://npm-registry-packages-npm-production"}},"0.4.95":{"name":"shugoi","version":"0.4.95","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.95","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"8a9b5d1bc4ba420618648dee20aa278d88d51ef7","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.95.tgz","fileCount":50,"integrity":"sha512-1rrP7peJh3QbEIPMyynvOcCkLbJdvvLXcv6uA1/VKByWcGB+lYd4XxFIsVFDwN7M2YPXplA/5k/SWI1cC2qxzA==","signatures":[{"sig":"MEQCIAWpeVz3BG6rA/0f8HtQf6zz/J5oZ+fBDzAixHTMInx5AiBHtUJ9jVIvVhzQVefPJXTUrLGF4leAqe4iZE1ULosVWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFXd7XFiGYPnKl2o5Htd7tIhC2ouedwOFK+qDCevJ2xFAiB15ZpNVwDvRH3KcECoM6FaYb6nnXa7by464K15LW69jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787652},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.95_1790178650916_0.8618350616140129","host":"s3://npm-registry-packages-npm-production"}},"0.4.96":{"name":"shugoi","version":"0.4.96","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.96","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"abf01b17cb2bc511bb3258ba10a5450e5c49f2aa","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.96.tgz","fileCount":50,"integrity":"sha512-Ri4PgXI99QObEqjkQCKYIhgagKKPhMZrNuggtk+nSd9PQGhNQRATiq0RGdl0qXT5cVTHFRfZvEbbH6OkhyJ9EA==","signatures":[{"sig":"MEUCIQCxQgOMhF1HsK/s8gC7pofmpSuAyYKEIsTDnxD3MntGQAIgVTRtRLvVWRf7ZDXRKG7LjaRLGpgvrYDJeMtjdP06RsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHwLIy5idAwvJ7SlG3pw5r52SYCeuOdlQ72tCjA5ehd9AiEAuYPyF61R3epypX8+p+m71k7DsqUK8pI0MAB/CZY9p/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787881},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.96_1790178910602_0.7831933712805628","host":"s3://npm-registry-packages-npm-production"}},"0.4.97":{"name":"shugoi","version":"0.4.97","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.97","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"8b785a8e4677152951403997981c12928d2ff729","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.97.tgz","fileCount":50,"integrity":"sha512-P/vGKJpUds3RTsxtQd0ZP/pXWWkYCwpVA0QXZ3Oavbg9W8RRZZ8yQ3z1A/ZmEbSbHUy8tUnk32ALvWQU2LILVw==","signatures":[{"sig":"MEUCIQDleyJn7j0t25/cD5eV5mIdA8oBUCpR/0amNCKJ+uBxrwIgMgzwwB2ICa+PPu25IaQ+sH5yJpCEg+7sxBZJSQLG5Jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCtnVmrxM1L0zry6FNpW5xK899KPeGJ3ZuDQ3m+SzCxrwIgG/5LyjEndlIIPb50wOghZZs31RfGEIAB49ocwgcLlyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":788016},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.97_1790179001669_0.3104241796436873","host":"s3://npm-registry-packages-npm-production"}},"0.4.98":{"name":"shugoi","version":"0.4.98","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.98","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"f1577bf7fb17ae2c1a158c4fd7884c2d7ecaf87a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.98.tgz","fileCount":50,"integrity":"sha512-as0HNPahUq5zEQaYDZz50A8rGAmctdZaVZwmTzAKiz19EhMjOHVrY26B6pmXisX/owp1V+Z+ZnsZm4uojkM2qQ==","signatures":[{"sig":"MEQCIBEju7MxxWhvY4KO6a7ijtrXy+XMY/IhS46Ny9obaEWLAiA5tSyIXaqbE3D0v4lZ6iJPcTf+8vpcqjgSSqa7No84Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDr2WNU4kVj8Qdpdy3eXyOjZseFFASwsRQTr1CYBV1n1gIgNAXIA8PfMSIbzocZBRqXMoiijDjg24sTdLFcG84gux0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":788839},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.98_1790179368493_0.5527004057984273","host":"s3://npm-registry-packages-npm-production"}},"0.4.99":{"name":"shugoi","version":"0.4.99","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.99","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"44d986870d7398f520b542072faedd87d7b874a9","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.99.tgz","fileCount":50,"integrity":"sha512-1xXbxywJHQY387ZP3kEU1F8r+VhIAd0cZQHA1wLIGmNI5An9MztWEE6Y1H8pDzQ1NMd+PNNuZzpknMdEL2DhAg==","signatures":[{"sig":"MEQCIDg7BIOrawhJfN0wRAk9JoOKIQ4raMbRNGNZGVLKb/gSAiAnpRYX0W+eGBKs7RCSo3fb7E3Ay77OSibAKStuLdiUjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCbRQ7ybC4UDx/Bt/6notsSLD2J7bAVGv6hG+r0NliI6gIhANkQf3/CAmmm2qeTaBll2AlLXexJusrdSW/ygUPE7XdA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":793327},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.99_1790180009166_0.6594054438236194","host":"s3://npm-registry-packages-npm-production"}},"0.4.100":{"name":"shugoi","version":"0.4.100","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.4.100","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"c82a77b77b66b44c20dfc78d0ed9d8dea2674343","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.4.100.tgz","fileCount":50,"integrity":"sha512-pfJ2N1fcackpeeHisGcTy4X+gSf3G9C1brZV1jbfc26k2B5CoMpD20JcnPOx3/XlHQmHpIKcb7CBYxsOylvURg==","signatures":[{"sig":"MEQCIAJ58jn5uuPnjdLSYRlo9T5vxBkz5wgw91KtsIHR7l7NAiBmsn17oT0PbsWPYWcJrbsigiYh67pPVhf+/kmAOFCjog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCCAfS7t46tGx/K8F4nf3P0x2kXypPcb1UTAGKFicm3JQIgZumpTiDYzGJBuUvT9OwIcifosZ35kHqXdSuRDdCz3Wc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":799081},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.4.100_1790180473218_0.5039964245388686","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"shugoi","version":"0.5.0","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.5.0","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"62fa3e6da06eb3369fe1ecfaf4bf4a838582639a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.0.tgz","fileCount":50,"integrity":"sha512-Z114mmZMP+24uoTdJshMHsg3p8YlNoETXui8WoQ28mUJFeQ5zGGIMfosD0loCIsa8ldabAHouAn836lGVrdg6g==","signatures":[{"sig":"MEUCIQD4cI8o5brv44vaUYYTF+7TE98bDAUFyGaRU+LhsvWvlwIgJgdx9uXhIG8X/vfNIOHc58FT1HylWgn10tN9O610k64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdZABom9/UwCuVw1VSHKVB5W6ysq+V21zMUmbh2y++hwIhAIS/JT7mW9h6knx6C5qlSEiB7T1wAMGe1PHjvYZ1J3An","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":801164},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.5.0_1790181497403_0.18260286145383442","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"shugoi","version":"0.5.1","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.5.1","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"883d95d70930fc0c64f1d3a0c170d3545fa1458f","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.1.tgz","fileCount":50,"integrity":"sha512-sPE7NXLIQRdpWWQrWF1kKia/Hvv8iToSMzkt3NXPQ/E2RtQGWPcNzPPbaO7dtHmwJx1ILCTmcISSpm6LDULISA==","signatures":[{"sig":"MEUCIFzMI1qzUC/FECCJTjtyanJRjHEsxO5T1i3Snw9me8SaAiEA88wnNS9fxl+NEoDtgGyZ0jzbt5YTN/DG5amko8lFPV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDps37Ej9NbQmSor6j/C3rpfqsy6pRIazo4k7/LHzH9DgIgZNldE+NvKIG41NN77iZNSL16G1AYOKRpKAs+rp66SHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":823642},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.5.1_1790187079011_0.6514640738371558","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"shugoi","version":"0.5.2","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.5.2","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"b878666fd5a547747f0fd87a9c878a3d4d91006a","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.2.tgz","fileCount":50,"integrity":"sha512-0YJlXtQIyiHYld+CekAhkbgcsx6zTNB4d/TDmLJ6Ytw9/unkrrOkLGhkAHMbOSA6CjYiuQXx1Wg0vlcfp5v8SA==","signatures":[{"sig":"MEUCIQDC1KIa/ZU4jgKtFRGW4zMwC+BJJKaCNqzhKJ5plTt0KQIgGvxnXN6wxJl4rMEzJxvim0YeGzmZwDwzcxh8B7UbyAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDglBOFylWDEJqanCifV/Vdz8Odu7rvVndYXp4g3lowFgIhALX3NHyn8kbivNZmTQQZE0W4g7gtMGDUVSHGndfqpeO4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":826318},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-http-bootstrap-transport.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.5.2_1790190349654_0.9674145211297769","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"shugoi","version":"0.5.3","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.5.3","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"bbd78cfffffed50a2ef1b79f77db1ccc44c9f9e3","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.3.tgz","fileCount":50,"integrity":"sha512-NTO4kGAULZondH8DqJHXWgVS0ulp1UGtqqLX4ykwSO1DWgAZcp4r0pBxJcBosC9HpZ49z7GoInfMuLAcMofJpQ==","signatures":[{"sig":"MEUCIDtBqBM2cYnYralTSnkJT2JXFVtXTXtUHVCAEK1hgNOjAiEA1BKEtLloHbasQ5oSV7z8mdsEH7dfZBApgN8Z6hb8rTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCiep6E/f/uT4FlTronpCm2r6h4PUTEXcOdSei5lxMvwgIgQR3MNJzJLNZ7J77ZlsgArDqmvb5+jULXW3cAnf6ljs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":843002},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-http-bootstrap-transport.mjs scripts/test-http-render-transport.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.5.3_1790191709174_0.4309598642068646","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"shugoi","version":"0.5.4","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","_id":"shugoi@0.5.4","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"homepage":"https://shugoi.com","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"6dfc5a988105e7acba515cbaa96405c3ec951e1f","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.4.tgz","fileCount":50,"integrity":"sha512-M2l0dOBM9UhZgrs1/C657GaKIzgd3WWfuscf/vuG9Eghu1IbdgA+jlqpvTXFVxLfZjL9dn2WHNV0+l7HsirB/A==","signatures":[{"sig":"MEQCIEi725nHEkNKGXkmYIDKFuM4bddu7BeVAAsmRgSL2lTQAiAwl2EAXz9ioMTuTXDa27jGVeZw68g7Stvfy6NrLUwZHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHVG4KBSdKLtBW4+xgsU9eLLQVnTNPT+MoxMvX5QaZDuAiBEnrDhYXxLgxlZY34nO0p1CfVqD+2tOEgpSB/sSVbglA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":842762},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-http-bootstrap-transport.mjs scripts/test-http-render-transport.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/shugoi_0.5.4_1790192788237_0.477278691713239","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"_id":"shugoi@0.5.5","bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"dist":{"shasum":"28d73d2959a00af68fe868a4ecd13f4c2ea9c49e","tarball":"https://registry.npmjs.org/shugoi/-/shugoi-0.5.5.tgz","fileCount":50,"integrity":"sha512-R5dgMBcqxLvjAVE7iDkwbmuhG2qnfkKM2cZ/db7lIVF4Y5Wwf97k+U/G/Si6A0uk82NTboPQoiv9QpqqxN6bow==","signatures":[{"sig":"MEYCIQD+0W0nXoefG7p2Dr0tb+uAplXpx7xmtYY5Rj7T7lupygIhAOY16wWRoStSseTm24U327ppBh9ndd6eDvFhNpEyTjv7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBOIwba07qeZMuTjTq7XdW1iDDFwKJQIaCVUZHr35dryAiBQE3a4Vd65DeQFnuE1KY5MSK4XK4xA9TrTSQfzZiBVuQ=="}],"unpackedSize":843324},"main":"./dist/index.cjs","name":"shugoi","type":"module","types":"./dist/index.d.ts","author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"require":{"types":"./dist/next/index.d.cts","default":"./dist/next/index.cjs"}},"./obfuscate":{"import":{"types":"./dist/obfuscate.d.ts","default":"./dist/obfuscate.js"},"require":{"types":"./dist/obfuscate.d.cts","default":"./dist/obfuscate.cjs"}}},"gitHead":"6dfac2cec961d74f19a36e987d445761eb2e4b1d","license":"MIT","scripts":{"test":"npm run test:artifacts","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run build && npm test","quality:source":"node scripts/check-source-quality.mjs","test:artifacts":"node --test scripts/test-artifacts.mjs scripts/test-next-artifacts.mjs scripts/test-fastify-artifacts.mjs scripts/test-metadata-only.mjs scripts/test-client-metadata-crawler.mjs scripts/test-restricted-card-labels.mjs scripts/test-document-bootstrap-gate.mjs scripts/test-bootstrap-wlc-mux.mjs scripts/test-http-bootstrap-transport.mjs scripts/test-http-render-transport.mjs scripts/test-websocket-upgrade-limit.mjs scripts/test-parallel-bootstrap-config.mjs scripts/test-express-startup-warmup.mjs scripts/test-pow-challenge-first-paint.mjs && npm run test:consumer-types","test:consumer-types":"tsc --noEmit --strict --module nodenext --moduleResolution nodenext --target es2022 --skipLibCheck tests/types/fastify-consumer.mts"},"version":"0.5.5","_npmUser":{"name":"ysannier","email":"yohan.sannier@gmail.com"},"homepage":"https://shugoi.com","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"overrides":{"esbuild":"^0.28.2"},"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"_npmVersion":"9.2.0","description":"Shugoi anti-abuse protection — one-line integration for Node.js","directories":{},"maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.15.0","allowScripts":{"sharp@0.34.5":true,"esbuild@0.21.5":true,"esbuild@0.27.7":true},"dependencies":{"ws":"^8.18.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.0","tsup":"^8.3.0","vitest":"^4.1.10","express":"5.2.1","fastify":"5.12.1","@types/ws":"^8.18.1","typescript":"^5.6.0","@types/node":"^22.0.0","@types/react":"^19.2.17","@types/express":"^5.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shugoi_0.5.5_1790193840441_0.1314780830918576"}}},"time":{"created":"2026-07-22T01:39:14.531Z","modified":"2026-09-23T20:04:00.738Z","0.1.0":"2026-07-22T01:39:14.762Z","0.1.1":"2026-07-22T16:02:37.250Z","0.1.2":"2026-07-22T16:06:23.015Z","0.1.3":"2026-07-22T16:36:42.891Z","0.1.4":"2026-07-22T17:19:21.702Z","0.2.0":"2026-07-22T22:55:55.604Z","0.2.1":"2026-07-23T16:20:12.642Z","0.2.2":"2026-07-23T16:22:12.806Z","0.2.3":"2026-07-23T16:50:43.825Z","0.2.4":"2026-07-23T16:51:54.722Z","0.2.5":"2026-07-23T17:04:03.536Z","0.2.6":"2026-07-23T17:05:33.573Z","0.2.7":"2026-07-23T17:23:30.430Z","0.2.8":"2026-07-23T18:01:24.668Z","0.2.9":"2026-07-23T18:02:35.510Z","0.2.10":"2026-07-23T18:05:48.431Z","0.2.11":"2026-07-24T20:57:54.169Z","0.2.12":"2026-07-25T13:39:41.697Z","0.2.13":"2026-07-25T17:24:36.343Z","0.2.14":"2026-07-25T18:19:22.035Z","0.2.15":"2026-07-25T18:20:53.125Z","0.2.16":"2026-07-25T18:25:42.994Z","0.2.17":"2026-07-25T18:31:45.361Z","0.2.18":"2026-07-25T19:54:37.088Z","0.2.19":"2026-07-25T20:06:17.980Z","0.2.20":"2026-07-25T20:59:41.711Z","0.2.21":"2026-07-30T17:04:13.215Z","0.3.0":"2026-07-30T19:44:52.862Z","0.3.1":"2026-07-30T20:14:40.795Z","0.3.2":"2026-07-31T12:40:30.866Z","0.3.3":"2026-08-01T17:20:54.554Z","0.3.4":"2026-08-01T22:21:49.370Z","0.3.5":"2026-08-01T23:56:31.872Z","0.3.6":"2026-08-02T11:40:11.846Z","0.3.7":"2026-08-02T14:35:25.397Z","0.3.8":"2026-08-02T16:35:05.290Z","0.4.5":"2026-08-03T13:59:40.658Z","0.4.16":"2026-08-04T12:27:10.005Z","0.4.17":"2026-08-04T12:37:10.930Z","0.4.18":"2026-08-04T13:03:56.278Z","0.4.19":"2026-08-04T13:15:35.618Z","0.4.20":"2026-08-06T15:42:57.551Z","0.4.21":"2026-08-06T21:08:43.985Z","0.4.22":"2026-08-06T21:12:49.869Z","0.4.23":"2026-08-06T21:28:15.582Z","0.4.24":"2026-08-07T19:27:17.908Z","0.4.25":"2026-08-08T18:18:01.941Z","0.4.29":"2026-08-09T01:25:50.227Z","0.4.30":"2026-08-09T11:51:53.469Z","0.4.31":"2026-08-12T19:49:03.112Z","0.4.32":"2026-08-12T19:51:27.189Z","0.4.33":"2026-08-12T19:53:24.088Z","0.4.34":"2026-08-12T19:55:45.353Z","0.4.35":"2026-08-22T13:03:52.120Z","0.4.36":"2026-08-22T13:18:42.387Z","0.4.37":"2026-08-22T13:23:30.183Z","0.4.38":"2026-08-22T13:28:21.962Z","0.4.39":"2026-08-22T14:57:09.529Z","0.4.40":"2026-08-23T12:22:37.880Z","0.4.41":"2026-08-27T17:06:47.061Z","0.4.42":"2026-09-08T21:43:20.840Z","0.4.43":"2026-09-08T21:52:37.613Z","0.4.44":"2026-09-08T21:59:50.829Z","0.4.45":"2026-09-08T22:08:30.313Z","0.4.46":"2026-09-08T22:18:23.427Z","0.4.47":"2026-09-08T22:28:56.505Z","0.4.48":"2026-09-08T22:34:39.487Z","0.4.49":"2026-09-08T22:39:37.524Z","0.4.50":"2026-09-08T22:40:26.214Z","0.4.51":"2026-09-08T22:44:07.132Z","0.4.52":"2026-09-08T22:51:35.723Z","0.4.53":"2026-09-09T10:07:22.153Z","0.4.54":"2026-09-09T10:17:32.455Z","0.4.55":"2026-09-09T10:51:51.367Z","0.4.56":"2026-09-09T10:56:30.333Z","0.4.57":"2026-09-09T10:58:00.657Z","0.4.58":"2026-09-09T11:03:24.206Z","0.4.59":"2026-09-11T11:39:54.054Z","0.4.60":"2026-09-11T11:41:12.472Z","0.4.61":"2026-09-11T12:13:19.242Z","0.4.62":"2026-09-14T18:03:23.040Z","0.4.63":"2026-09-14T18:09:10.862Z","0.4.64":"2026-09-14T18:14:02.473Z","0.4.65":"2026-09-14T18:22:06.636Z","0.4.66":"2026-09-14T18:24:44.083Z","0.4.67":"2026-09-14T18:33:59.116Z","0.4.68":"2026-09-14T18:42:52.788Z","0.4.69":"2026-09-14T18:46:55.465Z","0.4.70":"2026-09-14T18:51:50.005Z","0.4.71":"2026-09-14T21:37:20.204Z","0.4.72":"2026-09-14T21:43:55.478Z","0.4.73":"2026-09-14T21:49:03.041Z","0.4.74":"2026-09-14T22:03:35.944Z","0.4.75":"2026-09-14T22:06:30.175Z","0.4.76":"2026-09-14T22:09:38.624Z","0.4.77":"2026-09-14T22:19:27.387Z","0.4.78":"2026-09-14T22:23:21.945Z","0.4.79":"2026-09-14T22:24:34.140Z","0.4.80":"2026-09-14T22:28:35.612Z","0.4.81":"2026-09-14T22:32:26.725Z","0.4.82":"2026-09-16T13:16:27.017Z","0.4.83":"2026-09-16T15:09:23.180Z","0.4.84":"2026-09-16T15:29:49.440Z","0.4.85":"2026-09-16T15:41:17.156Z","0.4.86":"2026-09-16T20:40:41.435Z","0.4.87":"2026-09-16T20:45:45.058Z","0.4.88":"2026-09-16T22:33:10.051Z","0.4.89":"2026-09-16T23:12:57.510Z","0.4.90":"2026-09-17T10:37:32.508Z","0.4.91":"2026-09-22T23:23:59.764Z","0.4.92":"2026-09-22T23:53:37.231Z","0.4.93":"2026-09-22T23:58:57.866Z","0.4.94":"2026-09-23T15:41:28.407Z","0.4.95":"2026-09-23T15:50:51.009Z","0.4.96":"2026-09-23T15:55:10.714Z","0.4.97":"2026-09-23T15:56:41.749Z","0.4.98":"2026-09-23T16:02:48.588Z","0.4.99":"2026-09-23T16:13:29.277Z","0.4.100":"2026-09-23T16:21:13.317Z","0.5.0":"2026-09-23T16:38:17.492Z","0.5.1":"2026-09-23T18:11:19.098Z","0.5.2":"2026-09-23T19:05:49.763Z","0.5.3":"2026-09-23T19:28:29.311Z","0.5.4":"2026-09-23T19:46:28.352Z","0.5.5":"2026-09-23T20:04:00.565Z"},"bugs":{"url":"https://github.com/ShugoiTeam/shugoi-npm/issues"},"author":{"name":"Yohan SANNIER","email":"support@shugoi.com"},"license":"MIT","homepage":"https://shugoi.com","keywords":["shugoi","anti-bot","fingerprint","security","fraud-prevention"],"repository":{"url":"git+https://github.com/ShugoiTeam/shugoi-npm.git","type":"git"},"description":"Shugoi anti-abuse protection — one-line integration for Node.js","maintainers":[{"name":"ysannier","email":"yohan.sannier@gmail.com"}],"readme":"# Shugoi — Node.js\n\n[![npm version](https://img.shields.io/npm/v/shugoi)](https://npmjs.com/package/shugoi)\n\nHardware fingerprinting anti-abuse protection. One-line integration for Express, Fastify, Next.js, and vanilla Node.\n\n```bash\nnpm install shugoi\n```\n\nGuard scripts are loaded dynamically from the Shugoi API — updates apply instantly without updating `node_modules`.\n\n---\n\n## Quick Start\n\n### Express\n\n```ts\nimport express from \"express\";\nimport { createShugoiMiddleware } from \"shugoi\";\n\nconst app = express();\napp.use(createShugoiMiddleware({\n  siteKey: \"sg_sk_live_xxx\",\n  signingSecret: process.env.SHUGOKI_SECRET!,\n}));\n// All HTML responses now get CSP + anti-bot + guard injection\napp.get(\"/\", (req, res) => res.send(\"<h1>Protected</h1>\"));\napp.listen(3000);\n```\n\n### Express: ordre obligatoire des middlewares\n\nEn production, Shugoi doit être installé **avant** le fallback SPA, `express.static`, le rendu React/SSR et toute route qui renvoie `index.html`. Le middleware doit voir la navigation HTML originale afin d'appliquer le challenge, le WebSocket/WLC, l'injection du bootstrap et les décisions de blocage avant que l'application ne produise sa réponse.\n\n```ts\napp.use(createShugoiMiddleware({\n  siteKey: process.env.SHUGOI_SITE_KEY!,\n  signingSecret: process.env.SHUGOI_SIGNING_SECRET!,\n  baseUrl: process.env.SHUGOI_BASE_URL,       // URL publique de l'API\n  internalUrl: process.env.SHUGOI_INTERNAL_URL, // optionnel, serveur-à-serveur\n}));\n\napp.use(express.static(\"dist\"));\napp.get(\"*\", (_req, res) => res.sendFile(\"index.html\", { root: \"dist\" }));\n```\n\nNe placez pas le fallback SPA ou `express.static` avant Shugoi : cela peut servir directement le shell HTML, contourner la décision du middleware et donner l'impression que les protections diffèrent de Shugoi.com. Le même principe s'applique aux adaptateurs PHP, Fastify et aux reverse-proxies : la décision Shugoi doit précéder le rendu de la page protégée.\n\nUne SPA peut légitimement renvoyer un HTML initial contenant seulement `<div id=\"root\"></div>` : Shugoi protège alors la navigation et le bootstrap, tandis que React remplit le contenu après chargement JavaScript. Pour obtenir le contenu applicatif dans le HTML source, le site client doit en plus activer son propre SSR.\n\n### Fastify (native plugin)\n\n```ts\nimport Fastify from \"fastify\";\nimport { createShugoiPlugin } from \"shugoi\";\n\nconst app = Fastify();\napp.register(createShugoiPlugin({\n  siteKey: \"sg_sk_live_xxx\",\n  signingSecret: process.env.SHUGOKI_SECRET!,\n}));\napp.get(\"/\", async () => \"<h1>Protected</h1>\");\napp.listen({ port: 3000 });\n```\n\n### Next.js (proxy middleware)\n\n```ts\n// src/proxy.ts\nimport { createShugoiProxy, SHUGOI_MATCHER } from \"shugoi/next\";\n\nexport const proxy = createShugoiProxy({\n  siteKey: \"sg_sk_live_xxx\",\n  origin: \"https://your-app.example\",\n  signingSecret: process.env.SHUGOKI_SECRET!,\n});\nexport const config = { matcher: SHUGOI_MATCHER };\n```\n\nSet `origin` to the application's configured HTTP(S) origin and provide its site signing secret. Missing configuration or unavailable dependencies produce an error response. Protected pages currently support full HTML GET/HEAD navigation; RSC/data requests and Server Actions on those pages are rejected. API routes and explicitly allowlisted paths still require the application's own authentication and authorization. Use a shared local disk for workers serving the same application; multi-host token storage is not supported by this adapter.\n\n## PHP / Laravel\n\nA PHP port of the Shugoi middleware is available for Laravel applications. It's a full port of the Node.js middleware with the same security guarantees — browser fingerprinting, headless detection, rate limiting, CSP injection, and split-render.\n\n### Installation\n\n```bash\ncomposer require shugoi/shugoi-php\n```\n\n### Quick Start\n\n1. Publish the config:\n```bash\nphp artisan vendor:publish --tag=shugoi-config\n```\n\n2. Set environment variables in `.env`:\n```env\nSHUGOI_SITE_KEY=sg_sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nSHUGOI_SECRET=your_site_secret\nSHUGOI_INTERNAL_URL=http://127.0.0.1:8080\n```\n\n3. Register the middleware in `bootstrap/app.php`:\n```php\n->withMiddleware(function (Middleware $middleware) {\n    $middleware->append(\\Shugoi\\Laravel\\ShugoiMiddleware::class);\n    $middleware->excludeFrom(\\Shugoi\\Laravel\\ShugoiMiddleware::class, ['__shugoi/*']);\n})\n```\n\n4. Verify your setup:\n```bash\nphp artisan shugoi:setup\n```\n\n### Documentation\n\nSee the [shugoi-php package](https://github.com/ShugoiTeam/shugoi-php) for full documentation, configuration reference, Blade directives, Artisan commands, and non-Laravel PSR-15 usage.\n\n### Vanilla Node.js\n\n```ts\nimport http from \"http\";\nimport { createShugoiMiddleware } from \"shugoi\";\n\nconst mw = createShugoiMiddleware({\n  siteKey: \"sg_sk_live_xxx\",\n  signingSecret: process.env.SHUGOKI_SECRET!,\n});\nhttp.createServer(async (req, res) => {\n  let called = false;\n  await mw(req, res, () => { called = true; });\n  if (called) res.end(\"<h1>Protected</h1>\");\n}).listen(3000);\n```\n\n---\n\n## Options Reference\n\nAll options are available for both `createShugoiMiddleware` and `createShugoiPlugin`.\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `siteKey` | `string` | **required** | Your Shugoi siteKey |\n| `secret` | `string` | — | Site secret; required unless `signingSecret` is supplied |\n| `signingSecret` | `string` | `secret` | Required site-specific HMAC secret for validation, tokens and grants; process-wide environment fallbacks are rejected |\n| `allowlist` | `string[]` | `['/api', '/legal']` | Paths that bypass all protection |\n| `headlessPatterns` | `RegExp[]` | curl, wget, python, … | User-Agent patterns to block |\n| `botWhitelist` | `RegExp[]` | Googlebot, Bingbot, … | Legitimate bots (exempt from blocking AND split-render) |\n| `baseUrl` | `string` | `https://shugoi.com/api/v1` | Shugoi API base URL |\n| `debug` | `boolean` | `false` | Enable console logs |\n| `autoInject` | `boolean` | `true` | Auto-inject guard scripts into HTML |\n| `restrictedAccess` | `boolean` | `false` | **Obsolète** — le blocage des machines non whitelistées est géré automatiquement par le endpoint `/api/v1/wlc` (`applyDecision(false)` → `window.__sg_blocked`). L'option n'est pas requise. |\n| `extraDirectives` | `Record<string,string[]>` | — | Additional CSP sources **added** to defaults (union). To remove a source, use `csp: false` and set your own header. |\n| `verifyBots` | `boolean` | `true` | Verify whitelisted bots (Googlebot, Bingbot…) via reverse DNS lookup against their official IP ranges. Set to `false` if outbound DNS is blocked. |\n| `csp` | `boolean` | `true` | Set to `false` to disable CSP header entirely |\n| `blockStatus` | `number` | `403` | HTTP status code for block pages |\n| `locale` | `'fr' \\| 'en'` | auto (Accept-Language) | Language for blocking pages |\n| `blockPage` | `(ctx) => string` | — | Full override: custom blocking page HTML |\n| `splitRender` | `boolean` | `true` | Set to `false` to disable skeleton injection |\n| `multiProcess` | `boolean` | `false` | Enable disk-based HTML storage (required for PM2 cluster) |\n| `failOpenOnUnavailable` | `boolean` | `false` | Continue to the application when Shugoi configuration is unavailable; explicit security decisions remain enforced |\n\n---\n\n## Split-Render: What It Implies\n\nBy default (`splitRender: true`), Shugoi replaces the HTML body with a minimal skeleton that:\n1. Runs the guard detection script\n2. Identifies the machine fingerprint\n3. Verifies it against the whitelist\n4. Only then loads the real page content via `fetch()` + `document.write()`\n\nThis means:\n- The production bootstrap obfuscation varies identifiers and strings without `eval()`, but it is disabled by default because it has caused WebKit crashes. Set `SHUGOI_BOOT_OBFUSCATE=1` only after validating every supported browser; it does not change authorization.\n- **Bots get the original HTML**, not the skeleton (Googlebot, Bingbot, etc. — they exit before injection). No SEO impact.\n- **First paint is the skeleton**, not your actual content. The real page loads ~100-300ms after.\n- **Without JavaScript**, the page stays blank (skeleton). This is by design — it blocks non-JS scrapers, with the exception of verified search engine bots (Googlebot, Bingbot…) which receive the original HTML (see `verifyBots` option).\n\n### Consequences of `document.write`\n\nThe split-render mechanism uses `document.open()` + `document.write()` + `document.close()`, which has side effects you should be aware of:\n\n| Consequence | Detail |\n|---|---|\n| Back/forward cache (bfcache) is lost | Pages replaced by `document.write` are not eligible for bfcache. Navigating back reloads everything from scratch. |\n| Scroll restoration is lost | Native scroll restoration stops working, hence the explicit `window.scrollTo(0,0)` call. |\n| Scripts execute twice | Scripts in the skeleton run, then scripts in the real document run again. |\n| `DOMContentLoaded` fires twice | Libraries listening for this event may initialize twice. |\n| History API / client-side routing can break | An SPA that initializes in the skeleton and is then replaced loses its state. |\n| Browser extensions see the skeleton first | Some extensions don't re-apply their modifications to the replacement document. |\n\n### Should you disable split-render?\n\n| Your case | Recommendation |\n|---|---|\n| Server-rendered site, classic pages | Keep enabled. This is the blocking mode. |\n| SPA (React, Vue, Svelte) with client routing | **Test first.** The skeleton is replaced after SPA init: state may be lost. |\n| Strict CSP without inline scripts | Disable split-render or provide your own nonce-based CSP. |\n| First-paint-critical site (e-commerce, content) | Disable, or accept 100-300ms delay. |\n| Internal app behind authentication | Disable: anti-scraper protection is unnecessary. |\n\nWith `splitRender: false`, guards are injected as plain `<script src=\"…\">` tags. You keep Tor, VM, headless and anti-detect detection, plus rate limiting. You lose scraping protection against bots without JavaScript.\n\n---\n\n## CSP\n\nShugoi **merges** its CSP directives with any existing `Content-Security-Policy` header your app already sets (via Helmet, etc.). It does not overwrite.\n\nDefault directives injected:\n\n```\ndefault-src 'self';\nscript-src 'self' 'unsafe-inline' https://shugoi.com;\nconnect-src 'self' https://shugoi.com;\nstyle-src 'self' 'unsafe-inline' https://shugoi.com;\nfont-src 'self' https://shugoi.com data:;\nimg-src 'self' https://shugoi.com data: blob:;\nframe-ancestors 'self';\nobject-src 'none';\nbase-uri 'self';\nform-action 'self'\n```\n\nUse `extraDirectives` to add sources (union with defaults). Use `csp: false` to disable the CSP header entirely.\n\nIf your `baseUrl` points to a self-hosted API, its origin is automatically added to `script-src`, `connect-src`, `style-src`, `font-src`, and `img-src`.\n\n---\n\n## CORS / CORP (cross-origin resources)\n\nThe Shugoi **guard runs in your visitors' browsers** and fetches resources (guard script, `/wlc` whitelist check, fonts, block-page images) from `baseUrl`. This is a **cross-origin** request from your site to the API server.\n\nFor these requests to succeed, the **API server** must respond with:\n\n- `Access-Control-Allow-Origin: *` (or your site's origin)\n- `Cross-Origin-Resource-Policy: cross-origin` — **not** `same-site`, otherwise the browser blocks the response with `ERR_BLOCKED_BY_RESPONSE.NotSameSite` and every visitor is shown the restricted block page.\n\n**When using the hosted `https://shugoi.com/api/v1` endpoint, this is already configured.** If you self-host the API, add these headers on the routes that serve the guard (`/guard-detect`, `/guard`) and the whitelist check (`/wlc`, `/whitelist-check`).\n\nExample (Express):\n\n```js\napp.use('/api/v1', (req, res, next) => {\n  res.setHeader('Access-Control-Allow-Origin', '*');\n  res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');\n  next();\n});\n```\n\n> ⚠️ Do **not** set a global `Cross-Origin-Resource-Policy: same-site` on the API server: it will break the cross-origin guard fetch and block every visitor.\n\n---\n\n## Rate Limiting: Two Distinct Layers\n\n| Layer | Discriminant | Role | Threshold |\n|---|---|---|---|\n| Middleware (this module) | Source IP | Anti-DoS. Coarse by nature: multiple users can share one IP (corporate NAT, CGNAT). | High, ~300 req/5 min |\n| Guards (browser) | Machine fingerprint | Anti-fraud. Precise: identifies the physical device. | Per-action, configurable |\n\n`enableRateLimit` controls only the first layer. It is **disabled by default** precisely because an IP-based threshold produces false positives behind NAT. Only enable it if you are experiencing automated traffic spikes.\n\n---\n\n## Error Handling\n\nAll errors are `ShugoiError` instances with a machine-readable code.\n\n```ts\nimport { ShugoiError } from \"shugoi\";\n\ntry {\n  await checkLicense({ siteKey: \"invalid\", action: \"signup\", machineId: \"abc\" });\n} catch (err) {\n  if (err instanceof ShugoiError) {\n    switch (err.code) {\n      case \"invalid_site_key\":\n      case \"api_unreachable\":\n      case \"api_timeout\":\n      case \"unexpected_api_response\":\n        console.error(\"Shugoi:\", err.message);\n    }\n  }\n}\n```\n\n---\n\n## Tests\n\n```bash\nnpm test          # suite complète (vitest)\nnpm run build     # ESM + CJS + types (tsup)\nnpm run typecheck # tsc --noEmit\n```\n\n---\n\n## License\n\nMIT — Copyright (c) 2026 Yohan SANNIER\n","readmeFilename":"README.md"}