@ninetailed/experience.js 4.3.0-beta.6 → 4.4.0-beta.2

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.js CHANGED
@@ -3,9 +3,8 @@ export { EXPERIENCE_TRAIT_PREFIX, isExperienceMatch, selectActiveExperiments, se
3
3
  import Analytics from 'analytics';
4
4
  import { z } from 'zod';
5
5
 
6
+ const HAS_SEEN_EXPERIENCE = 'has_seen_experience';
6
7
  const HAS_SEEN_COMPONENT = 'has_seen_component';
7
- const HAS_SEEN_ELEMENT = 'has_seen_element';
8
- const PAGE_HIDDEN = 'page_hidden';
9
8
 
10
9
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
11
10
 
@@ -603,9 +602,9 @@ var inspectSource$3 = store$1.inspectSource;
603
602
  var global$d = global$k;
604
603
  var isCallable$d = isCallable$k;
605
604
 
606
- var WeakMap$2 = global$d.WeakMap;
605
+ var WeakMap$1 = global$d.WeakMap;
607
606
 
608
- var weakMapBasicDetection = isCallable$d(WeakMap$2) && /native code/.test(String(WeakMap$2));
607
+ var weakMapBasicDetection = isCallable$d(WeakMap$1) && /native code/.test(String(WeakMap$1));
609
608
 
610
609
  var shared$1 = shared$3.exports;
611
610
  var uid = uid$2;
@@ -629,7 +628,7 @@ var hiddenKeys$3 = hiddenKeys$4;
629
628
 
630
629
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
631
630
  var TypeError$2 = global$c.TypeError;
632
- var WeakMap$1 = global$c.WeakMap;
631
+ var WeakMap = global$c.WeakMap;
633
632
  var set$1, get, has;
634
633
 
635
634
  var enforce = function (it) {
@@ -646,7 +645,7 @@ var getterFor = function (TYPE) {
646
645
  };
647
646
 
648
647
  if (NATIVE_WEAK_MAP || shared.state) {
649
- var store = shared.state || (shared.state = new WeakMap$1());
648
+ var store = shared.state || (shared.state = new WeakMap());
650
649
  /* eslint-disable no-self-assign -- prototype methods protection */
651
650
  store.get = store.get;
652
651
  store.has = store.has;
@@ -2518,18 +2517,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2518
2517
  PERFORMANCE OF THIS SOFTWARE.
2519
2518
  ***************************************************************************** */
2520
2519
 
2521
- function __rest(s, e) {
2522
- var t = {};
2523
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
2524
- t[p] = s[p];
2525
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
2526
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2527
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
2528
- t[p[i]] = s[p[i]];
2529
- }
2530
- return t;
2531
- }
2532
-
2533
2520
  function __awaiter(thisArg, _arguments, P, generator) {
2534
2521
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2535
2522
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -2848,115 +2835,6 @@ if (NOT_GENERIC || INCORRECT_NAME) {
2848
2835
  }, { unsafe: true });
2849
2836
  }
2850
2837
 
2851
- var classof = classofRaw$2;
2852
-
2853
- // `IsArray` abstract operation
2854
- // https://tc39.es/ecma262/#sec-isarray
2855
- // eslint-disable-next-line es/no-array-isarray -- safe
2856
- var isArray$2 = Array.isArray || function isArray(argument) {
2857
- return classof(argument) == 'Array';
2858
- };
2859
-
2860
- var $TypeError$1 = TypeError;
2861
- var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
2862
-
2863
- var doesNotExceedSafeInteger$1 = function (it) {
2864
- if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
2865
- return it;
2866
- };
2867
-
2868
- var isArray$1 = isArray$2;
2869
- var lengthOfArrayLike$2 = lengthOfArrayLike$5;
2870
- var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
2871
- var bind = functionBindContext;
2872
-
2873
- // `FlattenIntoArray` abstract operation
2874
- // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
2875
- var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
2876
- var targetIndex = start;
2877
- var sourceIndex = 0;
2878
- var mapFn = mapper ? bind(mapper, thisArg) : false;
2879
- var element, elementLen;
2880
-
2881
- while (sourceIndex < sourceLen) {
2882
- if (sourceIndex in source) {
2883
- element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
2884
-
2885
- if (depth > 0 && isArray$1(element)) {
2886
- elementLen = lengthOfArrayLike$2(element);
2887
- targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
2888
- } else {
2889
- doesNotExceedSafeInteger(targetIndex + 1);
2890
- target[targetIndex] = element;
2891
- }
2892
-
2893
- targetIndex++;
2894
- }
2895
- sourceIndex++;
2896
- }
2897
- return targetIndex;
2898
- };
2899
-
2900
- var flattenIntoArray_1 = flattenIntoArray$1;
2901
-
2902
- var isArray = isArray$2;
2903
- var isConstructor = isConstructor$2;
2904
- var isObject$1 = isObject$a;
2905
- var wellKnownSymbol$3 = wellKnownSymbol$h;
2906
-
2907
- var SPECIES = wellKnownSymbol$3('species');
2908
- var $Array = Array;
2909
-
2910
- // a part of `ArraySpeciesCreate` abstract operation
2911
- // https://tc39.es/ecma262/#sec-arrayspeciescreate
2912
- var arraySpeciesConstructor$1 = function (originalArray) {
2913
- var C;
2914
- if (isArray(originalArray)) {
2915
- C = originalArray.constructor;
2916
- // cross-realm fallback
2917
- if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
2918
- else if (isObject$1(C)) {
2919
- C = C[SPECIES];
2920
- if (C === null) C = undefined;
2921
- }
2922
- } return C === undefined ? $Array : C;
2923
- };
2924
-
2925
- var arraySpeciesConstructor = arraySpeciesConstructor$1;
2926
-
2927
- // `ArraySpeciesCreate` abstract operation
2928
- // https://tc39.es/ecma262/#sec-arrayspeciescreate
2929
- var arraySpeciesCreate$1 = function (originalArray, length) {
2930
- return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
2931
- };
2932
-
2933
- var $$3 = _export;
2934
- var flattenIntoArray = flattenIntoArray_1;
2935
- var toObject$2 = toObject$5;
2936
- var lengthOfArrayLike$1 = lengthOfArrayLike$5;
2937
- var toIntegerOrInfinity = toIntegerOrInfinity$3;
2938
- var arraySpeciesCreate = arraySpeciesCreate$1;
2939
-
2940
- // `Array.prototype.flat` method
2941
- // https://tc39.es/ecma262/#sec-array.prototype.flat
2942
- $$3({ target: 'Array', proto: true }, {
2943
- flat: function flat(/* depthArg = 1 */) {
2944
- var depthArg = arguments.length ? arguments[0] : undefined;
2945
- var O = toObject$2(this);
2946
- var sourceLen = lengthOfArrayLike$1(O);
2947
- var A = arraySpeciesCreate(O, 0);
2948
- A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
2949
- return A;
2950
- }
2951
- });
2952
-
2953
- // this method was added to unscopables after implementation
2954
- // in popular engines, so it's moved to a separate module
2955
- var addToUnscopables$1 = addToUnscopables$3;
2956
-
2957
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
2958
- addToUnscopables$1('flat');
2959
-
2960
2838
  var fails$3 = fails$h;
2961
2839
 
2962
2840
  var correctPrototypeGetter = !fails$3(function () {
@@ -2968,7 +2846,7 @@ var correctPrototypeGetter = !fails$3(function () {
2968
2846
 
2969
2847
  var hasOwn = hasOwnProperty_1;
2970
2848
  var isCallable$2 = isCallable$k;
2971
- var toObject$1 = toObject$5;
2849
+ var toObject$2 = toObject$5;
2972
2850
  var sharedKey = sharedKey$3;
2973
2851
  var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
2974
2852
 
@@ -2980,7 +2858,7 @@ var ObjectPrototype = $Object.prototype;
2980
2858
  // https://tc39.es/ecma262/#sec-object.getprototypeof
2981
2859
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
2982
2860
  var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
2983
- var object = toObject$1(O);
2861
+ var object = toObject$2(O);
2984
2862
  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
2985
2863
  var constructor = object.constructor;
2986
2864
  if (isCallable$2(constructor) && object instanceof constructor) {
@@ -2990,12 +2868,12 @@ var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : f
2990
2868
 
2991
2869
  var fails$2 = fails$h;
2992
2870
  var isCallable$1 = isCallable$k;
2993
- var isObject = isObject$a;
2871
+ var isObject$1 = isObject$a;
2994
2872
  var getPrototypeOf$1 = objectGetPrototypeOf;
2995
2873
  var defineBuiltIn$1 = defineBuiltIn$6;
2996
- var wellKnownSymbol$2 = wellKnownSymbol$h;
2874
+ var wellKnownSymbol$3 = wellKnownSymbol$h;
2997
2875
 
2998
- var ITERATOR$3 = wellKnownSymbol$2('iterator');
2876
+ var ITERATOR$3 = wellKnownSymbol$3('iterator');
2999
2877
  var BUGGY_SAFARI_ITERATORS$1 = false;
3000
2878
 
3001
2879
  // `%IteratorPrototype%` object
@@ -3013,7 +2891,7 @@ if ([].keys) {
3013
2891
  }
3014
2892
  }
3015
2893
 
3016
- var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype$2) || fails$2(function () {
2894
+ var NEW_ITERATOR_PROTOTYPE = !isObject$1(IteratorPrototype$2) || fails$2(function () {
3017
2895
  var test = {};
3018
2896
  // FF44- legacy iterators case
3019
2897
  return IteratorPrototype$2[ITERATOR$3].call(test) !== test;
@@ -3050,7 +2928,7 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
3050
2928
  return IteratorConstructor;
3051
2929
  };
3052
2930
 
3053
- var $$2 = _export;
2931
+ var $$3 = _export;
3054
2932
  var call = functionCall;
3055
2933
  var FunctionName = functionName;
3056
2934
  var isCallable = isCallable$k;
@@ -3060,7 +2938,7 @@ var setPrototypeOf = objectSetPrototypeOf;
3060
2938
  var setToStringTag = setToStringTag$3;
3061
2939
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$4;
3062
2940
  var defineBuiltIn = defineBuiltIn$6;
3063
- var wellKnownSymbol$1 = wellKnownSymbol$h;
2941
+ var wellKnownSymbol$2 = wellKnownSymbol$h;
3064
2942
  var Iterators$1 = iterators;
3065
2943
  var IteratorsCore = iteratorsCore;
3066
2944
 
@@ -3068,7 +2946,7 @@ var PROPER_FUNCTION_NAME = FunctionName.PROPER;
3068
2946
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
3069
2947
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
3070
2948
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
3071
- var ITERATOR$2 = wellKnownSymbol$1('iterator');
2949
+ var ITERATOR$2 = wellKnownSymbol$2('iterator');
3072
2950
  var KEYS = 'keys';
3073
2951
  var VALUES = 'values';
3074
2952
  var ENTRIES = 'entries';
@@ -3135,7 +3013,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
3135
3013
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
3136
3014
  defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
3137
3015
  }
3138
- } else $$2({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
3016
+ } else $$3({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
3139
3017
  }
3140
3018
 
3141
3019
  // define iterator
@@ -3154,7 +3032,7 @@ var createIterResultObject$1 = function (value, done) {
3154
3032
  };
3155
3033
 
3156
3034
  var toIndexedObject = toIndexedObject$5;
3157
- var addToUnscopables = addToUnscopables$3;
3035
+ var addToUnscopables$1 = addToUnscopables$3;
3158
3036
  var Iterators = iterators;
3159
3037
  var InternalStateModule = internalState;
3160
3038
  var defineProperty = objectDefineProperty.f;
@@ -3205,9 +3083,9 @@ var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind)
3205
3083
  var values = Iterators.Arguments = Iterators.Array;
3206
3084
 
3207
3085
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
3208
- addToUnscopables('keys');
3209
- addToUnscopables('values');
3210
- addToUnscopables('entries');
3086
+ addToUnscopables$1('keys');
3087
+ addToUnscopables$1('values');
3088
+ addToUnscopables$1('entries');
3211
3089
 
3212
3090
  // V8 ~ Chrome 45- bug
3213
3091
  if (DESCRIPTORS && values.name !== 'values') try {
@@ -3263,10 +3141,10 @@ var DOMIterables = domIterables;
3263
3141
  var DOMTokenListPrototype = domTokenListPrototype;
3264
3142
  var ArrayIteratorMethods = es_array_iterator;
3265
3143
  var createNonEnumerableProperty = createNonEnumerableProperty$4;
3266
- var wellKnownSymbol = wellKnownSymbol$h;
3144
+ var wellKnownSymbol$1 = wellKnownSymbol$h;
3267
3145
 
3268
- var ITERATOR$1 = wellKnownSymbol('iterator');
3269
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3146
+ var ITERATOR$1 = wellKnownSymbol$1('iterator');
3147
+ var TO_STRING_TAG = wellKnownSymbol$1('toStringTag');
3270
3148
  var ArrayValues = ArrayIteratorMethods.values;
3271
3149
 
3272
3150
  var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
@@ -3297,54 +3175,115 @@ for (var COLLECTION_NAME in DOMIterables) {
3297
3175
 
3298
3176
  handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
3299
3177
 
3300
- class ElementSeenObserver {
3301
- constructor(_options) {
3302
- this._options = _options;
3303
- this._elementDelays = new WeakMap();
3304
- this._intersectionTimers = new WeakMap();
3305
- if (typeof IntersectionObserver !== 'undefined') {
3306
- this._intersectionObserver = new IntersectionObserver(this.onIntersection.bind(this));
3307
- }
3308
- }
3309
- onIntersection(entries) {
3310
- entries.forEach(entry => {
3311
- const {
3312
- isIntersecting,
3313
- target
3314
- } = entry;
3315
- if (isIntersecting) {
3316
- const delay = this._elementDelays.get(target);
3317
- const timeOut = window.setTimeout(() => {
3318
- this._options.onElementSeen(target);
3319
- }, delay);
3320
- this._intersectionTimers.set(target, timeOut);
3178
+ var classof = classofRaw$2;
3179
+
3180
+ // `IsArray` abstract operation
3181
+ // https://tc39.es/ecma262/#sec-isarray
3182
+ // eslint-disable-next-line es/no-array-isarray -- safe
3183
+ var isArray$2 = Array.isArray || function isArray(argument) {
3184
+ return classof(argument) == 'Array';
3185
+ };
3186
+
3187
+ var $TypeError$1 = TypeError;
3188
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
3189
+
3190
+ var doesNotExceedSafeInteger$1 = function (it) {
3191
+ if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
3192
+ return it;
3193
+ };
3194
+
3195
+ var isArray$1 = isArray$2;
3196
+ var lengthOfArrayLike$2 = lengthOfArrayLike$5;
3197
+ var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
3198
+ var bind = functionBindContext;
3199
+
3200
+ // `FlattenIntoArray` abstract operation
3201
+ // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
3202
+ var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
3203
+ var targetIndex = start;
3204
+ var sourceIndex = 0;
3205
+ var mapFn = mapper ? bind(mapper, thisArg) : false;
3206
+ var element, elementLen;
3207
+
3208
+ while (sourceIndex < sourceLen) {
3209
+ if (sourceIndex in source) {
3210
+ element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
3211
+
3212
+ if (depth > 0 && isArray$1(element)) {
3213
+ elementLen = lengthOfArrayLike$2(element);
3214
+ targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
3321
3215
  } else {
3322
- const timeOut = this._intersectionTimers.get(target);
3323
- if (typeof timeOut !== 'undefined') {
3324
- window.clearTimeout(timeOut);
3325
- }
3216
+ doesNotExceedSafeInteger(targetIndex + 1);
3217
+ target[targetIndex] = element;
3326
3218
  }
3327
- });
3328
- }
3329
- observe(element, options) {
3330
- var _a, _b;
3331
- this._elementDelays.set(element, (_a = options === null || options === void 0 ? void 0 : options.delay) !== null && _a !== void 0 ? _a : 2000);
3332
- (_b = this._intersectionObserver) === null || _b === void 0 ? void 0 : _b.observe(element);
3333
- }
3334
- unobserve(element) {
3335
- var _a;
3336
- (_a = this._intersectionObserver) === null || _a === void 0 ? void 0 : _a.unobserve(element);
3219
+
3220
+ targetIndex++;
3221
+ }
3222
+ sourceIndex++;
3337
3223
  }
3338
- }
3224
+ return targetIndex;
3225
+ };
3226
+
3227
+ var flattenIntoArray_1 = flattenIntoArray$1;
3339
3228
 
3340
- const acceptsCredentials = plugin => {
3341
- return typeof plugin === 'object' && plugin !== null && 'setCredentials' in plugin && typeof plugin.setCredentials === 'function';
3229
+ var isArray = isArray$2;
3230
+ var isConstructor = isConstructor$2;
3231
+ var isObject = isObject$a;
3232
+ var wellKnownSymbol = wellKnownSymbol$h;
3233
+
3234
+ var SPECIES = wellKnownSymbol('species');
3235
+ var $Array = Array;
3236
+
3237
+ // a part of `ArraySpeciesCreate` abstract operation
3238
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
3239
+ var arraySpeciesConstructor$1 = function (originalArray) {
3240
+ var C;
3241
+ if (isArray(originalArray)) {
3242
+ C = originalArray.constructor;
3243
+ // cross-realm fallback
3244
+ if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
3245
+ else if (isObject(C)) {
3246
+ C = C[SPECIES];
3247
+ if (C === null) C = undefined;
3248
+ }
3249
+ } return C === undefined ? $Array : C;
3342
3250
  };
3343
3251
 
3344
- const isInterestedInHiddenPage = arg => {
3345
- return typeof arg === 'object' && arg !== null && PAGE_HIDDEN in arg && typeof arg[PAGE_HIDDEN] === 'function';
3252
+ var arraySpeciesConstructor = arraySpeciesConstructor$1;
3253
+
3254
+ // `ArraySpeciesCreate` abstract operation
3255
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
3256
+ var arraySpeciesCreate$1 = function (originalArray, length) {
3257
+ return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
3346
3258
  };
3347
3259
 
3260
+ var $$2 = _export;
3261
+ var flattenIntoArray = flattenIntoArray_1;
3262
+ var toObject$1 = toObject$5;
3263
+ var lengthOfArrayLike$1 = lengthOfArrayLike$5;
3264
+ var toIntegerOrInfinity = toIntegerOrInfinity$3;
3265
+ var arraySpeciesCreate = arraySpeciesCreate$1;
3266
+
3267
+ // `Array.prototype.flat` method
3268
+ // https://tc39.es/ecma262/#sec-array.prototype.flat
3269
+ $$2({ target: 'Array', proto: true }, {
3270
+ flat: function flat(/* depthArg = 1 */) {
3271
+ var depthArg = arguments.length ? arguments[0] : undefined;
3272
+ var O = toObject$1(this);
3273
+ var sourceLen = lengthOfArrayLike$1(O);
3274
+ var A = arraySpeciesCreate(O, 0);
3275
+ A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
3276
+ return A;
3277
+ }
3278
+ });
3279
+
3280
+ // this method was added to unscopables after implementation
3281
+ // in popular engines, so it's moved to a separate module
3282
+ var addToUnscopables = addToUnscopables$3;
3283
+
3284
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
3285
+ addToUnscopables('flat');
3286
+
3348
3287
  class Ninetailed {
3349
3288
  constructor(ninetailedApiClientInstanceOrOptions, {
3350
3289
  plugins,
@@ -3353,8 +3292,7 @@ class Ninetailed {
3353
3292
  locale,
3354
3293
  requestTimeout,
3355
3294
  onLog,
3356
- onError,
3357
- componentViewTrackingThreshold = 2000
3295
+ onError
3358
3296
  } = {}) {
3359
3297
  this.isInitialized = false;
3360
3298
  this.page = (data, options) => __awaiter(this, void 0, void 0, function* () {
@@ -3391,48 +3329,16 @@ class Ninetailed {
3391
3329
  throw error;
3392
3330
  }
3393
3331
  });
3394
- /**
3395
- * @deprecated The legacy datamodel is not recommended anymore
3396
- * Will be removed in version 5 of the SDK
3397
- */
3398
3332
  this.trackHasSeenComponent = properties => __awaiter(this, void 0, void 0, function* () {
3399
3333
  return this.instance.dispatch(Object.assign(Object.assign({}, properties), {
3400
3334
  type: HAS_SEEN_COMPONENT
3401
3335
  }));
3402
3336
  });
3403
- /**
3404
- * @deprecated Use the Ninetailed provided observers instead
3405
- * Will be removed in version 5 of the SDK
3406
- */
3407
3337
  this.trackHasSeenExperience = properties => {
3408
3338
  return this.instance.dispatch(Object.assign(Object.assign({}, properties), {
3409
- type: HAS_SEEN_ELEMENT
3339
+ type: HAS_SEEN_EXPERIENCE
3410
3340
  }));
3411
3341
  };
3412
- this.observeElement = (payload, options) => {
3413
- const {
3414
- element
3415
- } = payload,
3416
- remaingPayload = __rest(payload, ["element"]);
3417
- this.observedElements.set(element, remaingPayload);
3418
- this.elementSeenObserver.observe(element, Object.assign({
3419
- delay: this.componentViewTrackingThreshold
3420
- }, options));
3421
- };
3422
- this.unobserveElement = element => {
3423
- this.observedElements.delete(element);
3424
- this.elementSeenObserver.unobserve(element);
3425
- };
3426
- this.onElementSeen = element => {
3427
- const payload = this.observedElements.get(element);
3428
- if (typeof payload !== 'undefined') {
3429
- this.instance.dispatch(Object.assign(Object.assign({
3430
- element
3431
- }, payload), {
3432
- type: HAS_SEEN_ELEMENT
3433
- }));
3434
- }
3435
- };
3436
3342
  this.identify = (uid, traits, options) => __awaiter(this, void 0, void 0, function* () {
3437
3343
  try {
3438
3344
  const result = Traits.default({}).safeParse(traits);
@@ -3500,18 +3406,6 @@ class Ninetailed {
3500
3406
  this.onIsInitialized(resolve);
3501
3407
  });
3502
3408
  };
3503
- this.onVisibilityChange = () => {
3504
- if (typeof document === 'undefined') {
3505
- return;
3506
- }
3507
- document.addEventListener('visibilitychange', () => {
3508
- if (document.visibilityState === 'hidden') {
3509
- this.instance.dispatch({
3510
- type: PAGE_HIDDEN
3511
- });
3512
- }
3513
- });
3514
- };
3515
3409
  if (ninetailedApiClientInstanceOrOptions instanceof NinetailedApiClient) {
3516
3410
  this.apiClient = ninetailedApiClientInstanceOrOptions;
3517
3411
  } else {
@@ -3529,15 +3423,15 @@ class Ninetailed {
3529
3423
  preview
3530
3424
  });
3531
3425
  }
3532
- this.plugins = (plugins !== null && plugins !== void 0 ? plugins : []).flat();
3533
- this.plugins.forEach(plugin => {
3534
- if (acceptsCredentials(plugin) && this.clientId && this.environment) {
3535
- plugin.setCredentials({
3426
+ this.plugins = [...(plugins || []).map(plugin => {
3427
+ if ('setCredentials' in plugin && typeof plugin['setCredentials'] === 'function') {
3428
+ plugin['setCredentials']({
3536
3429
  clientId: this.clientId,
3537
3430
  environment: this.environment
3538
3431
  });
3539
3432
  }
3540
- });
3433
+ return plugin;
3434
+ }).flat()];
3541
3435
  if (profile) {
3542
3436
  this._profileState = {
3543
3437
  status: 'success',
@@ -3585,15 +3479,6 @@ class Ninetailed {
3585
3479
  });
3586
3480
  }
3587
3481
  });
3588
- this.observedElements = new WeakMap();
3589
- this.elementSeenObserver = new ElementSeenObserver({
3590
- onElementSeen: this.onElementSeen.bind(this)
3591
- });
3592
- this.componentViewTrackingThreshold = componentViewTrackingThreshold;
3593
- const hasPluginsInterestedInHiddenPage = this.plugins.some(isInterestedInHiddenPage);
3594
- if (hasPluginsInterestedInHiddenPage) {
3595
- this.onVisibilityChange();
3596
- }
3597
3482
  this.registerWindowHandlers();
3598
3483
  }
3599
3484
  get profileState() {
@@ -3706,41 +3591,39 @@ const selectVariant = (baseline, variants, {
3706
3591
  };
3707
3592
  };
3708
3593
 
3709
- const TrackComponentProperties = z.object({
3710
- variant: z.object({
3711
- id: z.string()
3712
- }),
3713
- audience: z.object({
3714
- id: z.string()
3715
- }),
3716
- isPersonalized: z.boolean()
3717
- });
3718
-
3719
- class NinetailedPlugin {}
3720
-
3721
- const ElementSeenPayloadSchema = z.object({
3722
- element: z.any(),
3594
+ const TrackExperienceProperties = z.object({
3723
3595
  experience: z.object({
3724
3596
  id: z.string(),
3725
3597
  type: z.union([z.literal('nt_experiment'), z.literal('nt_personalization')]),
3726
- name: z.string().optional(),
3598
+ name: z.string(),
3727
3599
  description: z.string().optional()
3728
- }).optional().nullable(),
3600
+ }),
3729
3601
  audience: z.object({
3730
3602
  id: z.string(),
3731
3603
  name: z.string().optional(),
3732
3604
  description: z.string().optional()
3733
- }).optional().nullable().default({
3605
+ }).optional().default({
3734
3606
  id: 'ALL_VISITORS',
3735
3607
  name: 'All Visitors',
3736
3608
  description: 'This is the default all visitors audience as no audience was set.'
3737
3609
  }),
3738
- variant: z.object({
3610
+ selectedVariant: z.object({
3739
3611
  id: z.string()
3740
3612
  }).catchall(z.unknown()),
3741
- variantIndex: z.number()
3613
+ selectedVariantIndex: z.number()
3614
+ });
3615
+ const TrackComponentProperties = z.object({
3616
+ variant: z.object({
3617
+ id: z.string()
3618
+ }),
3619
+ audience: z.object({
3620
+ id: z.string()
3621
+ }),
3622
+ isPersonalized: z.boolean()
3742
3623
  });
3743
3624
 
3625
+ class NinetailedPlugin {}
3626
+
3744
3627
  var aCallable = aCallable$8;
3745
3628
  var toObject = toObject$5;
3746
3629
  var IndexedObject = indexedObject;
@@ -3947,13 +3830,11 @@ const selectPluginsHavingExperienceSelectionMiddleware = plugins => {
3947
3830
  const createPassThroughMiddleware = () => {
3948
3831
  return ({
3949
3832
  experience,
3950
- variant,
3951
- variantIndex
3833
+ variant
3952
3834
  }) => {
3953
3835
  return {
3954
3836
  experience,
3955
- variant,
3956
- variantIndex
3837
+ variant
3957
3838
  };
3958
3839
  };
3959
3840
  };
@@ -3996,4 +3877,4 @@ const makeExperienceSelectMiddleware = ({
3996
3877
  };
3997
3878
  };
3998
3879
 
3999
- export { ANONYMOUS_ID, CONSENT, DEBUG_FLAG, EMPTY_MERGE_ID, ElementSeenPayloadSchema, HAS_SEEN_COMPONENT, HAS_SEEN_ELEMENT, LEGACY_ANONYMOUS_ID, Ninetailed, NinetailedPlugin, OnChangeEmitter, PAGE_HIDDEN, PLUGIN_NAME, PROFILE_CHANGE, PROFILE_FALLBACK_CACHE, PROFILE_RESET, SET_ENABLED_FEATURES, TrackComponentProperties, buildClientNinetailedRequestContext, decodeExperienceVariantsMap, makeExperienceSelectMiddleware, ninetailedPlugin, selectPluginsHavingExperienceSelectionMiddleware, selectPluginsHavingOnChangeEmitter, selectVariant };
3880
+ export { ANONYMOUS_ID, CONSENT, DEBUG_FLAG, EMPTY_MERGE_ID, HAS_SEEN_COMPONENT, HAS_SEEN_EXPERIENCE, LEGACY_ANONYMOUS_ID, Ninetailed, NinetailedPlugin, OnChangeEmitter, PLUGIN_NAME, PROFILE_CHANGE, PROFILE_FALLBACK_CACHE, PROFILE_RESET, SET_ENABLED_FEATURES, TrackComponentProperties, TrackExperienceProperties, decodeExperienceVariantsMap, makeExperienceSelectMiddleware, ninetailedPlugin, selectPluginsHavingExperienceSelectionMiddleware, selectPluginsHavingOnChangeEmitter, selectVariant };
@@ -1,7 +1,6 @@
1
1
  /// <reference types="analytics" />
2
2
  import { Locale, Traits, Profile, OnLogHandler, OnErrorHandler, Logger, PageviewProperties, Properties, NinetailedApiClient, NinetailedApiClientOptions } from '@ninetailed/experience.js-shared';
3
- import { EventFunctionOptions, NinetailedInstance, NinetailedPlugin, OnIsInitializedCallback, OnProfileChangeCallback, ProfileState, TrackHasSeenComponent, TrackHasSeenExperience, ElementSeenPayload } from './types';
4
- import { ObserveOptions } from './ElementSeenObserver';
3
+ import { EventFunctionOptions, NinetailedInstance, NinetailedPlugin, OnIsInitializedCallback, OnProfileChangeCallback, ProfileState, TrackHasSeenComponent, TrackHasSeenExperience } from './types';
5
4
  declare global {
6
5
  interface Window {
7
6
  ninetailed?: {
@@ -20,7 +19,6 @@ type Options = {
20
19
  requestTimeout?: number;
21
20
  onLog?: OnLogHandler;
22
21
  onError?: OnErrorHandler;
23
- componentViewTrackingThreshold?: number;
24
22
  };
25
23
  type NinetailedApiClientInstanceOrOptions = NinetailedApiClient | NinetailedApiClientOptions;
26
24
  export declare class Ninetailed implements NinetailedInstance {
@@ -29,29 +27,15 @@ export declare class Ninetailed implements NinetailedInstance {
29
27
  private isInitialized;
30
28
  private readonly apiClient;
31
29
  private readonly eventQueue;
32
- private readonly elementSeenObserver;
33
- private readonly observedElements;
34
30
  private readonly clientId;
35
31
  private readonly environment;
36
32
  readonly plugins: NinetailedPlugin[];
37
33
  readonly logger: Logger;
38
- private readonly componentViewTrackingThreshold;
39
- constructor(ninetailedApiClientInstanceOrOptions: NinetailedApiClientInstanceOrOptions, { plugins, url, profile, locale, requestTimeout, onLog, onError, componentViewTrackingThreshold, }?: Options);
34
+ constructor(ninetailedApiClientInstanceOrOptions: NinetailedApiClientInstanceOrOptions, { plugins, url, profile, locale, requestTimeout, onLog, onError, }?: Options);
40
35
  page: (data?: Partial<PageviewProperties>, options?: EventFunctionOptions) => Promise<import("./types").FlushResult>;
41
36
  track: (event: string, properties?: Properties, options?: EventFunctionOptions) => Promise<import("./types").FlushResult>;
42
- /**
43
- * @deprecated The legacy datamodel is not recommended anymore
44
- * Will be removed in version 5 of the SDK
45
- */
46
37
  trackHasSeenComponent: TrackHasSeenComponent;
47
- /**
48
- * @deprecated Use the Ninetailed provided observers instead
49
- * Will be removed in version 5 of the SDK
50
- */
51
38
  trackHasSeenExperience: TrackHasSeenExperience;
52
- observeElement: (payload: ElementSeenPayload, options?: ObserveOptions) => void;
53
- unobserveElement: (element: Element) => void;
54
- private onElementSeen;
55
39
  identify: (uid: string, traits?: Traits, options?: EventFunctionOptions) => Promise<import("./types").FlushResult>;
56
40
  reset: () => Promise<void>;
57
41
  debug: (enabled: boolean) => Promise<void>;
@@ -61,6 +45,5 @@ export declare class Ninetailed implements NinetailedInstance {
61
45
  get profileState(): ProfileState;
62
46
  private buildOptions;
63
47
  private registerWindowHandlers;
64
- private onVisibilityChange;
65
48
  }
66
49
  export {};