Skip to content

Commit bfba692

Browse files
committed
Privacy mode
1 parent 5798dd8 commit bfba692

19 files changed

Lines changed: 1459 additions & 194 deletions

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ const result = await client.get({
2626

2727
console.log(result.visitorId, result.confidence.score);
2828

29+
const bot = result.components.find((component) => component.id === 'browser.botDetection');
30+
const privacy = result.components.find((component) => component.id === 'browser.privacyMode');
31+
32+
console.log(bot?.value?.verdict, privacy?.value?.verdict);
33+
2934
const recalculated = await hashComponents(result.components, {
3035
namespace: 'my-product'
3136
});
@@ -63,7 +68,9 @@ After building, include the generated file directly:
6368
- Policy layer with allow/deny collectors, categories, sensitivity limits, and consent gates.
6469
- Deterministic canonical normalization before hashing.
6570
- Browser quirk detection for known unstable Safari, Firefox, Firefox iOS, iOS desktop mode, Chromium, and Samsung Internet paths.
66-
- Expanded built-in collectors for client hints, navigator properties, screen frame, media preferences, touch, architecture, storage capabilities, plugins, vendor flavors, PDF viewer, Apple Pay, Private Click Measurement, DOM blockers, iframe-isolated fonts, font preferences, audio base latency, audio fingerprinting, WebGL extensions, canvas, and math behavior.
71+
- Expanded built-in collectors for client hints, navigator properties, bot and automation evidence, private-mode indicators, screen frame, media preferences, touch, architecture, storage capabilities, plugins, vendor flavors, PDF viewer, Apple Pay, Private Click Measurement, DOM blockers, iframe-isolated fonts, font preferences, audio base latency, audio fingerprinting, WebGL extensions, canvas, and math behavior.
72+
- `browser.botDetection` returns a scored verdict with evidence such as WebDriver exposure, automation globals, headless user agents, language/plugin inconsistencies, and impossible window dimensions.
73+
- `browser.privacyMode` returns conservative private-mode indicators from storage availability, IndexedDB behavior, quota estimates, and persistence state. Modern browsers intentionally do not expose a universal incognito flag, so this component reports likelihood and evidence rather than pretending to be an oracle.
6774
- SHA-256 via Web Crypto or Node Crypto, with fallback support for constrained runtimes.
6875
- Confidence scoring and collector error metadata.
6976
- Optional visit state storage through `localStorage` or a custom adapter.

0 commit comments

Comments
 (0)