You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@openpanel/sdk

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@openpanel/sdk - npm Package Compare versions

Comparing version
1.0.4
to
1.1.0
+1
-1
dist/index.cjs

@@ -1,1 +0,1 @@

"use strict";var l=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var h=(s,e)=>{for(var r in e)l(s,r,{get:e[r],enumerable:!0})},f=(s,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of p(e))!u.call(s,t)&&t!==r&&l(s,t,{get:()=>e[t],enumerable:!(i=y(e,t))||i.enumerable});return s};var P=s=>f(l({},"__esModule",{value:!0}),s);var g={};h(g,{OpenPanel:()=>d});module.exports=P(g);var o=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[r,i]of Object.entries(this.headers)){let t=await i;t!==null&&(e[r]=t)}return e}addHeader(e,r){this.headers[e]=r}async post(e,r,i,t){try{let n=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:r?JSON.stringify(r??{}):void 0,keepalive:!0,...i});if(n.status===401)return null;if(n.status!==200&&n.status!==202)throw new Error(`HTTP error! status: ${n.status}`);let a=await n.text();return a?JSON.parse(a):null}catch(n){if(t<this.maxRetries){let a=this.initialRetryDelay*2**t;return await new Promise(c=>setTimeout(c,a)),this.post(e,r,i,t+1)}return console.error("Max retries reached:",n),null}}async fetch(e,r,i={}){let t=`${this.baseUrl}${e}`;return this.post(t,r,i,0)}};var d=class{constructor(e){this.options=e;this.queue=[];let r={"openpanel-client-id":e.clientId};e.clientSecret&&(r["openpanel-client-secret"]=e.clientSecret),r["openpanel-sdk-name"]=e.sdk||"node",r["openpanel-sdk-version"]=e.sdkVersion||"1.0.4",this.api=new o({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:r})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send(e){return this.options.disabled||this.options.filter&&!this.options.filter(e)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push(e),Promise.resolve()):this.api.fetch("/track",e)}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,r){return this.log("track event",e,r),this.send({type:"track",payload:{name:e,profileId:r?.profileId??this.profileId,properties:{...this.global??{},...r??{}}}})}async identify(e){if(this.log("identify user",e),e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,r){let i=r?.deviceId;return delete r?.deviceId,this.track("revenue",{...r??{},...i?{__deviceId:i}:{},__revenue:e})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(e=>{this.send({...e,payload:{...e.payload,profileId:e.payload.profileId??this.profileId}})}),this.queue=[]}log(...e){this.options.debug&&console.log("[OpenPanel.dev]",...e)}};0&&(module.exports={OpenPanel});
"use strict";var d=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var h=(i,e)=>{for(var r in e)d(i,r,{get:e[r],enumerable:!0})},f=(i,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of y(e))!p.call(i,t)&&t!==r&&d(i,t,{get:()=>e[t],enumerable:!(s=u(e,t))||s.enumerable});return i};var I=i=>f(d({},"__esModule",{value:!0}),i);var g={};h(g,{OpenPanel:()=>l});module.exports=I(g);var o=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[r,s]of Object.entries(this.headers)){let t=await s;t!==null&&(e[r]=t)}return e}addHeader(e,r){this.headers[e]=r}async post(e,r,s,t){try{let n=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:r?JSON.stringify(r??{}):void 0,keepalive:!0,...s});if(n.status===401)return null;if(n.status!==200&&n.status!==202)throw new Error(`HTTP error! status: ${n.status}`);let a=await n.text();return a?JSON.parse(a):null}catch(n){if(t<this.maxRetries){let a=this.initialRetryDelay*2**t;return await new Promise(c=>setTimeout(c,a)),this.post(e,r,s,t+1)}return console.error("Max retries reached:",n),null}}async fetch(e,r,s={}){let t=`${this.baseUrl}${e}`;return this.post(t,r,s,0)}};var l=class{constructor(e){this.options=e;this.queue=[];let r={"openpanel-client-id":e.clientId};e.clientSecret&&(r["openpanel-client-secret"]=e.clientSecret),r["openpanel-sdk-name"]=e.sdk||"node",r["openpanel-sdk-version"]=e.sdkVersion||"1.1.0",this.api=new o({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:r})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}shouldQueue(e){return!!(e.type==="replay"&&!this.sessionId||this.options.waitForProfile&&!this.profileId)}async send(e){if(this.options.disabled||this.options.filter&&!this.options.filter(e))return Promise.resolve();if(this.shouldQueue(e))return this.queue.push(e),Promise.resolve();let r=await this.api.fetch("/track",e,{keepalive:e.type!=="replay"});this.deviceId=r?.deviceId;let s=!!this.sessionId;return this.sessionId=r?.sessionId,!s&&this.sessionId&&this.flush(),r}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,r){return this.log("track event",e,r),this.send({type:"track",payload:{name:e,profileId:r?.profileId??this.profileId,properties:{...this.global??{},...r??{}}}})}async identify(e){if(this.log("identify user",e),e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,r){let s=r?.deviceId;return delete r?.deviceId,this.track("revenue",{...r??{},...s?{__deviceId:s}:{},__revenue:e})}getDeviceId(){return this.deviceId??""}getSessionId(){return this.sessionId??""}fetchDeviceId(){return Promise.resolve(this.deviceId??"")}clear(){this.profileId=void 0,this.deviceId=void 0,this.sessionId=void 0}flush(){let e=[];for(let r of this.queue){if(this.shouldQueue(r)){e.push(r);continue}let s=r.type==="replay"?r.payload:{...r.payload,profileId:"profileId"in r.payload?r.payload.profileId??this.profileId:this.profileId};this.send({...r,payload:s})}this.queue=e}log(...e){this.options.debug&&console.log("[OpenPanel.dev]",...e)}};0&&(module.exports={OpenPanel});

@@ -44,2 +44,4 @@ import { ITrackHandlerPayload, IIdentifyPayload, IAliasPayload, IIncrementPayload, IDecrementPayload } from '@openpanel/validation';

profileId?: string;
deviceId?: string;
sessionId?: string;
global?: Record<string, unknown>;

@@ -50,6 +52,16 @@ queue: ITrackHandlerPayload[];

ready(): void;
send(payload: ITrackHandlerPayload): Promise<unknown>;
private shouldQueue;
send(payload: ITrackHandlerPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
setGlobalProperties(properties: Record<string, unknown>): void;
track(name: string, properties?: TrackProperties): Promise<unknown>;
identify(payload: IIdentifyPayload): Promise<unknown>;
track(name: string, properties?: TrackProperties): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
identify(payload: IIdentifyPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
/**

@@ -59,7 +71,21 @@ * @deprecated This method is deprecated and will be removed in a future version.

alias(payload: IAliasPayload): Promise<void>;
increment(payload: IIncrementPayload): Promise<unknown>;
decrement(payload: IDecrementPayload): Promise<unknown>;
increment(payload: IIncrementPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
decrement(payload: IDecrementPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
revenue(amount: number, properties?: TrackProperties & {
deviceId?: string;
}): Promise<unknown>;
}): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
getDeviceId(): string;
getSessionId(): string;
/**
* @deprecated Use `getDeviceId()` instead. This async method is no longer needed.
*/
fetchDeviceId(): Promise<string>;

@@ -66,0 +92,0 @@ clear(): void;

@@ -44,2 +44,4 @@ import { ITrackHandlerPayload, IIdentifyPayload, IAliasPayload, IIncrementPayload, IDecrementPayload } from '@openpanel/validation';

profileId?: string;
deviceId?: string;
sessionId?: string;
global?: Record<string, unknown>;

@@ -50,6 +52,16 @@ queue: ITrackHandlerPayload[];

ready(): void;
send(payload: ITrackHandlerPayload): Promise<unknown>;
private shouldQueue;
send(payload: ITrackHandlerPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
setGlobalProperties(properties: Record<string, unknown>): void;
track(name: string, properties?: TrackProperties): Promise<unknown>;
identify(payload: IIdentifyPayload): Promise<unknown>;
track(name: string, properties?: TrackProperties): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
identify(payload: IIdentifyPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
/**

@@ -59,7 +71,21 @@ * @deprecated This method is deprecated and will be removed in a future version.

alias(payload: IAliasPayload): Promise<void>;
increment(payload: IIncrementPayload): Promise<unknown>;
decrement(payload: IDecrementPayload): Promise<unknown>;
increment(payload: IIncrementPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
decrement(payload: IDecrementPayload): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
revenue(amount: number, properties?: TrackProperties & {
deviceId?: string;
}): Promise<unknown>;
}): Promise<void | {
deviceId: string;
sessionId: string;
} | null>;
getDeviceId(): string;
getSessionId(): string;
/**
* @deprecated Use `getDeviceId()` instead. This async method is no longer needed.
*/
fetchDeviceId(): Promise<string>;

@@ -66,0 +92,0 @@ clear(): void;

@@ -1,1 +0,1 @@

var a=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[r,t]of Object.entries(this.headers)){let i=await t;i!==null&&(e[r]=i)}return e}addHeader(e,r){this.headers[e]=r}async post(e,r,t,i){try{let s=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:r?JSON.stringify(r??{}):void 0,keepalive:!0,...t});if(s.status===401)return null;if(s.status!==200&&s.status!==202)throw new Error(`HTTP error! status: ${s.status}`);let n=await s.text();return n?JSON.parse(n):null}catch(s){if(i<this.maxRetries){let n=this.initialRetryDelay*2**i;return await new Promise(d=>setTimeout(d,n)),this.post(e,r,t,i+1)}return console.error("Max retries reached:",s),null}}async fetch(e,r,t={}){let i=`${this.baseUrl}${e}`;return this.post(i,r,t,0)}};var o=class{constructor(e){this.options=e;this.queue=[];let r={"openpanel-client-id":e.clientId};e.clientSecret&&(r["openpanel-client-secret"]=e.clientSecret),r["openpanel-sdk-name"]=e.sdk||"node",r["openpanel-sdk-version"]=e.sdkVersion||"1.0.4",this.api=new a({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:r})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}async send(e){return this.options.disabled||this.options.filter&&!this.options.filter(e)?Promise.resolve():this.options.waitForProfile&&!this.profileId?(this.queue.push(e),Promise.resolve()):this.api.fetch("/track",e)}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,r){return this.log("track event",e,r),this.send({type:"track",payload:{name:e,profileId:r?.profileId??this.profileId,properties:{...this.global??{},...r??{}}}})}async identify(e){if(this.log("identify user",e),e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,r){let t=r?.deviceId;return delete r?.deviceId,this.track("revenue",{...r??{},...t?{__deviceId:t}:{},__revenue:e})}async fetchDeviceId(){return(await this.api.fetch("/track/device-id",void 0,{method:"GET",keepalive:!1}))?.deviceId??""}clear(){this.profileId=void 0}flush(){this.queue.forEach(e=>{this.send({...e,payload:{...e.payload,profileId:e.payload.profileId??this.profileId}})}),this.queue=[]}log(...e){this.options.debug&&console.log("[OpenPanel.dev]",...e)}};export{o as OpenPanel};
var a=class{constructor(e){this.baseUrl=e.baseUrl,this.headers={"Content-Type":"application/json",...e.defaultHeaders},this.maxRetries=e.maxRetries??3,this.initialRetryDelay=e.initialRetryDelay??500}async resolveHeaders(){let e={};for(let[r,s]of Object.entries(this.headers)){let t=await s;t!==null&&(e[r]=t)}return e}addHeader(e,r){this.headers[e]=r}async post(e,r,s,t){try{let i=await fetch(e,{method:"POST",headers:await this.resolveHeaders(),body:r?JSON.stringify(r??{}):void 0,keepalive:!0,...s});if(i.status===401)return null;if(i.status!==200&&i.status!==202)throw new Error(`HTTP error! status: ${i.status}`);let n=await i.text();return n?JSON.parse(n):null}catch(i){if(t<this.maxRetries){let n=this.initialRetryDelay*2**t;return await new Promise(l=>setTimeout(l,n)),this.post(e,r,s,t+1)}return console.error("Max retries reached:",i),null}}async fetch(e,r,s={}){let t=`${this.baseUrl}${e}`;return this.post(t,r,s,0)}};var o=class{constructor(e){this.options=e;this.queue=[];let r={"openpanel-client-id":e.clientId};e.clientSecret&&(r["openpanel-client-secret"]=e.clientSecret),r["openpanel-sdk-name"]=e.sdk||"node",r["openpanel-sdk-version"]=e.sdkVersion||"1.1.0",this.api=new a({baseUrl:e.apiUrl||"https://api.openpanel.dev",defaultHeaders:r})}init(){}ready(){this.options.waitForProfile=!1,this.flush()}shouldQueue(e){return!!(e.type==="replay"&&!this.sessionId||this.options.waitForProfile&&!this.profileId)}async send(e){if(this.options.disabled||this.options.filter&&!this.options.filter(e))return Promise.resolve();if(this.shouldQueue(e))return this.queue.push(e),Promise.resolve();let r=await this.api.fetch("/track",e,{keepalive:e.type!=="replay"});this.deviceId=r?.deviceId;let s=!!this.sessionId;return this.sessionId=r?.sessionId,!s&&this.sessionId&&this.flush(),r}setGlobalProperties(e){this.global={...this.global,...e}}async track(e,r){return this.log("track event",e,r),this.send({type:"track",payload:{name:e,profileId:r?.profileId??this.profileId,properties:{...this.global??{},...r??{}}}})}async identify(e){if(this.log("identify user",e),e.profileId&&(this.profileId=e.profileId,this.flush()),Object.keys(e).length>1)return this.send({type:"identify",payload:{...e,properties:{...this.global,...e.properties}}})}async alias(e){}async increment(e){return this.send({type:"increment",payload:e})}async decrement(e){return this.send({type:"decrement",payload:e})}async revenue(e,r){let s=r?.deviceId;return delete r?.deviceId,this.track("revenue",{...r??{},...s?{__deviceId:s}:{},__revenue:e})}getDeviceId(){return this.deviceId??""}getSessionId(){return this.sessionId??""}fetchDeviceId(){return Promise.resolve(this.deviceId??"")}clear(){this.profileId=void 0,this.deviceId=void 0,this.sessionId=void 0}flush(){let e=[];for(let r of this.queue){if(this.shouldQueue(r)){e.push(r);continue}let s=r.type==="replay"?r.payload:{...r.payload,profileId:"profileId"in r.payload?r.payload.profileId??this.profileId:this.profileId};this.send({...r,payload:s})}this.queue=e}log(...e){this.options.debug&&console.log("[OpenPanel.dev]",...e)}};export{o as OpenPanel};
{
"name": "@openpanel/sdk",
"version": "1.0.4",
"version": "1.1.0",
"module": "./dist/index.js",

@@ -24,3 +24,6 @@ "config": {

"types": "./dist/index.d.ts",
"files": ["dist", "README.md"],
"files": [
"dist",
"README.md"
],
"exports": {

@@ -27,0 +30,0 @@ ".": {