Changelog

v3.1.0

  • Increased stability of the audio fingerprint component on iPhone
  • Made JS agent use a TLS server located in Europe when the region is set to EU, for example:
    FingerprintJS.load({
      token: 'your-token',
      region: 'eu'
    })
  • Added an option to set a custom TLS endpoint:
    FingerprintJS.load({
      token: 'your-token',
      tlsEndpoint: 'https://mytls.example.com'
    })

v3.0.3

  • fix: Incognito detection doesn't work in mobile Safari 13 and newer

v3.0.2

  • fix: It's impossible to set an endpoint that is relative to the current domain in the FingerprintJS.load() function. For example, the following code didn't work:

    const fp = await FingerprintJS.load({ token: 'your-token', endpoint: '/metrics' })
    const result = await fp.get()

    Warning. If you set the endpoint option to something like metrics.example.com, it will break because this is not an expected behavior. Change the endpoint to https://metrics.example.com.

v2.7.7

  • fix: An error that occurs in a very rare case when navigator.permissions is present while window.Notification isn't.
  • Handle cases where new Date().getTimezoneOffset() returns a string
  • fix: Visitor identifier can change due to a daylight saving time shift

v3.0.1

  • Unexpected entropy component errors are printed in the debug mode of the JS agent. Such errors should be reported to us.
  • Support elder browsers like IE 11, Chrome 42 and Firefox 48 (a Promise polyfill is required)
  • Handle cases where new Date().getTimezoneOffset() returns a string
  • fix: Getting the visitor identifier fails when cookies are disabled
  • fix: Visitor identifier can change due to a daylight saving time shift

v3.0.0

  • The JS agent API is changed to provide a simple transition from the open-source version of the agent.
  • The installation methods have been unified so that they have same options and same usage methods. Also we've added a couple new ways to install.
  • Result and error handling has been simplified. A single value type is returned (resolved) and a single value type is thrown (rejected). The agent throws error only when a visitor identification fails due to incorrect agent setup or network issues; special kinds of visitors don't cause errors.