posthog-js 1.40.2 → 1.41.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 +4 -0
- package/dist/array.js +1 -1
- package/dist/array.js.map +1 -1
- package/dist/es.js +103 -31
- package/dist/es.js.map +1 -1
- package/dist/module.d.ts +11 -1
- package/dist/module.js +103 -31
- package/dist/module.js.map +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
package/dist/es.js
CHANGED
|
@@ -917,7 +917,7 @@ var LZString = {
|
|
|
917
917
|
}
|
|
918
918
|
};
|
|
919
919
|
|
|
920
|
-
var version = "1.
|
|
920
|
+
var version = "1.41.0";
|
|
921
921
|
|
|
922
922
|
// e.g. Config.DEBUG = Config.DEBUG || instance.get_config('debug')
|
|
923
923
|
|
|
@@ -3168,12 +3168,21 @@ var PostHogPeople = /*#__PURE__*/function () {
|
|
|
3168
3168
|
return PostHogPeople;
|
|
3169
3169
|
}();
|
|
3170
3170
|
|
|
3171
|
+
var PERSISTENCE_ACTIVE_FEATURE_FLAGS = '$active_feature_flags';
|
|
3172
|
+
var PERSISTENCE_ENABLED_FEATURE_FLAGS = '$enabled_feature_flags';
|
|
3173
|
+
var PERSISTENCE_OVERRIDE_FEATURE_FLAGS = '$override_feature_flags';
|
|
3174
|
+
var PERSISTENCE_FEATURE_FLAG_PAYLOADS = '$feature_flag_payloads';
|
|
3171
3175
|
var parseFeatureFlagDecideResponse = function parseFeatureFlagDecideResponse(response, persistence) {
|
|
3176
|
+
var currentFlags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
3177
|
+
var currentFlagPayloads = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
3172
3178
|
var flags = response['featureFlags'];
|
|
3179
|
+
var flagPayloads = response['featureFlagPayloads'];
|
|
3173
3180
|
|
|
3174
3181
|
if (flags) {
|
|
3175
3182
|
// using the v1 api
|
|
3176
3183
|
if (Array.isArray(flags)) {
|
|
3184
|
+
var _persistence$register;
|
|
3185
|
+
|
|
3177
3186
|
var $enabled_feature_flags = {};
|
|
3178
3187
|
|
|
3179
3188
|
if (flags) {
|
|
@@ -3182,21 +3191,27 @@ var parseFeatureFlagDecideResponse = function parseFeatureFlagDecideResponse(res
|
|
|
3182
3191
|
}
|
|
3183
3192
|
}
|
|
3184
3193
|
|
|
3185
|
-
persistence && persistence.register({
|
|
3186
|
-
$active_feature_flags: flags,
|
|
3187
|
-
$enabled_feature_flags: $enabled_feature_flags
|
|
3188
|
-
});
|
|
3194
|
+
persistence && persistence.register((_persistence$register = {}, _defineProperty(_persistence$register, PERSISTENCE_ACTIVE_FEATURE_FLAGS, flags), _defineProperty(_persistence$register, PERSISTENCE_ENABLED_FEATURE_FLAGS, $enabled_feature_flags), _persistence$register));
|
|
3189
3195
|
} else {
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3196
|
+
var _persistence$register2;
|
|
3197
|
+
|
|
3198
|
+
// using the v2+ api
|
|
3199
|
+
var newFeatureFlags = flags;
|
|
3200
|
+
var newFeatureFlagPayloads = flagPayloads;
|
|
3201
|
+
|
|
3202
|
+
if (response.errorsWhileComputingFlags) {
|
|
3203
|
+
// if not all flags were computed, we upsert flags instead of replacing them
|
|
3204
|
+
newFeatureFlags = _objectSpread2(_objectSpread2({}, currentFlags), newFeatureFlags);
|
|
3205
|
+
newFeatureFlagPayloads = _objectSpread2(_objectSpread2({}, currentFlagPayloads), newFeatureFlagPayloads);
|
|
3206
|
+
}
|
|
3207
|
+
|
|
3208
|
+
persistence && persistence.register((_persistence$register2 = {}, _defineProperty(_persistence$register2, PERSISTENCE_ACTIVE_FEATURE_FLAGS, Object.keys(newFeatureFlags || {})), _defineProperty(_persistence$register2, PERSISTENCE_ENABLED_FEATURE_FLAGS, newFeatureFlags || {}), _defineProperty(_persistence$register2, PERSISTENCE_FEATURE_FLAG_PAYLOADS, newFeatureFlagPayloads || {}), _persistence$register2));
|
|
3195
3209
|
}
|
|
3196
3210
|
} else {
|
|
3197
3211
|
if (persistence) {
|
|
3198
|
-
persistence.unregister(
|
|
3199
|
-
persistence.unregister(
|
|
3212
|
+
persistence.unregister(PERSISTENCE_ACTIVE_FEATURE_FLAGS);
|
|
3213
|
+
persistence.unregister(PERSISTENCE_ENABLED_FEATURE_FLAGS);
|
|
3214
|
+
persistence.unregister(PERSISTENCE_FEATURE_FLAG_PAYLOADS);
|
|
3200
3215
|
}
|
|
3201
3216
|
}
|
|
3202
3217
|
};
|
|
@@ -3220,8 +3235,8 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3220
3235
|
}, {
|
|
3221
3236
|
key: "getFlagVariants",
|
|
3222
3237
|
value: function getFlagVariants() {
|
|
3223
|
-
var enabledFlags = this.instance.get_property(
|
|
3224
|
-
var overriddenFlags = this.instance.get_property(
|
|
3238
|
+
var enabledFlags = this.instance.get_property(PERSISTENCE_ENABLED_FEATURE_FLAGS);
|
|
3239
|
+
var overriddenFlags = this.instance.get_property(PERSISTENCE_OVERRIDE_FEATURE_FLAGS);
|
|
3225
3240
|
|
|
3226
3241
|
if (!overriddenFlags) {
|
|
3227
3242
|
return enabledFlags || {};
|
|
@@ -3250,6 +3265,12 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3250
3265
|
|
|
3251
3266
|
return finalFlags;
|
|
3252
3267
|
}
|
|
3268
|
+
}, {
|
|
3269
|
+
key: "getFlagPayloads",
|
|
3270
|
+
value: function getFlagPayloads() {
|
|
3271
|
+
var flagPayloads = this.instance.get_property(PERSISTENCE_FEATURE_FLAG_PAYLOADS);
|
|
3272
|
+
return flagPayloads || {};
|
|
3273
|
+
}
|
|
3253
3274
|
/**
|
|
3254
3275
|
* Reloads feature flags asynchronously.
|
|
3255
3276
|
*
|
|
@@ -3315,7 +3336,7 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3315
3336
|
|
|
3316
3337
|
var encoded_data = _base64Encode(json_data);
|
|
3317
3338
|
|
|
3318
|
-
this.instance._send_request(this.instance.get_config('api_host') + '/decide/?v=
|
|
3339
|
+
this.instance._send_request(this.instance.get_config('api_host') + '/decide/?v=3', {
|
|
3319
3340
|
data: encoded_data
|
|
3320
3341
|
}, {
|
|
3321
3342
|
method: 'POST'
|
|
@@ -3324,7 +3345,9 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3324
3345
|
// makes it through
|
|
3325
3346
|
_this2.$anon_distinct_id = undefined;
|
|
3326
3347
|
|
|
3327
|
-
|
|
3348
|
+
if (response && response.status === 200) {
|
|
3349
|
+
_this2.receivedFeatureFlags(response);
|
|
3350
|
+
} // :TRICKY: Reload - start another request if queued!
|
|
3328
3351
|
|
|
3329
3352
|
|
|
3330
3353
|
_this2.setReloadingPaused(false);
|
|
@@ -3365,6 +3388,12 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3365
3388
|
|
|
3366
3389
|
return flagValue;
|
|
3367
3390
|
}
|
|
3391
|
+
}, {
|
|
3392
|
+
key: "getFeatureFlagPayload",
|
|
3393
|
+
value: function getFeatureFlagPayload(key) {
|
|
3394
|
+
var payloads = this.getFlagPayloads();
|
|
3395
|
+
return payloads[key];
|
|
3396
|
+
}
|
|
3368
3397
|
/*
|
|
3369
3398
|
* See if feature flag is enabled for user.
|
|
3370
3399
|
*
|
|
@@ -3397,7 +3426,9 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3397
3426
|
key: "receivedFeatureFlags",
|
|
3398
3427
|
value: function receivedFeatureFlags(response) {
|
|
3399
3428
|
this.instance.decideEndpointWasHit = true;
|
|
3400
|
-
|
|
3429
|
+
var currentFlags = this.getFlagVariants();
|
|
3430
|
+
var currentFlagPayloads = this.getFlagPayloads();
|
|
3431
|
+
parseFeatureFlagDecideResponse(response, this.instance.persistence, currentFlags, currentFlagPayloads);
|
|
3401
3432
|
var flags = this.getFlags();
|
|
3402
3433
|
var variants = this.getFlagVariants();
|
|
3403
3434
|
this.featureFlagEventHandlers.forEach(function (handler) {
|
|
@@ -3422,7 +3453,7 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3422
3453
|
this._override_warning = false;
|
|
3423
3454
|
|
|
3424
3455
|
if (flags === false) {
|
|
3425
|
-
this.instance.persistence.unregister(
|
|
3456
|
+
this.instance.persistence.unregister(PERSISTENCE_OVERRIDE_FEATURE_FLAGS);
|
|
3426
3457
|
} else if (Array.isArray(flags)) {
|
|
3427
3458
|
var flagsObj = {};
|
|
3428
3459
|
|
|
@@ -3430,13 +3461,9 @@ var PostHogFeatureFlags = /*#__PURE__*/function () {
|
|
|
3430
3461
|
flagsObj[flags[i]] = true;
|
|
3431
3462
|
}
|
|
3432
3463
|
|
|
3433
|
-
this.instance.persistence.register({
|
|
3434
|
-
$override_feature_flags: flagsObj
|
|
3435
|
-
});
|
|
3464
|
+
this.instance.persistence.register(_defineProperty({}, PERSISTENCE_OVERRIDE_FEATURE_FLAGS, flagsObj));
|
|
3436
3465
|
} else {
|
|
3437
|
-
this.instance.persistence.register({
|
|
3438
|
-
$override_feature_flags: flags
|
|
3439
|
-
});
|
|
3466
|
+
this.instance.persistence.register(_defineProperty({}, PERSISTENCE_OVERRIDE_FEATURE_FLAGS, flags));
|
|
3440
3467
|
}
|
|
3441
3468
|
}
|
|
3442
3469
|
/*
|
|
@@ -4340,7 +4367,7 @@ var Decide = /*#__PURE__*/function () {
|
|
|
4340
4367
|
|
|
4341
4368
|
var encoded_data = _base64Encode(json_data);
|
|
4342
4369
|
|
|
4343
|
-
this.instance._send_request("".concat(this.instance.get_config('api_host'), "/decide/?v=
|
|
4370
|
+
this.instance._send_request("".concat(this.instance.get_config('api_host'), "/decide/?v=3"), {
|
|
4344
4371
|
data: encoded_data,
|
|
4345
4372
|
verbose: true
|
|
4346
4373
|
}, {
|
|
@@ -4375,7 +4402,11 @@ var Decide = /*#__PURE__*/function () {
|
|
|
4375
4402
|
(_this$instance$sessio = this.instance.sessionRecording) === null || _this$instance$sessio === void 0 ? void 0 : _this$instance$sessio.afterDecideResponse(response);
|
|
4376
4403
|
autocapture.afterDecideResponse(response, this.instance);
|
|
4377
4404
|
(_this$instance$webPer = this.instance.webPerformance) === null || _this$instance$webPer === void 0 ? void 0 : _this$instance$webPer.afterDecideResponse(response);
|
|
4378
|
-
|
|
4405
|
+
|
|
4406
|
+
if (response && response.status === 200) {
|
|
4407
|
+
this.instance.featureFlags.receivedFeatureFlags(response);
|
|
4408
|
+
}
|
|
4409
|
+
|
|
4379
4410
|
this.instance['compression'] = {};
|
|
4380
4411
|
|
|
4381
4412
|
if (response['supportedCompression'] && !this.instance.get_config('disable_compression')) {
|
|
@@ -5724,7 +5755,9 @@ var xhr = function xhr(_ref) {
|
|
|
5724
5755
|
callback = _ref.callback,
|
|
5725
5756
|
retriesPerformedSoFar = _ref.retriesPerformedSoFar,
|
|
5726
5757
|
retryQueue = _ref.retryQueue,
|
|
5727
|
-
onXHRError = _ref.onXHRError
|
|
5758
|
+
onXHRError = _ref.onXHRError,
|
|
5759
|
+
_ref$timeout = _ref.timeout,
|
|
5760
|
+
timeout = _ref$timeout === void 0 ? 10000 : _ref$timeout;
|
|
5728
5761
|
var req = new XMLHttpRequest();
|
|
5729
5762
|
req.open(options.method || 'GET', url, true);
|
|
5730
5763
|
var body = encodePostData(data, options);
|
|
@@ -5737,9 +5770,10 @@ var xhr = function xhr(_ref) {
|
|
|
5737
5770
|
|
|
5738
5771
|
if (options.method === 'POST' && !options.blob) {
|
|
5739
5772
|
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
|
5740
|
-
}
|
|
5741
|
-
// withCredentials cannot be modified until after calling .open on Android and Mobile Safari
|
|
5773
|
+
}
|
|
5742
5774
|
|
|
5775
|
+
req.timeout = timeout; // send the ph_optout cookie
|
|
5776
|
+
// withCredentials cannot be modified until after calling .open on Android and Mobile Safari
|
|
5743
5777
|
|
|
5744
5778
|
req.withCredentials = true;
|
|
5745
5779
|
|
|
@@ -6621,7 +6655,7 @@ var PostHog = /*#__PURE__*/function () {
|
|
|
6621
6655
|
}
|
|
6622
6656
|
|
|
6623
6657
|
if (this._hasBootstrappedFeatureFlags()) {
|
|
6624
|
-
var _config$bootstrap3;
|
|
6658
|
+
var _config$bootstrap3, _config$bootstrap6;
|
|
6625
6659
|
|
|
6626
6660
|
var activeFlags = Object.keys(((_config$bootstrap3 = config.bootstrap) === null || _config$bootstrap3 === void 0 ? void 0 : _config$bootstrap3.featureFlags) || {}).filter(function (flag) {
|
|
6627
6661
|
var _config$bootstrap4, _config$bootstrap4$fe;
|
|
@@ -6632,8 +6666,22 @@ var PostHog = /*#__PURE__*/function () {
|
|
|
6632
6666
|
|
|
6633
6667
|
return res[key] = ((_config$bootstrap5 = config.bootstrap) === null || _config$bootstrap5 === void 0 ? void 0 : (_config$bootstrap5$fe = _config$bootstrap5.featureFlags) === null || _config$bootstrap5$fe === void 0 ? void 0 : _config$bootstrap5$fe[key]) || false, res;
|
|
6634
6668
|
}, {});
|
|
6669
|
+
var featureFlagPayloads = Object.keys(((_config$bootstrap6 = config.bootstrap) === null || _config$bootstrap6 === void 0 ? void 0 : _config$bootstrap6.featureFlagPayloads) || {}).filter(function (key) {
|
|
6670
|
+
return activeFlags[key];
|
|
6671
|
+
}).reduce(function (res, key) {
|
|
6672
|
+
var _config$bootstrap7, _config$bootstrap7$fe;
|
|
6673
|
+
|
|
6674
|
+
if ((_config$bootstrap7 = config.bootstrap) !== null && _config$bootstrap7 !== void 0 && (_config$bootstrap7$fe = _config$bootstrap7.featureFlagPayloads) !== null && _config$bootstrap7$fe !== void 0 && _config$bootstrap7$fe[key]) {
|
|
6675
|
+
var _config$bootstrap8, _config$bootstrap8$fe;
|
|
6676
|
+
|
|
6677
|
+
res[key] = (_config$bootstrap8 = config.bootstrap) === null || _config$bootstrap8 === void 0 ? void 0 : (_config$bootstrap8$fe = _config$bootstrap8.featureFlagPayloads) === null || _config$bootstrap8$fe === void 0 ? void 0 : _config$bootstrap8$fe[key];
|
|
6678
|
+
}
|
|
6679
|
+
|
|
6680
|
+
return res;
|
|
6681
|
+
}, {});
|
|
6635
6682
|
this.featureFlags.receivedFeatureFlags({
|
|
6636
|
-
featureFlags: activeFlags
|
|
6683
|
+
featureFlags: activeFlags,
|
|
6684
|
+
featureFlagPayloads: featureFlagPayloads
|
|
6637
6685
|
});
|
|
6638
6686
|
}
|
|
6639
6687
|
|
|
@@ -7222,6 +7270,30 @@ var PostHog = /*#__PURE__*/function () {
|
|
|
7222
7270
|
value: function getFeatureFlag(key, options) {
|
|
7223
7271
|
return this.featureFlags.getFeatureFlag(key, options);
|
|
7224
7272
|
}
|
|
7273
|
+
/*
|
|
7274
|
+
* Get feature flag payload value matching key for user (supports multivariate flags).
|
|
7275
|
+
*
|
|
7276
|
+
* ### Usage:
|
|
7277
|
+
*
|
|
7278
|
+
* if(posthog.getFeatureFlag('beta-feature') === 'some-value') {
|
|
7279
|
+
* const someValue = posthog.getFeatureFlagPayload('beta-feature')
|
|
7280
|
+
* // do something
|
|
7281
|
+
* }
|
|
7282
|
+
*
|
|
7283
|
+
* @param {Object|String} prop Key of the feature flag.
|
|
7284
|
+
*/
|
|
7285
|
+
|
|
7286
|
+
}, {
|
|
7287
|
+
key: "getFeatureFlagPayload",
|
|
7288
|
+
value: function getFeatureFlagPayload(key) {
|
|
7289
|
+
var payload = this.featureFlags.getFeatureFlagPayload(key);
|
|
7290
|
+
|
|
7291
|
+
try {
|
|
7292
|
+
return JSON.parse(payload);
|
|
7293
|
+
} catch (_unused) {
|
|
7294
|
+
return payload;
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7225
7297
|
/*
|
|
7226
7298
|
* See if feature flag is enabled for user.
|
|
7227
7299
|
*
|