@mparticle/web-sdk 2.18.0 → 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 +30 -19
- package/dist/mparticle.esm.js +30 -19
- package/dist/mparticle.js +338 -236
- package/package.json +2 -2
- package/src/batchUploader.ts +23 -8
- package/src/mockBatchCreator.ts +80 -9
- package/src/sdkRuntimeModels.ts +34 -11
- package/src/{serverModel.js → serverModel.ts} +260 -75
- package/src/store.ts +4 -2
- package/src/utils.ts +4 -0
- package/src/validators.ts +1 -0
package/dist/mparticle.js
CHANGED
|
@@ -725,7 +725,7 @@ var mParticle = (function () {
|
|
|
725
725
|
Environment: Environment
|
|
726
726
|
};
|
|
727
727
|
|
|
728
|
-
var version = "2.18.
|
|
728
|
+
var version = "2.18.1";
|
|
729
729
|
|
|
730
730
|
var Constants = {
|
|
731
731
|
sdkVersion: version,
|
|
@@ -1935,6 +1935,173 @@ var mParticle = (function () {
|
|
|
1935
1935
|
}
|
|
1936
1936
|
}
|
|
1937
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
|
+
|
|
1938
2105
|
var BatchUploader =
|
|
1939
2106
|
/** @class */
|
|
1940
2107
|
function () {
|
|
@@ -1987,7 +2154,7 @@ var mParticle = (function () {
|
|
|
1987
2154
|
};
|
|
1988
2155
|
|
|
1989
2156
|
BatchUploader.prototype.queueEvent = function (event) {
|
|
1990
|
-
if (event) {
|
|
2157
|
+
if (!isEmpty(event)) {
|
|
1991
2158
|
this.pendingEvents.push(event);
|
|
1992
2159
|
this.mpInstance.Logger.verbose("Queuing event: ".concat(JSON.stringify(event)));
|
|
1993
2160
|
this.mpInstance.Logger.verbose("Queued event count: ".concat(this.pendingEvents.length));
|
|
@@ -2133,13 +2300,17 @@ var mParticle = (function () {
|
|
|
2133
2300
|
});
|
|
2134
2301
|
};
|
|
2135
2302
|
|
|
2136
|
-
BatchUploader.prototype.upload = function (logger,
|
|
2303
|
+
BatchUploader.prototype.upload = function (logger, _uploads, useBeacon) {
|
|
2137
2304
|
return __awaiter(this, void 0, void 0, function () {
|
|
2138
|
-
var uploader, i, fetchPayload, blob, response, e_1;
|
|
2305
|
+
var uploader, uploads, i, fetchPayload, blob, response, e_1;
|
|
2139
2306
|
return __generator(this, function (_a) {
|
|
2140
2307
|
switch (_a.label) {
|
|
2141
2308
|
case 0:
|
|
2142
|
-
|
|
2309
|
+
uploads = _uploads.filter(function (upload) {
|
|
2310
|
+
return !isEmpty(upload.events);
|
|
2311
|
+
});
|
|
2312
|
+
|
|
2313
|
+
if (isEmpty(uploads)) {
|
|
2143
2314
|
return [2
|
|
2144
2315
|
/*return*/
|
|
2145
2316
|
, null];
|
|
@@ -2560,175 +2731,13 @@ var mParticle = (function () {
|
|
|
2560
2731
|
};
|
|
2561
2732
|
}
|
|
2562
2733
|
|
|
2563
|
-
var slugify$1 = {exports: {}};
|
|
2564
|
-
|
|
2565
|
-
(function (module, exports) {
|
|
2566
|
-
(function (name, root, factory) {
|
|
2567
|
-
{
|
|
2568
|
-
module.exports = factory();
|
|
2569
|
-
module.exports['default'] = factory();
|
|
2570
|
-
}
|
|
2571
|
-
}('slugify', commonjsGlobal, function () {
|
|
2572
|
-
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"}');
|
|
2573
|
-
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"}}');
|
|
2574
|
-
|
|
2575
|
-
function replace (string, options) {
|
|
2576
|
-
if (typeof string !== 'string') {
|
|
2577
|
-
throw new Error('slugify: string argument expected')
|
|
2578
|
-
}
|
|
2579
|
-
|
|
2580
|
-
options = (typeof options === 'string')
|
|
2581
|
-
? {replacement: options}
|
|
2582
|
-
: options || {};
|
|
2583
|
-
|
|
2584
|
-
var locale = locales[options.locale] || {};
|
|
2585
|
-
|
|
2586
|
-
var replacement = options.replacement === undefined ? '-' : options.replacement;
|
|
2587
|
-
|
|
2588
|
-
var trim = options.trim === undefined ? true : options.trim;
|
|
2589
|
-
|
|
2590
|
-
var slug = string.normalize().split('')
|
|
2591
|
-
// replace characters based on charMap
|
|
2592
|
-
.reduce(function (result, ch) {
|
|
2593
|
-
var appendChar = locale[ch] || charMap[ch] || ch;
|
|
2594
|
-
if (appendChar === replacement) {
|
|
2595
|
-
appendChar = ' ';
|
|
2596
|
-
}
|
|
2597
|
-
return result + appendChar
|
|
2598
|
-
// remove not allowed characters
|
|
2599
|
-
.replace(options.remove || /[^\w\s$*_+~.()'"!\-:@]+/g, '')
|
|
2600
|
-
}, '');
|
|
2601
|
-
|
|
2602
|
-
if (options.strict) {
|
|
2603
|
-
slug = slug.replace(/[^A-Za-z0-9\s]/g, '');
|
|
2604
|
-
}
|
|
2605
|
-
|
|
2606
|
-
if (trim) {
|
|
2607
|
-
slug = slug.trim();
|
|
2608
|
-
}
|
|
2609
|
-
|
|
2610
|
-
// Replace spaces with replacement character, treating multiple consecutive
|
|
2611
|
-
// spaces as a single space.
|
|
2612
|
-
slug = slug.replace(/\s+/g, replacement);
|
|
2613
|
-
|
|
2614
|
-
if (options.lower) {
|
|
2615
|
-
slug = slug.toLowerCase();
|
|
2616
|
-
}
|
|
2617
|
-
|
|
2618
|
-
return slug
|
|
2619
|
-
}
|
|
2620
|
-
|
|
2621
|
-
replace.extend = function (customMap) {
|
|
2622
|
-
Object.assign(charMap, customMap);
|
|
2623
|
-
};
|
|
2624
|
-
|
|
2625
|
-
return replace
|
|
2626
|
-
}));
|
|
2627
|
-
} (slugify$1));
|
|
2628
|
-
|
|
2629
|
-
var slugify = slugify$1.exports;
|
|
2630
|
-
|
|
2631
|
-
var inArray = function inArray(items, name) {
|
|
2632
|
-
var i = 0;
|
|
2633
|
-
|
|
2634
|
-
if (Array.prototype.indexOf) {
|
|
2635
|
-
return items.indexOf(name, 0) >= 0;
|
|
2636
|
-
} else {
|
|
2637
|
-
for (var n = items.length; i < n; i++) {
|
|
2638
|
-
if (i in items && items[i] === name) {
|
|
2639
|
-
return true;
|
|
2640
|
-
}
|
|
2641
|
-
}
|
|
2642
|
-
}
|
|
2643
|
-
|
|
2644
|
-
return false;
|
|
2645
|
-
};
|
|
2646
|
-
|
|
2647
|
-
var findKeyInObject = function findKeyInObject(obj, key) {
|
|
2648
|
-
if (key && obj) {
|
|
2649
|
-
for (var prop in obj) {
|
|
2650
|
-
if (obj.hasOwnProperty(prop) && prop.toLowerCase() === key.toLowerCase()) {
|
|
2651
|
-
return prop;
|
|
2652
|
-
}
|
|
2653
|
-
}
|
|
2654
|
-
}
|
|
2655
|
-
|
|
2656
|
-
return null;
|
|
2657
|
-
};
|
|
2658
|
-
|
|
2659
|
-
var isObject = function isObject(value) {
|
|
2660
|
-
var objType = Object.prototype.toString.call(value);
|
|
2661
|
-
return objType === '[object Object]' || objType === '[object Error]';
|
|
2662
|
-
};
|
|
2663
|
-
|
|
2664
|
-
var parseNumber = function parseNumber(value) {
|
|
2665
|
-
if (isNaN(value) || !isFinite(value)) {
|
|
2666
|
-
return 0;
|
|
2667
|
-
}
|
|
2668
|
-
|
|
2669
|
-
var floatValue = parseFloat(value);
|
|
2670
|
-
return isNaN(floatValue) ? 0 : floatValue;
|
|
2671
|
-
};
|
|
2672
|
-
|
|
2673
|
-
var parseStringOrNumber = function parseStringOrNumber(value) {
|
|
2674
|
-
if (isStringOrNumber(value)) {
|
|
2675
|
-
return value;
|
|
2676
|
-
} else {
|
|
2677
|
-
return null;
|
|
2678
|
-
}
|
|
2679
|
-
}; // FIXME: REFACTOR for V3
|
|
2680
|
-
// only used in store.js to sanitize server-side formatting of
|
|
2681
|
-
// booleans when checking for `isDevelopmentMode`
|
|
2682
|
-
// Should be removed in v3
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
var returnConvertedBoolean = function returnConvertedBoolean(data) {
|
|
2686
|
-
if (data === 'false' || data === '0') {
|
|
2687
|
-
return false;
|
|
2688
|
-
} else {
|
|
2689
|
-
return Boolean(data);
|
|
2690
|
-
}
|
|
2691
|
-
};
|
|
2692
|
-
|
|
2693
|
-
var decoded = function decoded(s) {
|
|
2694
|
-
return decodeURIComponent(s.replace(/\+/g, ' '));
|
|
2695
|
-
};
|
|
2696
|
-
|
|
2697
|
-
var converted = function converted(s) {
|
|
2698
|
-
if (s.indexOf('"') === 0) {
|
|
2699
|
-
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
|
2700
|
-
}
|
|
2701
|
-
|
|
2702
|
-
return s;
|
|
2703
|
-
};
|
|
2704
|
-
|
|
2705
|
-
var isString = function isString(value) {
|
|
2706
|
-
return typeof value === 'string';
|
|
2707
|
-
};
|
|
2708
|
-
|
|
2709
|
-
var isNumber = function isNumber(value) {
|
|
2710
|
-
return typeof value === 'number';
|
|
2711
|
-
};
|
|
2712
|
-
|
|
2713
|
-
var isFunction = function isFunction(fn) {
|
|
2714
|
-
return typeof fn === 'function';
|
|
2715
|
-
}; // TODO: Refactor this to a regex
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
var isDataPlanSlug = function isDataPlanSlug(str) {
|
|
2719
|
-
return isString(str) && str === slugify(str);
|
|
2720
|
-
};
|
|
2721
|
-
|
|
2722
|
-
var isStringOrNumber = function isStringOrNumber(value) {
|
|
2723
|
-
return isString(value) || isNumber(value);
|
|
2724
|
-
};
|
|
2725
|
-
|
|
2726
2734
|
var Validators = {
|
|
2727
2735
|
// From ./utils
|
|
2728
2736
|
// Utility Functions for backwards compatability
|
|
2729
2737
|
isNumber: isNumber,
|
|
2730
2738
|
isFunction: isFunction,
|
|
2731
2739
|
isStringOrNumber: isStringOrNumber,
|
|
2740
|
+
// Validator Functions
|
|
2732
2741
|
isValidAttributeValue: function isValidAttributeValue(value) {
|
|
2733
2742
|
return value !== undefined && !isObject(value) && !Array.isArray(value);
|
|
2734
2743
|
},
|
|
@@ -4179,7 +4188,8 @@ var mParticle = (function () {
|
|
|
4179
4188
|
}
|
|
4180
4189
|
|
|
4181
4190
|
return sdkConfig;
|
|
4182
|
-
}
|
|
4191
|
+
} // TODO: Merge this with SDKStoreApi in sdkRuntimeModels
|
|
4192
|
+
|
|
4183
4193
|
|
|
4184
4194
|
function Store(config, mpInstance) {
|
|
4185
4195
|
var defaultStore = {
|
|
@@ -6506,35 +6516,65 @@ var mParticle = (function () {
|
|
|
6506
6516
|
};
|
|
6507
6517
|
}
|
|
6508
6518
|
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
function
|
|
6512
|
-
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
|
|
6513
6522
|
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6523
|
+
function convertCustomFlags(event, dto) {
|
|
6524
|
+
var valueArray = [];
|
|
6525
|
+
dto.flags = {};
|
|
6517
6526
|
|
|
6518
|
-
|
|
6519
|
-
|
|
6527
|
+
for (var prop in event.CustomFlags) {
|
|
6528
|
+
valueArray = [];
|
|
6520
6529
|
|
|
6521
|
-
|
|
6522
|
-
|
|
6523
|
-
|
|
6524
|
-
|
|
6525
|
-
|
|
6526
|
-
|
|
6527
|
-
}
|
|
6528
|
-
}
|
|
6529
|
-
|
|
6530
|
-
|
|
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
|
+
}
|
|
6531
6542
|
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
}
|
|
6543
|
+
if (valueArray.length) {
|
|
6544
|
+
dto.flags[prop] = valueArray;
|
|
6535
6545
|
}
|
|
6536
6546
|
}
|
|
6537
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?
|
|
6538
6578
|
|
|
6539
6579
|
this.appendUserInfo = function (user, event) {
|
|
6540
6580
|
if (!event) {
|
|
@@ -6583,32 +6623,6 @@ var mParticle = (function () {
|
|
|
6583
6623
|
event.UserIdentities = validUserIdentities;
|
|
6584
6624
|
};
|
|
6585
6625
|
|
|
6586
|
-
function convertProductListToDTO(productList) {
|
|
6587
|
-
if (!productList) {
|
|
6588
|
-
return [];
|
|
6589
|
-
}
|
|
6590
|
-
|
|
6591
|
-
return productList.map(function (product) {
|
|
6592
|
-
return convertProductToDTO(product);
|
|
6593
|
-
});
|
|
6594
|
-
}
|
|
6595
|
-
|
|
6596
|
-
function convertProductToDTO(product) {
|
|
6597
|
-
return {
|
|
6598
|
-
id: mpInstance._Helpers.parseStringOrNumber(product.Sku),
|
|
6599
|
-
nm: mpInstance._Helpers.parseStringOrNumber(product.Name),
|
|
6600
|
-
pr: mpInstance._Helpers.parseNumber(product.Price),
|
|
6601
|
-
qt: mpInstance._Helpers.parseNumber(product.Quantity),
|
|
6602
|
-
br: mpInstance._Helpers.parseStringOrNumber(product.Brand),
|
|
6603
|
-
va: mpInstance._Helpers.parseStringOrNumber(product.Variant),
|
|
6604
|
-
ca: mpInstance._Helpers.parseStringOrNumber(product.Category),
|
|
6605
|
-
ps: mpInstance._Helpers.parseNumber(product.Position),
|
|
6606
|
-
cc: mpInstance._Helpers.parseStringOrNumber(product.CouponCode),
|
|
6607
|
-
tpa: mpInstance._Helpers.parseNumber(product.TotalAmount),
|
|
6608
|
-
attrs: product.Attributes
|
|
6609
|
-
};
|
|
6610
|
-
}
|
|
6611
|
-
|
|
6612
6626
|
this.convertToConsentStateDTO = function (state) {
|
|
6613
6627
|
if (!state) {
|
|
6614
6628
|
return null;
|
|
@@ -6668,14 +6682,21 @@ var mParticle = (function () {
|
|
|
6668
6682
|
|
|
6669
6683
|
this.createEventObject = function (event, user) {
|
|
6670
6684
|
var uploadObject = {};
|
|
6671
|
-
var eventObject = {};
|
|
6672
|
-
|
|
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`.
|
|
6673
6689
|
|
|
6674
|
-
|
|
6690
|
+
var optOut = event.messageType === Types.MessageType.OptOut ? !mpInstance._Store.isEnabled : null; // TODO: Why is Webview Bridge Enabled or Opt Out necessary here?
|
|
6691
|
+
|
|
6692
|
+
if (mpInstance._Store.sessionId || event.messageType === Types.MessageType.OptOut || mpInstance._Store.webviewBridgeEnabled) {
|
|
6675
6693
|
if (event.hasOwnProperty('toEventAPIObject')) {
|
|
6676
6694
|
eventObject = event.toEventAPIObject();
|
|
6677
6695
|
} else {
|
|
6678
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`
|
|
6679
6700
|
EventName: event.name || event.messageType,
|
|
6680
6701
|
EventCategory: event.eventType,
|
|
6681
6702
|
EventAttributes: mpInstance._Helpers.sanitizeAttributes(event.data, event.name),
|
|
@@ -6685,13 +6706,15 @@ var mParticle = (function () {
|
|
|
6685
6706
|
UserAttributeChanges: event.userAttributeChanges,
|
|
6686
6707
|
UserIdentityChanges: event.userIdentityChanges
|
|
6687
6708
|
};
|
|
6688
|
-
}
|
|
6709
|
+
} // TODO: Should we move this side effect outside of this method?
|
|
6710
|
+
|
|
6689
6711
|
|
|
6690
6712
|
if (event.messageType !== Types.MessageType.SessionEnd) {
|
|
6691
6713
|
mpInstance._Store.dateLastEventSent = new Date();
|
|
6692
6714
|
}
|
|
6693
6715
|
|
|
6694
6716
|
uploadObject = {
|
|
6717
|
+
// FIXME: Deprecate when we get rid of V2
|
|
6695
6718
|
Store: mpInstance._Store.serverSettings,
|
|
6696
6719
|
SDKVersion: Constants.sdkVersion,
|
|
6697
6720
|
SessionId: mpInstance._Store.sessionId,
|
|
@@ -6713,7 +6736,8 @@ var mParticle = (function () {
|
|
|
6713
6736
|
if (eventObject.EventDataType === MessageType.AppStateTransition) {
|
|
6714
6737
|
eventObject.IsFirstRun = mpInstance._Store.isFirstRun;
|
|
6715
6738
|
eventObject.LaunchReferral = window.location.href || null;
|
|
6716
|
-
}
|
|
6739
|
+
} // FIXME: Remove duplicate occurence
|
|
6740
|
+
|
|
6717
6741
|
|
|
6718
6742
|
eventObject.CurrencyCode = mpInstance._Store.currencyCode;
|
|
6719
6743
|
var currentUser = user || mpInstance.Identity.getCurrentUser();
|
|
@@ -6721,8 +6745,13 @@ var mParticle = (function () {
|
|
|
6721
6745
|
|
|
6722
6746
|
if (event.messageType === Types.MessageType.SessionEnd) {
|
|
6723
6747
|
eventObject.SessionLength = mpInstance._Store.dateLastEventSent.getTime() - mpInstance._Store.sessionStartDate.getTime();
|
|
6724
|
-
eventObject.currentSessionMPIDs = mpInstance._Store.currentSessionMPIDs;
|
|
6725
|
-
|
|
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
|
+
|
|
6726
6755
|
mpInstance._Store.currentSessionMPIDs = [];
|
|
6727
6756
|
mpInstance._Store.sessionStartDate = null;
|
|
6728
6757
|
}
|
|
@@ -6778,7 +6807,9 @@ var mParticle = (function () {
|
|
|
6778
6807
|
dto.fr = event.IsFirstRun;
|
|
6779
6808
|
dto.iu = false;
|
|
6780
6809
|
dto.at = ApplicationTransitionType.AppInit;
|
|
6781
|
-
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
|
+
|
|
6782
6813
|
dto.attrs = null;
|
|
6783
6814
|
}
|
|
6784
6815
|
|
|
@@ -6787,7 +6818,7 @@ var mParticle = (function () {
|
|
|
6787
6818
|
}
|
|
6788
6819
|
|
|
6789
6820
|
if (event.EventDataType === MessageType.Commerce) {
|
|
6790
|
-
dto.cu = event.CurrencyCode;
|
|
6821
|
+
dto.cu = event.CurrencyCode; // TODO: If Cart is deprecated, we should deprecate this too
|
|
6791
6822
|
|
|
6792
6823
|
if (event.ShoppingCart) {
|
|
6793
6824
|
dto.sc = {
|
|
@@ -10567,6 +10598,10 @@ var mParticle = (function () {
|
|
|
10567
10598
|
|
|
10568
10599
|
// This file is used ONLY for the mParticle ESLint plugin. It should NOT be used otherwise!
|
|
10569
10600
|
|
|
10601
|
+
var mockFunction = function mockFunction() {
|
|
10602
|
+
return null;
|
|
10603
|
+
};
|
|
10604
|
+
|
|
10570
10605
|
var _BatchValidator =
|
|
10571
10606
|
/** @class */
|
|
10572
10607
|
function () {
|
|
@@ -10580,23 +10615,90 @@ var mParticle = (function () {
|
|
|
10580
10615
|
generateUniqueId: function generateUniqueId() {
|
|
10581
10616
|
return 'mockId';
|
|
10582
10617
|
},
|
|
10583
|
-
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
|
|
10584
10624
|
},
|
|
10625
|
+
_resetForTests: mockFunction,
|
|
10626
|
+
_APIClient: null,
|
|
10627
|
+
_Consent: null,
|
|
10628
|
+
_ServerModel: null,
|
|
10629
|
+
_SessionManager: null,
|
|
10585
10630
|
_Store: {
|
|
10586
10631
|
sessionId: 'mockSessionId',
|
|
10587
|
-
|
|
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
|
+
}
|
|
10588
10673
|
},
|
|
10674
|
+
config: null,
|
|
10675
|
+
eCommerce: null,
|
|
10589
10676
|
Identity: {
|
|
10590
|
-
getCurrentUser:
|
|
10591
|
-
|
|
10592
|
-
|
|
10677
|
+
getCurrentUser: mockFunction,
|
|
10678
|
+
IdentityAPI: {},
|
|
10679
|
+
identify: mockFunction,
|
|
10680
|
+
login: mockFunction,
|
|
10681
|
+
logout: mockFunction,
|
|
10682
|
+
modify: mockFunction
|
|
10593
10683
|
},
|
|
10594
|
-
|
|
10595
|
-
|
|
10684
|
+
Logger: {
|
|
10685
|
+
verbose: mockFunction,
|
|
10686
|
+
error: mockFunction,
|
|
10687
|
+
warning: mockFunction
|
|
10596
10688
|
},
|
|
10597
|
-
|
|
10598
|
-
|
|
10599
|
-
|
|
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
|
|
10600
10702
|
};
|
|
10601
10703
|
};
|
|
10602
10704
|
|