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
+13
View File
@@ -0,0 +1,13 @@
Copyright 2015 Blake Embrey
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+45
View File
@@ -0,0 +1,45 @@
# Popsicle Proxy Agent
[![NPM version][npm-image]][npm-url]
[![NPM downloads][downloads-image]][downloads-url]
[![Build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
> Enable proxy support for Popsicle (for node).
## Installation
```sh
npm install popsicle-proxy-agent --save
```
## Usage
```js
var request = require('popsicle').request
var proxy = require('popsicle-proxy-agent')
request('http://example.com')
.use(proxy({ proxy: '...' }))
.then(...)
```
### Options
* **proxy** The default HTTP(s) proxy to use
* **httpProxy** The proxy for HTTP requests (default: `process.env.HTTP_PROXY`)
* **httpsProxy** The proxy for HTTPS requests (default: `process.env.HTTPS_PROXY`)
* **noProxy** A string of space-separated hosts to not proxy (default: `process.env.NO_PROXY`)
## License
Apache 2.0
[npm-image]: https://img.shields.io/npm/v/popsicle-proxy-agent.svg?style=flat
[npm-url]: https://npmjs.org/package/popsicle-proxy-agent
[downloads-image]: https://img.shields.io/npm/dm/popsicle-proxy-agent.svg?style=flat
[downloads-url]: https://npmjs.org/package/popsicle-proxy-agent
[travis-image]: https://img.shields.io/travis/blakeembrey/popsicle-proxy-agent.svg?style=flat
[travis-url]: https://travis-ci.org/blakeembrey/popsicle-proxy-agent
[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/popsicle-proxy-agent.svg?style=flat
[coveralls-url]: https://coveralls.io/r/blakeembrey/popsicle-proxy-agent?branch=master
+11
View File
@@ -0,0 +1,11 @@
import { Request } from 'popsicle';
declare function proxy(options?: proxy.Options): (request: Request) => void;
declare namespace proxy {
interface Options {
proxy?: string;
httpProxy?: string;
httpsProxy?: string;
noProxy?: string;
}
}
export = proxy;
+59
View File
@@ -0,0 +1,59 @@
var url_1 = require('url');
var HttpProxyAgent = require('http-proxy-agent');
var HttpsProxyAgent = require('https-proxy-agent');
function proxy(options) {
if (options === void 0) { options = {}; }
var getProxyAgent = createGetProxyAgent(options);
return function (request) {
request.options.agent = getProxyAgent(request.Url);
};
}
function createGetProxyAgent(options) {
var noProxy = options.noProxy || process.env.NO_PROXY || process.env.no_proxy;
if (noProxy === '*') {
return function (url) { return undefined; };
}
var noProxyList = parseNoProxy(noProxy);
var httpProxy = options.httpProxy || options.proxy || process.env.HTTP_PROXY || process.env.http_proxy;
var httpsProxy = options.httpsProxy || options.proxy || process.env.HTTPS_PROXY || process.env.https_proxy;
var httpProxyUrl = httpProxy ? url_1.parse(httpProxy) : undefined;
var httpsProxyUrl = httpsProxy ? url_1.parse(httpsProxy) : undefined;
return function (url) {
if (noProxy && urlInNoProxy(url, noProxyList)) {
return;
}
if (url.protocol === 'https:' && httpsProxy != null) {
return new HttpsProxyAgent(httpsProxyUrl);
}
return httpProxy ? new HttpProxyAgent(httpProxyUrl) : undefined;
};
}
function formatHostname(hostname) {
return hostname.replace(/^\.*/, '.').toLowerCase();
}
function parseNoProxy(noProxy) {
if (!noProxy) {
return [];
}
return noProxy.split(',').map(function (zone) {
var location = zone.trim().toLowerCase();
var parts = location.split(':', 2);
var hostname = formatHostname(parts[0]);
var port = parts[1];
return { hostname: hostname, port: port };
});
}
function urlInNoProxy(url, noProxyList) {
var hostname = formatHostname(url.hostname);
var port = url.port || (url.protocol === 'https:' ? '443' : '80');
return noProxyList.some(function (noProxy) {
var isMatchedAt = hostname.indexOf(noProxy.hostname);
var hostnameMatched = isMatchedAt > -1 && isMatchedAt === hostname.length - noProxy.hostname.length;
if (noProxy.port != null) {
return hostnameMatched && port === noProxy.port;
}
return hostnameMatched;
});
}
module.exports = proxy;
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":["proxy","createGetProxyAgent","formatHostname","parseNoProxy","urlInNoProxy"],"mappings":"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"}
View File
+42
View File
@@ -0,0 +1,42 @@
var popsicle_1 = require('popsicle');
var url_1 = require('url');
var test = require('blue-tape');
var serverAddress = require('server-address');
var proxy = require('./index');
test('popsicle proxy', function (t) {
var server;
var proxyServer;
t.test('before', function (t) {
proxyServer = serverAddress(function (req, res) {
res.end('proxy ' + req.url);
});
server = serverAddress(function (req, res) {
res.end('server ' + req.url);
});
server.listen();
proxyServer.listen();
t.end();
});
t.test('use proxy option', function (t) {
return popsicle_1.request(server.url())
.use(proxy({ proxy: proxyServer.url() }))
.then(function (res) {
t.equal(res.status, 200);
t.equal(res.body, 'proxy ' + server.url());
});
});
t.test('support no proxy', function (t) {
return popsicle_1.request(server.url())
.use(proxy({ proxy: proxyServer.url(), noProxy: url_1.parse(server.url()).hostname }))
.then(function (res) {
t.equal(res.status, 200);
t.equal(res.body, 'server /');
});
});
t.test('after', function (t) {
server.close();
proxyServer.close();
t.end();
});
});
//# sourceMappingURL=index.spec.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../src/index.spec.ts"],"names":[],"mappings":"AAAA,yBAAwB,UACxB,CAAC,CADiC;AAClC,oBAAsB,KACtB,CAAC,CAD0B;AAC3B,IAAO,IAAI,WAAW,WAAW,CAAC,CAAA;AAClC,IAAO,aAAa,WAAW,gBAAgB,CAAC,CAAA;AAChD,IAAO,KAAK,WAAW,SAAS,CAAC,CAAA;AAEjC,IAAI,CAAC,gBAAgB,EAAE,UAAA,CAAC;IACtB,IAAI,MAAmC,CAAA;IACvC,IAAI,WAAwC,CAAA;IAE5C,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAA,CAAC;QAChB,WAAW,GAAG,aAAa,CAAC,UAAU,GAAG,EAAE,GAAG;YAC5C,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;QAEF,MAAM,GAAG,aAAa,CAAC,UAAU,GAAG,EAAE,GAAG;YACvC,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,EAAE,CAAA;QACf,WAAW,CAAC,MAAM,EAAE,CAAA;QAEpB,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,MAAM,CAAC,kBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;aACzB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACxC,IAAI,CAAC,UAAU,GAAG;YACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;QAC5C,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAA,CAAC;QAC1B,MAAM,CAAC,kBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;aACzB,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,WAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC/E,IAAI,CAAC,UAAU,GAAG;YACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YACxB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAA,CAAC;QACf,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,WAAW,CAAC,KAAK,EAAE,CAAA;QAEnB,CAAC,CAAC,GAAG,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
+108
View File
@@ -0,0 +1,108 @@
{
"_args": [
[
"popsicle-proxy-agent@^1.0.0",
"C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\typings-core"
]
],
"_from": "popsicle-proxy-agent@>=1.0.0-0 <2.0.0-0",
"_id": "popsicle-proxy-agent@1.0.0",
"_inCache": true,
"_location": "/popsicle-proxy-agent",
"_nodeVersion": "5.4.0",
"_npmOperationalInternal": {
"host": "packages-5-east.internal.npmjs.com",
"tmp": "tmp/popsicle-proxy-agent-1.0.0.tgz_1454354872945_0.6299643132369965"
},
"_npmUser": {
"email": "hello@blakeembrey.com",
"name": "blakeembrey"
},
"_npmVersion": "3.3.12",
"_phantomChildren": {},
"_requested": {
"name": "popsicle-proxy-agent",
"raw": "popsicle-proxy-agent@^1.0.0",
"rawSpec": "^1.0.0",
"scope": null,
"spec": ">=1.0.0-0 <2.0.0-0",
"type": "range"
},
"_requiredBy": [
"/typings-core"
],
"_resolved": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-1.0.0.tgz",
"_shasum": "5b88d5d1253a0a601cba69868cba6f5dbc5d0829",
"_shrinkwrap": null,
"_spec": "popsicle-proxy-agent@^1.0.0",
"_where": "C:\\Users\\x2mjbyrn\\Source\\Repos\\Skeleton\\node_modules\\typings-core",
"author": {
"email": "hello@blakeembrey.com",
"name": "Blake Embrey",
"url": "http://blakeembrey.me"
},
"bugs": {
"url": "https://github.com/blakeembrey/popsicle-proxy-agent/issues"
},
"dependencies": {
"http-proxy-agent": "^1.0.0",
"https-proxy-agent": "^1.0.0"
},
"description": "Enable proxy support for Popsicle (for node)",
"devDependencies": {
"blue-tape": "^0.1.10",
"istanbul": "1.0.0-alpha.2",
"nock": "^7.0.2",
"popsicle": "^3.0.3",
"pre-commit": "^1.0.6",
"server-address": "^1.0.4",
"tap-spec": "^4.1.1",
"ts-node": "^0.5.0",
"tslint": "^3.1.1",
"typescript": "^1.7.3",
"typings": "^0.3.1"
},
"directories": {},
"dist": {
"shasum": "5b88d5d1253a0a601cba69868cba6f5dbc5d0829",
"tarball": "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-1.0.0.tgz"
},
"files": [
"LICENSE",
"dist/",
"typings.json"
],
"gitHead": "2a2c4de15583e4300e7239fd26172ce814dee669",
"homepage": "https://github.com/blakeembrey/popsicle-proxy-agent",
"installable": true,
"keywords": [
"agent",
"http",
"https",
"popsicle",
"proxy"
],
"license": "Apache-2.0",
"main": "dist/index.js",
"maintainers": [
{
"name": "blakeembrey",
"email": "hello@blakeembrey.com"
}
],
"name": "popsicle-proxy-agent",
"optionalDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/blakeembrey/popsicle-proxy-agent.git"
},
"scripts": {
"build": "rm -rf dist/ && tsc",
"lint": "tslint \"src/**/*.ts\"",
"prepublish": "typings install && npm run build",
"test": "npm run lint && npm run test-cov",
"test-cov": "ts-node node_modules/istanbul/lib/cli.js cover -e .ts --print none -x \"*.d.ts\" -x \"*.spec.ts\" blue-tape -- \"src/**/*.spec.ts\" | tap-spec",
"test-spec": "ts-node node_modules/blue-tape/bin/blue-tape.js \"src/**/*.spec.ts\" | tap-spec"
},
"version": "1.0.0"
}
+14
View File
@@ -0,0 +1,14 @@
{
"devDependencies": {
"blue-tape": "github:typings/typed-blue-tape#a4e41a85d6f760e7c60088127968eae7d3a556fa",
"popsicle": "npm:popsicle"
},
"ambientDependencies": {
"node": "github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#1c56e368e17bb28ca57577250624ca5bd561aa81"
},
"dependencies": {
"http-proxy-agent": "github:typings/typed-http-proxy-agent#b2cc033f660e62c3a7b8362898b16eefa3ad3939",
"https-proxy-agent": "github:typings/typed-https-proxy-agent#6e0cb6d6cfdeddffb06377c539790b9c501bce9b",
"server-address": "npm:server-address"
}
}