posthog-node 5.25.0 → 5.26.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/dist/client.d.ts +24 -25
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +55 -14
- package/dist/client.mjs +55 -14
- package/dist/extensions/context/context.d.ts +2 -0
- package/dist/extensions/context/context.d.ts.map +1 -1
- package/dist/extensions/context/context.js +16 -14
- package/dist/extensions/context/context.mjs +16 -14
- package/dist/extensions/context/types.d.ts +1 -0
- package/dist/extensions/context/types.d.ts.map +1 -1
- package/dist/extensions/feature-flags/feature-flags.d.ts +16 -4
- package/dist/extensions/feature-flags/feature-flags.d.ts.map +1 -1
- package/dist/extensions/feature-flags/feature-flags.js +44 -22
- package/dist/extensions/feature-flags/feature-flags.mjs +44 -22
- package/dist/types.d.ts +51 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.mjs +1 -1
- package/package.json +1 -1
- package/src/client.ts +124 -57
- package/src/extensions/context/context.ts +19 -14
- package/src/extensions/context/types.ts +1 -0
- package/src/extensions/feature-flags/feature-flags.ts +70 -104
- package/src/types.ts +59 -8
- package/src/version.ts +1 -1
|
@@ -93,32 +93,47 @@ class FeatureFlagsPoller {
|
|
|
93
93
|
logMsgIfDebug(fn) {
|
|
94
94
|
if (this.debugMode) fn();
|
|
95
95
|
}
|
|
96
|
+
createEvaluationContext(distinctId, groups = {}, personProperties = {}, groupProperties = {}, evaluationCache = {}) {
|
|
97
|
+
return {
|
|
98
|
+
distinctId,
|
|
99
|
+
groups,
|
|
100
|
+
personProperties,
|
|
101
|
+
groupProperties,
|
|
102
|
+
evaluationCache
|
|
103
|
+
};
|
|
104
|
+
}
|
|
96
105
|
async getFeatureFlag(key, distinctId, groups = {}, personProperties = {}, groupProperties = {}) {
|
|
97
106
|
await this.loadFeatureFlags();
|
|
98
107
|
let response;
|
|
99
108
|
let featureFlag;
|
|
100
109
|
if (!this.loadedSuccessfullyOnce) return response;
|
|
101
110
|
featureFlag = this.featureFlagsByKey[key];
|
|
102
|
-
if (void 0 !== featureFlag)
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
111
|
+
if (void 0 !== featureFlag) {
|
|
112
|
+
const evaluationContext = this.createEvaluationContext(distinctId, groups, personProperties, groupProperties);
|
|
113
|
+
try {
|
|
114
|
+
const result = await this.computeFlagAndPayloadLocally(featureFlag, evaluationContext);
|
|
115
|
+
response = result.value;
|
|
116
|
+
this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${key} -> ${response}`));
|
|
117
|
+
} catch (e) {
|
|
118
|
+
if (e instanceof RequiresServerEvaluation || e instanceof InconclusiveMatchError) this.logMsgIfDebug(()=>console.debug(`${e.name} when computing flag locally: ${key}: ${e.message}`));
|
|
119
|
+
else if (e instanceof Error) this.onError?.(new Error(`Error computing flag locally: ${key}: ${e}`));
|
|
120
|
+
}
|
|
109
121
|
}
|
|
110
122
|
return response;
|
|
111
123
|
}
|
|
112
|
-
async getAllFlagsAndPayloads(
|
|
124
|
+
async getAllFlagsAndPayloads(evaluationContext, flagKeysToExplicitlyEvaluate) {
|
|
113
125
|
await this.loadFeatureFlags();
|
|
114
126
|
const response = {};
|
|
115
127
|
const payloads = {};
|
|
116
128
|
let fallbackToFlags = 0 == this.featureFlags.length;
|
|
117
129
|
const flagsToEvaluate = flagKeysToExplicitlyEvaluate ? flagKeysToExplicitlyEvaluate.map((key)=>this.featureFlagsByKey[key]).filter(Boolean) : this.featureFlags;
|
|
118
|
-
const
|
|
130
|
+
const sharedEvaluationContext = {
|
|
131
|
+
...evaluationContext,
|
|
132
|
+
evaluationCache: evaluationContext.evaluationCache ?? {}
|
|
133
|
+
};
|
|
119
134
|
await Promise.all(flagsToEvaluate.map(async (flag)=>{
|
|
120
135
|
try {
|
|
121
|
-
const { value: matchValue, payload: matchPayload } = await this.computeFlagAndPayloadLocally(flag,
|
|
136
|
+
const { value: matchValue, payload: matchPayload } = await this.computeFlagAndPayloadLocally(flag, sharedEvaluationContext);
|
|
122
137
|
response[flag.key] = matchValue;
|
|
123
138
|
if (matchPayload) payloads[flag.key] = matchPayload;
|
|
124
139
|
} catch (e) {
|
|
@@ -133,21 +148,23 @@ class FeatureFlagsPoller {
|
|
|
133
148
|
fallbackToFlags
|
|
134
149
|
};
|
|
135
150
|
}
|
|
136
|
-
async computeFlagAndPayloadLocally(flag,
|
|
151
|
+
async computeFlagAndPayloadLocally(flag, evaluationContext, options = {}) {
|
|
152
|
+
const { matchValue, skipLoadCheck = false } = options;
|
|
137
153
|
if (!skipLoadCheck) await this.loadFeatureFlags();
|
|
138
154
|
if (!this.loadedSuccessfullyOnce) return {
|
|
139
155
|
value: false,
|
|
140
156
|
payload: null
|
|
141
157
|
};
|
|
142
158
|
let flagValue;
|
|
143
|
-
flagValue = void 0 !== matchValue ? matchValue : await this.computeFlagValueLocally(flag,
|
|
159
|
+
flagValue = void 0 !== matchValue ? matchValue : await this.computeFlagValueLocally(flag, evaluationContext);
|
|
144
160
|
const payload = this.getFeatureFlagPayload(flag.key, flagValue);
|
|
145
161
|
return {
|
|
146
162
|
value: flagValue,
|
|
147
163
|
payload
|
|
148
164
|
};
|
|
149
165
|
}
|
|
150
|
-
async computeFlagValueLocally(flag,
|
|
166
|
+
async computeFlagValueLocally(flag, evaluationContext) {
|
|
167
|
+
const { distinctId, groups, personProperties, groupProperties } = evaluationContext;
|
|
151
168
|
if (flag.ensure_experience_continuity) throw new InconclusiveMatchError('Flag has experience continuity enabled');
|
|
152
169
|
if (!flag.active) return false;
|
|
153
170
|
const flagFilters = flag.filters || {};
|
|
@@ -162,13 +179,17 @@ class FeatureFlagsPoller {
|
|
|
162
179
|
this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`));
|
|
163
180
|
return false;
|
|
164
181
|
}
|
|
182
|
+
if ('device_id' === flag.bucketing_identifier && (personProperties?.$device_id === void 0 || personProperties?.$device_id === null || personProperties?.$device_id === '')) this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${flag.key}`));
|
|
165
183
|
const focusedGroupProperties = groupProperties[groupName];
|
|
166
|
-
return await this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties,
|
|
184
|
+
return await this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties, evaluationContext);
|
|
167
185
|
}
|
|
168
186
|
{
|
|
169
187
|
const bucketingValue = this.getBucketingValueForFlag(flag, distinctId, personProperties);
|
|
170
|
-
if (void 0 === bucketingValue)
|
|
171
|
-
|
|
188
|
+
if (void 0 === bucketingValue) {
|
|
189
|
+
this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${flag.key} without $device_id, falling back to server evaluation`));
|
|
190
|
+
throw new InconclusiveMatchError(`Can't compute feature flag: ${flag.key} without $device_id`);
|
|
191
|
+
}
|
|
192
|
+
return await this.matchFeatureFlagProperties(flag, bucketingValue, personProperties, evaluationContext);
|
|
172
193
|
}
|
|
173
194
|
}
|
|
174
195
|
getBucketingValueForFlag(flag, distinctId, properties) {
|
|
@@ -195,7 +216,8 @@ class FeatureFlagsPoller {
|
|
|
195
216
|
}
|
|
196
217
|
return null;
|
|
197
218
|
}
|
|
198
|
-
async evaluateFlagDependency(property,
|
|
219
|
+
async evaluateFlagDependency(property, properties, evaluationContext) {
|
|
220
|
+
const { evaluationCache } = evaluationContext;
|
|
199
221
|
const targetFlagKey = property.key;
|
|
200
222
|
if (!this.featureFlagsByKey) throw new InconclusiveMatchError('Feature flags not available for dependency evaluation');
|
|
201
223
|
if (!('dependency_chain' in property)) throw new InconclusiveMatchError(`Flag dependency property for '${targetFlagKey}' is missing required 'dependency_chain' field`);
|
|
@@ -206,7 +228,7 @@ class FeatureFlagsPoller {
|
|
|
206
228
|
if (!(depFlagKey in evaluationCache)) {
|
|
207
229
|
const depFlag = this.featureFlagsByKey[depFlagKey];
|
|
208
230
|
if (depFlag) if (depFlag.active) try {
|
|
209
|
-
const depResult = await this.computeFlagValueLocally(depFlag,
|
|
231
|
+
const depResult = await this.computeFlagValueLocally(depFlag, evaluationContext);
|
|
210
232
|
evaluationCache[depFlagKey] = depResult;
|
|
211
233
|
} catch (error) {
|
|
212
234
|
throw new InconclusiveMatchError(`Error evaluating flag dependency '${depFlagKey}' for flag '${targetFlagKey}': ${error}`);
|
|
@@ -225,13 +247,13 @@ class FeatureFlagsPoller {
|
|
|
225
247
|
if ('string' == typeof expectedValue) return flagValue === expectedValue;
|
|
226
248
|
return false;
|
|
227
249
|
}
|
|
228
|
-
async matchFeatureFlagProperties(flag, bucketingValue, properties,
|
|
250
|
+
async matchFeatureFlagProperties(flag, bucketingValue, properties, evaluationContext) {
|
|
229
251
|
const flagFilters = flag.filters || {};
|
|
230
252
|
const flagConditions = flagFilters.groups || [];
|
|
231
253
|
let isInconclusive = false;
|
|
232
254
|
let result;
|
|
233
255
|
for (const condition of flagConditions)try {
|
|
234
|
-
if (await this.isConditionMatch(flag, bucketingValue, condition, properties,
|
|
256
|
+
if (await this.isConditionMatch(flag, bucketingValue, condition, properties, evaluationContext)) {
|
|
235
257
|
const variantOverride = condition.variant;
|
|
236
258
|
const flagVariants = flagFilters.multivariate?.variants || [];
|
|
237
259
|
result = variantOverride && flagVariants.some((variant)=>variant.key === variantOverride) ? variantOverride : await this.getMatchingVariant(flag, bucketingValue) || true;
|
|
@@ -246,7 +268,7 @@ class FeatureFlagsPoller {
|
|
|
246
268
|
if (isInconclusive) throw new InconclusiveMatchError("Can't determine if feature flag is enabled or not with given properties");
|
|
247
269
|
return false;
|
|
248
270
|
}
|
|
249
|
-
async isConditionMatch(flag, bucketingValue, condition, properties,
|
|
271
|
+
async isConditionMatch(flag, bucketingValue, condition, properties, evaluationContext) {
|
|
250
272
|
const rolloutPercentage = condition.rollout_percentage;
|
|
251
273
|
const warnFunction = (msg)=>{
|
|
252
274
|
this.logMsgIfDebug(()=>console.warn(msg));
|
|
@@ -255,7 +277,7 @@ class FeatureFlagsPoller {
|
|
|
255
277
|
for (const prop of condition.properties){
|
|
256
278
|
const propertyType = prop.type;
|
|
257
279
|
let matches = false;
|
|
258
|
-
matches = 'cohort' === propertyType ? matchCohort(prop, properties, this.cohorts, this.debugMode) : 'flag' === propertyType ? await this.evaluateFlagDependency(prop,
|
|
280
|
+
matches = 'cohort' === propertyType ? matchCohort(prop, properties, this.cohorts, this.debugMode) : 'flag' === propertyType ? await this.evaluateFlagDependency(prop, properties, evaluationContext) : matchProperty(prop, properties, warnFunction);
|
|
259
281
|
if (!matches) return false;
|
|
260
282
|
}
|
|
261
283
|
if (void 0 == rolloutPercentage) return true;
|
|
@@ -60,32 +60,47 @@ class FeatureFlagsPoller {
|
|
|
60
60
|
logMsgIfDebug(fn) {
|
|
61
61
|
if (this.debugMode) fn();
|
|
62
62
|
}
|
|
63
|
+
createEvaluationContext(distinctId, groups = {}, personProperties = {}, groupProperties = {}, evaluationCache = {}) {
|
|
64
|
+
return {
|
|
65
|
+
distinctId,
|
|
66
|
+
groups,
|
|
67
|
+
personProperties,
|
|
68
|
+
groupProperties,
|
|
69
|
+
evaluationCache
|
|
70
|
+
};
|
|
71
|
+
}
|
|
63
72
|
async getFeatureFlag(key, distinctId, groups = {}, personProperties = {}, groupProperties = {}) {
|
|
64
73
|
await this.loadFeatureFlags();
|
|
65
74
|
let response;
|
|
66
75
|
let featureFlag;
|
|
67
76
|
if (!this.loadedSuccessfullyOnce) return response;
|
|
68
77
|
featureFlag = this.featureFlagsByKey[key];
|
|
69
|
-
if (void 0 !== featureFlag)
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
if (void 0 !== featureFlag) {
|
|
79
|
+
const evaluationContext = this.createEvaluationContext(distinctId, groups, personProperties, groupProperties);
|
|
80
|
+
try {
|
|
81
|
+
const result = await this.computeFlagAndPayloadLocally(featureFlag, evaluationContext);
|
|
82
|
+
response = result.value;
|
|
83
|
+
this.logMsgIfDebug(()=>console.debug(`Successfully computed flag locally: ${key} -> ${response}`));
|
|
84
|
+
} catch (e) {
|
|
85
|
+
if (e instanceof RequiresServerEvaluation || e instanceof InconclusiveMatchError) this.logMsgIfDebug(()=>console.debug(`${e.name} when computing flag locally: ${key}: ${e.message}`));
|
|
86
|
+
else if (e instanceof Error) this.onError?.(new Error(`Error computing flag locally: ${key}: ${e}`));
|
|
87
|
+
}
|
|
76
88
|
}
|
|
77
89
|
return response;
|
|
78
90
|
}
|
|
79
|
-
async getAllFlagsAndPayloads(
|
|
91
|
+
async getAllFlagsAndPayloads(evaluationContext, flagKeysToExplicitlyEvaluate) {
|
|
80
92
|
await this.loadFeatureFlags();
|
|
81
93
|
const response = {};
|
|
82
94
|
const payloads = {};
|
|
83
95
|
let fallbackToFlags = 0 == this.featureFlags.length;
|
|
84
96
|
const flagsToEvaluate = flagKeysToExplicitlyEvaluate ? flagKeysToExplicitlyEvaluate.map((key)=>this.featureFlagsByKey[key]).filter(Boolean) : this.featureFlags;
|
|
85
|
-
const
|
|
97
|
+
const sharedEvaluationContext = {
|
|
98
|
+
...evaluationContext,
|
|
99
|
+
evaluationCache: evaluationContext.evaluationCache ?? {}
|
|
100
|
+
};
|
|
86
101
|
await Promise.all(flagsToEvaluate.map(async (flag)=>{
|
|
87
102
|
try {
|
|
88
|
-
const { value: matchValue, payload: matchPayload } = await this.computeFlagAndPayloadLocally(flag,
|
|
103
|
+
const { value: matchValue, payload: matchPayload } = await this.computeFlagAndPayloadLocally(flag, sharedEvaluationContext);
|
|
89
104
|
response[flag.key] = matchValue;
|
|
90
105
|
if (matchPayload) payloads[flag.key] = matchPayload;
|
|
91
106
|
} catch (e) {
|
|
@@ -100,21 +115,23 @@ class FeatureFlagsPoller {
|
|
|
100
115
|
fallbackToFlags
|
|
101
116
|
};
|
|
102
117
|
}
|
|
103
|
-
async computeFlagAndPayloadLocally(flag,
|
|
118
|
+
async computeFlagAndPayloadLocally(flag, evaluationContext, options = {}) {
|
|
119
|
+
const { matchValue, skipLoadCheck = false } = options;
|
|
104
120
|
if (!skipLoadCheck) await this.loadFeatureFlags();
|
|
105
121
|
if (!this.loadedSuccessfullyOnce) return {
|
|
106
122
|
value: false,
|
|
107
123
|
payload: null
|
|
108
124
|
};
|
|
109
125
|
let flagValue;
|
|
110
|
-
flagValue = void 0 !== matchValue ? matchValue : await this.computeFlagValueLocally(flag,
|
|
126
|
+
flagValue = void 0 !== matchValue ? matchValue : await this.computeFlagValueLocally(flag, evaluationContext);
|
|
111
127
|
const payload = this.getFeatureFlagPayload(flag.key, flagValue);
|
|
112
128
|
return {
|
|
113
129
|
value: flagValue,
|
|
114
130
|
payload
|
|
115
131
|
};
|
|
116
132
|
}
|
|
117
|
-
async computeFlagValueLocally(flag,
|
|
133
|
+
async computeFlagValueLocally(flag, evaluationContext) {
|
|
134
|
+
const { distinctId, groups, personProperties, groupProperties } = evaluationContext;
|
|
118
135
|
if (flag.ensure_experience_continuity) throw new InconclusiveMatchError('Flag has experience continuity enabled');
|
|
119
136
|
if (!flag.active) return false;
|
|
120
137
|
const flagFilters = flag.filters || {};
|
|
@@ -129,13 +146,17 @@ class FeatureFlagsPoller {
|
|
|
129
146
|
this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute group feature flag: ${flag.key} without group names passed in`));
|
|
130
147
|
return false;
|
|
131
148
|
}
|
|
149
|
+
if ('device_id' === flag.bucketing_identifier && (personProperties?.$device_id === void 0 || personProperties?.$device_id === null || personProperties?.$device_id === '')) this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Ignoring bucketing_identifier for group flag: ${flag.key}`));
|
|
132
150
|
const focusedGroupProperties = groupProperties[groupName];
|
|
133
|
-
return await this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties,
|
|
151
|
+
return await this.matchFeatureFlagProperties(flag, groups[groupName], focusedGroupProperties, evaluationContext);
|
|
134
152
|
}
|
|
135
153
|
{
|
|
136
154
|
const bucketingValue = this.getBucketingValueForFlag(flag, distinctId, personProperties);
|
|
137
|
-
if (void 0 === bucketingValue)
|
|
138
|
-
|
|
155
|
+
if (void 0 === bucketingValue) {
|
|
156
|
+
this.logMsgIfDebug(()=>console.warn(`[FEATURE FLAGS] Can't compute feature flag: ${flag.key} without $device_id, falling back to server evaluation`));
|
|
157
|
+
throw new InconclusiveMatchError(`Can't compute feature flag: ${flag.key} without $device_id`);
|
|
158
|
+
}
|
|
159
|
+
return await this.matchFeatureFlagProperties(flag, bucketingValue, personProperties, evaluationContext);
|
|
139
160
|
}
|
|
140
161
|
}
|
|
141
162
|
getBucketingValueForFlag(flag, distinctId, properties) {
|
|
@@ -162,7 +183,8 @@ class FeatureFlagsPoller {
|
|
|
162
183
|
}
|
|
163
184
|
return null;
|
|
164
185
|
}
|
|
165
|
-
async evaluateFlagDependency(property,
|
|
186
|
+
async evaluateFlagDependency(property, properties, evaluationContext) {
|
|
187
|
+
const { evaluationCache } = evaluationContext;
|
|
166
188
|
const targetFlagKey = property.key;
|
|
167
189
|
if (!this.featureFlagsByKey) throw new InconclusiveMatchError('Feature flags not available for dependency evaluation');
|
|
168
190
|
if (!('dependency_chain' in property)) throw new InconclusiveMatchError(`Flag dependency property for '${targetFlagKey}' is missing required 'dependency_chain' field`);
|
|
@@ -173,7 +195,7 @@ class FeatureFlagsPoller {
|
|
|
173
195
|
if (!(depFlagKey in evaluationCache)) {
|
|
174
196
|
const depFlag = this.featureFlagsByKey[depFlagKey];
|
|
175
197
|
if (depFlag) if (depFlag.active) try {
|
|
176
|
-
const depResult = await this.computeFlagValueLocally(depFlag,
|
|
198
|
+
const depResult = await this.computeFlagValueLocally(depFlag, evaluationContext);
|
|
177
199
|
evaluationCache[depFlagKey] = depResult;
|
|
178
200
|
} catch (error) {
|
|
179
201
|
throw new InconclusiveMatchError(`Error evaluating flag dependency '${depFlagKey}' for flag '${targetFlagKey}': ${error}`);
|
|
@@ -192,13 +214,13 @@ class FeatureFlagsPoller {
|
|
|
192
214
|
if ('string' == typeof expectedValue) return flagValue === expectedValue;
|
|
193
215
|
return false;
|
|
194
216
|
}
|
|
195
|
-
async matchFeatureFlagProperties(flag, bucketingValue, properties,
|
|
217
|
+
async matchFeatureFlagProperties(flag, bucketingValue, properties, evaluationContext) {
|
|
196
218
|
const flagFilters = flag.filters || {};
|
|
197
219
|
const flagConditions = flagFilters.groups || [];
|
|
198
220
|
let isInconclusive = false;
|
|
199
221
|
let result;
|
|
200
222
|
for (const condition of flagConditions)try {
|
|
201
|
-
if (await this.isConditionMatch(flag, bucketingValue, condition, properties,
|
|
223
|
+
if (await this.isConditionMatch(flag, bucketingValue, condition, properties, evaluationContext)) {
|
|
202
224
|
const variantOverride = condition.variant;
|
|
203
225
|
const flagVariants = flagFilters.multivariate?.variants || [];
|
|
204
226
|
result = variantOverride && flagVariants.some((variant)=>variant.key === variantOverride) ? variantOverride : await this.getMatchingVariant(flag, bucketingValue) || true;
|
|
@@ -213,7 +235,7 @@ class FeatureFlagsPoller {
|
|
|
213
235
|
if (isInconclusive) throw new InconclusiveMatchError("Can't determine if feature flag is enabled or not with given properties");
|
|
214
236
|
return false;
|
|
215
237
|
}
|
|
216
|
-
async isConditionMatch(flag, bucketingValue, condition, properties,
|
|
238
|
+
async isConditionMatch(flag, bucketingValue, condition, properties, evaluationContext) {
|
|
217
239
|
const rolloutPercentage = condition.rollout_percentage;
|
|
218
240
|
const warnFunction = (msg)=>{
|
|
219
241
|
this.logMsgIfDebug(()=>console.warn(msg));
|
|
@@ -222,7 +244,7 @@ class FeatureFlagsPoller {
|
|
|
222
244
|
for (const prop of condition.properties){
|
|
223
245
|
const propertyType = prop.type;
|
|
224
246
|
let matches = false;
|
|
225
|
-
matches = 'cohort' === propertyType ? matchCohort(prop, properties, this.cohorts, this.debugMode) : 'flag' === propertyType ? await this.evaluateFlagDependency(prop,
|
|
247
|
+
matches = 'cohort' === propertyType ? matchCohort(prop, properties, this.cohorts, this.debugMode) : 'flag' === propertyType ? await this.evaluateFlagDependency(prop, properties, evaluationContext) : matchProperty(prop, properties, warnFunction);
|
|
226
248
|
if (!matches) return false;
|
|
227
249
|
}
|
|
228
250
|
if (void 0 == rolloutPercentage) return true;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PostHogCoreOptions, FeatureFlagValue, JsonType, PostHogFetchOptions, PostHogFetchResponse } from '@posthog/core';
|
|
1
|
+
import type { PostHogCoreOptions, FeatureFlagValue, JsonType, PostHogFetchOptions, PostHogFetchResponse, PostHogFlagsAndPayloadsResponse } from '@posthog/core';
|
|
2
2
|
import { ContextData, ContextOptions } from './extensions/context/types';
|
|
3
3
|
import type { FlagDefinitionCacheProvider } from './extensions/feature-flags/cache';
|
|
4
4
|
export type IdentifyMessage = {
|
|
@@ -56,6 +56,19 @@ export type FlagPropertyValue = string | number | (string | number)[] | boolean;
|
|
|
56
56
|
* - `FeatureFlagOverrideOptions` - Set both flag values and payloads
|
|
57
57
|
*/
|
|
58
58
|
export type OverrideFeatureFlagsOptions = false | string[] | Record<string, FeatureFlagValue> | FeatureFlagOverrideOptions;
|
|
59
|
+
export type BaseFlagEvaluationOptions = {
|
|
60
|
+
groups?: Record<string, string>;
|
|
61
|
+
personProperties?: Record<string, string>;
|
|
62
|
+
groupProperties?: Record<string, Record<string, string>>;
|
|
63
|
+
onlyEvaluateLocally?: boolean;
|
|
64
|
+
disableGeoip?: boolean;
|
|
65
|
+
};
|
|
66
|
+
export type FlagEvaluationOptions = BaseFlagEvaluationOptions & {
|
|
67
|
+
sendFeatureFlagEvents?: boolean;
|
|
68
|
+
};
|
|
69
|
+
export type AllFlagsOptions = BaseFlagEvaluationOptions & {
|
|
70
|
+
flagKeys?: string[];
|
|
71
|
+
};
|
|
59
72
|
export type FeatureFlagOverrideOptions = {
|
|
60
73
|
/**
|
|
61
74
|
* Flag overrides. Can be:
|
|
@@ -360,6 +373,34 @@ export interface IPostHog {
|
|
|
360
373
|
getFeatureFlagPayload(key: string, distinctId: string, matchValue?: FeatureFlagValue, options?: {
|
|
361
374
|
onlyEvaluateLocally?: boolean;
|
|
362
375
|
}): Promise<JsonType | undefined>;
|
|
376
|
+
/**
|
|
377
|
+
* @description Get all feature flag values using distinctId from withContext().
|
|
378
|
+
*/
|
|
379
|
+
getAllFlags(options?: AllFlagsOptions): Promise<Record<string, FeatureFlagValue>>;
|
|
380
|
+
/**
|
|
381
|
+
* @description Get all feature flag values for a specific user.
|
|
382
|
+
*
|
|
383
|
+
* @param distinctId - The user's distinct ID
|
|
384
|
+
* @param options - Optional configuration for flag evaluation
|
|
385
|
+
* @returns Promise that resolves to a record of flag keys and their values
|
|
386
|
+
*/
|
|
387
|
+
getAllFlags(distinctId: string, options?: AllFlagsOptions): Promise<Record<string, FeatureFlagValue>>;
|
|
388
|
+
/**
|
|
389
|
+
* @description Get all feature flag values and payloads using distinctId from withContext().
|
|
390
|
+
*/
|
|
391
|
+
getAllFlagsAndPayloads(options?: AllFlagsOptions): Promise<PostHogFlagsAndPayloadsResponse>;
|
|
392
|
+
/**
|
|
393
|
+
* @description Get all feature flag values and payloads for a specific user.
|
|
394
|
+
*
|
|
395
|
+
* @param distinctId - The user's distinct ID
|
|
396
|
+
* @param options - Optional configuration for flag evaluation
|
|
397
|
+
* @returns Promise that resolves to flags and payloads
|
|
398
|
+
*/
|
|
399
|
+
getAllFlagsAndPayloads(distinctId: string, options?: AllFlagsOptions): Promise<PostHogFlagsAndPayloadsResponse>;
|
|
400
|
+
/**
|
|
401
|
+
* @description Get a feature flag result using distinctId from withContext().
|
|
402
|
+
*/
|
|
403
|
+
getFeatureFlagResult(key: string, options?: FlagEvaluationOptions): Promise<FeatureFlagResult | undefined>;
|
|
363
404
|
/**
|
|
364
405
|
* @description Get the result of evaluating a feature flag, including its value and payload.
|
|
365
406
|
* This is more efficient than calling getFeatureFlag and getFeatureFlagPayload separately when you need both.
|
|
@@ -379,14 +420,7 @@ export interface IPostHog {
|
|
|
379
420
|
* @param options - Optional configuration for flag evaluation
|
|
380
421
|
* @returns Promise that resolves to the flag result or undefined
|
|
381
422
|
*/
|
|
382
|
-
getFeatureFlagResult(key: string, distinctId: string, options?:
|
|
383
|
-
groups?: Record<string, string>;
|
|
384
|
-
personProperties?: Record<string, string>;
|
|
385
|
-
groupProperties?: Record<string, Record<string, string>>;
|
|
386
|
-
onlyEvaluateLocally?: boolean;
|
|
387
|
-
sendFeatureFlagEvents?: boolean;
|
|
388
|
-
disableGeoip?: boolean;
|
|
389
|
-
}): Promise<FeatureFlagResult | undefined>;
|
|
423
|
+
getFeatureFlagResult(key: string, distinctId: string, options?: FlagEvaluationOptions): Promise<FeatureFlagResult | undefined>;
|
|
390
424
|
/**
|
|
391
425
|
* @description Sets a groups properties, which allows asking questions like "Who are the most active companies"
|
|
392
426
|
* using my product in PostHog.
|
|
@@ -434,6 +468,14 @@ export interface IPostHog {
|
|
|
434
468
|
* @returns The return value of the function
|
|
435
469
|
*/
|
|
436
470
|
withContext<T>(data: Partial<ContextData>, fn: () => T, options?: ContextOptions): T;
|
|
471
|
+
/**
|
|
472
|
+
* @description Set context without a callback wrapper. Must be called in the same
|
|
473
|
+
* async scope that makes PostHog calls. Prefer `withContext()` when you can wrap
|
|
474
|
+
* code in a callback.
|
|
475
|
+
* @param data Context data to apply (distinctId, sessionId, properties)
|
|
476
|
+
* @param options Context options (fresh)
|
|
477
|
+
*/
|
|
478
|
+
enterContext(data: Partial<ContextData>, options?: ContextOptions): void;
|
|
437
479
|
/**
|
|
438
480
|
* @description Get the current context data.
|
|
439
481
|
* @returns The current context data, or undefined if no context is set
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "5.
|
|
1
|
+
export declare const version = "5.26.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -26,7 +26,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
|
27
27
|
version: ()=>version
|
|
28
28
|
});
|
|
29
|
-
const version = '5.
|
|
29
|
+
const version = '5.26.0';
|
|
30
30
|
exports.version = __webpack_exports__.version;
|
|
31
31
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
32
32
|
"version"
|
package/dist/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const version = '5.
|
|
1
|
+
const version = '5.26.0';
|
|
2
2
|
export { version };
|