@posthog/core 1.33.0 → 1.34.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/posthog-core.d.ts +20 -0
- package/dist/posthog-core.d.ts.map +1 -1
- package/dist/posthog-core.js +79 -10
- package/dist/posthog-core.mjs +79 -10
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/posthog-core.ts +120 -13
- package/src/types.ts +19 -0
package/dist/posthog-core.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ interface FlagsAsyncOptions {
|
|
|
9
9
|
}
|
|
10
10
|
export declare abstract class PostHogCore extends PostHogCoreStateless {
|
|
11
11
|
private sendFeatureFlagEvent;
|
|
12
|
+
private disableRemoteFeatureFlags;
|
|
12
13
|
private flagCallReported;
|
|
13
14
|
private _beforeSend?;
|
|
14
15
|
protected _flagsResponsePromise?: Promise<PostHogFeatureFlagsResponse | undefined>;
|
|
@@ -165,6 +166,25 @@ export declare abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
165
166
|
onFeatureFlags(cb: (flags: PostHogFlagsResponse['featureFlags']) => void): () => void;
|
|
166
167
|
onFeatureFlag(key: string, cb: (value: FeatureFlagValue) => void): () => void;
|
|
167
168
|
overrideFeatureFlag(flags: PostHogFlagsResponse['featureFlags'] | null): Promise<void>;
|
|
169
|
+
/**
|
|
170
|
+
* Replaces (or merges into) the stored feature flags and payloads with locally supplied
|
|
171
|
+
* values, exactly as if they had been returned by the flags endpoint: the values are
|
|
172
|
+
* persisted, `getFeatureFlag()`/`getFeatureFlagPayload()` read them back, and
|
|
173
|
+
* `onFeatureFlags` listeners fire. Makes no network request.
|
|
174
|
+
*
|
|
175
|
+
* Intended for apps that evaluate flags outside the SDK (e.g. server-side local
|
|
176
|
+
* evaluation) and push the results in at runtime, typically together with the
|
|
177
|
+
* `disableRemoteFeatureFlags` option so the SDK never fetches flags itself.
|
|
178
|
+
*
|
|
179
|
+
* The values are cleared by `reset()`, so push them again after an identity change.
|
|
180
|
+
*
|
|
181
|
+
* @param flags - Flag keys mapped to their values (boolean, or a variant string)
|
|
182
|
+
* @param payloads - Optional flag keys mapped to their JSON payloads
|
|
183
|
+
* @param options - Set `merge: true` to merge with the currently stored flags instead of replacing them
|
|
184
|
+
*/
|
|
185
|
+
updateFlags(flags: Record<string, FeatureFlagValue>, payloads?: Record<string, JsonType>, options?: {
|
|
186
|
+
merge?: boolean;
|
|
187
|
+
}): void;
|
|
168
188
|
/**
|
|
169
189
|
* Capture a caught exception manually
|
|
170
190
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EAGxB,yBAAyB,EAKzB,sBAAsB,EAGvB,MAAM,SAAS,CAAA;AAYhB,OAAO,EAAiC,wBAAwB,EAAE,MAAM,SAAS,CAAA;AACjF,OAAO,EAAY,oBAAoB,EAAuB,MAAM,0BAA0B,CAAA;AAG9F,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAG5C,UAAU,iBAAiB;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAOD,8BAAsB,WAAY,SAAQ,oBAAoB;IAE5D,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,WAAW,CAAC,CAA+B;IAGnD,SAAS,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAA;IAClF,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAA;IAC/C,OAAO,CAAC,wBAAwB,CAAuB;IACvD,SAAS,CAAC,YAAY,EAAE,sBAAsB,CAAK;IAInD,OAAO,CAAC,oBAAoB,CAAC,CAAqB;IAGlD,SAAS,CAAC,eAAe,EAAE,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAA;IAGjE,SAAS,CAAC,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAO;gBAE3C,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"posthog-core.d.ts","sourceRoot":"","sources":["../src/posthog-core.ts"],"names":[],"mappings":"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"}
|
package/dist/posthog-core.js
CHANGED
|
@@ -41,6 +41,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
41
41
|
featureFlagsRequestTimeoutMs
|
|
42
42
|
}), this.flagCallReported = {}, this._sessionMaxLengthSeconds = 86400, this.sessionProps = {}, this._cachedPersonProperties = null;
|
|
43
43
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true;
|
|
44
|
+
this.disableRemoteFeatureFlags = options?.disableRemoteFeatureFlags ?? false;
|
|
44
45
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800;
|
|
45
46
|
this._personProfiles = options?.personProfiles ?? 'identified_only';
|
|
46
47
|
this._beforeSend = options?.before_send;
|
|
@@ -97,7 +98,11 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
97
98
|
this.clearProps();
|
|
98
99
|
this._cachedPersonProperties = null;
|
|
99
100
|
for (const key of Object.keys(external_types_js_namespaceObject.PostHogPersistedProperty))if (!allPropertiesToKeep.includes(external_types_js_namespaceObject.PostHogPersistedProperty[key])) this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty[key], null);
|
|
100
|
-
this.
|
|
101
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
102
|
+
if (!allPropertiesToKeep.includes(external_types_js_namespaceObject.PostHogPersistedProperty.FeatureFlagDetails)) this.setKnownFeatureFlagDetails({
|
|
103
|
+
flags: {}
|
|
104
|
+
});
|
|
105
|
+
} else this.reloadFeatureFlags();
|
|
101
106
|
});
|
|
102
107
|
}
|
|
103
108
|
getCommonEventProperties() {
|
|
@@ -312,6 +317,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
312
317
|
const { sendAnonDistinctId = true, fetchConfig = false, triggerOnRemoteConfig = false } = options ?? {};
|
|
313
318
|
await this._initPromise;
|
|
314
319
|
if (this.disabled) return;
|
|
320
|
+
if (this.disableRemoteFeatureFlags && !fetchConfig) return void this._logger.info('Feature flags are disabled (disableRemoteFeatureFlags), skipping reload.');
|
|
315
321
|
if (this._flagsResponsePromise) {
|
|
316
322
|
this._logger.info('Feature flags are being loaded already, queuing reload.');
|
|
317
323
|
if (this._pendingFlagsRequest) this._flagsResponsePromise.then(this._pendingFlagsRequest.resolve).catch(this._pendingFlagsRequest.reject);
|
|
@@ -375,11 +381,11 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
375
381
|
this.cacheSessionReplay('remote config', response);
|
|
376
382
|
let willLoadFlags = false;
|
|
377
383
|
if (false === response.hasFeatureFlags) {
|
|
378
|
-
this.setKnownFeatureFlagDetails({
|
|
384
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
379
385
|
flags: {}
|
|
380
386
|
});
|
|
381
387
|
this._logger.warn('Remote config has no feature flags, will not load feature flags.');
|
|
382
|
-
} else if (false !== this.preloadFeatureFlags) {
|
|
388
|
+
} else if (false !== this.preloadFeatureFlags && !this.disableRemoteFeatureFlags) {
|
|
383
389
|
willLoadFlags = true;
|
|
384
390
|
this.flagsAsync({
|
|
385
391
|
sendAnonDistinctId: true,
|
|
@@ -410,16 +416,22 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
410
416
|
const deviceId = this.getPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.DeviceId);
|
|
411
417
|
const extraProperties = {
|
|
412
418
|
$anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : void 0,
|
|
413
|
-
$device_id: deviceId ?? void 0
|
|
419
|
+
$device_id: deviceId ?? void 0,
|
|
420
|
+
...this.disableRemoteFeatureFlags ? {
|
|
421
|
+
disable_flags: true
|
|
422
|
+
} : {}
|
|
414
423
|
};
|
|
415
424
|
const result = await super.getFlags(distinctId, groups, personProperties, groupProperties, extraProperties, fetchConfig);
|
|
416
|
-
if (!result.success)
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
425
|
+
if (!result.success) {
|
|
426
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
427
|
+
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
428
|
+
requestError: result.error
|
|
429
|
+
});
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
420
432
|
const res = result.response;
|
|
421
433
|
if (res?.quotaLimited?.includes(external_posthog_core_stateless_js_namespaceObject.QuotaLimitedFeature.FeatureFlags)) {
|
|
422
|
-
this.setKnownFeatureFlagDetails({
|
|
434
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
423
435
|
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
424
436
|
quotaLimited: res.quotaLimited
|
|
425
437
|
});
|
|
@@ -428,6 +440,11 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
428
440
|
return res;
|
|
429
441
|
}
|
|
430
442
|
if (res?.featureFlags) {
|
|
443
|
+
if (this.disableRemoteFeatureFlags) {
|
|
444
|
+
this.cacheSessionReplay('flags', res);
|
|
445
|
+
this.maybeNotifyRemoteConfig(triggerOnRemoteConfig, res);
|
|
446
|
+
return res;
|
|
447
|
+
}
|
|
431
448
|
if (this.sendFeatureFlagEvent) this.flagCallReported = {};
|
|
432
449
|
let newFeatureFlagDetails = res;
|
|
433
450
|
if (res.errorsWhileComputingFlags) {
|
|
@@ -607,7 +624,9 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
607
624
|
featureFlagPayloads: {},
|
|
608
625
|
flags: {}
|
|
609
626
|
};
|
|
610
|
-
const flags =
|
|
627
|
+
const flags = {
|
|
628
|
+
...details.flags ?? {}
|
|
629
|
+
};
|
|
611
630
|
for(const key in overriddenFlags)if (overriddenFlags[key]) flags[key] = (0, external_featureFlagUtils_js_namespaceObject.updateFlagValue)(flags[key], overriddenFlags[key]);
|
|
612
631
|
else delete flags[key];
|
|
613
632
|
const result = {
|
|
@@ -630,6 +649,7 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
630
649
|
return !!response;
|
|
631
650
|
}
|
|
632
651
|
reloadFeatureFlags(options) {
|
|
652
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) return void this._initPromise.then(()=>options?.cb?.(void 0, this.getFeatureFlags()));
|
|
633
653
|
this.flagsAsync({
|
|
634
654
|
sendAnonDistinctId: true
|
|
635
655
|
}).then((res)=>{
|
|
@@ -643,6 +663,10 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
643
663
|
return await this.remoteConfigAsync();
|
|
644
664
|
}
|
|
645
665
|
async reloadFeatureFlagsAsync(sendAnonDistinctId) {
|
|
666
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
667
|
+
await this._initPromise;
|
|
668
|
+
return this.getFeatureFlags();
|
|
669
|
+
}
|
|
646
670
|
return (await this.flagsAsync({
|
|
647
671
|
sendAnonDistinctId: sendAnonDistinctId
|
|
648
672
|
}))?.featureFlags;
|
|
@@ -665,6 +689,51 @@ class PostHogCore extends external_posthog_core_stateless_js_namespaceObject.Pos
|
|
|
665
689
|
return this.setPersistedProperty(external_types_js_namespaceObject.PostHogPersistedProperty.OverrideFeatureFlags, flags);
|
|
666
690
|
});
|
|
667
691
|
}
|
|
692
|
+
updateFlags(flags, payloads, options) {
|
|
693
|
+
this.wrap(()=>{
|
|
694
|
+
const existingDetails = options?.merge ? this.getKnownFeatureFlagDetails()?.flags : void 0;
|
|
695
|
+
const existingFlags = existingDetails ? (0, external_featureFlagUtils_js_namespaceObject.getFlagValuesFromFlags)(existingDetails) : {};
|
|
696
|
+
const existingPayloads = {};
|
|
697
|
+
for(const key in existingDetails){
|
|
698
|
+
const storedPayload = existingDetails[key].metadata?.payload;
|
|
699
|
+
if (void 0 !== storedPayload) existingPayloads[key] = (0, external_featureFlagUtils_js_namespaceObject.parsePayload)(storedPayload);
|
|
700
|
+
}
|
|
701
|
+
const finalFlags = {
|
|
702
|
+
...existingFlags,
|
|
703
|
+
...flags
|
|
704
|
+
};
|
|
705
|
+
const finalPayloads = {
|
|
706
|
+
...existingPayloads,
|
|
707
|
+
...payloads ?? {}
|
|
708
|
+
};
|
|
709
|
+
const flagDetails = {};
|
|
710
|
+
for (const [key, value] of Object.entries(finalFlags)){
|
|
711
|
+
const payload = finalPayloads[key];
|
|
712
|
+
let serializedPayload;
|
|
713
|
+
if (void 0 !== payload) try {
|
|
714
|
+
serializedPayload = JSON.stringify(payload);
|
|
715
|
+
} catch (e) {
|
|
716
|
+
this._logger.error(`updateFlags: could not serialize the payload for flag "${key}", dropping it.`, e);
|
|
717
|
+
}
|
|
718
|
+
flagDetails[key] = {
|
|
719
|
+
key,
|
|
720
|
+
enabled: (0, external_featureFlagUtils_js_namespaceObject.getEnabledFromValue)(value),
|
|
721
|
+
variant: (0, external_featureFlagUtils_js_namespaceObject.getVariantFromValue)(value),
|
|
722
|
+
reason: void 0,
|
|
723
|
+
metadata: {
|
|
724
|
+
id: void 0,
|
|
725
|
+
version: void 0,
|
|
726
|
+
description: void 0,
|
|
727
|
+
payload: serializedPayload
|
|
728
|
+
}
|
|
729
|
+
};
|
|
730
|
+
}
|
|
731
|
+
if (this.sendFeatureFlagEvent) this.flagCallReported = {};
|
|
732
|
+
this.setKnownFeatureFlagDetails({
|
|
733
|
+
flags: flagDetails
|
|
734
|
+
});
|
|
735
|
+
});
|
|
736
|
+
}
|
|
668
737
|
captureException(error, additionalProperties, hint) {
|
|
669
738
|
try {
|
|
670
739
|
const exceptionProperties = this.getErrorPropertiesBuilder().buildFromUnknown(error, hint);
|
package/dist/posthog-core.mjs
CHANGED
|
@@ -13,6 +13,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
13
13
|
featureFlagsRequestTimeoutMs
|
|
14
14
|
}), this.flagCallReported = {}, this._sessionMaxLengthSeconds = 86400, this.sessionProps = {}, this._cachedPersonProperties = null;
|
|
15
15
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true;
|
|
16
|
+
this.disableRemoteFeatureFlags = options?.disableRemoteFeatureFlags ?? false;
|
|
16
17
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800;
|
|
17
18
|
this._personProfiles = options?.personProfiles ?? 'identified_only';
|
|
18
19
|
this._beforeSend = options?.before_send;
|
|
@@ -69,7 +70,11 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
69
70
|
this.clearProps();
|
|
70
71
|
this._cachedPersonProperties = null;
|
|
71
72
|
for (const key of Object.keys(PostHogPersistedProperty))if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) this.setPersistedProperty(PostHogPersistedProperty[key], null);
|
|
72
|
-
this.
|
|
73
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
74
|
+
if (!allPropertiesToKeep.includes(PostHogPersistedProperty.FeatureFlagDetails)) this.setKnownFeatureFlagDetails({
|
|
75
|
+
flags: {}
|
|
76
|
+
});
|
|
77
|
+
} else this.reloadFeatureFlags();
|
|
73
78
|
});
|
|
74
79
|
}
|
|
75
80
|
getCommonEventProperties() {
|
|
@@ -284,6 +289,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
284
289
|
const { sendAnonDistinctId = true, fetchConfig = false, triggerOnRemoteConfig = false } = options ?? {};
|
|
285
290
|
await this._initPromise;
|
|
286
291
|
if (this.disabled) return;
|
|
292
|
+
if (this.disableRemoteFeatureFlags && !fetchConfig) return void this._logger.info('Feature flags are disabled (disableRemoteFeatureFlags), skipping reload.');
|
|
287
293
|
if (this._flagsResponsePromise) {
|
|
288
294
|
this._logger.info('Feature flags are being loaded already, queuing reload.');
|
|
289
295
|
if (this._pendingFlagsRequest) this._flagsResponsePromise.then(this._pendingFlagsRequest.resolve).catch(this._pendingFlagsRequest.reject);
|
|
@@ -347,11 +353,11 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
347
353
|
this.cacheSessionReplay('remote config', response);
|
|
348
354
|
let willLoadFlags = false;
|
|
349
355
|
if (false === response.hasFeatureFlags) {
|
|
350
|
-
this.setKnownFeatureFlagDetails({
|
|
356
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
351
357
|
flags: {}
|
|
352
358
|
});
|
|
353
359
|
this._logger.warn('Remote config has no feature flags, will not load feature flags.');
|
|
354
|
-
} else if (false !== this.preloadFeatureFlags) {
|
|
360
|
+
} else if (false !== this.preloadFeatureFlags && !this.disableRemoteFeatureFlags) {
|
|
355
361
|
willLoadFlags = true;
|
|
356
362
|
this.flagsAsync({
|
|
357
363
|
sendAnonDistinctId: true,
|
|
@@ -382,16 +388,22 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
382
388
|
const deviceId = this.getPersistedProperty(PostHogPersistedProperty.DeviceId);
|
|
383
389
|
const extraProperties = {
|
|
384
390
|
$anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : void 0,
|
|
385
|
-
$device_id: deviceId ?? void 0
|
|
391
|
+
$device_id: deviceId ?? void 0,
|
|
392
|
+
...this.disableRemoteFeatureFlags ? {
|
|
393
|
+
disable_flags: true
|
|
394
|
+
} : {}
|
|
386
395
|
};
|
|
387
396
|
const result = await super.getFlags(distinctId, groups, personProperties, groupProperties, extraProperties, fetchConfig);
|
|
388
|
-
if (!result.success)
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
397
|
+
if (!result.success) {
|
|
398
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
399
|
+
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
400
|
+
requestError: result.error
|
|
401
|
+
});
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
392
404
|
const res = result.response;
|
|
393
405
|
if (res?.quotaLimited?.includes(QuotaLimitedFeature.FeatureFlags)) {
|
|
394
|
-
this.setKnownFeatureFlagDetails({
|
|
406
|
+
if (!this.disableRemoteFeatureFlags) this.setKnownFeatureFlagDetails({
|
|
395
407
|
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
396
408
|
quotaLimited: res.quotaLimited
|
|
397
409
|
});
|
|
@@ -400,6 +412,11 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
400
412
|
return res;
|
|
401
413
|
}
|
|
402
414
|
if (res?.featureFlags) {
|
|
415
|
+
if (this.disableRemoteFeatureFlags) {
|
|
416
|
+
this.cacheSessionReplay('flags', res);
|
|
417
|
+
this.maybeNotifyRemoteConfig(triggerOnRemoteConfig, res);
|
|
418
|
+
return res;
|
|
419
|
+
}
|
|
403
420
|
if (this.sendFeatureFlagEvent) this.flagCallReported = {};
|
|
404
421
|
let newFeatureFlagDetails = res;
|
|
405
422
|
if (res.errorsWhileComputingFlags) {
|
|
@@ -579,7 +596,9 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
579
596
|
featureFlagPayloads: {},
|
|
580
597
|
flags: {}
|
|
581
598
|
};
|
|
582
|
-
const flags =
|
|
599
|
+
const flags = {
|
|
600
|
+
...details.flags ?? {}
|
|
601
|
+
};
|
|
583
602
|
for(const key in overriddenFlags)if (overriddenFlags[key]) flags[key] = updateFlagValue(flags[key], overriddenFlags[key]);
|
|
584
603
|
else delete flags[key];
|
|
585
604
|
const result = {
|
|
@@ -602,6 +621,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
602
621
|
return !!response;
|
|
603
622
|
}
|
|
604
623
|
reloadFeatureFlags(options) {
|
|
624
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) return void this._initPromise.then(()=>options?.cb?.(void 0, this.getFeatureFlags()));
|
|
605
625
|
this.flagsAsync({
|
|
606
626
|
sendAnonDistinctId: true
|
|
607
627
|
}).then((res)=>{
|
|
@@ -615,6 +635,10 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
615
635
|
return await this.remoteConfigAsync();
|
|
616
636
|
}
|
|
617
637
|
async reloadFeatureFlagsAsync(sendAnonDistinctId) {
|
|
638
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
639
|
+
await this._initPromise;
|
|
640
|
+
return this.getFeatureFlags();
|
|
641
|
+
}
|
|
618
642
|
return (await this.flagsAsync({
|
|
619
643
|
sendAnonDistinctId: sendAnonDistinctId
|
|
620
644
|
}))?.featureFlags;
|
|
@@ -637,6 +661,51 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
637
661
|
return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags);
|
|
638
662
|
});
|
|
639
663
|
}
|
|
664
|
+
updateFlags(flags, payloads, options) {
|
|
665
|
+
this.wrap(()=>{
|
|
666
|
+
const existingDetails = options?.merge ? this.getKnownFeatureFlagDetails()?.flags : void 0;
|
|
667
|
+
const existingFlags = existingDetails ? getFlagValuesFromFlags(existingDetails) : {};
|
|
668
|
+
const existingPayloads = {};
|
|
669
|
+
for(const key in existingDetails){
|
|
670
|
+
const storedPayload = existingDetails[key].metadata?.payload;
|
|
671
|
+
if (void 0 !== storedPayload) existingPayloads[key] = parsePayload(storedPayload);
|
|
672
|
+
}
|
|
673
|
+
const finalFlags = {
|
|
674
|
+
...existingFlags,
|
|
675
|
+
...flags
|
|
676
|
+
};
|
|
677
|
+
const finalPayloads = {
|
|
678
|
+
...existingPayloads,
|
|
679
|
+
...payloads ?? {}
|
|
680
|
+
};
|
|
681
|
+
const flagDetails = {};
|
|
682
|
+
for (const [key, value] of Object.entries(finalFlags)){
|
|
683
|
+
const payload = finalPayloads[key];
|
|
684
|
+
let serializedPayload;
|
|
685
|
+
if (void 0 !== payload) try {
|
|
686
|
+
serializedPayload = JSON.stringify(payload);
|
|
687
|
+
} catch (e) {
|
|
688
|
+
this._logger.error(`updateFlags: could not serialize the payload for flag "${key}", dropping it.`, e);
|
|
689
|
+
}
|
|
690
|
+
flagDetails[key] = {
|
|
691
|
+
key,
|
|
692
|
+
enabled: getEnabledFromValue(value),
|
|
693
|
+
variant: getVariantFromValue(value),
|
|
694
|
+
reason: void 0,
|
|
695
|
+
metadata: {
|
|
696
|
+
id: void 0,
|
|
697
|
+
version: void 0,
|
|
698
|
+
description: void 0,
|
|
699
|
+
payload: serializedPayload
|
|
700
|
+
}
|
|
701
|
+
};
|
|
702
|
+
}
|
|
703
|
+
if (this.sendFeatureFlagEvent) this.flagCallReported = {};
|
|
704
|
+
this.setKnownFeatureFlagDetails({
|
|
705
|
+
flags: flagDetails
|
|
706
|
+
});
|
|
707
|
+
});
|
|
708
|
+
}
|
|
640
709
|
captureException(error, additionalProperties, hint) {
|
|
641
710
|
try {
|
|
642
711
|
const exceptionProperties = this.getErrorPropertiesBuilder().buildFromUnknown(error, hint);
|
package/dist/types.d.ts
CHANGED
|
@@ -53,6 +53,25 @@ export type PostHogCoreOptions = {
|
|
|
53
53
|
* @default true
|
|
54
54
|
*/
|
|
55
55
|
preloadFeatureFlags?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Advanced: whether to disable fetching and evaluating feature flags from PostHog entirely.
|
|
58
|
+
*
|
|
59
|
+
* When set to true, `reloadFeatureFlags()` and the reloads triggered by `identify()`,
|
|
60
|
+
* `group()`, `setPersonPropertiesForFlags()` and `reset()` become no-ops, and any request
|
|
61
|
+
* to the flags endpoint that still goes out (e.g. to fetch remote config or surveys)
|
|
62
|
+
* carries `disable_flags: true` so the server skips flag evaluation. Flag values must be
|
|
63
|
+
* supplied via the `bootstrap` option or `updateFlags()` instead; `getFeatureFlag()` and
|
|
64
|
+
* related methods keep working against those values. Until `updateFlags()` runs, reads
|
|
65
|
+
* return their not-loaded defaults, so use `bootstrap` for any flags needed at startup.
|
|
66
|
+
* Equivalent to the web SDK's `advanced_disable_feature_flags`.
|
|
67
|
+
*
|
|
68
|
+
* Note: surveys gated on feature flags will not evaluate unless the survey targeting
|
|
69
|
+
* flags are also provided via `updateFlags()`. This option cannot be toggled at runtime.
|
|
70
|
+
* `posthog-node` inherits this option but does not implement it (no-op).
|
|
71
|
+
*
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
disableRemoteFeatureFlags?: boolean;
|
|
56
75
|
/**
|
|
57
76
|
* Whether to load remote config when initialized or not
|
|
58
77
|
* Experimental support
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/posthog-core.ts
CHANGED
|
@@ -53,6 +53,7 @@ interface PendingFlagsRequest extends FlagsAsyncOptions {
|
|
|
53
53
|
export abstract class PostHogCore extends PostHogCoreStateless {
|
|
54
54
|
// options
|
|
55
55
|
private sendFeatureFlagEvent: boolean
|
|
56
|
+
private disableRemoteFeatureFlags: boolean
|
|
56
57
|
private flagCallReported: { [key: string]: boolean } = {}
|
|
57
58
|
private _beforeSend?: BeforeSendFn | BeforeSendFn[]
|
|
58
59
|
|
|
@@ -82,6 +83,7 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
82
83
|
super(apiKey, { ...options, disableGeoip: disableGeoipOption, featureFlagsRequestTimeoutMs })
|
|
83
84
|
|
|
84
85
|
this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true
|
|
86
|
+
this.disableRemoteFeatureFlags = options?.disableRemoteFeatureFlags ?? false
|
|
85
87
|
this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800 // 30 minutes
|
|
86
88
|
this._personProfiles = options?.personProfiles ?? 'identified_only'
|
|
87
89
|
this._beforeSend = options?.before_send
|
|
@@ -178,7 +180,17 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
178
180
|
}
|
|
179
181
|
}
|
|
180
182
|
|
|
181
|
-
this.
|
|
183
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
184
|
+
// No reload runs to emit the change, so emit the now-cleared flags directly
|
|
185
|
+
// (drives onFeatureFlags listeners, e.g. session replay re-arm). Callers re-push
|
|
186
|
+
// the new identity's flags via updateFlags(). Skip when the caller kept
|
|
187
|
+
// FeatureFlagDetails — those flags stay as-is, so there's nothing to emit.
|
|
188
|
+
if (!allPropertiesToKeep.includes(PostHogPersistedProperty.FeatureFlagDetails)) {
|
|
189
|
+
this.setKnownFeatureFlagDetails({ flags: {} })
|
|
190
|
+
}
|
|
191
|
+
} else {
|
|
192
|
+
this.reloadFeatureFlags()
|
|
193
|
+
}
|
|
182
194
|
})
|
|
183
195
|
}
|
|
184
196
|
|
|
@@ -585,6 +597,11 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
585
597
|
if (this.disabled) {
|
|
586
598
|
return undefined
|
|
587
599
|
}
|
|
600
|
+
// Config-fetching requests still go out (carrying disable_flags); only pure reloads no-op.
|
|
601
|
+
if (this.disableRemoteFeatureFlags && !fetchConfig) {
|
|
602
|
+
this._logger.info('Feature flags are disabled (disableRemoteFeatureFlags), skipping reload.')
|
|
603
|
+
return undefined
|
|
604
|
+
}
|
|
588
605
|
if (this._flagsResponsePromise) {
|
|
589
606
|
// Queue the reload request instead of dropping it
|
|
590
607
|
// This ensures that requests with $anon_distinct_id (from identify()) are not lost
|
|
@@ -696,11 +713,12 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
696
713
|
// we only dont load flags if the remote config has no feature flags
|
|
697
714
|
let willLoadFlags = false
|
|
698
715
|
if (response.hasFeatureFlags === false) {
|
|
699
|
-
|
|
700
|
-
|
|
716
|
+
if (!this.disableRemoteFeatureFlags) {
|
|
717
|
+
this.setKnownFeatureFlagDetails({ flags: {} })
|
|
718
|
+
}
|
|
701
719
|
|
|
702
720
|
this._logger.warn('Remote config has no feature flags, will not load feature flags.')
|
|
703
|
-
} else if (this.preloadFeatureFlags !== false) {
|
|
721
|
+
} else if (this.preloadFeatureFlags !== false && !this.disableRemoteFeatureFlags) {
|
|
704
722
|
willLoadFlags = true
|
|
705
723
|
this.flagsAsync({ sendAnonDistinctId: true, fetchConfig: true, triggerOnRemoteConfig: true })
|
|
706
724
|
}
|
|
@@ -746,6 +764,7 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
746
764
|
$anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : undefined,
|
|
747
765
|
// Only set by the React Native SDK; omitted from JSON when DeviceId is not persisted
|
|
748
766
|
$device_id: deviceId ?? undefined,
|
|
767
|
+
...(this.disableRemoteFeatureFlags ? { disable_flags: true } : {}),
|
|
749
768
|
}
|
|
750
769
|
|
|
751
770
|
const result = await super.getFlags(
|
|
@@ -758,20 +777,24 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
758
777
|
)
|
|
759
778
|
|
|
760
779
|
if (!result.success) {
|
|
761
|
-
this.
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
780
|
+
if (!this.disableRemoteFeatureFlags) {
|
|
781
|
+
this.setKnownFeatureFlagDetails({
|
|
782
|
+
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
783
|
+
requestError: result.error,
|
|
784
|
+
})
|
|
785
|
+
}
|
|
765
786
|
return undefined
|
|
766
787
|
}
|
|
767
788
|
|
|
768
789
|
const res = result.response
|
|
769
790
|
|
|
770
791
|
if (res?.quotaLimited?.includes(QuotaLimitedFeature.FeatureFlags)) {
|
|
771
|
-
this.
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
792
|
+
if (!this.disableRemoteFeatureFlags) {
|
|
793
|
+
this.setKnownFeatureFlagDetails({
|
|
794
|
+
flags: this.getKnownFeatureFlagDetails()?.flags ?? {},
|
|
795
|
+
quotaLimited: res.quotaLimited,
|
|
796
|
+
})
|
|
797
|
+
}
|
|
775
798
|
this._logger.warn(
|
|
776
799
|
'[FEATURE FLAGS] Feature flags quota limit exceeded. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts'
|
|
777
800
|
)
|
|
@@ -779,6 +802,12 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
779
802
|
return res
|
|
780
803
|
}
|
|
781
804
|
if (res?.featureFlags) {
|
|
805
|
+
if (this.disableRemoteFeatureFlags) {
|
|
806
|
+
this.cacheSessionReplay('flags', res)
|
|
807
|
+
this.maybeNotifyRemoteConfig(triggerOnRemoteConfig, res)
|
|
808
|
+
return res
|
|
809
|
+
}
|
|
810
|
+
|
|
782
811
|
// clear flag call reported if we have new flags since they might have changed
|
|
783
812
|
if (this.sendFeatureFlagEvent) {
|
|
784
813
|
this.flagCallReported = {}
|
|
@@ -1052,7 +1081,8 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
1052
1081
|
|
|
1053
1082
|
details = details ?? { featureFlags: {}, featureFlagPayloads: {}, flags: {} }
|
|
1054
1083
|
|
|
1055
|
-
|
|
1084
|
+
// Copy before applying overrides so reads don't mutate the stored flags in place.
|
|
1085
|
+
const flags: Record<string, FeatureFlagDetail> = { ...(details.flags ?? {}) }
|
|
1056
1086
|
|
|
1057
1087
|
for (const key in overriddenFlags) {
|
|
1058
1088
|
if (!overriddenFlags[key]) {
|
|
@@ -1093,6 +1123,10 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
1093
1123
|
|
|
1094
1124
|
// Used when we want to trigger the reload but we don't care about the result
|
|
1095
1125
|
reloadFeatureFlags(options?: { cb?: (err?: Error, flags?: PostHogFlagsResponse['featureFlags']) => void }): void {
|
|
1126
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
1127
|
+
this._initPromise.then(() => options?.cb?.(undefined, this.getFeatureFlags()))
|
|
1128
|
+
return
|
|
1129
|
+
}
|
|
1096
1130
|
this.flagsAsync({ sendAnonDistinctId: true })
|
|
1097
1131
|
.then((res) => {
|
|
1098
1132
|
options?.cb?.(undefined, res?.featureFlags)
|
|
@@ -1112,6 +1146,10 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
1112
1146
|
async reloadFeatureFlagsAsync(
|
|
1113
1147
|
sendAnonDistinctId?: boolean
|
|
1114
1148
|
): Promise<PostHogFlagsResponse['featureFlags'] | undefined> {
|
|
1149
|
+
if (this.disableRemoteFeatureFlags && !this.disabled) {
|
|
1150
|
+
await this._initPromise
|
|
1151
|
+
return this.getFeatureFlags()
|
|
1152
|
+
}
|
|
1115
1153
|
return (await this.flagsAsync({ sendAnonDistinctId: sendAnonDistinctId }))?.featureFlags
|
|
1116
1154
|
}
|
|
1117
1155
|
|
|
@@ -1142,6 +1180,75 @@ export abstract class PostHogCore extends PostHogCoreStateless {
|
|
|
1142
1180
|
})
|
|
1143
1181
|
}
|
|
1144
1182
|
|
|
1183
|
+
/**
|
|
1184
|
+
* Replaces (or merges into) the stored feature flags and payloads with locally supplied
|
|
1185
|
+
* values, exactly as if they had been returned by the flags endpoint: the values are
|
|
1186
|
+
* persisted, `getFeatureFlag()`/`getFeatureFlagPayload()` read them back, and
|
|
1187
|
+
* `onFeatureFlags` listeners fire. Makes no network request.
|
|
1188
|
+
*
|
|
1189
|
+
* Intended for apps that evaluate flags outside the SDK (e.g. server-side local
|
|
1190
|
+
* evaluation) and push the results in at runtime, typically together with the
|
|
1191
|
+
* `disableRemoteFeatureFlags` option so the SDK never fetches flags itself.
|
|
1192
|
+
*
|
|
1193
|
+
* The values are cleared by `reset()`, so push them again after an identity change.
|
|
1194
|
+
*
|
|
1195
|
+
* @param flags - Flag keys mapped to their values (boolean, or a variant string)
|
|
1196
|
+
* @param payloads - Optional flag keys mapped to their JSON payloads
|
|
1197
|
+
* @param options - Set `merge: true` to merge with the currently stored flags instead of replacing them
|
|
1198
|
+
*/
|
|
1199
|
+
updateFlags(
|
|
1200
|
+
flags: Record<string, FeatureFlagValue>,
|
|
1201
|
+
payloads?: Record<string, JsonType>,
|
|
1202
|
+
options?: { merge?: boolean }
|
|
1203
|
+
): void {
|
|
1204
|
+
this.wrap(() => {
|
|
1205
|
+
// Merge against the raw stored flags, not the override-applied view.
|
|
1206
|
+
const existingDetails = options?.merge ? this.getKnownFeatureFlagDetails()?.flags : undefined
|
|
1207
|
+
const existingFlags = existingDetails ? getFlagValuesFromFlags(existingDetails) : {}
|
|
1208
|
+
const existingPayloads: Record<string, JsonType> = {}
|
|
1209
|
+
for (const key in existingDetails) {
|
|
1210
|
+
const storedPayload = existingDetails[key].metadata?.payload
|
|
1211
|
+
if (storedPayload !== undefined) {
|
|
1212
|
+
existingPayloads[key] = parsePayload(storedPayload)
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
const finalFlags = { ...existingFlags, ...flags }
|
|
1216
|
+
const finalPayloads = { ...existingPayloads, ...(payloads ?? {}) }
|
|
1217
|
+
|
|
1218
|
+
// Built by hand, not via createFlagsResponseFromFlagsAndPayloads, which drops false flags.
|
|
1219
|
+
const flagDetails: Record<string, FeatureFlagDetail> = {}
|
|
1220
|
+
for (const [key, value] of Object.entries(finalFlags)) {
|
|
1221
|
+
const payload = finalPayloads[key]
|
|
1222
|
+
let serializedPayload: string | undefined
|
|
1223
|
+
if (payload !== undefined) {
|
|
1224
|
+
try {
|
|
1225
|
+
serializedPayload = JSON.stringify(payload)
|
|
1226
|
+
} catch (e) {
|
|
1227
|
+
this._logger.error(`updateFlags: could not serialize the payload for flag "${key}", dropping it.`, e)
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
flagDetails[key] = {
|
|
1231
|
+
key,
|
|
1232
|
+
enabled: getEnabledFromValue(value),
|
|
1233
|
+
variant: getVariantFromValue(value),
|
|
1234
|
+
reason: undefined,
|
|
1235
|
+
// Locally supplied flags have no server-side id/version
|
|
1236
|
+
metadata: {
|
|
1237
|
+
id: undefined,
|
|
1238
|
+
version: undefined,
|
|
1239
|
+
description: undefined,
|
|
1240
|
+
payload: serializedPayload,
|
|
1241
|
+
},
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
if (this.sendFeatureFlagEvent) {
|
|
1246
|
+
this.flagCallReported = {}
|
|
1247
|
+
}
|
|
1248
|
+
this.setKnownFeatureFlagDetails({ flags: flagDetails })
|
|
1249
|
+
})
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1145
1252
|
/**
|
|
1146
1253
|
* Capture a caught exception manually
|
|
1147
1254
|
*
|
package/src/types.ts
CHANGED
|
@@ -53,6 +53,25 @@ export type PostHogCoreOptions = {
|
|
|
53
53
|
* @default true
|
|
54
54
|
*/
|
|
55
55
|
preloadFeatureFlags?: boolean
|
|
56
|
+
/**
|
|
57
|
+
* Advanced: whether to disable fetching and evaluating feature flags from PostHog entirely.
|
|
58
|
+
*
|
|
59
|
+
* When set to true, `reloadFeatureFlags()` and the reloads triggered by `identify()`,
|
|
60
|
+
* `group()`, `setPersonPropertiesForFlags()` and `reset()` become no-ops, and any request
|
|
61
|
+
* to the flags endpoint that still goes out (e.g. to fetch remote config or surveys)
|
|
62
|
+
* carries `disable_flags: true` so the server skips flag evaluation. Flag values must be
|
|
63
|
+
* supplied via the `bootstrap` option or `updateFlags()` instead; `getFeatureFlag()` and
|
|
64
|
+
* related methods keep working against those values. Until `updateFlags()` runs, reads
|
|
65
|
+
* return their not-loaded defaults, so use `bootstrap` for any flags needed at startup.
|
|
66
|
+
* Equivalent to the web SDK's `advanced_disable_feature_flags`.
|
|
67
|
+
*
|
|
68
|
+
* Note: surveys gated on feature flags will not evaluate unless the survey targeting
|
|
69
|
+
* flags are also provided via `updateFlags()`. This option cannot be toggled at runtime.
|
|
70
|
+
* `posthog-node` inherits this option but does not implement it (no-op).
|
|
71
|
+
*
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
disableRemoteFeatureFlags?: boolean
|
|
56
75
|
/**
|
|
57
76
|
* Whether to load remote config when initialized or not
|
|
58
77
|
* Experimental support
|