New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@statsig/client-core

Package Overview
Dependencies
Maintainers
4
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@statsig/client-core - npm Package Compare versions

Comparing version 0.0.1-beta.24 to 0.0.1-beta.25

2

package.json
{
"name": "@statsig/client-core",
"version": "0.0.1-beta.24",
"version": "0.0.1-beta.25",
"dependencies": {},

@@ -5,0 +5,0 @@ "type": "commonjs",

@@ -6,5 +6,5 @@ export declare class MockLocalStorage {

clear(): void;
getItem(key: string): string | null;
getItem(key: string): Promise<string | null>;
setItem(key: string, value: string): void;
removeItem(key: string): void;
}
"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());
});
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -27,3 +36,5 @@ exports.MockLocalStorage = void 0;

getItem(key) {
return this.data[key] ? this.data[key] : null;
return __awaiter(this, void 0, void 0, function* () {
return Promise.resolve(this.data[key] ? this.data[key] : null);
});
}

@@ -30,0 +41,0 @@ setItem(key, value) {

@@ -26,2 +26,3 @@ "use strict";

Object.defineProperty(exports, "Storage", { enumerable: true, get: function () { return StorageProvider_1.Storage; } });
const UUID_1 = require("./UUID");
__exportStar(require("./$_StatsigGlobal"), exports);

@@ -57,2 +58,3 @@ __exportStar(require("./ClientInterfaces"), exports);

Log: Log_1.Log,
getUUID: UUID_1.getUUID,
Storage: StorageProvider_1.Storage });

@@ -0,3 +1,12 @@

type SessionState = {
emitFunction: () => void;
ageTimeoutID: ReturnType<typeof setTimeout> | null;
idleTimeoutID: ReturnType<typeof setTimeout> | null;
};
export declare const SessionID: {
get: (sdkKey: string) => Promise<string>;
_getPromise: (sdkKey: string) => Promise<string>;
_setEmitFunction: (eFunction: () => void, sdkKey: string) => void;
_resetTimeout: (sessionState: SessionState, timeoutID: ReturnType<typeof setTimeout> | null, duration: number) => ReturnType<typeof setTimeout> | null;
};
export {};

@@ -18,26 +18,69 @@ "use strict";

const SESSION_ID_MAP = {};
const MAX_SESSION_IDLE_TIME = 10 * 60 * 1000; // 10 minutes
const SESSION_STATE_MAP = {};
const PROMISE_MAP = {};
const MAX_SESSION_IDLE_TIME = 30 * 60 * 1000; // 30 minutes
const MAX_SESSION_AGE = 4 * 60 * 60 * 1000; // 4 hours
exports.SessionID = {
get: (sdkKey) => __awaiter(void 0, void 0, void 0, function* () {
if (PROMISE_MAP[sdkKey] != null) {
return PROMISE_MAP[sdkKey];
}
return (PROMISE_MAP[sdkKey] = exports.SessionID._getPromise(sdkKey));
}),
_getPromise: (sdkKey) => __awaiter(void 0, void 0, void 0, function* () {
var _a;
let session = SESSION_ID_MAP[sdkKey];
const now = Date.now();
let sessionChanged = false;
if (session == null) {
session = (_a = (yield _loadFromStorage(sdkKey))) !== null && _a !== void 0 ? _a : {
sessionID: (0, UUID_1.getUUID)(),
startTime: Date.now(),
lastUpdate: Date.now(),
};
let tempSession = yield _loadFromStorage(sdkKey);
if (tempSession == null) {
tempSession = {
sessionID: (0, UUID_1.getUUID)(),
startTime: now,
lastUpdate: now,
};
sessionChanged = true;
}
session = tempSession;
SESSION_ID_MAP[sdkKey] = session;
}
if (Date.now() - session.startTime > MAX_SESSION_AGE ||
Date.now() - session.lastUpdate > MAX_SESSION_IDLE_TIME) {
const sessionState = (_a = SESSION_STATE_MAP[sdkKey]) !== null && _a !== void 0 ? _a : {
ageTimeoutID: null,
idleTimeoutID: null,
emitFunction: () => {
return;
},
};
if (now - session.startTime > MAX_SESSION_AGE ||
now - session.lastUpdate > MAX_SESSION_IDLE_TIME) {
session.sessionID = (0, UUID_1.getUUID)();
session.startTime = Date.now();
session.startTime = now;
sessionChanged = true;
}
session.lastUpdate = Date.now();
session.lastUpdate = now;
_persistToStorage(session, sdkKey);
sessionState.idleTimeoutID = exports.SessionID._resetTimeout(sessionState, sessionState.idleTimeoutID, MAX_SESSION_IDLE_TIME);
if (sessionChanged) {
sessionState.ageTimeoutID = exports.SessionID._resetTimeout(sessionState, sessionState.ageTimeoutID, MAX_SESSION_AGE);
}
SESSION_ID_MAP[sdkKey] = session;
SESSION_STATE_MAP[sdkKey] = sessionState;
PROMISE_MAP[sdkKey] = null;
return session.sessionID;
}),
_setEmitFunction: (eFunction, sdkKey) => {
var _a;
const sessionState = (_a = SESSION_STATE_MAP[sdkKey]) !== null && _a !== void 0 ? _a : {
ageTimeoutID: null,
idleTimeoutID: null,
emitFunction: eFunction,
};
sessionState.emitFunction = eFunction;
SESSION_STATE_MAP[sdkKey] = sessionState;
},
_resetTimeout: (sessionState, timeoutID, duration) => {
clearTimeout(timeoutID !== null && timeoutID !== void 0 ? timeoutID : undefined);
return setTimeout(sessionState.emitFunction, duration);
},
};

@@ -44,0 +87,0 @@ function _getSessionIDStorageKey(sdkKey) {

@@ -17,2 +17,3 @@ "use strict";

const Log_1 = require("./Log");
const SessionID_1 = require("./SessionID");
const StableID_1 = require("./StableID");

@@ -33,2 +34,5 @@ const StorageProvider_1 = require("./StorageProvider");

this._logger = new EventLogger_1.EventLogger(sdkKey, this._emit.bind(this), network, options);
SessionID_1.SessionID._setEmitFunction(() => {
this._emit({ name: 'session_expired' });
}, sdkKey);
this._errorBoundary = new ErrorBoundary_1.ErrorBoundary(sdkKey);

@@ -35,0 +39,0 @@ __STATSIG__ = __STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {};

@@ -10,2 +10,3 @@ import { DataAdapterResult } from './StatsigDataAdapter';

};
session_expired: object;
error: {

@@ -12,0 +13,0 @@ error: unknown;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StatsigMetadataProvider = void 0;
const SDK_VERSION = '0.0.1-beta.24';
const SDK_VERSION = '0.0.1-beta.25';
let metadata = {

@@ -6,0 +6,0 @@ sdkVersion: SDK_VERSION,

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc