Javascript SDK

📘

This is v2 version of @suprsend/web-sdk

We have changed the web SDK authentication from workspace key-secret to public key and JWT based authentication. This is done to improve security in frontend applications.


This is the client javascript SDK used to integrate SuprSend features like Webpush, Preferences in javascript websites like React, Next.js, Angular, Vue.js etc.

NPM link: https://www.npmjs.com/package/@suprsend/web-sdk

Github link: https://github.com/suprsend/suprsend-web-sdk

Installation

npm install @suprsend/web-sdk@latest
yarn add @suprsend/web-sdk@beta

Integration

1. Create Client

Create suprSendClient instance and use same instance to access all the methods of SuprSend library.

import SuprSend from '@suprsend/web-sdk';

export const suprSendClient = new SuprSend(publicApiKey: string);
ParamsDescription
publicApiKey*This is public Key used to authenticate api calls to SuprSend. Get it in SuprSend dashboard ApiKeys -> Public Keys section

2. Authenticate user

Authenticate user so that all the actions performed after authenticating will be w.r.t that user. This is mandatory step and need to be called before using any other method. This is usually performed after successful login and on reload of page to re-authenticate user.

const authResponse = await suprSendClient.identify(
  distinctId: any,
  userToken?: string, // only needed in production environments for security
  { refreshUserToken: (oldUserToken: string, tokenPayload: Dictionary) => Promise<string> }
);
PropertiesDescription
distinctId*Unique identifier to identify a user across platform.
userTokenMandatory when enhanced security mode is on. This is ES256 JWT token generated in your server-side. Refer docs to create userToken.
refreshUserTokenThis function is called by SDK internally to get new userToken before existing token is expired. The returned string is used as the new userToken.

Returns: Promise<ApiResponse>


2.1 Check if user is authenticated

This method will check if user is authenticated i.e., distinctId is attached to SuprSend instance. To check for userToken also pass checkUserToken flag true.

suprSendClient.isIdentified(checkUserToken?: boolean): boolean

3. Reset user

This will remove user data from SuprSend instance. This is usually called on logout action.

await suprSendClient.reset();

Returns: Promise<ApiResponse>


Response Structure

Almost all the methods in this SDK return response type Promise<ApiResponse>

interface ApiResponse {
  status: 'success' | 'error';
  statusCode?: number;
  error?: { type?: string; message?: string };
  body?: any;
}

// success response
{
  status: "success",
  body?: any,
  statusCode?: number
}

// error response
{
  status: "error",
  error: {
    type: string,
    message: string
  }
}