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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@incognia/web-sdk

v1.8.0

Published

Incognia SDK for the web

Downloads

5,190

Readme

Incognia Web SDK

The Incognia SDK for the web.

Documentation can be found at https://developer.incognia.com/docs

Installation

npm

npm install @incognia/web-sdk

pnpm

pnpm install @incognia/web-sdk

yarn

yarn add @incognia/web-sdk

CDN

Add the following script to your HTML:

<script src="https://repo.incognia.com/web/latest/incognia-web-sdk.js"></script>

Getting started

Import the package:

// ES6
import IncogniaWebSdk from '@incognia/web-sdk'

// CommonJS (Outdated)
const IncogniaWebSdk = require('@incognia/web-sdk')

// CDN Script
const IncogniaWebSdk = window.IncogniaWebSdk

Library API methods

Init

Initialize the Web SDK with your Web Application ID. This step is required, and further methods will not work if the SDK is not initialized.

IncogniaWebSdk.init('<your-web-app-id>')

Account ID

The method setAccountId receives an account ID and stores locally. It is then added to the requestToken data.

IncogniaWebSdk.setAccountId('@accountId')

The method clearAccountId removes the account ID from the local storage.

IncogniaWebSdk.clearAccountId()

Generate request token

This method generates a request token and returns it.

const requestToken = await IncogniaWebSdk.generateRequestToken()

Send custom event

This method sends a custom event with the client custom data.

IncogniaWebSdk.sendCustomEvent({
  tag: 'test-event',
  externalId: 'external-id',
  accountId: 'account-id',
  address: {
    street: 'Main Street',
    number: '100',
    city: 'New York',
    state: 'NY',
    countryName: 'US',
    postalCode: '10001',
    addressLine: 'Main Street 100, New York, NY, US, 10001',
    latitude: 40.7486,
    longitude: -73.9864
  },
  properties: {
    string: 'string',
    number: 123,
    boolean: false
  }
})

Geolocation API

By default, the Incognia Web SDK does not ask the user for geolocation, because:

  • Not all use cases requires geolocation
  • The website should have total control when to ask for geolocation
  • The lib should run silently.

However, if the geolocation is available (It was authorized by the user before), the Web SDK will include the geolocation information into the token.

Allowing Incognia to request geolocation permissions

When getting the requestToken, the option parameter askForGeolocation can be used to allow Incognia to automatically request the user location permissions.

const requestToken = await IncogniaWebSdk.generateRequestToken({
  askForGeolocation: true
})

How and when to ask the user for geolocation?

The ideal flow to manually ask the user for geolocation is:

1. Initialize the SDK:

IncogniaWebSdk.init(...)
  1. Ask the user for Geolocation and then proceed to get the token:
navigator.geolocation.getCurrentPosition(generateRequestToken, generateRequestToken)

function generateRequestToken() {
  const requestToken = await IncogniaWebSdk.generateRequestToken()
  //TODO: Send the requestToken to your backend.
}

Browser Compatibility

Except for IE, this lib is compatible with every modern browser.

However, for Geolocation API, each browser handles it differently. For example, Firefox v104 does not provide the Geolocation API by default. So the user has to enable it. Besides, for some OSs like MacOS, you have to allow the browser to access the geolocation. If the geolocation is not available, the token will be generated without that information.