@ninetailed/experience.js 4.3.0-beta.3 → 5.0.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 +159 -264
- package/index.d.ts +0 -4
- package/index.js +158 -261
- package/lib/Ninetailed.d.ts +3 -11
- package/lib/analytics/constants.d.ts +1 -0
- package/lib/analytics/index.d.ts +0 -1
- package/lib/constants.d.ts +0 -2
- package/lib/experience/index.d.ts +1 -1
- package/lib/types/TrackingProperties.d.ts +21 -21
- package/lib/types/index.d.ts +4 -9
- 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 -7
- 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.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';
|
package/index.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { FEATURES, logger, ConsoleLogSink, buildPageEvent, buildTrackEvent, buildIdentifyEvent, unionBy, NinetailedApiClient, OnLogLogSink, OnErrorLogSink, PageviewProperties, Properties, Traits, pipe } from '@ninetailed/experience.js-shared';
|
|
2
|
-
export { EXPERIENCE_TRAIT_PREFIX, isExperienceMatch, selectActiveExperiments, selectDistribution, selectEligibleExperiences, selectExperience, selectBaselineWithVariants as selectExperienceBaselineWithVariants,
|
|
2
|
+
export { EXPERIENCE_TRAIT_PREFIX, isExperienceMatch, selectActiveExperiments, selectDistribution, selectEligibleExperiences, selectExperience, selectBaselineWithVariants as selectExperienceBaselineWithVariants, selectVariantClientSide as selectExperienceVariantClientSide, selectVariants as selectExperienceVariants, selectHasVariants as selectHasExperienceVariants } from '@ninetailed/experience.js-shared';
|
|
3
3
|
import Analytics from 'analytics';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
6
6
|
const HAS_SEEN_EXPERIENCE = 'has_seen_experience';
|
|
7
7
|
const HAS_SEEN_COMPONENT = 'has_seen_component';
|
|
8
|
-
const HAS_SEEN_ELEMENT = 'has_seen_element';
|
|
9
|
-
const PAGE_HIDDEN = 'page_hidden';
|
|
10
8
|
|
|
11
9
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
12
10
|
|
|
@@ -604,9 +602,9 @@ var inspectSource$3 = store$1.inspectSource;
|
|
|
604
602
|
var global$d = global$k;
|
|
605
603
|
var isCallable$d = isCallable$k;
|
|
606
604
|
|
|
607
|
-
var WeakMap$
|
|
605
|
+
var WeakMap$1 = global$d.WeakMap;
|
|
608
606
|
|
|
609
|
-
var weakMapBasicDetection = isCallable$d(WeakMap$
|
|
607
|
+
var weakMapBasicDetection = isCallable$d(WeakMap$1) && /native code/.test(String(WeakMap$1));
|
|
610
608
|
|
|
611
609
|
var shared$1 = shared$3.exports;
|
|
612
610
|
var uid = uid$2;
|
|
@@ -630,7 +628,7 @@ var hiddenKeys$3 = hiddenKeys$4;
|
|
|
630
628
|
|
|
631
629
|
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
|
|
632
630
|
var TypeError$2 = global$c.TypeError;
|
|
633
|
-
var WeakMap
|
|
631
|
+
var WeakMap = global$c.WeakMap;
|
|
634
632
|
var set$1, get, has;
|
|
635
633
|
|
|
636
634
|
var enforce = function (it) {
|
|
@@ -647,7 +645,7 @@ var getterFor = function (TYPE) {
|
|
|
647
645
|
};
|
|
648
646
|
|
|
649
647
|
if (NATIVE_WEAK_MAP || shared.state) {
|
|
650
|
-
var store = shared.state || (shared.state = new WeakMap
|
|
648
|
+
var store = shared.state || (shared.state = new WeakMap());
|
|
651
649
|
/* eslint-disable no-self-assign -- prototype methods protection */
|
|
652
650
|
store.get = store.get;
|
|
653
651
|
store.has = store.has;
|
|
@@ -2519,18 +2517,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
|
2519
2517
|
PERFORMANCE OF THIS SOFTWARE.
|
|
2520
2518
|
***************************************************************************** */
|
|
2521
2519
|
|
|
2522
|
-
function __rest(s, e) {
|
|
2523
|
-
var t = {};
|
|
2524
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
2525
|
-
t[p] = s[p];
|
|
2526
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
2527
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
2528
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
2529
|
-
t[p[i]] = s[p[i]];
|
|
2530
|
-
}
|
|
2531
|
-
return t;
|
|
2532
|
-
}
|
|
2533
|
-
|
|
2534
2520
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
2535
2521
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
2536
2522
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -2586,6 +2572,7 @@ const LEGACY_ANONYMOUS_ID = '__anon_id';
|
|
|
2586
2572
|
const ANONYMOUS_ID = '__nt_anonymous_id__';
|
|
2587
2573
|
const DEBUG_FLAG = '__nt_debug__';
|
|
2588
2574
|
const PROFILE_FALLBACK_CACHE = '__nt_profile__';
|
|
2575
|
+
const EXPERIENCES_FALLBACK_CACHE = '__nt_experiences__';
|
|
2589
2576
|
const PROFILE_CHANGE = 'profile-change';
|
|
2590
2577
|
const PROFILE_RESET = 'profile-reset';
|
|
2591
2578
|
const CONSENT = '__nt-consent__';
|
|
@@ -2614,7 +2601,10 @@ const ninetailedPlugin = ({
|
|
|
2614
2601
|
}
|
|
2615
2602
|
try {
|
|
2616
2603
|
const anonymousId = _instance.storage.getItem(ANONYMOUS_ID);
|
|
2617
|
-
const
|
|
2604
|
+
const {
|
|
2605
|
+
profile,
|
|
2606
|
+
experiences
|
|
2607
|
+
} = yield apiClient.upsertProfile({
|
|
2618
2608
|
profileId: anonymousId,
|
|
2619
2609
|
events
|
|
2620
2610
|
}, {
|
|
@@ -2623,10 +2613,13 @@ const ninetailedPlugin = ({
|
|
|
2623
2613
|
});
|
|
2624
2614
|
_instance.storage.setItem(ANONYMOUS_ID, profile.id);
|
|
2625
2615
|
_instance.storage.setItem(PROFILE_FALLBACK_CACHE, profile);
|
|
2616
|
+
_instance.storage.setItem(EXPERIENCES_FALLBACK_CACHE, experiences);
|
|
2626
2617
|
logger.debug('Profile from api: ', profile);
|
|
2618
|
+
logger.debug('Experiences from api: ', experiences);
|
|
2627
2619
|
_instance.dispatch({
|
|
2628
2620
|
type: PROFILE_CHANGE,
|
|
2629
|
-
profile
|
|
2621
|
+
profile,
|
|
2622
|
+
experiences
|
|
2630
2623
|
});
|
|
2631
2624
|
yield delay(20);
|
|
2632
2625
|
return {
|
|
@@ -2635,27 +2628,27 @@ const ninetailedPlugin = ({
|
|
|
2635
2628
|
} catch (error) {
|
|
2636
2629
|
logger.debug('An error occurred during flushing the events: ', error);
|
|
2637
2630
|
const fallbackProfile = _instance.storage.getItem(PROFILE_FALLBACK_CACHE);
|
|
2631
|
+
const fallbackExperiences = _instance.storage.getItem(EXPERIENCES_FALLBACK_CACHE) || [];
|
|
2638
2632
|
if (fallbackProfile) {
|
|
2639
2633
|
logger.debug('Found a fallback profile - will use this.');
|
|
2640
2634
|
_instance.dispatch({
|
|
2641
2635
|
type: PROFILE_CHANGE,
|
|
2642
|
-
profile: fallbackProfile
|
|
2636
|
+
profile: fallbackProfile,
|
|
2637
|
+
experiences: fallbackExperiences
|
|
2643
2638
|
});
|
|
2644
|
-
return {
|
|
2645
|
-
success: false
|
|
2646
|
-
};
|
|
2647
2639
|
} else {
|
|
2648
2640
|
logger.debug('No fallback profile found - setting profile to null.');
|
|
2649
2641
|
_instance.dispatch({
|
|
2650
2642
|
type: PROFILE_CHANGE,
|
|
2651
2643
|
// TODO is it a good idea to set the profile to null?
|
|
2652
2644
|
profile: null,
|
|
2645
|
+
experiences: fallbackExperiences,
|
|
2653
2646
|
error
|
|
2654
2647
|
});
|
|
2655
|
-
return {
|
|
2656
|
-
success: false
|
|
2657
|
-
};
|
|
2658
2648
|
}
|
|
2649
|
+
return {
|
|
2650
|
+
success: false
|
|
2651
|
+
};
|
|
2659
2652
|
}
|
|
2660
2653
|
});
|
|
2661
2654
|
const enqueueEvent = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -2754,7 +2747,7 @@ const ninetailedPlugin = ({
|
|
|
2754
2747
|
abort,
|
|
2755
2748
|
payload
|
|
2756
2749
|
}) => {
|
|
2757
|
-
if (![ANONYMOUS_ID, DEBUG_FLAG, PROFILE_FALLBACK_CACHE, CONSENT].includes(payload.key)) {
|
|
2750
|
+
if (![ANONYMOUS_ID, DEBUG_FLAG, PROFILE_FALLBACK_CACHE, EXPERIENCES_FALLBACK_CACHE, CONSENT].includes(payload.key)) {
|
|
2758
2751
|
return abort();
|
|
2759
2752
|
}
|
|
2760
2753
|
return payload;
|
|
@@ -2769,6 +2762,7 @@ const ninetailedPlugin = ({
|
|
|
2769
2762
|
});
|
|
2770
2763
|
instance.storage.removeItem(ANONYMOUS_ID);
|
|
2771
2764
|
instance.storage.removeItem(PROFILE_FALLBACK_CACHE);
|
|
2765
|
+
instance.storage.removeItem(EXPERIENCES_FALLBACK_CACHE);
|
|
2772
2766
|
logger.debug('Removed old profile data from localstorage.');
|
|
2773
2767
|
yield ninetailed.track('nt_reset');
|
|
2774
2768
|
logger.info('Profile reset successful.');
|
|
@@ -2849,115 +2843,6 @@ if (NOT_GENERIC || INCORRECT_NAME) {
|
|
|
2849
2843
|
}, { unsafe: true });
|
|
2850
2844
|
}
|
|
2851
2845
|
|
|
2852
|
-
var classof = classofRaw$2;
|
|
2853
|
-
|
|
2854
|
-
// `IsArray` abstract operation
|
|
2855
|
-
// https://tc39.es/ecma262/#sec-isarray
|
|
2856
|
-
// eslint-disable-next-line es/no-array-isarray -- safe
|
|
2857
|
-
var isArray$2 = Array.isArray || function isArray(argument) {
|
|
2858
|
-
return classof(argument) == 'Array';
|
|
2859
|
-
};
|
|
2860
|
-
|
|
2861
|
-
var $TypeError$1 = TypeError;
|
|
2862
|
-
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
|
|
2863
|
-
|
|
2864
|
-
var doesNotExceedSafeInteger$1 = function (it) {
|
|
2865
|
-
if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
|
|
2866
|
-
return it;
|
|
2867
|
-
};
|
|
2868
|
-
|
|
2869
|
-
var isArray$1 = isArray$2;
|
|
2870
|
-
var lengthOfArrayLike$2 = lengthOfArrayLike$5;
|
|
2871
|
-
var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
|
|
2872
|
-
var bind = functionBindContext;
|
|
2873
|
-
|
|
2874
|
-
// `FlattenIntoArray` abstract operation
|
|
2875
|
-
// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
|
|
2876
|
-
var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
|
|
2877
|
-
var targetIndex = start;
|
|
2878
|
-
var sourceIndex = 0;
|
|
2879
|
-
var mapFn = mapper ? bind(mapper, thisArg) : false;
|
|
2880
|
-
var element, elementLen;
|
|
2881
|
-
|
|
2882
|
-
while (sourceIndex < sourceLen) {
|
|
2883
|
-
if (sourceIndex in source) {
|
|
2884
|
-
element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
|
|
2885
|
-
|
|
2886
|
-
if (depth > 0 && isArray$1(element)) {
|
|
2887
|
-
elementLen = lengthOfArrayLike$2(element);
|
|
2888
|
-
targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
|
|
2889
|
-
} else {
|
|
2890
|
-
doesNotExceedSafeInteger(targetIndex + 1);
|
|
2891
|
-
target[targetIndex] = element;
|
|
2892
|
-
}
|
|
2893
|
-
|
|
2894
|
-
targetIndex++;
|
|
2895
|
-
}
|
|
2896
|
-
sourceIndex++;
|
|
2897
|
-
}
|
|
2898
|
-
return targetIndex;
|
|
2899
|
-
};
|
|
2900
|
-
|
|
2901
|
-
var flattenIntoArray_1 = flattenIntoArray$1;
|
|
2902
|
-
|
|
2903
|
-
var isArray = isArray$2;
|
|
2904
|
-
var isConstructor = isConstructor$2;
|
|
2905
|
-
var isObject$1 = isObject$a;
|
|
2906
|
-
var wellKnownSymbol$3 = wellKnownSymbol$h;
|
|
2907
|
-
|
|
2908
|
-
var SPECIES = wellKnownSymbol$3('species');
|
|
2909
|
-
var $Array = Array;
|
|
2910
|
-
|
|
2911
|
-
// a part of `ArraySpeciesCreate` abstract operation
|
|
2912
|
-
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
2913
|
-
var arraySpeciesConstructor$1 = function (originalArray) {
|
|
2914
|
-
var C;
|
|
2915
|
-
if (isArray(originalArray)) {
|
|
2916
|
-
C = originalArray.constructor;
|
|
2917
|
-
// cross-realm fallback
|
|
2918
|
-
if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
|
|
2919
|
-
else if (isObject$1(C)) {
|
|
2920
|
-
C = C[SPECIES];
|
|
2921
|
-
if (C === null) C = undefined;
|
|
2922
|
-
}
|
|
2923
|
-
} return C === undefined ? $Array : C;
|
|
2924
|
-
};
|
|
2925
|
-
|
|
2926
|
-
var arraySpeciesConstructor = arraySpeciesConstructor$1;
|
|
2927
|
-
|
|
2928
|
-
// `ArraySpeciesCreate` abstract operation
|
|
2929
|
-
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
2930
|
-
var arraySpeciesCreate$1 = function (originalArray, length) {
|
|
2931
|
-
return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
|
|
2932
|
-
};
|
|
2933
|
-
|
|
2934
|
-
var $$3 = _export;
|
|
2935
|
-
var flattenIntoArray = flattenIntoArray_1;
|
|
2936
|
-
var toObject$2 = toObject$5;
|
|
2937
|
-
var lengthOfArrayLike$1 = lengthOfArrayLike$5;
|
|
2938
|
-
var toIntegerOrInfinity = toIntegerOrInfinity$3;
|
|
2939
|
-
var arraySpeciesCreate = arraySpeciesCreate$1;
|
|
2940
|
-
|
|
2941
|
-
// `Array.prototype.flat` method
|
|
2942
|
-
// https://tc39.es/ecma262/#sec-array.prototype.flat
|
|
2943
|
-
$$3({ target: 'Array', proto: true }, {
|
|
2944
|
-
flat: function flat(/* depthArg = 1 */) {
|
|
2945
|
-
var depthArg = arguments.length ? arguments[0] : undefined;
|
|
2946
|
-
var O = toObject$2(this);
|
|
2947
|
-
var sourceLen = lengthOfArrayLike$1(O);
|
|
2948
|
-
var A = arraySpeciesCreate(O, 0);
|
|
2949
|
-
A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
|
|
2950
|
-
return A;
|
|
2951
|
-
}
|
|
2952
|
-
});
|
|
2953
|
-
|
|
2954
|
-
// this method was added to unscopables after implementation
|
|
2955
|
-
// in popular engines, so it's moved to a separate module
|
|
2956
|
-
var addToUnscopables$1 = addToUnscopables$3;
|
|
2957
|
-
|
|
2958
|
-
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
|
|
2959
|
-
addToUnscopables$1('flat');
|
|
2960
|
-
|
|
2961
2846
|
var fails$3 = fails$h;
|
|
2962
2847
|
|
|
2963
2848
|
var correctPrototypeGetter = !fails$3(function () {
|
|
@@ -2969,7 +2854,7 @@ var correctPrototypeGetter = !fails$3(function () {
|
|
|
2969
2854
|
|
|
2970
2855
|
var hasOwn = hasOwnProperty_1;
|
|
2971
2856
|
var isCallable$2 = isCallable$k;
|
|
2972
|
-
var toObject$
|
|
2857
|
+
var toObject$2 = toObject$5;
|
|
2973
2858
|
var sharedKey = sharedKey$3;
|
|
2974
2859
|
var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
|
|
2975
2860
|
|
|
@@ -2981,7 +2866,7 @@ var ObjectPrototype = $Object.prototype;
|
|
|
2981
2866
|
// https://tc39.es/ecma262/#sec-object.getprototypeof
|
|
2982
2867
|
// eslint-disable-next-line es/no-object-getprototypeof -- safe
|
|
2983
2868
|
var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
|
|
2984
|
-
var object = toObject$
|
|
2869
|
+
var object = toObject$2(O);
|
|
2985
2870
|
if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
|
|
2986
2871
|
var constructor = object.constructor;
|
|
2987
2872
|
if (isCallable$2(constructor) && object instanceof constructor) {
|
|
@@ -2991,12 +2876,12 @@ var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : f
|
|
|
2991
2876
|
|
|
2992
2877
|
var fails$2 = fails$h;
|
|
2993
2878
|
var isCallable$1 = isCallable$k;
|
|
2994
|
-
var isObject = isObject$a;
|
|
2879
|
+
var isObject$1 = isObject$a;
|
|
2995
2880
|
var getPrototypeOf$1 = objectGetPrototypeOf;
|
|
2996
2881
|
var defineBuiltIn$1 = defineBuiltIn$6;
|
|
2997
|
-
var wellKnownSymbol$
|
|
2882
|
+
var wellKnownSymbol$3 = wellKnownSymbol$h;
|
|
2998
2883
|
|
|
2999
|
-
var ITERATOR$3 = wellKnownSymbol$
|
|
2884
|
+
var ITERATOR$3 = wellKnownSymbol$3('iterator');
|
|
3000
2885
|
var BUGGY_SAFARI_ITERATORS$1 = false;
|
|
3001
2886
|
|
|
3002
2887
|
// `%IteratorPrototype%` object
|
|
@@ -3014,7 +2899,7 @@ if ([].keys) {
|
|
|
3014
2899
|
}
|
|
3015
2900
|
}
|
|
3016
2901
|
|
|
3017
|
-
var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype$2) || fails$2(function () {
|
|
2902
|
+
var NEW_ITERATOR_PROTOTYPE = !isObject$1(IteratorPrototype$2) || fails$2(function () {
|
|
3018
2903
|
var test = {};
|
|
3019
2904
|
// FF44- legacy iterators case
|
|
3020
2905
|
return IteratorPrototype$2[ITERATOR$3].call(test) !== test;
|
|
@@ -3051,7 +2936,7 @@ var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUME
|
|
|
3051
2936
|
return IteratorConstructor;
|
|
3052
2937
|
};
|
|
3053
2938
|
|
|
3054
|
-
var $$
|
|
2939
|
+
var $$3 = _export;
|
|
3055
2940
|
var call = functionCall;
|
|
3056
2941
|
var FunctionName = functionName;
|
|
3057
2942
|
var isCallable = isCallable$k;
|
|
@@ -3061,7 +2946,7 @@ var setPrototypeOf = objectSetPrototypeOf;
|
|
|
3061
2946
|
var setToStringTag = setToStringTag$3;
|
|
3062
2947
|
var createNonEnumerableProperty$1 = createNonEnumerableProperty$4;
|
|
3063
2948
|
var defineBuiltIn = defineBuiltIn$6;
|
|
3064
|
-
var wellKnownSymbol$
|
|
2949
|
+
var wellKnownSymbol$2 = wellKnownSymbol$h;
|
|
3065
2950
|
var Iterators$1 = iterators;
|
|
3066
2951
|
var IteratorsCore = iteratorsCore;
|
|
3067
2952
|
|
|
@@ -3069,7 +2954,7 @@ var PROPER_FUNCTION_NAME = FunctionName.PROPER;
|
|
|
3069
2954
|
var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;
|
|
3070
2955
|
var IteratorPrototype = IteratorsCore.IteratorPrototype;
|
|
3071
2956
|
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
|
|
3072
|
-
var ITERATOR$2 = wellKnownSymbol$
|
|
2957
|
+
var ITERATOR$2 = wellKnownSymbol$2('iterator');
|
|
3073
2958
|
var KEYS = 'keys';
|
|
3074
2959
|
var VALUES = 'values';
|
|
3075
2960
|
var ENTRIES = 'entries';
|
|
@@ -3136,7 +3021,7 @@ var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAUL
|
|
|
3136
3021
|
if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
|
|
3137
3022
|
defineBuiltIn(IterablePrototype, KEY, methods[KEY]);
|
|
3138
3023
|
}
|
|
3139
|
-
} else $$
|
|
3024
|
+
} else $$3({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);
|
|
3140
3025
|
}
|
|
3141
3026
|
|
|
3142
3027
|
// define iterator
|
|
@@ -3155,7 +3040,7 @@ var createIterResultObject$1 = function (value, done) {
|
|
|
3155
3040
|
};
|
|
3156
3041
|
|
|
3157
3042
|
var toIndexedObject = toIndexedObject$5;
|
|
3158
|
-
var addToUnscopables = addToUnscopables$3;
|
|
3043
|
+
var addToUnscopables$1 = addToUnscopables$3;
|
|
3159
3044
|
var Iterators = iterators;
|
|
3160
3045
|
var InternalStateModule = internalState;
|
|
3161
3046
|
var defineProperty = objectDefineProperty.f;
|
|
@@ -3206,9 +3091,9 @@ var es_array_iterator = defineIterator(Array, 'Array', function (iterated, kind)
|
|
|
3206
3091
|
var values = Iterators.Arguments = Iterators.Array;
|
|
3207
3092
|
|
|
3208
3093
|
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
|
|
3209
|
-
addToUnscopables('keys');
|
|
3210
|
-
addToUnscopables('values');
|
|
3211
|
-
addToUnscopables('entries');
|
|
3094
|
+
addToUnscopables$1('keys');
|
|
3095
|
+
addToUnscopables$1('values');
|
|
3096
|
+
addToUnscopables$1('entries');
|
|
3212
3097
|
|
|
3213
3098
|
// V8 ~ Chrome 45- bug
|
|
3214
3099
|
if (DESCRIPTORS && values.name !== 'values') try {
|
|
@@ -3264,10 +3149,10 @@ var DOMIterables = domIterables;
|
|
|
3264
3149
|
var DOMTokenListPrototype = domTokenListPrototype;
|
|
3265
3150
|
var ArrayIteratorMethods = es_array_iterator;
|
|
3266
3151
|
var createNonEnumerableProperty = createNonEnumerableProperty$4;
|
|
3267
|
-
var wellKnownSymbol = wellKnownSymbol$h;
|
|
3152
|
+
var wellKnownSymbol$1 = wellKnownSymbol$h;
|
|
3268
3153
|
|
|
3269
|
-
var ITERATOR$1 = wellKnownSymbol('iterator');
|
|
3270
|
-
var TO_STRING_TAG = wellKnownSymbol('toStringTag');
|
|
3154
|
+
var ITERATOR$1 = wellKnownSymbol$1('iterator');
|
|
3155
|
+
var TO_STRING_TAG = wellKnownSymbol$1('toStringTag');
|
|
3271
3156
|
var ArrayValues = ArrayIteratorMethods.values;
|
|
3272
3157
|
|
|
3273
3158
|
var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {
|
|
@@ -3298,59 +3183,119 @@ for (var COLLECTION_NAME in DOMIterables) {
|
|
|
3298
3183
|
|
|
3299
3184
|
handlePrototype(DOMTokenListPrototype, 'DOMTokenList');
|
|
3300
3185
|
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3186
|
+
var classof = classofRaw$2;
|
|
3187
|
+
|
|
3188
|
+
// `IsArray` abstract operation
|
|
3189
|
+
// https://tc39.es/ecma262/#sec-isarray
|
|
3190
|
+
// eslint-disable-next-line es/no-array-isarray -- safe
|
|
3191
|
+
var isArray$2 = Array.isArray || function isArray(argument) {
|
|
3192
|
+
return classof(argument) == 'Array';
|
|
3193
|
+
};
|
|
3194
|
+
|
|
3195
|
+
var $TypeError$1 = TypeError;
|
|
3196
|
+
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
|
|
3197
|
+
|
|
3198
|
+
var doesNotExceedSafeInteger$1 = function (it) {
|
|
3199
|
+
if (it > MAX_SAFE_INTEGER) throw $TypeError$1('Maximum allowed index exceeded');
|
|
3200
|
+
return it;
|
|
3201
|
+
};
|
|
3202
|
+
|
|
3203
|
+
var isArray$1 = isArray$2;
|
|
3204
|
+
var lengthOfArrayLike$2 = lengthOfArrayLike$5;
|
|
3205
|
+
var doesNotExceedSafeInteger = doesNotExceedSafeInteger$1;
|
|
3206
|
+
var bind = functionBindContext;
|
|
3207
|
+
|
|
3208
|
+
// `FlattenIntoArray` abstract operation
|
|
3209
|
+
// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
|
|
3210
|
+
var flattenIntoArray$1 = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {
|
|
3211
|
+
var targetIndex = start;
|
|
3212
|
+
var sourceIndex = 0;
|
|
3213
|
+
var mapFn = mapper ? bind(mapper, thisArg) : false;
|
|
3214
|
+
var element, elementLen;
|
|
3215
|
+
|
|
3216
|
+
while (sourceIndex < sourceLen) {
|
|
3217
|
+
if (sourceIndex in source) {
|
|
3218
|
+
element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
|
|
3219
|
+
|
|
3220
|
+
if (depth > 0 && isArray$1(element)) {
|
|
3221
|
+
elementLen = lengthOfArrayLike$2(element);
|
|
3222
|
+
targetIndex = flattenIntoArray$1(target, original, element, elementLen, targetIndex, depth - 1) - 1;
|
|
3322
3223
|
} else {
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
window.clearTimeout(timeOut);
|
|
3326
|
-
}
|
|
3224
|
+
doesNotExceedSafeInteger(targetIndex + 1);
|
|
3225
|
+
target[targetIndex] = element;
|
|
3327
3226
|
}
|
|
3328
|
-
|
|
3329
|
-
|
|
3330
|
-
|
|
3331
|
-
|
|
3332
|
-
this._elementDelays.set(element, (_a = options === null || options === void 0 ? void 0 : options.delay) !== null && _a !== void 0 ? _a : 2000);
|
|
3333
|
-
(_b = this._intersectionObserver) === null || _b === void 0 ? void 0 : _b.observe(element);
|
|
3334
|
-
}
|
|
3335
|
-
unobserve(element) {
|
|
3336
|
-
var _a;
|
|
3337
|
-
(_a = this._intersectionObserver) === null || _a === void 0 ? void 0 : _a.unobserve(element);
|
|
3227
|
+
|
|
3228
|
+
targetIndex++;
|
|
3229
|
+
}
|
|
3230
|
+
sourceIndex++;
|
|
3338
3231
|
}
|
|
3339
|
-
|
|
3232
|
+
return targetIndex;
|
|
3233
|
+
};
|
|
3234
|
+
|
|
3235
|
+
var flattenIntoArray_1 = flattenIntoArray$1;
|
|
3236
|
+
|
|
3237
|
+
var isArray = isArray$2;
|
|
3238
|
+
var isConstructor = isConstructor$2;
|
|
3239
|
+
var isObject = isObject$a;
|
|
3240
|
+
var wellKnownSymbol = wellKnownSymbol$h;
|
|
3241
|
+
|
|
3242
|
+
var SPECIES = wellKnownSymbol('species');
|
|
3243
|
+
var $Array = Array;
|
|
3340
3244
|
|
|
3341
|
-
|
|
3342
|
-
|
|
3245
|
+
// a part of `ArraySpeciesCreate` abstract operation
|
|
3246
|
+
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
3247
|
+
var arraySpeciesConstructor$1 = function (originalArray) {
|
|
3248
|
+
var C;
|
|
3249
|
+
if (isArray(originalArray)) {
|
|
3250
|
+
C = originalArray.constructor;
|
|
3251
|
+
// cross-realm fallback
|
|
3252
|
+
if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;
|
|
3253
|
+
else if (isObject(C)) {
|
|
3254
|
+
C = C[SPECIES];
|
|
3255
|
+
if (C === null) C = undefined;
|
|
3256
|
+
}
|
|
3257
|
+
} return C === undefined ? $Array : C;
|
|
3343
3258
|
};
|
|
3344
3259
|
|
|
3345
|
-
|
|
3346
|
-
|
|
3260
|
+
var arraySpeciesConstructor = arraySpeciesConstructor$1;
|
|
3261
|
+
|
|
3262
|
+
// `ArraySpeciesCreate` abstract operation
|
|
3263
|
+
// https://tc39.es/ecma262/#sec-arrayspeciescreate
|
|
3264
|
+
var arraySpeciesCreate$1 = function (originalArray, length) {
|
|
3265
|
+
return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
|
|
3347
3266
|
};
|
|
3348
3267
|
|
|
3268
|
+
var $$2 = _export;
|
|
3269
|
+
var flattenIntoArray = flattenIntoArray_1;
|
|
3270
|
+
var toObject$1 = toObject$5;
|
|
3271
|
+
var lengthOfArrayLike$1 = lengthOfArrayLike$5;
|
|
3272
|
+
var toIntegerOrInfinity = toIntegerOrInfinity$3;
|
|
3273
|
+
var arraySpeciesCreate = arraySpeciesCreate$1;
|
|
3274
|
+
|
|
3275
|
+
// `Array.prototype.flat` method
|
|
3276
|
+
// https://tc39.es/ecma262/#sec-array.prototype.flat
|
|
3277
|
+
$$2({ target: 'Array', proto: true }, {
|
|
3278
|
+
flat: function flat(/* depthArg = 1 */) {
|
|
3279
|
+
var depthArg = arguments.length ? arguments[0] : undefined;
|
|
3280
|
+
var O = toObject$1(this);
|
|
3281
|
+
var sourceLen = lengthOfArrayLike$1(O);
|
|
3282
|
+
var A = arraySpeciesCreate(O, 0);
|
|
3283
|
+
A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));
|
|
3284
|
+
return A;
|
|
3285
|
+
}
|
|
3286
|
+
});
|
|
3287
|
+
|
|
3288
|
+
// this method was added to unscopables after implementation
|
|
3289
|
+
// in popular engines, so it's moved to a separate module
|
|
3290
|
+
var addToUnscopables = addToUnscopables$3;
|
|
3291
|
+
|
|
3292
|
+
// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
|
|
3293
|
+
addToUnscopables('flat');
|
|
3294
|
+
|
|
3349
3295
|
class Ninetailed {
|
|
3350
3296
|
constructor(ninetailedApiClientInstanceOrOptions, {
|
|
3351
3297
|
plugins,
|
|
3352
3298
|
url,
|
|
3353
|
-
profile,
|
|
3354
3299
|
locale,
|
|
3355
3300
|
requestTimeout,
|
|
3356
3301
|
onLog,
|
|
@@ -3401,28 +3346,6 @@ class Ninetailed {
|
|
|
3401
3346
|
type: HAS_SEEN_EXPERIENCE
|
|
3402
3347
|
}));
|
|
3403
3348
|
};
|
|
3404
|
-
this.observeElement = (payload, options) => {
|
|
3405
|
-
const {
|
|
3406
|
-
element
|
|
3407
|
-
} = payload,
|
|
3408
|
-
remaingPayload = __rest(payload, ["element"]);
|
|
3409
|
-
this.observedElements.set(element, remaingPayload);
|
|
3410
|
-
this.elementSeenObserver.observe(element, options);
|
|
3411
|
-
};
|
|
3412
|
-
this.unobserveElement = element => {
|
|
3413
|
-
this.observedElements.delete(element);
|
|
3414
|
-
this.elementSeenObserver.unobserve(element);
|
|
3415
|
-
};
|
|
3416
|
-
this.onElementSeen = element => {
|
|
3417
|
-
const payload = this.observedElements.get(element);
|
|
3418
|
-
if (typeof payload !== 'undefined') {
|
|
3419
|
-
this.instance.dispatch(Object.assign(Object.assign({
|
|
3420
|
-
element
|
|
3421
|
-
}, payload), {
|
|
3422
|
-
type: HAS_SEEN_ELEMENT
|
|
3423
|
-
}));
|
|
3424
|
-
}
|
|
3425
|
-
};
|
|
3426
3349
|
this.identify = (uid, traits, options) => __awaiter(this, void 0, void 0, function* () {
|
|
3427
3350
|
try {
|
|
3428
3351
|
const result = Traits.default({}).safeParse(traits);
|
|
@@ -3461,12 +3384,14 @@ class Ninetailed {
|
|
|
3461
3384
|
cb(Object.assign(Object.assign({}, this._profileState), {
|
|
3462
3385
|
status: 'error',
|
|
3463
3386
|
profile: payload.profile,
|
|
3387
|
+
experiences: payload.experiences,
|
|
3464
3388
|
error: payload.error
|
|
3465
3389
|
}));
|
|
3466
3390
|
} else {
|
|
3467
3391
|
cb(Object.assign(Object.assign({}, this._profileState), {
|
|
3468
3392
|
status: 'success',
|
|
3469
3393
|
profile: payload.profile,
|
|
3394
|
+
experiences: payload.experiences,
|
|
3470
3395
|
error: null
|
|
3471
3396
|
}));
|
|
3472
3397
|
}
|
|
@@ -3490,18 +3415,6 @@ class Ninetailed {
|
|
|
3490
3415
|
this.onIsInitialized(resolve);
|
|
3491
3416
|
});
|
|
3492
3417
|
};
|
|
3493
|
-
this.onVisibilityChange = () => {
|
|
3494
|
-
if (typeof document === 'undefined') {
|
|
3495
|
-
return;
|
|
3496
|
-
}
|
|
3497
|
-
document.addEventListener('visibilitychange', () => {
|
|
3498
|
-
if (document.visibilityState === 'hidden') {
|
|
3499
|
-
this.instance.dispatch({
|
|
3500
|
-
type: PAGE_HIDDEN
|
|
3501
|
-
});
|
|
3502
|
-
}
|
|
3503
|
-
});
|
|
3504
|
-
};
|
|
3505
3418
|
if (ninetailedApiClientInstanceOrOptions instanceof NinetailedApiClient) {
|
|
3506
3419
|
this.apiClient = ninetailedApiClientInstanceOrOptions;
|
|
3507
3420
|
} else {
|
|
@@ -3519,30 +3432,22 @@ class Ninetailed {
|
|
|
3519
3432
|
preview
|
|
3520
3433
|
});
|
|
3521
3434
|
}
|
|
3522
|
-
this.plugins = (plugins
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
plugin.setCredentials({
|
|
3435
|
+
this.plugins = [...(plugins || []).map(plugin => {
|
|
3436
|
+
if ('setCredentials' in plugin && typeof plugin['setCredentials'] === 'function') {
|
|
3437
|
+
plugin['setCredentials']({
|
|
3526
3438
|
clientId: this.clientId,
|
|
3527
3439
|
environment: this.environment
|
|
3528
3440
|
});
|
|
3529
3441
|
}
|
|
3530
|
-
|
|
3531
|
-
|
|
3532
|
-
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3536
|
-
|
|
3537
|
-
|
|
3538
|
-
}
|
|
3539
|
-
this._profileState = {
|
|
3540
|
-
status: 'loading',
|
|
3541
|
-
profile: null,
|
|
3542
|
-
error: null,
|
|
3543
|
-
from: 'api'
|
|
3544
|
-
};
|
|
3545
|
-
}
|
|
3442
|
+
return plugin;
|
|
3443
|
+
}).flat()];
|
|
3444
|
+
this._profileState = {
|
|
3445
|
+
status: 'loading',
|
|
3446
|
+
profile: null,
|
|
3447
|
+
experiences: null,
|
|
3448
|
+
error: null,
|
|
3449
|
+
from: 'api'
|
|
3450
|
+
};
|
|
3546
3451
|
if (typeof onLog === 'function') {
|
|
3547
3452
|
logger.addSink(new OnLogLogSink(onLog));
|
|
3548
3453
|
}
|
|
@@ -3552,7 +3457,6 @@ class Ninetailed {
|
|
|
3552
3457
|
this.logger = logger;
|
|
3553
3458
|
this.eventQueue = ninetailedPlugin({
|
|
3554
3459
|
apiClient: this.apiClient,
|
|
3555
|
-
profile,
|
|
3556
3460
|
locale,
|
|
3557
3461
|
requestTimeout,
|
|
3558
3462
|
ninetailed: this
|
|
@@ -3571,18 +3475,11 @@ class Ninetailed {
|
|
|
3571
3475
|
this._profileState = profileState;
|
|
3572
3476
|
if (typeof window !== 'undefined') {
|
|
3573
3477
|
window.ninetailed = Object.assign({}, window.ninetailed, {
|
|
3574
|
-
profile: this.profileState.profile
|
|
3478
|
+
profile: this.profileState.profile,
|
|
3479
|
+
experiences: this.profileState.experiences
|
|
3575
3480
|
});
|
|
3576
3481
|
}
|
|
3577
3482
|
});
|
|
3578
|
-
this.observedElements = new WeakMap();
|
|
3579
|
-
this.elementSeenObserver = new ElementSeenObserver({
|
|
3580
|
-
onElementSeen: this.onElementSeen.bind(this)
|
|
3581
|
-
});
|
|
3582
|
-
const hasPluginsInterestedInHiddenPage = this.plugins.some(isInterestedInHiddenPage);
|
|
3583
|
-
if (hasPluginsInterestedInHiddenPage) {
|
|
3584
|
-
this.onVisibilityChange();
|
|
3585
|
-
}
|
|
3586
3483
|
this.registerWindowHandlers();
|
|
3587
3484
|
}
|
|
3588
3485
|
get profileState() {
|
|
@@ -3981,4 +3878,4 @@ const makeExperienceSelectMiddleware = ({
|
|
|
3981
3878
|
};
|
|
3982
3879
|
};
|
|
3983
3880
|
|
|
3984
|
-
export { ANONYMOUS_ID, CONSENT, DEBUG_FLAG, EMPTY_MERGE_ID,
|
|
3881
|
+
export { ANONYMOUS_ID, CONSENT, DEBUG_FLAG, EMPTY_MERGE_ID, EXPERIENCES_FALLBACK_CACHE, 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 };
|