@statsig/client-core 3.11.0 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/DataAdapterCore.d.ts +2 -1
- package/src/DataAdapterCore.js +2 -1
- package/src/EventLogger.js +5 -1
- package/src/InitializeResponse.d.ts +1 -0
- package/src/Log.js +4 -4
- package/src/StatsigClientEventEmitter.d.ts +5 -0
- package/src/StatsigMetadata.d.ts +1 -1
- package/src/StatsigMetadata.js +1 -1
- package/src/TypedJsonParse.js +2 -2
package/package.json
CHANGED
package/src/DataAdapterCore.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataAdapterAsyncOptions, DataAdapterResult } from './StatsigDataAdapter';
|
|
1
|
+
import { DataAdapterAsyncOptions, DataAdapterResult, DataSource } from './StatsigDataAdapter';
|
|
2
2
|
import { AnyStatsigOptions } from './StatsigOptionsCommon';
|
|
3
3
|
import { StatsigUser, StatsigUserInternal } from './StatsigUser';
|
|
4
4
|
export declare abstract class DataAdapterCore {
|
|
@@ -23,3 +23,4 @@ export declare abstract class DataAdapterCore {
|
|
|
23
23
|
private _writeToCache;
|
|
24
24
|
private _runLocalStorageCacheEviction;
|
|
25
25
|
}
|
|
26
|
+
export declare function _makeDataAdapterResult(source: DataSource, data: string, stableID: string | null, user?: StatsigUser): DataAdapterResult;
|
package/src/DataAdapterCore.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.DataAdapterCore = void 0;
|
|
12
|
+
exports._makeDataAdapterResult = exports.DataAdapterCore = void 0;
|
|
13
13
|
const Log_1 = require("./Log");
|
|
14
14
|
const StableID_1 = require("./StableID");
|
|
15
15
|
const StatsigUser_1 = require("./StatsigUser");
|
|
@@ -146,6 +146,7 @@ function _makeDataAdapterResult(source, data, stableID, user) {
|
|
|
146
146
|
fullUserHash: (0, StatsigUser_1._getFullUserHash)(user),
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
+
exports._makeDataAdapterResult = _makeDataAdapterResult;
|
|
149
150
|
class InMemoryCache {
|
|
150
151
|
constructor() {
|
|
151
152
|
this._data = {};
|
package/src/EventLogger.js
CHANGED
|
@@ -23,7 +23,7 @@ const DEFAULT_QUEUE_SIZE = 100;
|
|
|
23
23
|
const DEFAULT_FLUSH_INTERVAL_MS = 10000;
|
|
24
24
|
const MAX_DEDUPER_KEYS = 1000;
|
|
25
25
|
const DEDUPER_WINDOW_DURATION_MS = 600000;
|
|
26
|
-
const MAX_FAILED_LOGS =
|
|
26
|
+
const MAX_FAILED_LOGS = 500;
|
|
27
27
|
const QUICK_FLUSH_WINDOW_MS = 200;
|
|
28
28
|
const EVENT_LOGGER_MAP = {};
|
|
29
29
|
const RetryFailedLogsTrigger = {
|
|
@@ -173,6 +173,10 @@ class EventLogger {
|
|
|
173
173
|
const shouldUseBeacon = isClosing &&
|
|
174
174
|
this._network.isBeaconSupported() &&
|
|
175
175
|
((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.networkOverrideFunc) == null;
|
|
176
|
+
this._emitter({
|
|
177
|
+
name: 'pre_logs_flushed',
|
|
178
|
+
events,
|
|
179
|
+
});
|
|
176
180
|
const response = shouldUseBeacon
|
|
177
181
|
? yield this._sendEventsViaBeacon(events)
|
|
178
182
|
: yield this._sendEventsViaPost(events);
|
|
@@ -22,6 +22,7 @@ export type InitializeResponseWithUpdates = SessionReplayFields & AutoCaptureFie
|
|
|
22
22
|
user?: StatsigUser;
|
|
23
23
|
sdkInfo?: Record<string, string>;
|
|
24
24
|
sdk_flags?: Record<string, boolean>;
|
|
25
|
+
full_checksum?: string;
|
|
25
26
|
};
|
|
26
27
|
export type InitializeResponse = InitializeResponseWithUpdates | {
|
|
27
28
|
has_updates: false;
|
package/src/Log.js
CHANGED
|
@@ -20,22 +20,22 @@ exports.LogLevel = {
|
|
|
20
20
|
};
|
|
21
21
|
class Log {
|
|
22
22
|
static info(...args) {
|
|
23
|
-
if (
|
|
23
|
+
if (Log.level >= exports.LogLevel.Info) {
|
|
24
24
|
console.info(_INFO, ...addTag(args));
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
static debug(...args) {
|
|
28
|
-
if (
|
|
28
|
+
if (Log.level >= exports.LogLevel.Debug) {
|
|
29
29
|
console.debug(DEBUG, ...addTag(args));
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
static warn(...args) {
|
|
33
|
-
if (
|
|
33
|
+
if (Log.level >= exports.LogLevel.Warn) {
|
|
34
34
|
console.warn(_WARN, ...addTag(args));
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
static error(...args) {
|
|
38
|
-
if (
|
|
38
|
+
if (Log.level >= exports.LogLevel.Error) {
|
|
39
39
|
console.error(ERROR, ...addTag(args));
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -21,6 +21,9 @@ type EventNameToEventDataMap = {
|
|
|
21
21
|
};
|
|
22
22
|
session_expired: object;
|
|
23
23
|
error: ErrorEventData;
|
|
24
|
+
pre_logs_flushed: {
|
|
25
|
+
events: Record<string, unknown>[];
|
|
26
|
+
};
|
|
24
27
|
logs_flushed: {
|
|
25
28
|
events: Record<string, unknown>[];
|
|
26
29
|
};
|
|
@@ -48,6 +51,8 @@ type EventNameToEventDataMap = {
|
|
|
48
51
|
*
|
|
49
52
|
* `error` - When an unexpected error occurs within the Statsig client.
|
|
50
53
|
*
|
|
54
|
+
* `pre_logs_flushed` - Fired just before queued StatsigEvents are flushed to Statsig servers.
|
|
55
|
+
*
|
|
51
56
|
* `logs_flushed` - When queued StatsigEvents are flushed to Statsig servers.
|
|
52
57
|
*
|
|
53
58
|
* `pre_shutdown` - Fired just before the SDK is shutdown
|
package/src/StatsigMetadata.d.ts
CHANGED
package/src/StatsigMetadata.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;
|
|
4
|
-
exports.SDK_VERSION = '3.
|
|
4
|
+
exports.SDK_VERSION = '3.12.0';
|
|
5
5
|
let metadata = {
|
|
6
6
|
sdkVersion: exports.SDK_VERSION,
|
|
7
7
|
sdkType: 'js-mono', // js-mono is overwritten by Precomp and OnDevice clients
|
package/src/TypedJsonParse.js
CHANGED
|
@@ -12,11 +12,11 @@ const Log_1 = require("./Log");
|
|
|
12
12
|
function _typedJsonParse(data, guard, typeName) {
|
|
13
13
|
try {
|
|
14
14
|
const result = JSON.parse(data);
|
|
15
|
-
if (
|
|
15
|
+
if (result &&
|
|
16
|
+
typeof result === 'object' &&
|
|
16
17
|
guard in result) {
|
|
17
18
|
return result;
|
|
18
19
|
}
|
|
19
|
-
return result;
|
|
20
20
|
}
|
|
21
21
|
catch (_a) {
|
|
22
22
|
// noop
|