@statsig/statsig-node-core 0.18.0 → 0.18.1-beta.2604072116

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/index.js CHANGED
@@ -125,7 +125,12 @@ class Statsig extends statsig_generated_1.StatsigNapiInternal {
125
125
  }
126
126
  getLayer(user, layerName, options) {
127
127
  const raw = this.__INTERNAL_getLayer(user, layerName, options);
128
- return new statsig_types_1.Layer((param) => this.__INTERNAL_logLayerParamExposure(raw, param), layerName, raw);
128
+ const exposure = raw.__exposure;
129
+ return new statsig_types_1.Layer((param) => {
130
+ if (exposure != null) {
131
+ this.__INTERNAL_logLayerParamExposure(exposure, param);
132
+ }
133
+ }, layerName, raw);
129
134
  }
130
135
  }
131
136
  exports.Statsig = Statsig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@statsig/statsig-node-core",
3
- "version": "0.18.0",
3
+ "version": "0.18.1-beta.2604072116",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "test": "jest --colors"
@@ -60,14 +60,13 @@
60
60
  }
61
61
  },
62
62
  "optionalDependencies": {
63
- "@statsig/statsig-node-core-linux-x64-musl": "0.18.0",
64
- "@statsig/statsig-node-core-linux-x64-gnu": "0.18.0",
65
- "@statsig/statsig-node-core-win32-x64-msvc": "0.18.0",
66
- "@statsig/statsig-node-core-darwin-x64": "0.18.0",
67
- "@statsig/statsig-node-core-win32-ia32-msvc": "0.18.0",
68
- "@statsig/statsig-node-core-linux-arm64-musl": "0.18.0",
69
- "@statsig/statsig-node-core-linux-arm64-gnu": "0.18.0",
70
- "@statsig/statsig-node-core-win32-arm64-msvc": "0.18.0",
71
- "@statsig/statsig-node-core-darwin-arm64": "0.18.0"
63
+ "@statsig/statsig-node-core-linux-x64-musl": "0.18.1-beta.2604072116",
64
+ "@statsig/statsig-node-core-linux-x64-gnu": "0.18.1-beta.2604072116",
65
+ "@statsig/statsig-node-core-win32-x64-msvc": "0.18.1-beta.2604072116",
66
+ "@statsig/statsig-node-core-darwin-x64": "0.18.1-beta.2604072116",
67
+ "@statsig/statsig-node-core-win32-ia32-msvc": "0.18.1-beta.2604072116",
68
+ "@statsig/statsig-node-core-linux-arm64-musl": "0.18.1-beta.2604072116",
69
+ "@statsig/statsig-node-core-linux-arm64-gnu": "0.18.1-beta.2604072116",
70
+ "@statsig/statsig-node-core-darwin-arm64": "0.18.1-beta.2604072116"
72
71
  }
73
72
  }
@@ -1,5 +1,9 @@
1
1
  /* auto-generated by NAPI-RS */
2
2
  /* eslint-disable */
3
+ export declare class LayerParamExposureData {
4
+
5
+ }
6
+
3
7
  export declare class ParameterStore {
4
8
  name: string
5
9
  getValue<T>(paramName: string, fallback?: T): T
@@ -19,15 +23,15 @@ export declare class StatsigNapiInternal {
19
23
  logEvent(user: StatsigUser, eventName: string, value?: string | number | null, metadata?: Record<string, string | number | boolean | null | undefined> | null | undefined): void
20
24
  forwardLogLineEvent(user: StatsigUser, logLevel: 'trace' | 'debug' |'log' | 'info' | 'warn' | 'error', value?: string | undefined | null, metadata?: Record<string, string> | undefined | null): void
21
25
  checkGate(user: StatsigUser, gateName: string, options?: FeatureGateEvaluationOptions | undefined | null): boolean
22
- __INTERNAL_getFeatureGate(user: StatsigUser, featureName: string, options?: FeatureGateEvaluationOptions | undefined | null): string
26
+ __INTERNAL_getFeatureGate(user: StatsigUser, featureName: string, options?: FeatureGateEvaluationOptions | undefined | null): Record<string, unknown>
23
27
  getFieldsNeededForGate(gateName: string): Array<string>
24
- __INTERNAL_getDynamicConfig(user: StatsigUser, configName: string, options?: DynamicConfigEvaluationOptions | undefined | null): string
28
+ __INTERNAL_getDynamicConfig(user: StatsigUser, configName: string, options?: DynamicConfigEvaluationOptions | undefined | null): Record<string, unknown>
25
29
  getFieldsNeededForDynamicConfig(configName: string): Array<string>
26
- __INTERNAL_getExperiment(user: StatsigUser, experimentName: string, options?: ExperimentEvaluationOptions | undefined | null): string
27
- __INTERNAL_getExperimentByGroupName(experimentName: string, groupName: string): string
30
+ __INTERNAL_getExperiment(user: StatsigUser, experimentName: string, options?: ExperimentEvaluationOptions | undefined | null): Record<string, unknown>
31
+ __INTERNAL_getExperimentByGroupName(experimentName: string, groupName: string): Record<string, unknown>
28
32
  getFieldsNeededForExperiment(experimentName: string): Array<string>
29
- __INTERNAL_getLayer(user: StatsigUser, layerName: string, options?: LayerEvaluationOptions | undefined | null): string
30
- __INTERNAL_logLayerParamExposure(raw: string, paramName: string): void
33
+ __INTERNAL_getLayer(user: StatsigUser, layerName: string, options?: LayerEvaluationOptions | undefined | null): Record<string, unknown>
34
+ __INTERNAL_logLayerParamExposure(raw: LayerParamExposureData, paramName: string): void
31
35
  getFieldsNeededForLayer(layerName: string): Array<string>
32
36
  identify(user: StatsigUser): void
33
37
  getParameterStore(user: StatsigUser, parameterStoreName: string, options?: ParameterStoreEvaluationOptions | undefined | null): ParameterStore
@@ -364,6 +364,7 @@ if (!nativeBinding) {
364
364
  throw new Error(`Failed to load native binding`)
365
365
  }
366
366
 
367
+ module.exports.LayerParamExposureData = nativeBinding.LayerParamExposureData
367
368
  module.exports.ParameterStore = nativeBinding.ParameterStore
368
369
  module.exports.StatsigNapiInternal = nativeBinding.StatsigNapiInternal
369
370
  module.exports.StatsigUser = nativeBinding.StatsigUser
@@ -1,6 +1,7 @@
1
1
  import { EvaluationDetails, SecondaryExposure } from './statsig-generated';
2
2
  export type TypedGet = <T = unknown>(key: string, defaultValue: T, typeGuard?: ((value: unknown) => value is T | null) | null) => T;
3
3
  export type UnknownGet = (key: string, fallback?: boolean | number | string | object | Array<any> | null) => unknown | null;
4
+ type RawEvaluation = Record<string, unknown> | string | null;
4
5
  declare class BaseEvaluation {
5
6
  readonly name: string;
6
7
  readonly ruleID: string;
@@ -15,20 +16,20 @@ declare class BaseEvaluation {
15
16
  }
16
17
  export declare class FeatureGate extends BaseEvaluation {
17
18
  readonly value: boolean;
18
- constructor(name: string, raw: string | null);
19
+ constructor(name: string, raw: RawEvaluation);
19
20
  }
20
21
  export declare class DynamicConfig extends BaseEvaluation {
21
22
  readonly value: Record<string, unknown>;
22
23
  readonly get: TypedGet;
23
24
  readonly getValue: UnknownGet;
24
- constructor(name: string, raw: string);
25
+ constructor(name: string, raw: RawEvaluation);
25
26
  }
26
27
  export declare class Experiment extends BaseEvaluation {
27
28
  readonly groupName: string | null;
28
29
  readonly value: Record<string, unknown>;
29
30
  readonly get: TypedGet;
30
31
  readonly getValue: UnknownGet;
31
- constructor(name: string, raw: string);
32
+ constructor(name: string, raw: RawEvaluation);
32
33
  getGroupName(): string | null;
33
34
  }
34
35
  export declare class Layer extends BaseEvaluation {
@@ -37,7 +38,7 @@ export declare class Layer extends BaseEvaluation {
37
38
  readonly __value: Record<string, unknown>;
38
39
  readonly get: TypedGet;
39
40
  readonly getValue: UnknownGet;
40
- constructor(exposeFn: (param: string) => void, name: string, raw: string);
41
+ constructor(exposeFn: (param: string) => void, name: string, raw: RawEvaluation);
41
42
  getGroupName(): string | null;
42
43
  getAllocatedExperimentName(): string | null;
43
44
  }
package/statsig_types.js CHANGED
@@ -89,8 +89,17 @@ class Layer extends BaseEvaluation {
89
89
  }
90
90
  exports.Layer = Layer;
91
91
  function _parseRawEvaluation(raw) {
92
+ if (raw == null) {
93
+ return {};
94
+ }
95
+ if (typeof raw === 'object' && !Array.isArray(raw)) {
96
+ return raw;
97
+ }
98
+ if (typeof raw !== 'string') {
99
+ return {};
100
+ }
92
101
  try {
93
- return JSON.parse(raw !== null && raw !== void 0 ? raw : '{}');
102
+ return JSON.parse(raw);
94
103
  }
95
104
  catch (error) {
96
105
  console.error(`[Statsig] Error parsing BaseEvaluation: ${error}`);