154 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Generated by CoffeeScript 1.12.7
 | 
						|
(function() {
 | 
						|
  var array_intersection, crypto, escapable, lookup, unroll_lookup;
 | 
						|
 | 
						|
  crypto = require('crypto');
 | 
						|
 | 
						|
  exports.array_intersection = array_intersection = function(arr_a, arr_b) {
 | 
						|
    var a, j, len, r;
 | 
						|
    r = [];
 | 
						|
    for (j = 0, len = arr_a.length; j < len; j++) {
 | 
						|
      a = arr_a[j];
 | 
						|
      if (arr_b.indexOf(a) !== -1) {
 | 
						|
        r.push(a);
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return r;
 | 
						|
  };
 | 
						|
 | 
						|
  exports.escape_selected = function(str, chars) {
 | 
						|
    var c, i, j, l, len, map, parts, r, ref, v;
 | 
						|
    map = {};
 | 
						|
    chars = '%' + chars;
 | 
						|
    for (j = 0, len = chars.length; j < len; j++) {
 | 
						|
      c = chars[j];
 | 
						|
      map[c] = escape(c);
 | 
						|
    }
 | 
						|
    r = new RegExp('([' + chars + '])');
 | 
						|
    parts = str.split(r);
 | 
						|
    for (i = l = 0, ref = parts.length; 0 <= ref ? l < ref : l > ref; i = 0 <= ref ? ++l : --l) {
 | 
						|
      v = parts[i];
 | 
						|
      if (v.length === 1 && v in map) {
 | 
						|
        parts[i] = map[v];
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return parts.join('');
 | 
						|
  };
 | 
						|
 | 
						|
  exports.buffer_concat = function(buf_a, buf_b) {
 | 
						|
    var dst;
 | 
						|
    dst = new Buffer(buf_a.length + buf_b.length);
 | 
						|
    buf_a.copy(dst);
 | 
						|
    buf_b.copy(dst, buf_a.length);
 | 
						|
    return dst;
 | 
						|
  };
 | 
						|
 | 
						|
  exports.md5_hex = function(data) {
 | 
						|
    return crypto.createHash('md5').update(data).digest('hex');
 | 
						|
  };
 | 
						|
 | 
						|
  exports.sha1_base64 = function(data) {
 | 
						|
    return crypto.createHash('sha1').update(data).digest('base64');
 | 
						|
  };
 | 
						|
 | 
						|
  exports.timeout_chain = function(arr) {
 | 
						|
    var fun, ref, timeout, user_fun;
 | 
						|
    arr = arr.slice(0);
 | 
						|
    if (!arr.length) {
 | 
						|
      return;
 | 
						|
    }
 | 
						|
    ref = arr.shift(), timeout = ref[0], user_fun = ref[1];
 | 
						|
    fun = (function(_this) {
 | 
						|
      return function() {
 | 
						|
        user_fun();
 | 
						|
        return exports.timeout_chain(arr);
 | 
						|
      };
 | 
						|
    })(this);
 | 
						|
    return setTimeout(fun, timeout);
 | 
						|
  };
 | 
						|
 | 
						|
  exports.objectExtend = function(dst, src) {
 | 
						|
    var k;
 | 
						|
    for (k in src) {
 | 
						|
      if (src.hasOwnProperty(k)) {
 | 
						|
        dst[k] = src[k];
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return dst;
 | 
						|
  };
 | 
						|
 | 
						|
  exports.overshadowListeners = function(ee, event, handler) {
 | 
						|
    var new_handler, old_listeners;
 | 
						|
    old_listeners = ee.listeners(event).slice(0);
 | 
						|
    ee.removeAllListeners(event);
 | 
						|
    new_handler = function() {
 | 
						|
      var j, len, listener;
 | 
						|
      if (handler.apply(this, arguments) !== true) {
 | 
						|
        for (j = 0, len = old_listeners.length; j < len; j++) {
 | 
						|
          listener = old_listeners[j];
 | 
						|
          listener.apply(this, arguments);
 | 
						|
        }
 | 
						|
        return false;
 | 
						|
      }
 | 
						|
      return true;
 | 
						|
    };
 | 
						|
    return ee.addListener(event, new_handler);
 | 
						|
  };
 | 
						|
 | 
						|
  escapable = /[\x00-\x1f\ud800-\udfff\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufff0-\uffff]/g;
 | 
						|
 | 
						|
  unroll_lookup = function(escapable) {
 | 
						|
    var c, i, unrolled;
 | 
						|
    unrolled = {};
 | 
						|
    c = (function() {
 | 
						|
      var j, results;
 | 
						|
      results = [];
 | 
						|
      for (i = j = 0; j < 65536; i = ++j) {
 | 
						|
        results.push(String.fromCharCode(i));
 | 
						|
      }
 | 
						|
      return results;
 | 
						|
    })();
 | 
						|
    escapable.lastIndex = 0;
 | 
						|
    c.join('').replace(escapable, function(a) {
 | 
						|
      return unrolled[a] = '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
 | 
						|
    });
 | 
						|
    return unrolled;
 | 
						|
  };
 | 
						|
 | 
						|
  lookup = unroll_lookup(escapable);
 | 
						|
 | 
						|
  exports.quote = function(string) {
 | 
						|
    var quoted;
 | 
						|
    quoted = JSON.stringify(string);
 | 
						|
    escapable.lastIndex = 0;
 | 
						|
    if (!escapable.test(quoted)) {
 | 
						|
      return quoted;
 | 
						|
    }
 | 
						|
    return quoted.replace(escapable, function(a) {
 | 
						|
      return lookup[a];
 | 
						|
    });
 | 
						|
  };
 | 
						|
 | 
						|
  exports.parseCookie = function(cookie_header) {
 | 
						|
    var cookie, cookies, j, len, parts, ref;
 | 
						|
    cookies = {};
 | 
						|
    if (cookie_header) {
 | 
						|
      ref = cookie_header.split(';');
 | 
						|
      for (j = 0, len = ref.length; j < len; j++) {
 | 
						|
        cookie = ref[j];
 | 
						|
        parts = cookie.split('=');
 | 
						|
        cookies[parts[0].trim()] = (parts[1] || '').trim();
 | 
						|
      }
 | 
						|
    }
 | 
						|
    return cookies;
 | 
						|
  };
 | 
						|
 | 
						|
  exports.random32 = function() {
 | 
						|
    var foo, v;
 | 
						|
    foo = crypto.randomBytes(4);
 | 
						|
    v = [foo[0], foo[1], foo[2], foo[3]];
 | 
						|
    return v[0] + (v[1] * 256) + (v[2] * 256 * 256) + (v[3] * 256 * 256 * 256);
 | 
						|
  };
 | 
						|
 | 
						|
}).call(this);
 |