vendor: 3,809 bytes, lines 1-119
1!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){ 2"use strict"; 3 4var init = _dereq_('./init'); 5 6var sbjs = { 7 init: function(prefs) { 8 this.get = init(prefs); 9 if (prefs && prefs.callback && typeof prefs.callback === 'function') { 10 prefs.callback(this.get); 11 } 12 } 13}; 14 15module.exports = sbjs; 16},{"./init":6}],2:[function(_dereq_,module,exports){ 17"use strict"; 18 19var terms = _dereq_('./terms'), 20 utils = _dereq_('./helpers/utils'); 21 22var data = { 23 24 containers: { 25 current: 'sbjs_current', 26 current_extra: 'sbjs_current_add', 27 first: 'sbjs_first', 28 first_extra: 'sbjs_first_add', 29 session: 'sbjs_session', 30 udata: 'sbjs_udata', 31 promocode: 'sbjs_promo' 32 }, 33 34 service: { 35 migrations: 'sbjs_migrations' 36 }, 37 38 delimiter: '|||', 39 40 aliases: { 41 42 main: { 43 type: 'typ', 44 source: 'src', 45 medium: 'mdm', 46 campaign: 'cmp', 47 content: 'cnt', 48 term: 'trm', 49 id: 'id' 50 }, 51 52 extra: { 53 fire_date: 'fd', 54 entrance_point: 'ep', 55 referer: 'rf' 56 }, 57 58 session: { 59 pages_seen: 'pgs', 60 current_page: 'cpg' 61 }, 62 63 udata: { 64 visits: 'vst', 65 ip: 'uip', 66 agent: 'uag' 67 }, 68 69 promo: 'code' 70 71 }, 72 73 pack: { 74 75 main: function(sbjs) { 76 return ( 77 data.aliases.main.type + '=' + sbjs.type + data.delimiter + 78 data.aliases.main.source + '=' + sbjs.source + data.delimiter + 79 data.aliases.main.medium + '=' + sbjs.medium + data.delimiter + 80 data.aliases.main.campaign + '=' + sbjs.campaign + data.delimiter + 81 data.aliases.main.content + '=' + sbjs.content + data.delimiter + 82 data.aliases.main.term + '=' + sbjs.term + data.delimiter + 83 data.aliases.main.id + '=' + sbjs.id 84 ); 85 }, 86 87 extra: function(timezone_offset) { 88 return ( 89 data.aliases.extra.fire_date + '=' + utils.setDate(new Date, timezone_offset) + data.delimiter + 90 data.aliases.extra.entrance_point + '=' + document.location.href + data.delimiter + 91 data.aliases.extra.referer + '=' + (document.referrer || terms.none) 92 ); 93 }, 94 95 user: function(visits, user_ip) { 96 return ( 97 data.aliases.udata.visits + '=' + visits + data.delimiter + 98 data.aliases.udata.ip + '=' + user_ip + data.delimiter + 99 data.aliases.udata.agent + '=' + navigator.userAgent 100 ); 101 }, 102 103 session: function(pages) { 104 return ( 105 data.aliases.session.pages_seen + '=' + pages + data.delimiter + 106 data.aliases.session.current_page + '=' + document.location.href 107 ); 108 }, 109 110 promo: function(promo) { 111 return ( 112 data.aliases.promo + '=' + utils.setLeadingZeroToInt(utils.randomInt(promo.min, promo.max), promo.max.toString().length) 113 ); 114 } 115 116 } 117}; 118 119module.exports = data;
vendor: 6,774 bytes, lines 120-350
120 121},{"./helpers/utils":5,"./terms":9}],3:[function(_dereq_,module,exports){ 122"use strict"; 123 124var delimiter = _dereq_('../data').delimiter; 125 126module.exports = { 127 128 encodeData: function(s) { 129 return encodeURIComponent(s).replace(/\!/g, '%21') 130 .replace(/\~/g, '%7E') 131 .replace(/\*/g, '%2A') 132 .replace(/\'/g, '%27') 133 .replace(/\(/g, '%28') 134 .replace(/\)/g, '%29'); 135 }, 136 137 decodeData: function(s) { 138 try { 139 return decodeURIComponent(s).replace(/\%21/g, '!') 140 .replace(/\%7E/g, '~') 141 .replace(/\%2A/g, '*') 142 .replace(/\%27/g, "'") 143 .replace(/\%28/g, '(') 144 .replace(/\%29/g, ')'); 145 } catch(err1) { 146 // try unescape for backward compatibility 147 try { return unescape(s); } catch(err2) { return ''; } 148 } 149 }, 150 151 set: function(name, value, minutes, domain, excl_subdomains) { 152 var expires, basehost; 153 154 if (minutes) { 155 var date = new Date(); 156 date.setTime(date.getTime() + (minutes * 60 * 1000)); 157 expires = '; expires=' + date.toGMTString(); 158 } else { 159 expires = ''; 160 } 161 if (domain && !excl_subdomains) { 162 basehost = ';domain=.' + domain; 163 } else { 164 basehost = ''; 165 } 166 document.cookie = this.encodeData(name) + '=' + this.encodeData(value) + expires + basehost + '; path=/'; 167 }, 168 169 get: function(name) { 170 var nameEQ = this.encodeData(name) + '=', 171 ca = document.cookie.split(';'); 172 173 for (var i = 0; i < ca.length; i++) { 174 var c = ca[i]; 175 while (c.charAt(0) === ' ') { c = c.substring(1, c.length); } 176 if (c.indexOf(nameEQ) === 0) { 177 return this.decodeData(c.substring(nameEQ.length, c.length)); 178 } 179 } 180 return null; 181 }, 182 183 destroy: function(name, domain, excl_subdomains) { 184 this.set(name, '', -1, domain, excl_subdomains); 185 }, 186 187 parse: function(yummy) { 188 189 var cookies = [], 190 data = {}; 191 192 if (typeof yummy === 'string') { 193 cookies.push(yummy); 194 } else { 195 for (var prop in yummy) { 196 if (yummy.hasOwnProperty(prop)) { 197 cookies.push(yummy[prop]); 198 } 199 } 200 } 201 202 for (var i1 = 0; i1 < cookies.length; i1++) { 203 var cookie_array; 204 data[this.unsbjs(cookies[i1])] = {}; 205 if (this.get(cookies[i1])) { 206 cookie_array = this.get(cookies[i1]).split(delimiter); 207 } else { 208 cookie_array = []; 209 } 210 for (var i2 = 0; i2 < cookie_array.length; i2++) { 211 var tmp_array = cookie_array[i2].split('='), 212 result_array = tmp_array.splice(0, 1); 213 result_array.push(tmp_array.join('=')); 214 data[this.unsbjs(cookies[i1])][result_array[0]] = this.decodeData(result_array[1]); 215 } 216 } 217 218 return data; 219 220 }, 221 222 unsbjs: function (string) { 223 return string.replace('sbjs_', ''); 224 } 225 226}; 227 228},{"../data":2}],4:[function(_dereq_,module,exports){ 229"use strict"; 230 231module.exports = { 232 233 parse: function(str) { 234 var o = this.parseOptions, 235 m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str), 236 uri = {}, 237 i = 14; 238 239 while (i--) { uri[o.key[i]] = m[i] || ''; } 240 241 uri[o.q.name] = {}; 242 uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { 243 if ($1) { uri[o.q.name][$1] = $2; } 244 }); 245 246 return uri; 247 }, 248 249 parseOptions: { 250 strictMode: false, 251 key: ['source','protocol','authority','userInfo','user','password','host','port','relative','path','directory','file','query','anchor'], 252 q: { 253 name: 'queryKey', 254 parser: /(?:^|&)([^&=]*)=?([^&]*)/g 255 }, 256 parser: { 257 strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, 258 loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ 259 } 260 }, 261 262 getParam: function(custom_params) { 263 var query_string = {}, 264 query = custom_params ? custom_params : window.location.search.substring(1), 265 vars = query.split('&'); 266 267 for (var i = 0; i < vars.length; i++) { 268 var pair = vars[i].split('='); 269 if (typeof query_string[pair[0]] === 'undefined') { 270 query_string[pair[0]] = pair[1]; 271 } else if (typeof query_string[pair[0]] === 'string') { 272 var arr = [ query_string[pair[0]], pair[1] ]; 273 query_string[pair[0]] = arr; 274 } else { 275 query_string[pair[0]].push(pair[1]); 276 } 277 } 278 return query_string; 279 }, 280 281 getHost: function(request) { 282 return this.parse(request).host.replace('www.', ''); 283 } 284 285}; 286},{}],5:[function(_dereq_,module,exports){ 287"use strict"; 288 289module.exports = { 290 291 escapeRegexp: function(string) { 292 return string.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); 293 }, 294 295 setDate: function(date, offset) { 296 var utc_offset = date.getTimezoneOffset() / 60, 297 now_hours = date.getHours(), 298 custom_offset = offset || offset === 0 ? offset : -utc_offset; 299 300 date.setHours(now_hours + utc_offset + custom_offset); 301 302 var year = date.getFullYear(), 303 month = this.setLeadingZeroToInt(date.getMonth() + 1, 2), 304 day = this.setLeadingZeroToInt(date.getDate(), 2), 305 hour = this.setLeadingZeroToInt(date.getHours(), 2), 306 minute = this.setLeadingZeroToInt(date.getMinutes(), 2), 307 second = this.setLeadingZeroToInt(date.getSeconds(), 2); 308 309 return (year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second); 310 }, 311 312 setLeadingZeroToInt: function(num, size) { 313 var s = num + ''; 314 while (s.length < size) { s = '0' + s; } 315 return s; 316 }, 317 318 randomInt: function(min, max) { 319 return Math.floor(Math.random() * (max - min + 1)) + min; 320 } 321 322}; 323 324},{}],6:[function(_dereq_,module,exports){ 325"use strict"; 326 327var data = _dereq_('./data'), 328 terms = _dereq_('./terms'), 329 cookies = _dereq_('./helpers/cookies'), 330 uri = _dereq_('./helpers/uri'), 331 utils = _dereq_('./helpers/utils'), 332 params = _dereq_('./params'), 333 migrations = _dereq_('./migrations'); 334 335module.exports = function(prefs) { 336 337 var p = params.fetch(prefs); 338 var get_param = uri.getParam(); 339 var domain = p.domain.host, 340 isolate = p.domain.isolate, 341 lifetime = p.lifetime; 342 343 migrations.go(lifetime, domain, isolate); 344 345 var __sbjs_type, 346 __sbjs_source, 347 __sbjs_medium, 348 __sbjs_campaign, 349 __sbjs_content, 350 __sbjs_term
vendor: 5,210 bytes, lines 350-492
350, 351 __sbjs_id; 352 353 function mainData() { 354 var sbjs_data; 355 if ( 356 typeof get_param.utm_source !== 'undefined' || 357 typeof get_param.utm_medium !== 'undefined' || 358 typeof get_param.utm_campaign !== 'undefined' || 359 typeof get_param.utm_content !== 'undefined' || 360 typeof get_param.utm_term !== 'undefined' || 361 typeof get_param.utm_id !== 'undefined' || 362 typeof get_param.gclid !== 'undefined' || 363 typeof get_param.yclid !== 'undefined' || 364 typeof get_param[p.campaign_param] !== 'undefined' || 365 typeof get_param[p.term_param] !== 'undefined' || 366 typeof get_param[p.content_param] !== 'undefined' 367 ) { 368 setFirstAndCurrentExtraData(); 369 sbjs_data = getData(terms.traffic.utm); 370 } else if (checkReferer(terms.traffic.organic)) { 371 setFirstAndCurrentExtraData(); 372 sbjs_data = getData(terms.traffic.organic); 373 } else if (!cookies.get(data.containers.session) && checkReferer(terms.traffic.referral)) { 374 setFirstAndCurrentExtraData(); 375 sbjs_data = getData(terms.traffic.referral); 376 } else if (!cookies.get(data.containers.first) && !cookies.get(data.containers.current)) { 377 setFirstAndCurrentExtraData(); 378 sbjs_data = getData(terms.traffic.typein); 379 } else { 380 return cookies.get(data.containers.current); 381 } 382 383 return sbjs_data; 384 } 385 386 function getData(type) { 387 388 switch (type) { 389 390 case terms.traffic.utm: 391 392 __sbjs_type = terms.traffic.utm; 393 394 if (typeof get_param.utm_source !== 'undefined') { 395 __sbjs_source = get_param.utm_source; 396 } else if (typeof get_param.gclid !== 'undefined') { 397 __sbjs_source = 'google'; 398 } else if (typeof get_param.yclid !== 'undefined') { 399 __sbjs_source = 'yandex'; 400 } else { 401 __sbjs_source = terms.none; 402 } 403 404 if (typeof get_param.utm_medium !== 'undefined') { 405 __sbjs_medium = get_param.utm_medium; 406 } else if (typeof get_param.gclid !== 'undefined') { 407 __sbjs_medium = 'cpc'; 408 } else if (typeof get_param.yclid !== 'undefined') { 409 __sbjs_medium = 'cpc'; 410 } else { 411 __sbjs_medium = terms.none; 412 } 413 414 if (typeof get_param.utm_campaign !== 'undefined') { 415 __sbjs_campaign = get_param.utm_campaign; 416 } else if (typeof get_param[p.campaign_param] !== 'undefined') { 417 __sbjs_campaign = get_param[p.campaign_param]; 418 } else if (typeof get_param.gclid !== 'undefined') { 419 __sbjs_campaign = 'google_cpc'; 420 } else if (typeof get_param.yclid !== 'undefined') { 421 __sbjs_campaign = 'yandex_cpc'; 422 } else { 423 __sbjs_campaign = terms.none; 424 } 425 426 if (typeof get_param.utm_content !== 'undefined') { 427 __sbjs_content = get_param.utm_content; 428 } else if (typeof get_param[p.content_param] !== 'undefined') { 429 __sbjs_content = get_param[p.content_param]; 430 } else { 431 __sbjs_content = terms.none; 432 } 433 434 __sbjs_id = get_param.utm_id || terms.none; 435 436 if (typeof get_param.utm_term !== 'undefined') { 437 __sbjs_term = get_param.utm_term; 438 } else if (typeof get_param[p.term_param] !== 'undefined') { 439 __sbjs_term = get_param[p.term_param]; 440 } else { 441 __sbjs_term = getUtmTerm() || terms.none; 442 } 443 444 break; 445 446 case terms.traffic.organic: 447 __sbjs_type = terms.traffic.organic; 448 __sbjs_source = __sbjs_source || uri.getHost(document.referrer); 449 __sbjs_medium = terms.referer.organic; 450 __sbjs_campaign = terms.none; 451 __sbjs_content = terms.none; 452 __sbjs_term = terms.none; 453 __sbjs_id = terms.none; 454 break; 455 456 case terms.traffic.referral: 457 __sbjs_type = terms.traffic.referral; 458 __sbjs_source = __sbjs_source || uri.getHost(document.referrer); 459 __sbjs_medium = __sbjs_medium || terms.referer.referral; 460 __sbjs_campaign = terms.none; 461 __sbjs_content = uri.parse(document.referrer).path; 462 __sbjs_term = terms.none; 463 __sbjs_id = terms.none; 464 break; 465 466 case terms.traffic.typein: 467 __sbjs_type = terms.traffic.typein; 468 __sbjs_source = p.typein_attributes.source; 469 __sbjs_medium = p.typein_attributes.medium; 470 __sbjs_campaign = terms.none; 471 __sbjs_content = terms.none; 472 __sbjs_term = terms.none; 473 __sbjs_id = terms.none; 474 break; 475 476 default: 477 __sbjs_type = terms.oops; 478 __sbjs_source = terms.oops; 479 __sbjs_medium = terms.oops; 480 __sbjs_campaign = terms.oops; 481 __sbjs_content = terms.oops; 482 __sbjs_term = terms.oops; 483 __sbjs_id = terms.oops; 484 } 485 var sbjs_data = { 486 type: __sbjs_type, 487 source: __sbjs_source, 488 medium: __sbjs_medium, 489 campaign: __sbjs_campaign, 490 content: __sbjs_content, 491 term: __sbjs_term, 492 id: __sbjs_id
vendor: 5,026 bytes, lines 492-642
492 493 }; 494 495 return data.pack.main(sbjs_data); 496 497 } 498 499 function getUtmTerm() { 500 var referer = document.referrer; 501 if (get_param.utm_term) { 502 return get_param.utm_term; 503 } else if (referer && uri.parse(referer).host && uri.parse(referer).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)) { 504 try { 505 return uri.getParam(uri.parse(document.referrer).query).text; 506 } catch (err) { 507 return false; 508 } 509 } else { 510 return false; 511 } 512 } 513 514 function checkReferer(type) { 515 var referer = document.referrer; 516 switch(type) { 517 case terms.traffic.organic: 518 return (!!referer && checkRefererHost(referer) && isOrganic(referer)); 519 case terms.traffic.referral: 520 return (!!referer && checkRefererHost(referer) && isReferral(referer)); 521 default: 522 return false; 523 } 524 } 525 526 function checkRefererHost(referer) { 527 if (p.domain) { 528 if (!isolate) { 529 var host_regex = new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(domain) + '$', 'i'); 530 return !(uri.getHost(referer).match(host_regex)); 531 } else { 532 return (uri.getHost(referer) !== uri.getHost(domain)); 533 } 534 } else { 535 return (uri.getHost(referer) !== uri.getHost(document.location.href)); 536 } 537 } 538 539 function isOrganic(referer) { 540 541 var y_host = 'yandex', 542 y_param = 'text', 543 g_host = 'google'; 544 545 var y_host_regex = new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(y_host) + '\\..{2,9}$'), 546 y_param_regex = new RegExp('.*' + utils.escapeRegexp(y_param) + '=.*'), 547 g_host_regex = new RegExp('^(?:www\\.)?' + utils.escapeRegexp(g_host) + '\\..{2,9}$'); 548 549 if ( 550 !!uri.parse(referer).query && 551 !!uri.parse(referer).host.match(y_host_regex) && 552 !!uri.parse(referer).query.match(y_param_regex) 553 ) { 554 __sbjs_source = y_host; 555 return true; 556 } else if (!!uri.parse(referer).host.match(g_host_regex)) { 557 __sbjs_source = g_host; 558 return true; 559 } else if (!!uri.parse(referer).query) { 560 for (var i = 0; i < p.organics.length; i++) { 561 if ( 562 uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.organics[i].host) + '$', 'i')) && 563 uri.parse(referer).query.match(new RegExp('.*' + utils.escapeRegexp(p.organics[i].param) + '=.*', 'i')) 564 ) { 565 __sbjs_source = p.organics[i].display || p.organics[i].host; 566 return true; 567 } 568 if (i + 1 === p.organics.length) { 569 return false; 570 } 571 } 572 } else { 573 return false; 574 } 575 } 576 577 function isReferral(referer) { 578 if (p.referrals.length > 0) { 579 for (var i = 0; i < p.referrals.length; i++) { 580 if (uri.parse(referer).host.match(new RegExp('^(?:.*\\.)?' + utils.escapeRegexp(p.referrals[i].host) + '$', 'i'))) { 581 __sbjs_source = p.referrals[i].display || p.referrals[i].host; 582 __sbjs_medium = p.referrals[i].medium || terms.referer.referral; 583 return true; 584 } 585 if (i + 1 === p.referrals.length) { 586 __sbjs_source = uri.getHost(referer); 587 return true; 588 } 589 } 590 } else { 591 __sbjs_source = uri.getHost(referer); 592 return true; 593 } 594 } 595 596 function setFirstAndCurrentExtraData() { 597 cookies.set(data.containers.current_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate); 598 if (!cookies.get(data.containers.first_extra)) { 599 cookies.set(data.containers.first_extra, data.pack.extra(p.timezone_offset), lifetime, domain, isolate); 600 } 601 } 602 603 (function setData() { 604 605 // Main data 606 cookies.set(data.containers.current, mainData(), lifetime, domain, isolate); 607 if (!cookies.get(data.containers.first)) { 608 cookies.set(data.containers.first, cookies.get(data.containers.current), lifetime, domain, isolate); 609 } 610 611 // User data 612 var visits, udata; 613 if (!cookies.get(data.containers.udata)) { 614 visits = 1; 615 udata = data.pack.user(visits, p.user_ip); 616 } else { 617 visits = parseInt(cookies.parse(data.containers.udata)[cookies.unsbjs(data.containers.udata)][data.aliases.udata.visits]) || 1; 618 visits = cookies.get(data.containers.session) ? visits : visits + 1; 619 udata = data.pack.user(visits, p.user_ip); 620 } 621 cookies.set(data.containers.udata, udata, lifetime, domain, isolate); 622 623 // Session 624 var pages_count; 625 if (!cookies.get(data.containers.session)) { 626 pages_count = 1; 627 } else { 628 pages_count = parseInt(cookies.parse(data.containers.session)[cookies.unsbjs(data.containers.session)][data.aliases.session.pages_seen]) || 1; 629 pages_count += 1; 630 } 631 cookies.set(data.containers.session, data.pack.session(pages_count), p.session_length, domain, isolate); 632 633 // Promocode 634 if (p.promocode && !cookies.get(data.containers.promocode)) { 635 cookies.set(data.containers.promocode, data.pack.promo(p.promocode), lifetime, domain, isolate); 636 } 637 638 })(); 639 640 return cookies.parse(data.containers); 641 642};
vendor: 3,407 bytes, lines 643-761
643 644},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(_dereq_,module,exports){ 645"use strict"; 646 647var data = _dereq_('./data'), 648 cookies = _dereq_('./helpers/cookies'); 649 650module.exports = { 651 652 go: function(lifetime, domain, isolate) { 653 654 var migrate = this.migrations, 655 _with = { l: lifetime, d: domain, i: isolate }; 656 657 var i; 658 659 if (!cookies.get(data.containers.first) && !cookies.get(data.service.migrations)) { 660 661 var mids = []; 662 for (i = 0; i < migrate.length; i++) { mids.push(migrate[i].id); } 663 664 var advance = ''; 665 for (i = 0; i < mids.length; i++) { 666 advance += mids[i] + '=1'; 667 if (i < mids.length - 1) { advance += data.delimiter; } 668 } 669 cookies.set(data.service.migrations, advance, _with.l, _with.d, _with.i); 670 671 } else if (!cookies.get(data.service.migrations)) { 672 673 // We have only one migration for now, so just 674 for (i = 0; i < migrate.length; i++) { 675 migrate[i].go(migrate[i].id, _with); 676 } 677 678 } 679 680 }, 681 682 migrations: [ 683 684 { 685 id: '1418474375998', 686 version: '1.0.0-beta', 687 go: function(mid, _with) { 688 689 var success = mid + '=1', 690 fail = mid + '=0'; 691 692 var safeReplace = function($0, $1, $2) { 693 return ($1 || $2 ? $0 : data.delimiter); 694 }; 695 696 try { 697 698 // Switch delimiter and renew cookies 699 var _in = []; 700 for (var prop in data.containers) { 701 if (data.containers.hasOwnProperty(prop)) { 702 _in.push(data.containers[prop]); 703 } 704 } 705 706 for (var i = 0; i < _in.length; i++) { 707 if (cookies.get(_in[i])) { 708 var buffer = cookies.get(_in[i]).replace(/(\|)?\|(\|)?/g, safeReplace); 709 cookies.destroy(_in[i], _with.d, _with.i); 710 cookies.destroy(_in[i], _with.d, !_with.i); 711 cookies.set(_in[i], buffer, _with.l, _with.d, _with.i); 712 } 713 } 714 715 // Update `session` 716 if (cookies.get(data.containers.session)) { 717 cookies.set(data.containers.session, data.pack.session(0), _with.l, _with.d, _with.i); 718 } 719 720 // Yay! 721 cookies.set(data.service.migrations, success, _with.l, _with.d, _with.i); 722 723 } catch (err) { 724 // Oops 725 cookies.set(data.service.migrations, fail, _with.l, _with.d, _with.i); 726 } 727 } 728 } 729 730 ] 731 732}; 733},{"./data":2,"./helpers/cookies":3}],8:[function(_dereq_,module,exports){ 734"use strict"; 735 736var terms = _dereq_('./terms'), 737 uri = _dereq_('./helpers/uri'); 738 739module.exports = { 740 741 fetch: function(prefs) { 742 743 var user = prefs || {}, 744 params = {}; 745 746 // Set `lifetime of the cookie` in months 747 params.lifetime = this.validate.checkFloat(user.lifetime) || 6; 748 params.lifetime = parseInt(params.lifetime * 30 * 24 * 60); 749 750 // Set `session length` in minutes 751 params.session_length = this.validate.checkInt(user.session_length) || 30; 752 753 // Set `timezone offset` in hours 754 params.timezone_offset = this.validate.checkInt(user.timezone_offset); 755 756 // Set `campaign param` for AdWords links 757 params.campaign_param = user.campaign_param || false; 758 759 // Set `term param` and `content param` for AdWords links 760 params.term_param = user.term_param || false; 761 params.content_param = user.content
vendor: 3,623 bytes, lines 761-878
761_param || false; 762 763 // Set `user ip` 764 params.user_ip = user.user_ip || terms.none; 765 766 // Set `promocode` 767 if (user.promocode) { 768 params.promocode = {}; 769 params.promocode.min = parseInt(user.promocode.min) || 100000; 770 params.promocode.max = parseInt(user.promocode.max) || 999999; 771 } else { 772 params.promocode = false; 773 } 774 775 // Set `typein attributes` 776 if (user.typein_attributes && user.typein_attributes.source && user.typein_attributes.medium) { 777 params.typein_attributes = {}; 778 params.typein_attributes.source = user.typein_attributes.source; 779 params.typein_attributes.medium = user.typein_attributes.medium; 780 } else { 781 params.typein_attributes = { source: '(direct)', medium: '(none)' }; 782 } 783 784 // Set `domain` 785 if (user.domain && this.validate.isString(user.domain)) { 786 params.domain = { host: user.domain, isolate: false }; 787 } else if (user.domain && user.domain.host) { 788 params.domain = user.domain; 789 } else { 790 params.domain = { host: uri.getHost(document.location.hostname), isolate: false }; 791 } 792 793 // Set `referral sources` 794 params.referrals = []; 795 796 if (user.referrals && user.referrals.length > 0) { 797 for (var ir = 0; ir < user.referrals.length; ir++) { 798 if (user.referrals[ir].host) { 799 params.referrals.push(user.referrals[ir]); 800 } 801 } 802 } 803 804 // Set `organic sources` 805 params.organics = []; 806 807 if (user.organics && user.organics.length > 0) { 808 for (var io = 0; io < user.organics.length; io++) { 809 if (user.organics[io].host && user.organics[io].param) { 810 params.organics.push(user.organics[io]); 811 } 812 } 813 } 814 815 params.organics.push({ host: 'bing.com', param: 'q', display: 'bing' }); 816 params.organics.push({ host: 'yahoo.com', param: 'p', display: 'yahoo' }); 817 params.organics.push({ host: 'about.com', param: 'q', display: 'about' }); 818 params.organics.push({ host: 'aol.com', param: 'q', display: 'aol' }); 819 params.organics.push({ host: 'ask.com', param: 'q', display: 'ask' }); 820 params.organics.push({ host: 'globososo.com', param: 'q', display: 'globo' }); 821 params.organics.push({ host: 'go.mail.ru', param: 'q', display: 'go.mail.ru' }); 822 params.organics.push({ host: 'rambler.ru', param: 'query', display: 'rambler' }); 823 params.organics.push({ host: 'tut.by', param: 'query', display: 'tut.by' }); 824 825 params.referrals.push({ host: 't.co', display: 'twitter.com' }); 826 params.referrals.push({ host: 'plus.url.google.com', display: 'plus.google.com' }); 827 828 829 return params; 830 831 }, 832 833 validate: { 834 835 checkFloat: function(v) { 836 return v && this.isNumeric(parseFloat(v)) ? parseFloat(v) : false; 837 }, 838 839 checkInt: function(v) { 840 return v && this.isNumeric(parseInt(v)) ? parseInt(v) : false; 841 }, 842 843 isNumeric: function(v){ 844 return !isNaN(v); 845 }, 846 847 isString: function(v) { 848 return Object.prototype.toString.call(v) === '[object String]'; 849 } 850 851 } 852 853}; 854},{"./helpers/uri":4,"./terms":9}],9:[function(_dereq_,module,exports){ 855"use strict"; 856 857module.exports = { 858 859 traffic: { 860 utm: 'utm', 861 organic: 'organic', 862 referral: 'referral', 863 typein: 'typein' 864 }, 865 866 referer: { 867 referral: 'referral', 868 organic: 'organic', 869 social: 'social' 870 }, 871 872 none: '(none)', 873 oops: '(Houston, we have a problem)' 874 875}; 876 877},{}]},{},[1])(1) 878});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.