npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ipqs_device_tracker

v1.2.2

Published

NodeJS package to interface with the IPQS Device Fingerprint API.

Readme

NPM Device Fingerprint Tracker Package for React

This is the NPM/Yarn package for implementing the Device Fingerprint Tracker API in React

Further Reading

Installation

npm i ipqs_device_tracker

Initialization

To initialize the Device Tracker Package, you can do it in one of two ways

Asynchronously (recommended)

import DeviceFingerprint from 'ipqs_device_tracker';

function App() {
    const domain = `example.com`;
    const secretKey = `YourSecretKey`;
    useEffect(() => {
        DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
            DeviceFingerprint.Init();
        }).catch((err) => {
            // Any errors loading the external script will be caught here
            console.error(err);
        });
    });
}

Synchronously (not recommended)

This is not recommended as this will not tell you when the external script has been loaded, nor will it be easy to catch any errors loading an external script

import DeviceFingerprint from 'ipqs_device_tracker';

function App() {
    useEffect(() => {
        DeviceFingerprint.initializeScript();
        setTimeout( function() {
          DeviceFingerprint.AfterResult(afterResult);
          DeviceFingerprint.Init();
        }, 1000);
    });
}

Other Methods

NOTE: The following methods will only work after initializeScriptAsync() or initializeScriptAsync() have successfully loaded

Init();

Initializes the Device Tracker

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const callback = (result) => {
        console.log(result);
    }
    DeviceFingerprint.AfterResult(callback);
    DeviceFingerprint.Init();
});

AfterResult(callback);

Enables a callback function to be called when DeviceFingerprint.Init() succeeds

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const callback = (result) => {
        console.log(result);
    }
    DeviceFingerprint.AfterResult(callback);
    DeviceFingerprint.Init();
});

AfterFailure(callback);

Enables a callback function to be called when DeviceFingerprint.Init() fails

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const callback = (result) => {
        console.log(result);
    }
    DeviceFingerprint.AfterFailure(callback);
    DeviceFingerprint.Init();
});

Pause();

Pauses the Device Tracker

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    DeviceFingerprint.Init();
    DeviceFingerprint.Pause();
});

Resume();

Resumes the Device Tracker. This works in conjunction with Resume()

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    DeviceFingerprint.Init();
    DeviceFingerprint.Pause();
    DeviceFingerprint.Resume();
});

Trigger(formId, callback);

Sets a trigger on a form based on a specific id, and assigns a callback for when that form is submitted.

If used in conjunction with AfterResult(), you will not fire the result callback until that specific form is submitted.

This must be called before Init()

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const formId = "someFormId";
    const callback = (event) => {
        event.preventDefault();
    }
    DeviceFingerprint.Trigger(`#${formId}`, callback);
    DeviceFingerprint.Init();
});
<form id={formId}>
    <button type="submit">Submit</button>
</form>

SetFormFieldPrepend(prefix: string);

Sets the Form Field Prepend prefix for form submission triggers.

This works in conjunction with Trigger() and must be called before Init()

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const prefix = "somePrefix";
    DeviceFingerprint.SetFormFieldPrepend(prefix);
    
    const formId = "someFormId";
    const callback = (event) => {
        event.preventDefault();
    }
    DeviceFingerprint.Trigger(`#${formId}`, callback);
    DeviceFingerprint.Init();
});
<form id={formId}>
    <button type="submit">Submit</button>
</form>

Field(fieldName: string, fieldId: number);

Allows you to specify additional fields for order submission and payment processing

DeviceFingerprint.initializeScriptAsync(domain, secretKey).then(() => {
    const fieldName = "someField";
    const fieldId = "#someFieldId";
    DeviceFingerprint.Field(fieldName, fieldId);
    DeviceFingerprint.Init();
});