v2.8.3

  • fix: FP.load() takes a huge time to run in some conditions
  • Handle cases where navigator.deviceMemory is a string

v3.2.2

  • fix: load() takes a huge time to run in some conditions
  • Handle cases where navigator.deviceMemory is a string

v3.2.1

  • Add more information to JS agent monitoring

v3.2.0

  • Add an experimental API for JS agent debugging. We can use it to analyze agent operation on your side and solve problems faster. Contact support for more details.
  • The minimal supported version of TypeScript is 4.0.0.
  • Amend Safari private mode detection. It always detected incognito: true in desktop Safari controlled by Karma or BrowserStack Automate.

v2.8.2

  • Amend Safari private mode detection. It always detected incognito: true in desktop Safari controlled by Karma or BrowserStack Automate.

v2.8.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:

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