1 /** 
  2  * @namespace 
  3  * @name lib
  4 */
  5 
  6 /** @lends lib */
  7 
  8 /**
  9  * Clones an object.
 10  * @param {Object} obj The object you want to clone.
 11  * @returns {Object} A copy of obj.
 12 */
 13 var clone = function (obj) {
 14   if(obj == null || typeof(obj) != 'object') {
 15     return obj;
 16   }
 17   var temp = new obj.constructor();
 18   for(var key in obj) {
 19     temp[key] = clone(obj[key]);
 20   }
 21   return temp;
 22 }
 23 exports.clone = clone;
 24 
 25 /**
 26  * SHA1 a string.
 27  * @param {String} data A string or buffer object.
 28  * @returns {String} Hexedecimal SHA1 value of data.
 29 */
 30 var sha1 = function (data) {
 31   var crypto = require('crypto');
 32   var sha = crypto.createHash('sha1');
 33   sha.update(data);
 34   return sha.digest('hex');
 35 }
 36 exports.sha1 = sha1;