//"version": "2.8.2",
							 | 
						|
								var ClientRequest = require('./lib/request');
							 | 
						|
								var response = require('./lib/response');
							 | 
						|
								var extend = require('xtend');
							 | 
						|
								var statusCodes = require('builtin-status-codes');
							 | 
						|
								var url = require('url');
							 | 
						|
								
							 | 
						|
								var http = exports;
							 | 
						|
								
							 | 
						|
								http.request = function (opts, cb) {
							 | 
						|
								  if (typeof opts === 'string') opts = url.parse(opts);
							 | 
						|
								  else opts = extend(opts);
							 | 
						|
								
							 | 
						|
								  // Normally, the page is loaded from http or https, so not specifying a protocol
							 | 
						|
								  // will result in a (valid) protocol-relative url. However, this won't work if
							 | 
						|
								  // the protocol is something else, like 'file:'
							 | 
						|
								  var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '';
							 | 
						|
								
							 | 
						|
								  var protocol = opts.protocol || defaultProtocol;
							 | 
						|
								  var host = opts.hostname || opts.host;
							 | 
						|
								  var port = opts.port;
							 | 
						|
								  var path = opts.path || '/';
							 | 
						|
								
							 | 
						|
								  // Necessary for IPv6 addresses
							 | 
						|
								  if (host && host.indexOf(':') !== -1) host = '[' + host + ']';
							 | 
						|
								
							 | 
						|
								  // This may be a relative url. The browser should always be able to interpret it correctly.
							 | 
						|
								  opts.url = (host ? protocol + '//' + host : '') + (port ? ':' + port : '') + path;
							 | 
						|
								  opts.method = (opts.method || 'GET').toUpperCase();
							 | 
						|
								  opts.headers = opts.headers || {};
							 | 
						|
								
							 | 
						|
								  // Also valid opts.auth, opts.mode
							 | 
						|
								
							 | 
						|
								  var req = new ClientRequest(opts);
							 | 
						|
								  if (cb) req.on('response', cb);
							 | 
						|
								  return req;
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								http.get = function get(opts, cb) {
							 | 
						|
								  var req = http.request(opts, cb);
							 | 
						|
								  req.end();
							 | 
						|
								  return req;
							 | 
						|
								};
							 | 
						|
								
							 | 
						|
								http.ClientRequest = ClientRequest;
							 | 
						|
								http.IncomingMessage = response.IncomingMessage;
							 | 
						|
								
							 | 
						|
								http.Agent = function () {};
							 | 
						|
								http.Agent.defaultMaxSockets = 4;
							 | 
						|
								
							 | 
						|
								http.globalAgent = new http.Agent();
							 | 
						|
								
							 | 
						|
								http.STATUS_CODES = statusCodes;
							 | 
						|
								
							 | 
						|
								http.METHODS = [
							 | 
						|
								  'CHECKOUT',
							 | 
						|
								  'CONNECT',
							 | 
						|
								  'COPY',
							 | 
						|
								  'DELETE',
							 | 
						|
								  'GET',
							 | 
						|
								  'HEAD',
							 | 
						|
								  'LOCK',
							 | 
						|
								  'M-SEARCH',
							 | 
						|
								  'MERGE',
							 | 
						|
								  'MKACTIVITY',
							 | 
						|
								  'MKCOL',
							 | 
						|
								  'MOVE',
							 | 
						|
								  'NOTIFY',
							 | 
						|
								  'OPTIONS',
							 | 
						|
								  'PATCH',
							 | 
						|
								  'POST',
							 | 
						|
								  'PROPFIND',
							 | 
						|
								  'PROPPATCH',
							 | 
						|
								  'PURGE',
							 | 
						|
								  'PUT',
							 | 
						|
								  'REPORT',
							 | 
						|
								  'SEARCH',
							 | 
						|
								  'SUBSCRIBE',
							 | 
						|
								  'TRACE',
							 | 
						|
								  'UNLOCK',
							 | 
						|
								  'UNSUBSCRIBE'
							 | 
						|
								];
							 |