{"_id":"@axiomify/fingerprint","_rev":"13-dab611cbd82ea6c1f4c76f5ce672fd48","name":"@axiomify/fingerprint","dist-tags":{"next":"6.0.0-rc.2","latest":"7.1.0"},"versions":{"5.0.0":{"name":"@axiomify/fingerprint","version":"5.0.0","_id":"@axiomify/fingerprint@5.0.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"dist":{"shasum":"68da95b5c85dcce9a2ce97104f63dd8efabf1891","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-5.0.0.tgz","fileCount":8,"integrity":"sha512-bNgzEObwZmc+EFWi8MXwrXmDWCZFA/VT8YBJhXCjLQ+32XbMs0MCHWvSRoPowQIUPtHs27MhrErmd9Uu81H8yQ==","signatures":[{"sig":"MEYCIQCOrpQiRlLamnbqfXqSstqI1DvJlSqgAxgRvtEwM+tq4wIhAJKxg5ngeWVJ/sMDB3V2U4JFs3gsjjNgg3BgRAzM3Y7C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38216},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"3bbd9c5be6bf3ef40f74370b2b810bf255f5ac0a","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify. Generates a deterministic hash per request from IP, headers, and path for bot detection, fraud prevention, and session anomaly detection.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_5.0.0_1778232975729_0.9755559612111269","host":"s3://npm-registry-packages-npm-production"}},"6.0.0-rc.2":{"name":"@axiomify/fingerprint","version":"6.0.0-rc.2","_id":"@axiomify/fingerprint@6.0.0-rc.2","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"dist":{"shasum":"df2bcbded1feb5d85ecf17d1b7a575ff1e9d78ea","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.0.0-rc.2.tgz","fileCount":8,"integrity":"sha512-bkSXDlkyaPZZtm4hH8oQtr0il6fhAscVkHOwTZZlpL2lFZbD8xKzx6sO+KbYFyKfmFz3VtSIfY4GjFRa+J6Eng==","signatures":[{"sig":"MEQCIFIqjUBTs8H++kc5vgZ0akFI8ZOplWXoZS/RueH6UVAKAiAX/JPU669yTGthZ1Qjd/D4ShZ1kT9q6NELNNN2h/ElVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38221},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b2fe2efe0bf3bd6774c5dd32c5059fc57d91246a","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify. Generates a deterministic hash per request from IP, headers, and path for bot detection, fraud prevention, and session anomaly detection.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.0.0-rc.2_1779031465346_0.9135170188868003","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@axiomify/fingerprint","version":"6.0.0","author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.0.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"1e162159b5113f0829606c6fede8f895719926b9","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.0.0.tgz","fileCount":8,"integrity":"sha512-WbT7bsDxt9D1ip06uUuccB0tyjcqzcZbXuIOWqHLWyS5MBLiehCylkdRmtE0fk+yq2Zr3NI3bOku+6Kk9GakiA==","signatures":[{"sig":"MEYCIQCJOkLbWrDBU66IY2r7h307mZbvgxhx9LA+/4UJCmlq0AIhAKoa2uimn/3X3/m7vtqTDZIdwrkB3nDvDBWJJNuTiA6b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39331},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8c79d9774531748e77a0496d611b27cb9cd16717","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.0.0_1779729025031_0.49445844363885993","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@axiomify/fingerprint","version":"6.1.0","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.1.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"4aa15f835dd9fc1c86d4176e471ef5289a34bde3","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.1.0.tgz","fileCount":8,"integrity":"sha512-4ibtz5cn2NN+ZqpfG5e8vmhHGGjNk+H0wOIam3JgZT8FgoVa7AcJ9lIJaiHULCOOz+KcCEl/2rIwFmfNmBrmaw==","signatures":[{"sig":"MEUCIFFfDYWzmD+DqoYFIq/ZAftwaAogqHz7OT6QXUJocN4VAiEA32r6Rv02eWMbfXwgobL4EJrVqbxW93gcXuqJ/Xr7A/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39505},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"d4c979a2857b4f2f2da9fecb4691ffebea17b3b9","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.1.0_1779988434516_0.7938138756703013","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"@axiomify/fingerprint","version":"6.2.0","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.2.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"75f8dbcaa18367287ee2be70e05b60219bea8969","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.2.0.tgz","fileCount":8,"integrity":"sha512-zsyWKCFiCAFUEkg75w0x6+8RJ71qwdd8LcQ94eJI5n+TE8Om/OiXqGjPVyXytMd7N3/urfZ1KpQuz+uTZ/bVQw==","signatures":[{"sig":"MEYCIQC7A3SyjcvHaLxV3cFH1JJUYpiEdtglJa2FCqHvdBPLGwIhAN0uPgMdlz9rCmHS/97ybNvUvUVdb1NqxTDLEQX/ANgC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1a526aaa1f0a4281cdf8a9649c8ba82fb71a4331","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.2.0_1780239384623_0.3173615254733353","host":"s3://npm-registry-packages-npm-production"}},"6.2.1":{"name":"@axiomify/fingerprint","version":"6.2.1","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.2.1","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"f3abf95cf6b286640f7f4dd91b50c313bad769af","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.2.1.tgz","fileCount":8,"integrity":"sha512-4OjSJ/7pN1UiBsi/AOAMMoXphS8v7gaMX/1F336LB93qcyq11v2h2NBSEPnh8ygBgoPeGWxbOInLS2lkDYGMUg==","signatures":[{"sig":"MEQCIA87pNiU973YM4wEAl6wrEFENoCZuU2xZaGjEEEpoNcmAiAwEqxXkuRHZAvYO9FszXxQ8LhSQe5KN/dZ9ot+ttrpmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"97d75679b3402e24df8daff8f2d1b99cad4baf8c","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.2.1_1780306740918_0.5448728236095544","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"@axiomify/fingerprint","version":"6.3.0","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.3.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"f908cd9079ec1118ed67484b1acca4c1e6cdb41d","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.3.0.tgz","fileCount":8,"integrity":"sha512-35T853iL59aMGQQmssqRRaOilwGj9dDcnwkM1cRMbfHUzy4+/q3S9WIXFHnEnTAx9DWSnJrsonVrD+fqzf9ILg==","signatures":[{"sig":"MEYCIQCgIRmGXcjDkW0L2hRYblIvHcTzg7XWkERCZfEyLAOPagIhAK6rPVPoc41m5M9NtN4jhrcpKMY95mFxZGB1z2Ue2L0Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"e0d74c62efac09217319c3c3daf799f07504a3b5","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.3.0_1780874319276_0.19716246391611714","host":"s3://npm-registry-packages-npm-production"}},"6.3.1":{"name":"@axiomify/fingerprint","version":"6.3.1","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.3.1","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"416b1a2e71baa16f5f26eb92bcfe5e0ab95b3fc1","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.3.1.tgz","fileCount":8,"integrity":"sha512-BR1kxmWivEq3IVGxLltwQiaa6g//fjvIhKYhT3cy96d6CN9qlv3aMcW1Sa5Z0jSHjxn2qTrTEKnhHkCENkxexg==","signatures":[{"sig":"MEUCICKdE28uaJDBK3FvIJQDWRjv9xB+/q6dyMKxB4utYJZ5AiEAkkpKdpIo5DnUKya+/wxwVt2JWT0ohfZkhU7KV43qx14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"47fdfec5814dc151a4c897ffbd08f8b6da77c6cf","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.3.1_1781086989361_0.9013491542820753","host":"s3://npm-registry-packages-npm-production"}},"6.3.2":{"name":"@axiomify/fingerprint","version":"6.3.2","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.3.2","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"42f008f72c013069b3feedeb366fa4fb0c1ee828","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.3.2.tgz","fileCount":8,"integrity":"sha512-E9lNrfquCan50gHM8NvcYsBzxSkPQW2yHsN7g3x9chtx5LUAZaGJc+3YIVUijQDYySBb2ZsRHt84v+iETb037A==","signatures":[{"sig":"MEUCIQDZVysXfrZB2bKbJOr95m5EXhQw0LEGoIGRw8lbqE3i1AIgUSB3lO9BT4pLBGx4ObWsh2OAoI2dB71DviX2+hhzUnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"31537d5f1ae10e501f93ab2de7b44d58fca8339a","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.3.2_1781094427994_0.3685806735708772","host":"s3://npm-registry-packages-npm-production"}},"6.3.3":{"name":"@axiomify/fingerprint","version":"6.3.3","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@6.3.3","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"e4ec51f288ad6195301b46d833d5a4e15ab9a3ef","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-6.3.3.tgz","fileCount":8,"integrity":"sha512-7Ry9JxRdNxIS6U70un/g7t6eeaBa9MHH+S/dq40Qbm/+X+IKQkTAU7f38xQZAwJ3gH7s5afvhwLPWMEImt78Wg==","signatures":[{"sig":"MEQCIC4hj65iNwSmvuqZ3MN6mUiA7khTQBYMFksLSDd8pHibAiAbuCdcEhZDtghWSn53x0p4zYFPfS4t8A4aQaKdcYGspw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@6.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41079},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"63e551d02b129a801e2b1e93567ce50d5546e309","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_6.3.3_1781780504363_0.40322505347746174","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@axiomify/fingerprint","version":"7.0.0","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@7.0.0","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"c17db0088a3568dd7d8a10e1bc9024b33ba4c58b","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-7.0.0.tgz","fileCount":8,"integrity":"sha512-/YMYS9ZtVGhDj9OgGykSPyBn1rTsKtdVH8o9W/gO8QiQVGg9VBdIfTyeBq+V3+nDglttFaTjUOKBLWy4OuTCHA==","signatures":[{"sig":"MEUCIA0jBrno+mqmHI2K1nvpx6IQWqS0lV1EX3TxxTdGJasCAiEA5nXYz8+70VYMAMN/Zksy5ilTokNLkjkdq990PPcXJog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@7.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42785},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"fbf6e60487a5232ad20e80cfd584db8cb33e96b4","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_7.0.0_1782944839102_0.3035360114047625","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@axiomify/fingerprint","version":"7.0.1","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"url":"https://github.com/OTopman","name":"Topman","email":"okunlolatopman14@gmail.com"},"license":"MIT","_id":"@axiomify/fingerprint@7.0.1","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"dist":{"shasum":"1c193f5c9baa79e09931c3e76c2329f6cb34ffdb","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-7.0.1.tgz","fileCount":8,"integrity":"sha512-xfoPvOWrsEkdLx0kx9jsshuLLIUDYQrzGCimvfA7Ri94WEpvt/PYZDoIbCFYlGR1pLmxS3KZGM/Q4wNW8Ij3dQ==","signatures":[{"sig":"MEUCIQCRq+AtG3pOwMt1AXG3MxqsEFhvZ/zvnwS5hffajSgNLQIgdVl5D0iOmyxz687/h0VcCWxolZowV9K2nbnGN0pAyHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@7.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42785},"main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"86ca53ddf22675696310ae2706003c6cecd017bd","scripts":{"build":"tsup"},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"repository":{"url":"git+https://github.com/OTopman/axiomify.git","type":"git","directory":"packages/fingerprint"},"_npmVersion":"10.8.2","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@axiomify/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fingerprint_7.0.1_1785366578169_0.31280394411668233","host":"s3://npm-registry-packages-npm-production"}},"7.1.0":{"name":"@axiomify/fingerprint","version":"7.1.0","description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","main":"dist/index.js","types":"dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup","test":"vitest run tests --config ../../vitest.config.mts"},"dependencies":{"@axiomify/core":"^7.1.0"},"keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"author":{"name":"Topman","email":"okunlolatopman14@gmail.com","url":"https://github.com/OTopman"},"license":"MIT","homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","repository":{"type":"git","url":"git+https://github.com/OTopman/axiomify.git","directory":"packages/fingerprint"},"bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"publishConfig":{"access":"public"},"engines":{"node":">=20.0.0"},"_id":"@axiomify/fingerprint@7.1.0","gitHead":"c286687588228a3ade79dbe9eae74915a3d5d794","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-8su5PiNJXKPP/Q5GCoj9NgDH7DkEUJ7R8kmzt8nL6exYRfRTJcWbvMJ5zQwhbtYqzDUMQ3Xeu9GFtt3Oh6pHkg==","shasum":"8836450ee13f0c4669fab1e253e6f254db08056c","tarball":"https://registry.npmjs.org/@axiomify/fingerprint/-/fingerprint-7.1.0.tgz","fileCount":8,"unpackedSize":43107,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@axiomify%2ffingerprint@7.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDt/3wVFmwE5mKhzn0NaXnGznTUNK6CQj6MQAa4eUU4JAIhAOZnExWscMX8LkS2xeD0pi37en80zJAdCPXRF/4W6qIm"}]},"_npmUser":{"name":"topman","email":"okunlolatopman14@gmail.com"},"directories":{},"maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fingerprint_7.1.0_1786729712729_0.10889084286795736"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T09:36:15.646Z","modified":"2026-08-14T17:48:33.251Z","5.0.0":"2026-05-08T09:36:15.918Z","6.0.0-rc.2":"2026-05-17T15:24:25.489Z","6.0.0":"2026-05-25T17:10:25.180Z","6.1.0":"2026-05-28T17:13:54.653Z","6.2.0":"2026-05-31T14:56:24.778Z","6.2.1":"2026-06-01T09:39:01.065Z","6.3.0":"2026-06-07T23:18:39.412Z","6.3.1":"2026-06-10T10:23:09.514Z","6.3.2":"2026-06-10T12:27:08.145Z","6.3.3":"2026-06-18T11:01:44.531Z","7.0.0":"2026-07-01T22:27:19.299Z","7.0.1":"2026-07-29T23:09:38.325Z","7.1.0":"2026-08-14T17:48:32.883Z"},"bugs":{"url":"https://github.com/OTopman/axiomify/issues"},"author":{"name":"Topman","email":"okunlolatopman14@gmail.com","url":"https://github.com/OTopman"},"license":"MIT","homepage":"https://github.com/OTopman/axiomify/blob/main/docs/packages/fingerprint.md","keywords":["axiomify","fingerprinting","request-fingerprint","bot-detection","fraud-prevention","session-security","http-headers"],"repository":{"type":"git","url":"git+https://github.com/OTopman/axiomify.git","directory":"packages/fingerprint"},"description":"Server-side request fingerprinting for Axiomify — confidence-scored client identification from headers, IP, and TLS hints.","maintainers":[{"name":"topman","email":"okunlolatopman14@gmail.com"}],"readme":"# @axiomify/fingerprint\n\n[![npm version](https://img.shields.io/npm/v/@axiomify/fingerprint.svg)](https://npmjs.com/package/@axiomify/fingerprint)\n[![codecov](https://codecov.io/github/otopman/axiomify/graph/badge.svg)](https://codecov.io/github/otopman/axiomify)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/OTopman/axiomify/badge)](https://securityscorecards.dev/viewer/?uri=github.com/OTopman/axiomify)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nServer-side request fingerprinting for Axiomify. Generates a deterministic hash per request from IP, headers, and path for bot detection, fraud prevention, and session anomaly detection.\n\n> **Note:** This is a server-side fingerprint for request correlation — not a replacement for client-side anti-fraud platforms like Fingerprint Pro. It operates entirely on HTTP headers and cannot access browser APIs.\n\n## Install\n\n```bash\nnpm install @axiomify/fingerprint\n```\n\n## Quick start\n\n```typescript\nimport { useFingerprint } from '@axiomify/fingerprint';\n\nuseFingerprint(app, {\n  includeIp: true,\n  includePath: false, // false = fingerprint is path-agnostic (good for session tracking)\n  additionalHeaders: ['x-device-id', 'x-app-version'],\n  trustProxyHeaders: true, // use X-Forwarded-For when behind a proxy\n});\n```\n\nAfter this hook runs, every request has:\n\n```typescript\nreq.state.fingerprint; // string  — SHA-256 hex digest\nreq.state.fingerprintData; // object  — inputs that produced the hash\nreq.state.fingerprintConfidence; // number — 0–98 weighted confidence score\n```\n\n## Options\n\n| Option              | Type       | Default    | Description                                                                                               |\n| ------------------- | ---------- | ---------- | --------------------------------------------------------------------------------------------------------- |\n| `algorithm`         | `string`   | `'sha256'` | Hash algorithm (`'sha256'`, `'sha512'`, `'md5'`).                                                         |\n| `salt`              | `string`   | `''`       | HMAC salt — set this to a stable secret to prevent pre-image attacks.                                     |\n| `includeIp`         | `boolean`  | `true`     | Include client IP in the hash.                                                                            |\n| `includePath`       | `boolean`  | `false`    | Include request path. Disable for cross-path session correlation.                                         |\n| `additionalHeaders` | `string[]` | `[]`       | Extra request headers to include in the hash (lowercase).                                                 |\n| `trustProxyHeaders` | `boolean`  | `false`    | Use proxy headers (`X-Forwarded-For` / `X-Real-IP`) for IP extraction behind a proxy. See the note below. |\n\n> **Proxy-header trust:** when `trustProxyHeaders` is `true`, the client IP is taken from the **right-most** `X-Forwarded-For` entry (the hop closest to your proxy), not the left-most — the left-most value is fully client-controlled and trivially spoofable, which would let an attacker mint unlimited distinct fingerprints to evade fingerprint-keyed rate limiting. Only enable this when Axiomify sits directly behind a trusted proxy. When `false`, the socket IP is used. The `x-ja3-fingerprint` and `x-device-id` header signals are likewise only trusted when `trustProxyHeaders` is enabled.\n\n## Confidence score\n\nThe confidence score (0–98) estimates how stable the fingerprint is across requests from the same client:\n\n| Score range | Meaning                                         |\n| ----------- | ----------------------------------------------- |\n| 80–98       | High confidence — IP + multiple headers matched |\n| 50–79       | Medium — some headers missing or dynamic        |\n| 0–49        | Low — only 1–2 signals available                |\n\n## Usage in rate limiting and bot detection\n\n```typescript\nimport { useFingerprint } from '@axiomify/fingerprint';\nimport { createRateLimitPlugin } from '@axiomify/rate-limit';\n\nuseFingerprint(app, { includeIp: true });\n\n// Rate limit by fingerprint instead of raw IP (harder to bypass with IP rotation)\nconst limiter = createRateLimitPlugin({\n  store: redisStore,\n  windowMs: 60_000,\n  max: 100,\n  keyGenerator: (req) => req.state.fingerprint ?? req.ip,\n});\n```\n\n## Accessing fingerprint in handlers\n\n```typescript\napp.route({\n  method: 'POST',\n  path: '/auth/login',\n  handler: async (req, res) => {\n    const { fingerprint, fingerprintConfidence } = req.state;\n\n    if (fingerprintConfidence < 30) {\n      // Very low confidence — unusual client, may want extra verification\n    }\n\n    await auditLog.write({\n      fingerprint,\n      userId: req.body.email,\n      event: 'login',\n    });\n    res.send({ ok: true });\n  },\n});\n```\n","readmeFilename":"README.md"}