@mparticle/web-sdk 2.17.4 → 2.18.1
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/dist/mparticle.common.js +63 -26
- package/dist/mparticle.esm.js +63 -26
- package/dist/mparticle.js +399 -240
- package/package.json +2 -2
- package/src/batchUploader.ts +23 -8
- package/src/helpers.js +1 -8
- package/src/mockBatchCreator.ts +80 -9
- package/src/mp-instance.js +55 -2
- package/src/mparticle-instance-manager.js +3 -0
- package/src/sdkRuntimeModels.ts +34 -11
- package/src/{serverModel.js → serverModel.ts} +260 -75
- package/src/store.ts +4 -2
- package/src/stub/mparticle.stub.js +1 -0
- package/src/types.js +6 -0
- package/src/utils.ts +16 -1
- package/src/validators.ts +4 -2
package/dist/mparticle.js
CHANGED
|
@@ -708,6 +708,10 @@ var mParticle = (function () {
|
|
|
708
708
|
var ApplicationTransitionType$1 = {
|
|
709
709
|
AppInit: 1
|
|
710
710
|
};
|
|
711
|
+
var Environment = {
|
|
712
|
+
Production: 'production',
|
|
713
|
+
Development: 'development'
|
|
714
|
+
};
|
|
711
715
|
var Types = {
|
|
712
716
|
MessageType: MessageType$1,
|
|
713
717
|
EventType: EventType,
|
|
@@ -717,10 +721,11 @@ var mParticle = (function () {
|
|
|
717
721
|
ApplicationTransitionType: ApplicationTransitionType$1,
|
|
718
722
|
ProductActionType: ProductActionType,
|
|
719
723
|
PromotionActionType: PromotionActionType,
|
|
720
|
-
TriggerUploadType: TriggerUploadType
|
|
724
|
+
TriggerUploadType: TriggerUploadType,
|
|
725
|
+
Environment: Environment
|
|
721
726
|
};
|
|
722
727
|
|
|
723
|
-
var version = "2.
|
|
728
|
+
var version = "2.18.1";
|
|
724
729
|
|
|
725
730
|
var Constants = {
|
|
726
731
|
sdkVersion: version,
|
|
@@ -1930,6 +1935,173 @@ var mParticle = (function () {
|
|
|
1930
1935
|
}
|
|
1931
1936
|
}
|
|
1932
1937
|
|
|
1938
|
+
var slugify$1 = {exports: {}};
|
|
1939
|
+
|
|
1940
|
+
(function (module, exports) {
|
|
1941
|
+
(function (name, root, factory) {
|
|
1942
|
+
{
|
|
1943
|
+
module.exports = factory();
|
|
1944
|
+
module.exports['default'] = factory();
|
|
1945
|
+
}
|
|
1946
|
+
}('slugify', commonjsGlobal, function () {
|
|
1947
|
+
var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}');
|
|
1948
|
+
var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');
|
|
1949
|
+
|
|
1950
|
+
function replace (string, options) {
|
|
1951
|
+
if (typeof string !== 'string') {
|
|
1952
|
+
throw new Error('slugify: string argument expected')
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
options = (typeof options === 'string')
|
|
1956
|
+
? {replacement: options}
|
|
1957
|
+
: options || {};
|
|
1958
|
+
|
|
1959
|
+
var locale = locales[options.locale] || {};
|
|
1960
|
+
|
|
1961
|
+
var replacement = options.replacement === undefined ? '-' : options.replacement;
|
|
1962
|
+
|
|
1963
|
+
var trim = options.trim === undefined ? true : options.trim;
|
|
1964
|
+
|
|
1965
|
+
var slug = string.normalize().split('')
|
|
1966
|
+
// replace characters based on charMap
|
|
1967
|
+
.reduce(function (result, ch) {
|
|
1968
|
+
var appendChar = locale[ch] || charMap[ch] || ch;
|
|
1969
|
+
if (appendChar === replacement) {
|
|
1970
|
+
appendChar = ' ';
|
|
1971
|
+
}
|
|
1972
|
+
return result + appendChar
|
|
1973
|
+
// remove not allowed characters
|
|
1974
|
+
.replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '')
|
|
1975
|
+
}, '');
|
|
1976
|
+
|
|
1977
|
+
if (options.strict) {
|
|
1978
|
+
slug = slug.replace(/[^A-Za-z0-9\s]/g, '');
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1981
|
+
if (trim) {
|
|
1982
|
+
slug = slug.trim();
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
// Replace spaces with replacement character, treating multiple consecutive
|
|
1986
|
+
// spaces as a single space.
|
|
1987
|
+
slug = slug.replace(/\s+/g, replacement);
|
|
1988
|
+
|
|
1989
|
+
if (options.lower) {
|
|
1990
|
+
slug = slug.toLowerCase();
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
return slug
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
replace.extend = function (customMap) {
|
|
1997
|
+
Object.assign(charMap, customMap);
|
|
1998
|
+
};
|
|
1999
|
+
|
|
2000
|
+
return replace
|
|
2001
|
+
}));
|
|
2002
|
+
} (slugify$1));
|
|
2003
|
+
|
|
2004
|
+
var slugify = slugify$1.exports;
|
|
2005
|
+
|
|
2006
|
+
var inArray = function inArray(items, name) {
|
|
2007
|
+
var i = 0;
|
|
2008
|
+
|
|
2009
|
+
if (Array.prototype.indexOf) {
|
|
2010
|
+
return items.indexOf(name, 0) >= 0;
|
|
2011
|
+
} else {
|
|
2012
|
+
for (var n = items.length; i < n; i++) {
|
|
2013
|
+
if (i in items && items[i] === name) {
|
|
2014
|
+
return true;
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
return false;
|
|
2020
|
+
};
|
|
2021
|
+
|
|
2022
|
+
var findKeyInObject = function findKeyInObject(obj, key) {
|
|
2023
|
+
if (key && obj) {
|
|
2024
|
+
for (var prop in obj) {
|
|
2025
|
+
if (obj.hasOwnProperty(prop) && prop.toLowerCase() === key.toLowerCase()) {
|
|
2026
|
+
return prop;
|
|
2027
|
+
}
|
|
2028
|
+
}
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
return null;
|
|
2032
|
+
};
|
|
2033
|
+
|
|
2034
|
+
var isObject = function isObject(value) {
|
|
2035
|
+
var objType = Object.prototype.toString.call(value);
|
|
2036
|
+
return objType === '[object Object]' || objType === '[object Error]';
|
|
2037
|
+
};
|
|
2038
|
+
|
|
2039
|
+
var parseNumber = function parseNumber(value) {
|
|
2040
|
+
if (isNaN(value) || !isFinite(value)) {
|
|
2041
|
+
return 0;
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
var floatValue = parseFloat(value);
|
|
2045
|
+
return isNaN(floatValue) ? 0 : floatValue;
|
|
2046
|
+
};
|
|
2047
|
+
|
|
2048
|
+
var parseStringOrNumber = function parseStringOrNumber(value) {
|
|
2049
|
+
if (isStringOrNumber(value)) {
|
|
2050
|
+
return value;
|
|
2051
|
+
} else {
|
|
2052
|
+
return null;
|
|
2053
|
+
}
|
|
2054
|
+
}; // FIXME: REFACTOR for V3
|
|
2055
|
+
// only used in store.js to sanitize server-side formatting of
|
|
2056
|
+
// booleans when checking for `isDevelopmentMode`
|
|
2057
|
+
// Should be removed in v3
|
|
2058
|
+
|
|
2059
|
+
|
|
2060
|
+
var returnConvertedBoolean = function returnConvertedBoolean(data) {
|
|
2061
|
+
if (data === 'false' || data === '0') {
|
|
2062
|
+
return false;
|
|
2063
|
+
} else {
|
|
2064
|
+
return Boolean(data);
|
|
2065
|
+
}
|
|
2066
|
+
};
|
|
2067
|
+
|
|
2068
|
+
var decoded = function decoded(s) {
|
|
2069
|
+
return decodeURIComponent(s.replace(/\+/g, ' '));
|
|
2070
|
+
};
|
|
2071
|
+
|
|
2072
|
+
var converted = function converted(s) {
|
|
2073
|
+
if (s.indexOf('"') === 0) {
|
|
2074
|
+
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
return s;
|
|
2078
|
+
};
|
|
2079
|
+
|
|
2080
|
+
var isString = function isString(value) {
|
|
2081
|
+
return typeof value === 'string';
|
|
2082
|
+
};
|
|
2083
|
+
|
|
2084
|
+
var isNumber = function isNumber(value) {
|
|
2085
|
+
return typeof value === 'number';
|
|
2086
|
+
};
|
|
2087
|
+
|
|
2088
|
+
var isFunction = function isFunction(fn) {
|
|
2089
|
+
return typeof fn === 'function';
|
|
2090
|
+
}; // TODO: Refactor this to a regex
|
|
2091
|
+
|
|
2092
|
+
|
|
2093
|
+
var isDataPlanSlug = function isDataPlanSlug(str) {
|
|
2094
|
+
return isString(str) && str === slugify(str);
|
|
2095
|
+
};
|
|
2096
|
+
|
|
2097
|
+
var isStringOrNumber = function isStringOrNumber(value) {
|
|
2098
|
+
return isString(value) || isNumber(value);
|
|
2099
|
+
};
|
|
2100
|
+
|
|
2101
|
+
var isEmpty = function isEmpty(value) {
|
|
2102
|
+
return value == null || !(Object.keys(value) || value).length;
|
|
2103
|
+
};
|
|
2104
|
+
|
|
1933
2105
|
var BatchUploader =
|
|
1934
2106
|
/** @class */
|
|
1935
2107
|
function () {
|
|
@@ -1982,7 +2154,7 @@ var mParticle = (function () {
|
|
|
1982
2154
|
};
|
|
1983
2155
|
|
|
1984
2156
|
BatchUploader.prototype.queueEvent = function (event) {
|
|
1985
|
-
if (event) {
|
|
2157
|
+
if (!isEmpty(event)) {
|
|
1986
2158
|
this.pendingEvents.push(event);
|
|
1987
2159
|
this.mpInstance.Logger.verbose("Queuing event: ".concat(JSON.stringify(event)));
|
|
1988
2160
|
this.mpInstance.Logger.verbose("Queued event count: ".concat(this.pendingEvents.length));
|
|
@@ -2128,13 +2300,17 @@ var mParticle = (function () {
|
|
|
2128
2300
|
});
|
|
2129
2301
|
};
|
|
2130
2302
|
|
|
2131
|
-
BatchUploader.prototype.upload = function (logger,
|
|
2303
|
+
BatchUploader.prototype.upload = function (logger, _uploads, useBeacon) {
|
|
2132
2304
|
return __awaiter(this, void 0, void 0, function () {
|
|
2133
|
-
var uploader, i, fetchPayload, blob, response, e_1;
|
|
2305
|
+
var uploader, uploads, i, fetchPayload, blob, response, e_1;
|
|
2134
2306
|
return __generator(this, function (_a) {
|
|
2135
2307
|
switch (_a.label) {
|
|
2136
2308
|
case 0:
|
|
2137
|
-
|
|
2309
|
+
uploads = _uploads.filter(function (upload) {
|
|
2310
|
+
return !isEmpty(upload.events);
|
|
2311
|
+
});
|
|
2312
|
+
|
|
2313
|
+
if (isEmpty(uploads)) {
|
|
2138
2314
|
return [2
|
|
2139
2315
|
/*return*/
|
|
2140
2316
|
, null];
|
|
@@ -2555,169 +2731,17 @@ var mParticle = (function () {
|
|
|
2555
2731
|
};
|
|
2556
2732
|
}
|
|
2557
2733
|
|
|
2558
|
-
var slugify$1 = {exports: {}};
|
|
2559
|
-
|
|
2560
|
-
(function (module, exports) {
|
|
2561
|
-
(function (name, root, factory) {
|
|
2562
|
-
{
|
|
2563
|
-
module.exports = factory();
|
|
2564
|
-
module.exports['default'] = factory();
|
|
2565
|
-
}
|
|
2566
|
-
}('slugify', commonjsGlobal, function () {
|
|
2567
|
-
var charMap = JSON.parse('{"$":"dollar","%":"percent","&":"and","<":"less",">":"greater","|":"or","¢":"cent","£":"pound","¤":"currency","¥":"yen","©":"(c)","ª":"a","®":"(r)","º":"o","À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"u","ý":"y","þ":"th","ÿ":"y","Ā":"A","ā":"a","Ă":"A","ă":"a","Ą":"A","ą":"a","Ć":"C","ć":"c","Č":"C","č":"c","Ď":"D","ď":"d","Đ":"DJ","đ":"dj","Ē":"E","ē":"e","Ė":"E","ė":"e","Ę":"e","ę":"e","Ě":"E","ě":"e","Ğ":"G","ğ":"g","Ģ":"G","ģ":"g","Ĩ":"I","ĩ":"i","Ī":"i","ī":"i","Į":"I","į":"i","İ":"I","ı":"i","Ķ":"k","ķ":"k","Ļ":"L","ļ":"l","Ľ":"L","ľ":"l","Ł":"L","ł":"l","Ń":"N","ń":"n","Ņ":"N","ņ":"n","Ň":"N","ň":"n","Ō":"O","ō":"o","Ő":"O","ő":"o","Œ":"OE","œ":"oe","Ŕ":"R","ŕ":"r","Ř":"R","ř":"r","Ś":"S","ś":"s","Ş":"S","ş":"s","Š":"S","š":"s","Ţ":"T","ţ":"t","Ť":"T","ť":"t","Ũ":"U","ũ":"u","Ū":"u","ū":"u","Ů":"U","ů":"u","Ű":"U","ű":"u","Ų":"U","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","ź":"z","Ż":"Z","ż":"z","Ž":"Z","ž":"z","Ə":"E","ƒ":"f","Ơ":"O","ơ":"o","Ư":"U","ư":"u","Lj":"LJ","lj":"lj","Nj":"NJ","nj":"nj","Ș":"S","ș":"s","Ț":"T","ț":"t","ə":"e","˚":"o","Ά":"A","Έ":"E","Ή":"H","Ί":"I","Ό":"O","Ύ":"Y","Ώ":"W","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"H","Θ":"8","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"3","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"W","Ϊ":"I","Ϋ":"Y","ά":"a","έ":"e","ή":"h","ί":"i","ΰ":"y","α":"a","β":"b","γ":"g","δ":"d","ε":"e","ζ":"z","η":"h","θ":"8","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"3","ο":"o","π":"p","ρ":"r","ς":"s","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"w","ϊ":"i","ϋ":"y","ό":"o","ύ":"y","ώ":"w","Ё":"Yo","Ђ":"DJ","Є":"Ye","І":"I","Ї":"Yi","Ј":"J","Љ":"LJ","Њ":"NJ","Ћ":"C","Џ":"DZ","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ж":"Zh","З":"Z","И":"I","Й":"J","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"H","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"U","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ж":"zh","з":"z","и":"i","й":"j","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"h","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"u","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","ё":"yo","ђ":"dj","є":"ye","і":"i","ї":"yi","ј":"j","љ":"lj","њ":"nj","ћ":"c","ѝ":"u","џ":"dz","Ґ":"G","ґ":"g","Ғ":"GH","ғ":"gh","Қ":"KH","қ":"kh","Ң":"NG","ң":"ng","Ү":"UE","ү":"ue","Ұ":"U","ұ":"u","Һ":"H","һ":"h","Ә":"AE","ә":"ae","Ө":"OE","ө":"oe","Ա":"A","Բ":"B","Գ":"G","Դ":"D","Ե":"E","Զ":"Z","Է":"E\'","Ը":"Y\'","Թ":"T\'","Ժ":"JH","Ի":"I","Լ":"L","Խ":"X","Ծ":"C\'","Կ":"K","Հ":"H","Ձ":"D\'","Ղ":"GH","Ճ":"TW","Մ":"M","Յ":"Y","Ն":"N","Շ":"SH","Չ":"CH","Պ":"P","Ջ":"J","Ռ":"R\'","Ս":"S","Վ":"V","Տ":"T","Ր":"R","Ց":"C","Փ":"P\'","Ք":"Q\'","Օ":"O\'\'","Ֆ":"F","և":"EV","ء":"a","آ":"aa","أ":"a","ؤ":"u","إ":"i","ئ":"e","ا":"a","ب":"b","ة":"h","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ى":"a","ي":"y","ً":"an","ٌ":"on","ٍ":"en","َ":"a","ُ":"u","ِ":"e","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","پ":"p","چ":"ch","ژ":"zh","ک":"k","گ":"g","ی":"y","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","฿":"baht","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"f","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","Ṣ":"S","ṣ":"s","Ẁ":"W","ẁ":"w","Ẃ":"W","ẃ":"w","Ẅ":"W","ẅ":"w","ẞ":"SS","Ạ":"A","ạ":"a","Ả":"A","ả":"a","Ấ":"A","ấ":"a","Ầ":"A","ầ":"a","Ẩ":"A","ẩ":"a","Ẫ":"A","ẫ":"a","Ậ":"A","ậ":"a","Ắ":"A","ắ":"a","Ằ":"A","ằ":"a","Ẳ":"A","ẳ":"a","Ẵ":"A","ẵ":"a","Ặ":"A","ặ":"a","Ẹ":"E","ẹ":"e","Ẻ":"E","ẻ":"e","Ẽ":"E","ẽ":"e","Ế":"E","ế":"e","Ề":"E","ề":"e","Ể":"E","ể":"e","Ễ":"E","ễ":"e","Ệ":"E","ệ":"e","Ỉ":"I","ỉ":"i","Ị":"I","ị":"i","Ọ":"O","ọ":"o","Ỏ":"O","ỏ":"o","Ố":"O","ố":"o","Ồ":"O","ồ":"o","Ổ":"O","ổ":"o","Ỗ":"O","ỗ":"o","Ộ":"O","ộ":"o","Ớ":"O","ớ":"o","Ờ":"O","ờ":"o","Ở":"O","ở":"o","Ỡ":"O","ỡ":"o","Ợ":"O","ợ":"o","Ụ":"U","ụ":"u","Ủ":"U","ủ":"u","Ứ":"U","ứ":"u","Ừ":"U","ừ":"u","Ử":"U","ử":"u","Ữ":"U","ữ":"u","Ự":"U","ự":"u","Ỳ":"Y","ỳ":"y","Ỵ":"Y","ỵ":"y","Ỷ":"Y","ỷ":"y","Ỹ":"Y","ỹ":"y","–":"-","‘":"\'","’":"\'","“":"\\\"","”":"\\\"","„":"\\\"","†":"+","•":"*","…":"...","₠":"ecu","₢":"cruzeiro","₣":"french franc","₤":"lira","₥":"mill","₦":"naira","₧":"peseta","₨":"rupee","₩":"won","₪":"new shequel","₫":"dong","€":"euro","₭":"kip","₮":"tugrik","₯":"drachma","₰":"penny","₱":"peso","₲":"guarani","₳":"austral","₴":"hryvnia","₵":"cedi","₸":"kazakhstani tenge","₹":"indian rupee","₺":"turkish lira","₽":"russian ruble","₿":"bitcoin","℠":"sm","™":"tm","∂":"d","∆":"delta","∑":"sum","∞":"infinity","♥":"love","元":"yuan","円":"yen","﷼":"rial","ﻵ":"laa","ﻷ":"laa","ﻹ":"lai","ﻻ":"la"}');
|
|
2568
|
-
var locales = JSON.parse('{"bg":{"Й":"Y","Ц":"Ts","Щ":"Sht","Ъ":"A","Ь":"Y","й":"y","ц":"ts","щ":"sht","ъ":"a","ь":"y"},"de":{"Ä":"AE","ä":"ae","Ö":"OE","ö":"oe","Ü":"UE","ü":"ue","ß":"ss","%":"prozent","&":"und","|":"oder","∑":"summe","∞":"unendlich","♥":"liebe"},"es":{"%":"por ciento","&":"y","<":"menor que",">":"mayor que","|":"o","¢":"centavos","£":"libras","¤":"moneda","₣":"francos","∑":"suma","∞":"infinito","♥":"amor"},"fr":{"%":"pourcent","&":"et","<":"plus petit",">":"plus grand","|":"ou","¢":"centime","£":"livre","¤":"devise","₣":"franc","∑":"somme","∞":"infini","♥":"amour"},"pt":{"%":"porcento","&":"e","<":"menor",">":"maior","|":"ou","¢":"centavo","∑":"soma","£":"libra","∞":"infinito","♥":"amor"},"uk":{"И":"Y","и":"y","Й":"Y","й":"y","Ц":"Ts","ц":"ts","Х":"Kh","х":"kh","Щ":"Shch","щ":"shch","Г":"H","г":"h"},"vi":{"Đ":"D","đ":"d"},"da":{"Ø":"OE","ø":"oe","Å":"AA","å":"aa","%":"procent","&":"og","|":"eller","$":"dollar","<":"mindre end",">":"større end"},"nb":{"&":"og","Å":"AA","Æ":"AE","Ø":"OE","å":"aa","æ":"ae","ø":"oe"},"it":{"&":"e"},"nl":{"&":"en"},"sv":{"&":"och","Å":"AA","Ä":"AE","Ö":"OE","å":"aa","ä":"ae","ö":"oe"}}');
|
|
2569
|
-
|
|
2570
|
-
function replace (string, options) {
|
|
2571
|
-
if (typeof string !== 'string') {
|
|
2572
|
-
throw new Error('slugify: string argument expected')
|
|
2573
|
-
}
|
|
2574
|
-
|
|
2575
|
-
options = (typeof options === 'string')
|
|
2576
|
-
? {replacement: options}
|
|
2577
|
-
: options || {};
|
|
2578
|
-
|
|
2579
|
-
var locale = locales[options.locale] || {};
|
|
2580
|
-
|
|
2581
|
-
var replacement = options.replacement === undefined ? '-' : options.replacement;
|
|
2582
|
-
|
|
2583
|
-
var trim = options.trim === undefined ? true : options.trim;
|
|
2584
|
-
|
|
2585
|
-
var slug = string.normalize().split('')
|
|
2586
|
-
// replace characters based on charMap
|
|
2587
|
-
.reduce(function (result, ch) {
|
|
2588
|
-
var appendChar = locale[ch] || charMap[ch] || ch;
|
|
2589
|
-
if (appendChar === replacement) {
|
|
2590
|
-
appendChar = ' ';
|
|
2591
|
-
}
|
|
2592
|
-
return result + appendChar
|
|
2593
|
-
// remove not allowed characters
|
|
2594
|
-
.replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '')
|
|
2595
|
-
}, '');
|
|
2596
|
-
|
|
2597
|
-
if (options.strict) {
|
|
2598
|
-
slug = slug.replace(/[^A-Za-z0-9\s]/g, '');
|
|
2599
|
-
}
|
|
2600
|
-
|
|
2601
|
-
if (trim) {
|
|
2602
|
-
slug = slug.trim();
|
|
2603
|
-
}
|
|
2604
|
-
|
|
2605
|
-
// Replace spaces with replacement character, treating multiple consecutive
|
|
2606
|
-
// spaces as a single space.
|
|
2607
|
-
slug = slug.replace(/\s+/g, replacement);
|
|
2608
|
-
|
|
2609
|
-
if (options.lower) {
|
|
2610
|
-
slug = slug.toLowerCase();
|
|
2611
|
-
}
|
|
2612
|
-
|
|
2613
|
-
return slug
|
|
2614
|
-
}
|
|
2615
|
-
|
|
2616
|
-
replace.extend = function (customMap) {
|
|
2617
|
-
Object.assign(charMap, customMap);
|
|
2618
|
-
};
|
|
2619
|
-
|
|
2620
|
-
return replace
|
|
2621
|
-
}));
|
|
2622
|
-
} (slugify$1));
|
|
2623
|
-
|
|
2624
|
-
var slugify = slugify$1.exports;
|
|
2625
|
-
|
|
2626
|
-
var inArray = function inArray(items, name) {
|
|
2627
|
-
var i = 0;
|
|
2628
|
-
|
|
2629
|
-
if (Array.prototype.indexOf) {
|
|
2630
|
-
return items.indexOf(name, 0) >= 0;
|
|
2631
|
-
} else {
|
|
2632
|
-
for (var n = items.length; i < n; i++) {
|
|
2633
|
-
if (i in items && items[i] === name) {
|
|
2634
|
-
return true;
|
|
2635
|
-
}
|
|
2636
|
-
}
|
|
2637
|
-
}
|
|
2638
|
-
|
|
2639
|
-
return false;
|
|
2640
|
-
};
|
|
2641
|
-
|
|
2642
|
-
var findKeyInObject = function findKeyInObject(obj, key) {
|
|
2643
|
-
if (key && obj) {
|
|
2644
|
-
for (var prop in obj) {
|
|
2645
|
-
if (obj.hasOwnProperty(prop) && prop.toLowerCase() === key.toLowerCase()) {
|
|
2646
|
-
return prop;
|
|
2647
|
-
}
|
|
2648
|
-
}
|
|
2649
|
-
}
|
|
2650
|
-
|
|
2651
|
-
return null;
|
|
2652
|
-
};
|
|
2653
|
-
|
|
2654
|
-
var isObject = function isObject(value) {
|
|
2655
|
-
var objType = Object.prototype.toString.call(value);
|
|
2656
|
-
return objType === '[object Object]' || objType === '[object Error]';
|
|
2657
|
-
};
|
|
2658
|
-
|
|
2659
|
-
var parseNumber = function parseNumber(value) {
|
|
2660
|
-
if (isNaN(value) || !isFinite(value)) {
|
|
2661
|
-
return 0;
|
|
2662
|
-
}
|
|
2663
|
-
|
|
2664
|
-
var floatValue = parseFloat(value);
|
|
2665
|
-
return isNaN(floatValue) ? 0 : floatValue;
|
|
2666
|
-
}; // FIXME: REFACTOR for V3
|
|
2667
|
-
// only used in store.js to sanitize server-side formatting of
|
|
2668
|
-
// booleans when checking for `isDevelopmentMode`
|
|
2669
|
-
// Should be removed in v3
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
var returnConvertedBoolean = function returnConvertedBoolean(data) {
|
|
2673
|
-
if (data === 'false' || data === '0') {
|
|
2674
|
-
return false;
|
|
2675
|
-
} else {
|
|
2676
|
-
return Boolean(data);
|
|
2677
|
-
}
|
|
2678
|
-
};
|
|
2679
|
-
|
|
2680
|
-
var decoded = function decoded(s) {
|
|
2681
|
-
return decodeURIComponent(s.replace(/\+/g, ' '));
|
|
2682
|
-
};
|
|
2683
|
-
|
|
2684
|
-
var converted = function converted(s) {
|
|
2685
|
-
if (s.indexOf('"') === 0) {
|
|
2686
|
-
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
|
2687
|
-
}
|
|
2688
|
-
|
|
2689
|
-
return s;
|
|
2690
|
-
};
|
|
2691
|
-
|
|
2692
|
-
var isString = function isString(value) {
|
|
2693
|
-
return typeof value === 'string';
|
|
2694
|
-
};
|
|
2695
|
-
|
|
2696
|
-
var isNumber = function isNumber(value) {
|
|
2697
|
-
return typeof value === 'number';
|
|
2698
|
-
};
|
|
2699
|
-
|
|
2700
|
-
var isFunction = function isFunction(fn) {
|
|
2701
|
-
return typeof fn === 'function';
|
|
2702
|
-
}; // TODO: Refactor this to a regex
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
var isDataPlanSlug = function isDataPlanSlug(str) {
|
|
2706
|
-
return isString(str) && str === slugify(str);
|
|
2707
|
-
};
|
|
2708
|
-
|
|
2709
|
-
var isStringOrNumber = function isStringOrNumber(value) {
|
|
2710
|
-
return isString(value) || isNumber(value);
|
|
2711
|
-
};
|
|
2712
|
-
|
|
2713
2734
|
var Validators = {
|
|
2714
2735
|
// From ./utils
|
|
2736
|
+
// Utility Functions for backwards compatability
|
|
2715
2737
|
isNumber: isNumber,
|
|
2716
2738
|
isFunction: isFunction,
|
|
2717
2739
|
isStringOrNumber: isStringOrNumber,
|
|
2740
|
+
// Validator Functions
|
|
2718
2741
|
isValidAttributeValue: function isValidAttributeValue(value) {
|
|
2719
2742
|
return value !== undefined && !isObject(value) && !Array.isArray(value);
|
|
2720
2743
|
},
|
|
2744
|
+
// Validator Functions
|
|
2721
2745
|
// Neither null nor undefined can be a valid Key
|
|
2722
2746
|
isValidKeyValue: function isValidKeyValue(key) {
|
|
2723
2747
|
return Boolean(key && !isObject(key) && !Array.isArray(key) && !this.isFunction(key));
|
|
@@ -3148,14 +3172,6 @@ var mParticle = (function () {
|
|
|
3148
3172
|
return false;
|
|
3149
3173
|
};
|
|
3150
3174
|
|
|
3151
|
-
this.parseStringOrNumber = function (value) {
|
|
3152
|
-
if (Validators.isStringOrNumber(value)) {
|
|
3153
|
-
return value;
|
|
3154
|
-
} else {
|
|
3155
|
-
return null;
|
|
3156
|
-
}
|
|
3157
|
-
};
|
|
3158
|
-
|
|
3159
3175
|
this.generateHash = function (name) {
|
|
3160
3176
|
var hash = 0,
|
|
3161
3177
|
i = 0,
|
|
@@ -3245,7 +3261,8 @@ var mParticle = (function () {
|
|
|
3245
3261
|
this.inArray = inArray;
|
|
3246
3262
|
this.isObject = isObject;
|
|
3247
3263
|
this.decoded = decoded;
|
|
3248
|
-
this.returnConvertedBoolean = returnConvertedBoolean;
|
|
3264
|
+
this.returnConvertedBoolean = returnConvertedBoolean;
|
|
3265
|
+
this.parseStringOrNumber = parseStringOrNumber; // Imported Validators
|
|
3249
3266
|
|
|
3250
3267
|
this.Validators = Validators;
|
|
3251
3268
|
}
|
|
@@ -4171,7 +4188,8 @@ var mParticle = (function () {
|
|
|
4171
4188
|
}
|
|
4172
4189
|
|
|
4173
4190
|
return sdkConfig;
|
|
4174
|
-
}
|
|
4191
|
+
} // TODO: Merge this with SDKStoreApi in sdkRuntimeModels
|
|
4192
|
+
|
|
4175
4193
|
|
|
4176
4194
|
function Store(config, mpInstance) {
|
|
4177
4195
|
var defaultStore = {
|
|
@@ -6498,35 +6516,65 @@ var mParticle = (function () {
|
|
|
6498
6516
|
};
|
|
6499
6517
|
}
|
|
6500
6518
|
|
|
6501
|
-
|
|
6502
|
-
|
|
6503
|
-
function
|
|
6504
|
-
var self = this;
|
|
6519
|
+
// TODO: This file is no longer the server model because the web SDK payload
|
|
6520
|
+
var MessageType = Types.MessageType;
|
|
6521
|
+
var ApplicationTransitionType = Types.ApplicationTransitionType; // TODO: Make this a pure function that returns a new object
|
|
6505
6522
|
|
|
6506
|
-
|
|
6507
|
-
|
|
6508
|
-
|
|
6523
|
+
function convertCustomFlags(event, dto) {
|
|
6524
|
+
var valueArray = [];
|
|
6525
|
+
dto.flags = {};
|
|
6509
6526
|
|
|
6510
|
-
|
|
6511
|
-
|
|
6527
|
+
for (var prop in event.CustomFlags) {
|
|
6528
|
+
valueArray = [];
|
|
6512
6529
|
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
}
|
|
6520
|
-
}
|
|
6521
|
-
|
|
6522
|
-
|
|
6530
|
+
if (event.CustomFlags.hasOwnProperty(prop)) {
|
|
6531
|
+
if (Array.isArray(event.CustomFlags[prop])) {
|
|
6532
|
+
event.CustomFlags[prop].forEach(function (customFlagProperty) {
|
|
6533
|
+
// TODO: Can we use our utility functions here?
|
|
6534
|
+
if (typeof customFlagProperty === 'number' || typeof customFlagProperty === 'string' || typeof customFlagProperty === 'boolean') {
|
|
6535
|
+
valueArray.push(customFlagProperty.toString());
|
|
6536
|
+
}
|
|
6537
|
+
});
|
|
6538
|
+
} else if ( // TODO: Can we use our utility functions here?
|
|
6539
|
+
typeof event.CustomFlags[prop] === 'number' || typeof event.CustomFlags[prop] === 'string' || typeof event.CustomFlags[prop] === 'boolean') {
|
|
6540
|
+
valueArray.push(event.CustomFlags[prop].toString());
|
|
6541
|
+
}
|
|
6523
6542
|
|
|
6524
|
-
|
|
6525
|
-
|
|
6526
|
-
}
|
|
6543
|
+
if (valueArray.length) {
|
|
6544
|
+
dto.flags[prop] = valueArray;
|
|
6527
6545
|
}
|
|
6528
6546
|
}
|
|
6529
6547
|
}
|
|
6548
|
+
}
|
|
6549
|
+
|
|
6550
|
+
function convertProductToDTO(product) {
|
|
6551
|
+
return {
|
|
6552
|
+
id: parseStringOrNumber(product.Sku),
|
|
6553
|
+
nm: parseStringOrNumber(product.Name),
|
|
6554
|
+
pr: parseNumber(product.Price),
|
|
6555
|
+
qt: parseNumber(product.Quantity),
|
|
6556
|
+
br: parseStringOrNumber(product.Brand),
|
|
6557
|
+
va: parseStringOrNumber(product.Variant),
|
|
6558
|
+
ca: parseStringOrNumber(product.Category),
|
|
6559
|
+
ps: parseNumber(product.Position),
|
|
6560
|
+
cc: parseStringOrNumber(product.CouponCode),
|
|
6561
|
+
tpa: parseNumber(product.TotalAmount),
|
|
6562
|
+
attrs: product.Attributes
|
|
6563
|
+
};
|
|
6564
|
+
}
|
|
6565
|
+
|
|
6566
|
+
function convertProductListToDTO(productList) {
|
|
6567
|
+
if (!productList) {
|
|
6568
|
+
return [];
|
|
6569
|
+
}
|
|
6570
|
+
|
|
6571
|
+
return productList.map(function (product) {
|
|
6572
|
+
return convertProductToDTO(product);
|
|
6573
|
+
});
|
|
6574
|
+
}
|
|
6575
|
+
|
|
6576
|
+
function ServerModel(mpInstance) {
|
|
6577
|
+
var self = this; // TODO: Can we refactor this to not mutate the event?
|
|
6530
6578
|
|
|
6531
6579
|
this.appendUserInfo = function (user, event) {
|
|
6532
6580
|
if (!event) {
|
|
@@ -6575,32 +6623,6 @@ var mParticle = (function () {
|
|
|
6575
6623
|
event.UserIdentities = validUserIdentities;
|
|
6576
6624
|
};
|
|
6577
6625
|
|
|
6578
|
-
function convertProductListToDTO(productList) {
|
|
6579
|
-
if (!productList) {
|
|
6580
|
-
return [];
|
|
6581
|
-
}
|
|
6582
|
-
|
|
6583
|
-
return productList.map(function (product) {
|
|
6584
|
-
return convertProductToDTO(product);
|
|
6585
|
-
});
|
|
6586
|
-
}
|
|
6587
|
-
|
|
6588
|
-
function convertProductToDTO(product) {
|
|
6589
|
-
return {
|
|
6590
|
-
id: mpInstance._Helpers.parseStringOrNumber(product.Sku),
|
|
6591
|
-
nm: mpInstance._Helpers.parseStringOrNumber(product.Name),
|
|
6592
|
-
pr: mpInstance._Helpers.parseNumber(product.Price),
|
|
6593
|
-
qt: mpInstance._Helpers.parseNumber(product.Quantity),
|
|
6594
|
-
br: mpInstance._Helpers.parseStringOrNumber(product.Brand),
|
|
6595
|
-
va: mpInstance._Helpers.parseStringOrNumber(product.Variant),
|
|
6596
|
-
ca: mpInstance._Helpers.parseStringOrNumber(product.Category),
|
|
6597
|
-
ps: mpInstance._Helpers.parseNumber(product.Position),
|
|
6598
|
-
cc: mpInstance._Helpers.parseStringOrNumber(product.CouponCode),
|
|
6599
|
-
tpa: mpInstance._Helpers.parseNumber(product.TotalAmount),
|
|
6600
|
-
attrs: product.Attributes
|
|
6601
|
-
};
|
|
6602
|
-
}
|
|
6603
|
-
|
|
6604
6626
|
this.convertToConsentStateDTO = function (state) {
|
|
6605
6627
|
if (!state) {
|
|
6606
6628
|
return null;
|
|
@@ -6660,14 +6682,21 @@ var mParticle = (function () {
|
|
|
6660
6682
|
|
|
6661
6683
|
this.createEventObject = function (event, user) {
|
|
6662
6684
|
var uploadObject = {};
|
|
6663
|
-
var eventObject = {};
|
|
6664
|
-
|
|
6685
|
+
var eventObject = {}; // The `optOut` variable is passed later in this method to the `uploadObject`
|
|
6686
|
+
// so that it can be used to denote whether or not a user has "opted out" of being
|
|
6687
|
+
// tracked. If this is an `optOut` Event, we set `optOut` to the inverse of the SDK's
|
|
6688
|
+
// `isEnabled` boolean which is controlled via `MPInstanceManager.setOptOut`.
|
|
6689
|
+
|
|
6690
|
+
var optOut = event.messageType === Types.MessageType.OptOut ? !mpInstance._Store.isEnabled : null; // TODO: Why is Webview Bridge Enabled or Opt Out necessary here?
|
|
6665
6691
|
|
|
6666
|
-
if (mpInstance._Store.sessionId || event.messageType
|
|
6692
|
+
if (mpInstance._Store.sessionId || event.messageType === Types.MessageType.OptOut || mpInstance._Store.webviewBridgeEnabled) {
|
|
6667
6693
|
if (event.hasOwnProperty('toEventAPIObject')) {
|
|
6668
6694
|
eventObject = event.toEventAPIObject();
|
|
6669
6695
|
} else {
|
|
6670
6696
|
eventObject = {
|
|
6697
|
+
// This is an artifact from v2 events where SessionStart/End and AST event
|
|
6698
|
+
// names are numbers (1, 2, or 10), but going forward with v3, these lifecycle
|
|
6699
|
+
// events do not have names, but are denoted by their `event_type`
|
|
6671
6700
|
EventName: event.name || event.messageType,
|
|
6672
6701
|
EventCategory: event.eventType,
|
|
6673
6702
|
EventAttributes: mpInstance._Helpers.sanitizeAttributes(event.data, event.name),
|
|
@@ -6677,13 +6706,15 @@ var mParticle = (function () {
|
|
|
6677
6706
|
UserAttributeChanges: event.userAttributeChanges,
|
|
6678
6707
|
UserIdentityChanges: event.userIdentityChanges
|
|
6679
6708
|
};
|
|
6680
|
-
}
|
|
6709
|
+
} // TODO: Should we move this side effect outside of this method?
|
|
6710
|
+
|
|
6681
6711
|
|
|
6682
6712
|
if (event.messageType !== Types.MessageType.SessionEnd) {
|
|
6683
6713
|
mpInstance._Store.dateLastEventSent = new Date();
|
|
6684
6714
|
}
|
|
6685
6715
|
|
|
6686
6716
|
uploadObject = {
|
|
6717
|
+
// FIXME: Deprecate when we get rid of V2
|
|
6687
6718
|
Store: mpInstance._Store.serverSettings,
|
|
6688
6719
|
SDKVersion: Constants.sdkVersion,
|
|
6689
6720
|
SessionId: mpInstance._Store.sessionId,
|
|
@@ -6705,7 +6736,8 @@ var mParticle = (function () {
|
|
|
6705
6736
|
if (eventObject.EventDataType === MessageType.AppStateTransition) {
|
|
6706
6737
|
eventObject.IsFirstRun = mpInstance._Store.isFirstRun;
|
|
6707
6738
|
eventObject.LaunchReferral = window.location.href || null;
|
|
6708
|
-
}
|
|
6739
|
+
} // FIXME: Remove duplicate occurence
|
|
6740
|
+
|
|
6709
6741
|
|
|
6710
6742
|
eventObject.CurrencyCode = mpInstance._Store.currencyCode;
|
|
6711
6743
|
var currentUser = user || mpInstance.Identity.getCurrentUser();
|
|
@@ -6713,8 +6745,13 @@ var mParticle = (function () {
|
|
|
6713
6745
|
|
|
6714
6746
|
if (event.messageType === Types.MessageType.SessionEnd) {
|
|
6715
6747
|
eventObject.SessionLength = mpInstance._Store.dateLastEventSent.getTime() - mpInstance._Store.sessionStartDate.getTime();
|
|
6716
|
-
eventObject.currentSessionMPIDs = mpInstance._Store.currentSessionMPIDs;
|
|
6717
|
-
|
|
6748
|
+
eventObject.currentSessionMPIDs = mpInstance._Store.currentSessionMPIDs; // Session attributes are assigned on a session level, but only uploaded
|
|
6749
|
+
// when a session ends. As there is no way to attach event attributes to
|
|
6750
|
+
// a `SessionEnd` event, we are uploading the session level attributes
|
|
6751
|
+
// as event level attributes in a `SessionEnd` event.
|
|
6752
|
+
|
|
6753
|
+
eventObject.EventAttributes = mpInstance._Store.sessionAttributes; // TODO: We should move this out of here to avoid side effects
|
|
6754
|
+
|
|
6718
6755
|
mpInstance._Store.currentSessionMPIDs = [];
|
|
6719
6756
|
mpInstance._Store.sessionStartDate = null;
|
|
6720
6757
|
}
|
|
@@ -6770,7 +6807,9 @@ var mParticle = (function () {
|
|
|
6770
6807
|
dto.fr = event.IsFirstRun;
|
|
6771
6808
|
dto.iu = false;
|
|
6772
6809
|
dto.at = ApplicationTransitionType.AppInit;
|
|
6773
|
-
dto.lr = event.LaunchReferral;
|
|
6810
|
+
dto.lr = event.LaunchReferral; // Nullify Attributes in case AST Was logged manually or
|
|
6811
|
+
// via logBaseEvent. AST should not have any attributes
|
|
6812
|
+
|
|
6774
6813
|
dto.attrs = null;
|
|
6775
6814
|
}
|
|
6776
6815
|
|
|
@@ -6779,7 +6818,7 @@ var mParticle = (function () {
|
|
|
6779
6818
|
}
|
|
6780
6819
|
|
|
6781
6820
|
if (event.EventDataType === MessageType.Commerce) {
|
|
6782
|
-
dto.cu = event.CurrencyCode;
|
|
6821
|
+
dto.cu = event.CurrencyCode; // TODO: If Cart is deprecated, we should deprecate this too
|
|
6783
6822
|
|
|
6784
6823
|
if (event.ShoppingCart) {
|
|
6785
6824
|
dto.sc = {
|
|
@@ -9371,6 +9410,16 @@ var mParticle = (function () {
|
|
|
9371
9410
|
self._preInit.readyQueue.push(f);
|
|
9372
9411
|
}
|
|
9373
9412
|
};
|
|
9413
|
+
/**
|
|
9414
|
+
* Returns the current mParticle environment setting
|
|
9415
|
+
* @method getEnvironment
|
|
9416
|
+
* @returns {String} mParticle environment setting
|
|
9417
|
+
*/
|
|
9418
|
+
|
|
9419
|
+
|
|
9420
|
+
this.getEnvironment = function () {
|
|
9421
|
+
return self._Store.SDKConfig.isDevelopmentMode ? Types.Environment.Development : Types.Environment.Production;
|
|
9422
|
+
};
|
|
9374
9423
|
/**
|
|
9375
9424
|
* Returns the mParticle SDK version number
|
|
9376
9425
|
* @method getVersion
|
|
@@ -10250,9 +10299,44 @@ var mParticle = (function () {
|
|
|
10250
10299
|
this._getIntegrationDelays = function () {
|
|
10251
10300
|
return self._preInit.integrationDelays;
|
|
10252
10301
|
};
|
|
10302
|
+
/*
|
|
10303
|
+
An integration delay is a workaround that prevents events from being sent when it is necessary to do so.
|
|
10304
|
+
Some server side integrations require a client side value to be included in the payload to successfully
|
|
10305
|
+
forward. This value can only be pulled from the client side partner SDK.
|
|
10306
|
+
During the kit initialization, the kit:
|
|
10307
|
+
* sets an integration delay to `true`
|
|
10308
|
+
* grabs the required value from the partner SDK,
|
|
10309
|
+
* sets it via `setIntegrationAttribute`
|
|
10310
|
+
* sets the integration delay to `false`
|
|
10311
|
+
The core SDK can then read via `isDelayedByIntegration` to no longer delay sending events.
|
|
10312
|
+
This integration attribute is now on the batch payload for the server side to read.
|
|
10313
|
+
If there is no delay, then the events sent before an integration attribute is included would not
|
|
10314
|
+
be forwarded successfully server side.
|
|
10315
|
+
*/
|
|
10316
|
+
|
|
10317
|
+
|
|
10318
|
+
this._setIntegrationDelay = function (module, shouldDelayIntegration) {
|
|
10319
|
+
self._preInit.integrationDelays[module] = shouldDelayIntegration; // If the integration delay is set to true, no further action needed
|
|
10320
|
+
|
|
10321
|
+
if (shouldDelayIntegration === true) {
|
|
10322
|
+
return;
|
|
10323
|
+
} // If the integration delay is set to false, check to see if there are any
|
|
10324
|
+
// other integration delays set to true. It not, process the queued events/.
|
|
10325
|
+
|
|
10326
|
+
|
|
10327
|
+
var integrationDelaysKeys = Object.keys(self._preInit.integrationDelays);
|
|
10328
|
+
|
|
10329
|
+
if (integrationDelaysKeys.length === 0) {
|
|
10330
|
+
return;
|
|
10331
|
+
}
|
|
10332
|
+
|
|
10333
|
+
var hasIntegrationDelays = integrationDelaysKeys.some(function (integration) {
|
|
10334
|
+
return self._preInit.integrationDelays[integration] === true;
|
|
10335
|
+
});
|
|
10253
10336
|
|
|
10254
|
-
|
|
10255
|
-
|
|
10337
|
+
if (!hasIntegrationDelays) {
|
|
10338
|
+
self._APIClient.processQueuedEvents();
|
|
10339
|
+
}
|
|
10256
10340
|
};
|
|
10257
10341
|
} // Some (server) config settings need to be returned before they are set on SDKConfig in a self hosted environment
|
|
10258
10342
|
|
|
@@ -10514,6 +10598,10 @@ var mParticle = (function () {
|
|
|
10514
10598
|
|
|
10515
10599
|
// This file is used ONLY for the mParticle ESLint plugin. It should NOT be used otherwise!
|
|
10516
10600
|
|
|
10601
|
+
var mockFunction = function mockFunction() {
|
|
10602
|
+
return null;
|
|
10603
|
+
};
|
|
10604
|
+
|
|
10517
10605
|
var _BatchValidator =
|
|
10518
10606
|
/** @class */
|
|
10519
10607
|
function () {
|
|
@@ -10527,23 +10615,90 @@ var mParticle = (function () {
|
|
|
10527
10615
|
generateUniqueId: function generateUniqueId() {
|
|
10528
10616
|
return 'mockId';
|
|
10529
10617
|
},
|
|
10530
|
-
extend: window.mParticle.getInstance()._Helpers.extend
|
|
10618
|
+
extend: window.mParticle.getInstance()._Helpers.extend,
|
|
10619
|
+
createServiceUrl: mockFunction,
|
|
10620
|
+
parseNumber: mockFunction,
|
|
10621
|
+
isObject: mockFunction,
|
|
10622
|
+
returnConvertedBoolean: mockFunction,
|
|
10623
|
+
Validators: null
|
|
10531
10624
|
},
|
|
10625
|
+
_resetForTests: mockFunction,
|
|
10626
|
+
_APIClient: null,
|
|
10627
|
+
_Consent: null,
|
|
10628
|
+
_ServerModel: null,
|
|
10629
|
+
_SessionManager: null,
|
|
10532
10630
|
_Store: {
|
|
10533
10631
|
sessionId: 'mockSessionId',
|
|
10534
|
-
|
|
10632
|
+
devToken: 'test_dev_token',
|
|
10633
|
+
isFirstRun: true,
|
|
10634
|
+
isEnabled: true,
|
|
10635
|
+
sessionAttributes: {},
|
|
10636
|
+
currentSessionMPIDs: [],
|
|
10637
|
+
consentState: null,
|
|
10638
|
+
clientId: null,
|
|
10639
|
+
deviceId: null,
|
|
10640
|
+
migrationData: {},
|
|
10641
|
+
serverSettings: {},
|
|
10642
|
+
dateLastEventSent: null,
|
|
10643
|
+
sessionStartDate: null,
|
|
10644
|
+
currentPosition: null,
|
|
10645
|
+
isTracking: false,
|
|
10646
|
+
watchPositionId: null,
|
|
10647
|
+
cartProducts: [],
|
|
10648
|
+
eventQueue: [],
|
|
10649
|
+
currencyCode: null,
|
|
10650
|
+
globalTimer: null,
|
|
10651
|
+
context: null,
|
|
10652
|
+
configurationLoaded: false,
|
|
10653
|
+
identityCallInFlight: false,
|
|
10654
|
+
migratingToIDSyncCookies: false,
|
|
10655
|
+
nonCurrentUserMPIDs: {},
|
|
10656
|
+
identifyCalled: false,
|
|
10657
|
+
isLoggedIn: false,
|
|
10658
|
+
cookieSyncDates: {},
|
|
10659
|
+
integrationAttributes: {},
|
|
10660
|
+
requireDelay: true,
|
|
10661
|
+
isLocalStorageAvailable: null,
|
|
10662
|
+
integrationDelayTimeoutStart: null,
|
|
10663
|
+
storageName: null,
|
|
10664
|
+
prodStorageName: null,
|
|
10665
|
+
activeForwarders: [],
|
|
10666
|
+
kits: {},
|
|
10667
|
+
configuredForwarders: [],
|
|
10668
|
+
pixelConfigurations: [],
|
|
10669
|
+
SDKConfig: {
|
|
10670
|
+
isDevelopmentMode: false,
|
|
10671
|
+
onCreateBatch: mockFunction
|
|
10672
|
+
}
|
|
10535
10673
|
},
|
|
10674
|
+
config: null,
|
|
10675
|
+
eCommerce: null,
|
|
10536
10676
|
Identity: {
|
|
10537
|
-
getCurrentUser:
|
|
10538
|
-
|
|
10539
|
-
|
|
10677
|
+
getCurrentUser: mockFunction,
|
|
10678
|
+
IdentityAPI: {},
|
|
10679
|
+
identify: mockFunction,
|
|
10680
|
+
login: mockFunction,
|
|
10681
|
+
logout: mockFunction,
|
|
10682
|
+
modify: mockFunction
|
|
10540
10683
|
},
|
|
10541
|
-
|
|
10542
|
-
|
|
10684
|
+
Logger: {
|
|
10685
|
+
verbose: mockFunction,
|
|
10686
|
+
error: mockFunction,
|
|
10687
|
+
warning: mockFunction
|
|
10543
10688
|
},
|
|
10544
|
-
|
|
10545
|
-
|
|
10546
|
-
|
|
10689
|
+
ProductActionType: null,
|
|
10690
|
+
ServerModel: null,
|
|
10691
|
+
addForwarder: mockFunction,
|
|
10692
|
+
generateHash: mockFunction,
|
|
10693
|
+
getAppVersion: mockFunction,
|
|
10694
|
+
getAppName: mockFunction,
|
|
10695
|
+
getInstance: mockFunction,
|
|
10696
|
+
init: mockFunction,
|
|
10697
|
+
logBaseEvent: mockFunction,
|
|
10698
|
+
logEvent: mockFunction,
|
|
10699
|
+
logLevel: 'none',
|
|
10700
|
+
setPosition: mockFunction,
|
|
10701
|
+
upload: mockFunction
|
|
10547
10702
|
};
|
|
10548
10703
|
};
|
|
10549
10704
|
|
|
@@ -10685,6 +10840,10 @@ var mParticle = (function () {
|
|
|
10685
10840
|
return self.getInstance().getAppVersion();
|
|
10686
10841
|
};
|
|
10687
10842
|
|
|
10843
|
+
this.getEnvironment = function () {
|
|
10844
|
+
return self.getInstance().getEnvironment();
|
|
10845
|
+
};
|
|
10846
|
+
|
|
10688
10847
|
this.stopTrackingLocation = function () {
|
|
10689
10848
|
self.getInstance().stopTrackingLocation();
|
|
10690
10849
|
};
|