posthog-js-lite 3.0.0 → 3.0.1

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 CHANGED
@@ -1,3 +1,7 @@
1
+ # 3.0.1 - 2024-04-25
2
+
3
+ 1. Prevent double JSON parsing of feature flag payloads, which would convert the payload [1] into 1.
4
+
1
5
  # 3.0.0 - 2024-03-18
2
6
 
3
7
  ## Added
package/lib/index.cjs.js CHANGED
@@ -1153,14 +1153,11 @@ class PostHogCoreStateless {
1153
1153
  if (response === undefined) {
1154
1154
  return null;
1155
1155
  }
1156
- return this._parsePayload(response);
1156
+ return response;
1157
1157
  }
1158
1158
  async getFeatureFlagPayloadsStateless(distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip) {
1159
1159
  await this._initPromise;
1160
1160
  const payloads = (await this.getFeatureFlagsAndPayloadsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip)).payloads;
1161
- if (payloads) {
1162
- return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]));
1163
- }
1164
1161
  return payloads;
1165
1162
  }
1166
1163
  _parsePayload(response) {
@@ -1184,9 +1181,13 @@ class PostHogCoreStateless {
1184
1181
  const decideResponse = await this.getDecide(distinctId, groups, personProperties, groupProperties, extraPayload);
1185
1182
  const flags = decideResponse?.featureFlags;
1186
1183
  const payloads = decideResponse?.featureFlagPayloads;
1184
+ let parsedPayloads = payloads;
1185
+ if (payloads) {
1186
+ parsedPayloads = Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]));
1187
+ }
1187
1188
  return {
1188
1189
  flags,
1189
- payloads,
1190
+ payloads: parsedPayloads,
1190
1191
  };
1191
1192
  }
1192
1193
  /***
@@ -1704,7 +1705,7 @@ class PostHogCore extends PostHogCoreStateless {
1704
1705
  newFeatureFlagPayloads = { ...currentFlagPayloads, ...res.featureFlagPayloads };
1705
1706
  }
1706
1707
  this.setKnownFeatureFlags(newFeatureFlags);
1707
- this.setKnownFeatureFlagPayloads(newFeatureFlagPayloads);
1708
+ this.setKnownFeatureFlagPayloads(Object.fromEntries(Object.entries(newFeatureFlagPayloads || {}).map(([k, v]) => [k, this._parsePayload(v)])));
1708
1709
  }
1709
1710
  return res;
1710
1711
  });
@@ -1757,13 +1758,10 @@ class PostHogCore extends PostHogCoreStateless {
1757
1758
  if (response === undefined) {
1758
1759
  return null;
1759
1760
  }
1760
- return this._parsePayload(response);
1761
+ return response;
1761
1762
  }
1762
1763
  getFeatureFlagPayloads() {
1763
1764
  const payloads = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlagPayloads);
1764
- if (payloads) {
1765
- return Object.fromEntries(Object.entries(payloads).map(([k, v]) => [k, this._parsePayload(v)]));
1766
- }
1767
1765
  return payloads;
1768
1766
  }
1769
1767
  getFeatureFlags() {
@@ -1842,7 +1840,7 @@ class PostHogCore extends PostHogCoreStateless {
1842
1840
  }
1843
1841
  }
1844
1842
 
1845
- var version = "3.0.0";
1843
+ var version = "3.0.1";
1846
1844
 
1847
1845
  function getContext(window) {
1848
1846
  let context = {};