This commit is contained in:
Tony Volpe
2024-06-17 14:41:24 -04:00
parent f885e93ca8
commit a00f379f7f
11158 changed files with 0 additions and 1781316 deletions

View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2018 Alex Fedoseev
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,878 +0,0 @@
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.sbjs=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
"use strict";
var init = _dereq_('./init');
var sbjs = {
init: function(prefs) {
this.get = init(prefs);
if (prefs && prefs.callback && typeof prefs.callback === 'function') {
prefs.callback(this.get);
}
}
};
module.exports = sbjs;
},{"./init":6}],2:[function(_dereq_,module,exports){
"use strict";
var terms = _dereq_('./terms'),
utils = _dereq_('./helpers/utils');
var data = {
containers: {
current: 'sbjs_current',
current_extra: 'sbjs_current_add',
first: 'sbjs_first',
first_extra: 'sbjs_first_add',
session: 'sbjs_session',
udata: 'sbjs_udata',
promocode: 'sbjs_promo'
},
service: {
migrations: 'sbjs_migrations'
},
delimiter: '|||',
aliases: {
main: {
type: 'typ',
source: 'src',
medium: 'mdm',
campaign: 'cmp',
content: 'cnt',
term: 'trm',
id: 'id'
},
extra: {
fire_date: 'fd',
entrance_point: 'ep',
referer: 'rf'
},
session: {
pages_seen: 'pgs',
current_page: 'cpg'
},
udata: {
visits: 'vst',
ip: 'uip',
agent: 'uag'
},
promo: 'code'
},
pack: {
main: function(sbjs) {
return (
data.aliases.main.type + '=' + sbjs.type + data.delimiter +
data.aliases.main.source + '=' + sbjs.source + data.delimiter +
data.aliases.main.medium + '=' + sbjs.medium + data.delimiter +
data.aliases.main.campaign + '=' + sbjs.campaign + data.delimiter +
data.aliases.main.content + '=' + sbjs.content + data.delimiter +
data.aliases.main.term + '=' + sbjs.term + data.delimiter +
data.aliases.main.id + '=' + sbjs.id
);
},
extra: function(timezone_offset) {
return (
data.aliases.extra.fire_date + '=' + utils.setDate(new Date, timezone_offset) + data.delimiter +
data.aliases.extra.entrance_point + '=' + document.location.href + data.delimiter +
data.aliases.extra.referer + '=' + (document.referrer || terms.none)
);
},
user: function(visits, user_ip) {
return (
data.aliases.udata.visits + '=' + visits + data.delimiter +
data.aliases.udata.ip + '=' + user_ip + data.delimiter +
data.aliases.udata.agent + '=' + navigator.userAgent
);
},
session: function(pages) {
return (
data.aliases.session.pages_seen + '=' + pages + data.delimiter +
data.aliases.session.current_page + '=' + document.location.href
);
},
promo: function(promo) {
return (
data.aliases.promo + '=' + utils.setLeadingZeroToInt(utils.randomInt(promo.min, promo.max), promo.max.toString().length)
);
}
}
};
module.exports = data;
},{"./helpers/utils":5,"./terms":9}],3:[function(_dereq_,module,exports){
"use strict";
var delimiter = _dereq_('../data').delimiter;
module.exports = {
encodeData: function(s) {
return encodeURIComponent(s).replace(/\!/g, '%21')
.replace(/\~/g, '%7E')
.replace(/\*/g, '%2A')
.replace(/\'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29');
},
decodeData: function(s) {
try {
return decodeURIComponent(s).replace(/\%21/g, '!')
.replace(/\%7E/g, '~')
.replace(/\%2A/g, '*')
.replace(/\%27/g, "'")
.replace(/\%28/g, '(')
.replace(/\%29/g, ')');
} catch(err1) {
// try unescape for backward compatibility
try { return unescape(s); } catch(err2) { return ''; }
}
},
set: function(name, value, minutes, domain, excl_subdomains) {
var expires, basehost;
if (minutes) {
var date = new Date();
date.setTime(date.getTime() + (minutes * 60 * 1000));
expires = '; expires=' + date.toGMTString();
} else {
expires = '';
}
if (domain && !excl_subdomains) {
basehost = ';domain=.' + domain;
} else {
basehost = '';
}
document.cookie = this.encodeData(name) + '=' + this.encodeData(value) + expires + basehost + '; path=/';
},
get: function(name) {
var nameEQ = this.encodeData(name) + '=',
ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') { c = c.substring(1, c.length); }
if (c.indexOf(nameEQ) === 0) {
return this.decodeData(c.substring(nameEQ.length, c.length));
}
}
return null;
},
destroy: function(name, domain, excl_subdomains) {
this.set(name, '', -1, domain, excl_subdomains);
},
parse: function(yummy) {
var cookies = [],
data = {};
if (typeof yummy === 'string') {
cookies.push(yummy);
} else {
for (var prop in yummy) {
if (yummy.hasOwnProperty(prop)) {
cookies.push(yummy[prop]);
}
}
}
for (var i1 = 0; i1 < cookies.length; i1++) {
var cookie_array;
data[this.unsbjs(cookies[i1])] = {};
if (this.get(cookies[i1])) {
cookie_array = this.get(cookies[i1]).split(delimiter);
} else {
cookie_array = [];
}
for (var i2 = 0; i2 < cookie_array.length; i2++) {
var tmp_array = cookie_array[i2].split('='),
result_array = tmp_array.splice(0, 1);
result_array.push(tmp_array.join('='));
data[this.unsbjs(cookies[i1])][result_array[0]] = this.decodeData(result_array[1]);
}
}
return data;
},
unsbjs: function (string) {
return string.replace('sbjs_', '');
}
};
},{"../data":2}],4:[function(_dereq_,module,exports){
"use strict";
module.exports = {
parse: function(str) {
var o = this.parseOptions,
m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str),
uri = {},
i = 14;
while (i--) { uri[o.key[i]] = m[i] || ''; }
uri[o.q.name] = {};
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
if ($1) { uri[o.q.name][$1] = $2; }
});
return uri;
},
parseOptions: {
strictMode: false,
key: ['source','protocol','authority','userInfo','user','password','host','port','relative','path','directory','file','query','anchor'],
q: {
name: 'queryKey',
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
},
parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
}
},
getParam: function(custom_params) {
var query_string = {},
query = custom_params ? custom_params : window.location.search.substring(1),
vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (typeof query_string[pair[0]] === 'undefined') {
query_string[pair[0]] = pair[1];
} else if (typeof query_string[pair[0]] === 'string') {
var arr = [ query_string[pair[0]], pair[1] ];
query_string[pair[0]] = arr;
} else {
query_string[pair[0]].push(pair[1]);
}
}
return query_string;
},
getHost: function(request) {
return this.parse(request).host.replace('www.', '');
}
};
},{}],5:[function(_dereq_,module,exports){
"use strict";
module.exports = {
escapeRegexp: function(string) {
return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
},
setDate: function(date, offset) {
var utc_offset = date.getTimezoneOffset() / 60,
now_hours = date.getHours(),
custom_offset = offset || offset === 0 ? offset : -utc_offset;
date.setHours(now_hours + utc_offset + custom_offset);
var year = date.getFullYear(),
month = this.setLeadingZeroToInt(date.getMonth() + 1, 2),
day = this.setLeadingZeroToInt(date.getDate(), 2),
hour = this.setLeadingZeroToInt(date.getHours(), 2),
minute = this.setLeadingZeroToInt(date.getMinutes(), 2),
second = this.setLeadingZeroToInt(date.getSeconds(), 2);
return (year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
},
setLeadingZeroToInt: function(num, size) {
var s = num + '';
while (s.length < size) { s = '0' + s; }
return s;
},
randomInt: function(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
};
},{}],6:[function(_dereq_,module,exports){
"use strict";
var data = _dereq_('./data'),
terms = _dereq_('./terms'),
cookies = _dereq_('./helpers/cookies'),
uri = _dereq_('./helpers/uri'),
utils = _dereq_('./helpers/utils'),
params = _dereq_('./params'),
migrations = _dereq_('./migrations');
module.exports = function(prefs) {
var p = params.fetch(prefs);
var get_param = uri.getParam();
var domain = p.domain.host,
isolate = p.domain.isolate,
lifetime = p.lifetime;
migrations.go(lifetime, domain, isolate);
var __sbjs_type,
__sbjs_source,
__sbjs_medium,
__sbjs_campaign,
__sbjs_content,
__sbjs_term,
__sbjs_id;
function mainData() {
var sbjs_data;
if (
typeof get_param.utm_source !== 'undefined' ||
typeof get_param.utm_medium !== 'undefined' ||
typeof get_param.utm_campaign !== 'undefined' ||
typeof get_param.utm_content !== 'undefined' ||
typeof get_param.utm_term !== 'undefined' ||
typeof get_param.utm_id !== 'undefined' ||
typeof get_param.gclid !== 'undefined' ||
typeof get_param.yclid !== 'undefined' ||
typeof get_param[p.campaign_param] !== 'undefined' ||
typeof get_param[p.term_param] !== 'undefined' ||
typeof get_param[p.content_param] !== 'undefined'
) {
setFirstAndCurrentExtraData();
sbjs_data = getData(terms.traffic.utm);
} else if (checkReferer(terms.traffic.organic)) {
setFirstAndCurrentExtraData();
sbjs_data = getData(terms.traffic.organic);
} else if (!cookies.get(data.containers.session) && checkReferer(terms.traffic.referral)) {
setFirstAndCurrentExtraData();
sbjs_data = getData(terms.traffic.referral);
} else if (!cookies.get(data.containers.first) && !cookies.get(data.containers.current)) {
setFirstAndCurrentExtraData();
sbjs_data = getData(terms.traffic.typein);
} else {
return cookies.get(data.containers.current);
}
return sbjs_data;
}
function getData(type) {
switch (type) {
case terms.traffic.utm:
__sbjs_type = terms.traffic.utm;
if (typeof get_param.utm_source !== 'undefined') {
__sbjs_source = get_param.utm_source;
} else if (typeof get_param.gclid !== 'undefined') {
__sbjs_source = 'google';
} else if (typeof get_param.yclid !== 'undefined') {
__sbjs_source = 'yandex';
} else {
__sbjs_source = terms.none;
}
if (typeof get_param.utm_medium !== 'undefined') {
__sbjs_medium = get_param.utm_medium;
} else if (typeof get_param.gclid !== 'undefined') {
__sbjs_medium = 'cpc';
} else if (typeof get_param.yclid !== 'undefined') {
__sbjs_medium = 'cpc';
} else {
__sbjs_medium = terms.none;
}
if (typeof get_param.utm_campaign !== 'undefined') {
__sbjs_campaign = get_param.utm_campaign;
} else if (typeof get_param[p.campaign_param] !== 'undefined') {
__sbjs_campaign = get_param[p.campaign_param];
} else if (typeof get_param.gclid !== 'undefined') {
__sbjs_campaign = 'google_cpc';
} else if (typeof get_param.yclid !== 'undefined') {
__sbjs_campaign = 'yandex_cpc';
} else {
__sbjs_campaign = terms.none;
}
if (typeof get_param.utm_content !== 'undefined') {
__sbjs_content = get_param.utm_content;
} else if (typeof get_param[p.content_param] !== 'undefined') {
__sbjs_content = get_param[p.content_param];
} else {
__sbjs_content = terms.none;
}
__sbjs_id = get_param.utm_id || terms.none;
if (typeof get_param.utm_term !== 'undefined') {
__sbjs_term = get_param.utm_term;
} else if (typeof get_param[p.term_param] !== 'undefined') {
__sbjs_term = get_param[p.term_param];
} else {
__sbjs_term = getUtmTerm() || terms.none;
}
break;
case terms.traffic.organic:
__sbjs_type = terms.traffic.organic;
__sbjs_source = __sbjs_source || uri.getHost(document.referrer);
__sbjs_medium = terms.referer.organic;
__sbjs_campaign = terms.none;
__sbjs_content = terms.none;
__sbjs_term = terms.none;
__sbjs_id = terms.none;
break;
case terms.traffic.referral:
__sbjs_type = terms.traffic.referral;
__sbjs_source = __sbjs_source || uri.getHost(document.referrer);
__sbjs_medium = __sbjs_medium || terms.referer.referral;
__sbjs_campaign = terms.none;
__sbjs_content = uri.parse(document.referrer).path;
__sbjs_term = terms.none;
__sbjs_id = terms.none;
break;
case terms.traffic.typein:
__sbjs_type = terms.traffic.typein;
__sbjs_source = p.typein_attributes.source;
__sbjs_medium = p.typein_attributes.medium;
__sbjs_campaign = terms.none;
__sbjs_content = terms.none;
__sbjs_term = terms.none;
__sbjs_id = terms.none;
break;
default:
__sbjs_type = terms.oops;
__sbjs_source = terms.oops;
__sbjs_medium = terms.oops;
__sbjs_campaign = terms.oops;
__sbjs_content = terms.oops;
__sbjs_term = terms.oops;
__sbjs_id = terms.oops;
}
var sbjs_data = {
type: __sbjs_type,
source: __sbjs_source,
medium: __sbjs_medium,
campaign: __sbjs_campaign,
content: __sbjs_content,
term: __sbjs_term,
id: __sbjs_id
};
return data.pack.main(sbjs_data);
}
function getUtmTerm() {
var referer = document.referrer;
if (get_param.utm_term) {
return get_param.utm_term;
} else if (referer && uri.parse(referer).host && uri.parse(referer).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)) {
try {
return uri.getParam(uri.parse(document.referrer).query).text;
} catch (err) {
return false;
}
} else {
return false;
}
}
function checkReferer(type) {
var referer = document.referrer;
switch(type) {
case terms.traffic.organic:
return (!!referer && checkRefererHost(referer) && isOrganic(referer));
case terms.traffic.referral:
return (!!referer && checkRefererHost(referer) && isReferral(referer));
default:
return false;
}
}
function checkRefererHost(referer) {
if (p.domain) {
if (!isolate) {
var host_regex = new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(domain) + '$', 'i');
return !(uri.getHost(referer).match(host_regex));
} else {
return (uri.getHost(referer) !== uri.getHost(domain));
}
} else {
return (uri.getHost(referer) !== uri.getHost(document.location.href));
}
}
function isOrganic(referer) {
var y_host = 'yandex',
y_param = 'text',
g_host = 'google';
var y_host_regex = new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(y_host) + '\\..{2,9}$'),
y_param_regex = new RegExp('.*' + utils.escapeRegexp(y_param) + '=.*'),
g_host_regex = new RegExp('^(?:www\\.)?' + utils.escapeRegexp(g_host) + '\\..{2,9}$');
if (
!!uri.parse(referer).query &&
!!uri.parse(referer).host.match(y_host_regex) &&
!!uri.parse(referer).query.match(y_param_regex)
) {
__sbjs_source = y_host;
return true;
} else if (!!uri.parse(referer).host.match(g_host_regex)) {
__sbjs_source = g_host;
return true;
} else if (!!uri.parse(referer).query) {
for (var i = 0; i < p.organics.length; i++) {
if (
uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.organics[i].host) + '$', 'i')) &&
uri.parse(referer).query.match(new RegExp('.*' + utils.escapeRegexp(p.organics[i].param) + '=.*', 'i'))
) {
__sbjs_source = p.organics[i].display || p.organics[i].host;
return true;
}
if (i + 1 === p.organics.length) {
return false;
}
}
} else {
return false;
}
}
function isReferral(referer) {
if (p.referrals.length > 0) {
for (var i = 0; i < p.referrals.length; i++) {
if (uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.referrals[i].host) + '$', 'i'))) {
__sbjs_source = p.referrals[i].display || p.referrals[i].host;
__sbjs_medium = p.referrals[i].medium || terms.referer.referral;
return true;
}
if (i + 1 === p.referrals.length) {
__sbjs_source = uri.getHost(referer);
return true;
}
}
} else {
__sbjs_source = uri.getHost(referer);
return true;
}
}
function setFirstAndCurrentExtraData() {
cookies.set(data.containers.current_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
if (!cookies.get(data.containers.first_extra)) {
cookies.set(data.containers.first_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate);
}
}
(function setData() {
// Main data
cookies.set(data.containers.current, mainData(), lifetime, domain, isolate);
if (!cookies.get(data.containers.first)) {
cookies.set(data.containers.first, cookies.get(data.containers.current), lifetime, domain, isolate);
}
// User data
var visits, udata;
if (!cookies.get(data.containers.udata)) {
visits = 1;
udata = data.pack.user(visits, p.user_ip);
} else {
visits = parseInt(cookies.parse(data.containers.udata)[cookies.unsbjs(data.containers.udata)][data.aliases.udata.visits]) || 1;
visits = cookies.get(data.containers.session) ? visits : visits + 1;
udata = data.pack.user(visits, p.user_ip);
}
cookies.set(data.containers.udata, udata, lifetime, domain, isolate);
// Session
var pages_count;
if (!cookies.get(data.containers.session)) {
pages_count = 1;
} else {
pages_count = parseInt(cookies.parse(data.containers.session)[cookies.unsbjs(data.containers.session)][data.aliases.session.pages_seen]) || 1;
pages_count += 1;
}
cookies.set(data.containers.session, data.pack.session(pages_count), p.session_length, domain, isolate);
// Promocode
if (p.promocode && !cookies.get(data.containers.promocode)) {
cookies.set(data.containers.promocode, data.pack.promo(p.promocode), lifetime, domain, isolate);
}
})();
return cookies.parse(data.containers);
};
},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(_dereq_,module,exports){
"use strict";
var data = _dereq_('./data'),
cookies = _dereq_('./helpers/cookies');
module.exports = {
go: function(lifetime, domain, isolate) {
var migrate = this.migrations,
_with = { l: lifetime, d: domain, i: isolate };
var i;
if (!cookies.get(data.containers.first) && !cookies.get(data.service.migrations)) {
var mids = [];
for (i = 0; i < migrate.length; i++) { mids.push(migrate[i].id); }
var advance = '';
for (i = 0; i < mids.length; i++) {
advance += mids[i] + '=1';
if (i < mids.length - 1) { advance += data.delimiter; }
}
cookies.set(data.service.migrations, advance, _with.l, _with.d, _with.i);
} else if (!cookies.get(data.service.migrations)) {
// We have only one migration for now, so just
for (i = 0; i < migrate.length; i++) {
migrate[i].go(migrate[i].id, _with);
}
}
},
migrations: [
{
id: '1418474375998',
version: '1.0.0-beta',
go: function(mid, _with) {
var success = mid + '=1',
fail = mid + '=0';
var safeReplace = function($0, $1, $2) {
return ($1 || $2 ? $0 : data.delimiter);
};
try {
// Switch delimiter and renew cookies
var _in = [];
for (var prop in data.containers) {
if (data.containers.hasOwnProperty(prop)) {
_in.push(data.containers[prop]);
}
}
for (var i = 0; i < _in.length; i++) {
if (cookies.get(_in[i])) {
var buffer = cookies.get(_in[i]).replace(/(\|)?\|(\|)?/g, safeReplace);
cookies.destroy(_in[i], _with.d, _with.i);
cookies.destroy(_in[i], _with.d, !_with.i);
cookies.set(_in[i], buffer, _with.l, _with.d, _with.i);
}
}
// Update `session`
if (cookies.get(data.containers.session)) {
cookies.set(data.containers.session, data.pack.session(0), _with.l, _with.d, _with.i);
}
// Yay!
cookies.set(data.service.migrations, success, _with.l, _with.d, _with.i);
} catch (err) {
// Oops
cookies.set(data.service.migrations, fail, _with.l, _with.d, _with.i);
}
}
}
]
};
},{"./data":2,"./helpers/cookies":3}],8:[function(_dereq_,module,exports){
"use strict";
var terms = _dereq_('./terms'),
uri = _dereq_('./helpers/uri');
module.exports = {
fetch: function(prefs) {
var user = prefs || {},
params = {};
// Set `lifetime of the cookie` in months
params.lifetime = this.validate.checkFloat(user.lifetime) || 6;
params.lifetime = parseInt(params.lifetime * 30 * 24 * 60);
// Set `session length` in minutes
params.session_length = this.validate.checkInt(user.session_length) || 30;
// Set `timezone offset` in hours
params.timezone_offset = this.validate.checkInt(user.timezone_offset);
// Set `campaign param` for AdWords links
params.campaign_param = user.campaign_param || false;
// Set `term param` and `content param` for AdWords links
params.term_param = user.term_param || false;
params.content_param = user.content_param || false;
// Set `user ip`
params.user_ip = user.user_ip || terms.none;
// Set `promocode`
if (user.promocode) {
params.promocode = {};
params.promocode.min = parseInt(user.promocode.min) || 100000;
params.promocode.max = parseInt(user.promocode.max) || 999999;
} else {
params.promocode = false;
}
// Set `typein attributes`
if (user.typein_attributes && user.typein_attributes.source && user.typein_attributes.medium) {
params.typein_attributes = {};
params.typein_attributes.source = user.typein_attributes.source;
params.typein_attributes.medium = user.typein_attributes.medium;
} else {
params.typein_attributes = { source: '(direct)', medium: '(none)' };
}
// Set `domain`
if (user.domain && this.validate.isString(user.domain)) {
params.domain = { host: user.domain, isolate: false };
} else if (user.domain && user.domain.host) {
params.domain = user.domain;
} else {
params.domain = { host: uri.getHost(document.location.hostname), isolate: false };
}
// Set `referral sources`
params.referrals = [];
if (user.referrals && user.referrals.length > 0) {
for (var ir = 0; ir < user.referrals.length; ir++) {
if (user.referrals[ir].host) {
params.referrals.push(user.referrals[ir]);
}
}
}
// Set `organic sources`
params.organics = [];
if (user.organics && user.organics.length > 0) {
for (var io = 0; io < user.organics.length; io++) {
if (user.organics[io].host && user.organics[io].param) {
params.organics.push(user.organics[io]);
}
}
}
params.organics.push({ host: 'bing.com', param: 'q', display: 'bing' });
params.organics.push({ host: 'yahoo.com', param: 'p', display: 'yahoo' });
params.organics.push({ host: 'about.com', param: 'q', display: 'about' });
params.organics.push({ host: 'aol.com', param: 'q', display: 'aol' });
params.organics.push({ host: 'ask.com', param: 'q', display: 'ask' });
params.organics.push({ host: 'globososo.com', param: 'q', display: 'globo' });
params.organics.push({ host: 'go.mail.ru', param: 'q', display: 'go.mail.ru' });
params.organics.push({ host: 'rambler.ru', param: 'query', display: 'rambler' });
params.organics.push({ host: 'tut.by', param: 'query', display: 'tut.by' });
params.referrals.push({ host: 't.co', display: 'twitter.com' });
params.referrals.push({ host: 'plus.url.google.com', display: 'plus.google.com' });
return params;
},
validate: {
checkFloat: function(v) {
return v && this.isNumeric(parseFloat(v)) ? parseFloat(v) : false;
},
checkInt: function(v) {
return v && this.isNumeric(parseInt(v)) ? parseInt(v) : false;
},
isNumeric: function(v){
return !isNaN(v);
},
isString: function(v) {
return Object.prototype.toString.call(v) === '[object String]';
}
}
};
},{"./helpers/uri":4,"./terms":9}],9:[function(_dereq_,module,exports){
"use strict";
module.exports = {
traffic: {
utm: 'utm',
organic: 'organic',
referral: 'referral',
typein: 'typein'
},
referer: {
referral: 'referral',
organic: 'organic',
social: 'social'
},
none: '(none)',
oops: '(Houston, we have a problem)'
};
},{}]},{},[1])(1)
});

File diff suppressed because one or more lines are too long