@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 +151 -272
- package/index.d.ts +0 -4
- package/index.js +150 -269
- package/lib/Ninetailed.d.ts +2 -19
- package/lib/analytics/index.d.ts +0 -1
- package/lib/constants.d.ts +1 -2
- package/lib/experience/makeExperienceSelectMiddleware.d.ts +2 -3
- package/lib/types/TrackingProperties.d.ts +83 -4
- package/lib/types/index.d.ts +4 -13
- package/lib/types/interfaces/HasExperienceSelectionMiddleware.d.ts +1 -2
- package/package.json +2 -2
- package/lib/ElementSeenObserver.d.ts +0 -16
- package/lib/guards/acceptsCredentials.d.ts +0 -2
- package/lib/guards/isInterestedInHiddenPage.d.ts +0 -2
- package/lib/guards/isInterestedInSeenElements.d.ts +0 -2
- package/lib/types/Credentials.d.ts +0 -4
- package/lib/types/ElementSeenPayload.d.ts +0 -82
- package/lib/types/ProfileChangedPayload.d.ts +0 -4
- package/lib/types/interfaces/AcceptsCredentials.d.ts +0 -4
- package/lib/types/interfaces/InterestedInHiddenPage.d.ts +0 -5
- package/lib/types/interfaces/InterestedInProfileChange.d.ts +0 -6
- package/lib/types/interfaces/InterestedInSeenElements.d.ts +0 -6
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$
|
|
605
|
+
var WeakMap$1 = global$d.WeakMap;
|
|
607
606
|
|
|
608
|
-
var weakMapBasicDetection = isCallable$d(WeakMap$
|
|
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
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
2874
|
+
var wellKnownSymbol$3 = wellKnownSymbol$h;
|
|
2997
2875
|
|
|
2998
|
-
var ITERATOR$3 = wellKnownSymbol$
|
|
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 $$
|
|
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$
|
|
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$
|
|
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 $$
|
|
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
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
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
|
-
|
|
3323
|
-
|
|
3324
|
-
window.clearTimeout(timeOut);
|
|
3325
|
-
}
|
|
3216
|
+
doesNotExceedSafeInteger(targetIndex + 1);
|
|
3217
|
+
target[targetIndex] = element;
|
|
3326
3218
|
}
|
|
3327
|
-
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
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
|
-
|
|
3341
|
-
|
|
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
|
-
|
|
3345
|
-
|
|
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:
|
|
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
|
|
3533
|
-
|
|
3534
|
-
|
|
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
|
|
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()
|
|
3598
|
+
name: z.string(),
|
|
3727
3599
|
description: z.string().optional()
|
|
3728
|
-
})
|
|
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().
|
|
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
|
-
|
|
3610
|
+
selectedVariant: z.object({
|
|
3739
3611
|
id: z.string()
|
|
3740
3612
|
}).catchall(z.unknown()),
|
|
3741
|
-
|
|
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,
|
|
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 };
|
package/lib/Ninetailed.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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 {};
|