|
|
- // 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);
|