posthog-js-lite 3.1.0 → 3.2.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/CHANGELOG.md +7 -0
- package/lib/index.cjs.js +12 -1
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.esm.js +12 -1
- package/lib/index.esm.js.map +1 -1
- package/lib/posthog-core/src/types.d.ts +4 -1
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -48,6 +48,8 @@ declare enum PostHogPersistedProperty {
|
|
|
48
48
|
Props = "props",
|
|
49
49
|
FeatureFlags = "feature_flags",
|
|
50
50
|
FeatureFlagPayloads = "feature_flag_payloads",
|
|
51
|
+
BootstrapFeatureFlags = "bootstrap_feature_flags",
|
|
52
|
+
BootstrapFeatureFlagPayloads = "bootstrap_feature_flag_payloads",
|
|
51
53
|
OverrideFeatureFlags = "override_feature_flags",
|
|
52
54
|
Queue = "queue",
|
|
53
55
|
OptedOut = "opted_out",
|
|
@@ -57,7 +59,8 @@ declare enum PostHogPersistedProperty {
|
|
|
57
59
|
GroupProperties = "group_properties",
|
|
58
60
|
InstalledAppBuild = "installed_app_build",
|
|
59
61
|
InstalledAppVersion = "installed_app_version",
|
|
60
|
-
SessionReplay = "session_replay"
|
|
62
|
+
SessionReplay = "session_replay",
|
|
63
|
+
DecideEndpointWasHit = "decide_endpoint_was_hit"
|
|
61
64
|
}
|
|
62
65
|
type PostHogFetchOptions = {
|
|
63
66
|
method: 'GET' | 'POST' | 'PUT' | 'PATCH';
|
package/lib/index.esm.js
CHANGED
|
@@ -5,6 +5,8 @@ var PostHogPersistedProperty;
|
|
|
5
5
|
PostHogPersistedProperty["Props"] = "props";
|
|
6
6
|
PostHogPersistedProperty["FeatureFlags"] = "feature_flags";
|
|
7
7
|
PostHogPersistedProperty["FeatureFlagPayloads"] = "feature_flag_payloads";
|
|
8
|
+
PostHogPersistedProperty["BootstrapFeatureFlags"] = "bootstrap_feature_flags";
|
|
9
|
+
PostHogPersistedProperty["BootstrapFeatureFlagPayloads"] = "bootstrap_feature_flag_payloads";
|
|
8
10
|
PostHogPersistedProperty["OverrideFeatureFlags"] = "override_feature_flags";
|
|
9
11
|
PostHogPersistedProperty["Queue"] = "queue";
|
|
10
12
|
PostHogPersistedProperty["OptedOut"] = "opted_out";
|
|
@@ -15,6 +17,7 @@ var PostHogPersistedProperty;
|
|
|
15
17
|
PostHogPersistedProperty["InstalledAppBuild"] = "installed_app_build";
|
|
16
18
|
PostHogPersistedProperty["InstalledAppVersion"] = "installed_app_version";
|
|
17
19
|
PostHogPersistedProperty["SessionReplay"] = "session_replay";
|
|
20
|
+
PostHogPersistedProperty["DecideEndpointWasHit"] = "decide_endpoint_was_hit";
|
|
18
21
|
})(PostHogPersistedProperty || (PostHogPersistedProperty = {}));
|
|
19
22
|
|
|
20
23
|
function assert(truthyValue, message) {
|
|
@@ -1438,12 +1441,14 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
1438
1441
|
.filter((flag) => !!bootstrapfeatureFlags[flag])
|
|
1439
1442
|
.reduce((res, key) => ((res[key] = bootstrapfeatureFlags[key] || false), res), {});
|
|
1440
1443
|
if (Object.keys(bootstrapFlags).length) {
|
|
1444
|
+
this.setPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlags, bootstrapFlags);
|
|
1441
1445
|
const currentFlags = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlags) || {};
|
|
1442
1446
|
const newFeatureFlags = { ...bootstrapFlags, ...currentFlags };
|
|
1443
1447
|
this.setKnownFeatureFlags(newFeatureFlags);
|
|
1444
1448
|
}
|
|
1445
1449
|
const bootstrapFlagPayloads = bootstrap.featureFlagPayloads;
|
|
1446
1450
|
if (bootstrapFlagPayloads && Object.keys(bootstrapFlagPayloads).length) {
|
|
1451
|
+
this.setPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlagPayloads, bootstrapFlagPayloads);
|
|
1447
1452
|
const currentFlagPayloads = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlagPayloads) || {};
|
|
1448
1453
|
const newFeatureFlagPayloads = { ...bootstrapFlagPayloads, ...currentFlagPayloads };
|
|
1449
1454
|
this.setKnownFeatureFlagPayloads(newFeatureFlagPayloads);
|
|
@@ -1759,6 +1764,8 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
1759
1764
|
}
|
|
1760
1765
|
this.setKnownFeatureFlags(newFeatureFlags);
|
|
1761
1766
|
this.setKnownFeatureFlagPayloads(Object.fromEntries(Object.entries(newFeatureFlagPayloads || {}).map(([k, v]) => [k, this._parsePayload(v)])));
|
|
1767
|
+
// Mark that we hit the /decide endpoint so we can capture this in the $feature_flag_called event
|
|
1768
|
+
this.setPersistedProperty(PostHogPersistedProperty.DecideEndpointWasHit, true);
|
|
1762
1769
|
const sessionReplay = res?.sessionRecording;
|
|
1763
1770
|
if (sessionReplay) {
|
|
1764
1771
|
this.setPersistedProperty(PostHogPersistedProperty.SessionReplay, sessionReplay);
|
|
@@ -1805,6 +1812,10 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
1805
1812
|
this.capture('$feature_flag_called', {
|
|
1806
1813
|
$feature_flag: key,
|
|
1807
1814
|
$feature_flag_response: response,
|
|
1815
|
+
$feature_flag_bootstrapped_response: this.getPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlags)?.[key],
|
|
1816
|
+
$feature_flag_bootstrapped_payload: this.getPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlagPayloads)?.[key],
|
|
1817
|
+
// If we haven't yet received a response from the /decide endpoint, we must have used the bootstrapped value
|
|
1818
|
+
$used_bootstrap_value: !this.getPersistedProperty(PostHogPersistedProperty.DecideEndpointWasHit),
|
|
1808
1819
|
});
|
|
1809
1820
|
}
|
|
1810
1821
|
// If we have flags we either return the value (true or string) or false
|
|
@@ -1902,7 +1913,7 @@ class PostHogCore extends PostHogCoreStateless {
|
|
|
1902
1913
|
}
|
|
1903
1914
|
}
|
|
1904
1915
|
|
|
1905
|
-
var version = "3.
|
|
1916
|
+
var version = "3.2.0";
|
|
1906
1917
|
|
|
1907
1918
|
function getContext(window) {
|
|
1908
1919
|
let context = {};
|