@dotcms/experiments 0.0.1-alpha.14 → 0.0.1-alpha.15

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/index.esm.js CHANGED
@@ -1720,6 +1720,28 @@ const DotExperimentHandlingComponent = _ref => {
1720
1720
  return jsx(WrappedComponent, Object.assign({}, props));
1721
1721
  };
1722
1722
 
1723
+ var $$b = _export;
1724
+ var $includes = arrayIncludes.includes;
1725
+ var fails$9 = fails$l;
1726
+ var addToUnscopables = addToUnscopables$2;
1727
+
1728
+ // FF99+ bug
1729
+ var BROKEN_ON_SPARSE = fails$9(function () {
1730
+ // eslint-disable-next-line es/no-array-prototype-includes -- detection
1731
+ return !Array(1).includes();
1732
+ });
1733
+
1734
+ // `Array.prototype.includes` method
1735
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
1736
+ $$b({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
1737
+ includes: function includes(el /* , fromIndex = 0 */) {
1738
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
1739
+ }
1740
+ });
1741
+
1742
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
1743
+ addToUnscopables('includes');
1744
+
1723
1745
  var global$d = global$o;
1724
1746
  var classof$7 = classofRaw$2;
1725
1747
 
@@ -1801,7 +1823,7 @@ var classof$6 = TO_STRING_TAG_SUPPORT ? classofRaw$1 : function (it) {
1801
1823
  };
1802
1824
 
1803
1825
  var uncurryThis$a = functionUncurryThis;
1804
- var fails$9 = fails$l;
1826
+ var fails$8 = fails$l;
1805
1827
  var isCallable$7 = isCallable$m;
1806
1828
  var classof$5 = classof$6;
1807
1829
  var getBuiltIn$2 = getBuiltIn$7;
@@ -1844,7 +1866,7 @@ isConstructorLegacy.sham = true;
1844
1866
 
1845
1867
  // `IsConstructor` abstract operation
1846
1868
  // https://tc39.es/ecma262/#sec-isconstructor
1847
- var isConstructor$2 = !construct || fails$9(function () {
1869
+ var isConstructor$2 = !construct || fails$8(function () {
1848
1870
  var called;
1849
1871
  return isConstructorModern(isConstructorModern.call)
1850
1872
  || !isConstructorModern(Object)
@@ -1934,7 +1956,7 @@ var apply = functionApply;
1934
1956
  var bind$6 = functionBindContext;
1935
1957
  var isCallable$6 = isCallable$m;
1936
1958
  var hasOwn$4 = hasOwnProperty_1;
1937
- var fails$8 = fails$l;
1959
+ var fails$7 = fails$l;
1938
1960
  var html = html$2;
1939
1961
  var arraySlice$2 = arraySlice$3;
1940
1962
  var createElement = documentCreateElement$2;
@@ -1954,7 +1976,7 @@ var queue$2 = {};
1954
1976
  var ONREADYSTATECHANGE = 'onreadystatechange';
1955
1977
  var $location, defer, channel, port;
1956
1978
 
1957
- fails$8(function () {
1979
+ fails$7(function () {
1958
1980
  // Deno throws a ReferenceError on `location` access without `--location` flag
1959
1981
  $location = global$c.location;
1960
1982
  });
@@ -2021,7 +2043,7 @@ if (!set || !clear) {
2021
2043
  isCallable$6(global$c.postMessage) &&
2022
2044
  !global$c.importScripts &&
2023
2045
  $location && $location.protocol !== 'file:' &&
2024
- !fails$8(globalPostMessageDefer)
2046
+ !fails$7(globalPostMessageDefer)
2025
2047
  ) {
2026
2048
  defer = globalPostMessageDefer;
2027
2049
  global$c.addEventListener('message', eventListener, false);
@@ -2268,7 +2290,7 @@ newPromiseCapability$2.f = function (C) {
2268
2290
  return new PromiseCapability(C);
2269
2291
  };
2270
2292
 
2271
- var $$b = _export;
2293
+ var $$a = _export;
2272
2294
  var IS_NODE = engineIsNode;
2273
2295
  var global$7 = global$o;
2274
2296
  var call$d = functionCall;
@@ -2548,7 +2570,7 @@ if (FORCED_PROMISE_CONSTRUCTOR$4) {
2548
2570
  }
2549
2571
  }
2550
2572
 
2551
- $$b({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, {
2573
+ $$a({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, {
2552
2574
  Promise: PromiseConstructor
2553
2575
  });
2554
2576
 
@@ -2736,7 +2758,7 @@ var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCor
2736
2758
  NativePromiseConstructor$1.all(iterable).then(undefined, function () { /* empty */ });
2737
2759
  });
2738
2760
 
2739
- var $$a = _export;
2761
+ var $$9 = _export;
2740
2762
  var call$9 = functionCall;
2741
2763
  var aCallable$1 = aCallable$8;
2742
2764
  var newPromiseCapabilityModule$2 = newPromiseCapability$2;
@@ -2746,7 +2768,7 @@ var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration;
2746
2768
 
2747
2769
  // `Promise.all` method
2748
2770
  // https://tc39.es/ecma262/#sec-promise.all
2749
- $$a({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, {
2771
+ $$9({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, {
2750
2772
  all: function all(iterable) {
2751
2773
  var C = this;
2752
2774
  var capability = newPromiseCapabilityModule$2.f(C);
@@ -2775,7 +2797,7 @@ $$a({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION
2775
2797
  }
2776
2798
  });
2777
2799
 
2778
- var $$9 = _export;
2800
+ var $$8 = _export;
2779
2801
  var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR;
2780
2802
  var NativePromiseConstructor = promiseNativeConstructor;
2781
2803
  var getBuiltIn$1 = getBuiltIn$7;
@@ -2786,7 +2808,7 @@ var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructo
2786
2808
 
2787
2809
  // `Promise.prototype.catch` method
2788
2810
  // https://tc39.es/ecma262/#sec-promise.prototype.catch
2789
- $$9({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, {
2811
+ $$8({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, {
2790
2812
  'catch': function (onRejected) {
2791
2813
  return this.then(undefined, onRejected);
2792
2814
  }
@@ -2800,7 +2822,7 @@ if (isCallable$3(NativePromiseConstructor)) {
2800
2822
  }
2801
2823
  }
2802
2824
 
2803
- var $$8 = _export;
2825
+ var $$7 = _export;
2804
2826
  var call$8 = functionCall;
2805
2827
  var aCallable = aCallable$8;
2806
2828
  var newPromiseCapabilityModule$1 = newPromiseCapability$2;
@@ -2810,7 +2832,7 @@ var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration;
2810
2832
 
2811
2833
  // `Promise.race` method
2812
2834
  // https://tc39.es/ecma262/#sec-promise.race
2813
- $$8({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {
2835
+ $$7({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {
2814
2836
  race: function race(iterable) {
2815
2837
  var C = this;
2816
2838
  var capability = newPromiseCapabilityModule$1.f(C);
@@ -2826,13 +2848,13 @@ $$8({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION
2826
2848
  }
2827
2849
  });
2828
2850
 
2829
- var $$7 = _export;
2851
+ var $$6 = _export;
2830
2852
  var newPromiseCapabilityModule = newPromiseCapability$2;
2831
2853
  var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR;
2832
2854
 
2833
2855
  // `Promise.reject` method
2834
2856
  // https://tc39.es/ecma262/#sec-promise.reject
2835
- $$7({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, {
2857
+ $$6({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, {
2836
2858
  reject: function reject(r) {
2837
2859
  var capability = newPromiseCapabilityModule.f(this);
2838
2860
  var capabilityReject = capability.reject;
@@ -2854,7 +2876,7 @@ var promiseResolve$1 = function (C, x) {
2854
2876
  return promiseCapability.promise;
2855
2877
  };
2856
2878
 
2857
- var $$6 = _export;
2879
+ var $$5 = _export;
2858
2880
  var getBuiltIn = getBuiltIn$7;
2859
2881
  var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR;
2860
2882
  var promiseResolve = promiseResolve$1;
@@ -2863,7 +2885,7 @@ getBuiltIn('Promise');
2863
2885
 
2864
2886
  // `Promise.resolve` method
2865
2887
  // https://tc39.es/ecma262/#sec-promise.resolve
2866
- $$6({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
2888
+ $$5({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {
2867
2889
  resolve: function resolve(x) {
2868
2890
  return promiseResolve(this, x);
2869
2891
  }
@@ -2896,13 +2918,13 @@ var regexpFlags$1 = function () {
2896
2918
  return result;
2897
2919
  };
2898
2920
 
2899
- var fails$7 = fails$l;
2921
+ var fails$6 = fails$l;
2900
2922
  var global$6 = global$o;
2901
2923
 
2902
2924
  // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
2903
2925
  var $RegExp$2 = global$6.RegExp;
2904
2926
 
2905
- var UNSUPPORTED_Y$2 = fails$7(function () {
2927
+ var UNSUPPORTED_Y$2 = fails$6(function () {
2906
2928
  var re = $RegExp$2('a', 'y');
2907
2929
  re.lastIndex = 2;
2908
2930
  return re.exec('abcd') !== null;
@@ -2910,11 +2932,11 @@ var UNSUPPORTED_Y$2 = fails$7(function () {
2910
2932
 
2911
2933
  // UC Browser bug
2912
2934
  // https://github.com/zloirock/core-js/issues/1008
2913
- var MISSED_STICKY$1 = UNSUPPORTED_Y$2 || fails$7(function () {
2935
+ var MISSED_STICKY$1 = UNSUPPORTED_Y$2 || fails$6(function () {
2914
2936
  return !$RegExp$2('a', 'y').sticky;
2915
2937
  });
2916
2938
 
2917
- var BROKEN_CARET = UNSUPPORTED_Y$2 || fails$7(function () {
2939
+ var BROKEN_CARET = UNSUPPORTED_Y$2 || fails$6(function () {
2918
2940
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
2919
2941
  var re = $RegExp$2('^r', 'gy');
2920
2942
  re.lastIndex = 2;
@@ -2927,24 +2949,24 @@ var regexpStickyHelpers = {
2927
2949
  UNSUPPORTED_Y: UNSUPPORTED_Y$2
2928
2950
  };
2929
2951
 
2930
- var fails$6 = fails$l;
2952
+ var fails$5 = fails$l;
2931
2953
  var global$5 = global$o;
2932
2954
 
2933
2955
  // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
2934
2956
  var $RegExp$1 = global$5.RegExp;
2935
2957
 
2936
- var regexpUnsupportedDotAll = fails$6(function () {
2958
+ var regexpUnsupportedDotAll = fails$5(function () {
2937
2959
  var re = $RegExp$1('.', 's');
2938
2960
  return !(re.dotAll && re.test('\n') && re.flags === 's');
2939
2961
  });
2940
2962
 
2941
- var fails$5 = fails$l;
2963
+ var fails$4 = fails$l;
2942
2964
  var global$4 = global$o;
2943
2965
 
2944
2966
  // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
2945
2967
  var $RegExp = global$4.RegExp;
2946
2968
 
2947
- var regexpUnsupportedNcg = fails$5(function () {
2969
+ var regexpUnsupportedNcg = fails$4(function () {
2948
2970
  var re = $RegExp('(?<a>b)', 'g');
2949
2971
  return re.exec('b').groups.a !== 'b' ||
2950
2972
  'b'.replace(re, '$<a>c') !== 'bc';
@@ -3067,38 +3089,98 @@ if (PATCH) {
3067
3089
 
3068
3090
  var regexpExec$2 = patchedExec;
3069
3091
 
3070
- var $$5 = _export;
3092
+ var $$4 = _export;
3071
3093
  var exec$3 = regexpExec$2;
3072
3094
 
3073
3095
  // `RegExp.prototype.exec` method
3074
3096
  // https://tc39.es/ecma262/#sec-regexp.prototype.exec
3075
- $$5({ target: 'RegExp', proto: true, forced: /./.exec !== exec$3 }, {
3097
+ $$4({ target: 'RegExp', proto: true, forced: /./.exec !== exec$3 }, {
3076
3098
  exec: exec$3
3077
3099
  });
3078
3100
 
3101
+ var isObject$2 = isObject$d;
3102
+ var classof$2 = classofRaw$2;
3103
+ var wellKnownSymbol$5 = wellKnownSymbol$k;
3104
+
3105
+ var MATCH$2 = wellKnownSymbol$5('match');
3106
+
3107
+ // `IsRegExp` abstract operation
3108
+ // https://tc39.es/ecma262/#sec-isregexp
3109
+ var isRegexp = function (it) {
3110
+ var isRegExp;
3111
+ return isObject$2(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof$2(it) === 'RegExp');
3112
+ };
3113
+
3114
+ var isRegExp$1 = isRegexp;
3115
+
3116
+ var $TypeError$1 = TypeError;
3117
+
3118
+ var notARegexp = function (it) {
3119
+ if (isRegExp$1(it)) {
3120
+ throw new $TypeError$1("The method doesn't accept regular expressions");
3121
+ } return it;
3122
+ };
3123
+
3124
+ var wellKnownSymbol$4 = wellKnownSymbol$k;
3125
+
3126
+ var MATCH$1 = wellKnownSymbol$4('match');
3127
+
3128
+ var correctIsRegexpLogic = function (METHOD_NAME) {
3129
+ var regexp = /./;
3130
+ try {
3131
+ '/./'[METHOD_NAME](regexp);
3132
+ } catch (error1) {
3133
+ try {
3134
+ regexp[MATCH$1] = false;
3135
+ return '/./'[METHOD_NAME](regexp);
3136
+ } catch (error2) { /* empty */ }
3137
+ } return false;
3138
+ };
3139
+
3140
+ var $$3 = _export;
3141
+ var uncurryThis$5 = functionUncurryThis;
3142
+ var notARegExp = notARegexp;
3143
+ var requireObjectCoercible$2 = requireObjectCoercible$6;
3144
+ var toString$4 = toString$6;
3145
+ var correctIsRegExpLogic = correctIsRegexpLogic;
3146
+
3147
+ var stringIndexOf$1 = uncurryThis$5(''.indexOf);
3148
+
3149
+ // `String.prototype.includes` method
3150
+ // https://tc39.es/ecma262/#sec-string.prototype.includes
3151
+ $$3({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
3152
+ includes: function includes(searchString /* , position = 0 */) {
3153
+ return !!~stringIndexOf$1(
3154
+ toString$4(requireObjectCoercible$2(this)),
3155
+ toString$4(notARegExp(searchString)),
3156
+ arguments.length > 1 ? arguments[1] : undefined
3157
+ );
3158
+ }
3159
+ });
3160
+
3079
3161
  // TODO: Remove from `core-js@4` since it's moved to entry points
3080
3162
 
3081
3163
  var call$6 = functionCall;
3082
3164
  var defineBuiltIn$5 = defineBuiltIn$b;
3083
3165
  var regexpExec$1 = regexpExec$2;
3084
- var fails$4 = fails$l;
3085
- var wellKnownSymbol$5 = wellKnownSymbol$k;
3166
+ var fails$3 = fails$l;
3167
+ var wellKnownSymbol$3 = wellKnownSymbol$k;
3086
3168
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$6;
3087
3169
 
3088
- var SPECIES = wellKnownSymbol$5('species');
3170
+ var SPECIES = wellKnownSymbol$3('species');
3089
3171
  var RegExpPrototype$3 = RegExp.prototype;
3090
3172
 
3091
3173
  var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
3092
- var SYMBOL = wellKnownSymbol$5(KEY);
3174
+ var SYMBOL = wellKnownSymbol$3(KEY);
3093
3175
 
3094
- var DELEGATES_TO_SYMBOL = !fails$4(function () {
3176
+ var DELEGATES_TO_SYMBOL = !fails$3(function () {
3095
3177
  // String methods call symbol-named RegExp methods
3096
3178
  var O = {};
3097
3179
  O[SYMBOL] = function () { return 7; };
3098
3180
  return ''[KEY](O) !== 7;
3099
3181
  });
3100
3182
 
3101
- var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$4(function () {
3183
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails$3(function () {
3102
3184
  // Symbol-named RegExp methods call .exec
3103
3185
  var execCalled = false;
3104
3186
  var re = /a/;
@@ -3163,10 +3245,10 @@ var sameValue$1 = Object.is || function is(x, y) {
3163
3245
  var call$5 = functionCall;
3164
3246
  var anObject$4 = anObject$f;
3165
3247
  var isCallable$2 = isCallable$m;
3166
- var classof$2 = classofRaw$2;
3248
+ var classof$1 = classofRaw$2;
3167
3249
  var regexpExec = regexpExec$2;
3168
3250
 
3169
- var $TypeError$1 = TypeError;
3251
+ var $TypeError = TypeError;
3170
3252
 
3171
3253
  // `RegExpExec` abstract operation
3172
3254
  // https://tc39.es/ecma262/#sec-regexpexec
@@ -3177,17 +3259,17 @@ var regexpExecAbstract = function (R, S) {
3177
3259
  if (result !== null) anObject$4(result);
3178
3260
  return result;
3179
3261
  }
3180
- if (classof$2(R) === 'RegExp') return call$5(regexpExec, R, S);
3181
- throw new $TypeError$1('RegExp#exec called on incompatible receiver');
3262
+ if (classof$1(R) === 'RegExp') return call$5(regexpExec, R, S);
3263
+ throw new $TypeError('RegExp#exec called on incompatible receiver');
3182
3264
  };
3183
3265
 
3184
3266
  var call$4 = functionCall;
3185
3267
  var fixRegExpWellKnownSymbolLogic = fixRegexpWellKnownSymbolLogic;
3186
3268
  var anObject$3 = anObject$f;
3187
3269
  var isNullOrUndefined = isNullOrUndefined$5;
3188
- var requireObjectCoercible$2 = requireObjectCoercible$6;
3270
+ var requireObjectCoercible$1 = requireObjectCoercible$6;
3189
3271
  var sameValue = sameValue$1;
3190
- var toString$4 = toString$6;
3272
+ var toString$3 = toString$6;
3191
3273
  var getMethod = getMethod$4;
3192
3274
  var regExpExec = regexpExecAbstract;
3193
3275
 
@@ -3197,15 +3279,15 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
3197
3279
  // `String.prototype.search` method
3198
3280
  // https://tc39.es/ecma262/#sec-string.prototype.search
3199
3281
  function search(regexp) {
3200
- var O = requireObjectCoercible$2(this);
3282
+ var O = requireObjectCoercible$1(this);
3201
3283
  var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);
3202
- return searcher ? call$4(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$4(O));
3284
+ return searcher ? call$4(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString$3(O));
3203
3285
  },
3204
3286
  // `RegExp.prototype[@@search]` method
3205
3287
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@search
3206
3288
  function (string) {
3207
3289
  var rx = anObject$3(this);
3208
- var S = toString$4(string);
3290
+ var S = toString$3(string);
3209
3291
  var res = maybeCallNative(nativeSearch, rx, S);
3210
3292
 
3211
3293
  if (res.done) return res.value;
@@ -3219,14 +3301,14 @@ fixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCal
3219
3301
  ];
3220
3302
  });
3221
3303
 
3222
- var fails$3 = fails$l;
3223
- var wellKnownSymbol$4 = wellKnownSymbol$k;
3304
+ var fails$2 = fails$l;
3305
+ var wellKnownSymbol$2 = wellKnownSymbol$k;
3224
3306
  var DESCRIPTORS$4 = descriptors;
3225
3307
  var IS_PURE = isPure;
3226
3308
 
3227
- var ITERATOR$1 = wellKnownSymbol$4('iterator');
3309
+ var ITERATOR$1 = wellKnownSymbol$2('iterator');
3228
3310
 
3229
- var urlConstructorDetection = !fails$3(function () {
3311
+ var urlConstructorDetection = !fails$2(function () {
3230
3312
  // eslint-disable-next-line unicorn/relative-url-style -- required for testing
3231
3313
  var url = new URL('b?a=1&b=2&c=3', 'http://a');
3232
3314
  var params = url.searchParams;
@@ -3312,11 +3394,11 @@ var arraySort$1 = sort;
3312
3394
 
3313
3395
  // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
3314
3396
 
3315
- var $$4 = _export;
3397
+ var $$2 = _export;
3316
3398
  var global$3 = global$o;
3317
3399
  var safeGetBuiltIn = safeGetBuiltIn$2;
3318
3400
  var call$3 = functionCall;
3319
- var uncurryThis$5 = functionUncurryThis;
3401
+ var uncurryThis$4 = functionUncurryThis;
3320
3402
  var DESCRIPTORS$3 = descriptors;
3321
3403
  var USE_NATIVE_URL$1 = urlConstructorDetection;
3322
3404
  var defineBuiltIn$3 = defineBuiltIn$b;
@@ -3329,9 +3411,9 @@ var anInstance$1 = anInstance$3;
3329
3411
  var isCallable$1 = isCallable$m;
3330
3412
  var hasOwn$3 = hasOwnProperty_1;
3331
3413
  var bind$2 = functionBindContext;
3332
- var classof$1 = classof$6;
3414
+ var classof = classof$6;
3333
3415
  var anObject$2 = anObject$f;
3334
- var isObject$2 = isObject$d;
3416
+ var isObject$1 = isObject$d;
3335
3417
  var $toString$2 = toString$6;
3336
3418
  var create$1 = objectCreate;
3337
3419
  var createPropertyDescriptor$1 = createPropertyDescriptor$5;
@@ -3339,10 +3421,10 @@ var getIterator$1 = getIterator$3;
3339
3421
  var getIteratorMethod$1 = getIteratorMethod$4;
3340
3422
  var createIterResultObject$1 = createIterResultObject$3;
3341
3423
  var validateArgumentsLength$1 = validateArgumentsLength$3;
3342
- var wellKnownSymbol$3 = wellKnownSymbol$k;
3424
+ var wellKnownSymbol$1 = wellKnownSymbol$k;
3343
3425
  var arraySort = arraySort$1;
3344
3426
 
3345
- var ITERATOR = wellKnownSymbol$3('iterator');
3427
+ var ITERATOR = wellKnownSymbol$1('iterator');
3346
3428
  var URL_SEARCH_PARAMS = 'URLSearchParams';
3347
3429
  var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
3348
3430
  var setInternalState$2 = InternalStateModule$2.set;
@@ -3358,14 +3440,14 @@ var RegExp$1 = global$3.RegExp;
3358
3440
  var TypeError$2 = global$3.TypeError;
3359
3441
  var decodeURIComponent = global$3.decodeURIComponent;
3360
3442
  var encodeURIComponent$1 = global$3.encodeURIComponent;
3361
- var charAt$4 = uncurryThis$5(''.charAt);
3362
- var join$2 = uncurryThis$5([].join);
3363
- var push$2 = uncurryThis$5([].push);
3364
- var replace$3 = uncurryThis$5(''.replace);
3365
- var shift$1 = uncurryThis$5([].shift);
3366
- var splice = uncurryThis$5([].splice);
3367
- var split$2 = uncurryThis$5(''.split);
3368
- var stringSlice$3 = uncurryThis$5(''.slice);
3443
+ var charAt$4 = uncurryThis$4(''.charAt);
3444
+ var join$2 = uncurryThis$4([].join);
3445
+ var push$2 = uncurryThis$4([].push);
3446
+ var replace$3 = uncurryThis$4(''.replace);
3447
+ var shift$1 = uncurryThis$4([].shift);
3448
+ var splice = uncurryThis$4([].splice);
3449
+ var split$2 = uncurryThis$4(''.split);
3450
+ var stringSlice$3 = uncurryThis$4(''.slice);
3369
3451
 
3370
3452
  var plus = /\+/g;
3371
3453
  var sequences = Array(4);
@@ -3441,7 +3523,7 @@ var URLSearchParamsState = function (init) {
3441
3523
  this.url = null;
3442
3524
 
3443
3525
  if (init !== undefined) {
3444
- if (isObject$2(init)) this.parseObject(init);
3526
+ if (isObject$1(init)) this.parseObject(init);
3445
3527
  else this.parseQuery(typeof init == 'string' ? charAt$4(init, 0) === '?' ? stringSlice$3(init, 1) : init : $toString$2(init));
3446
3528
  }
3447
3529
  };
@@ -3672,20 +3754,20 @@ if (DESCRIPTORS$3) defineBuiltInAccessor$1(URLSearchParamsPrototype, 'size', {
3672
3754
 
3673
3755
  setToStringTag$1(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
3674
3756
 
3675
- $$4({ global: true, constructor: true, forced: !USE_NATIVE_URL$1 }, {
3757
+ $$2({ global: true, constructor: true, forced: !USE_NATIVE_URL$1 }, {
3676
3758
  URLSearchParams: URLSearchParamsConstructor
3677
3759
  });
3678
3760
 
3679
3761
  // Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`
3680
3762
  if (!USE_NATIVE_URL$1 && isCallable$1(Headers)) {
3681
- var headersHas = uncurryThis$5(HeadersPrototype.has);
3682
- var headersSet = uncurryThis$5(HeadersPrototype.set);
3763
+ var headersHas = uncurryThis$4(HeadersPrototype.has);
3764
+ var headersSet = uncurryThis$4(HeadersPrototype.set);
3683
3765
 
3684
3766
  var wrapRequestOptions = function (init) {
3685
- if (isObject$2(init)) {
3767
+ if (isObject$1(init)) {
3686
3768
  var body = init.body;
3687
3769
  var headers;
3688
- if (classof$1(body) === URL_SEARCH_PARAMS) {
3770
+ if (classof(body) === URL_SEARCH_PARAMS) {
3689
3771
  headers = init.headers ? new Headers(init.headers) : new Headers();
3690
3772
  if (!headersHas(headers, 'content-type')) {
3691
3773
  headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
@@ -3699,7 +3781,7 @@ if (!USE_NATIVE_URL$1 && isCallable$1(Headers)) {
3699
3781
  };
3700
3782
 
3701
3783
  if (isCallable$1(nativeFetch)) {
3702
- $$4({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {
3784
+ $$2({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {
3703
3785
  fetch: function fetch(input /* , init */) {
3704
3786
  return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});
3705
3787
  }
@@ -3715,7 +3797,7 @@ if (!USE_NATIVE_URL$1 && isCallable$1(Headers)) {
3715
3797
  RequestPrototype.constructor = RequestConstructor;
3716
3798
  RequestConstructor.prototype = RequestPrototype;
3717
3799
 
3718
- $$4({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {
3800
+ $$2({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {
3719
3801
  Request: RequestConstructor
3720
3802
  });
3721
3803
  }
@@ -3804,7 +3886,7 @@ var DEBUG_LEVELS;
3804
3886
  const PAGE_VIEW_EVENT_NAME = 'pageview';
3805
3887
 
3806
3888
  var isCallable = isCallable$m;
3807
- var isObject$1 = isObject$d;
3889
+ var isObject = isObject$d;
3808
3890
  var setPrototypeOf = objectSetPrototypeOf;
3809
3891
 
3810
3892
  // makes subclassing work correct for wrapped built-ins
@@ -3816,25 +3898,12 @@ var inheritIfRequired$1 = function ($this, dummy, Wrapper) {
3816
3898
  // we haven't completely correct pre-ES6 way for getting `new.target`, so use this
3817
3899
  isCallable(NewTarget = dummy.constructor) &&
3818
3900
  NewTarget !== Wrapper &&
3819
- isObject$1(NewTargetPrototype = NewTarget.prototype) &&
3901
+ isObject(NewTargetPrototype = NewTarget.prototype) &&
3820
3902
  NewTargetPrototype !== Wrapper.prototype
3821
3903
  ) setPrototypeOf($this, NewTargetPrototype);
3822
3904
  return $this;
3823
3905
  };
3824
3906
 
3825
- var isObject = isObject$d;
3826
- var classof = classofRaw$2;
3827
- var wellKnownSymbol$2 = wellKnownSymbol$k;
3828
-
3829
- var MATCH$2 = wellKnownSymbol$2('match');
3830
-
3831
- // `IsRegExp` abstract operation
3832
- // https://tc39.es/ecma262/#sec-isregexp
3833
- var isRegexp = function (it) {
3834
- var isRegExp;
3835
- return isObject(it) && ((isRegExp = it[MATCH$2]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');
3836
- };
3837
-
3838
3907
  var call$2 = functionCall;
3839
3908
  var hasOwn$2 = hasOwnProperty_1;
3840
3909
  var isPrototypeOf$1 = objectIsPrototypeOf;
@@ -3860,36 +3929,36 @@ var proxyAccessor$1 = function (Target, Source, key) {
3860
3929
 
3861
3930
  var DESCRIPTORS$2 = descriptors;
3862
3931
  var global$2 = global$o;
3863
- var uncurryThis$4 = functionUncurryThis;
3932
+ var uncurryThis$3 = functionUncurryThis;
3864
3933
  var isForced = isForced_1;
3865
3934
  var inheritIfRequired = inheritIfRequired$1;
3866
3935
  var createNonEnumerableProperty = createNonEnumerableProperty$6;
3867
3936
  var create = objectCreate;
3868
3937
  var getOwnPropertyNames = objectGetOwnPropertyNames.f;
3869
3938
  var isPrototypeOf = objectIsPrototypeOf;
3870
- var isRegExp$1 = isRegexp;
3871
- var toString$3 = toString$6;
3939
+ var isRegExp = isRegexp;
3940
+ var toString$2 = toString$6;
3872
3941
  var getRegExpFlags$1 = regexpGetFlags;
3873
3942
  var stickyHelpers = regexpStickyHelpers;
3874
3943
  var proxyAccessor = proxyAccessor$1;
3875
3944
  var defineBuiltIn$2 = defineBuiltIn$b;
3876
- var fails$2 = fails$l;
3945
+ var fails$1 = fails$l;
3877
3946
  var hasOwn$1 = hasOwnProperty_1;
3878
3947
  var enforceInternalState = internalState.enforce;
3879
3948
  var setSpecies = setSpecies$2;
3880
- var wellKnownSymbol$1 = wellKnownSymbol$k;
3949
+ var wellKnownSymbol = wellKnownSymbol$k;
3881
3950
  var UNSUPPORTED_DOT_ALL = regexpUnsupportedDotAll;
3882
3951
  var UNSUPPORTED_NCG = regexpUnsupportedNcg;
3883
3952
 
3884
- var MATCH$1 = wellKnownSymbol$1('match');
3953
+ var MATCH = wellKnownSymbol('match');
3885
3954
  var NativeRegExp = global$2.RegExp;
3886
3955
  var RegExpPrototype$1 = NativeRegExp.prototype;
3887
3956
  var SyntaxError = global$2.SyntaxError;
3888
- var exec$2 = uncurryThis$4(RegExpPrototype$1.exec);
3889
- var charAt$3 = uncurryThis$4(''.charAt);
3890
- var replace$2 = uncurryThis$4(''.replace);
3891
- var stringIndexOf$1 = uncurryThis$4(''.indexOf);
3892
- var stringSlice$2 = uncurryThis$4(''.slice);
3957
+ var exec$2 = uncurryThis$3(RegExpPrototype$1.exec);
3958
+ var charAt$3 = uncurryThis$3(''.charAt);
3959
+ var replace$2 = uncurryThis$3(''.replace);
3960
+ var stringIndexOf = uncurryThis$3(''.indexOf);
3961
+ var stringSlice$2 = uncurryThis$3(''.slice);
3893
3962
  // TODO: Use only proper RegExpIdentifierName
3894
3963
  var IS_NCG = /^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/;
3895
3964
  var re1 = /a/g;
@@ -3902,8 +3971,8 @@ var MISSED_STICKY = stickyHelpers.MISSED_STICKY;
3902
3971
  var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;
3903
3972
 
3904
3973
  var BASE_FORCED = DESCRIPTORS$2 &&
3905
- (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails$2(function () {
3906
- re2[MATCH$1] = false;
3974
+ (!CORRECT_NEW || MISSED_STICKY || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG || fails$1(function () {
3975
+ re2[MATCH] = false;
3907
3976
  // RegExp constructor can alter flags and IsRegExp works correct with @@match
3908
3977
  return NativeRegExp(re1) !== re1 || NativeRegExp(re2) === re2 || String(NativeRegExp(re1, 'i')) !== '/a/i';
3909
3978
  }));
@@ -3981,7 +4050,7 @@ var handleNCG = function (string) {
3981
4050
  if (isForced('RegExp', BASE_FORCED)) {
3982
4051
  var RegExpWrapper = function RegExp(pattern, flags) {
3983
4052
  var thisIsRegExp = isPrototypeOf(RegExpPrototype$1, this);
3984
- var patternIsRegExp = isRegExp$1(pattern);
4053
+ var patternIsRegExp = isRegExp(pattern);
3985
4054
  var flagsAreUndefined = flags === undefined;
3986
4055
  var groups = [];
3987
4056
  var rawPattern = pattern;
@@ -3996,19 +4065,19 @@ if (isForced('RegExp', BASE_FORCED)) {
3996
4065
  if (flagsAreUndefined) flags = getRegExpFlags$1(rawPattern);
3997
4066
  }
3998
4067
 
3999
- pattern = pattern === undefined ? '' : toString$3(pattern);
4000
- flags = flags === undefined ? '' : toString$3(flags);
4068
+ pattern = pattern === undefined ? '' : toString$2(pattern);
4069
+ flags = flags === undefined ? '' : toString$2(flags);
4001
4070
  rawPattern = pattern;
4002
4071
 
4003
4072
  if (UNSUPPORTED_DOT_ALL && 'dotAll' in re1) {
4004
- dotAll = !!flags && stringIndexOf$1(flags, 's') > -1;
4073
+ dotAll = !!flags && stringIndexOf(flags, 's') > -1;
4005
4074
  if (dotAll) flags = replace$2(flags, /s/g, '');
4006
4075
  }
4007
4076
 
4008
4077
  rawFlags = flags;
4009
4078
 
4010
4079
  if (MISSED_STICKY && 'sticky' in re1) {
4011
- sticky = !!flags && stringIndexOf$1(flags, 'y') > -1;
4080
+ sticky = !!flags && stringIndexOf(flags, 'y') > -1;
4012
4081
  if (sticky && UNSUPPORTED_Y) flags = replace$2(flags, /y/g, '');
4013
4082
  }
4014
4083
 
@@ -4054,14 +4123,14 @@ var PROPER_FUNCTION_NAME = functionName.PROPER;
4054
4123
  var defineBuiltIn$1 = defineBuiltIn$b;
4055
4124
  var anObject$1 = anObject$f;
4056
4125
  var $toString$1 = toString$6;
4057
- var fails$1 = fails$l;
4126
+ var fails = fails$l;
4058
4127
  var getRegExpFlags = regexpGetFlags;
4059
4128
 
4060
4129
  var TO_STRING = 'toString';
4061
4130
  var RegExpPrototype = RegExp.prototype;
4062
4131
  var nativeToString = RegExpPrototype[TO_STRING];
4063
4132
 
4064
- var NOT_GENERIC = fails$1(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
4133
+ var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });
4065
4134
  // FF44- RegExp#toString has a wrong name
4066
4135
  var INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;
4067
4136
 
@@ -4076,18 +4145,18 @@ if (NOT_GENERIC || INCORRECT_NAME) {
4076
4145
  }, { unsafe: true });
4077
4146
  }
4078
4147
 
4079
- var uncurryThis$3 = functionUncurryThis;
4148
+ var uncurryThis$2 = functionUncurryThis;
4080
4149
  var toIntegerOrInfinity = toIntegerOrInfinity$3;
4081
- var toString$2 = toString$6;
4082
- var requireObjectCoercible$1 = requireObjectCoercible$6;
4150
+ var toString$1 = toString$6;
4151
+ var requireObjectCoercible = requireObjectCoercible$6;
4083
4152
 
4084
- var charAt$2 = uncurryThis$3(''.charAt);
4085
- var charCodeAt$1 = uncurryThis$3(''.charCodeAt);
4086
- var stringSlice$1 = uncurryThis$3(''.slice);
4153
+ var charAt$2 = uncurryThis$2(''.charAt);
4154
+ var charCodeAt$1 = uncurryThis$2(''.charCodeAt);
4155
+ var stringSlice$1 = uncurryThis$2(''.slice);
4087
4156
 
4088
4157
  var createMethod = function (CONVERT_TO_STRING) {
4089
4158
  return function ($this, pos) {
4090
- var S = toString$2(requireObjectCoercible$1($this));
4159
+ var S = toString$1(requireObjectCoercible($this));
4091
4160
  var position = toIntegerOrInfinity(pos);
4092
4161
  var size = S.length;
4093
4162
  var first, second;
@@ -4114,7 +4183,7 @@ var stringMultibyte = {
4114
4183
  };
4115
4184
 
4116
4185
  var charAt$1 = stringMultibyte.charAt;
4117
- var toString$1 = toString$6;
4186
+ var toString = toString$6;
4118
4187
  var InternalStateModule$1 = internalState;
4119
4188
  var defineIterator = iteratorDefine;
4120
4189
  var createIterResultObject = createIterResultObject$3;
@@ -4128,7 +4197,7 @@ var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR);
4128
4197
  defineIterator(String, 'String', function (iterated) {
4129
4198
  setInternalState$1(this, {
4130
4199
  type: STRING_ITERATOR,
4131
- string: toString$1(iterated),
4200
+ string: toString(iterated),
4132
4201
  index: 0
4133
4202
  });
4134
4203
  // `%StringIteratorPrototype%.next` method
@@ -4212,7 +4281,7 @@ var arrayFrom$1 = function from(arrayLike /* , mapfn = undefined, thisArg = unde
4212
4281
  };
4213
4282
 
4214
4283
  // based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js
4215
- var uncurryThis$2 = functionUncurryThis;
4284
+ var uncurryThis$1 = functionUncurryThis;
4216
4285
 
4217
4286
  var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1
4218
4287
  var base = 36;
@@ -4229,15 +4298,15 @@ var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
4229
4298
  var baseMinusTMin = base - tMin;
4230
4299
 
4231
4300
  var $RangeError = RangeError;
4232
- var exec$1 = uncurryThis$2(regexSeparators.exec);
4301
+ var exec$1 = uncurryThis$1(regexSeparators.exec);
4233
4302
  var floor$1 = Math.floor;
4234
4303
  var fromCharCode = String.fromCharCode;
4235
- var charCodeAt = uncurryThis$2(''.charCodeAt);
4236
- var join$1 = uncurryThis$2([].join);
4237
- var push$1 = uncurryThis$2([].push);
4238
- var replace$1 = uncurryThis$2(''.replace);
4239
- var split$1 = uncurryThis$2(''.split);
4240
- var toLowerCase$1 = uncurryThis$2(''.toLowerCase);
4304
+ var charCodeAt = uncurryThis$1(''.charCodeAt);
4305
+ var join$1 = uncurryThis$1([].join);
4306
+ var push$1 = uncurryThis$1([].push);
4307
+ var replace$1 = uncurryThis$1(''.replace);
4308
+ var split$1 = uncurryThis$1(''.split);
4309
+ var toLowerCase$1 = uncurryThis$1(''.toLowerCase);
4241
4310
 
4242
4311
  /**
4243
4312
  * Creates an array containing the numeric code points of each Unicode
@@ -4394,12 +4463,12 @@ var stringPunycodeToAscii = function (input) {
4394
4463
 
4395
4464
  // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
4396
4465
 
4397
- var $$3 = _export;
4466
+ var $$1 = _export;
4398
4467
  var DESCRIPTORS = descriptors;
4399
4468
  var USE_NATIVE_URL = urlConstructorDetection;
4400
4469
  var global$1 = global$o;
4401
4470
  var bind = functionBindContext;
4402
- var uncurryThis$1 = functionUncurryThis;
4471
+ var uncurryThis = functionUncurryThis;
4403
4472
  var defineBuiltIn = defineBuiltIn$b;
4404
4473
  var defineBuiltInAccessor = defineBuiltInAccessor$3;
4405
4474
  var anInstance = anInstance$3;
@@ -4425,18 +4494,18 @@ var TypeError$1 = global$1.TypeError;
4425
4494
  var parseInt = global$1.parseInt;
4426
4495
  var floor = Math.floor;
4427
4496
  var pow = Math.pow;
4428
- var charAt = uncurryThis$1(''.charAt);
4429
- var exec = uncurryThis$1(/./.exec);
4430
- var join = uncurryThis$1([].join);
4431
- var numberToString = uncurryThis$1(1.0.toString);
4432
- var pop = uncurryThis$1([].pop);
4433
- var push = uncurryThis$1([].push);
4434
- var replace = uncurryThis$1(''.replace);
4435
- var shift = uncurryThis$1([].shift);
4436
- var split = uncurryThis$1(''.split);
4437
- var stringSlice = uncurryThis$1(''.slice);
4438
- var toLowerCase = uncurryThis$1(''.toLowerCase);
4439
- var unshift = uncurryThis$1([].unshift);
4497
+ var charAt = uncurryThis(''.charAt);
4498
+ var exec = uncurryThis(/./.exec);
4499
+ var join = uncurryThis([].join);
4500
+ var numberToString = uncurryThis(1.0.toString);
4501
+ var pop = uncurryThis([].pop);
4502
+ var push = uncurryThis([].push);
4503
+ var replace = uncurryThis(''.replace);
4504
+ var shift = uncurryThis([].shift);
4505
+ var split = uncurryThis(''.split);
4506
+ var stringSlice = uncurryThis(''.slice);
4507
+ var toLowerCase = uncurryThis(''.toLowerCase);
4508
+ var unshift = uncurryThis([].unshift);
4440
4509
 
4441
4510
  var INVALID_AUTHORITY = 'Invalid authority';
4442
4511
  var INVALID_SCHEME = 'Invalid scheme';
@@ -5436,16 +5505,16 @@ if (NativeURL) {
5436
5505
 
5437
5506
  setToStringTag(URLConstructor, 'URL');
5438
5507
 
5439
- $$3({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {
5508
+ $$1({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {
5440
5509
  URL: URLConstructor
5441
5510
  });
5442
5511
 
5443
- var $$2 = _export;
5512
+ var $ = _export;
5444
5513
  var call = functionCall;
5445
5514
 
5446
5515
  // `URL.prototype.toJSON` method
5447
5516
  // https://url.spec.whatwg.org/#dom-url-tojson
5448
- $$2({ target: 'URL', proto: true, enumerable: true }, {
5517
+ $({ target: 'URL', proto: true, enumerable: true }, {
5449
5518
  toJSON: function toJSON() {
5450
5519
  return call(URL.prototype.toString, this);
5451
5520
  }
@@ -5524,20 +5593,23 @@ const verifyRegex = (regexToCheck, href) => {
5524
5593
  */
5525
5594
  const parseData = (fetchExperiments, storedExperiments) => {
5526
5595
  let dataToStorage = {};
5596
+ const {
5597
+ excludedExperimentIdsEnded
5598
+ } = fetchExperiments;
5527
5599
  if (fetchExperiments && !storedExperiments) {
5528
5600
  // TODO: Use fetchExperiment instead fetchExperimentsNoNoneExperimentID when the endpoint dont retrieve NONE experiment
5529
5601
  // https://github.com/dotCMS/core/issues/27905
5530
- const fetchExperimentsNoNoneExperimentID = fetchExperiments ? fetchExperiments.filter(experiment => experiment.id !== 'NONE') : [];
5602
+ const fetchExperimentsNoNoneExperimentID = fetchExperiments.experiments ? fetchExperiments.experiments.filter(experiment => experiment.id !== 'NONE') : [];
5531
5603
  dataToStorage = addExpireTimeToExperiments(fetchExperimentsNoNoneExperimentID);
5532
5604
  }
5533
5605
  if (!fetchExperiments && storedExperiments) {
5534
- dataToStorage = getUnexpiredExperiments(storedExperiments);
5606
+ dataToStorage = getUnexpiredExperiments(storedExperiments, excludedExperimentIdsEnded);
5535
5607
  }
5536
5608
  if (fetchExperiments && storedExperiments) {
5537
5609
  // TODO: Use fetchExperiment instead fetchExperimentsNoNoneExperimentID when the endpoint dont retrieve NONE experiment
5538
5610
  // https://github.com/dotCMS/core/issues/27905
5539
- const fetchExperimentsNoNoneExperimentID = fetchExperiments ? fetchExperiments.filter(experiment => experiment.id !== 'NONE') : [];
5540
- dataToStorage = [...addExpireTimeToExperiments(fetchExperimentsNoNoneExperimentID), ...getUnexpiredExperiments(storedExperiments)];
5611
+ const fetchExperimentsNoNoneExperimentID = fetchExperiments.experiments ? fetchExperiments.experiments.filter(experiment => experiment.id !== 'NONE') : [];
5612
+ dataToStorage = [...addExpireTimeToExperiments(fetchExperimentsNoNoneExperimentID), ...getUnexpiredExperiments(storedExperiments, excludedExperimentIdsEnded)];
5541
5613
  }
5542
5614
  return dataToStorage;
5543
5615
  };
@@ -5567,14 +5639,15 @@ const addExpireTimeToExperiments = experiments => {
5567
5639
  * Returns an array of experiments that have not expired yet.
5568
5640
  *
5569
5641
  * @param {Experiment[]} experiments - An array of experiments to filter.
5642
+ * @param excludedExperimentIdsEnded - Array of Experiments ids that have been manually ended.
5570
5643
  * @returns {Experiment[]} An array of unexpired experiments.
5571
5644
  */
5572
- const getUnexpiredExperiments = experiments => {
5645
+ const getUnexpiredExperiments = (experiments, excludedExperimentIdsEnded) => {
5573
5646
  const now = Date.now();
5574
5647
  return experiments.filter(experiment => {
5575
5648
  var _experiment$lookBackW;
5576
5649
  const expireTime = (_experiment$lookBackW = experiment.lookBackWindow) == null ? void 0 : _experiment$lookBackW.expireTime;
5577
- return expireTime ? expireTime > now : false;
5650
+ return expireTime ? expireTime > now && !excludedExperimentIdsEnded.includes(experiment.id) : false;
5578
5651
  });
5579
5652
  };
5580
5653
 
@@ -5793,75 +5866,6 @@ class DotLogger {
5793
5866
  }
5794
5867
  }
5795
5868
 
5796
- var $$1 = _export;
5797
- var $includes = arrayIncludes.includes;
5798
- var fails = fails$l;
5799
- var addToUnscopables = addToUnscopables$2;
5800
-
5801
- // FF99+ bug
5802
- var BROKEN_ON_SPARSE = fails(function () {
5803
- // eslint-disable-next-line es/no-array-prototype-includes -- detection
5804
- return !Array(1).includes();
5805
- });
5806
-
5807
- // `Array.prototype.includes` method
5808
- // https://tc39.es/ecma262/#sec-array.prototype.includes
5809
- $$1({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {
5810
- includes: function includes(el /* , fromIndex = 0 */) {
5811
- return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
5812
- }
5813
- });
5814
-
5815
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
5816
- addToUnscopables('includes');
5817
-
5818
- var isRegExp = isRegexp;
5819
-
5820
- var $TypeError = TypeError;
5821
-
5822
- var notARegexp = function (it) {
5823
- if (isRegExp(it)) {
5824
- throw new $TypeError("The method doesn't accept regular expressions");
5825
- } return it;
5826
- };
5827
-
5828
- var wellKnownSymbol = wellKnownSymbol$k;
5829
-
5830
- var MATCH = wellKnownSymbol('match');
5831
-
5832
- var correctIsRegexpLogic = function (METHOD_NAME) {
5833
- var regexp = /./;
5834
- try {
5835
- '/./'[METHOD_NAME](regexp);
5836
- } catch (error1) {
5837
- try {
5838
- regexp[MATCH] = false;
5839
- return '/./'[METHOD_NAME](regexp);
5840
- } catch (error2) { /* empty */ }
5841
- } return false;
5842
- };
5843
-
5844
- var $ = _export;
5845
- var uncurryThis = functionUncurryThis;
5846
- var notARegExp = notARegexp;
5847
- var requireObjectCoercible = requireObjectCoercible$6;
5848
- var toString = toString$6;
5849
- var correctIsRegExpLogic = correctIsRegexpLogic;
5850
-
5851
- var stringIndexOf = uncurryThis(''.indexOf);
5852
-
5853
- // `String.prototype.includes` method
5854
- // https://tc39.es/ecma262/#sec-string.prototype.includes
5855
- $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {
5856
- includes: function includes(searchString /* , position = 0 */) {
5857
- return !!~stringIndexOf(
5858
- toString(requireObjectCoercible(this)),
5859
- toString(notARegExp(searchString)),
5860
- arguments.length > 1 ? arguments[1] : undefined
5861
- );
5862
- }
5863
- });
5864
-
5865
5869
  /**
5866
5870
  * Checks the flag indicating whether the experiment has already been checked.
5867
5871
  *
@@ -6258,7 +6262,7 @@ class DotExperiments {
6258
6262
  }
6259
6263
  }
6260
6264
  /**
6261
- * Fetches experiments from the server.
6265
+ * Fetches experiments from the server and merge if not ended the excluded requested.
6262
6266
  *
6263
6267
  * @private
6264
6268
  * @returns {Promise<AssignedExperiments>} - The entity object returned from the server.
@@ -6268,7 +6272,7 @@ class DotExperiments {
6268
6272
  this.logger.group('Fetch Experiments');
6269
6273
  this.logger.time('Fetch Time');
6270
6274
  try {
6271
- var _responseJson$entity;
6275
+ var _responseJson$entity$, _responseJson$entity, _responseJson$entity$2, _responseJson$entity2;
6272
6276
  const body = {
6273
6277
  exclude: this.experimentsAssigned ? getExperimentsIds(this.experimentsAssigned) : []
6274
6278
  };
@@ -6285,10 +6289,14 @@ class DotExperiments {
6285
6289
  throw new Error(`HTTP error! status: ${response.status}, body: ${responseText}`);
6286
6290
  }
6287
6291
  const responseJson = await response.json();
6288
- const experiments = responseJson == null || (_responseJson$entity = responseJson.entity) == null ? void 0 : _responseJson$entity.experiments;
6292
+ const experiments = (_responseJson$entity$ = responseJson == null || (_responseJson$entity = responseJson.entity) == null ? void 0 : _responseJson$entity.experiments) != null ? _responseJson$entity$ : [];
6293
+ const excludedExperimentIdsEnded = (_responseJson$entity$2 = responseJson == null || (_responseJson$entity2 = responseJson.entity) == null ? void 0 : _responseJson$entity2.excludedExperimentIdsEnded) != null ? _responseJson$entity$2 : [];
6289
6294
  this.logger.log(`Experiment data get successfully `);
6290
6295
  this.persistenceHandler.setFlagExperimentAlreadyChecked();
6291
- return experiments != null ? experiments : [];
6296
+ return {
6297
+ experiments,
6298
+ excludedExperimentIdsEnded
6299
+ };
6292
6300
  } catch (error) {
6293
6301
  this.logger.error(`An error occurred while trying to fetch the experiments: ${error.message}`);
6294
6302
  throw error;
@@ -6297,6 +6305,19 @@ class DotExperiments {
6297
6305
  this.logger.groupEnd();
6298
6306
  }
6299
6307
  }
6308
+ /**
6309
+ * Filters out experiments that are not yet ended from already assigned.
6310
+ *
6311
+ * @param {Array} excludedExperimentIdsEnded - The IDs of experiments to be excluded because they have ended.
6312
+ *
6313
+ * @return {Array} Experiments that are not in the list of those that have ended.
6314
+ *
6315
+ * @private
6316
+ */
6317
+ getExperimentsNotEndedFromAlreadyAssigned(excludedExperimentIdsEnded) {
6318
+ var _this$experimentsAssi;
6319
+ return ((_this$experimentsAssi = this.experimentsAssigned) == null ? void 0 : _this$experimentsAssi.filter(exp => !(excludedExperimentIdsEnded != null && excludedExperimentIdsEnded.includes(exp.id)))) || [];
6320
+ }
6300
6321
  /**
6301
6322
  * This method is responsible for retrieving and persisting experiment data from the server to the local indexDB database.
6302
6323
  *
@@ -6314,7 +6335,10 @@ class DotExperiments {
6314
6335
  */
6315
6336
  async verifyExperimentData() {
6316
6337
  try {
6317
- let fetchedExperiments = undefined;
6338
+ let fetchedExperiments = {
6339
+ excludedExperimentIdsEnded: [],
6340
+ experiments: []
6341
+ };
6318
6342
  const storedExperiments = this.experimentsAssigned ? this.experimentsAssigned : [];
6319
6343
  // Checks whether fetching experiment data from the server is necessary.
6320
6344
  if (this.shouldFetchNewData()) {
@@ -6420,8 +6444,8 @@ class DotExperiments {
6420
6444
  * @returns {void}
6421
6445
  */
6422
6446
  refreshAnalyticsForCurrentLocation() {
6423
- var _this$experimentsAssi;
6424
- const experimentsData = (_this$experimentsAssi = this.experimentsAssigned) != null ? _this$experimentsAssi : [];
6447
+ var _this$experimentsAssi2;
6448
+ const experimentsData = (_this$experimentsAssi2 = this.experimentsAssigned) != null ? _this$experimentsAssi2 : [];
6425
6449
  if (experimentsData.length > 0) {
6426
6450
  const {
6427
6451
  experiments
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotcms/experiments",
3
- "version": "0.0.1-alpha.14",
3
+ "version": "0.0.1-alpha.15",
4
4
  "description": "Official JavaScript library to use Experiments with DotCMS.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,4 +1,4 @@
1
- import { DotExperimentConfig, Experiment, Variant } from './shared/models';
1
+ import { DotExperimentConfig, Experiment, Variant } from "./shared/models";
2
2
  /**
3
3
  * `DotExperiments` is a Typescript class to handles all operations related to fetching, storing, parsing, and navigating
4
4
  * data for Experiments (A/B Testing).
@@ -197,13 +197,23 @@ export declare class DotExperiments {
197
197
  */
198
198
  private initialize;
199
199
  /**
200
- * Fetches experiments from the server.
200
+ * Fetches experiments from the server and merge if not ended the excluded requested.
201
201
  *
202
202
  * @private
203
203
  * @returns {Promise<AssignedExperiments>} - The entity object returned from the server.
204
204
  * @throws {Error} - If an HTTP error occurs or an error occurs during the fetch request.
205
205
  */
206
206
  private getExperimentsFromServer;
207
+ /**
208
+ * Filters out experiments that are not yet ended from already assigned.
209
+ *
210
+ * @param {Array} excludedExperimentIdsEnded - The IDs of experiments to be excluded because they have ended.
211
+ *
212
+ * @return {Array} Experiments that are not in the list of those that have ended.
213
+ *
214
+ * @private
215
+ */
216
+ private getExperimentsNotEndedFromAlreadyAssigned;
207
217
  /**
208
218
  * This method is responsible for retrieving and persisting experiment data from the server to the local indexDB database.
209
219
  *
@@ -1,4 +1,4 @@
1
- import { Experiment, ExperimentEvent, IsUserIncludedApiResponse } from '../models';
1
+ import { Experiment, ExperimentEvent, IsUserIncludedApiResponse } from "../models";
2
2
  /**
3
3
  * Represents the response object for the IsUserIncluded API.
4
4
  * @typedef {Object} IsUserIncludedResponse
@@ -9,6 +9,7 @@ import { Experiment, ExperimentEvent, IsUserIncludedApiResponse } from '../model
9
9
  */
10
10
  export declare const IsUserIncludedResponse: IsUserIncludedApiResponse;
11
11
  export declare const NewIsUserIncludedResponse: IsUserIncludedApiResponse;
12
+ export declare const After15DaysIsUserIncludedResponse: IsUserIncludedApiResponse;
12
13
  export declare const MOCK_CURRENT_TIMESTAMP = 1704096000000;
13
14
  export declare const TIME_15_DAYS_MILLISECONDS: number;
14
15
  export declare const TIME_5_DAYS_MILLISECONDS: number;
@@ -128,7 +128,15 @@ export interface AssignedExperiments {
128
128
  * The ids of the experiments included in the assignment.
129
129
  */
130
130
  includedExperimentIds: string[];
131
+ /**
132
+ * The ids of the experiments that are excluded in the request and have ended.
133
+ */
134
+ excludedExperimentIdsEnded: string[];
131
135
  }
136
+ /**
137
+ * Represents the response from the backend when fetching an experiment.
138
+ */
139
+ export type FetchExperiments = Pick<AssignedExperiments, 'excludedExperimentIdsEnded' | 'experiments'>;
132
140
  /**
133
141
  * Represents the response from backend holding information about running experiments and variant assignment.
134
142
  *
@@ -1,4 +1,4 @@
1
- import { Experiment, ExperimentParsed } from '../models';
1
+ import { Experiment, ExperimentParsed, FetchExperiments } from "../models";
2
2
  /**
3
3
  * This arrow function parses a given set of assigned experiments for analytics.
4
4
  *
@@ -44,7 +44,7 @@ export declare const verifyRegex: (regexToCheck: string | null, href: string) =>
44
44
  *
45
45
  * There could be scenarios where none of these conditions are met, in that case, dataToStorage will be the default empty object.
46
46
  */
47
- export declare const parseData: (fetchExperiments: Experiment[] | undefined, storedExperiments: Experiment[] | undefined) => Experiment[];
47
+ export declare const parseData: (fetchExperiments: FetchExperiments, storedExperiments: Experiment[] | undefined) => Experiment[];
48
48
  /**
49
49
  * Retrieves the array of experiment IDs from the given AssignedExperiments..
50
50
  *