Template Upload

This commit is contained in:
SOUTHERNCO\x2mjbyrn
2017-05-17 13:45:25 -04:00
parent 415b9c25f3
commit 7efe7605b8
11476 changed files with 2170865 additions and 34 deletions

401
node_modules/got/index.js generated vendored Normal file
View File

@ -0,0 +1,401 @@
'use strict';
var EventEmitter = require('events').EventEmitter;
var http = require('http');
var https = require('https');
var urlLib = require('url');
var querystring = require('querystring');
var objectAssign = require('object-assign');
var PassThrough = require('readable-stream').PassThrough;
var duplexer2 = require('duplexer2');
var isStream = require('is-stream');
var readAllStream = require('read-all-stream');
var timedOut = require('timed-out');
var urlParseLax = require('url-parse-lax');
var lowercaseKeys = require('lowercase-keys');
var isRedirect = require('is-redirect');
var PinkiePromise = require('pinkie-promise');
var unzipResponse = require('unzip-response');
var createErrorClass = require('create-error-class');
var nodeStatusCodes = require('node-status-codes');
var parseJson = require('parse-json');
var isRetryAllowed = require('is-retry-allowed');
var pkg = require('./package.json');
function requestAsEventEmitter(opts) {
opts = opts || {};
var ee = new EventEmitter();
var requestUrl = opts.href || urlLib.resolve(urlLib.format(opts), opts.path);
var redirectCount = 0;
var retryCount = 0;
var redirectUrl;
var get = function (opts) {
var fn = opts.protocol === 'https:' ? https : http;
var req = fn.request(opts, function (res) {
var statusCode = res.statusCode;
if (isRedirect(statusCode) && opts.followRedirect && 'location' in res.headers && (opts.method === 'GET' || opts.method === 'HEAD')) {
res.resume();
if (++redirectCount > 10) {
ee.emit('error', new got.MaxRedirectsError(statusCode, opts), null, res);
return;
}
redirectUrl = urlLib.resolve(urlLib.format(opts), res.headers.location);
var redirectOpts = objectAssign({}, opts, urlLib.parse(redirectUrl));
ee.emit('redirect', res, redirectOpts);
get(redirectOpts);
return;
}
// do not write ee.bind(...) instead of function - it will break gzip in Node.js 0.10
setImmediate(function () {
var response = typeof unzipResponse === 'function' && req.method !== 'HEAD' ? unzipResponse(res) : res;
response.url = redirectUrl || requestUrl;
response.requestUrl = requestUrl;
ee.emit('response', response);
});
});
req.once('error', function (err) {
var backoff = opts.retries(++retryCount, err);
if (backoff) {
setTimeout(get, backoff, opts);
return;
}
ee.emit('error', new got.RequestError(err, opts));
});
if (opts.timeout) {
timedOut(req, opts.timeout);
}
setImmediate(ee.emit.bind(ee), 'request', req);
};
get(opts);
return ee;
}
function asCallback(opts, cb) {
var ee = requestAsEventEmitter(opts);
ee.on('request', function (req) {
if (isStream(opts.body)) {
opts.body.pipe(req);
opts.body = undefined;
return;
}
req.end(opts.body);
});
ee.on('response', function (res) {
readAllStream(res, opts.encoding, function (error, data) {
var statusCode = res.statusCode;
var limitStatusCode = opts.followRedirect ? 299 : 399;
if (error) {
cb(new got.ReadError(error, opts), null, res);
return;
}
if (statusCode < 200 || statusCode > limitStatusCode) {
error = new got.HTTPError(statusCode, opts);
}
if (opts.json && data) {
try {
data = parseJson(data);
} catch (err) {
err.fileName = urlLib.format(opts);
error = new got.ParseError(err, statusCode, opts);
}
}
cb(error, data, res);
});
});
ee.on('error', cb);
}
function asPromise(opts) {
return new PinkiePromise(function (resolve, reject) {
asCallback(opts, function (err, data, response) {
if (response) {
response.body = data;
}
if (err) {
Object.defineProperty(err, 'response', {
value: response,
enumerable: false
});
reject(err);
return;
}
resolve(response);
});
});
}
function asStream(opts) {
var input = new PassThrough();
var output = new PassThrough();
var proxy = duplexer2(input, output);
if (opts.json) {
throw new Error('got can not be used as stream when options.json is used');
}
if (opts.body) {
proxy.write = function () {
throw new Error('got\'s stream is not writable when options.body is used');
};
}
var ee = requestAsEventEmitter(opts);
ee.on('request', function (req) {
proxy.emit('request', req);
if (isStream(opts.body)) {
opts.body.pipe(req);
return;
}
if (opts.body) {
req.end(opts.body);
return;
}
if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') {
input.pipe(req);
return;
}
req.end();
});
ee.on('response', function (res) {
var statusCode = res.statusCode;
var limitStatusCode = opts.followRedirect ? 299 : 399;
res.pipe(output);
if (statusCode < 200 || statusCode > limitStatusCode) {
proxy.emit('error', new got.HTTPError(statusCode, opts), null, res);
return;
}
proxy.emit('response', res);
});
ee.on('redirect', proxy.emit.bind(proxy, 'redirect'));
ee.on('error', proxy.emit.bind(proxy, 'error'));
return proxy;
}
function normalizeArguments(url, opts) {
if (typeof url !== 'string' && typeof url !== 'object') {
throw new Error('Parameter `url` must be a string or object, not ' + typeof url);
}
if (typeof url === 'string') {
url = url.replace(/^unix:/, 'http://$&');
url = urlParseLax(url);
if (url.auth) {
throw new Error('Basic authentication must be done with auth option');
}
}
opts = objectAssign(
{protocol: 'http:', path: '', retries: 5},
url,
opts
);
opts.headers = objectAssign({
'user-agent': pkg.name + '/' + pkg.version + ' (https://github.com/sindresorhus/got)',
'accept-encoding': 'gzip,deflate'
}, lowercaseKeys(opts.headers));
var query = opts.query;
if (query) {
if (typeof query !== 'string') {
opts.query = querystring.stringify(query);
}
opts.path = opts.path.split('?')[0] + '?' + opts.query;
delete opts.query;
}
if (opts.json && opts.headers.accept === undefined) {
opts.headers.accept = 'application/json';
}
var body = opts.body;
if (body) {
if (typeof body !== 'string' && !(body !== null && typeof body === 'object')) {
throw new Error('options.body must be a ReadableStream, string, Buffer or plain Object');
}
opts.method = opts.method || 'POST';
if (isStream(body) && typeof body.getBoundary === 'function') {
// Special case for https://github.com/form-data/form-data
opts.headers['content-type'] = opts.headers['content-type'] || 'multipart/form-data; boundary=' + body.getBoundary();
} else if (body !== null && typeof body === 'object' && !Buffer.isBuffer(body) && !isStream(body)) {
opts.headers['content-type'] = opts.headers['content-type'] || 'application/x-www-form-urlencoded';
body = opts.body = querystring.stringify(body);
}
if (opts.headers['content-length'] === undefined && opts.headers['transfer-encoding'] === undefined && !isStream(body)) {
var length = typeof body === 'string' ? Buffer.byteLength(body) : body.length;
opts.headers['content-length'] = length;
}
}
opts.method = opts.method || 'GET';
opts.method = opts.method.toUpperCase();
if (opts.hostname === 'unix') {
var matches = /(.+):(.+)/.exec(opts.path);
if (matches) {
opts.socketPath = matches[1];
opts.path = matches[2];
opts.host = null;
}
}
if (typeof opts.retries !== 'function') {
var retries = opts.retries;
opts.retries = function backoff(iter, err) {
if (iter > retries || !isRetryAllowed(err)) {
return 0;
}
var noise = Math.random() * 100;
return ((1 << iter) * 1000) + noise;
};
}
if (opts.followRedirect === undefined) {
opts.followRedirect = true;
}
return opts;
}
function got(url, opts, cb) {
if (typeof opts === 'function') {
cb = opts;
opts = {};
}
if (cb) {
asCallback(normalizeArguments(url, opts), cb);
return null;
}
try {
return asPromise(normalizeArguments(url, opts));
} catch (err) {
return PinkiePromise.reject(err);
}
}
var helpers = [
'get',
'post',
'put',
'patch',
'head',
'delete'
];
helpers.forEach(function (el) {
got[el] = function (url, opts, cb) {
if (typeof opts === 'function') {
cb = opts;
opts = {};
}
return got(url, objectAssign({}, opts, {method: el}), cb);
};
});
got.stream = function (url, opts, cb) {
if (cb || typeof opts === 'function') {
throw new Error('callback can not be used with stream mode');
}
return asStream(normalizeArguments(url, opts));
};
helpers.forEach(function (el) {
got.stream[el] = function (url, opts, cb) {
if (typeof opts === 'function') {
cb = opts;
opts = {};
}
return got.stream(url, objectAssign({}, opts, {method: el}), cb);
};
});
function stdError(error, opts) {
if (error.code !== undefined) {
this.code = error.code;
}
objectAssign(this, {
message: error.message,
host: opts.host,
hostname: opts.hostname,
method: opts.method,
path: opts.path
});
}
got.RequestError = createErrorClass('RequestError', stdError);
got.ReadError = createErrorClass('ReadError', stdError);
got.ParseError = createErrorClass('ParseError', function (e, statusCode, opts) {
stdError.call(this, e, opts);
this.statusCode = statusCode;
this.statusMessage = nodeStatusCodes[this.statusCode];
});
got.HTTPError = createErrorClass('HTTPError', function (statusCode, opts) {
stdError.call(this, {}, opts);
this.statusCode = statusCode;
this.statusMessage = nodeStatusCodes[this.statusCode];
this.message = 'Response code ' + this.statusCode + ' (' + this.statusMessage + ')';
});
got.MaxRedirectsError = createErrorClass('MaxRedirectsError', function (statusCode, opts) {
stdError.call(this, {}, opts);
this.statusCode = statusCode;
this.statusMessage = nodeStatusCodes[this.statusCode];
this.message = 'Redirected 10 times. Aborting.';
});
module.exports = got;

21
node_modules/got/license generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

136
node_modules/got/package.json generated vendored Normal file
View File

@ -0,0 +1,136 @@
{
"_args": [
[
"got@^5.0.0",
"C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\package-json"
]
],
"_from": "got@>=5.0.0-0 <6.0.0-0",
"_id": "got@5.7.1",
"_inCache": true,
"_location": "/got",
"_nodeVersion": "0.10.48",
"_npmOperationalInternal": {
"host": "packages-18-east.internal.npmjs.com",
"tmp": "tmp/got-5.7.1.tgz_1478113400687_0.6078383799176663"
},
"_npmUser": {
"email": "floatdrop@gmail.com",
"name": "floatdrop"
},
"_npmVersion": "2.15.1",
"_phantomChildren": {},
"_requested": {
"name": "got",
"raw": "got@^5.0.0",
"rawSpec": "^5.0.0",
"scope": null,
"spec": ">=5.0.0-0 <6.0.0-0",
"type": "range"
},
"_requiredBy": [
"/package-json"
],
"_resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
"_shasum": "5f81635a61e4a6589f180569ea4e381680a51f35",
"_shrinkwrap": null,
"_spec": "got@^5.0.0",
"_where": "C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\package-json",
"browser": {
"unzip-response": false
},
"bugs": {
"url": "https://github.com/sindresorhus/got/issues"
},
"dependencies": {
"create-error-class": "^3.0.1",
"duplexer2": "^0.1.4",
"is-redirect": "^1.0.0",
"is-retry-allowed": "^1.0.0",
"is-stream": "^1.0.0",
"lowercase-keys": "^1.0.0",
"node-status-codes": "^1.0.0",
"object-assign": "^4.0.1",
"parse-json": "^2.1.0",
"pinkie-promise": "^2.0.0",
"read-all-stream": "^3.0.0",
"readable-stream": "^2.0.5",
"timed-out": "^3.0.0",
"unzip-response": "^1.0.2",
"url-parse-lax": "^1.0.0"
},
"description": "Simplified HTTP/HTTPS requests",
"devDependencies": {
"ava": "^0.16.0",
"coveralls": "^2.11.4",
"form-data": "^2.1.1",
"get-port": "^2.0.0",
"get-stream": "^2.3.0",
"into-stream": "^2.0.0",
"nyc": "^8.1.0",
"pem": "^1.4.4",
"pify": "^2.3.0",
"tempfile": "^1.1.1",
"xo": "0.16.x"
},
"directories": {},
"dist": {
"shasum": "5f81635a61e4a6589f180569ea4e381680a51f35",
"tarball": "https://registry.npmjs.org/got/-/got-5.7.1.tgz"
},
"engines": {
"node": ">=0.10.0 <7"
},
"files": [
"index.js"
],
"gitHead": "856b4caf16b02ce28ef0d92e83cf434a50b71e84",
"homepage": "https://github.com/sindresorhus/got#readme",
"installable": true,
"keywords": [
"curl",
"fetch",
"get",
"got",
"http",
"https",
"request",
"simple",
"uri",
"url",
"util",
"utility",
"wget"
],
"license": "MIT",
"maintainers": [
{
"name": "sindresorhus",
"email": "sindresorhus@gmail.com"
},
{
"name": "floatdrop",
"email": "floatdrop@gmail.com"
},
{
"name": "kevva",
"email": "kevinmartensson@gmail.com"
}
],
"name": "got",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/got.git"
},
"scripts": {
"coveralls": "nyc report --reporter=text-lcov | coveralls",
"test": "xo && nyc ava"
},
"version": "5.7.1",
"xo": {
"ignores": [
"test/**"
]
}
}

357
node_modules/got/readme.md generated vendored Normal file
View File

@ -0,0 +1,357 @@
<h1 align="center">
<br>
<img width="360" src="https://rawgit.com/sindresorhus/got/master/media/logo.svg" alt="got">
<br>
<br>
<br>
</h1>
> Simplified HTTP/HTTPS requests
[![Build Status](https://travis-ci.org/sindresorhus/got.svg?branch=master)](https://travis-ci.org/sindresorhus/got) [![Coverage Status](https://coveralls.io/repos/sindresorhus/got/badge.svg?service=github&branch=master)](https://coveralls.io/github/sindresorhus/got?branch=master) [![Downloads](https://img.shields.io/npm/dm/got.svg?style=flat)](https://npmjs.com/got)
A nicer interface to the built-in [`http`](http://nodejs.org/api/http.html) module.
It supports following redirects, promises, streams, retries, automagically handling gzip/deflate and some convenience options.
Created because [`request`](https://github.com/mikeal/request) is bloated *(several megabytes!)*.
## Install
```
$ npm install --save got
```
## Usage
```js
const got = require('got');
// Callback mode
got('todomvc.com', (error, body, response) => {
console.log(body);
//=> '<!doctype html> ...'
});
// Promise mode
got('todomvc.com')
.then(response => {
console.log(response.body);
//=> '<!doctype html> ...'
})
.catch(error => {
console.log(error.response.body);
//=> 'Internal server error ...'
});
// Stream mode
got.stream('todomvc.com').pipe(fs.createWriteStream('index.html'));
// For POST, PUT and PATCH methods got.stream returns a WritableStream
fs.createReadStream('index.html').pipe(got.stream.post('todomvc.com'));
```
### API
It's a `GET` request by default, but can be changed in `options`.
#### got(url, [options], [callback])
Returns a Promise for a `response` object with a `body` property, a `url` property with the request URL or the final URL after redirects, and a `requestUrl` property with the original request URL.
Otherwise calls callback with `response` object (same as in previous case).
##### url
Type: `string`, `object`
The URL to request or a [`http.request` options](https://nodejs.org/api/http.html#http_http_request_options_callback) object.
Properties from `options` will override properties in the parsed `url`.
##### options
Type: `object`
Any of the [`http.request`](http://nodejs.org/api/http.html#http_http_request_options_callback) options.
###### body
Type: `string`, `buffer`, `readableStream`, `object`
*This is mutually exclusive with stream mode.*
Body that will be sent with a `POST` request.
If present in `options` and `options.method` is not set, `options.method` will be set to `POST`.
If `content-length` or `transfer-encoding` is not set in `options.headers` and `body` is a string or buffer, `content-length` will be set to the body length.
If `body` is a plain object, it will be stringified with [`querystring.stringify`](https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options) and sent as `application/x-www-form-urlencoded`.
###### encoding
Type: `string`, `null`
Default: `'utf8'`
Encoding to be used on `setEncoding` of the response data. If `null`, the body is returned as a Buffer.
###### json
Type: `boolean`
Default: `false`
*This is mutually exclusive with stream mode.*
Parse response body with `JSON.parse` and set `accept` header to `application/json`.
###### query
Type: `string`, `object`
Query string object that will be added to the request URL. This will override the query string in `url`.
###### timeout
Type: `number`
Milliseconds after which the request will be aborted and an error event with `ETIMEDOUT` code will be emitted.
###### retries
Type: `number`, `function`
Default: `5`
Number of request retries when network errors happens. Delays between retries counts with function `1000 * Math.pow(2, retry) + Math.random() * 100`, where `retry` is attempt number (starts from 0).
Option accepts `function` with `retry` and `error` arguments. Function must return delay in milliseconds (`0` return value cancels retry).
**Note:** if `retries` is `number`, `ENOTFOUND` and `ENETUNREACH` error will not be retried (see full list in [`is-retry-allowed`](https://github.com/floatdrop/is-retry-allowed/blob/master/index.js#L12) module).
###### followRedirect
Type: `boolean`<br>
Default: `true`
Defines if redirect responses should be followed automatically.
##### callback(error, data, response)
Function to be called when error or data are received. If omitted, a promise will be returned.
###### error
`Error` object with HTTP status code as `statusCode` property.
The data you requested.
###### response
The [response object](http://nodejs.org/api/http.html#http_http_incomingmessage).
When in stream mode, you can listen for events:
##### .on('request', request)
`request` event to get the request object of the request.
__Tip__: You can use `request` event to abort request:
```js
got.stream('github.com')
.on('request', req => setTimeout(() => req.abort(), 50));
```
##### .on('response', response)
`response` event to get the response object of the final request.
##### .on('redirect', response, nextOptions)
`redirect` event to get the response object of a redirect. The second argument is options for the next request to the redirect location.
##### .on('error', error, body, response)
`error` event emitted in case of protocol error (like `ENOTFOUND` etc.) or status error (4xx or 5xx). The second argument is the body of the server response in case of status error. The third argument is response object.
#### got.get(url, [options], [callback])
#### got.post(url, [options], [callback])
#### got.put(url, [options], [callback])
#### got.patch(url, [options], [callback])
#### got.head(url, [options], [callback])
#### got.delete(url, [options], [callback])
Sets `options.method` to the method name and makes a request.
## Errors
Each error contains (if available) `statusCode`, `statusMessage`, `host`, `hostname`, `method` and `path` properties to make debugging easier.
In Promise mode, the `response` is attached to the error.
#### got.RequestError
When a request fails. Contains a `code` property with error class code, like `ECONNREFUSED`.
#### got.ReadError
When reading from response stream fails.
#### got.ParseError
When `json` option is enabled and `JSON.parse` fails.
#### got.HTTPError
When server response code is not 2xx. Contains `statusCode` and `statusMessage`.
#### got.MaxRedirectsError
When server redirects you more than 10 times.
## Proxies
You can use the [`tunnel`](https://github.com/koichik/node-tunnel) module with the `agent` option to work with proxies:
```js
const got = require('got');
const tunnel = require('tunnel');
got('todomvc.com', {
agent: tunnel.httpOverHttp({
proxy: {
host: 'localhost'
}
})
}, () => {});
```
## Cookies
You can use the [`cookie`](https://github.com/jshttp/cookie) module to include cookies in a request:
```js
const got = require('got');
const cookie = require('cookie');
got('google.com', {
headers: {
cookie: cookie.serialize('foo', 'bar')
}
});
```
## Form data
You can use the [`form-data`](https://github.com/form-data/form-data) module to create POST request with form data:
```js
const fs = require('fs');
const got = require('got');
const FormData = require('form-data');
const form = new FormData();
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
got.post('google.com', {
body: form
});
```
## OAuth
You can use the [`oauth-1.0a`](https://github.com/ddo/oauth-1.0a) module to create a signed OAuth request:
```js
const got = require('got');
const OAuth = require('oauth-1.0a');
const oauth = OAuth({
consumer: {
public: process.env.CONSUMER_KEY,
secret: process.env.CONSUMER_SECRET
},
signature_method: 'HMAC-SHA1'
});
const token = {
public: process.env.ACCESS_TOKEN,
secret: process.env.ACCESS_TOKEN_SECRET
};
const url = 'https://api.twitter.com/1.1/statuses/home_timeline.json';
got(url, {
headers: oauth.toHeader(oauth.authorize({url, method: 'GET'}, token)),
json: true
});
```
## Unix Domain Sockets
Requests can also be sent via [unix domain sockets](http://serverfault.com/questions/124517/whats-the-difference-between-unix-socket-and-tcp-ip-socket). Use the following URL scheme: `PROTOCOL://unix:SOCKET:PATH`.
- `PROTOCOL` - `http` or `https` *(optional)*
- `SOCKET` - absolute path to a unix domain socket, e.g. `/var/run/docker.sock`
- `PATH` - request path, e.g. `/v2/keys`
```js
got('http://unix:/var/run/docker.sock:/containers/json');
// or without protocol (http by default)
got('unix:/var/run/docker.sock:/containers/json');
```
## Tip
It's a good idea to set the `'user-agent'` header so the provider can more easily see how their resource is used. By default, it's the URL to this repo.
```js
var got = require('got');
var pkg = require('./package.json');
got('todomvc.com', {
headers: {
'user-agent': 'my-module/' + pkg.version + ' (https://github.com/username/my-module)'
}
}, function () {});
```
## Node.js 0.10.x
It is a known issue with old good Node 0.10.x [`http.Agent`](https://nodejs.org/docs/v0.10.39/api/http.html#http_class_http_agent) and `agent.maxSockets`, which is set to `5`. This can cause low performance and in rare cases deadlocks. To avoid this you can set it manually:
```js
require('http').globalAgent.maxSockets = Infinity;
require('https').globalAgent.maxSockets = Infinity;
```
This should only ever be done if you have Node version 0.10.x and at the top-level app layer.
## Related
- [gh-got](https://github.com/sindresorhus/gh-got) - Convenience wrapper for interacting with the GitHub API
- [travis-got](https://github.com/samverschueren/travis-got) - Convenience wrapper for interacting with the Travis API
## Created by
[![Sindre Sorhus](https://avatars.githubusercontent.com/u/170270?v=3&s=100)](http://sindresorhus.com) | [![Vsevolod Strukchinsky](https://avatars.githubusercontent.com/u/365089?v=3&s=100)](https://github.com/floatdrop)
---|---
[Sindre Sorhus](http://sindresorhus.com) | [Vsevolod Strukchinsky](https://github.com/floatdrop)
## License
MIT © [Sindre Sorhus](http://sindresorhus.com)