@thomasseanfahey/fp-lib
v1.0.1
Published
Offline DOM fingerprinting utilities (no network, no keys).
Downloads
104
Maintainers
Readme
@thomasseanfahey/fp-lib
Offline DOM fingerprinting utilities.
This library computes deterministic structural fingerprints for DOM elements and injects them into the DOM as data-fp attributes.
It contains compatibility exports matching the original fp-lib API, but runs entirely locally (no network, no keys, no subscriptions).
Install
npm i @thomasseanfahey/fp-libCore usage (browser)
import { init, querySelectors } from '@thomasseanfahey/fp-lib/browser';
// Inject fingerprints into the live DOM (legacy-compatible)
await init(document);
// Resolve elements using CSS selectors or fingerprint strings
const els = await querySelectors(document, {
title: 'h1',
buyButton: ['button.buy', 'button[data-testid="buy"]']
});
console.log(els.title?.getAttribute('data-fp'));Lower-level primitives
import { computeFingerprints, injectFingerprints, findByFingerprint } from '@thomasseanfahey/fp-lib/browser';
const map = computeFingerprints(document.body);
injectFingerprints(document.body, map);
const fp = document.querySelector('h1')?.getAttribute('data-fp');
const h1 = fp ? findByFingerprint(document, fp) : null;Notes
- No network calls. No telemetry. No API keys.
- Fingerprints are deterministic for a given DOM structure and the chosen heuristics.
- Structural drift (DOM reordering) will change fingerprints; for dynamic sites, consider selecting stable anchors and reinjecting after major re-renders. "# fp-lib"
