Developer Guide: SDK Installation

A lightweight, drop-in SDK for sending secure session and event data to the Unshared Labs platform. Designed for server environments like Express, Fastify, or Next.js API routes.

Installation

npm install unshared-clientjs-sdk
# or
yarn add unshared-clientjs-sdk
    

Quick Example

import UnsharedLabsClient from "unshared-clientjs-sdk";

const client = new UnsharedLabsClient({
  apiKey: process.env.UNSHARED_LABS_API_KEY!,
});
    

API: submitEvent

Sends events to the Unshared Labs platform.

submitEvent(
  eventType: string,
  userId: string,
  ipAddress: string,
  deviceId: string,
  sessionHash: string,
  userAgent: string,
  clientTimestamp: string,
  eventDetails?: map<String,any> | null
): Promise<any>
    

Example: Express Server

import express from "express";
import UnsharedLabsClient from "unshared-clientjs-sdk";

const app = express();
app.use(express.json());

const client = new UnsharedLabsClient({
  apiKey: process.env.UNSHARED_LABS_API_KEY!,
});

app.post("/login", async (req, res) => {
  const { userId } = req.body;

  try {
    await client.submitEvent(
      "login",
      userId,
      req.ip,
      req.headers["x-device-id"]?.toString() || "unknown-device",
      req.headers["x-session-hash"]?.toString() || "unknown-session",
      req.headers["user-agent"] || "",
      new Date().toISOString(),
      new Map(Object.entries({"example": true, "source": 'test-server' }))
    );

    res.status(200).json({ message: "Login tracked" });
  } catch (err) {
    res.status(500).json({ error: err instanceof Error ? err.message : err });
  }
});

app.listen(3000, () => console.log("Server running on port 3000"));