Socket
Socket
Sign inDemoInstall

@trudan-studios/helika-sdk

Package Overview
Dependencies
24
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.0 to 0.3.1

251

dist/base.js
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -44,8 +35,34 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

}
fingerprint() {
return __awaiter(this, void 0, void 0, function* () {
async fingerprint() {
let loadOptions = {
apiKey: fpApiKey,
scriptUrlPattern: [
`https://yard.helika.io/8nc7wiyuwhncrhw3/01cb9q093c?apiKey=${fpApiKey}&version=<version>&loaderVersion=<loaderVersion>`,
index_1.fingerprint.defaultScriptUrlPattern, // Fallback to default CDN in case of error
],
endpoint: [
'https://yard.helika.io/8nc7wiyuwhncrhw3/o9wn3zvyblw3v8yi8?region=us',
index_1.fingerprint.defaultEndpoint // Fallback to default endpoint in case of error
],
};
let fingerprintData = null;
try {
let loaded = await index_1.fingerprint.load(loadOptions);
fingerprintData = await loaded.get();
return {
fingerprint_id: fingerprintData?.visitorId,
request_id: fingerprintData?.requestId
};
}
catch (e) {
console.error('Error loading fingerprint data');
return {};
}
}
async fullFingerprint() {
try {
let loadOptions = {
apiKey: fpApiKey,
scriptUrlPattern: [
`https://yard.helika.io/8nc7wiyuwhncrhw3/01cb9q093c?apiKey=${fpApiKey}&version=<version>&loaderVersion=<loaderVersion>`,
`https://yard.helika.io/8nc7wiyuwhncrhw3/01cb9q093c?apiKey=${fpApiKey}&version=3&loaderVersion=3.8.6`,
index_1.fingerprint.defaultScriptUrlPattern, // Fallback to default CDN in case of error

@@ -58,61 +75,31 @@ ],

};
let fingerprintData = null;
try {
let loaded = yield index_1.fingerprint.load(loadOptions);
fingerprintData = yield loaded.get();
return {
fingerprint_id: fingerprintData === null || fingerprintData === void 0 ? void 0 : fingerprintData.visitorId,
request_id: fingerprintData === null || fingerprintData === void 0 ? void 0 : fingerprintData.requestId
};
let loaded = await index_1.fingerprint.load(loadOptions);
let fingerprintData = await loaded.get({
extendedResult: true
});
if (this.disabledDataSettings & index_1.DisableDataSettings.BrowserInfo) {
fingerprintData.browserName = "";
fingerprintData.browserVersion = "";
fingerprintData.incognito = false;
}
catch (e) {
console.error('Error loading fingerprint data');
return {};
if (this.disabledDataSettings & index_1.DisableDataSettings.DeviceInfo) {
fingerprintData.device = "";
}
});
}
fullFingerprint() {
return __awaiter(this, void 0, void 0, function* () {
try {
let loadOptions = {
apiKey: fpApiKey,
scriptUrlPattern: [
`https://yard.helika.io/8nc7wiyuwhncrhw3/01cb9q093c?apiKey=${fpApiKey}&version=3&loaderVersion=3.8.6`,
index_1.fingerprint.defaultScriptUrlPattern, // Fallback to default CDN in case of error
],
endpoint: [
'https://yard.helika.io/8nc7wiyuwhncrhw3/o9wn3zvyblw3v8yi8?region=us',
index_1.fingerprint.defaultEndpoint // Fallback to default endpoint in case of error
],
};
let loaded = yield index_1.fingerprint.load(loadOptions);
let fingerprintData = yield loaded.get({
extendedResult: true
});
if (this.disabledDataSettings & index_1.DisableDataSettings.BrowserInfo) {
fingerprintData.browserName = "";
fingerprintData.browserVersion = "";
fingerprintData.incognito = false;
}
if (this.disabledDataSettings & index_1.DisableDataSettings.DeviceInfo) {
fingerprintData.device = "";
}
if (this.disabledDataSettings & index_1.DisableDataSettings.IpInfo) {
fingerprintData.ip = "";
fingerprintData === null || fingerprintData === void 0 ? true : delete fingerprintData.ipLocation;
}
if (this.disabledDataSettings & index_1.DisableDataSettings.OsInfo) {
fingerprintData.os = "";
fingerprintData.osVersion = "";
}
// if (this.disabledDataSettings & DisableDataSettings.VpnInfo) {
// // Not here
// }
return fingerprintData;
if (this.disabledDataSettings & index_1.DisableDataSettings.IpInfo) {
fingerprintData.ip = "";
delete fingerprintData?.ipLocation;
}
catch (e) {
console.error('Error loading fingerprint data');
return {};
if (this.disabledDataSettings & index_1.DisableDataSettings.OsInfo) {
fingerprintData.os = "";
fingerprintData.osVersion = "";
}
});
// if (this.disabledDataSettings & DisableDataSettings.VpnInfo) {
// // Not here
// }
return fingerprintData;
}
catch (e) {
console.error('Error loading fingerprint data');
return {};
}
}

@@ -180,75 +167,73 @@ getUrlParam(paramName) {

}
sessionCreate(params) {
return __awaiter(this, void 0, void 0, function* () {
this.sessionID = (0, uuid_1.v4)();
this.sessionExpiry = this.addMinutes(new Date(), 15);
let fpData = {};
let utms = null;
let helika_referral_link = null;
try {
if (exenv_1.default.canUseDOM) {
if (params.type === 'Session Start') {
let local_session_id = localStorage.getItem('sessionID');
let expiry = localStorage.getItem('sessionExpiry');
if (local_session_id && expiry && (new Date(expiry) > new Date())) {
this.sessionID = local_session_id;
localStorage.setItem('sessionExpiry', this.sessionExpiry.toString());
return;
}
else {
// Only grab fingerprint data if it's a new session
fpData = yield this.fullFingerprint();
}
async sessionCreate(params) {
this.sessionID = (0, uuid_1.v4)();
this.sessionExpiry = this.addMinutes(new Date(), 15);
let fpData = {};
let utms = null;
let helika_referral_link = null;
try {
if (exenv_1.default.canUseDOM) {
if (params.type === 'Session Start') {
let local_session_id = localStorage.getItem('sessionID');
let expiry = localStorage.getItem('sessionExpiry');
if (local_session_id && expiry && (new Date(expiry) > new Date())) {
this.sessionID = local_session_id;
localStorage.setItem('sessionExpiry', this.sessionExpiry.toString());
return;
}
localStorage.setItem('sessionID', this.sessionID);
localStorage.setItem('sessionExpiry', this.sessionExpiry.toString());
utms = this.getAllUrlParams();
helika_referral_link = this.getUrlParam('linkId');
if (utms) {
localStorage.setItem('helika_utms', JSON.stringify(utms));
else {
// Only grab fingerprint data if it's a new session
fpData = await this.fullFingerprint();
}
if (helika_referral_link) {
localStorage.setItem('helika_referral_link', helika_referral_link);
}
}
localStorage.setItem('sessionID', this.sessionID);
localStorage.setItem('sessionExpiry', this.sessionExpiry.toString());
utms = this.getAllUrlParams();
helika_referral_link = this.getUrlParam('linkId');
if (utms) {
localStorage.setItem('helika_utms', JSON.stringify(utms));
}
if (helika_referral_link) {
localStorage.setItem('helika_referral_link', helika_referral_link);
}
}
catch (e) {
console.error(e);
}
catch (e) {
console.error(e);
}
//send event to initiate session
var initevent = {
created_at: new Date().toISOString(),
game_id: this.gameId,
event_type: 'session_created',
event: {
type: params.type,
sdk_name: "Web",
sdk_version: version_1.version,
sdk_class: params.sdk_class,
fp_data: fpData,
helika_referral_link: helika_referral_link,
session_id: this.sessionID,
utms: utms,
event_sub_type: 'session_created'
}
//send event to initiate session
var initevent = {
created_at: new Date().toISOString(),
game_id: this.gameId,
event_type: 'session_created',
event: {
type: params.type,
sdk_name: "Web",
sdk_version: version_1.version,
sdk_class: params.sdk_class,
fp_data: fpData,
helika_referral_link: helika_referral_link,
session_id: this.sessionID,
utms: utms,
event_sub_type: 'session_created'
};
let event_params = {
id: this.sessionID,
events: [initevent]
};
try {
return await this.postRequest(`/game/game-event`, event_params);
}
catch (e) {
if (e && 'response' in e && 'data' in e.response && 'message' in e.response.data &&
e.response.data.message.startsWith('Internal server error - Invalid API key:')) {
this.sessionID = null;
if (exenv_1.default.canUseDOM) {
localStorage.removeItem('sessionID');
}
};
let event_params = {
id: this.sessionID,
events: [initevent]
};
try {
return yield this.postRequest(`/game/game-event`, event_params);
throw new Error('Error: Invalid API key. Please re-initiate the Helika SDK with a valid API Key.');
}
catch (e) {
if (e && 'response' in e && 'data' in e.response && 'message' in e.response.data &&
e.response.data.message.startsWith('Internal server error - Invalid API key:')) {
this.sessionID = null;
if (exenv_1.default.canUseDOM) {
localStorage.removeItem('sessionID');
}
throw new Error('Error: Invalid API key. Please re-initiate the Helika SDK with a valid API Key.');
}
throw new Error(e.message);
}
});
throw new Error(e.message);
}
}

@@ -255,0 +240,0 @@ addHours(date, hours) {

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -47,136 +38,126 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

}
startSession() {
return __awaiter(this, void 0, void 0, function* () {
try {
if (exenv_1.default.canUseDOM) {
// Todo: Move this into the Base Class once Users have been consolidated
return yield this.sessionCreate({
sdk_class: "Events",
type: 'Session Start'
});
}
async startSession() {
try {
if (exenv_1.default.canUseDOM) {
// Todo: Move this into the Base Class once Users have been consolidated
return await this.sessionCreate({
sdk_class: "Events",
type: 'Session Start'
});
}
catch (e) {
console.error(e);
}
});
}
catch (e) {
console.error(e);
}
}
refreshSession() {
return __awaiter(this, void 0, void 0, function* () {
try {
if (exenv_1.default.canUseDOM) {
// Todo: Move this into the Base Class once Users have been consolidated
return yield this.sessionCreate({
sdk_class: "Events",
type: 'Session Refresh'
});
}
async refreshSession() {
try {
if (exenv_1.default.canUseDOM) {
// Todo: Move this into the Base Class once Users have been consolidated
return await this.sessionCreate({
sdk_class: "Events",
type: 'Session Refresh'
});
}
catch (e) {
console.error(e);
}
});
}
catch (e) {
console.error(e);
}
}
createEvent(events) {
return __awaiter(this, void 0, void 0, function* () {
yield this.refreshSessionIdFromStorage();
if (!this.sessionID) {
throw new Error('Could not initiate session. API Key is invalid. Disabling Sending Messages. Please reach out to Helika Support to request a valid API key.');
async createEvent(events) {
await this.refreshSessionIdFromStorage();
if (!this.sessionID) {
throw new Error('Could not initiate session. API Key is invalid. Disabling Sending Messages. Please reach out to Helika Support to request a valid API key.');
}
let created_at = new Date().toISOString();
let helika_referral_link = null;
let utms = null;
let current_url = "";
try {
if (exenv_1.default.canUseDOM) {
helika_referral_link = localStorage.getItem('helika_referral_link');
utms = localStorage.getItem('helika_utms');
utms = utms ? JSON.parse(utms) : null;
current_url = window.location.href;
}
let created_at = new Date().toISOString();
let helika_referral_link = null;
let utms = null;
let current_url = "";
try {
if (exenv_1.default.canUseDOM) {
helika_referral_link = localStorage.getItem('helika_referral_link');
utms = localStorage.getItem('helika_utms');
utms = utms ? JSON.parse(utms) : null;
current_url = window.location.href;
}
}
catch (e) {
console.error(e);
}
let newEvents = events.map((event) => {
let givenEvent = Object.assign({}, event);
givenEvent.event.helika_referral_link = helika_referral_link;
givenEvent.event.utms = utms;
givenEvent.event.url = current_url;
if (event.event.session_id) {
givenEvent.event.client_session_id = event.event.session_id;
}
catch (e) {
console.error(e);
}
let newEvents = events.map((event) => {
let givenEvent = Object.assign({}, event);
givenEvent.event.helika_referral_link = helika_referral_link;
givenEvent.event.utms = utms;
givenEvent.event.url = current_url;
if (event.event.session_id) {
givenEvent.event.client_session_id = event.event.session_id;
}
givenEvent.event.session_id = this.sessionID;
givenEvent.event.player_id = this.playerId;
givenEvent.created_at = created_at;
givenEvent.game_id = this.gameId;
return givenEvent;
});
var params = {
id: this.sessionID,
events: newEvents
};
this.extendSession();
return this.postRequest(`/game/game-event`, params);
givenEvent.event.session_id = this.sessionID;
givenEvent.event.player_id = this.playerId;
givenEvent.created_at = created_at;
givenEvent.game_id = this.gameId;
return givenEvent;
});
var params = {
id: this.sessionID,
events: newEvents
};
this.extendSession();
return this.postRequest(`/game/game-event`, params);
}
createUAEvent(events) {
return __awaiter(this, void 0, void 0, function* () {
yield this.refreshSessionIdFromStorage();
if (!this.sessionID)
throw new Error('SDK Session has not been started. Please call the SessionStart function to initialize instance with a Session ID.');
let created_at = new Date().toISOString();
let helika_referral_link = null;
let utms = null;
try {
if (exenv_1.default.canUseDOM) {
helika_referral_link = localStorage.getItem('helika_referral_link');
utms = localStorage.getItem('helika_utms');
utms = utms ? JSON.parse(utms) : null;
}
async createUAEvent(events) {
await this.refreshSessionIdFromStorage();
if (!this.sessionID)
throw new Error('SDK Session has not been started. Please call the SessionStart function to initialize instance with a Session ID.');
let created_at = new Date().toISOString();
let helika_referral_link = null;
let utms = null;
try {
if (exenv_1.default.canUseDOM) {
helika_referral_link = localStorage.getItem('helika_referral_link');
utms = localStorage.getItem('helika_utms');
utms = utms ? JSON.parse(utms) : null;
}
catch (e) {
console.error(e);
}
catch (e) {
console.error(e);
}
let newEvents = events.map((event) => {
let givenEvent = Object.assign({}, event);
givenEvent.event.helika_referral_link = helika_referral_link;
givenEvent.event.utms = utms;
if (event.event.session_id) {
givenEvent.event.client_session_id = event.event.session_id;
}
let newEvents = events.map((event) => {
let givenEvent = Object.assign({}, event);
givenEvent.event.helika_referral_link = helika_referral_link;
givenEvent.event.utms = utms;
if (event.event.session_id) {
givenEvent.event.client_session_id = event.event.session_id;
}
givenEvent.event.session_id = this.sessionID;
givenEvent.created_at = created_at;
givenEvent.game_id = 'UA';
return givenEvent;
});
var params = {
id: this.sessionID,
events: newEvents
};
this.extendSession();
return this.postRequest(`/game/game-event`, params);
givenEvent.event.session_id = this.sessionID;
givenEvent.created_at = created_at;
givenEvent.game_id = 'UA';
return givenEvent;
});
var params = {
id: this.sessionID,
events: newEvents
};
this.extendSession();
return this.postRequest(`/game/game-event`, params);
}
refreshSessionIdFromStorage() {
return __awaiter(this, void 0, void 0, function* () {
if (exenv_1.default.canUseDOM) {
let local_storage_id = localStorage.getItem('sessionID');
let expiry = localStorage.getItem('sessionExpiry');
if (local_storage_id && expiry) {
if (new Date(expiry) < new Date()) {
yield this.refreshSession();
}
else {
this.sessionID = local_storage_id;
this.sessionExpiry = new Date(expiry);
}
async refreshSessionIdFromStorage() {
if (exenv_1.default.canUseDOM) {
let local_storage_id = localStorage.getItem('sessionID');
let expiry = localStorage.getItem('sessionExpiry');
if (local_storage_id && expiry) {
if (new Date(expiry) < new Date()) {
await this.refreshSession();
}
else if (this.sessionID) { // edge case where localstorage was cleared
localStorage.setItem('sessionID', this.sessionID);
else {
this.sessionID = local_storage_id;
this.sessionExpiry = new Date(expiry);
}
}
});
else if (this.sessionID) { // edge case where localstorage was cleared
localStorage.setItem('sessionID', this.sessionID);
}
}
}
}
exports.EVENTS = EVENTS;

@@ -1,9 +0,4 @@

import { UA } from "./ua";
import { EVENTS } from "./events";
export { UA } from "./ua";
export { EVENTS } from "./events";
import { FingerprintJSPro } from "@fingerprintjs/fingerprintjs-pro-react";
declare const _default: {
EVENTS: typeof EVENTS;
UA: typeof UA;
};
export default _default;
export declare enum UABaseURL {

@@ -10,0 +5,0 @@ UA_DEV = 0,

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.fingerprint = exports.DisableDataSettings = exports.EventsBaseURL = exports.UABaseURL = void 0;
const ua_1 = require("./ua");
const events_1 = require("./events");
exports.fingerprint = exports.DisableDataSettings = exports.EventsBaseURL = exports.UABaseURL = exports.EVENTS = exports.UA = void 0;
var ua_1 = require("./ua");
Object.defineProperty(exports, "UA", { enumerable: true, get: function () { return ua_1.UA; } });
var events_1 = require("./events");
Object.defineProperty(exports, "EVENTS", { enumerable: true, get: function () { return events_1.EVENTS; } });
const fingerprintjs_pro_react_1 = require("@fingerprintjs/fingerprintjs-pro-react");
exports.default = { EVENTS: events_1.EVENTS, UA: ua_1.UA };
var UABaseURL;

@@ -9,0 +10,0 @@ (function (UABaseURL) {

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

export const version: "0.3.0";
export const version: "0.3.1";

@@ -5,2 +5,2 @@ "use strict";

// Generated by genversion.
exports.version = '0.3.0';
exports.version = '0.3.1';
{
"name": "@trudan-studios/helika-sdk",
"version": "0.3.0",
"version": "0.3.1",
"description": "The Helika SDK is for developers to be able to make API calls to the Helika DEV and PROD endpoints.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc