@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.cjs CHANGED
@@ -10,9 +10,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var Analytics__default = /*#__PURE__*/_interopDefaultLegacy(Analytics);
12
12
 
13
+ const HAS_SEEN_EXPERIENCE = 'has_seen_experience';
13
14
  const HAS_SEEN_COMPONENT = 'has_seen_component';
14
- const HAS_SEEN_ELEMENT = 'has_seen_element';
15
- const PAGE_HIDDEN = 'page_hidden';
16
15
 
17
16
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
18
17
 
@@ -610,9 +609,9 @@ var inspectSource$3 = store$1.inspectSource;
610
609
  var global$d = global$k;
611
610
  var isCallable$d = isCallable$k;
612
611
 
613
- var WeakMap$2 = global$d.WeakMap;
612
+ var WeakMap$1 = global$d.WeakMap;
614
613
 
615
- var weakMapBasicDetection = isCallable$d(WeakMap$2) && /native code/.test(String(WeakMap$2));
614
+ var weakMapBasicDetection = isCallable$d(WeakMap$1) && /native code/.test(String(WeakMap$1));
616
615
 
617
616
  var shared$1 = shared$3.exports;
618
617
  var uid = uid$2;
@@ -636,7 +635,7 @@ var hiddenKeys$3 = hiddenKeys$4;
636
635
 
637
636
  var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
638
637
  var TypeError$2 = global$c.TypeError;
639
- var WeakMap$1 = global$c.WeakMap;
638
+ var WeakMap = global$c.WeakMap;
640
639
  var set$1, get, has;
641
640
 
642
641
  var enforce = function (it) {
@@ -653,7 +652,7 @@ var getterFor = function (TYPE) {
653
652
  };
654
653
 
655
654
  if (NATIVE_WEAK_MAP || shared.state) {
656
- var store = shared.state || (shared.state = new WeakMap$1());
655
+ var store = shared.state || (shared.state = new WeakMap());
657
656
  /* eslint-disable no-self-assign -- prototype methods protection */
658
657
  store.get = store.get;
659
658
  store.has = store.has;
@@ -2525,18 +2524,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
2525
2524
  PERFORMANCE OF THIS SOFTWARE.
2526
2525
  ***************************************************************************** */
2527
2526
 
2528
- function __rest(s, e) {
2529
- var t = {};
2530
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
2531
- t[p] = s[p];
2532
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
2533
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
2534
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
2535
- t[p[i]] = s[p[i]];
2536
- }
2537
- return t;
2538
- }
2539
-
2540
2527
  function __awaiter(thisArg, _arguments, P, generator) {
2541
2528
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2542
2529
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -2855,115 +2842,6 @@ if (NOT_GENERIC || INCORRECT_NAME) {
2855
2842
  }, { unsafe: true });
2856
2843
  }
2857
2844
 
2858
- var classof = classofRaw$2;
2859
-
2860
- // `IsArray` abstract operation
2861
- // https://tc39.es/ecma262/#sec-isarray
2862
- // eslint-disable-next-line es/no-array-isarray -- safe
2863
- var isArray$2 = Array.isArray || function isArray(argument) {
2864
- return classof(argument) == 'Array';
2865
- };
2866
-
2867
- var $TypeError$1 = TypeError;
2868
- var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
2869
-
2870
- var doesNotExceedSafeInteger$1 = function (it) {
2871
- if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
2872
- return it;
2873
- };
2874
-
2875
- var isArray$1 = isArray$2;
2876
- var lengthOfArrayLike$2 = lengthOfArrayLike$5;
2877
- var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
2878
- var bind = functionBindContext;
2879
-
2880
- // `FlattenIntoArray` abstract operation
2881
- // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
2882
- var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
2883
- var targetIndex = start;
2884
- var sourceIndex = 0;
2885
- var mapFn = mapper ? bind(mapper, thisArg) : false;
2886
- var element, elementLen;
2887
-
2888
- while (sourceIndex < sourceLen) {
2889
- if (sourceIndex in source) {
2890
- element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
2891
-
2892
- if (depth > 0 && isArray$1(element)) {
2893
- elementLen = lengthOfArrayLike$2(element);
2894
- targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
2895
- } else {
2896
- doesNotExceedSafeInteger(targetIndex + 1);
2897
- target[targetIndex] = element;
2898
- }
2899
-
2900
- targetIndex++;
2901
- }
2902
- sourceIndex++;
2903
- }
2904
- return targetIndex;
2905
- };
2906
-
2907
- var flattenIntoArray_1 = flattenIntoArray$1;
2908
-
2909
- var isArray = isArray$2;
2910
- var isConstructor = isConstructor$2;
2911
- var isObject$1 = isObject$a;
2912
- var wellKnownSymbol$3 = wellKnownSymbol$h;
2913
-
2914
- var SPECIES = wellKnownSymbol$3('species');
2915
- var $Array = Array;
2916
-
2917
- // a part of `ArraySpeciesCreate` abstract operation
2918
- // https://tc39.es/ecma262/#sec-arrayspeciescreate
2919
- var arraySpeciesConstructor$1 = function (originalArray) {
2920
- var C;
2921
- if (isArray(originalArray)) {
2922
- C = originalArray.constructor;
2923
- // cross-realm fallback
2924
- if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
2925
- else if (isObject$1(C)) {
2926
- C = C[SPECIES];
2927
- if (C === null) C = undefined;
2928
- }
2929
- } return C === undefined ? $Array : C;
2930
- };
2931
-
2932
- var arraySpeciesConstructor = arraySpeciesConstructor$1;
2933
-
2934
- // `ArraySpeciesCreate` abstract operation
2935
- // https://tc39.es/ecma262/#sec-arrayspeciescreate
2936
- var arraySpeciesCreate$1 = function (originalArray, length) {
2937
- return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
2938
- };
2939
-
2940
- var $$3 = _export;
2941
- var flattenIntoArray = flattenIntoArray_1;
2942
- var toObject$2 = toObject$5;
2943
- var lengthOfArrayLike$1 = lengthOfArrayLike$5;
2944
- var toIntegerOrInfinity = toIntegerOrInfinity$3;
2945
- var arraySpeciesCreate = arraySpeciesCreate$1;
2946
-
2947
- // `Array.prototype.flat` method
2948
- // https://tc39.es/ecma262/#sec-array.prototype.flat
2949
- $$3({ target: 'Array', proto: true }, {
2950
- flat: function flat(/* depthArg = 1 */) {
2951
- var depthArg = arguments.length ? arguments[0] : undefined;
2952
- var O = toObject$2(this);
2953
- var sourceLen = lengthOfArrayLike$1(O);
2954
- var A = arraySpeciesCreate(O, 0);
2955
- A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
2956
- return A;
2957
- }
2958
- });
2959
-
2960
- // this method was added to unscopables after implementation
2961
- // in popular engines, so it's moved to a separate module
2962
- var addToUnscopables$1 = addToUnscopables$3;
2963
-
2964
- // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
2965
- addToUnscopables$1('flat');
2966
-
2967
2845
  var fails$3 = fails$h;
2968
2846
 
2969
2847
  var correctPrototypeGetter = !fails$3(function () {
@@ -2975,7 +2853,7 @@ var correctPrototypeGetter = !fails$3(function () {
2975
2853
 
2976
2854
  var hasOwn = hasOwnProperty_1;
2977
2855
  var isCallable$2 = isCallable$k;
2978
- var toObject$1 = toObject$5;
2856
+ var toObject$2 = toObject$5;
2979
2857
  var sharedKey = sharedKey$3;
2980
2858
  var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
2981
2859
 
@@ -2987,7 +2865,7 @@ var ObjectPrototype = $Object.prototype;
2987
2865
  // https://tc39.es/ecma262/#sec-object.getprototypeof
2988
2866
  // eslint-disable-next-line es/no-object-getprototypeof -- safe
2989
2867
  var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
2990
- var object = toObject$1(O);
2868
+ var object = toObject$2(O);
2991
2869
  if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
2992
2870
  var constructor = object.constructor;
2993
2871
  if (isCallable$2(constructor) && object instanceof constructor) {
@@ -2997,12 +2875,12 @@ var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : f
2997
2875
 
2998
2876
  var fails$2 = fails$h;
2999
2877
  var isCallable$1 = isCallable$k;
3000
- var isObject = isObject$a;
2878
+ var isObject$1 = isObject$a;
3001
2879
  var getPrototypeOf$1 = objectGetPrototypeOf;
3002
2880
  var defineBuiltIn$1 = defineBuiltIn$6;
3003
- var wellKnownSymbol$2 = wellKnownSymbol$h;
2881
+ var wellKnownSymbol$3 = wellKnownSymbol$h;
3004
2882
 
3005
- var ITERATOR$3 = wellKnownSymbol$2('iterator');
2883
+ var ITERATOR$3 = wellKnownSymbol$3('iterator');
3006
2884
  var BUGGY_SAFARI_ITERATORS$1 = false;
3007
2885
 
3008
2886
  // `%IteratorPrototype%` object
@@ -3020,7 +2898,7 @@ if ([].keys) {
3020
2898
  }
3021
2899
  }
3022
2900
 
3023
- var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype$2) || fails$2(function () {
2901
+ var NEW_ITERATOR_PROTOTYPE = !isObject$1(IteratorPrototype$2) || fails$2(function () {
3024
2902
  var test = {};
3025
2903
  // FF44- legacy iterators case
3026
2904
  return IteratorPrototype$2[ITERATOR$3].call(test) !== test;
@@ -3057,7 +2935,7 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
3057
2935
  return IteratorConstructor;
3058
2936
  };
3059
2937
 
3060
- var $$2 = _export;
2938
+ var $$3 = _export;
3061
2939
  var call = functionCall;
3062
2940
  var FunctionName = functionName;
3063
2941
  var isCallable = isCallable$k;
@@ -3067,7 +2945,7 @@ var setPrototypeOf = objectSetPrototypeOf;
3067
2945
  var setToStringTag = setToStringTag$3;
3068
2946
  var createNonEnumerableProperty$1 = createNonEnumerableProperty$4;
3069
2947
  var defineBuiltIn = defineBuiltIn$6;
3070
- var wellKnownSymbol$1 = wellKnownSymbol$h;
2948
+ var wellKnownSymbol$2 = wellKnownSymbol$h;
3071
2949
  var Iterators$1 = iterators;
3072
2950
  var IteratorsCore = iteratorsCore;
3073
2951
 
@@ -3075,7 +2953,7 @@ var PROPER_FUNCTION_NAME = FunctionName.PROPER;
3075
2953
  var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
3076
2954
  var IteratorPrototype = IteratorsCore.IteratorPrototype;
3077
2955
  var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
3078
- var ITERATOR$2 = wellKnownSymbol$1('iterator');
2956
+ var ITERATOR$2 = wellKnownSymbol$2('iterator');
3079
2957
  var KEYS = 'keys';
3080
2958
  var VALUES = 'values';
3081
2959
  var ENTRIES = 'entries';
@@ -3142,7 +3020,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
3142
3020
  if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
3143
3021
  defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
3144
3022
  }
3145
- } else $$2({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
3023
+ } else $$3({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
3146
3024
  }
3147
3025
 
3148
3026
  // define iterator
@@ -3161,7 +3039,7 @@ var createIterResultObject$1 = function (value, done) {
3161
3039
  };
3162
3040
 
3163
3041
  var toIndexedObject = toIndexedObject$5;
3164
- var addToUnscopables = addToUnscopables$3;
3042
+ var addToUnscopables$1 = addToUnscopables$3;
3165
3043
  var Iterators = iterators;
3166
3044
  var InternalStateModule = internalState;
3167
3045
  var defineProperty = objectDefineProperty.f;
@@ -3212,9 +3090,9 @@ var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind)
3212
3090
  var values = Iterators.Arguments = Iterators.Array;
3213
3091
 
3214
3092
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
3215
- addToUnscopables('keys');
3216
- addToUnscopables('values');
3217
- addToUnscopables('entries');
3093
+ addToUnscopables$1('keys');
3094
+ addToUnscopables$1('values');
3095
+ addToUnscopables$1('entries');
3218
3096
 
3219
3097
  // V8 ~ Chrome 45- bug
3220
3098
  if (DESCRIPTORS && values.name !== 'values') try {
@@ -3270,10 +3148,10 @@ var DOMIterables = domIterables;
3270
3148
  var DOMTokenListPrototype = domTokenListPrototype;
3271
3149
  var ArrayIteratorMethods = es_array_iterator;
3272
3150
  var createNonEnumerableProperty = createNonEnumerableProperty$4;
3273
- var wellKnownSymbol = wellKnownSymbol$h;
3151
+ var wellKnownSymbol$1 = wellKnownSymbol$h;
3274
3152
 
3275
- var ITERATOR$1 = wellKnownSymbol('iterator');
3276
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3153
+ var ITERATOR$1 = wellKnownSymbol$1('iterator');
3154
+ var TO_STRING_TAG = wellKnownSymbol$1('toStringTag');
3277
3155
  var ArrayValues = ArrayIteratorMethods.values;
3278
3156
 
3279
3157
  var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
@@ -3304,54 +3182,115 @@ for (var COLLECTION_NAME in DOMIterables) {
3304
3182
 
3305
3183
  handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
3306
3184
 
3307
- class ElementSeenObserver {
3308
- constructor(_options) {
3309
- this._options = _options;
3310
- this._elementDelays = new WeakMap();
3311
- this._intersectionTimers = new WeakMap();
3312
- if (typeof IntersectionObserver !== 'undefined') {
3313
- this._intersectionObserver = new IntersectionObserver(this.onIntersection.bind(this));
3314
- }
3315
- }
3316
- onIntersection(entries) {
3317
- entries.forEach(entry => {
3318
- const {
3319
- isIntersecting,
3320
- target
3321
- } = entry;
3322
- if (isIntersecting) {
3323
- const delay = this._elementDelays.get(target);
3324
- const timeOut = window.setTimeout(() => {
3325
- this._options.onElementSeen(target);
3326
- }, delay);
3327
- this._intersectionTimers.set(target, timeOut);
3185
+ var classof = classofRaw$2;
3186
+
3187
+ // `IsArray` abstract operation
3188
+ // https://tc39.es/ecma262/#sec-isarray
3189
+ // eslint-disable-next-line es/no-array-isarray -- safe
3190
+ var isArray$2 = Array.isArray || function isArray(argument) {
3191
+ return classof(argument) == 'Array';
3192
+ };
3193
+
3194
+ var $TypeError$1 = TypeError;
3195
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
3196
+
3197
+ var doesNotExceedSafeInteger$1 = function (it) {
3198
+ if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
3199
+ return it;
3200
+ };
3201
+
3202
+ var isArray$1 = isArray$2;
3203
+ var lengthOfArrayLike$2 = lengthOfArrayLike$5;
3204
+ var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
3205
+ var bind = functionBindContext;
3206
+
3207
+ // `FlattenIntoArray` abstract operation
3208
+ // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
3209
+ var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
3210
+ var targetIndex = start;
3211
+ var sourceIndex = 0;
3212
+ var mapFn = mapper ? bind(mapper, thisArg) : false;
3213
+ var element, elementLen;
3214
+
3215
+ while (sourceIndex < sourceLen) {
3216
+ if (sourceIndex in source) {
3217
+ element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
3218
+
3219
+ if (depth > 0 && isArray$1(element)) {
3220
+ elementLen = lengthOfArrayLike$2(element);
3221
+ targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
3328
3222
  } else {
3329
- const timeOut = this._intersectionTimers.get(target);
3330
- if (typeof timeOut !== 'undefined') {
3331
- window.clearTimeout(timeOut);
3332
- }
3223
+ doesNotExceedSafeInteger(targetIndex + 1);
3224
+ target[targetIndex] = element;
3333
3225
  }
3334
- });
3335
- }
3336
- observe(element, options) {
3337
- var _a, _b;
3338
- this._elementDelays.set(element, (_a = options === null || options === void 0 ? void 0 : options.delay) !== null && _a !== void 0 ? _a : 2000);
3339
- (_b = this._intersectionObserver) === null || _b === void 0 ? void 0 : _b.observe(element);
3340
- }
3341
- unobserve(element) {
3342
- var _a;
3343
- (_a = this._intersectionObserver) === null || _a === void 0 ? void 0 : _a.unobserve(element);
3226
+
3227
+ targetIndex++;
3228
+ }
3229
+ sourceIndex++;
3344
3230
  }
3345
- }
3231
+ return targetIndex;
3232
+ };
3233
+
3234
+ var flattenIntoArray_1 = flattenIntoArray$1;
3346
3235
 
3347
- const acceptsCredentials = plugin => {
3348
- return typeof plugin === 'object' && plugin !== null && 'setCredentials' in plugin && typeof plugin.setCredentials === 'function';
3236
+ var isArray = isArray$2;
3237
+ var isConstructor = isConstructor$2;
3238
+ var isObject = isObject$a;
3239
+ var wellKnownSymbol = wellKnownSymbol$h;
3240
+
3241
+ var SPECIES = wellKnownSymbol('species');
3242
+ var $Array = Array;
3243
+
3244
+ // a part of `ArraySpeciesCreate` abstract operation
3245
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
3246
+ var arraySpeciesConstructor$1 = function (originalArray) {
3247
+ var C;
3248
+ if (isArray(originalArray)) {
3249
+ C = originalArray.constructor;
3250
+ // cross-realm fallback
3251
+ if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
3252
+ else if (isObject(C)) {
3253
+ C = C[SPECIES];
3254
+ if (C === null) C = undefined;
3255
+ }
3256
+ } return C === undefined ? $Array : C;
3349
3257
  };
3350
3258
 
3351
- const isInterestedInHiddenPage = arg => {
3352
- return typeof arg === 'object' && arg !== null && PAGE_HIDDEN in arg && typeof arg[PAGE_HIDDEN] === 'function';
3259
+ var arraySpeciesConstructor = arraySpeciesConstructor$1;
3260
+
3261
+ // `ArraySpeciesCreate` abstract operation
3262
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
3263
+ var arraySpeciesCreate$1 = function (originalArray, length) {
3264
+ return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
3353
3265
  };
3354
3266
 
3267
+ var $$2 = _export;
3268
+ var flattenIntoArray = flattenIntoArray_1;
3269
+ var toObject$1 = toObject$5;
3270
+ var lengthOfArrayLike$1 = lengthOfArrayLike$5;
3271
+ var toIntegerOrInfinity = toIntegerOrInfinity$3;
3272
+ var arraySpeciesCreate = arraySpeciesCreate$1;
3273
+
3274
+ // `Array.prototype.flat` method
3275
+ // https://tc39.es/ecma262/#sec-array.prototype.flat
3276
+ $$2({ target: 'Array', proto: true }, {
3277
+ flat: function flat(/* depthArg = 1 */) {
3278
+ var depthArg = arguments.length ? arguments[0] : undefined;
3279
+ var O = toObject$1(this);
3280
+ var sourceLen = lengthOfArrayLike$1(O);
3281
+ var A = arraySpeciesCreate(O, 0);
3282
+ A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
3283
+ return A;
3284
+ }
3285
+ });
3286
+
3287
+ // this method was added to unscopables after implementation
3288
+ // in popular engines, so it's moved to a separate module
3289
+ var addToUnscopables = addToUnscopables$3;
3290
+
3291
+ // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
3292
+ addToUnscopables('flat');
3293
+
3355
3294
  class Ninetailed {
3356
3295
  constructor(ninetailedApiClientInstanceOrOptions, {
3357
3296
  plugins,
@@ -3360,8 +3299,7 @@ class Ninetailed {
3360
3299
  locale,
3361
3300
  requestTimeout,
3362
3301
  onLog,
3363
- onError,
3364
- componentViewTrackingThreshold = 2000
3302
+ onError
3365
3303
  } = {}) {
3366
3304
  this.isInitialized = false;
3367
3305
  this.page = (data, options) => __awaiter(this, void 0, void 0, function* () {
@@ -3398,48 +3336,16 @@ class Ninetailed {
3398
3336
  throw error;
3399
3337
  }
3400
3338
  });
3401
- /**
3402
- * @deprecated The legacy datamodel is not recommended anymore
3403
- * Will be removed in version 5 of the SDK
3404
- */
3405
3339
  this.trackHasSeenComponent = properties => __awaiter(this, void 0, void 0, function* () {
3406
3340
  return this.instance.dispatch(Object.assign(Object.assign({}, properties), {
3407
3341
  type: HAS_SEEN_COMPONENT
3408
3342
  }));
3409
3343
  });
3410
- /**
3411
- * @deprecated Use the Ninetailed provided observers instead
3412
- * Will be removed in version 5 of the SDK
3413
- */
3414
3344
  this.trackHasSeenExperience = properties => {
3415
3345
  return this.instance.dispatch(Object.assign(Object.assign({}, properties), {
3416
- type: HAS_SEEN_ELEMENT
3346
+ type: HAS_SEEN_EXPERIENCE
3417
3347
  }));
3418
3348
  };
3419
- this.observeElement = (payload, options) => {
3420
- const {
3421
- element
3422
- } = payload,
3423
- remaingPayload = __rest(payload, ["element"]);
3424
- this.observedElements.set(element, remaingPayload);
3425
- this.elementSeenObserver.observe(element, Object.assign({
3426
- delay: this.componentViewTrackingThreshold
3427
- }, options));
3428
- };
3429
- this.unobserveElement = element => {
3430
- this.observedElements.delete(element);
3431
- this.elementSeenObserver.unobserve(element);
3432
- };
3433
- this.onElementSeen = element => {
3434
- const payload = this.observedElements.get(element);
3435
- if (typeof payload !== 'undefined') {
3436
- this.instance.dispatch(Object.assign(Object.assign({
3437
- element
3438
- }, payload), {
3439
- type: HAS_SEEN_ELEMENT
3440
- }));
3441
- }
3442
- };
3443
3349
  this.identify = (uid, traits, options) => __awaiter(this, void 0, void 0, function* () {
3444
3350
  try {
3445
3351
  const result = experience_jsShared.Traits.default({}).safeParse(traits);
@@ -3507,18 +3413,6 @@ class Ninetailed {
3507
3413
  this.onIsInitialized(resolve);
3508
3414
  });
3509
3415
  };
3510
- this.onVisibilityChange = () => {
3511
- if (typeof document === 'undefined') {
3512
- return;
3513
- }
3514
- document.addEventListener('visibilitychange', () => {
3515
- if (document.visibilityState === 'hidden') {
3516
- this.instance.dispatch({
3517
- type: PAGE_HIDDEN
3518
- });
3519
- }
3520
- });
3521
- };
3522
3416
  if (ninetailedApiClientInstanceOrOptions instanceof experience_jsShared.NinetailedApiClient) {
3523
3417
  this.apiClient = ninetailedApiClientInstanceOrOptions;
3524
3418
  } else {
@@ -3536,15 +3430,15 @@ class Ninetailed {
3536
3430
  preview
3537
3431
  });
3538
3432
  }
3539
- this.plugins = (plugins !== null && plugins !== void 0 ? plugins : []).flat();
3540
- this.plugins.forEach(plugin => {
3541
- if (acceptsCredentials(plugin) && this.clientId && this.environment) {
3542
- plugin.setCredentials({
3433
+ this.plugins = [...(plugins || []).map(plugin => {
3434
+ if ('setCredentials' in plugin && typeof plugin['setCredentials'] === 'function') {
3435
+ plugin['setCredentials']({
3543
3436
  clientId: this.clientId,
3544
3437
  environment: this.environment
3545
3438
  });
3546
3439
  }
3547
- });
3440
+ return plugin;
3441
+ }).flat()];
3548
3442
  if (profile) {
3549
3443
  this._profileState = {
3550
3444
  status: 'success',
@@ -3592,15 +3486,6 @@ class Ninetailed {
3592
3486
  });
3593
3487
  }
3594
3488
  });
3595
- this.observedElements = new WeakMap();
3596
- this.elementSeenObserver = new ElementSeenObserver({
3597
- onElementSeen: this.onElementSeen.bind(this)
3598
- });
3599
- this.componentViewTrackingThreshold = componentViewTrackingThreshold;
3600
- const hasPluginsInterestedInHiddenPage = this.plugins.some(isInterestedInHiddenPage);
3601
- if (hasPluginsInterestedInHiddenPage) {
3602
- this.onVisibilityChange();
3603
- }
3604
3489
  this.registerWindowHandlers();
3605
3490
  }
3606
3491
  get profileState() {
@@ -3713,41 +3598,39 @@ const selectVariant = (baseline, variants, {
3713
3598
  };
3714
3599
  };
3715
3600
 
3716
- const TrackComponentProperties = zod.z.object({
3717
- variant: zod.z.object({
3718
- id: zod.z.string()
3719
- }),
3720
- audience: zod.z.object({
3721
- id: zod.z.string()
3722
- }),
3723
- isPersonalized: zod.z.boolean()
3724
- });
3725
-
3726
- class NinetailedPlugin {}
3727
-
3728
- const ElementSeenPayloadSchema = zod.z.object({
3729
- element: zod.z.any(),
3601
+ const TrackExperienceProperties = zod.z.object({
3730
3602
  experience: zod.z.object({
3731
3603
  id: zod.z.string(),
3732
3604
  type: zod.z.union([zod.z.literal('nt_experiment'), zod.z.literal('nt_personalization')]),
3733
- name: zod.z.string().optional(),
3605
+ name: zod.z.string(),
3734
3606
  description: zod.z.string().optional()
3735
- }).optional().nullable(),
3607
+ }),
3736
3608
  audience: zod.z.object({
3737
3609
  id: zod.z.string(),
3738
3610
  name: zod.z.string().optional(),
3739
3611
  description: zod.z.string().optional()
3740
- }).optional().nullable().default({
3612
+ }).optional().default({
3741
3613
  id: 'ALL_VISITORS',
3742
3614
  name: 'All Visitors',
3743
3615
  description: 'This is the default all visitors audience as no audience was set.'
3744
3616
  }),
3745
- variant: zod.z.object({
3617
+ selectedVariant: zod.z.object({
3746
3618
  id: zod.z.string()
3747
3619
  }).catchall(zod.z.unknown()),
3748
- variantIndex: zod.z.number()
3620
+ selectedVariantIndex: zod.z.number()
3621
+ });
3622
+ const TrackComponentProperties = zod.z.object({
3623
+ variant: zod.z.object({
3624
+ id: zod.z.string()
3625
+ }),
3626
+ audience: zod.z.object({
3627
+ id: zod.z.string()
3628
+ }),
3629
+ isPersonalized: zod.z.boolean()
3749
3630
  });
3750
3631
 
3632
+ class NinetailedPlugin {}
3633
+
3751
3634
  var aCallable = aCallable$8;
3752
3635
  var toObject = toObject$5;
3753
3636
  var IndexedObject = indexedObject;
@@ -3954,13 +3837,11 @@ const selectPluginsHavingExperienceSelectionMiddleware = plugins => {
3954
3837
  const createPassThroughMiddleware = () => {
3955
3838
  return ({
3956
3839
  experience,
3957
- variant,
3958
- variantIndex
3840
+ variant
3959
3841
  }) => {
3960
3842
  return {
3961
3843
  experience,
3962
- variant,
3963
- variantIndex
3844
+ variant
3964
3845
  };
3965
3846
  };
3966
3847
  };
@@ -4047,21 +3928,19 @@ exports.ANONYMOUS_ID = ANONYMOUS_ID;
4047
3928
  exports.CONSENT = CONSENT;
4048
3929
  exports.DEBUG_FLAG = DEBUG_FLAG;
4049
3930
  exports.EMPTY_MERGE_ID = EMPTY_MERGE_ID;
4050
- exports.ElementSeenPayloadSchema = ElementSeenPayloadSchema;
4051
3931
  exports.HAS_SEEN_COMPONENT = HAS_SEEN_COMPONENT;
4052
- exports.HAS_SEEN_ELEMENT = HAS_SEEN_ELEMENT;
3932
+ exports.HAS_SEEN_EXPERIENCE = HAS_SEEN_EXPERIENCE;
4053
3933
  exports.LEGACY_ANONYMOUS_ID = LEGACY_ANONYMOUS_ID;
4054
3934
  exports.Ninetailed = Ninetailed;
4055
3935
  exports.NinetailedPlugin = NinetailedPlugin;
4056
3936
  exports.OnChangeEmitter = OnChangeEmitter;
4057
- exports.PAGE_HIDDEN = PAGE_HIDDEN;
4058
3937
  exports.PLUGIN_NAME = PLUGIN_NAME;
4059
3938
  exports.PROFILE_CHANGE = PROFILE_CHANGE;
4060
3939
  exports.PROFILE_FALLBACK_CACHE = PROFILE_FALLBACK_CACHE;
4061
3940
  exports.PROFILE_RESET = PROFILE_RESET;
4062
3941
  exports.SET_ENABLED_FEATURES = SET_ENABLED_FEATURES;
4063
3942
  exports.TrackComponentProperties = TrackComponentProperties;
4064
- exports.buildClientNinetailedRequestContext = buildClientNinetailedRequestContext;
3943
+ exports.TrackExperienceProperties = TrackExperienceProperties;
4065
3944
  exports.decodeExperienceVariantsMap = decodeExperienceVariantsMap;
4066
3945
  exports.makeExperienceSelectMiddleware = makeExperienceSelectMiddleware;
4067
3946
  exports.ninetailedPlugin = ninetailedPlugin;
package/index.d.ts CHANGED
@@ -7,9 +7,5 @@ export * from './lib/experience';
7
7
  export * from './lib/plugins/selectPluginsHavingExperienceSelectionMiddleware';
8
8
  export * from './lib/plugins/selectPluginsHavingOnChangeEmitter';
9
9
  export * from './lib/types/interfaces/HasExperienceSelectionMiddleware';
10
- export * from './lib/types/interfaces/InterestedInSeenElements';
11
- export * from './lib/types/interfaces/InterestedInProfileChange';
12
- export * from './lib/types/interfaces/InterestedInHiddenPage';
13
- export * from './lib/types/interfaces/AcceptsCredentials';
14
10
  export * from './lib/utils/OnChangeEmitter';
15
11
  export type { Profile } from '@ninetailed/experience.js-shared';