diff options
author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 23:08:57 +0300 |
---|---|---|
committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 23:08:57 +0300 |
commit | 726b81b19251674e149ccfbb1abacbd837fc6db0 (patch) | |
tree | fbdbb227dc01357eb76e8222d76185bc124c5ca6 /node_modules/global-agent | |
parent | 34f0890e175698940d49238097579f44e4d78c89 (diff) | |
download | FlashRunner-726b81b19251674e149ccfbb1abacbd837fc6db0.tar.gz FlashRunner-726b81b19251674e149ccfbb1abacbd837fc6db0.tar.zst |
Removed files that should not have been included in git
Diffstat (limited to 'node_modules/global-agent')
125 files changed, 0 insertions, 5697 deletions
diff --git a/node_modules/global-agent/.flowconfig b/node_modules/global-agent/.flowconfig deleted file mode 100644 index 029d8c2..0000000 --- a/node_modules/global-agent/.flowconfig +++ /dev/null @@ -1,3 +0,0 @@ -[ignore] -.*/node_modules/.*/test/.* -<PROJECT_ROOT>/dist/.* diff --git a/node_modules/global-agent/LICENSE b/node_modules/global-agent/LICENSE deleted file mode 100644 index 5065086..0000000 --- a/node_modules/global-agent/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2019, Gajus Kuizinas (http://gajus.com/) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the Gajus Kuizinas (http://gajus.com/) nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL ANUARY BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/global-agent/README.md b/node_modules/global-agent/README.md deleted file mode 100644 index 8a8b525..0000000 --- a/node_modules/global-agent/README.md +++ /dev/null @@ -1,239 +0,0 @@ -# global-agent - -[](https://gitspo.com/mentions/gajus/global-agent) -[](https://travis-ci.org/gajus/global-agent) -[](https://coveralls.io/github/gajus/global-agent) -[](https://www.npmjs.org/package/global-agent) -[](https://github.com/gajus/canonical) -[](https://twitter.com/kuizinas) - -Global HTTP/HTTPS proxy configurable using environment variables. - -* [Usage](#usage) - * [Setup proxy using `global-agent/bootstrap`](#setup-proxy-using-global-agentbootstrap) - * [Setup proxy using `bootstrap` routine](#setup-proxy-using-bootstrap-routine) - * [Runtime configuration](#runtime-configuration) - * [Exclude URLs](#exclude-urls) - * [Enable logging](#enable-logging) -* [API](#api) - * [`createGlobalProxyAgent`](#createglobalproxyagent) - * [Environment variables](#environment-variables) - * [`global.GLOBAL_AGENT`](#globalglobal_agent) -* [Supported libraries](#supported-libraries) -* [FAQ](#faq) - * [What is the reason `global-agent` overrides explicitly configured HTTP(S) agent?](#what-is-the-reason-global-agent-overrides-explicitly-configured-https-agent) - * [What is the reason `global-agent/bootstrap` does not use `HTTP_PROXY`?](#what-is-the-reason-global-agentbootstrap-does-not-use-http_proxy) - * [What is the difference from `global-tunnel` and `tunnel`?](#what-is-the-difference-from-global-tunnel-and-tunnel) - -## Usage - -### Setup proxy using `global-agent/bootstrap` - -To configure HTTP proxy: - -1. Import `global-agent/bootstrap`. -1. Export HTTP proxy address as `GLOBAL_AGENT_HTTP_PROXY` environment variable. - -Code: - -```js -import 'global-agent/bootstrap'; - -// or: -// import {bootstrap} from 'global-agent'; -// bootstrap(); - -``` - -Bash: - -```bash -$ export GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8080 - -``` - -Alternatively, you can preload module using Node.js `--require, -r` configuration, e.g. - -```bash -$ export GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:8080 -$ node -r 'global-agent/bootstrap' your-script.js - -``` - -### Setup proxy using `bootstrap` routine - -Instead of importing a self-initialising script with side-effects as demonstrated in the [setup proxy using `global-agent/bootstrap`](#setup-proxy-using-global-agentbootstrap) documentation, you can import `bootstrap` routine and explicitly evaluate the bootstrap logic, e.g. - -```js -import { - bootstrap -} from 'global-agent'; - -bootstrap(); - -``` - -This is useful if you need to conditionally bootstrap `global-agent`, e.g. - -```js -import { - bootstrap -} from 'global-agent'; -import globalTunnel from 'global-tunnel-ng'; - -const MAJOR_NODEJS_VERSION = parseInt(process.version.slice(1).split('.')[0], 10); - -if (MAJOR_NODEJS_VERSION >= 10) { - // `global-agent` works with Node.js v10 and above. - bootstrap(); -} else { - // `global-tunnel-ng` works only with Node.js v10 and below. - globalTunnel.initialize(); -} - -``` - -### Setup proxy using `createGlobalProxyAgent` - -If you do not want to use `global.GLOBAL_AGENT` variable, then you can use `createGlobalProxyAgent` to instantiate a controlled instance of `global-agent`, e.g. - -```js -import { - createGlobalProxyAgent -} from 'global-agent'; - -const globalProxyAgent = createGlobalProxyAgent(); - -``` - -Unlike `bootstrap` routine, `createGlobalProxyAgent` factory does not create `global.GLOBAL_AGENT` variable and does not guard against multiple initializations of `global-agent`. The result object of `createGlobalProxyAgent` is equivalent to `global.GLOBAL_AGENT`. - -### Runtime configuration - -`global-agent/bootstrap` script copies `process.env.GLOBAL_AGENT_HTTP_PROXY` value to `global.GLOBAL_AGENT.HTTP_PROXY` and continues to use the latter variable. - -You can override the `global.GLOBAL_AGENT.HTTP_PROXY` value at runtime to change proxy behaviour, e.g. - -```js -http.get('http://127.0.0.1:8000'); - -global.GLOBAL_AGENT.HTTP_PROXY = 'http://127.0.0.1:8001'; - -http.get('http://127.0.0.1:8000'); - -global.GLOBAL_AGENT.HTTP_PROXY = 'http://127.0.0.1:8002'; - -``` - -The first HTTP request is going to use http://127.0.0.1:8001 proxy and the secord request is going to use http://127.0.0.1:8002. - -All `global-agent` configuration is available under `global.GLOBAL_AGENT` namespace. - -### Exclude URLs - -The `GLOBAL_AGENT_NO_PROXY` environment variable specifies a pattern of URLs that should be excluded from proxying. `GLOBAL_AGENT_NO_PROXY` value is a comma-separated list of domain names. Asterisks can be used as wildcards, e.g. - -```bash -export GLOBAL_AGENT_NO_PROXY='*.foo.com,baz.com' - -``` - -says to contact all machines with the 'foo.com' TLD and 'baz.com' domains directly. - -### Separate proxy for HTTPS - -The environment variable `GLOBAL_AGENT_HTTPS_PROXY` can be set to specify a separate proxy for HTTPS requests. When this variable is not set `GLOBAL_AGENT_HTTP_PROXY` is used for both HTTP and HTTPS requests. - -### Enable logging - -`global-agent` is using [`roarr`](https://www.npmjs.com/package/roarr) logger to log HTTP requests and response (HTTP status code and headers), e.g. - -```json -{"context":{"program":"global-agent","namespace":"Agent","logLevel":10,"destination":"http://gajus.com","proxy":"http://127.0.0.1:8076"},"message":"proxying request","sequence":1,"time":1556269669663,"version":"1.0.0"} -{"context":{"program":"global-agent","namespace":"Agent","logLevel":10,"headers":{"content-type":"text/plain","content-length":"2","date":"Fri, 26 Apr 2019 12:07:50 GMT","connection":"close"},"requestId":6,"statusCode":200},"message":"proxying response","sequence":2,"time":1557133856955,"version":"1.0.0"} - -``` - -Export `ROARR_LOG=true` environment variable to enable log printing to stdout. - -Use [`roarr-cli`](https://github.com/gajus/roarr-cli) program to pretty-print the logs. - -## API - -### `createGlobalProxyAgent` - -```js -/** - * @property environmentVariableNamespace Defines namespace of `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables. (Default: `GLOBAL_AGENT_`) - * @property forceGlobalAgent Forces to use `global-agent` HTTP(S) agent even when request was explicitly constructed with another agent. (Default: `true`) - * @property socketConnectionTimeout Destroys socket if connection is not established within the timeout. (Default: `60000`) - */ -type ProxyAgentConfigurationInputType = {| - +environmentVariableNamespace?: string, - +forceGlobalAgent?: boolean, - +socketConnectionTimeout?: number, -|}; - -(configurationInput: ProxyAgentConfigurationInputType) => ProxyAgentConfigurationType; - -``` - -### Environment variables - -|Name|Description|Default| -|---|---|---| -|`GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE`|Defines namespace of `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables.|`GLOBAL_AGENT_`| -|`GLOBAL_AGENT_FORCE_GLOBAL_AGENT`|Forces to use `global-agent` HTTP(S) agent even when request was explicitly constructed with another agent.|`true`| -|`GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT`|Destroys socket if connection is not established within the timeout.|`60000`| -|`${NAMESPACE}_HTTP_PROXY`|Sets the initial proxy controller HTTP_PROXY value.|N/A| -|`${NAMESPACE}_HTTPS_PROXY`|Sets the initial proxy controller HTTPS_PROXY value.|N/A| -|`${NAMESPACE}_NO_PROXY`|Sets the initial proxy controller NO_PROXY value.|N/A| - -### `global.GLOBAL_AGENT` - -`global.GLOBAL_AGENT` is initialized by `bootstrap` routine. - -`global.GLOBAL_AGENT` has the following properties: - -|Name|Description|Configurable| -|---|---|---| -|`HTTP_PROXY`|Yes|Sets HTTP proxy to use.| -|`HTTPS_PROXY`|Yes|Sets a distinct proxy to use for HTTPS requests.| -|`NO_PROXY`|Yes|Specifies a pattern of URLs that should be excluded from proxying. See [Exclude URLs](#exclude-urls).| - -## Supported libraries - -`global-agent` works with all libraries that internally use [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback). - -`global-agent` has been tested to work with: - -* [`got`](https://www.npmjs.com/package/got) -* [`axios`](https://www.npmjs.com/package/axios) -* [`request`](https://www.npmjs.com/package/axios) - -## FAQ - -### What is the reason `global-agent` overrides explicitly configured HTTP(S) agent? - -By default, `global-agent` overrides [`agent` property](https://nodejs.org/api/http.html#http_http_request_options_callback) of any HTTP request, even if `agent` property was explicitly set when constructing a HTTP request. This behaviour allows to intercept requests of libraries that use a custom instance of an agent per default (e.g. Stripe SDK [uses an `http(s).globalAgent` instance pre-configured with `keepAlive: true`](https://github.com/stripe/stripe-node/blob/e542902dd8fbe591fe3c3ce07a7e89d1d60e4cf7/lib/StripeResource.js#L11-L12)). - -This behaviour can be disabled with `GLOBAL_AGENT_FORCE_GLOBAL_AGENT=false` environment variable. When disabled, then `global-agent` will only set `agent` property when it is not already defined or if `agent` is an instance of `http(s).globalAgent`. - -### What is the reason `global-agent/bootstrap` does not use `HTTP_PROXY`? - -Some libraries (e.g. [`request`](https://npmjs.org/package/request)) change their behaviour when `HTTP_PROXY` environment variable is present. Using a namespaced environment variable prevents conflicting library behaviour. - -You can override this behaviour by configuring `GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE` variable, e.g. - -```bash -$ export GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE= - -``` - -Now script initialized using `global-agent/bootstrap` will use `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables. - -### What is the difference from `global-tunnel` and `tunnel`? - -[`global-tunnel`](https://github.com/salesforce/global-tunnel) (including [`global-tunnel-ng`](https://github.com/np-maintain/global-tunnel) and [`tunnel`](https://npmjs.com/package/tunnel)) are designed to support legacy Node.js versions. They use various [workarounds](https://github.com/koichik/node-tunnel/blob/5fb2fb424788597146b7be6729006cad1cf9e9a8/lib/tunnel.js#L134-L144) and rely on [monkey-patching `http.request`, `http.get`, `https.request` and `https.get` methods](https://github.com/np-maintain/global-tunnel/blob/51413dcf0534252b5049ec213105c7063ccc6367/index.js#L302-L338). - -In contrast, `global-agent` supports Node.js v10 and above, and does not implements workarounds for the older Node.js versions. diff --git a/node_modules/global-agent/bootstrap.js b/node_modules/global-agent/bootstrap.js deleted file mode 100644 index 0204420..0000000 --- a/node_modules/global-agent/bootstrap.js +++ /dev/null @@ -1 +0,0 @@ -require('./dist/index').bootstrap(); diff --git a/node_modules/global-agent/dist/Logger.js b/node_modules/global-agent/dist/Logger.js deleted file mode 100644 index a72a177..0000000 --- a/node_modules/global-agent/dist/Logger.js +++ /dev/null @@ -1,18 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _roarr = _interopRequireDefault(require("roarr")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const Logger = _roarr.default.child({ - package: 'global-agent' -}); - -var _default = Logger; -exports.default = _default; -//# sourceMappingURL=Logger.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/Logger.js.flow b/node_modules/global-agent/dist/Logger.js.flow deleted file mode 100644 index 166f1e4..0000000 --- a/node_modules/global-agent/dist/Logger.js.flow +++ /dev/null @@ -1,10 +0,0 @@ -// @flow - -import Roarr from 'roarr'; - -const Logger = Roarr - .child({ - package: 'global-agent', - }); - -export default Logger; diff --git a/node_modules/global-agent/dist/Logger.js.map b/node_modules/global-agent/dist/Logger.js.map deleted file mode 100644 index e31661f..0000000 --- a/node_modules/global-agent/dist/Logger.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/Logger.js"],"names":["Logger","Roarr","child","package"],"mappings":";;;;;;;AAEA;;;;AAEA,MAAMA,MAAM,GAAGC,eACZC,KADY,CACN;AACLC,EAAAA,OAAO,EAAE;AADJ,CADM,CAAf;;eAKeH,M","sourcesContent":["// @flow\n\nimport Roarr from 'roarr';\n\nconst Logger = Roarr\n .child({\n package: 'global-agent',\n });\n\nexport default Logger;\n"],"file":"Logger.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/Agent.js b/node_modules/global-agent/dist/classes/Agent.js deleted file mode 100644 index ba8cc1a..0000000 --- a/node_modules/global-agent/dist/classes/Agent.js +++ /dev/null @@ -1,174 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _serializeError = require("serialize-error"); - -var _boolean = require("boolean"); - -var _Logger = _interopRequireDefault(require("../Logger")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const log = _Logger.default.child({ - namespace: 'Agent' -}); - -let requestId = 0; - -class Agent { - constructor(isProxyConfigured, mustUrlUseProxy, getUrlProxy, fallbackAgent, socketConnectionTimeout) { - this.fallbackAgent = fallbackAgent; - this.isProxyConfigured = isProxyConfigured; - this.mustUrlUseProxy = mustUrlUseProxy; - this.getUrlProxy = getUrlProxy; - this.socketConnectionTimeout = socketConnectionTimeout; - } - - addRequest(request, configuration) { - let requestUrl; // It is possible that addRequest was constructed for a proxied request already, e.g. - // "request" package does this when it detects that a proxy should be used - // https://github.com/request/request/blob/212570b6971a732b8dd9f3c73354bcdda158a737/request.js#L402 - // https://gist.github.com/gajus/e2074cd3b747864ffeaabbd530d30218 - - if (request.path.startsWith('http://') || request.path.startsWith('https://')) { - requestUrl = request.path; - } else { - requestUrl = this.protocol + '//' + (configuration.hostname || configuration.host) + (configuration.port === 80 || configuration.port === 443 ? '' : ':' + configuration.port) + request.path; - } - - if (!this.isProxyConfigured()) { - log.trace({ - destination: requestUrl - }, 'not proxying request; GLOBAL_AGENT.HTTP_PROXY is not configured'); // $FlowFixMe It appears that Flow is missing the method description. - - this.fallbackAgent.addRequest(request, configuration); - return; - } - - if (!this.mustUrlUseProxy(requestUrl)) { - log.trace({ - destination: requestUrl - }, 'not proxying request; url matches GLOBAL_AGENT.NO_PROXY'); // $FlowFixMe It appears that Flow is missing the method description. - - this.fallbackAgent.addRequest(request, configuration); - return; - } - - const currentRequestId = requestId++; - const proxy = this.getUrlProxy(requestUrl); - - if (this.protocol === 'http:') { - request.path = requestUrl; - - if (proxy.authorization) { - request.setHeader('proxy-authorization', 'Basic ' + Buffer.from(proxy.authorization).toString('base64')); - } - } - - log.trace({ - destination: requestUrl, - proxy: 'http://' + proxy.hostname + ':' + proxy.port, - requestId: currentRequestId - }, 'proxying request'); - request.on('error', error => { - log.error({ - error: (0, _serializeError.serializeError)(error) - }, 'request error'); - }); - request.once('response', response => { - log.trace({ - headers: response.headers, - requestId: currentRequestId, - statusCode: response.statusCode - }, 'proxying response'); - }); - request.shouldKeepAlive = false; - const connectionConfiguration = { - host: configuration.hostname || configuration.host, - port: configuration.port || 80, - proxy, - tls: {} - }; // add optional tls options for https requests. - // @see https://nodejs.org/docs/latest-v12.x/api/https.html#https_https_request_url_options_callback : - // > The following additional options from tls.connect() - // > - https://nodejs.org/docs/latest-v12.x/api/tls.html#tls_tls_connect_options_callback - - // > are also accepted: - // > ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder, - // > key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, sessionIdContext. - - if (this.protocol === 'https:') { - connectionConfiguration.tls = { - ca: configuration.ca, - cert: configuration.cert, - ciphers: configuration.ciphers, - clientCertEngine: configuration.clientCertEngine, - crl: configuration.crl, - dhparam: configuration.dhparam, - ecdhCurve: configuration.ecdhCurve, - honorCipherOrder: configuration.honorCipherOrder, - key: configuration.key, - passphrase: configuration.passphrase, - pfx: configuration.pfx, - rejectUnauthorized: configuration.rejectUnauthorized, - secureOptions: configuration.secureOptions, - secureProtocol: configuration.secureProtocol, - servername: configuration.servername || connectionConfiguration.host, - sessionIdContext: configuration.sessionIdContext - }; // This is not ideal because there is no way to override this setting using `tls` configuration if `NODE_TLS_REJECT_UNAUTHORIZED=0`. - // However, popular HTTP clients (such as https://github.com/sindresorhus/got) come with pre-configured value for `rejectUnauthorized`, - // which makes it impossible to override that value globally and respect `rejectUnauthorized` for specific requests only. - // - // eslint-disable-next-line no-process-env - - if (typeof process.env.NODE_TLS_REJECT_UNAUTHORIZED === 'string' && (0, _boolean.boolean)(process.env.NODE_TLS_REJECT_UNAUTHORIZED) === false) { - connectionConfiguration.tls.rejectUnauthorized = false; - } - } // $FlowFixMe It appears that Flow is missing the method description. - - - this.createConnection(connectionConfiguration, (error, socket) => { - log.trace({ - target: connectionConfiguration - }, 'connecting'); // @see https://github.com/nodejs/node/issues/5757#issuecomment-305969057 - - if (socket) { - socket.setTimeout(this.socketConnectionTimeout, () => { - socket.destroy(); - }); - socket.once('connect', () => { - log.trace({ - target: connectionConfiguration - }, 'connected'); - socket.setTimeout(0); - }); - socket.once('secureConnect', () => { - log.trace({ - target: connectionConfiguration - }, 'connected (secure)'); - socket.setTimeout(0); - }); - } - - if (error) { - request.emit('error', error); - } else { - log.debug('created socket'); - socket.on('error', socketError => { - log.error({ - error: (0, _serializeError.serializeError)(socketError) - }, 'socket error'); - }); - request.onSocket(socket); - } - }); - } - -} - -var _default = Agent; -exports.default = _default; -//# sourceMappingURL=Agent.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/Agent.js.flow b/node_modules/global-agent/dist/classes/Agent.js.flow deleted file mode 100644 index 801dd1f..0000000 --- a/node_modules/global-agent/dist/classes/Agent.js.flow +++ /dev/null @@ -1,212 +0,0 @@ -// @flow - -import { - serializeError, -} from 'serialize-error'; -import { - boolean, -} from 'boolean'; -import Logger from '../Logger'; -import type { - AgentType, - GetUrlProxyMethodType, - IsProxyConfiguredMethodType, - MustUrlUseProxyMethodType, - ProtocolType, -} from '../types'; - -const log = Logger.child({ - namespace: 'Agent', -}); - -let requestId = 0; - -class Agent { - defaultPort: number; - - protocol: ProtocolType; - - fallbackAgent: AgentType; - - isProxyConfigured: IsProxyConfiguredMethodType; - - mustUrlUseProxy: MustUrlUseProxyMethodType; - - getUrlProxy: GetUrlProxyMethodType; - - socketConnectionTimeout: number; - - constructor ( - isProxyConfigured: IsProxyConfiguredMethodType, - mustUrlUseProxy: MustUrlUseProxyMethodType, - getUrlProxy: GetUrlProxyMethodType, - fallbackAgent: AgentType, - socketConnectionTimeout: number, - ) { - this.fallbackAgent = fallbackAgent; - this.isProxyConfigured = isProxyConfigured; - this.mustUrlUseProxy = mustUrlUseProxy; - this.getUrlProxy = getUrlProxy; - this.socketConnectionTimeout = socketConnectionTimeout; - } - - addRequest (request: *, configuration: *) { - let requestUrl; - - // It is possible that addRequest was constructed for a proxied request already, e.g. - // "request" package does this when it detects that a proxy should be used - // https://github.com/request/request/blob/212570b6971a732b8dd9f3c73354bcdda158a737/request.js#L402 - // https://gist.github.com/gajus/e2074cd3b747864ffeaabbd530d30218 - if (request.path.startsWith('http://') || request.path.startsWith('https://')) { - requestUrl = request.path; - } else { - requestUrl = this.protocol + '//' + (configuration.hostname || configuration.host) + (configuration.port === 80 || configuration.port === 443 ? '' : ':' + configuration.port) + request.path; - } - - if (!this.isProxyConfigured()) { - log.trace({ - destination: requestUrl, - }, 'not proxying request; GLOBAL_AGENT.HTTP_PROXY is not configured'); - - // $FlowFixMe It appears that Flow is missing the method description. - this.fallbackAgent.addRequest(request, configuration); - - return; - } - - if (!this.mustUrlUseProxy(requestUrl)) { - log.trace({ - destination: requestUrl, - }, 'not proxying request; url matches GLOBAL_AGENT.NO_PROXY'); - - // $FlowFixMe It appears that Flow is missing the method description. - this.fallbackAgent.addRequest(request, configuration); - - return; - } - - const currentRequestId = requestId++; - - const proxy = this.getUrlProxy(requestUrl); - - if (this.protocol === 'http:') { - request.path = requestUrl; - - if (proxy.authorization) { - request.setHeader('proxy-authorization', 'Basic ' + Buffer.from(proxy.authorization).toString('base64')); - } - } - - log.trace({ - destination: requestUrl, - proxy: 'http://' + proxy.hostname + ':' + proxy.port, - requestId: currentRequestId, - }, 'proxying request'); - - request.on('error', (error) => { - log.error({ - error: serializeError(error), - }, 'request error'); - }); - - request.once('response', (response) => { - log.trace({ - headers: response.headers, - requestId: currentRequestId, - statusCode: response.statusCode, - }, 'proxying response'); - }); - - request.shouldKeepAlive = false; - - const connectionConfiguration = { - host: configuration.hostname || configuration.host, - port: configuration.port || 80, - proxy, - tls: {}, - }; - - // add optional tls options for https requests. - // @see https://nodejs.org/docs/latest-v12.x/api/https.html#https_https_request_url_options_callback : - // > The following additional options from tls.connect() - // > - https://nodejs.org/docs/latest-v12.x/api/tls.html#tls_tls_connect_options_callback - - // > are also accepted: - // > ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder, - // > key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, sessionIdContext. - if (this.protocol === 'https:') { - connectionConfiguration.tls = { - ca: configuration.ca, - cert: configuration.cert, - ciphers: configuration.ciphers, - clientCertEngine: configuration.clientCertEngine, - crl: configuration.crl, - dhparam: configuration.dhparam, - ecdhCurve: configuration.ecdhCurve, - honorCipherOrder: configuration.honorCipherOrder, - key: configuration.key, - passphrase: configuration.passphrase, - pfx: configuration.pfx, - rejectUnauthorized: configuration.rejectUnauthorized, - secureOptions: configuration.secureOptions, - secureProtocol: configuration.secureProtocol, - servername: configuration.servername || connectionConfiguration.host, - sessionIdContext: configuration.sessionIdContext, - }; - - // This is not ideal because there is no way to override this setting using `tls` configuration if `NODE_TLS_REJECT_UNAUTHORIZED=0`. - // However, popular HTTP clients (such as https://github.com/sindresorhus/got) come with pre-configured value for `rejectUnauthorized`, - // which makes it impossible to override that value globally and respect `rejectUnauthorized` for specific requests only. - // - // eslint-disable-next-line no-process-env - if (typeof process.env.NODE_TLS_REJECT_UNAUTHORIZED === 'string' && boolean(process.env.NODE_TLS_REJECT_UNAUTHORIZED) === false) { - connectionConfiguration.tls.rejectUnauthorized = false; - } - } - - // $FlowFixMe It appears that Flow is missing the method description. - this.createConnection(connectionConfiguration, (error, socket) => { - log.trace({ - target: connectionConfiguration, - }, 'connecting'); - - // @see https://github.com/nodejs/node/issues/5757#issuecomment-305969057 - if (socket) { - socket.setTimeout(this.socketConnectionTimeout, () => { - socket.destroy(); - }); - - socket.once('connect', () => { - log.trace({ - target: connectionConfiguration, - }, 'connected'); - - socket.setTimeout(0); - }); - - socket.once('secureConnect', () => { - log.trace({ - target: connectionConfiguration, - }, 'connected (secure)'); - - socket.setTimeout(0); - }); - } - - if (error) { - request.emit('error', error); - } else { - log.debug('created socket'); - - socket.on('error', (socketError) => { - log.error({ - error: serializeError(socketError), - }, 'socket error'); - }); - - request.onSocket(socket); - } - }); - } -} - -export default Agent; diff --git a/node_modules/global-agent/dist/classes/Agent.js.map b/node_modules/global-agent/dist/classes/Agent.js.map deleted file mode 100644 index af6283e..0000000 --- a/node_modules/global-agent/dist/classes/Agent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/classes/Agent.js"],"names":["log","Logger","child","namespace","requestId","Agent","constructor","isProxyConfigured","mustUrlUseProxy","getUrlProxy","fallbackAgent","socketConnectionTimeout","addRequest","request","configuration","requestUrl","path","startsWith","protocol","hostname","host","port","trace","destination","currentRequestId","proxy","authorization","setHeader","Buffer","from","toString","on","error","once","response","headers","statusCode","shouldKeepAlive","connectionConfiguration","tls","ca","cert","ciphers","clientCertEngine","crl","dhparam","ecdhCurve","honorCipherOrder","key","passphrase","pfx","rejectUnauthorized","secureOptions","secureProtocol","servername","sessionIdContext","process","env","NODE_TLS_REJECT_UNAUTHORIZED","createConnection","socket","target","setTimeout","destroy","emit","debug","socketError","onSocket"],"mappings":";;;;;;;AAEA;;AAGA;;AAGA;;;;AASA,MAAMA,GAAG,GAAGC,gBAAOC,KAAP,CAAa;AACvBC,EAAAA,SAAS,EAAE;AADY,CAAb,CAAZ;;AAIA,IAAIC,SAAS,GAAG,CAAhB;;AAEA,MAAMC,KAAN,CAAY;AAeVC,EAAAA,WAAW,CACTC,iBADS,EAETC,eAFS,EAGTC,WAHS,EAITC,aAJS,EAKTC,uBALS,EAMT;AACA,SAAKD,aAAL,GAAqBA,aAArB;AACA,SAAKH,iBAAL,GAAyBA,iBAAzB;AACA,SAAKC,eAAL,GAAuBA,eAAvB;AACA,SAAKC,WAAL,GAAmBA,WAAnB;AACA,SAAKE,uBAAL,GAA+BA,uBAA/B;AACD;;AAEDC,EAAAA,UAAU,CAAEC,OAAF,EAAcC,aAAd,EAAgC;AACxC,QAAIC,UAAJ,CADwC,CAGxC;AACA;AACA;AACA;;AACA,QAAIF,OAAO,CAACG,IAAR,CAAaC,UAAb,CAAwB,SAAxB,KAAsCJ,OAAO,CAACG,IAAR,CAAaC,UAAb,CAAwB,UAAxB,CAA1C,EAA+E;AAC7EF,MAAAA,UAAU,GAAGF,OAAO,CAACG,IAArB;AACD,KAFD,MAEO;AACLD,MAAAA,UAAU,GAAG,KAAKG,QAAL,GAAgB,IAAhB,IAAwBJ,aAAa,CAACK,QAAd,IAA0BL,aAAa,CAACM,IAAhE,KAAyEN,aAAa,CAACO,IAAd,KAAuB,EAAvB,IAA6BP,aAAa,CAACO,IAAd,KAAuB,GAApD,GAA0D,EAA1D,GAA+D,MAAMP,aAAa,CAACO,IAA5J,IAAoKR,OAAO,CAACG,IAAzL;AACD;;AAED,QAAI,CAAC,KAAKT,iBAAL,EAAL,EAA+B;AAC7BP,MAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRC,QAAAA,WAAW,EAAER;AADL,OAAV,EAEG,iEAFH,EAD6B,CAK7B;;AACA,WAAKL,aAAL,CAAmBE,UAAnB,CAA8BC,OAA9B,EAAuCC,aAAvC;AAEA;AACD;;AAED,QAAI,CAAC,KAAKN,eAAL,CAAqBO,UAArB,CAAL,EAAuC;AACrCf,MAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRC,QAAAA,WAAW,EAAER;AADL,OAAV,EAEG,yDAFH,EADqC,CAKrC;;AACA,WAAKL,aAAL,CAAmBE,UAAnB,CAA8BC,OAA9B,EAAuCC,aAAvC;AAEA;AACD;;AAED,UAAMU,gBAAgB,GAAGpB,SAAS,EAAlC;AAEA,UAAMqB,KAAK,GAAG,KAAKhB,WAAL,CAAiBM,UAAjB,CAAd;;AAEA,QAAI,KAAKG,QAAL,KAAkB,OAAtB,EAA+B;AAC7BL,MAAAA,OAAO,CAACG,IAAR,GAAeD,UAAf;;AAEA,UAAIU,KAAK,CAACC,aAAV,EAAyB;AACvBb,QAAAA,OAAO,CAACc,SAAR,CAAkB,qBAAlB,EAAyC,WAAWC,MAAM,CAACC,IAAP,CAAYJ,KAAK,CAACC,aAAlB,EAAiCI,QAAjC,CAA0C,QAA1C,CAApD;AACD;AACF;;AAED9B,IAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRC,MAAAA,WAAW,EAAER,UADL;AAERU,MAAAA,KAAK,EAAE,YAAYA,KAAK,CAACN,QAAlB,GAA6B,GAA7B,GAAmCM,KAAK,CAACJ,IAFxC;AAGRjB,MAAAA,SAAS,EAAEoB;AAHH,KAAV,EAIG,kBAJH;AAMAX,IAAAA,OAAO,CAACkB,EAAR,CAAW,OAAX,EAAqBC,KAAD,IAAW;AAC7BhC,MAAAA,GAAG,CAACgC,KAAJ,CAAU;AACRA,QAAAA,KAAK,EAAE,oCAAeA,KAAf;AADC,OAAV,EAEG,eAFH;AAGD,KAJD;AAMAnB,IAAAA,OAAO,CAACoB,IAAR,CAAa,UAAb,EAA0BC,QAAD,IAAc;AACrClC,MAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRa,QAAAA,OAAO,EAAED,QAAQ,CAACC,OADV;AAER/B,QAAAA,SAAS,EAAEoB,gBAFH;AAGRY,QAAAA,UAAU,EAAEF,QAAQ,CAACE;AAHb,OAAV,EAIG,mBAJH;AAKD,KAND;AAQAvB,IAAAA,OAAO,CAACwB,eAAR,GAA0B,KAA1B;AAEA,UAAMC,uBAAuB,GAAG;AAC9BlB,MAAAA,IAAI,EAAEN,aAAa,CAACK,QAAd,IAA0BL,aAAa,CAACM,IADhB;AAE9BC,MAAAA,IAAI,EAAEP,aAAa,CAACO,IAAd,IAAsB,EAFE;AAG9BI,MAAAA,KAH8B;AAI9Bc,MAAAA,GAAG,EAAE;AAJyB,KAAhC,CArEwC,CA4ExC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,QAAI,KAAKrB,QAAL,KAAkB,QAAtB,EAAgC;AAC9BoB,MAAAA,uBAAuB,CAACC,GAAxB,GAA8B;AAC5BC,QAAAA,EAAE,EAAE1B,aAAa,CAAC0B,EADU;AAE5BC,QAAAA,IAAI,EAAE3B,aAAa,CAAC2B,IAFQ;AAG5BC,QAAAA,OAAO,EAAE5B,aAAa,CAAC4B,OAHK;AAI5BC,QAAAA,gBAAgB,EAAE7B,aAAa,CAAC6B,gBAJJ;AAK5BC,QAAAA,GAAG,EAAE9B,aAAa,CAAC8B,GALS;AAM5BC,QAAAA,OAAO,EAAE/B,aAAa,CAAC+B,OANK;AAO5BC,QAAAA,SAAS,EAAEhC,aAAa,CAACgC,SAPG;AAQ5BC,QAAAA,gBAAgB,EAAEjC,aAAa,CAACiC,gBARJ;AAS5BC,QAAAA,GAAG,EAAElC,aAAa,CAACkC,GATS;AAU5BC,QAAAA,UAAU,EAAEnC,aAAa,CAACmC,UAVE;AAW5BC,QAAAA,GAAG,EAAEpC,aAAa,CAACoC,GAXS;AAY5BC,QAAAA,kBAAkB,EAAErC,aAAa,CAACqC,kBAZN;AAa5BC,QAAAA,aAAa,EAAEtC,aAAa,CAACsC,aAbD;AAc5BC,QAAAA,cAAc,EAAEvC,aAAa,CAACuC,cAdF;AAe5BC,QAAAA,UAAU,EAAExC,aAAa,CAACwC,UAAd,IAA4BhB,uBAAuB,CAAClB,IAfpC;AAgB5BmC,QAAAA,gBAAgB,EAAEzC,aAAa,CAACyC;AAhBJ,OAA9B,CAD8B,CAoB9B;AACA;AACA;AACA;AACA;;AACA,UAAI,OAAOC,OAAO,CAACC,GAAR,CAAYC,4BAAnB,KAAoD,QAApD,IAAgE,sBAAQF,OAAO,CAACC,GAAR,CAAYC,4BAApB,MAAsD,KAA1H,EAAiI;AAC/HpB,QAAAA,uBAAuB,CAACC,GAAxB,CAA4BY,kBAA5B,GAAiD,KAAjD;AACD;AACF,KA/GuC,CAiHxC;;;AACA,SAAKQ,gBAAL,CAAsBrB,uBAAtB,EAA+C,CAACN,KAAD,EAAQ4B,MAAR,KAAmB;AAChE5D,MAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRuC,QAAAA,MAAM,EAAEvB;AADA,OAAV,EAEG,YAFH,EADgE,CAKhE;;AACA,UAAIsB,MAAJ,EAAY;AACVA,QAAAA,MAAM,CAACE,UAAP,CAAkB,KAAKnD,uBAAvB,EAAgD,MAAM;AACpDiD,UAAAA,MAAM,CAACG,OAAP;AACD,SAFD;AAIAH,QAAAA,MAAM,CAAC3B,IAAP,CAAY,SAAZ,EAAuB,MAAM;AAC3BjC,UAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRuC,YAAAA,MAAM,EAAEvB;AADA,WAAV,EAEG,WAFH;AAIAsB,UAAAA,MAAM,CAACE,UAAP,CAAkB,CAAlB;AACD,SAND;AAQAF,QAAAA,MAAM,CAAC3B,IAAP,CAAY,eAAZ,EAA6B,MAAM;AACjCjC,UAAAA,GAAG,CAACsB,KAAJ,CAAU;AACRuC,YAAAA,MAAM,EAAEvB;AADA,WAAV,EAEG,oBAFH;AAIAsB,UAAAA,MAAM,CAACE,UAAP,CAAkB,CAAlB;AACD,SAND;AAOD;;AAED,UAAI9B,KAAJ,EAAW;AACTnB,QAAAA,OAAO,CAACmD,IAAR,CAAa,OAAb,EAAsBhC,KAAtB;AACD,OAFD,MAEO;AACLhC,QAAAA,GAAG,CAACiE,KAAJ,CAAU,gBAAV;AAEAL,QAAAA,MAAM,CAAC7B,EAAP,CAAU,OAAV,EAAoBmC,WAAD,IAAiB;AAClClE,UAAAA,GAAG,CAACgC,KAAJ,CAAU;AACRA,YAAAA,KAAK,EAAE,oCAAekC,WAAf;AADC,WAAV,EAEG,cAFH;AAGD,SAJD;AAMArD,QAAAA,OAAO,CAACsD,QAAR,CAAiBP,MAAjB;AACD;AACF,KAzCD;AA0CD;;AAzLS;;eA4LGvD,K","sourcesContent":["// @flow\n\nimport {\n serializeError,\n} from 'serialize-error';\nimport {\n boolean,\n} from 'boolean';\nimport Logger from '../Logger';\nimport type {\n AgentType,\n GetUrlProxyMethodType,\n IsProxyConfiguredMethodType,\n MustUrlUseProxyMethodType,\n ProtocolType,\n} from '../types';\n\nconst log = Logger.child({\n namespace: 'Agent',\n});\n\nlet requestId = 0;\n\nclass Agent {\n defaultPort: number;\n\n protocol: ProtocolType;\n\n fallbackAgent: AgentType;\n\n isProxyConfigured: IsProxyConfiguredMethodType;\n\n mustUrlUseProxy: MustUrlUseProxyMethodType;\n\n getUrlProxy: GetUrlProxyMethodType;\n\n socketConnectionTimeout: number;\n\n constructor (\n isProxyConfigured: IsProxyConfiguredMethodType,\n mustUrlUseProxy: MustUrlUseProxyMethodType,\n getUrlProxy: GetUrlProxyMethodType,\n fallbackAgent: AgentType,\n socketConnectionTimeout: number,\n ) {\n this.fallbackAgent = fallbackAgent;\n this.isProxyConfigured = isProxyConfigured;\n this.mustUrlUseProxy = mustUrlUseProxy;\n this.getUrlProxy = getUrlProxy;\n this.socketConnectionTimeout = socketConnectionTimeout;\n }\n\n addRequest (request: *, configuration: *) {\n let requestUrl;\n\n // It is possible that addRequest was constructed for a proxied request already, e.g.\n // \"request\" package does this when it detects that a proxy should be used\n // https://github.com/request/request/blob/212570b6971a732b8dd9f3c73354bcdda158a737/request.js#L402\n // https://gist.github.com/gajus/e2074cd3b747864ffeaabbd530d30218\n if (request.path.startsWith('http://') || request.path.startsWith('https://')) {\n requestUrl = request.path;\n } else {\n requestUrl = this.protocol + '//' + (configuration.hostname || configuration.host) + (configuration.port === 80 || configuration.port === 443 ? '' : ':' + configuration.port) + request.path;\n }\n\n if (!this.isProxyConfigured()) {\n log.trace({\n destination: requestUrl,\n }, 'not proxying request; GLOBAL_AGENT.HTTP_PROXY is not configured');\n\n // $FlowFixMe It appears that Flow is missing the method description.\n this.fallbackAgent.addRequest(request, configuration);\n\n return;\n }\n\n if (!this.mustUrlUseProxy(requestUrl)) {\n log.trace({\n destination: requestUrl,\n }, 'not proxying request; url matches GLOBAL_AGENT.NO_PROXY');\n\n // $FlowFixMe It appears that Flow is missing the method description.\n this.fallbackAgent.addRequest(request, configuration);\n\n return;\n }\n\n const currentRequestId = requestId++;\n\n const proxy = this.getUrlProxy(requestUrl);\n\n if (this.protocol === 'http:') {\n request.path = requestUrl;\n\n if (proxy.authorization) {\n request.setHeader('proxy-authorization', 'Basic ' + Buffer.from(proxy.authorization).toString('base64'));\n }\n }\n\n log.trace({\n destination: requestUrl,\n proxy: 'http://' + proxy.hostname + ':' + proxy.port,\n requestId: currentRequestId,\n }, 'proxying request');\n\n request.on('error', (error) => {\n log.error({\n error: serializeError(error),\n }, 'request error');\n });\n\n request.once('response', (response) => {\n log.trace({\n headers: response.headers,\n requestId: currentRequestId,\n statusCode: response.statusCode,\n }, 'proxying response');\n });\n\n request.shouldKeepAlive = false;\n\n const connectionConfiguration = {\n host: configuration.hostname || configuration.host,\n port: configuration.port || 80,\n proxy,\n tls: {},\n };\n\n // add optional tls options for https requests.\n // @see https://nodejs.org/docs/latest-v12.x/api/https.html#https_https_request_url_options_callback :\n // > The following additional options from tls.connect()\n // > - https://nodejs.org/docs/latest-v12.x/api/tls.html#tls_tls_connect_options_callback -\n // > are also accepted:\n // > ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder,\n // > key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, sessionIdContext.\n if (this.protocol === 'https:') {\n connectionConfiguration.tls = {\n ca: configuration.ca,\n cert: configuration.cert,\n ciphers: configuration.ciphers,\n clientCertEngine: configuration.clientCertEngine,\n crl: configuration.crl,\n dhparam: configuration.dhparam,\n ecdhCurve: configuration.ecdhCurve,\n honorCipherOrder: configuration.honorCipherOrder,\n key: configuration.key,\n passphrase: configuration.passphrase,\n pfx: configuration.pfx,\n rejectUnauthorized: configuration.rejectUnauthorized,\n secureOptions: configuration.secureOptions,\n secureProtocol: configuration.secureProtocol,\n servername: configuration.servername || connectionConfiguration.host,\n sessionIdContext: configuration.sessionIdContext,\n };\n\n // This is not ideal because there is no way to override this setting using `tls` configuration if `NODE_TLS_REJECT_UNAUTHORIZED=0`.\n // However, popular HTTP clients (such as https://github.com/sindresorhus/got) come with pre-configured value for `rejectUnauthorized`,\n // which makes it impossible to override that value globally and respect `rejectUnauthorized` for specific requests only.\n //\n // eslint-disable-next-line no-process-env\n if (typeof process.env.NODE_TLS_REJECT_UNAUTHORIZED === 'string' && boolean(process.env.NODE_TLS_REJECT_UNAUTHORIZED) === false) {\n connectionConfiguration.tls.rejectUnauthorized = false;\n }\n }\n\n // $FlowFixMe It appears that Flow is missing the method description.\n this.createConnection(connectionConfiguration, (error, socket) => {\n log.trace({\n target: connectionConfiguration,\n }, 'connecting');\n\n // @see https://github.com/nodejs/node/issues/5757#issuecomment-305969057\n if (socket) {\n socket.setTimeout(this.socketConnectionTimeout, () => {\n socket.destroy();\n });\n\n socket.once('connect', () => {\n log.trace({\n target: connectionConfiguration,\n }, 'connected');\n\n socket.setTimeout(0);\n });\n\n socket.once('secureConnect', () => {\n log.trace({\n target: connectionConfiguration,\n }, 'connected (secure)');\n\n socket.setTimeout(0);\n });\n }\n\n if (error) {\n request.emit('error', error);\n } else {\n log.debug('created socket');\n\n socket.on('error', (socketError) => {\n log.error({\n error: serializeError(socketError),\n }, 'socket error');\n });\n\n request.onSocket(socket);\n }\n });\n }\n}\n\nexport default Agent;\n"],"file":"Agent.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/HttpProxyAgent.js b/node_modules/global-agent/dist/classes/HttpProxyAgent.js deleted file mode 100644 index 6d1c831..0000000 --- a/node_modules/global-agent/dist/classes/HttpProxyAgent.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _net = _interopRequireDefault(require("net")); - -var _Agent = _interopRequireDefault(require("./Agent")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -class HttpProxyAgent extends _Agent.default { - // @see https://github.com/sindresorhus/eslint-plugin-unicorn/issues/169#issuecomment-486980290 - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor(...args) { - super(...args); - this.protocol = 'http:'; - this.defaultPort = 80; - } - - createConnection(configuration, callback) { - const socket = _net.default.connect(configuration.proxy.port, configuration.proxy.hostname); - - callback(null, socket); - } - -} - -var _default = HttpProxyAgent; -exports.default = _default; -//# sourceMappingURL=HttpProxyAgent.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/HttpProxyAgent.js.flow b/node_modules/global-agent/dist/classes/HttpProxyAgent.js.flow deleted file mode 100644 index 8b9b471..0000000 --- a/node_modules/global-agent/dist/classes/HttpProxyAgent.js.flow +++ /dev/null @@ -1,30 +0,0 @@ -// @flow - -import net from 'net'; -import type { - ConnectionCallbackType, - ConnectionConfigurationType, -} from '../types'; -import Agent from './Agent'; - -class HttpProxyAgent extends Agent { - // @see https://github.com/sindresorhus/eslint-plugin-unicorn/issues/169#issuecomment-486980290 - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor (...args: *) { - super(...args); - - this.protocol = 'http:'; - this.defaultPort = 80; - } - - createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) { - const socket = net.connect( - configuration.proxy.port, - configuration.proxy.hostname, - ); - - callback(null, socket); - } -} - -export default HttpProxyAgent; diff --git a/node_modules/global-agent/dist/classes/HttpProxyAgent.js.map b/node_modules/global-agent/dist/classes/HttpProxyAgent.js.map deleted file mode 100644 index f2586b9..0000000 --- a/node_modules/global-agent/dist/classes/HttpProxyAgent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/classes/HttpProxyAgent.js"],"names":["HttpProxyAgent","Agent","constructor","args","protocol","defaultPort","createConnection","configuration","callback","socket","net","connect","proxy","port","hostname"],"mappings":";;;;;;;AAEA;;AAKA;;;;AAEA,MAAMA,cAAN,SAA6BC,cAA7B,CAAmC;AACjC;AACA;AACAC,EAAAA,WAAW,CAAE,GAAGC,IAAL,EAAc;AACvB,UAAM,GAAGA,IAAT;AAEA,SAAKC,QAAL,GAAgB,OAAhB;AACA,SAAKC,WAAL,GAAmB,EAAnB;AACD;;AAEDC,EAAAA,gBAAgB,CAAEC,aAAF,EAA8CC,QAA9C,EAAgF;AAC9F,UAAMC,MAAM,GAAGC,aAAIC,OAAJ,CACbJ,aAAa,CAACK,KAAd,CAAoBC,IADP,EAEbN,aAAa,CAACK,KAAd,CAAoBE,QAFP,CAAf;;AAKAN,IAAAA,QAAQ,CAAC,IAAD,EAAOC,MAAP,CAAR;AACD;;AAjBgC;;eAoBpBT,c","sourcesContent":["// @flow\n\nimport net from 'net';\nimport type {\n ConnectionCallbackType,\n ConnectionConfigurationType,\n} from '../types';\nimport Agent from './Agent';\n\nclass HttpProxyAgent extends Agent {\n // @see https://github.com/sindresorhus/eslint-plugin-unicorn/issues/169#issuecomment-486980290\n // eslint-disable-next-line unicorn/prevent-abbreviations\n constructor (...args: *) {\n super(...args);\n\n this.protocol = 'http:';\n this.defaultPort = 80;\n }\n\n createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) {\n const socket = net.connect(\n configuration.proxy.port,\n configuration.proxy.hostname,\n );\n\n callback(null, socket);\n }\n}\n\nexport default HttpProxyAgent;\n"],"file":"HttpProxyAgent.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js b/node_modules/global-agent/dist/classes/HttpsProxyAgent.js deleted file mode 100644 index 1206ffa..0000000 --- a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js +++ /dev/null @@ -1,53 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _net = _interopRequireDefault(require("net")); - -var _tls = _interopRequireDefault(require("tls")); - -var _Agent = _interopRequireDefault(require("./Agent")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -class HttpsProxyAgent extends _Agent.default { - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor(...args) { - super(...args); - this.protocol = 'https:'; - this.defaultPort = 443; - } - - createConnection(configuration, callback) { - const socket = _net.default.connect(configuration.proxy.port, configuration.proxy.hostname); - - socket.on('error', error => { - callback(error); - }); - socket.once('data', () => { - const secureSocket = _tls.default.connect({ ...configuration.tls, - socket - }); - - callback(null, secureSocket); - }); - let connectMessage = ''; - connectMessage += 'CONNECT ' + configuration.host + ':' + configuration.port + ' HTTP/1.1\r\n'; - connectMessage += 'Host: ' + configuration.host + ':' + configuration.port + '\r\n'; - - if (configuration.proxy.authorization) { - connectMessage += 'Proxy-Authorization: Basic ' + Buffer.from(configuration.proxy.authorization).toString('base64') + '\r\n'; - } - - connectMessage += '\r\n'; - socket.write(connectMessage); - } - -} - -var _default = HttpsProxyAgent; -exports.default = _default; -//# sourceMappingURL=HttpsProxyAgent.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.flow b/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.flow deleted file mode 100644 index 24d724f..0000000 --- a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.flow +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import net from 'net'; -import tls from 'tls'; -import type { - ConnectionCallbackType, - ConnectionConfigurationType, -} from '../types'; -import Agent from './Agent'; - -class HttpsProxyAgent extends Agent { - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor (...args: *) { - super(...args); - - this.protocol = 'https:'; - this.defaultPort = 443; - } - - createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) { - const socket = net.connect( - configuration.proxy.port, - configuration.proxy.hostname, - ); - - socket.on('error', (error) => { - callback(error); - }); - - socket.once('data', () => { - const secureSocket = tls.connect({ - ...configuration.tls, - socket, - }); - - callback(null, secureSocket); - }); - - let connectMessage = ''; - - connectMessage += 'CONNECT ' + configuration.host + ':' + configuration.port + ' HTTP/1.1\r\n'; - connectMessage += 'Host: ' + configuration.host + ':' + configuration.port + '\r\n'; - - if (configuration.proxy.authorization) { - connectMessage += 'Proxy-Authorization: Basic ' + Buffer.from(configuration.proxy.authorization).toString('base64') + '\r\n'; - } - - connectMessage += '\r\n'; - - socket.write(connectMessage); - } -} - -export default HttpsProxyAgent; diff --git a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.map b/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.map deleted file mode 100644 index 0bad4a9..0000000 --- a/node_modules/global-agent/dist/classes/HttpsProxyAgent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/classes/HttpsProxyAgent.js"],"names":["HttpsProxyAgent","Agent","constructor","args","protocol","defaultPort","createConnection","configuration","callback","socket","net","connect","proxy","port","hostname","on","error","once","secureSocket","tls","connectMessage","host","authorization","Buffer","from","toString","write"],"mappings":";;;;;;;AAEA;;AACA;;AAKA;;;;AAEA,MAAMA,eAAN,SAA8BC,cAA9B,CAAoC;AAClC;AACAC,EAAAA,WAAW,CAAE,GAAGC,IAAL,EAAc;AACvB,UAAM,GAAGA,IAAT;AAEA,SAAKC,QAAL,GAAgB,QAAhB;AACA,SAAKC,WAAL,GAAmB,GAAnB;AACD;;AAEDC,EAAAA,gBAAgB,CAAEC,aAAF,EAA8CC,QAA9C,EAAgF;AAC9F,UAAMC,MAAM,GAAGC,aAAIC,OAAJ,CACbJ,aAAa,CAACK,KAAd,CAAoBC,IADP,EAEbN,aAAa,CAACK,KAAd,CAAoBE,QAFP,CAAf;;AAKAL,IAAAA,MAAM,CAACM,EAAP,CAAU,OAAV,EAAoBC,KAAD,IAAW;AAC5BR,MAAAA,QAAQ,CAACQ,KAAD,CAAR;AACD,KAFD;AAIAP,IAAAA,MAAM,CAACQ,IAAP,CAAY,MAAZ,EAAoB,MAAM;AACxB,YAAMC,YAAY,GAAGC,aAAIR,OAAJ,CAAY,EAC/B,GAAGJ,aAAa,CAACY,GADc;AAE/BV,QAAAA;AAF+B,OAAZ,CAArB;;AAKAD,MAAAA,QAAQ,CAAC,IAAD,EAAOU,YAAP,CAAR;AACD,KAPD;AASA,QAAIE,cAAc,GAAG,EAArB;AAEAA,IAAAA,cAAc,IAAI,aAAab,aAAa,CAACc,IAA3B,GAAkC,GAAlC,GAAwCd,aAAa,CAACM,IAAtD,GAA6D,eAA/E;AACAO,IAAAA,cAAc,IAAI,WAAWb,aAAa,CAACc,IAAzB,GAAgC,GAAhC,GAAsCd,aAAa,CAACM,IAApD,GAA2D,MAA7E;;AAEA,QAAIN,aAAa,CAACK,KAAd,CAAoBU,aAAxB,EAAuC;AACrCF,MAAAA,cAAc,IAAI,gCAAgCG,MAAM,CAACC,IAAP,CAAYjB,aAAa,CAACK,KAAd,CAAoBU,aAAhC,EAA+CG,QAA/C,CAAwD,QAAxD,CAAhC,GAAoG,MAAtH;AACD;;AAEDL,IAAAA,cAAc,IAAI,MAAlB;AAEAX,IAAAA,MAAM,CAACiB,KAAP,CAAaN,cAAb;AACD;;AAxCiC;;eA2CrBpB,e","sourcesContent":["// @flow\n\nimport net from 'net';\nimport tls from 'tls';\nimport type {\n ConnectionCallbackType,\n ConnectionConfigurationType,\n} from '../types';\nimport Agent from './Agent';\n\nclass HttpsProxyAgent extends Agent {\n // eslint-disable-next-line unicorn/prevent-abbreviations\n constructor (...args: *) {\n super(...args);\n\n this.protocol = 'https:';\n this.defaultPort = 443;\n }\n\n createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) {\n const socket = net.connect(\n configuration.proxy.port,\n configuration.proxy.hostname,\n );\n\n socket.on('error', (error) => {\n callback(error);\n });\n\n socket.once('data', () => {\n const secureSocket = tls.connect({\n ...configuration.tls,\n socket,\n });\n\n callback(null, secureSocket);\n });\n\n let connectMessage = '';\n\n connectMessage += 'CONNECT ' + configuration.host + ':' + configuration.port + ' HTTP/1.1\\r\\n';\n connectMessage += 'Host: ' + configuration.host + ':' + configuration.port + '\\r\\n';\n\n if (configuration.proxy.authorization) {\n connectMessage += 'Proxy-Authorization: Basic ' + Buffer.from(configuration.proxy.authorization).toString('base64') + '\\r\\n';\n }\n\n connectMessage += '\\r\\n';\n\n socket.write(connectMessage);\n }\n}\n\nexport default HttpsProxyAgent;\n"],"file":"HttpsProxyAgent.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/index.js b/node_modules/global-agent/dist/classes/index.js deleted file mode 100644 index b3889d2..0000000 --- a/node_modules/global-agent/dist/classes/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "Agent", { - enumerable: true, - get: function () { - return _Agent.default; - } -}); -Object.defineProperty(exports, "HttpProxyAgent", { - enumerable: true, - get: function () { - return _HttpProxyAgent.default; - } -}); -Object.defineProperty(exports, "HttpsProxyAgent", { - enumerable: true, - get: function () { - return _HttpsProxyAgent.default; - } -}); - -var _Agent = _interopRequireDefault(require("./Agent")); - -var _HttpProxyAgent = _interopRequireDefault(require("./HttpProxyAgent")); - -var _HttpsProxyAgent = _interopRequireDefault(require("./HttpsProxyAgent")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/classes/index.js.flow b/node_modules/global-agent/dist/classes/index.js.flow deleted file mode 100644 index 9e8418a..0000000 --- a/node_modules/global-agent/dist/classes/index.js.flow +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export {default as Agent} from './Agent'; -export {default as HttpProxyAgent} from './HttpProxyAgent'; -export {default as HttpsProxyAgent} from './HttpsProxyAgent'; diff --git a/node_modules/global-agent/dist/classes/index.js.map b/node_modules/global-agent/dist/classes/index.js.map deleted file mode 100644 index 59a05bb..0000000 --- a/node_modules/global-agent/dist/classes/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/classes/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA","sourcesContent":["// @flow\n\nexport {default as Agent} from './Agent';\nexport {default as HttpProxyAgent} from './HttpProxyAgent';\nexport {default as HttpsProxyAgent} from './HttpsProxyAgent';\n"],"file":"index.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/errors.js b/node_modules/global-agent/dist/errors.js deleted file mode 100644 index 578d19e..0000000 --- a/node_modules/global-agent/dist/errors.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.UnexpectedStateError = void 0; - -var _es6Error = _interopRequireDefault(require("es6-error")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* eslint-disable fp/no-class, fp/no-this */ -class UnexpectedStateError extends _es6Error.default { - constructor(message, code = 'UNEXPECTED_STATE_ERROR') { - super(message); - this.code = code; - } - -} - -exports.UnexpectedStateError = UnexpectedStateError; -//# sourceMappingURL=errors.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/errors.js.flow b/node_modules/global-agent/dist/errors.js.flow deleted file mode 100644 index d93ba6f..0000000 --- a/node_modules/global-agent/dist/errors.js.flow +++ /dev/null @@ -1,15 +0,0 @@ -// @flow - -/* eslint-disable fp/no-class, fp/no-this */ - -import ExtendableError from 'es6-error'; - -export class UnexpectedStateError extends ExtendableError { - code: string; - - constructor (message: string, code: string = 'UNEXPECTED_STATE_ERROR') { - super(message); - - this.code = code; - } -} diff --git a/node_modules/global-agent/dist/errors.js.map b/node_modules/global-agent/dist/errors.js.map deleted file mode 100644 index 7388bd1..0000000 --- a/node_modules/global-agent/dist/errors.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/errors.js"],"names":["UnexpectedStateError","ExtendableError","constructor","message","code"],"mappings":";;;;;;;AAIA;;;;AAFA;AAIO,MAAMA,oBAAN,SAAmCC,iBAAnC,CAAmD;AAGxDC,EAAAA,WAAW,CAAEC,OAAF,EAAmBC,IAAY,GAAG,wBAAlC,EAA4D;AACrE,UAAMD,OAAN;AAEA,SAAKC,IAAL,GAAYA,IAAZ;AACD;;AAPuD","sourcesContent":["// @flow\n\n/* eslint-disable fp/no-class, fp/no-this */\n\nimport ExtendableError from 'es6-error';\n\nexport class UnexpectedStateError extends ExtendableError {\n code: string;\n\n constructor (message: string, code: string = 'UNEXPECTED_STATE_ERROR') {\n super(message);\n\n this.code = code;\n }\n}\n"],"file":"errors.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js b/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js deleted file mode 100644 index c87b9ed..0000000 --- a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js +++ /dev/null @@ -1,175 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _http = _interopRequireDefault(require("http")); - -var _https = _interopRequireDefault(require("https")); - -var _boolean = require("boolean"); - -var _semver = _interopRequireDefault(require("semver")); - -var _Logger = _interopRequireDefault(require("../Logger")); - -var _classes = require("../classes"); - -var _errors = require("../errors"); - -var _utilities = require("../utilities"); - -var _createProxyController = _interopRequireDefault(require("./createProxyController")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const httpGet = _http.default.get; -const httpRequest = _http.default.request; -const httpsGet = _https.default.get; -const httpsRequest = _https.default.request; - -const log = _Logger.default.child({ - namespace: 'createGlobalProxyAgent' -}); - -const defaultConfigurationInput = { - environmentVariableNamespace: undefined, - forceGlobalAgent: undefined, - socketConnectionTimeout: 60000 -}; - -const omitUndefined = subject => { - const keys = Object.keys(subject); - const result = {}; - - for (const key of keys) { - const value = subject[key]; - - if (value !== undefined) { - result[key] = value; - } - } - - return result; -}; - -const createConfiguration = configurationInput => { - // eslint-disable-next-line no-process-env - const environment = process.env; - const defaultConfiguration = { - environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_', - forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? (0, _boolean.boolean)(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true, - socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout - }; // $FlowFixMe - - return { ...defaultConfiguration, - ...omitUndefined(configurationInput) - }; -}; - -const createGlobalProxyAgent = (configurationInput = defaultConfigurationInput) => { - const configuration = createConfiguration(configurationInput); - const proxyController = (0, _createProxyController.default)(); // eslint-disable-next-line no-process-env - - proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null; // eslint-disable-next-line no-process-env - - proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null; // eslint-disable-next-line no-process-env - - proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null; - log.info({ - configuration, - state: proxyController - }, 'global agent has been initialized'); - - const mustUrlUseProxy = getProxy => { - return url => { - if (!getProxy()) { - return false; - } - - if (!proxyController.NO_PROXY) { - return true; - } - - return !(0, _utilities.isUrlMatchingNoProxy)(url, proxyController.NO_PROXY); - }; - }; - - const getUrlProxy = getProxy => { - return () => { - const proxy = getProxy(); - - if (!proxy) { - throw new _errors.UnexpectedStateError('HTTP(S) proxy must be configured.'); - } - - return (0, _utilities.parseProxyUrl)(proxy); - }; - }; - - const getHttpProxy = () => { - return proxyController.HTTP_PROXY; - }; - - const BoundHttpProxyAgent = class extends _classes.HttpProxyAgent { - constructor() { - super(() => { - return getHttpProxy(); - }, mustUrlUseProxy(getHttpProxy), getUrlProxy(getHttpProxy), _http.default.globalAgent, configuration.socketConnectionTimeout); - } - - }; - const httpAgent = new BoundHttpProxyAgent(); - - const getHttpsProxy = () => { - return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY; - }; - - const BoundHttpsProxyAgent = class extends _classes.HttpsProxyAgent { - constructor() { - super(() => { - return getHttpsProxy(); - }, mustUrlUseProxy(getHttpsProxy), getUrlProxy(getHttpsProxy), _https.default.globalAgent, configuration.socketConnectionTimeout); - } - - }; - const httpsAgent = new BoundHttpsProxyAgent(); // Overriding globalAgent was added in v11.7. - // @see https://nodejs.org/uk/blog/release/v11.7.0/ - - if (_semver.default.gte(process.version, 'v11.7.0')) { - // @see https://github.com/facebook/flow/issues/7670 - // $FlowFixMe - _http.default.globalAgent = httpAgent; // $FlowFixMe - - _https.default.globalAgent = httpsAgent; - } // The reason this logic is used in addition to overriding http(s).globalAgent - // is because there is no guarantee that we set http(s).globalAgent variable - // before an instance of http(s).Agent has been already constructed by someone, - // e.g. Stripe SDK creates instances of http(s).Agent at the top-level. - // @see https://github.com/gajus/global-agent/pull/13 - // - // We still want to override http(s).globalAgent when possible to enable logic - // in `bindHttpMethod`. - - - if (_semver.default.gte(process.version, 'v10.0.0')) { - // $FlowFixMe - _http.default.get = (0, _utilities.bindHttpMethod)(httpGet, httpAgent, configuration.forceGlobalAgent); // $FlowFixMe - - _http.default.request = (0, _utilities.bindHttpMethod)(httpRequest, httpAgent, configuration.forceGlobalAgent); // $FlowFixMe - - _https.default.get = (0, _utilities.bindHttpMethod)(httpsGet, httpsAgent, configuration.forceGlobalAgent); // $FlowFixMe - - _https.default.request = (0, _utilities.bindHttpMethod)(httpsRequest, httpsAgent, configuration.forceGlobalAgent); - } else { - log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored'); - } - - return proxyController; -}; - -var _default = createGlobalProxyAgent; -exports.default = _default; -//# sourceMappingURL=createGlobalProxyAgent.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow b/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow deleted file mode 100644 index d515a9d..0000000 --- a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.flow +++ /dev/null @@ -1,197 +0,0 @@ -// @flow - -import http from 'http'; -import https from 'https'; -import { - boolean as parseBoolean, -} from 'boolean'; -import semver from 'semver'; -import Logger from '../Logger'; -import { - HttpProxyAgent, - HttpsProxyAgent, -} from '../classes'; -import { - UnexpectedStateError, -} from '../errors'; -import { - bindHttpMethod, - isUrlMatchingNoProxy, - parseProxyUrl, -} from '../utilities'; -import type { - ProxyAgentConfigurationInputType, - ProxyAgentConfigurationType, -} from '../types'; -import createProxyController from './createProxyController'; - -const httpGet = http.get; -const httpRequest = http.request; -const httpsGet = https.get; -const httpsRequest = https.request; - -const log = Logger.child({ - namespace: 'createGlobalProxyAgent', -}); - -const defaultConfigurationInput = { - environmentVariableNamespace: undefined, - forceGlobalAgent: undefined, - socketConnectionTimeout: 60000, -}; - -const omitUndefined = (subject) => { - const keys = Object.keys(subject); - - const result = {}; - - for (const key of keys) { - const value = subject[key]; - - if (value !== undefined) { - result[key] = value; - } - } - - return result; -}; - -const createConfiguration = (configurationInput: ProxyAgentConfigurationInputType): ProxyAgentConfigurationType => { - // eslint-disable-next-line no-process-env - const environment = process.env; - - const defaultConfiguration = { - environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_', - forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? parseBoolean(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true, - socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout, - }; - - // $FlowFixMe - return { - ...defaultConfiguration, - ...omitUndefined(configurationInput), - }; -}; - -export default (configurationInput: ProxyAgentConfigurationInputType = defaultConfigurationInput) => { - const configuration = createConfiguration(configurationInput); - - const proxyController = createProxyController(); - - // eslint-disable-next-line no-process-env - proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null; - - // eslint-disable-next-line no-process-env - proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null; - - // eslint-disable-next-line no-process-env - proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null; - - log.info({ - configuration, - state: proxyController, - }, 'global agent has been initialized'); - - const mustUrlUseProxy = (getProxy) => { - return (url) => { - if (!getProxy()) { - return false; - } - - if (!proxyController.NO_PROXY) { - return true; - } - - return !isUrlMatchingNoProxy(url, proxyController.NO_PROXY); - }; - }; - - const getUrlProxy = (getProxy) => { - return () => { - const proxy = getProxy(); - - if (!proxy) { - throw new UnexpectedStateError('HTTP(S) proxy must be configured.'); - } - - return parseProxyUrl(proxy); - }; - }; - - const getHttpProxy = () => { - return proxyController.HTTP_PROXY; - }; - - const BoundHttpProxyAgent = class extends HttpProxyAgent { - constructor () { - super( - () => { - return getHttpProxy(); - }, - mustUrlUseProxy(getHttpProxy), - getUrlProxy(getHttpProxy), - http.globalAgent, - configuration.socketConnectionTimeout, - ); - } - }; - - const httpAgent = new BoundHttpProxyAgent(); - - const getHttpsProxy = () => { - return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY; - }; - - const BoundHttpsProxyAgent = class extends HttpsProxyAgent { - constructor () { - super( - () => { - return getHttpsProxy(); - }, - mustUrlUseProxy(getHttpsProxy), - getUrlProxy(getHttpsProxy), - https.globalAgent, - configuration.socketConnectionTimeout, - ); - } - }; - - const httpsAgent = new BoundHttpsProxyAgent(); - - // Overriding globalAgent was added in v11.7. - // @see https://nodejs.org/uk/blog/release/v11.7.0/ - if (semver.gte(process.version, 'v11.7.0')) { - // @see https://github.com/facebook/flow/issues/7670 - // $FlowFixMe - http.globalAgent = httpAgent; - - // $FlowFixMe - https.globalAgent = httpsAgent; - } - - // The reason this logic is used in addition to overriding http(s).globalAgent - // is because there is no guarantee that we set http(s).globalAgent variable - // before an instance of http(s).Agent has been already constructed by someone, - // e.g. Stripe SDK creates instances of http(s).Agent at the top-level. - // @see https://github.com/gajus/global-agent/pull/13 - // - // We still want to override http(s).globalAgent when possible to enable logic - // in `bindHttpMethod`. - if (semver.gte(process.version, 'v10.0.0')) { - // $FlowFixMe - http.get = bindHttpMethod(httpGet, httpAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - http.request = bindHttpMethod(httpRequest, httpAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - https.get = bindHttpMethod(httpsGet, httpsAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - https.request = bindHttpMethod(httpsRequest, httpsAgent, configuration.forceGlobalAgent); - } else { - log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored'); - } - - return proxyController; -}; diff --git a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map b/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map deleted file mode 100644 index 00b69f9..0000000 --- a/node_modules/global-agent/dist/factories/createGlobalProxyAgent.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/factories/createGlobalProxyAgent.js"],"names":["httpGet","http","get","httpRequest","request","httpsGet","https","httpsRequest","log","Logger","child","namespace","defaultConfigurationInput","environmentVariableNamespace","undefined","forceGlobalAgent","socketConnectionTimeout","omitUndefined","subject","keys","Object","result","key","value","createConfiguration","configurationInput","environment","process","env","defaultConfiguration","GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE","GLOBAL_AGENT_FORCE_GLOBAL_AGENT","GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT","Number","parseInt","configuration","proxyController","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","info","state","mustUrlUseProxy","getProxy","url","getUrlProxy","proxy","UnexpectedStateError","getHttpProxy","BoundHttpProxyAgent","HttpProxyAgent","constructor","globalAgent","httpAgent","getHttpsProxy","BoundHttpsProxyAgent","HttpsProxyAgent","httpsAgent","semver","gte","version","warn"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AAGA;;AACA;;AACA;;AAIA;;AAGA;;AASA;;;;AAEA,MAAMA,OAAO,GAAGC,cAAKC,GAArB;AACA,MAAMC,WAAW,GAAGF,cAAKG,OAAzB;AACA,MAAMC,QAAQ,GAAGC,eAAMJ,GAAvB;AACA,MAAMK,YAAY,GAAGD,eAAMF,OAA3B;;AAEA,MAAMI,GAAG,GAAGC,gBAAOC,KAAP,CAAa;AACvBC,EAAAA,SAAS,EAAE;AADY,CAAb,CAAZ;;AAIA,MAAMC,yBAAyB,GAAG;AAChCC,EAAAA,4BAA4B,EAAEC,SADE;AAEhCC,EAAAA,gBAAgB,EAAED,SAFc;AAGhCE,EAAAA,uBAAuB,EAAE;AAHO,CAAlC;;AAMA,MAAMC,aAAa,GAAIC,OAAD,IAAa;AACjC,QAAMC,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAYD,OAAZ,CAAb;AAEA,QAAMG,MAAM,GAAG,EAAf;;AAEA,OAAK,MAAMC,GAAX,IAAkBH,IAAlB,EAAwB;AACtB,UAAMI,KAAK,GAAGL,OAAO,CAACI,GAAD,CAArB;;AAEA,QAAIC,KAAK,KAAKT,SAAd,EAAyB;AACvBO,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcC,KAAd;AACD;AACF;;AAED,SAAOF,MAAP;AACD,CAdD;;AAgBA,MAAMG,mBAAmB,GAAIC,kBAAD,IAAuF;AACjH;AACA,QAAMC,WAAW,GAAGC,OAAO,CAACC,GAA5B;AAEA,QAAMC,oBAAoB,GAAG;AAC3BhB,IAAAA,4BAA4B,EAAE,OAAOa,WAAW,CAACI,2CAAnB,KAAmE,QAAnE,GAA8EJ,WAAW,CAACI,2CAA1F,GAAwI,eAD3I;AAE3Bf,IAAAA,gBAAgB,EAAE,OAAOW,WAAW,CAACK,+BAAnB,KAAuD,QAAvD,GAAkE,sBAAaL,WAAW,CAACK,+BAAzB,CAAlE,GAA8H,IAFrH;AAG3Bf,IAAAA,uBAAuB,EAAE,OAAOU,WAAW,CAACM,sCAAnB,KAA8D,QAA9D,GAAyEC,MAAM,CAACC,QAAP,CAAgBR,WAAW,CAACM,sCAA5B,EAAoE,EAApE,CAAzE,GAAmJpB,yBAAyB,CAACI;AAH3K,GAA7B,CAJiH,CAUjH;;AACA,SAAO,EACL,GAAGa,oBADE;AAEL,OAAGZ,aAAa,CAACQ,kBAAD;AAFX,GAAP;AAID,CAfD;;gCAiBgBA,kBAAoD,GAAGb,yB,KAA8B;AACnG,QAAMuB,aAAa,GAAGX,mBAAmB,CAACC,kBAAD,CAAzC;AAEA,QAAMW,eAAe,GAAG,qCAAxB,CAHmG,CAKnG;;AACAA,EAAAA,eAAe,CAACC,UAAhB,GAA6BV,OAAO,CAACC,GAAR,CAAYO,aAAa,CAACtB,4BAAd,GAA6C,YAAzD,KAA0E,IAAvG,CANmG,CAQnG;;AACAuB,EAAAA,eAAe,CAACE,WAAhB,GAA8BX,OAAO,CAACC,GAAR,CAAYO,aAAa,CAACtB,4BAAd,GAA6C,aAAzD,KAA2E,IAAzG,CATmG,CAWnG;;AACAuB,EAAAA,eAAe,CAACG,QAAhB,GAA2BZ,OAAO,CAACC,GAAR,CAAYO,aAAa,CAACtB,4BAAd,GAA6C,UAAzD,KAAwE,IAAnG;AAEAL,EAAAA,GAAG,CAACgC,IAAJ,CAAS;AACPL,IAAAA,aADO;AAEPM,IAAAA,KAAK,EAAEL;AAFA,GAAT,EAGG,mCAHH;;AAKA,QAAMM,eAAe,GAAIC,QAAD,IAAc;AACpC,WAAQC,GAAD,IAAS;AACd,UAAI,CAACD,QAAQ,EAAb,EAAiB;AACf,eAAO,KAAP;AACD;;AAED,UAAI,CAACP,eAAe,CAACG,QAArB,EAA+B;AAC7B,eAAO,IAAP;AACD;;AAED,aAAO,CAAC,qCAAqBK,GAArB,EAA0BR,eAAe,CAACG,QAA1C,CAAR;AACD,KAVD;AAWD,GAZD;;AAcA,QAAMM,WAAW,GAAIF,QAAD,IAAc;AAChC,WAAO,MAAM;AACX,YAAMG,KAAK,GAAGH,QAAQ,EAAtB;;AAEA,UAAI,CAACG,KAAL,EAAY;AACV,cAAM,IAAIC,4BAAJ,CAAyB,mCAAzB,CAAN;AACD;;AAED,aAAO,8BAAcD,KAAd,CAAP;AACD,KARD;AASD,GAVD;;AAYA,QAAME,YAAY,GAAG,MAAM;AACzB,WAAOZ,eAAe,CAACC,UAAvB;AACD,GAFD;;AAIA,QAAMY,mBAAmB,GAAG,cAAcC,uBAAd,CAA6B;AACvDC,IAAAA,WAAW,GAAI;AACb,YACE,MAAM;AACJ,eAAOH,YAAY,EAAnB;AACD,OAHH,EAIEN,eAAe,CAACM,YAAD,CAJjB,EAKEH,WAAW,CAACG,YAAD,CALb,EAME/C,cAAKmD,WANP,EAOEjB,aAAa,CAACnB,uBAPhB;AASD;;AAXsD,GAAzD;AAcA,QAAMqC,SAAS,GAAG,IAAIJ,mBAAJ,EAAlB;;AAEA,QAAMK,aAAa,GAAG,MAAM;AAC1B,WAAOlB,eAAe,CAACE,WAAhB,IAA+BF,eAAe,CAACC,UAAtD;AACD,GAFD;;AAIA,QAAMkB,oBAAoB,GAAG,cAAcC,wBAAd,CAA8B;AACzDL,IAAAA,WAAW,GAAI;AACb,YACE,MAAM;AACJ,eAAOG,aAAa,EAApB;AACD,OAHH,EAIEZ,eAAe,CAACY,aAAD,CAJjB,EAKET,WAAW,CAACS,aAAD,CALb,EAMEhD,eAAM8C,WANR,EAOEjB,aAAa,CAACnB,uBAPhB;AASD;;AAXwD,GAA3D;AAcA,QAAMyC,UAAU,GAAG,IAAIF,oBAAJ,EAAnB,CAnFmG,CAqFnG;AACA;;AACA,MAAIG,gBAAOC,GAAP,CAAWhC,OAAO,CAACiC,OAAnB,EAA4B,SAA5B,CAAJ,EAA4C;AAC1C;AACA;AACA3D,kBAAKmD,WAAL,GAAmBC,SAAnB,CAH0C,CAK1C;;AACA/C,mBAAM8C,WAAN,GAAoBK,UAApB;AACD,GA9FkG,CAgGnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAIC,gBAAOC,GAAP,CAAWhC,OAAO,CAACiC,OAAnB,EAA4B,SAA5B,CAAJ,EAA4C;AAC1C;AACA3D,kBAAKC,GAAL,GAAW,+BAAeF,OAAf,EAAwBqD,SAAxB,EAAmClB,aAAa,CAACpB,gBAAjD,CAAX,CAF0C,CAI1C;;AACAd,kBAAKG,OAAL,GAAe,+BAAeD,WAAf,EAA4BkD,SAA5B,EAAuClB,aAAa,CAACpB,gBAArD,CAAf,CAL0C,CAO1C;;AACAT,mBAAMJ,GAAN,GAAY,+BAAeG,QAAf,EAAyBoD,UAAzB,EAAqCtB,aAAa,CAACpB,gBAAnD,CAAZ,CAR0C,CAU1C;;AACAT,mBAAMF,OAAN,GAAgB,+BAAeG,YAAf,EAA6BkD,UAA7B,EAAyCtB,aAAa,CAACpB,gBAAvD,CAAhB;AACD,GAZD,MAYO;AACLP,IAAAA,GAAG,CAACqD,IAAJ,CAAS,+EAAT;AACD;;AAED,SAAOzB,eAAP;AACD,C","sourcesContent":["// @flow\n\nimport http from 'http';\nimport https from 'https';\nimport {\n boolean as parseBoolean,\n} from 'boolean';\nimport semver from 'semver';\nimport Logger from '../Logger';\nimport {\n HttpProxyAgent,\n HttpsProxyAgent,\n} from '../classes';\nimport {\n UnexpectedStateError,\n} from '../errors';\nimport {\n bindHttpMethod,\n isUrlMatchingNoProxy,\n parseProxyUrl,\n} from '../utilities';\nimport type {\n ProxyAgentConfigurationInputType,\n ProxyAgentConfigurationType,\n} from '../types';\nimport createProxyController from './createProxyController';\n\nconst httpGet = http.get;\nconst httpRequest = http.request;\nconst httpsGet = https.get;\nconst httpsRequest = https.request;\n\nconst log = Logger.child({\n namespace: 'createGlobalProxyAgent',\n});\n\nconst defaultConfigurationInput = {\n environmentVariableNamespace: undefined,\n forceGlobalAgent: undefined,\n socketConnectionTimeout: 60000,\n};\n\nconst omitUndefined = (subject) => {\n const keys = Object.keys(subject);\n\n const result = {};\n\n for (const key of keys) {\n const value = subject[key];\n\n if (value !== undefined) {\n result[key] = value;\n }\n }\n\n return result;\n};\n\nconst createConfiguration = (configurationInput: ProxyAgentConfigurationInputType): ProxyAgentConfigurationType => {\n // eslint-disable-next-line no-process-env\n const environment = process.env;\n\n const defaultConfiguration = {\n environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_',\n forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? parseBoolean(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true,\n socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout,\n };\n\n // $FlowFixMe\n return {\n ...defaultConfiguration,\n ...omitUndefined(configurationInput),\n };\n};\n\nexport default (configurationInput: ProxyAgentConfigurationInputType = defaultConfigurationInput) => {\n const configuration = createConfiguration(configurationInput);\n\n const proxyController = createProxyController();\n\n // eslint-disable-next-line no-process-env\n proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null;\n\n // eslint-disable-next-line no-process-env\n proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null;\n\n // eslint-disable-next-line no-process-env\n proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null;\n\n log.info({\n configuration,\n state: proxyController,\n }, 'global agent has been initialized');\n\n const mustUrlUseProxy = (getProxy) => {\n return (url) => {\n if (!getProxy()) {\n return false;\n }\n\n if (!proxyController.NO_PROXY) {\n return true;\n }\n\n return !isUrlMatchingNoProxy(url, proxyController.NO_PROXY);\n };\n };\n\n const getUrlProxy = (getProxy) => {\n return () => {\n const proxy = getProxy();\n\n if (!proxy) {\n throw new UnexpectedStateError('HTTP(S) proxy must be configured.');\n }\n\n return parseProxyUrl(proxy);\n };\n };\n\n const getHttpProxy = () => {\n return proxyController.HTTP_PROXY;\n };\n\n const BoundHttpProxyAgent = class extends HttpProxyAgent {\n constructor () {\n super(\n () => {\n return getHttpProxy();\n },\n mustUrlUseProxy(getHttpProxy),\n getUrlProxy(getHttpProxy),\n http.globalAgent,\n configuration.socketConnectionTimeout,\n );\n }\n };\n\n const httpAgent = new BoundHttpProxyAgent();\n\n const getHttpsProxy = () => {\n return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY;\n };\n\n const BoundHttpsProxyAgent = class extends HttpsProxyAgent {\n constructor () {\n super(\n () => {\n return getHttpsProxy();\n },\n mustUrlUseProxy(getHttpsProxy),\n getUrlProxy(getHttpsProxy),\n https.globalAgent,\n configuration.socketConnectionTimeout,\n );\n }\n };\n\n const httpsAgent = new BoundHttpsProxyAgent();\n\n // Overriding globalAgent was added in v11.7.\n // @see https://nodejs.org/uk/blog/release/v11.7.0/\n if (semver.gte(process.version, 'v11.7.0')) {\n // @see https://github.com/facebook/flow/issues/7670\n // $FlowFixMe\n http.globalAgent = httpAgent;\n\n // $FlowFixMe\n https.globalAgent = httpsAgent;\n }\n\n // The reason this logic is used in addition to overriding http(s).globalAgent\n // is because there is no guarantee that we set http(s).globalAgent variable\n // before an instance of http(s).Agent has been already constructed by someone,\n // e.g. Stripe SDK creates instances of http(s).Agent at the top-level.\n // @see https://github.com/gajus/global-agent/pull/13\n //\n // We still want to override http(s).globalAgent when possible to enable logic\n // in `bindHttpMethod`.\n if (semver.gte(process.version, 'v10.0.0')) {\n // $FlowFixMe\n http.get = bindHttpMethod(httpGet, httpAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n http.request = bindHttpMethod(httpRequest, httpAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n https.get = bindHttpMethod(httpsGet, httpsAgent, configuration.forceGlobalAgent);\n\n // $FlowFixMe\n https.request = bindHttpMethod(httpsRequest, httpsAgent, configuration.forceGlobalAgent);\n } else {\n log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored');\n }\n\n return proxyController;\n};\n"],"file":"createGlobalProxyAgent.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/createProxyController.js b/node_modules/global-agent/dist/factories/createProxyController.js deleted file mode 100644 index 7746081..0000000 --- a/node_modules/global-agent/dist/factories/createProxyController.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _Logger = _interopRequireDefault(require("../Logger")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const log = _Logger.default.child({ - namespace: 'createProxyController' -}); - -const KNOWN_PROPERTY_NAMES = ['HTTP_PROXY', 'HTTPS_PROXY', 'NO_PROXY']; - -const createProxyController = () => { - // eslint-disable-next-line fp/no-proxy - return new Proxy({ - HTTP_PROXY: null, - HTTPS_PROXY: null, - NO_PROXY: null - }, { - set: (subject, name, value) => { - if (!KNOWN_PROPERTY_NAMES.includes(name)) { - throw new Error('Cannot set an unmapped property "' + name + '".'); - } - - subject[name] = value; - log.info({ - change: { - name, - value - }, - newConfiguration: subject - }, 'configuration changed'); - return true; - } - }); -}; - -var _default = createProxyController; -exports.default = _default; -//# sourceMappingURL=createProxyController.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/createProxyController.js.flow b/node_modules/global-agent/dist/factories/createProxyController.js.flow deleted file mode 100644 index 5805ec8..0000000 --- a/node_modules/global-agent/dist/factories/createProxyController.js.flow +++ /dev/null @@ -1,46 +0,0 @@ -// @flow - -import Logger from '../Logger'; - -type ProxyControllerType = {| - HTTP_PROXY: string | null, - HTTPS_PROXY: string | null, - NO_PROXY: string | null, -|}; - -const log = Logger.child({ - namespace: 'createProxyController', -}); - -const KNOWN_PROPERTY_NAMES = [ - 'HTTP_PROXY', - 'HTTPS_PROXY', - 'NO_PROXY', -]; - -export default (): ProxyControllerType => { - // eslint-disable-next-line fp/no-proxy - return new Proxy({ - HTTP_PROXY: null, - HTTPS_PROXY: null, - NO_PROXY: null, - }, { - set: (subject, name, value) => { - if (!KNOWN_PROPERTY_NAMES.includes(name)) { - throw new Error('Cannot set an unmapped property "' + name + '".'); - } - - subject[name] = value; - - log.info({ - change: { - name, - value, - }, - newConfiguration: subject, - }, 'configuration changed'); - - return true; - }, - }); -}; diff --git a/node_modules/global-agent/dist/factories/createProxyController.js.map b/node_modules/global-agent/dist/factories/createProxyController.js.map deleted file mode 100644 index da7b0e7..0000000 --- a/node_modules/global-agent/dist/factories/createProxyController.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/factories/createProxyController.js"],"names":["log","Logger","child","namespace","KNOWN_PROPERTY_NAMES","Proxy","HTTP_PROXY","HTTPS_PROXY","NO_PROXY","set","subject","name","value","includes","Error","info","change","newConfiguration"],"mappings":";;;;;;;AAEA;;;;AAQA,MAAMA,GAAG,GAAGC,gBAAOC,KAAP,CAAa;AACvBC,EAAAA,SAAS,EAAE;AADY,CAAb,CAAZ;;AAIA,MAAMC,oBAAoB,GAAG,CAC3B,YAD2B,EAE3B,aAF2B,EAG3B,UAH2B,CAA7B;;oCAM0C;AACxC;AACA,SAAO,IAAIC,KAAJ,CAAU;AACfC,IAAAA,UAAU,EAAE,IADG;AAEfC,IAAAA,WAAW,EAAE,IAFE;AAGfC,IAAAA,QAAQ,EAAE;AAHK,GAAV,EAIJ;AACDC,IAAAA,GAAG,EAAE,CAACC,OAAD,EAAUC,IAAV,EAAgBC,KAAhB,KAA0B;AAC7B,UAAI,CAACR,oBAAoB,CAACS,QAArB,CAA8BF,IAA9B,CAAL,EAA0C;AACxC,cAAM,IAAIG,KAAJ,CAAU,sCAAsCH,IAAtC,GAA6C,IAAvD,CAAN;AACD;;AAEDD,MAAAA,OAAO,CAACC,IAAD,CAAP,GAAgBC,KAAhB;AAEAZ,MAAAA,GAAG,CAACe,IAAJ,CAAS;AACPC,QAAAA,MAAM,EAAE;AACNL,UAAAA,IADM;AAENC,UAAAA;AAFM,SADD;AAKPK,QAAAA,gBAAgB,EAAEP;AALX,OAAT,EAMG,uBANH;AAQA,aAAO,IAAP;AACD;AAjBA,GAJI,CAAP;AAuBD,C","sourcesContent":["// @flow\n\nimport Logger from '../Logger';\n\ntype ProxyControllerType = {|\n HTTP_PROXY: string | null,\n HTTPS_PROXY: string | null,\n NO_PROXY: string | null,\n|};\n\nconst log = Logger.child({\n namespace: 'createProxyController',\n});\n\nconst KNOWN_PROPERTY_NAMES = [\n 'HTTP_PROXY',\n 'HTTPS_PROXY',\n 'NO_PROXY',\n];\n\nexport default (): ProxyControllerType => {\n // eslint-disable-next-line fp/no-proxy\n return new Proxy({\n HTTP_PROXY: null,\n HTTPS_PROXY: null,\n NO_PROXY: null,\n }, {\n set: (subject, name, value) => {\n if (!KNOWN_PROPERTY_NAMES.includes(name)) {\n throw new Error('Cannot set an unmapped property \"' + name + '\".');\n }\n\n subject[name] = value;\n\n log.info({\n change: {\n name,\n value,\n },\n newConfiguration: subject,\n }, 'configuration changed');\n\n return true;\n },\n });\n};\n"],"file":"createProxyController.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/index.js b/node_modules/global-agent/dist/factories/index.js deleted file mode 100644 index 3193022..0000000 --- a/node_modules/global-agent/dist/factories/index.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "createGlobalProxyAgent", { - enumerable: true, - get: function () { - return _createGlobalProxyAgent.default; - } -}); -Object.defineProperty(exports, "createProxyController", { - enumerable: true, - get: function () { - return _createProxyController.default; - } -}); - -var _createGlobalProxyAgent = _interopRequireDefault(require("./createGlobalProxyAgent")); - -var _createProxyController = _interopRequireDefault(require("./createProxyController")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/factories/index.js.flow b/node_modules/global-agent/dist/factories/index.js.flow deleted file mode 100644 index c16eca6..0000000 --- a/node_modules/global-agent/dist/factories/index.js.flow +++ /dev/null @@ -1,4 +0,0 @@ -// @flow - -export {default as createGlobalProxyAgent} from './createGlobalProxyAgent'; -export {default as createProxyController} from './createProxyController'; diff --git a/node_modules/global-agent/dist/factories/index.js.map b/node_modules/global-agent/dist/factories/index.js.map deleted file mode 100644 index 2e61240..0000000 --- a/node_modules/global-agent/dist/factories/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/factories/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;;AACA","sourcesContent":["// @flow\n\nexport {default as createGlobalProxyAgent} from './createGlobalProxyAgent';\nexport {default as createProxyController} from './createProxyController';\n"],"file":"index.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/index.js b/node_modules/global-agent/dist/index.js deleted file mode 100644 index 242a88a..0000000 --- a/node_modules/global-agent/dist/index.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "bootstrap", { - enumerable: true, - get: function () { - return _routines.bootstrap; - } -}); -Object.defineProperty(exports, "createGlobalProxyAgent", { - enumerable: true, - get: function () { - return _factories.createGlobalProxyAgent; - } -}); - -var _routines = require("./routines"); - -var _factories = require("./factories"); -//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/index.js.flow b/node_modules/global-agent/dist/index.js.flow deleted file mode 100644 index 14da1ba..0000000 --- a/node_modules/global-agent/dist/index.js.flow +++ /dev/null @@ -1,4 +0,0 @@ -// @flow - -export {bootstrap} from './routines'; -export {createGlobalProxyAgent} from './factories'; diff --git a/node_modules/global-agent/dist/index.js.map b/node_modules/global-agent/dist/index.js.map deleted file mode 100644 index 42901df..0000000 --- a/node_modules/global-agent/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;;AACA","sourcesContent":["// @flow\n\nexport {bootstrap} from './routines';\nexport {createGlobalProxyAgent} from './factories';\n"],"file":"index.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/routines/bootstrap.js b/node_modules/global-agent/dist/routines/bootstrap.js deleted file mode 100644 index 444df53..0000000 --- a/node_modules/global-agent/dist/routines/bootstrap.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _Logger = _interopRequireDefault(require("../Logger")); - -var _factories = require("../factories"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const log = _Logger.default.child({ - namespace: 'bootstrap' -}); - -const bootstrap = configurationInput => { - if (global.GLOBAL_AGENT) { - log.warn('found global.GLOBAL_AGENT; second attempt to bootstrap global-agent was ignored'); - return false; - } - - global.GLOBAL_AGENT = (0, _factories.createGlobalProxyAgent)(configurationInput); - return true; -}; - -var _default = bootstrap; -exports.default = _default; -//# sourceMappingURL=bootstrap.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/routines/bootstrap.js.flow b/node_modules/global-agent/dist/routines/bootstrap.js.flow deleted file mode 100644 index 038feb3..0000000 --- a/node_modules/global-agent/dist/routines/bootstrap.js.flow +++ /dev/null @@ -1,25 +0,0 @@ -// @flow - -import Logger from '../Logger'; -import { - createGlobalProxyAgent, -} from '../factories'; -import type { - ProxyAgentConfigurationInputType, -} from '../types'; - -const log = Logger.child({ - namespace: 'bootstrap', -}); - -export default (configurationInput?: ProxyAgentConfigurationInputType): boolean => { - if (global.GLOBAL_AGENT) { - log.warn('found global.GLOBAL_AGENT; second attempt to bootstrap global-agent was ignored'); - - return false; - } - - global.GLOBAL_AGENT = createGlobalProxyAgent(configurationInput); - - return true; -}; diff --git a/node_modules/global-agent/dist/routines/bootstrap.js.map b/node_modules/global-agent/dist/routines/bootstrap.js.map deleted file mode 100644 index 84bbf79..0000000 --- a/node_modules/global-agent/dist/routines/bootstrap.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/routines/bootstrap.js"],"names":["log","Logger","child","namespace","configurationInput","global","GLOBAL_AGENT","warn"],"mappings":";;;;;;;AAEA;;AACA;;;;AAOA,MAAMA,GAAG,GAAGC,gBAAOC,KAAP,CAAa;AACvBC,EAAAA,SAAS,EAAE;AADY,CAAb,CAAZ;;kBAIgBC,kB,IAAmE;AACjF,MAAIC,MAAM,CAACC,YAAX,EAAyB;AACvBN,IAAAA,GAAG,CAACO,IAAJ,CAAS,iFAAT;AAEA,WAAO,KAAP;AACD;;AAEDF,EAAAA,MAAM,CAACC,YAAP,GAAsB,uCAAuBF,kBAAvB,CAAtB;AAEA,SAAO,IAAP;AACD,C","sourcesContent":["// @flow\n\nimport Logger from '../Logger';\nimport {\n createGlobalProxyAgent,\n} from '../factories';\nimport type {\n ProxyAgentConfigurationInputType,\n} from '../types';\n\nconst log = Logger.child({\n namespace: 'bootstrap',\n});\n\nexport default (configurationInput?: ProxyAgentConfigurationInputType): boolean => {\n if (global.GLOBAL_AGENT) {\n log.warn('found global.GLOBAL_AGENT; second attempt to bootstrap global-agent was ignored');\n\n return false;\n }\n\n global.GLOBAL_AGENT = createGlobalProxyAgent(configurationInput);\n\n return true;\n};\n"],"file":"bootstrap.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/routines/index.js b/node_modules/global-agent/dist/routines/index.js deleted file mode 100644 index 2ae1be2..0000000 --- a/node_modules/global-agent/dist/routines/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "bootstrap", { - enumerable: true, - get: function () { - return _bootstrap.default; - } -}); - -var _bootstrap = _interopRequireDefault(require("./bootstrap")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/routines/index.js.flow b/node_modules/global-agent/dist/routines/index.js.flow deleted file mode 100644 index e47a8a0..0000000 --- a/node_modules/global-agent/dist/routines/index.js.flow +++ /dev/null @@ -1,3 +0,0 @@ -// @flow - -export {default as bootstrap} from './bootstrap'; diff --git a/node_modules/global-agent/dist/routines/index.js.map b/node_modules/global-agent/dist/routines/index.js.map deleted file mode 100644 index 97295d9..0000000 --- a/node_modules/global-agent/dist/routines/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/routines/index.js"],"names":[],"mappings":";;;;;;;;;;;;AAEA","sourcesContent":["// @flow\n\nexport {default as bootstrap} from './bootstrap';\n"],"file":"index.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/types.js b/node_modules/global-agent/dist/types.js deleted file mode 100644 index fb07a95..0000000 --- a/node_modules/global-agent/dist/types.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; - -var _net = require("net"); - -var _tls = require("tls"); - -var _http = require("http"); - -var _https = require("https"); -//# sourceMappingURL=types.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/types.js.flow b/node_modules/global-agent/dist/types.js.flow deleted file mode 100644 index e2f1a99..0000000 --- a/node_modules/global-agent/dist/types.js.flow +++ /dev/null @@ -1,66 +0,0 @@ -// @flow - -import { - Socket, -} from 'net'; -import { - TLSSocket, -} from 'tls'; -import { - Agent as HttpAgent, -} from 'http'; -import { - Agent as HttpsAgent, -} from 'https'; - -export type ProxyConfigurationType = {| - +authorization: string, - +hostname: string, - +port: number, -|}; - -export type TlsConfigurationType = {| - +ca?: string, - +cert?: string, - +ciphers?: string, - +clientCertEngine?: string, - +crl?: string, - +dhparam?: string, - +ecdhCurve?: string, - +honorCipherOrder?: boolean, - +key?: string, - +passphrase?: string, - +pfx?: string, - +rejectUnauthorized?: boolean, - +secureOptions?: number, - +secureProtocol?: string, - +servername?: string, - +sessionIdContext?: string, -|}; - -export type ConnectionConfigurationType = {| - +host: string, - +port: number, - +tls?: TlsConfigurationType, - +proxy: ProxyConfigurationType, -|}; - -export type ConnectionCallbackType = (error: Error | null, socket?: Socket | TLSSocket) => void; - -export type AgentType = HttpAgent | HttpsAgent; -export type IsProxyConfiguredMethodType = () => boolean; -export type MustUrlUseProxyMethodType = (url: string) => boolean; -export type GetUrlProxyMethodType = (url: string) => ProxyConfigurationType; -export type ProtocolType = 'http:' | 'https:'; - -export type ProxyAgentConfigurationInputType = {| - +environmentVariableNamespace?: string, - +forceGlobalAgent?: boolean, - +socketConnectionTimeout?: number, -|}; - -export type ProxyAgentConfigurationType = {| - +environmentVariableNamespace: string, - +forceGlobalAgent: boolean, - +socketConnectionTimeout: number, -|}; diff --git a/node_modules/global-agent/dist/types.js.map b/node_modules/global-agent/dist/types.js.map deleted file mode 100644 index 46e65bc..0000000 --- a/node_modules/global-agent/dist/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../src/types.js"],"names":[],"mappings":";;AAEA;;AAGA;;AAGA;;AAGA","sourcesContent":["// @flow\n\nimport {\n Socket,\n} from 'net';\nimport {\n TLSSocket,\n} from 'tls';\nimport {\n Agent as HttpAgent,\n} from 'http';\nimport {\n Agent as HttpsAgent,\n} from 'https';\n\nexport type ProxyConfigurationType = {|\n +authorization: string,\n +hostname: string,\n +port: number,\n|};\n\nexport type TlsConfigurationType = {|\n +ca?: string,\n +cert?: string,\n +ciphers?: string,\n +clientCertEngine?: string,\n +crl?: string,\n +dhparam?: string,\n +ecdhCurve?: string,\n +honorCipherOrder?: boolean,\n +key?: string,\n +passphrase?: string,\n +pfx?: string,\n +rejectUnauthorized?: boolean,\n +secureOptions?: number,\n +secureProtocol?: string,\n +servername?: string,\n +sessionIdContext?: string,\n|};\n\nexport type ConnectionConfigurationType = {|\n +host: string,\n +port: number,\n +tls?: TlsConfigurationType,\n +proxy: ProxyConfigurationType,\n|};\n\nexport type ConnectionCallbackType = (error: Error | null, socket?: Socket | TLSSocket) => void;\n\nexport type AgentType = HttpAgent | HttpsAgent;\nexport type IsProxyConfiguredMethodType = () => boolean;\nexport type MustUrlUseProxyMethodType = (url: string) => boolean;\nexport type GetUrlProxyMethodType = (url: string) => ProxyConfigurationType;\nexport type ProtocolType = 'http:' | 'https:';\n\nexport type ProxyAgentConfigurationInputType = {|\n +environmentVariableNamespace?: string,\n +forceGlobalAgent?: boolean,\n +socketConnectionTimeout?: number,\n|};\n\nexport type ProxyAgentConfigurationType = {|\n +environmentVariableNamespace: string,\n +forceGlobalAgent: boolean,\n +socketConnectionTimeout: number,\n|};\n"],"file":"types.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/bindHttpMethod.js b/node_modules/global-agent/dist/utilities/bindHttpMethod.js deleted file mode 100644 index 4ce571a..0000000 --- a/node_modules/global-agent/dist/utilities/bindHttpMethod.js +++ /dev/null @@ -1,62 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _http = _interopRequireDefault(require("http")); - -var _https = _interopRequireDefault(require("https")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// eslint-disable-next-line flowtype/no-weak-types -const bindHttpMethod = (originalMethod, agent, forceGlobalAgent) => { - // eslint-disable-next-line unicorn/prevent-abbreviations - return (...args) => { - let url; - let options; - let callback; - - if (typeof args[0] === 'string' || args[0] instanceof URL) { - url = args[0]; - - if (typeof args[1] === 'function') { - options = {}; - callback = args[1]; - } else { - options = { ...args[1] - }; - callback = args[2]; - } - } else { - options = { ...args[0] - }; - callback = args[1]; - } - - if (forceGlobalAgent) { - options.agent = agent; - } else { - if (!options.agent) { - options.agent = agent; - } - - if (options.agent === _http.default.globalAgent || options.agent === _https.default.globalAgent) { - options.agent = agent; - } - } - - if (url) { - // $FlowFixMe - return originalMethod(url, options, callback); - } else { - return originalMethod(options, callback); - } - }; -}; - -var _default = bindHttpMethod; -exports.default = _default; -//# sourceMappingURL=bindHttpMethod.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/bindHttpMethod.js.flow b/node_modules/global-agent/dist/utilities/bindHttpMethod.js.flow deleted file mode 100644 index f8859b5..0000000 --- a/node_modules/global-agent/dist/utilities/bindHttpMethod.js.flow +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import http from 'http'; -import https from 'https'; - -type AgentType = http.Agent | https.Agent; - -// eslint-disable-next-line flowtype/no-weak-types -export default (originalMethod: Function, agent: AgentType, forceGlobalAgent: boolean) => { - // eslint-disable-next-line unicorn/prevent-abbreviations - return (...args: *) => { - let url; - let options; - let callback; - - if (typeof args[0] === 'string' || args[0] instanceof URL) { - url = args[0]; - - if (typeof args[1] === 'function') { - options = {}; - callback = args[1]; - } else { - options = { - ...args[1], - }; - callback = args[2]; - } - } else { - options = { - ...args[0], - }; - callback = args[1]; - } - - if (forceGlobalAgent) { - options.agent = agent; - } else { - if (!options.agent) { - options.agent = agent; - } - - if (options.agent === http.globalAgent || options.agent === https.globalAgent) { - options.agent = agent; - } - } - - if (url) { - // $FlowFixMe - return originalMethod(url, options, callback); - } else { - return originalMethod(options, callback); - } - }; -}; diff --git a/node_modules/global-agent/dist/utilities/bindHttpMethod.js.map b/node_modules/global-agent/dist/utilities/bindHttpMethod.js.map deleted file mode 100644 index 0d49171..0000000 --- a/node_modules/global-agent/dist/utilities/bindHttpMethod.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/utilities/bindHttpMethod.js"],"names":["originalMethod","agent","forceGlobalAgent","args","url","options","callback","URL","http","globalAgent","https"],"mappings":";;;;;;;AAEA;;AACA;;;;AAIA;wBACgBA,c,EAA0BC,K,EAAkBC,gB,KAA8B;AACxF;AACA,SAAO,CAAC,GAAGC,IAAJ,KAAgB;AACrB,QAAIC,GAAJ;AACA,QAAIC,OAAJ;AACA,QAAIC,QAAJ;;AAEA,QAAI,OAAOH,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAnB,IAA+BA,IAAI,CAAC,CAAD,CAAJ,YAAmBI,GAAtD,EAA2D;AACzDH,MAAAA,GAAG,GAAGD,IAAI,CAAC,CAAD,CAAV;;AAEA,UAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCE,QAAAA,OAAO,GAAG,EAAV;AACAC,QAAAA,QAAQ,GAAGH,IAAI,CAAC,CAAD,CAAf;AACD,OAHD,MAGO;AACLE,QAAAA,OAAO,GAAG,EACR,GAAGF,IAAI,CAAC,CAAD;AADC,SAAV;AAGAG,QAAAA,QAAQ,GAAGH,IAAI,CAAC,CAAD,CAAf;AACD;AACF,KAZD,MAYO;AACLE,MAAAA,OAAO,GAAG,EACR,GAAGF,IAAI,CAAC,CAAD;AADC,OAAV;AAGAG,MAAAA,QAAQ,GAAGH,IAAI,CAAC,CAAD,CAAf;AACD;;AAED,QAAID,gBAAJ,EAAsB;AACpBG,MAAAA,OAAO,CAACJ,KAAR,GAAgBA,KAAhB;AACD,KAFD,MAEO;AACL,UAAI,CAACI,OAAO,CAACJ,KAAb,EAAoB;AAClBI,QAAAA,OAAO,CAACJ,KAAR,GAAgBA,KAAhB;AACD;;AAED,UAAII,OAAO,CAACJ,KAAR,KAAkBO,cAAKC,WAAvB,IAAsCJ,OAAO,CAACJ,KAAR,KAAkBS,eAAMD,WAAlE,EAA+E;AAC7EJ,QAAAA,OAAO,CAACJ,KAAR,GAAgBA,KAAhB;AACD;AACF;;AAED,QAAIG,GAAJ,EAAS;AACP;AACA,aAAOJ,cAAc,CAACI,GAAD,EAAMC,OAAN,EAAeC,QAAf,CAArB;AACD,KAHD,MAGO;AACL,aAAON,cAAc,CAACK,OAAD,EAAUC,QAAV,CAArB;AACD;AACF,GA1CD;AA2CD,C","sourcesContent":["// @flow\n\nimport http from 'http';\nimport https from 'https';\n\ntype AgentType = http.Agent | https.Agent;\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport default (originalMethod: Function, agent: AgentType, forceGlobalAgent: boolean) => {\n // eslint-disable-next-line unicorn/prevent-abbreviations\n return (...args: *) => {\n let url;\n let options;\n let callback;\n\n if (typeof args[0] === 'string' || args[0] instanceof URL) {\n url = args[0];\n\n if (typeof args[1] === 'function') {\n options = {};\n callback = args[1];\n } else {\n options = {\n ...args[1],\n };\n callback = args[2];\n }\n } else {\n options = {\n ...args[0],\n };\n callback = args[1];\n }\n\n if (forceGlobalAgent) {\n options.agent = agent;\n } else {\n if (!options.agent) {\n options.agent = agent;\n }\n\n if (options.agent === http.globalAgent || options.agent === https.globalAgent) {\n options.agent = agent;\n }\n }\n\n if (url) {\n // $FlowFixMe\n return originalMethod(url, options, callback);\n } else {\n return originalMethod(options, callback);\n }\n };\n};\n"],"file":"bindHttpMethod.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/index.js b/node_modules/global-agent/dist/utilities/index.js deleted file mode 100644 index 5b9ff43..0000000 --- a/node_modules/global-agent/dist/utilities/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "bindHttpMethod", { - enumerable: true, - get: function () { - return _bindHttpMethod.default; - } -}); -Object.defineProperty(exports, "isUrlMatchingNoProxy", { - enumerable: true, - get: function () { - return _isUrlMatchingNoProxy.default; - } -}); -Object.defineProperty(exports, "parseProxyUrl", { - enumerable: true, - get: function () { - return _parseProxyUrl.default; - } -}); - -var _bindHttpMethod = _interopRequireDefault(require("./bindHttpMethod")); - -var _isUrlMatchingNoProxy = _interopRequireDefault(require("./isUrlMatchingNoProxy")); - -var _parseProxyUrl = _interopRequireDefault(require("./parseProxyUrl")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -//# sourceMappingURL=index.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/index.js.flow b/node_modules/global-agent/dist/utilities/index.js.flow deleted file mode 100644 index 3412387..0000000 --- a/node_modules/global-agent/dist/utilities/index.js.flow +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export {default as bindHttpMethod} from './bindHttpMethod'; -export {default as isUrlMatchingNoProxy} from './isUrlMatchingNoProxy'; -export {default as parseProxyUrl} from './parseProxyUrl'; diff --git a/node_modules/global-agent/dist/utilities/index.js.map b/node_modules/global-agent/dist/utilities/index.js.map deleted file mode 100644 index 6861a5a..0000000 --- a/node_modules/global-agent/dist/utilities/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/utilities/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA","sourcesContent":["// @flow\n\nexport {default as bindHttpMethod} from './bindHttpMethod';\nexport {default as isUrlMatchingNoProxy} from './isUrlMatchingNoProxy';\nexport {default as parseProxyUrl} from './parseProxyUrl';\n"],"file":"index.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js b/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js deleted file mode 100644 index 92a3436..0000000 --- a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _url = require("url"); - -var _matcher = _interopRequireDefault(require("matcher")); - -var _errors = require("../errors"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const isUrlMatchingNoProxy = (subjectUrl, noProxy) => { - const subjectUrlTokens = (0, _url.parse)(subjectUrl); - const rules = noProxy.split(/[\s,]+/); - - for (const rule of rules) { - const ruleMatch = rule.replace(/^(?<leadingDot>\.)/, '*').match(/^(?<hostname>.+?)(?::(?<port>\d+))?$/); - - if (!ruleMatch || !ruleMatch.groups) { - throw new _errors.UnexpectedStateError('Invalid NO_PROXY pattern.'); - } - - if (!ruleMatch.groups.hostname) { - throw new _errors.UnexpectedStateError('NO_PROXY entry pattern must include hostname. Use * to match any hostname.'); - } - - const hostnameIsMatch = _matcher.default.isMatch(subjectUrlTokens.hostname, ruleMatch.groups.hostname); - - if (hostnameIsMatch && (!ruleMatch.groups || !ruleMatch.groups.port || subjectUrlTokens.port && subjectUrlTokens.port === ruleMatch.groups.port)) { - return true; - } - } - - return false; -}; - -var _default = isUrlMatchingNoProxy; -exports.default = _default; -//# sourceMappingURL=isUrlMatchingNoProxy.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.flow b/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.flow deleted file mode 100644 index f2de584..0000000 --- a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.flow +++ /dev/null @@ -1,37 +0,0 @@ -// @flow - -import { - parse as parseUrl, -} from 'url'; -import matcher from 'matcher'; -import { - UnexpectedStateError, -} from '../errors'; - -export default (subjectUrl: string, noProxy: string) => { - const subjectUrlTokens = parseUrl(subjectUrl); - - const rules = noProxy.split(/[\s,]+/); - - for (const rule of rules) { - const ruleMatch = rule - .replace(/^(?<leadingDot>\.)/, '*') - .match(/^(?<hostname>.+?)(?::(?<port>\d+))?$/); - - if (!ruleMatch || !ruleMatch.groups) { - throw new UnexpectedStateError('Invalid NO_PROXY pattern.'); - } - - if (!ruleMatch.groups.hostname) { - throw new UnexpectedStateError('NO_PROXY entry pattern must include hostname. Use * to match any hostname.'); - } - - const hostnameIsMatch = matcher.isMatch(subjectUrlTokens.hostname, ruleMatch.groups.hostname); - - if (hostnameIsMatch && (!ruleMatch.groups || !ruleMatch.groups.port || subjectUrlTokens.port && subjectUrlTokens.port === ruleMatch.groups.port)) { - return true; - } - } - - return false; -}; diff --git a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.map b/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.map deleted file mode 100644 index 9f60970..0000000 --- a/node_modules/global-agent/dist/utilities/isUrlMatchingNoProxy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/utilities/isUrlMatchingNoProxy.js"],"names":["subjectUrl","noProxy","subjectUrlTokens","rules","split","rule","ruleMatch","replace","match","groups","UnexpectedStateError","hostname","hostnameIsMatch","matcher","isMatch","port"],"mappings":";;;;;;;AAEA;;AAGA;;AACA;;;;8BAIgBA,U,EAAoBC,O,KAAoB;AACtD,QAAMC,gBAAgB,GAAG,gBAASF,UAAT,CAAzB;AAEA,QAAMG,KAAK,GAAGF,OAAO,CAACG,KAAR,CAAc,QAAd,CAAd;;AAEA,OAAK,MAAMC,IAAX,IAAmBF,KAAnB,EAA0B;AACxB,UAAMG,SAAS,GAAGD,IAAI,CACnBE,OADe,CACP,oBADO,EACe,GADf,EAEfC,KAFe,CAET,sCAFS,CAAlB;;AAIA,QAAI,CAACF,SAAD,IAAc,CAACA,SAAS,CAACG,MAA7B,EAAqC;AACnC,YAAM,IAAIC,4BAAJ,CAAyB,2BAAzB,CAAN;AACD;;AAED,QAAI,CAACJ,SAAS,CAACG,MAAV,CAAiBE,QAAtB,EAAgC;AAC9B,YAAM,IAAID,4BAAJ,CAAyB,4EAAzB,CAAN;AACD;;AAED,UAAME,eAAe,GAAGC,iBAAQC,OAAR,CAAgBZ,gBAAgB,CAACS,QAAjC,EAA2CL,SAAS,CAACG,MAAV,CAAiBE,QAA5D,CAAxB;;AAEA,QAAIC,eAAe,KAAK,CAACN,SAAS,CAACG,MAAX,IAAqB,CAACH,SAAS,CAACG,MAAV,CAAiBM,IAAvC,IAA+Cb,gBAAgB,CAACa,IAAjB,IAAyBb,gBAAgB,CAACa,IAAjB,KAA0BT,SAAS,CAACG,MAAV,CAAiBM,IAAxH,CAAnB,EAAkJ;AAChJ,aAAO,IAAP;AACD;AACF;;AAED,SAAO,KAAP;AACD,C","sourcesContent":["// @flow\n\nimport {\n parse as parseUrl,\n} from 'url';\nimport matcher from 'matcher';\nimport {\n UnexpectedStateError,\n} from '../errors';\n\nexport default (subjectUrl: string, noProxy: string) => {\n const subjectUrlTokens = parseUrl(subjectUrl);\n\n const rules = noProxy.split(/[\\s,]+/);\n\n for (const rule of rules) {\n const ruleMatch = rule\n .replace(/^(?<leadingDot>\\.)/, '*')\n .match(/^(?<hostname>.+?)(?::(?<port>\\d+))?$/);\n\n if (!ruleMatch || !ruleMatch.groups) {\n throw new UnexpectedStateError('Invalid NO_PROXY pattern.');\n }\n\n if (!ruleMatch.groups.hostname) {\n throw new UnexpectedStateError('NO_PROXY entry pattern must include hostname. Use * to match any hostname.');\n }\n\n const hostnameIsMatch = matcher.isMatch(subjectUrlTokens.hostname, ruleMatch.groups.hostname);\n\n if (hostnameIsMatch && (!ruleMatch.groups || !ruleMatch.groups.port || subjectUrlTokens.port && subjectUrlTokens.port === ruleMatch.groups.port)) {\n return true;\n }\n }\n\n return false;\n};\n"],"file":"isUrlMatchingNoProxy.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/parseProxyUrl.js b/node_modules/global-agent/dist/utilities/parseProxyUrl.js deleted file mode 100644 index e4f1185..0000000 --- a/node_modules/global-agent/dist/utilities/parseProxyUrl.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _url = require("url"); - -var _errors = require("../errors"); - -const parseProxyUrl = url => { - const urlTokens = (0, _url.parse)(url); - - if (urlTokens.query !== null) { - throw new _errors.UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.'); - } - - if (urlTokens.hash !== null) { - throw new _errors.UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.'); - } - - if (urlTokens.protocol !== 'http:') { - throw new _errors.UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".'); - } - - let port = 80; - - if (urlTokens.port) { - port = Number.parseInt(urlTokens.port, 10); - } - - return { - authorization: urlTokens.auth || null, - hostname: urlTokens.hostname, - port - }; -}; - -var _default = parseProxyUrl; -exports.default = _default; -//# sourceMappingURL=parseProxyUrl.js.map
\ No newline at end of file diff --git a/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow b/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow deleted file mode 100644 index e2e9a6b..0000000 --- a/node_modules/global-agent/dist/utilities/parseProxyUrl.js.flow +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import { - parse as parseUrl, -} from 'url'; -import { - UnexpectedStateError, -} from '../errors'; - -export default (url: string) => { - const urlTokens = parseUrl(url); - - if (urlTokens.query !== null) { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.'); - } - - if (urlTokens.hash !== null) { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.'); - } - - if (urlTokens.protocol !== 'http:') { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".'); - } - - let port = 80; - - if (urlTokens.port) { - port = Number.parseInt(urlTokens.port, 10); - } - - return { - authorization: urlTokens.auth || null, - hostname: urlTokens.hostname, - port, - }; -}; diff --git a/node_modules/global-agent/dist/utilities/parseProxyUrl.js.map b/node_modules/global-agent/dist/utilities/parseProxyUrl.js.map deleted file mode 100644 index 4457f10..0000000 --- a/node_modules/global-agent/dist/utilities/parseProxyUrl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/utilities/parseProxyUrl.js"],"names":["url","urlTokens","query","UnexpectedStateError","hash","protocol","port","Number","parseInt","authorization","auth","hostname"],"mappings":";;;;;;;AAEA;;AAGA;;sBAIgBA,G,IAAgB;AAC9B,QAAMC,SAAS,GAAG,gBAASD,GAAT,CAAlB;;AAEA,MAAIC,SAAS,CAACC,KAAV,KAAoB,IAAxB,EAA8B;AAC5B,UAAM,IAAIC,4BAAJ,CAAyB,qFAAzB,CAAN;AACD;;AAED,MAAIF,SAAS,CAACG,IAAV,KAAmB,IAAvB,EAA6B;AAC3B,UAAM,IAAID,4BAAJ,CAAyB,oFAAzB,CAAN;AACD;;AAED,MAAIF,SAAS,CAACI,QAAV,KAAuB,OAA3B,EAAoC;AAClC,UAAM,IAAIF,4BAAJ,CAAyB,0FAAzB,CAAN;AACD;;AAED,MAAIG,IAAI,GAAG,EAAX;;AAEA,MAAIL,SAAS,CAACK,IAAd,EAAoB;AAClBA,IAAAA,IAAI,GAAGC,MAAM,CAACC,QAAP,CAAgBP,SAAS,CAACK,IAA1B,EAAgC,EAAhC,CAAP;AACD;;AAED,SAAO;AACLG,IAAAA,aAAa,EAAER,SAAS,CAACS,IAAV,IAAkB,IAD5B;AAELC,IAAAA,QAAQ,EAAEV,SAAS,CAACU,QAFf;AAGLL,IAAAA;AAHK,GAAP;AAKD,C","sourcesContent":["// @flow\n\nimport {\n parse as parseUrl,\n} from 'url';\nimport {\n UnexpectedStateError,\n} from '../errors';\n\nexport default (url: string) => {\n const urlTokens = parseUrl(url);\n\n if (urlTokens.query !== null) {\n throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.');\n }\n\n if (urlTokens.hash !== null) {\n throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.');\n }\n\n if (urlTokens.protocol !== 'http:') {\n throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be \"http:\".');\n }\n\n let port = 80;\n\n if (urlTokens.port) {\n port = Number.parseInt(urlTokens.port, 10);\n }\n\n return {\n authorization: urlTokens.auth || null,\n hostname: urlTokens.hostname,\n port,\n };\n};\n"],"file":"parseProxyUrl.js"}
\ No newline at end of file diff --git a/node_modules/global-agent/node_modules/.bin/semver b/node_modules/global-agent/node_modules/.bin/semver deleted file mode 120000 index 5aaadf4..0000000 --- a/node_modules/global-agent/node_modules/.bin/semver +++ /dev/null @@ -1 +0,0 @@ -../semver/bin/semver.js
\ No newline at end of file diff --git a/node_modules/global-agent/node_modules/semver/LICENSE b/node_modules/global-agent/node_modules/semver/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/node_modules/global-agent/node_modules/semver/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/global-agent/node_modules/semver/README.md b/node_modules/global-agent/node_modules/semver/README.md deleted file mode 100644 index df54e7a..0000000 --- a/node_modules/global-agent/node_modules/semver/README.md +++ /dev/null @@ -1,568 +0,0 @@ -semver(1) -- The semantic versioner for npm -=========================================== - -## Install - -```bash -npm install semver -```` - -## Usage - -As a node module: - -```js -const semver = require('semver') - -semver.valid('1.2.3') // '1.2.3' -semver.valid('a.b.c') // null -semver.clean(' =v1.2.3 ') // '1.2.3' -semver.satisfies('1.2.3', '1.x || >=2.5.0 || 5.0.0 - 7.2.3') // true -semver.gt('1.2.3', '9.8.7') // false -semver.lt('1.2.3', '9.8.7') // true -semver.minVersion('>=1.0.0') // '1.0.0' -semver.valid(semver.coerce('v2')) // '2.0.0' -semver.valid(semver.coerce('42.6.7.9.3-alpha')) // '42.6.7' -``` - -You can also just load the module for the function that you care about, if -you'd like to minimize your footprint. - -```js -// load the whole API at once in a single object -const semver = require('semver') - -// or just load the bits you need -// all of them listed here, just pick and choose what you want - -// classes -const SemVer = require('semver/classes/semver') -const Comparator = require('semver/classes/comparator') -const Range = require('semver/classes/range') - -// functions for working with versions -const semverParse = require('semver/functions/parse') -const semverValid = require('semver/functions/valid') -const semverClean = require('semver/functions/clean') -const semverInc = require('semver/functions/inc') -const semverDiff = require('semver/functions/diff') -const semverMajor = require('semver/functions/major') -const semverMinor = require('semver/functions/minor') -const semverPatch = require('semver/functions/patch') -const semverPrerelease = require('semver/functions/prerelease') -const semverCompare = require('semver/functions/compare') -const semverRcompare = require('semver/functions/rcompare') -const semverCompareLoose = require('semver/functions/compare-loose') -const semverCompareBuild = require('semver/functions/compare-build') -const semverSort = require('semver/functions/sort') -const semverRsort = require('semver/functions/rsort') - -// low-level comparators between versions -const semverGt = require('semver/functions/gt') -const semverLt = require('semver/functions/lt') -const semverEq = require('semver/functions/eq') -const semverNeq = require('semver/functions/neq') -const semverGte = require('semver/functions/gte') -const semverLte = require('semver/functions/lte') -const semverCmp = require('semver/functions/cmp') -const semverCoerce = require('semver/functions/coerce') - -// working with ranges -const semverSatisfies = require('semver/functions/satisfies') -const semverMaxSatisfying = require('semver/ranges/max-satisfying') -const semverMinSatisfying = require('semver/ranges/min-satisfying') -const semverToComparators = require('semver/ranges/to-comparators') -const semverMinVersion = require('semver/ranges/min-version') -const semverValidRange = require('semver/ranges/valid') -const semverOutside = require('semver/ranges/outside') -const semverGtr = require('semver/ranges/gtr') -const semverLtr = require('semver/ranges/ltr') -const semverIntersects = require('semver/ranges/intersects') -const simplifyRange = require('semver/ranges/simplify') -const rangeSubset = require('semver/ranges/subset') -``` - -As a command-line utility: - -``` -$ semver -h - -A JavaScript implementation of the https://semver.org/ specification -Copyright Isaac Z. Schlueter - -Usage: semver [options] <version> [<version> [...]] -Prints valid versions sorted by SemVer precedence - -Options: --r --range <range> - Print versions that match the specified range. - --i --increment [<level>] - Increment a version by the specified level. Level can - be one of: major, minor, patch, premajor, preminor, - prepatch, or prerelease. Default level is 'patch'. - Only one version may be specified. - ---preid <identifier> - Identifier to be used to prefix premajor, preminor, - prepatch or prerelease version increments. - --l --loose - Interpret versions and ranges loosely - --p --include-prerelease - Always include prerelease versions in range matching - --c --coerce - Coerce a string into SemVer if possible - (does not imply --loose) - ---rtl - Coerce version strings right to left - ---ltr - Coerce version strings left to right (default) - -Program exits successfully if any valid version satisfies -all supplied ranges, and prints all satisfying versions. - -If no satisfying versions are found, then exits failure. - -Versions are printed in ascending order, so supplying -multiple versions to the utility will just sort them. -``` - -## Versions - -A "version" is described by the `v2.0.0` specification found at -<https://semver.org/>. - -A leading `"="` or `"v"` character is stripped off and ignored. - -## Ranges - -A `version range` is a set of `comparators` which specify versions -that satisfy the range. - -A `comparator` is composed of an `operator` and a `version`. The set -of primitive `operators` is: - -* `<` Less than -* `<=` Less than or equal to -* `>` Greater than -* `>=` Greater than or equal to -* `=` Equal. If no operator is specified, then equality is assumed, - so this operator is optional, but MAY be included. - -For example, the comparator `>=1.2.7` would match the versions -`1.2.7`, `1.2.8`, `2.5.3`, and `1.3.9`, but not the versions `1.2.6` -or `1.1.0`. - -Comparators can be joined by whitespace to form a `comparator set`, -which is satisfied by the **intersection** of all of the comparators -it includes. - -A range is composed of one or more comparator sets, joined by `||`. A -version matches a range if and only if every comparator in at least -one of the `||`-separated comparator sets is satisfied by the version. - -For example, the range `>=1.2.7 <1.3.0` would match the versions -`1.2.7`, `1.2.8`, and `1.2.99`, but not the versions `1.2.6`, `1.3.0`, -or `1.1.0`. - -The range `1.2.7 || >=1.2.9 <2.0.0` would match the versions `1.2.7`, -`1.2.9`, and `1.4.6`, but not the versions `1.2.8` or `2.0.0`. - -### Prerelease Tags - -If a version has a prerelease tag (for example, `1.2.3-alpha.3`) then -it will only be allowed to satisfy comparator sets if at least one -comparator with the same `[major, minor, patch]` tuple also has a -prerelease tag. - -For example, the range `>1.2.3-alpha.3` would be allowed to match the -version `1.2.3-alpha.7`, but it would *not* be satisfied by -`3.4.5-alpha.9`, even though `3.4.5-alpha.9` is technically "greater -than" `1.2.3-alpha.3` according to the SemVer sort rules. The version -range only accepts prerelease tags on the `1.2.3` version. The -version `3.4.5` *would* satisfy the range, because it does not have a -prerelease flag, and `3.4.5` is greater than `1.2.3-alpha.7`. - -The purpose for this behavior is twofold. First, prerelease versions -frequently are updated very quickly, and contain many breaking changes -that are (by the author's design) not yet fit for public consumption. -Therefore, by default, they are excluded from range matching -semantics. - -Second, a user who has opted into using a prerelease version has -clearly indicated the intent to use *that specific* set of -alpha/beta/rc versions. By including a prerelease tag in the range, -the user is indicating that they are aware of the risk. However, it -is still not appropriate to assume that they have opted into taking a -similar risk on the *next* set of prerelease versions. - -Note that this behavior can be suppressed (treating all prerelease -versions as if they were normal versions, for the purpose of range -matching) by setting the `includePrerelease` flag on the options -object to any -[functions](https://github.com/npm/node-semver#functions) that do -range matching. - -#### Prerelease Identifiers - -The method `.inc` takes an additional `identifier` string argument that -will append the value of the string as a prerelease identifier: - -```javascript -semver.inc('1.2.3', 'prerelease', 'beta') -// '1.2.4-beta.0' -``` - -command-line example: - -```bash -$ semver 1.2.3 -i prerelease --preid beta -1.2.4-beta.0 -``` - -Which then can be used to increment further: - -```bash -$ semver 1.2.4-beta.0 -i prerelease -1.2.4-beta.1 -``` - -### Advanced Range Syntax - -Advanced range syntax desugars to primitive comparators in -deterministic ways. - -Advanced ranges may be combined in the same way as primitive -comparators using white space or `||`. - -#### Hyphen Ranges `X.Y.Z - A.B.C` - -Specifies an inclusive set. - -* `1.2.3 - 2.3.4` := `>=1.2.3 <=2.3.4` - -If a partial version is provided as the first version in the inclusive -range, then the missing pieces are replaced with zeroes. - -* `1.2 - 2.3.4` := `>=1.2.0 <=2.3.4` - -If a partial version is provided as the second version in the -inclusive range, then all versions that start with the supplied parts -of the tuple are accepted, but nothing that would be greater than the -provided tuple parts. - -* `1.2.3 - 2.3` := `>=1.2.3 <2.4.0-0` -* `1.2.3 - 2` := `>=1.2.3 <3.0.0-0` - -#### X-Ranges `1.2.x` `1.X` `1.2.*` `*` - -Any of `X`, `x`, or `*` may be used to "stand in" for one of the -numeric values in the `[major, minor, patch]` tuple. - -* `*` := `>=0.0.0` (Any non-prerelease version satisfies, unless - `includePrerelease` is specified, in which case any version at all - satisfies) -* `1.x` := `>=1.0.0 <2.0.0-0` (Matching major version) -* `1.2.x` := `>=1.2.0 <1.3.0-0` (Matching major and minor versions) - -A partial version range is treated as an X-Range, so the special -character is in fact optional. - -* `""` (empty string) := `*` := `>=0.0.0` -* `1` := `1.x.x` := `>=1.0.0 <2.0.0-0` -* `1.2` := `1.2.x` := `>=1.2.0 <1.3.0-0` - -#### Tilde Ranges `~1.2.3` `~1.2` `~1` - -Allows patch-level changes if a minor version is specified on the -comparator. Allows minor-level changes if not. - -* `~1.2.3` := `>=1.2.3 <1.(2+1).0` := `>=1.2.3 <1.3.0-0` -* `~1.2` := `>=1.2.0 <1.(2+1).0` := `>=1.2.0 <1.3.0-0` (Same as `1.2.x`) -* `~1` := `>=1.0.0 <(1+1).0.0` := `>=1.0.0 <2.0.0-0` (Same as `1.x`) -* `~0.2.3` := `>=0.2.3 <0.(2+1).0` := `>=0.2.3 <0.3.0-0` -* `~0.2` := `>=0.2.0 <0.(2+1).0` := `>=0.2.0 <0.3.0-0` (Same as `0.2.x`) -* `~0` := `>=0.0.0 <(0+1).0.0` := `>=0.0.0 <1.0.0-0` (Same as `0.x`) -* `~1.2.3-beta.2` := `>=1.2.3-beta.2 <1.3.0-0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. - -#### Caret Ranges `^1.2.3` `^0.2.5` `^0.0.4` - -Allows changes that do not modify the left-most non-zero element in the -`[major, minor, patch]` tuple. In other words, this allows patch and -minor updates for versions `1.0.0` and above, patch updates for -versions `0.X >=0.1.0`, and *no* updates for versions `0.0.X`. - -Many authors treat a `0.x` version as if the `x` were the major -"breaking-change" indicator. - -Caret ranges are ideal when an author may make breaking changes -between `0.2.4` and `0.3.0` releases, which is a common practice. -However, it presumes that there will *not* be breaking changes between -`0.2.4` and `0.2.5`. It allows for changes that are presumed to be -additive (but non-breaking), according to commonly observed practices. - -* `^1.2.3` := `>=1.2.3 <2.0.0-0` -* `^0.2.3` := `>=0.2.3 <0.3.0-0` -* `^0.0.3` := `>=0.0.3 <0.0.4-0` -* `^1.2.3-beta.2` := `>=1.2.3-beta.2 <2.0.0-0` Note that prereleases in - the `1.2.3` version will be allowed, if they are greater than or - equal to `beta.2`. So, `1.2.3-beta.4` would be allowed, but - `1.2.4-beta.2` would not, because it is a prerelease of a - different `[major, minor, patch]` tuple. -* `^0.0.3-beta` := `>=0.0.3-beta <0.0.4-0` Note that prereleases in the - `0.0.3` version *only* will be allowed, if they are greater than or - equal to `beta`. So, `0.0.3-pr.2` would be allowed. - -When parsing caret ranges, a missing `patch` value desugars to the -number `0`, but will allow flexibility within that value, even if the -major and minor versions are both `0`. - -* `^1.2.x` := `>=1.2.0 <2.0.0-0` -* `^0.0.x` := `>=0.0.0 <0.1.0-0` -* `^0.0` := `>=0.0.0 <0.1.0-0` - -A missing `minor` and `patch` values will desugar to zero, but also -allow flexibility within those values, even if the major version is -zero. - -* `^1.x` := `>=1.0.0 <2.0.0-0` -* `^0.x` := `>=0.0.0 <1.0.0-0` - -### Range Grammar - -Putting all this together, here is a Backus-Naur grammar for ranges, -for the benefit of parser authors: - -```bnf -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) * -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ -``` - -## Functions - -All methods and classes take a final `options` object argument. All -options in this object are `false` by default. The options supported -are: - -- `loose` Be more forgiving about not-quite-valid semver strings. - (Any resulting output will always be 100% strict compliant, of - course.) For backwards compatibility reasons, if the `options` - argument is a boolean value instead of an object, it is interpreted - to be the `loose` param. -- `includePrerelease` Set to suppress the [default - behavior](https://github.com/npm/node-semver#prerelease-tags) of - excluding prerelease tagged versions from ranges unless they are - explicitly opted into. - -Strict-mode Comparators and Ranges will be strict about the SemVer -strings that they parse. - -* `valid(v)`: Return the parsed version, or null if it's not valid. -* `inc(v, release)`: Return the version incremented by the release - type (`major`, `premajor`, `minor`, `preminor`, `patch`, - `prepatch`, or `prerelease`), or null if it's not valid - * `premajor` in one call will bump the version up to the next major - version and down to a prerelease of that major version. - `preminor`, and `prepatch` work the same way. - * If called from a non-prerelease version, the `prerelease` will work the - same as `prepatch`. It increments the patch version, then makes a - prerelease. If the input version is already a prerelease it simply - increments it. -* `prerelease(v)`: Returns an array of prerelease components, or null - if none exist. Example: `prerelease('1.2.3-alpha.1') -> ['alpha', 1]` -* `major(v)`: Return the major version number. -* `minor(v)`: Return the minor version number. -* `patch(v)`: Return the patch version number. -* `intersects(r1, r2, loose)`: Return true if the two supplied ranges - or comparators intersect. -* `parse(v)`: Attempt to parse a string as a semantic version, returning either - a `SemVer` object or `null`. - -### Comparison - -* `gt(v1, v2)`: `v1 > v2` -* `gte(v1, v2)`: `v1 >= v2` -* `lt(v1, v2)`: `v1 < v2` -* `lte(v1, v2)`: `v1 <= v2` -* `eq(v1, v2)`: `v1 == v2` This is true if they're logically equivalent, - even if they're not the exact same string. You already know how to - compare strings. -* `neq(v1, v2)`: `v1 != v2` The opposite of `eq`. -* `cmp(v1, comparator, v2)`: Pass in a comparison string, and it'll call - the corresponding function above. `"==="` and `"!=="` do simple - string comparison, but are included for completeness. Throws if an - invalid comparison string is provided. -* `compare(v1, v2)`: Return `0` if `v1 == v2`, or `1` if `v1` is greater, or `-1` if - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `rcompare(v1, v2)`: The reverse of compare. Sorts an array of versions - in descending order when passed to `Array.sort()`. -* `compareBuild(v1, v2)`: The same as `compare` but considers `build` when two versions - are equal. Sorts in ascending order if passed to `Array.sort()`. - `v2` is greater. Sorts in ascending order if passed to `Array.sort()`. -* `diff(v1, v2)`: Returns difference between two versions by the release type - (`major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, or `prerelease`), - or null if the versions are the same. - -### Comparators - -* `intersects(comparator)`: Return true if the comparators intersect - -### Ranges - -* `validRange(range)`: Return the valid range or null if it's not valid -* `satisfies(version, range)`: Return true if the version satisfies the - range. -* `maxSatisfying(versions, range)`: Return the highest version in the list - that satisfies the range, or `null` if none of them do. -* `minSatisfying(versions, range)`: Return the lowest version in the list - that satisfies the range, or `null` if none of them do. -* `minVersion(range)`: Return the lowest version that can possibly match - the given range. -* `gtr(version, range)`: Return `true` if version is greater than all the - versions possible in the range. -* `ltr(version, range)`: Return `true` if version is less than all the - versions possible in the range. -* `outside(version, range, hilo)`: Return true if the version is outside - the bounds of the range in either the high or low direction. The - `hilo` argument must be either the string `'>'` or `'<'`. (This is - the function called by `gtr` and `ltr`.) -* `intersects(range)`: Return true if any of the ranges comparators intersect -* `simplifyRange(versions, range)`: Return a "simplified" range that - matches the same items in `versions` list as the range specified. Note - that it does *not* guarantee that it would match the same versions in all - cases, only for the set of versions provided. This is useful when - generating ranges by joining together multiple versions with `||` - programmatically, to provide the user with something a bit more - ergonomic. If the provided range is shorter in string-length than the - generated range, then that is returned. -* `subset(subRange, superRange)`: Return `true` if the `subRange` range is - entirely contained by the `superRange` range. - -Note that, since ranges may be non-contiguous, a version might not be -greater than a range, less than a range, *or* satisfy a range! For -example, the range `1.2 <1.2.9 || >2.0.0` would have a hole from `1.2.9` -until `2.0.0`, so the version `1.2.10` would not be greater than the -range (because `2.0.1` satisfies, which is higher), nor less than the -range (since `1.2.8` satisfies, which is lower), and it also does not -satisfy the range. - -If you want to know if a version satisfies or does not satisfy a -range, use the `satisfies(version, range)` function. - -### Coercion - -* `coerce(version, options)`: Coerces a string to semver if possible - -This aims to provide a very forgiving translation of a non-semver string to -semver. It looks for the first digit in a string, and consumes all -remaining characters which satisfy at least a partial semver (e.g., `1`, -`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer -versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All -surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes -`3.4.0`). Only text which lacks digits will fail coercion (`version one` -is not valid). The maximum length for any semver component considered for -coercion is 16 characters; longer components will be ignored -(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any -semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value -components are invalid (`9999999999999999.4.7.4` is likely invalid). - -If the `options.rtl` flag is set, then `coerce` will return the right-most -coercible tuple that does not share an ending index with a longer coercible -tuple. For example, `1.2.3.4` will return `2.3.4` in rtl mode, not -`4.0.0`. `1.2.3/4` will return `4.0.0`, because the `4` is not a part of -any other overlapping SemVer tuple. - -### Clean - -* `clean(version)`: Clean a string to be a valid semver if possible - -This will return a cleaned and trimmed semver version. If the provided -version is not valid a null will be returned. This does not work for -ranges. - -ex. -* `s.clean(' = v 2.1.5foo')`: `null` -* `s.clean(' = v 2.1.5foo', { loose: true })`: `'2.1.5-foo'` -* `s.clean(' = v 2.1.5-foo')`: `null` -* `s.clean(' = v 2.1.5-foo', { loose: true })`: `'2.1.5-foo'` -* `s.clean('=v2.1.5')`: `'2.1.5'` -* `s.clean(' =v2.1.5')`: `2.1.5` -* `s.clean(' 2.1.5 ')`: `'2.1.5'` -* `s.clean('~1.0.0')`: `null` - -## Exported Modules - -<!-- -TODO: Make sure that all of these items are documented (classes aren't, -eg), and then pull the module name into the documentation for that specific -thing. ---> - -You may pull in just the part of this semver utility that you need, if you -are sensitive to packing and tree-shaking concerns. The main -`require('semver')` export uses getter functions to lazily load the parts -of the API that are used. - -The following modules are available: - -* `require('semver')` -* `require('semver/classes')` -* `require('semver/classes/comparator')` -* `require('semver/classes/range')` -* `require('semver/classes/semver')` -* `require('semver/functions/clean')` -* `require('semver/functions/cmp')` -* `require('semver/functions/coerce')` -* `require('semver/functions/compare')` -* `require('semver/functions/compare-build')` -* `require('semver/functions/compare-loose')` -* `require('semver/functions/diff')` -* `require('semver/functions/eq')` -* `require('semver/functions/gt')` -* `require('semver/functions/gte')` -* `require('semver/functions/inc')` -* `require('semver/functions/lt')` -* `require('semver/functions/lte')` -* `require('semver/functions/major')` -* `require('semver/functions/minor')` -* `require('semver/functions/neq')` -* `require('semver/functions/parse')` -* `require('semver/functions/patch')` -* `require('semver/functions/prerelease')` -* `require('semver/functions/rcompare')` -* `require('semver/functions/rsort')` -* `require('semver/functions/satisfies')` -* `require('semver/functions/sort')` -* `require('semver/functions/valid')` -* `require('semver/ranges/gtr')` -* `require('semver/ranges/intersects')` -* `require('semver/ranges/ltr')` -* `require('semver/ranges/max-satisfying')` -* `require('semver/ranges/min-satisfying')` -* `require('semver/ranges/min-version')` -* `require('semver/ranges/outside')` -* `require('semver/ranges/to-comparators')` -* `require('semver/ranges/valid')` diff --git a/node_modules/global-agent/node_modules/semver/bin/semver.js b/node_modules/global-agent/node_modules/semver/bin/semver.js deleted file mode 100755 index 8d1b557..0000000 --- a/node_modules/global-agent/node_modules/semver/bin/semver.js +++ /dev/null @@ -1,183 +0,0 @@ -#!/usr/bin/env node -// Standalone semver comparison program. -// Exits successfully and prints matching version(s) if -// any supplied version is valid and passes all tests. - -const argv = process.argv.slice(2) - -let versions = [] - -const range = [] - -let inc = null - -const version = require('../package.json').version - -let loose = false - -let includePrerelease = false - -let coerce = false - -let rtl = false - -let identifier - -const semver = require('../') - -let reverse = false - -let options = {} - -const main = () => { - if (!argv.length) { - return help() - } - while (argv.length) { - let a = argv.shift() - const indexOfEqualSign = a.indexOf('=') - if (indexOfEqualSign !== -1) { - const value = a.slice(indexOfEqualSign + 1) - a = a.slice(0, indexOfEqualSign) - argv.unshift(value) - } - switch (a) { - case '-rv': case '-rev': case '--rev': case '--reverse': - reverse = true - break - case '-l': case '--loose': - loose = true - break - case '-p': case '--include-prerelease': - includePrerelease = true - break - case '-v': case '--version': - versions.push(argv.shift()) - break - case '-i': case '--inc': case '--increment': - switch (argv[0]) { - case 'major': case 'minor': case 'patch': case 'prerelease': - case 'premajor': case 'preminor': case 'prepatch': - inc = argv.shift() - break - default: - inc = 'patch' - break - } - break - case '--preid': - identifier = argv.shift() - break - case '-r': case '--range': - range.push(argv.shift()) - break - case '-c': case '--coerce': - coerce = true - break - case '--rtl': - rtl = true - break - case '--ltr': - rtl = false - break - case '-h': case '--help': case '-?': - return help() - default: - versions.push(a) - break - } - } - - options = { loose: loose, includePrerelease: includePrerelease, rtl: rtl } - - versions = versions.map((v) => { - return coerce ? (semver.coerce(v, options) || { version: v }).version : v - }).filter((v) => { - return semver.valid(v) - }) - if (!versions.length) { - return fail() - } - if (inc && (versions.length !== 1 || range.length)) { - return failInc() - } - - for (let i = 0, l = range.length; i < l; i++) { - versions = versions.filter((v) => { - return semver.satisfies(v, range[i], options) - }) - if (!versions.length) { - return fail() - } - } - return success(versions) -} - -const failInc = () => { - console.error('--inc can only be used on a single version with no range') - fail() -} - -const fail = () => process.exit(1) - -const success = () => { - const compare = reverse ? 'rcompare' : 'compare' - versions.sort((a, b) => { - return semver[compare](a, b, options) - }).map((v) => { - return semver.clean(v, options) - }).map((v) => { - return inc ? semver.inc(v, inc, options, identifier) : v - }).forEach((v, i, _) => { - console.log(v) - }) -} - -const help = () => console.log( -`SemVer ${version} - -A JavaScript implementation of the https://semver.org/ specification -Copyright Isaac Z. Schlueter - -Usage: semver [options] <version> [<version> [...]] -Prints valid versions sorted by SemVer precedence - -Options: --r --range <range> - Print versions that match the specified range. - --i --increment [<level>] - Increment a version by the specified level. Level can - be one of: major, minor, patch, premajor, preminor, - prepatch, or prerelease. Default level is 'patch'. - Only one version may be specified. - ---preid <identifier> - Identifier to be used to prefix premajor, preminor, - prepatch or prerelease version increments. - --l --loose - Interpret versions and ranges loosely - --p --include-prerelease - Always include prerelease versions in range matching - --c --coerce - Coerce a string into SemVer if possible - (does not imply --loose) - ---rtl - Coerce version strings right to left - ---ltr - Coerce version strings left to right (default) - -Program exits successfully if any valid version satisfies -all supplied ranges, and prints all satisfying versions. - -If no satisfying versions are found, then exits failure. - -Versions are printed in ascending order, so supplying -multiple versions to the utility will just sort them.`) - -main() diff --git a/node_modules/global-agent/node_modules/semver/classes/comparator.js b/node_modules/global-agent/node_modules/semver/classes/comparator.js deleted file mode 100644 index 62cd204..0000000 --- a/node_modules/global-agent/node_modules/semver/classes/comparator.js +++ /dev/null @@ -1,136 +0,0 @@ -const ANY = Symbol('SemVer ANY') -// hoisted class for cyclic dependency -class Comparator { - static get ANY () { - return ANY - } - - constructor (comp, options) { - options = parseOptions(options) - - if (comp instanceof Comparator) { - if (comp.loose === !!options.loose) { - return comp - } else { - comp = comp.value - } - } - - debug('comparator', comp, options) - this.options = options - this.loose = !!options.loose - this.parse(comp) - - if (this.semver === ANY) { - this.value = '' - } else { - this.value = this.operator + this.semver.version - } - - debug('comp', this) - } - - parse (comp) { - const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR] - const m = comp.match(r) - - if (!m) { - throw new TypeError(`Invalid comparator: ${comp}`) - } - - this.operator = m[1] !== undefined ? m[1] : '' - if (this.operator === '=') { - this.operator = '' - } - - // if it literally is just '>' or '' then allow anything. - if (!m[2]) { - this.semver = ANY - } else { - this.semver = new SemVer(m[2], this.options.loose) - } - } - - toString () { - return this.value - } - - test (version) { - debug('Comparator.test', version, this.options.loose) - - if (this.semver === ANY || version === ANY) { - return true - } - - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } - } - - return cmp(version, this.operator, this.semver, this.options) - } - - intersects (comp, options) { - if (!(comp instanceof Comparator)) { - throw new TypeError('a Comparator is required') - } - - if (!options || typeof options !== 'object') { - options = { - loose: !!options, - includePrerelease: false, - } - } - - if (this.operator === '') { - if (this.value === '') { - return true - } - return new Range(comp.value, options).test(this.value) - } else if (comp.operator === '') { - if (comp.value === '') { - return true - } - return new Range(this.value, options).test(comp.semver) - } - - const sameDirectionIncreasing = - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '>=' || comp.operator === '>') - const sameDirectionDecreasing = - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '<=' || comp.operator === '<') - const sameSemVer = this.semver.version === comp.semver.version - const differentDirectionsInclusive = - (this.operator === '>=' || this.operator === '<=') && - (comp.operator === '>=' || comp.operator === '<=') - const oppositeDirectionsLessThan = - cmp(this.semver, '<', comp.semver, options) && - (this.operator === '>=' || this.operator === '>') && - (comp.operator === '<=' || comp.operator === '<') - const oppositeDirectionsGreaterThan = - cmp(this.semver, '>', comp.semver, options) && - (this.operator === '<=' || this.operator === '<') && - (comp.operator === '>=' || comp.operator === '>') - - return ( - sameDirectionIncreasing || - sameDirectionDecreasing || - (sameSemVer && differentDirectionsInclusive) || - oppositeDirectionsLessThan || - oppositeDirectionsGreaterThan - ) - } -} - -module.exports = Comparator - -const parseOptions = require('../internal/parse-options') -const { re, t } = require('../internal/re') -const cmp = require('../functions/cmp') -const debug = require('../internal/debug') -const SemVer = require('./semver') -const Range = require('./range') diff --git a/node_modules/global-agent/node_modules/semver/classes/index.js b/node_modules/global-agent/node_modules/semver/classes/index.js deleted file mode 100644 index 5e3f5c9..0000000 --- a/node_modules/global-agent/node_modules/semver/classes/index.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - SemVer: require('./semver.js'), - Range: require('./range.js'), - Comparator: require('./comparator.js'), -} diff --git a/node_modules/global-agent/node_modules/semver/classes/range.js b/node_modules/global-agent/node_modules/semver/classes/range.js deleted file mode 100644 index 7dc24bc..0000000 --- a/node_modules/global-agent/node_modules/semver/classes/range.js +++ /dev/null @@ -1,519 +0,0 @@ -// hoisted class for cyclic dependency -class Range { - constructor (range, options) { - options = parseOptions(options) - - if (range instanceof Range) { - if ( - range.loose === !!options.loose && - range.includePrerelease === !!options.includePrerelease - ) { - return range - } else { - return new Range(range.raw, options) - } - } - - if (range instanceof Comparator) { - // just put it in the set and return - this.raw = range.value - this.set = [[range]] - this.format() - return this - } - - this.options = options - this.loose = !!options.loose - this.includePrerelease = !!options.includePrerelease - - // First, split based on boolean or || - this.raw = range - this.set = range - .split('||') - // map the range to a 2d array of comparators - .map(r => this.parseRange(r.trim())) - // throw out any comparator lists that are empty - // this generally means that it was not a valid range, which is allowed - // in loose mode, but will still throw if the WHOLE range is invalid. - .filter(c => c.length) - - if (!this.set.length) { - throw new TypeError(`Invalid SemVer Range: ${range}`) - } - - // if we have any that are not the null set, throw out null sets. - if (this.set.length > 1) { - // keep the first one, in case they're all null sets - const first = this.set[0] - this.set = this.set.filter(c => !isNullSet(c[0])) - if (this.set.length === 0) { - this.set = [first] - } else if (this.set.length > 1) { - // if we have any that are *, then the range is just * - for (const c of this.set) { - if (c.length === 1 && isAny(c[0])) { - this.set = [c] - break - } - } - } - } - - this.format() - } - - format () { - this.range = this.set - .map((comps) => { - return comps.join(' ').trim() - }) - .join('||') - .trim() - return this.range - } - - toString () { - return this.range - } - - parseRange (range) { - range = range.trim() - - // memoize range parsing for performance. - // this is a very hot path, and fully deterministic. - const memoOpts = Object.keys(this.options).join(',') - const memoKey = `parseRange:${memoOpts}:${range}` - const cached = cache.get(memoKey) - if (cached) { - return cached - } - - const loose = this.options.loose - // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4` - const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE] - range = range.replace(hr, hyphenReplace(this.options.includePrerelease)) - debug('hyphen replace', range) - // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5` - range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace) - debug('comparator trim', range) - - // `~ 1.2.3` => `~1.2.3` - range = range.replace(re[t.TILDETRIM], tildeTrimReplace) - - // `^ 1.2.3` => `^1.2.3` - range = range.replace(re[t.CARETTRIM], caretTrimReplace) - - // normalize spaces - range = range.split(/\s+/).join(' ') - - // At this point, the range is completely trimmed and - // ready to be split into comparators. - - let rangeList = range - .split(' ') - .map(comp => parseComparator(comp, this.options)) - .join(' ') - .split(/\s+/) - // >=0.0.0 is equivalent to * - .map(comp => replaceGTE0(comp, this.options)) - - if (loose) { - // in loose mode, throw out any that are not valid comparators - rangeList = rangeList.filter(comp => { - debug('loose invalid filter', comp, this.options) - return !!comp.match(re[t.COMPARATORLOOSE]) - }) - } - debug('range list', rangeList) - - // if any comparators are the null set, then replace with JUST null set - // if more than one comparator, remove any * comparators - // also, don't include the same comparator more than once - const rangeMap = new Map() - const comparators = rangeList.map(comp => new Comparator(comp, this.options)) - for (const comp of comparators) { - if (isNullSet(comp)) { - return [comp] - } - rangeMap.set(comp.value, comp) - } - if (rangeMap.size > 1 && rangeMap.has('')) { - rangeMap.delete('') - } - - const result = [...rangeMap.values()] - cache.set(memoKey, result) - return result - } - - intersects (range, options) { - if (!(range instanceof Range)) { - throw new TypeError('a Range is required') - } - - return this.set.some((thisComparators) => { - return ( - isSatisfiable(thisComparators, options) && - range.set.some((rangeComparators) => { - return ( - isSatisfiable(rangeComparators, options) && - thisComparators.every((thisComparator) => { - return rangeComparators.every((rangeComparator) => { - return thisComparator.intersects(rangeComparator, options) - }) - }) - ) - }) - ) - }) - } - - // if ANY of the sets match ALL of its comparators, then pass - test (version) { - if (!version) { - return false - } - - if (typeof version === 'string') { - try { - version = new SemVer(version, this.options) - } catch (er) { - return false - } - } - - for (let i = 0; i < this.set.length; i++) { - if (testSet(this.set[i], version, this.options)) { - return true - } - } - return false - } -} -module.exports = Range - -const LRU = require('lru-cache') -const cache = new LRU({ max: 1000 }) - -const parseOptions = require('../internal/parse-options') -const Comparator = require('./comparator') -const debug = require('../internal/debug') -const SemVer = require('./semver') -const { - re, - t, - comparatorTrimReplace, - tildeTrimReplace, - caretTrimReplace, -} = require('../internal/re') - -const isNullSet = c => c.value === '<0.0.0-0' -const isAny = c => c.value === '' - -// take a set of comparators and determine whether there -// exists a version which can satisfy it -const isSatisfiable = (comparators, options) => { - let result = true - const remainingComparators = comparators.slice() - let testComparator = remainingComparators.pop() - - while (result && remainingComparators.length) { - result = remainingComparators.every((otherComparator) => { - return testComparator.intersects(otherComparator, options) - }) - - testComparator = remainingComparators.pop() - } - - return result -} - -// comprised of xranges, tildes, stars, and gtlt's at this point. -// already replaced the hyphen ranges -// turn into a set of JUST comparators. -const parseComparator = (comp, options) => { - debug('comp', comp, options) - comp = replaceCarets(comp, options) - debug('caret', comp) - comp = replaceTildes(comp, options) - debug('tildes', comp) - comp = replaceXRanges(comp, options) - debug('xrange', comp) - comp = replaceStars(comp, options) - debug('stars', comp) - return comp -} - -const isX = id => !id || id.toLowerCase() === 'x' || id === '*' - -// ~, ~> --> * (any, kinda silly) -// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 -// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0 -// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0 -// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0 -// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0 -const replaceTildes = (comp, options) => - comp.trim().split(/\s+/).map((c) => { - return replaceTilde(c, options) - }).join(' ') - -const replaceTilde = (comp, options) => { - const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] - return comp.replace(r, (_, M, m, p, pr) => { - debug('tilde', comp, _, M, m, p, pr) - let ret - - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = `>=${M}.0.0 <${+M + 1}.0.0-0` - } else if (isX(p)) { - // ~1.2 == >=1.2.0 <1.3.0-0 - ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0` - } else if (pr) { - debug('replaceTilde pr', pr) - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${+m + 1}.0-0` - } else { - // ~1.2.3 == >=1.2.3 <1.3.0-0 - ret = `>=${M}.${m}.${p - } <${M}.${+m + 1}.0-0` - } - - debug('tilde return', ret) - return ret - }) -} - -// ^ --> * (any, kinda silly) -// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0 -// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0 -// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0 -// ^1.2.3 --> >=1.2.3 <2.0.0-0 -// ^1.2.0 --> >=1.2.0 <2.0.0-0 -const replaceCarets = (comp, options) => - comp.trim().split(/\s+/).map((c) => { - return replaceCaret(c, options) - }).join(' ') - -const replaceCaret = (comp, options) => { - debug('caret', comp, options) - const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET] - const z = options.includePrerelease ? '-0' : '' - return comp.replace(r, (_, M, m, p, pr) => { - debug('caret', comp, _, M, m, p, pr) - let ret - - if (isX(M)) { - ret = '' - } else if (isX(m)) { - ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` - } else if (isX(p)) { - if (M === '0') { - ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` - } else { - ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` - } - } else if (pr) { - debug('replaceCaret pr', pr) - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${m}.${+p + 1}-0` - } else { - ret = `>=${M}.${m}.${p}-${pr - } <${M}.${+m + 1}.0-0` - } - } else { - ret = `>=${M}.${m}.${p}-${pr - } <${+M + 1}.0.0-0` - } - } else { - debug('no pr') - if (M === '0') { - if (m === '0') { - ret = `>=${M}.${m}.${p - }${z} <${M}.${m}.${+p + 1}-0` - } else { - ret = `>=${M}.${m}.${p - }${z} <${M}.${+m + 1}.0-0` - } - } else { - ret = `>=${M}.${m}.${p - } <${+M + 1}.0.0-0` - } - } - - debug('caret return', ret) - return ret - }) -} - -const replaceXRanges = (comp, options) => { - debug('replaceXRanges', comp, options) - return comp.split(/\s+/).map((c) => { - return replaceXRange(c, options) - }).join(' ') -} - -const replaceXRange = (comp, options) => { - comp = comp.trim() - const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE] - return comp.replace(r, (ret, gtlt, M, m, p, pr) => { - debug('xRange', comp, ret, gtlt, M, m, p, pr) - const xM = isX(M) - const xm = xM || isX(m) - const xp = xm || isX(p) - const anyX = xp - - if (gtlt === '=' && anyX) { - gtlt = '' - } - - // if we're including prereleases in the match, then we need - // to fix this to -0, the lowest possible prerelease value - pr = options.includePrerelease ? '-0' : '' - - if (xM) { - if (gtlt === '>' || gtlt === '<') { - // nothing is allowed - ret = '<0.0.0-0' - } else { - // nothing is forbidden - ret = '*' - } - } else if (gtlt && anyX) { - // we know patch is an x, because we have any x at all. - // replace X with 0 - if (xm) { - m = 0 - } - p = 0 - - if (gtlt === '>') { - // >1 => >=2.0.0 - // >1.2 => >=1.3.0 - gtlt = '>=' - if (xm) { - M = +M + 1 - m = 0 - p = 0 - } else { - m = +m + 1 - p = 0 - } - } else if (gtlt === '<=') { - // <=0.7.x is actually <0.8.0, since any 0.7.x should - // pass. Similarly, <=7.x is actually <8.0.0, etc. - gtlt = '<' - if (xm) { - M = +M + 1 - } else { - m = +m + 1 - } - } - - if (gtlt === '<') { - pr = '-0' - } - - ret = `${gtlt + M}.${m}.${p}${pr}` - } else if (xm) { - ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` - } else if (xp) { - ret = `>=${M}.${m}.0${pr - } <${M}.${+m + 1}.0-0` - } - - debug('xRange return', ret) - - return ret - }) -} - -// Because * is AND-ed with everything else in the comparator, -// and '' means "any version", just remove the *s entirely. -const replaceStars = (comp, options) => { - debug('replaceStars', comp, options) - // Looseness is ignored here. star is always as loose as it gets! - return comp.trim().replace(re[t.STAR], '') -} - -const replaceGTE0 = (comp, options) => { - debug('replaceGTE0', comp, options) - return comp.trim() - .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '') -} - -// This function is passed to string.replace(re[t.HYPHENRANGE]) -// M, m, patch, prerelease, build -// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5 -// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do -// 1.2 - 3.4 => >=1.2.0 <3.5.0-0 -const hyphenReplace = incPr => ($0, - from, fM, fm, fp, fpr, fb, - to, tM, tm, tp, tpr, tb) => { - if (isX(fM)) { - from = '' - } else if (isX(fm)) { - from = `>=${fM}.0.0${incPr ? '-0' : ''}` - } else if (isX(fp)) { - from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}` - } else if (fpr) { - from = `>=${from}` - } else { - from = `>=${from}${incPr ? '-0' : ''}` - } - - if (isX(tM)) { - to = '' - } else if (isX(tm)) { - to = `<${+tM + 1}.0.0-0` - } else if (isX(tp)) { - to = `<${tM}.${+tm + 1}.0-0` - } else if (tpr) { - to = `<=${tM}.${tm}.${tp}-${tpr}` - } else if (incPr) { - to = `<${tM}.${tm}.${+tp + 1}-0` - } else { - to = `<=${to}` - } - - return (`${from} ${to}`).trim() -} - -const testSet = (set, version, options) => { - for (let i = 0; i < set.length; i++) { - if (!set[i].test(version)) { - return false - } - } - - if (version.prerelease.length && !options.includePrerelease) { - // Find the set of versions that are allowed to have prereleases - // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0 - // That should allow `1.2.3-pr.2` to pass. - // However, `1.2.4-alpha.notready` should NOT be allowed, - // even though it's within the range set by the comparators. - for (let i = 0; i < set.length; i++) { - debug(set[i].semver) - if (set[i].semver === Comparator.ANY) { - continue - } - - if (set[i].semver.prerelease.length > 0) { - const allowed = set[i].semver - if (allowed.major === version.major && - allowed.minor === version.minor && - allowed.patch === version.patch) { - return true - } - } - } - - // Version has a -pre, but it's not one of the ones we like. - return false - } - - return true -} diff --git a/node_modules/global-agent/node_modules/semver/classes/semver.js b/node_modules/global-agent/node_modules/semver/classes/semver.js deleted file mode 100644 index af62955..0000000 --- a/node_modules/global-agent/node_modules/semver/classes/semver.js +++ /dev/null @@ -1,287 +0,0 @@ -const debug = require('../internal/debug') -const { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants') -const { re, t } = require('../internal/re') - -const parseOptions = require('../internal/parse-options') -const { compareIdentifiers } = require('../internal/identifiers') -class SemVer { - constructor (version, options) { - options = parseOptions(options) - - if (version instanceof SemVer) { - if (version.loose === !!options.loose && - version.includePrerelease === !!options.includePrerelease) { - return version - } else { - version = version.version - } - } else if (typeof version !== 'string') { - throw new TypeError(`Invalid Version: ${version}`) - } - - if (version.length > MAX_LENGTH) { - throw new TypeError( - `version is longer than ${MAX_LENGTH} characters` - ) - } - - debug('SemVer', version, options) - this.options = options - this.loose = !!options.loose - // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. - this.includePrerelease = !!options.includePrerelease - - const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]) - - if (!m) { - throw new TypeError(`Invalid Version: ${version}`) - } - - this.raw = version - - // these are actually numbers - this.major = +m[1] - this.minor = +m[2] - this.patch = +m[3] - - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { - throw new TypeError('Invalid major version') - } - - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { - throw new TypeError('Invalid minor version') - } - - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { - throw new TypeError('Invalid patch version') - } - - // numberify any prerelease numeric ids - if (!m[4]) { - this.prerelease = [] - } else { - this.prerelease = m[4].split('.').map((id) => { - if (/^[0-9]+$/.test(id)) { - const num = +id - if (num >= 0 && num < MAX_SAFE_INTEGER) { - return num - } - } - return id - }) - } - - this.build = m[5] ? m[5].split('.') : [] - this.format() - } - - format () { - this.version = `${this.major}.${this.minor}.${this.patch}` - if (this.prerelease.length) { - this.version += `-${this.prerelease.join('.')}` - } - return this.version - } - - toString () { - return this.version - } - - compare (other) { - debug('SemVer.compare', this.version, this.options, other) - if (!(other instanceof SemVer)) { - if (typeof other === 'string' && other === this.version) { - return 0 - } - other = new SemVer(other, this.options) - } - - if (other.version === this.version) { - return 0 - } - - return this.compareMain(other) || this.comparePre(other) - } - - compareMain (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - return ( - compareIdentifiers(this.major, other.major) || - compareIdentifiers(this.minor, other.minor) || - compareIdentifiers(this.patch, other.patch) - ) - } - - comparePre (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - // NOT having a prerelease is > having one - if (this.prerelease.length && !other.prerelease.length) { - return -1 - } else if (!this.prerelease.length && other.prerelease.length) { - return 1 - } else if (!this.prerelease.length && !other.prerelease.length) { - return 0 - } - - let i = 0 - do { - const a = this.prerelease[i] - const b = other.prerelease[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) - } - - compareBuild (other) { - if (!(other instanceof SemVer)) { - other = new SemVer(other, this.options) - } - - let i = 0 - do { - const a = this.build[i] - const b = other.build[i] - debug('prerelease compare', i, a, b) - if (a === undefined && b === undefined) { - return 0 - } else if (b === undefined) { - return 1 - } else if (a === undefined) { - return -1 - } else if (a === b) { - continue - } else { - return compareIdentifiers(a, b) - } - } while (++i) - } - - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. - inc (release, identifier) { - switch (release) { - case 'premajor': - this.prerelease.length = 0 - this.patch = 0 - this.minor = 0 - this.major++ - this.inc('pre', identifier) - break - case 'preminor': - this.prerelease.length = 0 - this.patch = 0 - this.minor++ - this.inc('pre', identifier) - break - case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. - this.prerelease.length = 0 - this.inc('patch', identifier) - this.inc('pre', identifier) - break - // If the input is a non-prerelease version, this acts the same as - // prepatch. - case 'prerelease': - if (this.prerelease.length === 0) { - this.inc('patch', identifier) - } - this.inc('pre', identifier) - break - - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 - if ( - this.minor !== 0 || - this.patch !== 0 || - this.prerelease.length === 0 - ) { - this.major++ - } - this.minor = 0 - this.patch = 0 - this.prerelease = [] - break - case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 - if (this.patch !== 0 || this.prerelease.length === 0) { - this.minor++ - } - this.patch = 0 - this.prerelease = [] - break - case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 - if (this.prerelease.length === 0) { - this.patch++ - } - this.prerelease = [] - break - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. - case 'pre': - if (this.prerelease.length === 0) { - this.prerelease = [0] - } else { - let i = this.prerelease.length - while (--i >= 0) { - if (typeof this.prerelease[i] === 'number') { - this.prerelease[i]++ - i = -2 - } - } - if (i === -1) { - // didn't increment anything - this.prerelease.push(0) - } - } - if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 - if (compareIdentifiers(this.prerelease[0], identifier) === 0) { - if (isNaN(this.prerelease[1])) { - this.prerelease = [identifier, 0] - } - } else { - this.prerelease = [identifier, 0] - } - } - break - - default: - throw new Error(`invalid increment argument: ${release}`) - } - this.format() - this.raw = this.version - return this - } -} - -module.exports = SemVer diff --git a/node_modules/global-agent/node_modules/semver/functions/clean.js b/node_modules/global-agent/node_modules/semver/functions/clean.js deleted file mode 100644 index 811fe6b..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/clean.js +++ /dev/null @@ -1,6 +0,0 @@ -const parse = require('./parse') -const clean = (version, options) => { - const s = parse(version.trim().replace(/^[=v]+/, ''), options) - return s ? s.version : null -} -module.exports = clean diff --git a/node_modules/global-agent/node_modules/semver/functions/cmp.js b/node_modules/global-agent/node_modules/semver/functions/cmp.js deleted file mode 100644 index 4011909..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/cmp.js +++ /dev/null @@ -1,52 +0,0 @@ -const eq = require('./eq') -const neq = require('./neq') -const gt = require('./gt') -const gte = require('./gte') -const lt = require('./lt') -const lte = require('./lte') - -const cmp = (a, op, b, loose) => { - switch (op) { - case '===': - if (typeof a === 'object') { - a = a.version - } - if (typeof b === 'object') { - b = b.version - } - return a === b - - case '!==': - if (typeof a === 'object') { - a = a.version - } - if (typeof b === 'object') { - b = b.version - } - return a !== b - - case '': - case '=': - case '==': - return eq(a, b, loose) - - case '!=': - return neq(a, b, loose) - - case '>': - return gt(a, b, loose) - - case '>=': - return gte(a, b, loose) - - case '<': - return lt(a, b, loose) - - case '<=': - return lte(a, b, loose) - - default: - throw new TypeError(`Invalid operator: ${op}`) - } -} -module.exports = cmp diff --git a/node_modules/global-agent/node_modules/semver/functions/coerce.js b/node_modules/global-agent/node_modules/semver/functions/coerce.js deleted file mode 100644 index 2e01452..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/coerce.js +++ /dev/null @@ -1,52 +0,0 @@ -const SemVer = require('../classes/semver') -const parse = require('./parse') -const { re, t } = require('../internal/re') - -const coerce = (version, options) => { - if (version instanceof SemVer) { - return version - } - - if (typeof version === 'number') { - version = String(version) - } - - if (typeof version !== 'string') { - return null - } - - options = options || {} - - let match = null - if (!options.rtl) { - match = version.match(re[t.COERCE]) - } else { - // Find the right-most coercible string that does not share - // a terminus with a more left-ward coercible string. - // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4' - // - // Walk through the string checking with a /g regexp - // Manually set the index so as to pick up overlapping matches. - // Stop when we get a match that ends at the string end, since no - // coercible string can be more right-ward without the same terminus. - let next - while ((next = re[t.COERCERTL].exec(version)) && - (!match || match.index + match[0].length !== version.length) - ) { - if (!match || - next.index + next[0].length !== match.index + match[0].length) { - match = next - } - re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length - } - // leave it in a clean state - re[t.COERCERTL].lastIndex = -1 - } - - if (match === null) { - return null - } - - return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options) -} -module.exports = coerce diff --git a/node_modules/global-agent/node_modules/semver/functions/compare-build.js b/node_modules/global-agent/node_modules/semver/functions/compare-build.js deleted file mode 100644 index 9eb881b..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/compare-build.js +++ /dev/null @@ -1,7 +0,0 @@ -const SemVer = require('../classes/semver') -const compareBuild = (a, b, loose) => { - const versionA = new SemVer(a, loose) - const versionB = new SemVer(b, loose) - return versionA.compare(versionB) || versionA.compareBuild(versionB) -} -module.exports = compareBuild diff --git a/node_modules/global-agent/node_modules/semver/functions/compare-loose.js b/node_modules/global-agent/node_modules/semver/functions/compare-loose.js deleted file mode 100644 index 4881fbe..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/compare-loose.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const compareLoose = (a, b) => compare(a, b, true) -module.exports = compareLoose diff --git a/node_modules/global-agent/node_modules/semver/functions/compare.js b/node_modules/global-agent/node_modules/semver/functions/compare.js deleted file mode 100644 index 748b7af..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/compare.js +++ /dev/null @@ -1,5 +0,0 @@ -const SemVer = require('../classes/semver') -const compare = (a, b, loose) => - new SemVer(a, loose).compare(new SemVer(b, loose)) - -module.exports = compare diff --git a/node_modules/global-agent/node_modules/semver/functions/diff.js b/node_modules/global-agent/node_modules/semver/functions/diff.js deleted file mode 100644 index 87200ef..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/diff.js +++ /dev/null @@ -1,23 +0,0 @@ -const parse = require('./parse') -const eq = require('./eq') - -const diff = (version1, version2) => { - if (eq(version1, version2)) { - return null - } else { - const v1 = parse(version1) - const v2 = parse(version2) - const hasPre = v1.prerelease.length || v2.prerelease.length - const prefix = hasPre ? 'pre' : '' - const defaultResult = hasPre ? 'prerelease' : '' - for (const key in v1) { - if (key === 'major' || key === 'minor' || key === 'patch') { - if (v1[key] !== v2[key]) { - return prefix + key - } - } - } - return defaultResult // may be undefined - } -} -module.exports = diff diff --git a/node_modules/global-agent/node_modules/semver/functions/eq.js b/node_modules/global-agent/node_modules/semver/functions/eq.js deleted file mode 100644 index 271fed9..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/eq.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const eq = (a, b, loose) => compare(a, b, loose) === 0 -module.exports = eq diff --git a/node_modules/global-agent/node_modules/semver/functions/gt.js b/node_modules/global-agent/node_modules/semver/functions/gt.js deleted file mode 100644 index d9b2156..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/gt.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const gt = (a, b, loose) => compare(a, b, loose) > 0 -module.exports = gt diff --git a/node_modules/global-agent/node_modules/semver/functions/gte.js b/node_modules/global-agent/node_modules/semver/functions/gte.js deleted file mode 100644 index 5aeaa63..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/gte.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const gte = (a, b, loose) => compare(a, b, loose) >= 0 -module.exports = gte diff --git a/node_modules/global-agent/node_modules/semver/functions/inc.js b/node_modules/global-agent/node_modules/semver/functions/inc.js deleted file mode 100644 index 62d1da2..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/inc.js +++ /dev/null @@ -1,18 +0,0 @@ -const SemVer = require('../classes/semver') - -const inc = (version, release, options, identifier) => { - if (typeof (options) === 'string') { - identifier = options - options = undefined - } - - try { - return new SemVer( - version instanceof SemVer ? version.version : version, - options - ).inc(release, identifier).version - } catch (er) { - return null - } -} -module.exports = inc diff --git a/node_modules/global-agent/node_modules/semver/functions/lt.js b/node_modules/global-agent/node_modules/semver/functions/lt.js deleted file mode 100644 index b440ab7..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/lt.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const lt = (a, b, loose) => compare(a, b, loose) < 0 -module.exports = lt diff --git a/node_modules/global-agent/node_modules/semver/functions/lte.js b/node_modules/global-agent/node_modules/semver/functions/lte.js deleted file mode 100644 index 6dcc956..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/lte.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const lte = (a, b, loose) => compare(a, b, loose) <= 0 -module.exports = lte diff --git a/node_modules/global-agent/node_modules/semver/functions/major.js b/node_modules/global-agent/node_modules/semver/functions/major.js deleted file mode 100644 index 4283165..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/major.js +++ /dev/null @@ -1,3 +0,0 @@ -const SemVer = require('../classes/semver') -const major = (a, loose) => new SemVer(a, loose).major -module.exports = major diff --git a/node_modules/global-agent/node_modules/semver/functions/minor.js b/node_modules/global-agent/node_modules/semver/functions/minor.js deleted file mode 100644 index 57b3455..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/minor.js +++ /dev/null @@ -1,3 +0,0 @@ -const SemVer = require('../classes/semver') -const minor = (a, loose) => new SemVer(a, loose).minor -module.exports = minor diff --git a/node_modules/global-agent/node_modules/semver/functions/neq.js b/node_modules/global-agent/node_modules/semver/functions/neq.js deleted file mode 100644 index f944c01..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/neq.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const neq = (a, b, loose) => compare(a, b, loose) !== 0 -module.exports = neq diff --git a/node_modules/global-agent/node_modules/semver/functions/parse.js b/node_modules/global-agent/node_modules/semver/functions/parse.js deleted file mode 100644 index a66663a..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/parse.js +++ /dev/null @@ -1,33 +0,0 @@ -const { MAX_LENGTH } = require('../internal/constants') -const { re, t } = require('../internal/re') -const SemVer = require('../classes/semver') - -const parseOptions = require('../internal/parse-options') -const parse = (version, options) => { - options = parseOptions(options) - - if (version instanceof SemVer) { - return version - } - - if (typeof version !== 'string') { - return null - } - - if (version.length > MAX_LENGTH) { - return null - } - - const r = options.loose ? re[t.LOOSE] : re[t.FULL] - if (!r.test(version)) { - return null - } - - try { - return new SemVer(version, options) - } catch (er) { - return null - } -} - -module.exports = parse diff --git a/node_modules/global-agent/node_modules/semver/functions/patch.js b/node_modules/global-agent/node_modules/semver/functions/patch.js deleted file mode 100644 index 63afca2..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/patch.js +++ /dev/null @@ -1,3 +0,0 @@ -const SemVer = require('../classes/semver') -const patch = (a, loose) => new SemVer(a, loose).patch -module.exports = patch diff --git a/node_modules/global-agent/node_modules/semver/functions/prerelease.js b/node_modules/global-agent/node_modules/semver/functions/prerelease.js deleted file mode 100644 index 06aa132..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/prerelease.js +++ /dev/null @@ -1,6 +0,0 @@ -const parse = require('./parse') -const prerelease = (version, options) => { - const parsed = parse(version, options) - return (parsed && parsed.prerelease.length) ? parsed.prerelease : null -} -module.exports = prerelease diff --git a/node_modules/global-agent/node_modules/semver/functions/rcompare.js b/node_modules/global-agent/node_modules/semver/functions/rcompare.js deleted file mode 100644 index 0ac509e..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/rcompare.js +++ /dev/null @@ -1,3 +0,0 @@ -const compare = require('./compare') -const rcompare = (a, b, loose) => compare(b, a, loose) -module.exports = rcompare diff --git a/node_modules/global-agent/node_modules/semver/functions/rsort.js b/node_modules/global-agent/node_modules/semver/functions/rsort.js deleted file mode 100644 index 82404c5..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/rsort.js +++ /dev/null @@ -1,3 +0,0 @@ -const compareBuild = require('./compare-build') -const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)) -module.exports = rsort diff --git a/node_modules/global-agent/node_modules/semver/functions/satisfies.js b/node_modules/global-agent/node_modules/semver/functions/satisfies.js deleted file mode 100644 index 50af1c1..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/satisfies.js +++ /dev/null @@ -1,10 +0,0 @@ -const Range = require('../classes/range') -const satisfies = (version, range, options) => { - try { - range = new Range(range, options) - } catch (er) { - return false - } - return range.test(version) -} -module.exports = satisfies diff --git a/node_modules/global-agent/node_modules/semver/functions/sort.js b/node_modules/global-agent/node_modules/semver/functions/sort.js deleted file mode 100644 index 4d10917..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/sort.js +++ /dev/null @@ -1,3 +0,0 @@ -const compareBuild = require('./compare-build') -const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)) -module.exports = sort diff --git a/node_modules/global-agent/node_modules/semver/functions/valid.js b/node_modules/global-agent/node_modules/semver/functions/valid.js deleted file mode 100644 index f27bae1..0000000 --- a/node_modules/global-agent/node_modules/semver/functions/valid.js +++ /dev/null @@ -1,6 +0,0 @@ -const parse = require('./parse') -const valid = (version, options) => { - const v = parse(version, options) - return v ? v.version : null -} -module.exports = valid diff --git a/node_modules/global-agent/node_modules/semver/index.js b/node_modules/global-agent/node_modules/semver/index.js deleted file mode 100644 index 57e2ae6..0000000 --- a/node_modules/global-agent/node_modules/semver/index.js +++ /dev/null @@ -1,48 +0,0 @@ -// just pre-load all the stuff that index.js lazily exports -const internalRe = require('./internal/re') -module.exports = { - re: internalRe.re, - src: internalRe.src, - tokens: internalRe.t, - SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION, - SemVer: require('./classes/semver'), - compareIdentifiers: require('./internal/identifiers').compareIdentifiers, - rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers, - parse: require('./functions/parse'), - valid: require('./functions/valid'), - clean: require('./functions/clean'), - inc: require('./functions/inc'), - diff: require('./functions/diff'), - major: require('./functions/major'), - minor: require('./functions/minor'), - patch: require('./functions/patch'), - prerelease: require('./functions/prerelease'), - compare: require('./functions/compare'), - rcompare: require('./functions/rcompare'), - compareLoose: require('./functions/compare-loose'), - compareBuild: require('./functions/compare-build'), - sort: require('./functions/sort'), - rsort: require('./functions/rsort'), - gt: require('./functions/gt'), - lt: require('./functions/lt'), - eq: require('./functions/eq'), - neq: require('./functions/neq'), - gte: require('./functions/gte'), - lte: require('./functions/lte'), - cmp: require('./functions/cmp'), - coerce: require('./functions/coerce'), - Comparator: require('./classes/comparator'), - Range: require('./classes/range'), - satisfies: require('./functions/satisfies'), - toComparators: require('./ranges/to-comparators'), - maxSatisfying: require('./ranges/max-satisfying'), - minSatisfying: require('./ranges/min-satisfying'), - minVersion: require('./ranges/min-version'), - validRange: require('./ranges/valid'), - outside: require('./ranges/outside'), - gtr: require('./ranges/gtr'), - ltr: require('./ranges/ltr'), - intersects: require('./ranges/intersects'), - simplifyRange: require('./ranges/simplify'), - subset: require('./ranges/subset'), -} diff --git a/node_modules/global-agent/node_modules/semver/internal/constants.js b/node_modules/global-agent/node_modules/semver/internal/constants.js deleted file mode 100644 index 4f0de59..0000000 --- a/node_modules/global-agent/node_modules/semver/internal/constants.js +++ /dev/null @@ -1,17 +0,0 @@ -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. -const SEMVER_SPEC_VERSION = '2.0.0' - -const MAX_LENGTH = 256 -const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || -/* istanbul ignore next */ 9007199254740991 - -// Max safe segment length for coercion. -const MAX_SAFE_COMPONENT_LENGTH = 16 - -module.exports = { - SEMVER_SPEC_VERSION, - MAX_LENGTH, - MAX_SAFE_INTEGER, - MAX_SAFE_COMPONENT_LENGTH, -} diff --git a/node_modules/global-agent/node_modules/semver/internal/debug.js b/node_modules/global-agent/node_modules/semver/internal/debug.js deleted file mode 100644 index 1c00e13..0000000 --- a/node_modules/global-agent/node_modules/semver/internal/debug.js +++ /dev/null @@ -1,9 +0,0 @@ -const debug = ( - typeof process === 'object' && - process.env && - process.env.NODE_DEBUG && - /\bsemver\b/i.test(process.env.NODE_DEBUG) -) ? (...args) => console.error('SEMVER', ...args) - : () => {} - -module.exports = debug diff --git a/node_modules/global-agent/node_modules/semver/internal/identifiers.js b/node_modules/global-agent/node_modules/semver/internal/identifiers.js deleted file mode 100644 index e612d0a..0000000 --- a/node_modules/global-agent/node_modules/semver/internal/identifiers.js +++ /dev/null @@ -1,23 +0,0 @@ -const numeric = /^[0-9]+$/ -const compareIdentifiers = (a, b) => { - const anum = numeric.test(a) - const bnum = numeric.test(b) - - if (anum && bnum) { - a = +a - b = +b - } - - return a === b ? 0 - : (anum && !bnum) ? -1 - : (bnum && !anum) ? 1 - : a < b ? -1 - : 1 -} - -const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a) - -module.exports = { - compareIdentifiers, - rcompareIdentifiers, -} diff --git a/node_modules/global-agent/node_modules/semver/internal/parse-options.js b/node_modules/global-agent/node_modules/semver/internal/parse-options.js deleted file mode 100644 index bbd9ec7..0000000 --- a/node_modules/global-agent/node_modules/semver/internal/parse-options.js +++ /dev/null @@ -1,11 +0,0 @@ -// parse out just the options we care about so we always get a consistent -// obj with keys in a consistent order. -const opts = ['includePrerelease', 'loose', 'rtl'] -const parseOptions = options => - !options ? {} - : typeof options !== 'object' ? { loose: true } - : opts.filter(k => options[k]).reduce((o, k) => { - o[k] = true - return o - }, {}) -module.exports = parseOptions diff --git a/node_modules/global-agent/node_modules/semver/internal/re.js b/node_modules/global-agent/node_modules/semver/internal/re.js deleted file mode 100644 index ed88398..0000000 --- a/node_modules/global-agent/node_modules/semver/internal/re.js +++ /dev/null @@ -1,182 +0,0 @@ -const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants') -const debug = require('./debug') -exports = module.exports = {} - -// The actual regexps go on exports.re -const re = exports.re = [] -const src = exports.src = [] -const t = exports.t = {} -let R = 0 - -const createToken = (name, value, isGlobal) => { - const index = R++ - debug(name, index, value) - t[name] = index - src[index] = value - re[index] = new RegExp(value, isGlobal ? 'g' : undefined) -} - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - -createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*') -createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+') - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - -createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*') - -// ## Main Version -// Three dot-separated numeric identifiers. - -createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})\\.` + - `(${src[t.NUMERICIDENTIFIER]})`) - -createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + - `(${src[t.NUMERICIDENTIFIERLOOSE]})`) - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - -createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] -}|${src[t.NONNUMERICIDENTIFIER]})`) - -createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] -}|${src[t.NONNUMERICIDENTIFIER]})`) - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - -createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] -}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`) - -createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] -}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`) - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - -createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+') - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - -createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] -}(?:\\.${src[t.BUILDIDENTIFIER]})*))`) - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - -createToken('FULLPLAIN', `v?${src[t.MAINVERSION] -}${src[t.PRERELEASE]}?${ - src[t.BUILD]}?`) - -createToken('FULL', `^${src[t.FULLPLAIN]}$`) - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. -createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] -}${src[t.PRERELEASELOOSE]}?${ - src[t.BUILD]}?`) - -createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`) - -createToken('GTLT', '((?:<|>)?=?)') - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. -createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) -createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`) - -createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + - `(?:${src[t.PRERELEASE]})?${ - src[t.BUILD]}?` + - `)?)?`) - -createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + - `(?:${src[t.PRERELEASELOOSE]})?${ - src[t.BUILD]}?` + - `)?)?`) - -createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`) -createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`) - -// Coercion. -// Extract anything that could conceivably be a part of a valid semver -createToken('COERCE', `${'(^|[^\\d])' + - '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + - `(?:$|[^\\d])`) -createToken('COERCERTL', src[t.COERCE], true) - -// Tilde ranges. -// Meaning is "reasonably at or greater than" -createToken('LONETILDE', '(?:~>?)') - -createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true) -exports.tildeTrimReplace = '$1~' - -createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`) -createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`) - -// Caret ranges. -// Meaning is "at least and backwards compatible with" -createToken('LONECARET', '(?:\\^)') - -createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true) -exports.caretTrimReplace = '$1^' - -createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`) -createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`) - -// A simple gt/lt/eq thing, or just "" to indicate "any version" -createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`) -createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`) - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` -createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] -}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true) -exports.comparatorTrimReplace = '$1$2$3' - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. -createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAIN]})` + - `\\s*$`) - -createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + - `\\s+-\\s+` + - `(${src[t.XRANGEPLAINLOOSE]})` + - `\\s*$`) - -// Star ranges basically just allow anything at all. -createToken('STAR', '(<|>)?=?\\s*\\*') -// >=0.0.0 is like a star -createToken('GTE0', '^\\s*>=\\s*0\\.0\\.0\\s*$') -createToken('GTE0PRE', '^\\s*>=\\s*0\\.0\\.0-0\\s*$') diff --git a/node_modules/global-agent/node_modules/semver/package.json b/node_modules/global-agent/node_modules/semver/package.json deleted file mode 100644 index 7898f59..0000000 --- a/node_modules/global-agent/node_modules/semver/package.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "semver", - "version": "7.3.7", - "description": "The semantic version parser used by npm.", - "main": "index.js", - "scripts": { - "test": "tap", - "snap": "tap", - "preversion": "npm test", - "postversion": "npm publish", - "postpublish": "git push origin --follow-tags", - "lint": "eslint \"**/*.js\"", - "postlint": "template-oss-check", - "lintfix": "npm run lint -- --fix", - "prepublishOnly": "git push origin --follow-tags", - "posttest": "npm run lint", - "template-oss-apply": "template-oss-apply --force" - }, - "devDependencies": { - "@npmcli/eslint-config": "^3.0.1", - "@npmcli/template-oss": "3.3.2", - "tap": "^16.0.0" - }, - "license": "ISC", - "repository": { - "type": "git", - "url": "https://github.com/npm/node-semver.git" - }, - "bin": { - "semver": "bin/semver.js" - }, - "files": [ - "bin/", - "classes/", - "functions/", - "internal/", - "ranges/", - "index.js", - "preload.js", - "range.bnf" - ], - "tap": { - "check-coverage": true, - "coverage-map": "map.js" - }, - "engines": { - "node": ">=10" - }, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "author": "GitHub Inc.", - "templateOSS": { - "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", - "version": "3.3.2", - "engines": ">=10", - "ciVersions": [ - "10.0.0", - "10.x", - "12.x", - "14.x", - "16.x" - ], - "distPaths": [ - "bin/", - "classes/", - "functions/", - "internal/", - "ranges/", - "index.js", - "preload.js", - "range.bnf" - ] - } -} diff --git a/node_modules/global-agent/node_modules/semver/preload.js b/node_modules/global-agent/node_modules/semver/preload.js deleted file mode 100644 index 947cd4f..0000000 --- a/node_modules/global-agent/node_modules/semver/preload.js +++ /dev/null @@ -1,2 +0,0 @@ -// XXX remove in v8 or beyond -module.exports = require('./index.js') diff --git a/node_modules/global-agent/node_modules/semver/range.bnf b/node_modules/global-agent/node_modules/semver/range.bnf deleted file mode 100644 index d4c6ae0..0000000 --- a/node_modules/global-agent/node_modules/semver/range.bnf +++ /dev/null @@ -1,16 +0,0 @@ -range-set ::= range ( logical-or range ) * -logical-or ::= ( ' ' ) * '||' ( ' ' ) * -range ::= hyphen | simple ( ' ' simple ) * | '' -hyphen ::= partial ' - ' partial -simple ::= primitive | partial | tilde | caret -primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial -partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )? -xr ::= 'x' | 'X' | '*' | nr -nr ::= '0' | [1-9] ( [0-9] ) * -tilde ::= '~' partial -caret ::= '^' partial -qualifier ::= ( '-' pre )? ( '+' build )? -pre ::= parts -build ::= parts -parts ::= part ( '.' part ) * -part ::= nr | [-0-9A-Za-z]+ diff --git a/node_modules/global-agent/node_modules/semver/ranges/gtr.js b/node_modules/global-agent/node_modules/semver/ranges/gtr.js deleted file mode 100644 index db7e355..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/gtr.js +++ /dev/null @@ -1,4 +0,0 @@ -// Determine if version is greater than all the versions possible in the range. -const outside = require('./outside') -const gtr = (version, range, options) => outside(version, range, '>', options) -module.exports = gtr diff --git a/node_modules/global-agent/node_modules/semver/ranges/intersects.js b/node_modules/global-agent/node_modules/semver/ranges/intersects.js deleted file mode 100644 index 3d1a6f3..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/intersects.js +++ /dev/null @@ -1,7 +0,0 @@ -const Range = require('../classes/range') -const intersects = (r1, r2, options) => { - r1 = new Range(r1, options) - r2 = new Range(r2, options) - return r1.intersects(r2) -} -module.exports = intersects diff --git a/node_modules/global-agent/node_modules/semver/ranges/ltr.js b/node_modules/global-agent/node_modules/semver/ranges/ltr.js deleted file mode 100644 index 528a885..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/ltr.js +++ /dev/null @@ -1,4 +0,0 @@ -const outside = require('./outside') -// Determine if version is less than all the versions possible in the range -const ltr = (version, range, options) => outside(version, range, '<', options) -module.exports = ltr diff --git a/node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js b/node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js deleted file mode 100644 index 6e3d993..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/max-satisfying.js +++ /dev/null @@ -1,25 +0,0 @@ -const SemVer = require('../classes/semver') -const Range = require('../classes/range') - -const maxSatisfying = (versions, range, options) => { - let max = null - let maxSV = null - let rangeObj = null - try { - rangeObj = new Range(range, options) - } catch (er) { - return null - } - versions.forEach((v) => { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!max || maxSV.compare(v) === -1) { - // compare(max, v, true) - max = v - maxSV = new SemVer(max, options) - } - } - }) - return max -} -module.exports = maxSatisfying diff --git a/node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js b/node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js deleted file mode 100644 index 9b60974..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/min-satisfying.js +++ /dev/null @@ -1,24 +0,0 @@ -const SemVer = require('../classes/semver') -const Range = require('../classes/range') -const minSatisfying = (versions, range, options) => { - let min = null - let minSV = null - let rangeObj = null - try { - rangeObj = new Range(range, options) - } catch (er) { - return null - } - versions.forEach((v) => { - if (rangeObj.test(v)) { - // satisfies(v, range, options) - if (!min || minSV.compare(v) === 1) { - // compare(min, v, true) - min = v - minSV = new SemVer(min, options) - } - } - }) - return min -} -module.exports = minSatisfying diff --git a/node_modules/global-agent/node_modules/semver/ranges/min-version.js b/node_modules/global-agent/node_modules/semver/ranges/min-version.js deleted file mode 100644 index 350e1f7..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/min-version.js +++ /dev/null @@ -1,61 +0,0 @@ -const SemVer = require('../classes/semver') -const Range = require('../classes/range') -const gt = require('../functions/gt') - -const minVersion = (range, loose) => { - range = new Range(range, loose) - - let minver = new SemVer('0.0.0') - if (range.test(minver)) { - return minver - } - - minver = new SemVer('0.0.0-0') - if (range.test(minver)) { - return minver - } - - minver = null - for (let i = 0; i < range.set.length; ++i) { - const comparators = range.set[i] - - let setMin = null - comparators.forEach((comparator) => { - // Clone to avoid manipulating the comparator's semver object. - const compver = new SemVer(comparator.semver.version) - switch (comparator.operator) { - case '>': - if (compver.prerelease.length === 0) { - compver.patch++ - } else { - compver.prerelease.push(0) - } - compver.raw = compver.format() - /* fallthrough */ - case '': - case '>=': - if (!setMin || gt(compver, setMin)) { - setMin = compver - } - break - case '<': - case '<=': - /* Ignore maximum versions */ - break - /* istanbul ignore next */ - default: - throw new Error(`Unexpected operation: ${comparator.operator}`) - } - }) - if (setMin && (!minver || gt(minver, setMin))) { - minver = setMin - } - } - - if (minver && range.test(minver)) { - return minver - } - - return null -} -module.exports = minVersion diff --git a/node_modules/global-agent/node_modules/semver/ranges/outside.js b/node_modules/global-agent/node_modules/semver/ranges/outside.js deleted file mode 100644 index ae99b10..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/outside.js +++ /dev/null @@ -1,80 +0,0 @@ -const SemVer = require('../classes/semver') -const Comparator = require('../classes/comparator') -const { ANY } = Comparator -const Range = require('../classes/range') -const satisfies = require('../functions/satisfies') -const gt = require('../functions/gt') -const lt = require('../functions/lt') -const lte = require('../functions/lte') -const gte = require('../functions/gte') - -const outside = (version, range, hilo, options) => { - version = new SemVer(version, options) - range = new Range(range, options) - - let gtfn, ltefn, ltfn, comp, ecomp - switch (hilo) { - case '>': - gtfn = gt - ltefn = lte - ltfn = lt - comp = '>' - ecomp = '>=' - break - case '<': - gtfn = lt - ltefn = gte - ltfn = gt - comp = '<' - ecomp = '<=' - break - default: - throw new TypeError('Must provide a hilo val of "<" or ">"') - } - - // If it satisfies the range it is not outside - if (satisfies(version, range, options)) { - return false - } - - // From now on, variable terms are as if we're in "gtr" mode. - // but note that everything is flipped for the "ltr" function. - - for (let i = 0; i < range.set.length; ++i) { - const comparators = range.set[i] - - let high = null - let low = null - - comparators.forEach((comparator) => { - if (comparator.semver === ANY) { - comparator = new Comparator('>=0.0.0') - } - high = high || comparator - low = low || comparator - if (gtfn(comparator.semver, high.semver, options)) { - high = comparator - } else if (ltfn(comparator.semver, low.semver, options)) { - low = comparator - } - }) - - // If the edge version comparator has a operator then our version - // isn't outside it - if (high.operator === comp || high.operator === ecomp) { - return false - } - - // If the lowest version comparator has an operator and our version - // is less than it then it isn't higher than the range - if ((!low.operator || low.operator === comp) && - ltefn(version, low.semver)) { - return false - } else if (low.operator === ecomp && ltfn(version, low.semver)) { - return false - } - } - return true -} - -module.exports = outside diff --git a/node_modules/global-agent/node_modules/semver/ranges/simplify.js b/node_modules/global-agent/node_modules/semver/ranges/simplify.js deleted file mode 100644 index 618d5b6..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/simplify.js +++ /dev/null @@ -1,47 +0,0 @@ -// given a set of versions and a range, create a "simplified" range -// that includes the same versions that the original range does -// If the original range is shorter than the simplified one, return that. -const satisfies = require('../functions/satisfies.js') -const compare = require('../functions/compare.js') -module.exports = (versions, range, options) => { - const set = [] - let first = null - let prev = null - const v = versions.sort((a, b) => compare(a, b, options)) - for (const version of v) { - const included = satisfies(version, range, options) - if (included) { - prev = version - if (!first) { - first = version - } - } else { - if (prev) { - set.push([first, prev]) - } - prev = null - first = null - } - } - if (first) { - set.push([first, null]) - } - - const ranges = [] - for (const [min, max] of set) { - if (min === max) { - ranges.push(min) - } else if (!max && min === v[0]) { - ranges.push('*') - } else if (!max) { - ranges.push(`>=${min}`) - } else if (min === v[0]) { - ranges.push(`<=${max}`) - } else { - ranges.push(`${min} - ${max}`) - } - } - const simplified = ranges.join(' || ') - const original = typeof range.raw === 'string' ? range.raw : String(range) - return simplified.length < original.length ? simplified : range -} diff --git a/node_modules/global-agent/node_modules/semver/ranges/subset.js b/node_modules/global-agent/node_modules/semver/ranges/subset.js deleted file mode 100644 index e0dea43..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/subset.js +++ /dev/null @@ -1,244 +0,0 @@ -const Range = require('../classes/range.js') -const Comparator = require('../classes/comparator.js') -const { ANY } = Comparator -const satisfies = require('../functions/satisfies.js') -const compare = require('../functions/compare.js') - -// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: -// - Every simple range `r1, r2, ...` is a null set, OR -// - Every simple range `r1, r2, ...` which is not a null set is a subset of -// some `R1, R2, ...` -// -// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: -// - If c is only the ANY comparator -// - If C is only the ANY comparator, return true -// - Else if in prerelease mode, return false -// - else replace c with `[>=0.0.0]` -// - If C is only the ANY comparator -// - if in prerelease mode, return true -// - else replace C with `[>=0.0.0]` -// - Let EQ be the set of = comparators in c -// - If EQ is more than one, return true (null set) -// - Let GT be the highest > or >= comparator in c -// - Let LT be the lowest < or <= comparator in c -// - If GT and LT, and GT.semver > LT.semver, return true (null set) -// - If any C is a = range, and GT or LT are set, return false -// - If EQ -// - If GT, and EQ does not satisfy GT, return true (null set) -// - If LT, and EQ does not satisfy LT, return true (null set) -// - If EQ satisfies every C, return true -// - Else return false -// - If GT -// - If GT.semver is lower than any > or >= comp in C, return false -// - If GT is >=, and GT.semver does not satisfy every C, return false -// - If GT.semver has a prerelease, and not in prerelease mode -// - If no C has a prerelease and the GT.semver tuple, return false -// - If LT -// - If LT.semver is greater than any < or <= comp in C, return false -// - If LT is <=, and LT.semver does not satisfy every C, return false -// - If GT.semver has a prerelease, and not in prerelease mode -// - If no C has a prerelease and the LT.semver tuple, return false -// - Else return true - -const subset = (sub, dom, options = {}) => { - if (sub === dom) { - return true - } - - sub = new Range(sub, options) - dom = new Range(dom, options) - let sawNonNull = false - - OUTER: for (const simpleSub of sub.set) { - for (const simpleDom of dom.set) { - const isSub = simpleSubset(simpleSub, simpleDom, options) - sawNonNull = sawNonNull || isSub !== null - if (isSub) { - continue OUTER - } - } - // the null set is a subset of everything, but null simple ranges in - // a complex range should be ignored. so if we saw a non-null range, - // then we know this isn't a subset, but if EVERY simple range was null, - // then it is a subset. - if (sawNonNull) { - return false - } - } - return true -} - -const simpleSubset = (sub, dom, options) => { - if (sub === dom) { - return true - } - - if (sub.length === 1 && sub[0].semver === ANY) { - if (dom.length === 1 && dom[0].semver === ANY) { - return true - } else if (options.includePrerelease) { - sub = [new Comparator('>=0.0.0-0')] - } else { - sub = [new Comparator('>=0.0.0')] - } - } - - if (dom.length === 1 && dom[0].semver === ANY) { - if (options.includePrerelease) { - return true - } else { - dom = [new Comparator('>=0.0.0')] - } - } - - const eqSet = new Set() - let gt, lt - for (const c of sub) { - if (c.operator === '>' || c.operator === '>=') { - gt = higherGT(gt, c, options) - } else if (c.operator === '<' || c.operator === '<=') { - lt = lowerLT(lt, c, options) - } else { - eqSet.add(c.semver) - } - } - - if (eqSet.size > 1) { - return null - } - - let gtltComp - if (gt && lt) { - gtltComp = compare(gt.semver, lt.semver, options) - if (gtltComp > 0) { - return null - } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) { - return null - } - } - - // will iterate one or zero times - for (const eq of eqSet) { - if (gt && !satisfies(eq, String(gt), options)) { - return null - } - - if (lt && !satisfies(eq, String(lt), options)) { - return null - } - - for (const c of dom) { - if (!satisfies(eq, String(c), options)) { - return false - } - } - - return true - } - - let higher, lower - let hasDomLT, hasDomGT - // if the subset has a prerelease, we need a comparator in the superset - // with the same tuple and a prerelease, or it's not a subset - let needDomLTPre = lt && - !options.includePrerelease && - lt.semver.prerelease.length ? lt.semver : false - let needDomGTPre = gt && - !options.includePrerelease && - gt.semver.prerelease.length ? gt.semver : false - // exception: <1.2.3-0 is the same as <1.2.3 - if (needDomLTPre && needDomLTPre.prerelease.length === 1 && - lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { - needDomLTPre = false - } - - for (const c of dom) { - hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' - hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=' - if (gt) { - if (needDomGTPre) { - if (c.semver.prerelease && c.semver.prerelease.length && - c.semver.major === needDomGTPre.major && - c.semver.minor === needDomGTPre.minor && - c.semver.patch === needDomGTPre.patch) { - needDomGTPre = false - } - } - if (c.operator === '>' || c.operator === '>=') { - higher = higherGT(gt, c, options) - if (higher === c && higher !== gt) { - return false - } - } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) { - return false - } - } - if (lt) { - if (needDomLTPre) { - if (c.semver.prerelease && c.semver.prerelease.length && - c.semver.major === needDomLTPre.major && - c.semver.minor === needDomLTPre.minor && - c.semver.patch === needDomLTPre.patch) { - needDomLTPre = false - } - } - if (c.operator === '<' || c.operator === '<=') { - lower = lowerLT(lt, c, options) - if (lower === c && lower !== lt) { - return false - } - } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) { - return false - } - } - if (!c.operator && (lt || gt) && gtltComp !== 0) { - return false - } - } - - // if there was a < or >, and nothing in the dom, then must be false - // UNLESS it was limited by another range in the other direction. - // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0 - if (gt && hasDomLT && !lt && gtltComp !== 0) { - return false - } - - if (lt && hasDomGT && !gt && gtltComp !== 0) { - return false - } - - // we needed a prerelease range in a specific tuple, but didn't get one - // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, - // because it includes prereleases in the 1.2.3 tuple - if (needDomGTPre || needDomLTPre) { - return false - } - - return true -} - -// >=1.2.3 is lower than >1.2.3 -const higherGT = (a, b, options) => { - if (!a) { - return b - } - const comp = compare(a.semver, b.semver, options) - return comp > 0 ? a - : comp < 0 ? b - : b.operator === '>' && a.operator === '>=' ? b - : a -} - -// <=1.2.3 is higher than <1.2.3 -const lowerLT = (a, b, options) => { - if (!a) { - return b - } - const comp = compare(a.semver, b.semver, options) - return comp < 0 ? a - : comp > 0 ? b - : b.operator === '<' && a.operator === '<=' ? b - : a -} - -module.exports = subset diff --git a/node_modules/global-agent/node_modules/semver/ranges/to-comparators.js b/node_modules/global-agent/node_modules/semver/ranges/to-comparators.js deleted file mode 100644 index 6c8bc7e..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/to-comparators.js +++ /dev/null @@ -1,8 +0,0 @@ -const Range = require('../classes/range') - -// Mostly just for testing and legacy API reasons -const toComparators = (range, options) => - new Range(range, options).set - .map(comp => comp.map(c => c.value).join(' ').trim().split(' ')) - -module.exports = toComparators diff --git a/node_modules/global-agent/node_modules/semver/ranges/valid.js b/node_modules/global-agent/node_modules/semver/ranges/valid.js deleted file mode 100644 index 365f356..0000000 --- a/node_modules/global-agent/node_modules/semver/ranges/valid.js +++ /dev/null @@ -1,11 +0,0 @@ -const Range = require('../classes/range') -const validRange = (range, options) => { - try { - // Return '*' instead of '' so that truthiness works. - // This will throw if it's invalid anyway - return new Range(range, options).range || '*' - } catch (er) { - return null - } -} -module.exports = validRange diff --git a/node_modules/global-agent/package.json b/node_modules/global-agent/package.json deleted file mode 100644 index 85f31af..0000000 --- a/node_modules/global-agent/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "author": { - "email": "gajus@gajus.com", - "name": "Gajus Kuizinas", - "url": "http://gajus.com" - }, - "ava": { - "babel": { - "compileAsTests": [ - "test/helpers/**/*" - ] - }, - "files": [ - "test/global-agent/**/*" - ], - "require": [ - "@babel/register" - ] - }, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "description": "Global HTTP/HTTPS proxy configurable using environment variables.", - "devDependencies": { - "@ava/babel": "^1.0.1", - "@babel/cli": "^7.10.1", - "@babel/core": "^7.10.2", - "@babel/node": "^7.10.1", - "@babel/plugin-transform-flow-strip-types": "^7.10.1", - "@babel/preset-env": "^7.10.2", - "@babel/register": "^7.10.1", - "anyproxy": "^4.1.2", - "ava": "^3.8.2", - "axios": "^0.19.2", - "babel-plugin-istanbul": "^6.0.0", - "babel-plugin-transform-export-default-name": "^2.0.4", - "coveralls": "^3.1.0", - "eslint": "^7.1.0", - "eslint-config-canonical": "^20.0.5", - "flow-bin": "^0.125.1", - "flow-copy-source": "^2.0.9", - "get-port": "^5.1.1", - "got": "^11.1.4", - "husky": "^4.2.5", - "nyc": "^15.1.0", - "pem": "^1.14.4", - "request": "^2.88.2", - "semantic-release": "^17.0.8", - "sinon": "^9.0.2" - }, - "engines": { - "node": ">=10.0" - }, - "husky": { - "hooks": { - "pre-commit": "npm run lint && npm run test && npm run build" - } - }, - "keywords": [ - "http", - "global", - "proxy", - "agent" - ], - "license": "BSD-3-Clause", - "main": "./dist/index.js", - "name": "global-agent", - "nyc": { - "all": true, - "exclude": [ - "src/bin", - "src/queries/*.js" - ], - "include": [ - "src/**/*.js" - ], - "instrument": false, - "reporter": [ - "html", - "text-summary" - ], - "require": [ - "@babel/register" - ], - "silent": true, - "sourceMap": false - }, - "repository": { - "type": "git", - "url": "https://github.com/gajus/global-agent" - }, - "scripts": { - "build": "rm -fr ./dist && NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps && flow-copy-source src dist", - "create-readme": "gitdown ./.README/README.md --output-file ./README.md", - "dev": "NODE_ENV=development babel ./src --out-dir ./dist --copy-files --source-maps --watch", - "lint": "eslint ./src ./test && flow", - "test": "NODE_TLS_REJECT_UNAUTHORIZED=false NODE_ENV=test nyc ava --verbose --serial" - }, - "version": "3.0.0" -} diff --git a/node_modules/global-agent/src/Logger.js b/node_modules/global-agent/src/Logger.js deleted file mode 100644 index 166f1e4..0000000 --- a/node_modules/global-agent/src/Logger.js +++ /dev/null @@ -1,10 +0,0 @@ -// @flow - -import Roarr from 'roarr'; - -const Logger = Roarr - .child({ - package: 'global-agent', - }); - -export default Logger; diff --git a/node_modules/global-agent/src/classes/Agent.js b/node_modules/global-agent/src/classes/Agent.js deleted file mode 100644 index 801dd1f..0000000 --- a/node_modules/global-agent/src/classes/Agent.js +++ /dev/null @@ -1,212 +0,0 @@ -// @flow - -import { - serializeError, -} from 'serialize-error'; -import { - boolean, -} from 'boolean'; -import Logger from '../Logger'; -import type { - AgentType, - GetUrlProxyMethodType, - IsProxyConfiguredMethodType, - MustUrlUseProxyMethodType, - ProtocolType, -} from '../types'; - -const log = Logger.child({ - namespace: 'Agent', -}); - -let requestId = 0; - -class Agent { - defaultPort: number; - - protocol: ProtocolType; - - fallbackAgent: AgentType; - - isProxyConfigured: IsProxyConfiguredMethodType; - - mustUrlUseProxy: MustUrlUseProxyMethodType; - - getUrlProxy: GetUrlProxyMethodType; - - socketConnectionTimeout: number; - - constructor ( - isProxyConfigured: IsProxyConfiguredMethodType, - mustUrlUseProxy: MustUrlUseProxyMethodType, - getUrlProxy: GetUrlProxyMethodType, - fallbackAgent: AgentType, - socketConnectionTimeout: number, - ) { - this.fallbackAgent = fallbackAgent; - this.isProxyConfigured = isProxyConfigured; - this.mustUrlUseProxy = mustUrlUseProxy; - this.getUrlProxy = getUrlProxy; - this.socketConnectionTimeout = socketConnectionTimeout; - } - - addRequest (request: *, configuration: *) { - let requestUrl; - - // It is possible that addRequest was constructed for a proxied request already, e.g. - // "request" package does this when it detects that a proxy should be used - // https://github.com/request/request/blob/212570b6971a732b8dd9f3c73354bcdda158a737/request.js#L402 - // https://gist.github.com/gajus/e2074cd3b747864ffeaabbd530d30218 - if (request.path.startsWith('http://') || request.path.startsWith('https://')) { - requestUrl = request.path; - } else { - requestUrl = this.protocol + '//' + (configuration.hostname || configuration.host) + (configuration.port === 80 || configuration.port === 443 ? '' : ':' + configuration.port) + request.path; - } - - if (!this.isProxyConfigured()) { - log.trace({ - destination: requestUrl, - }, 'not proxying request; GLOBAL_AGENT.HTTP_PROXY is not configured'); - - // $FlowFixMe It appears that Flow is missing the method description. - this.fallbackAgent.addRequest(request, configuration); - - return; - } - - if (!this.mustUrlUseProxy(requestUrl)) { - log.trace({ - destination: requestUrl, - }, 'not proxying request; url matches GLOBAL_AGENT.NO_PROXY'); - - // $FlowFixMe It appears that Flow is missing the method description. - this.fallbackAgent.addRequest(request, configuration); - - return; - } - - const currentRequestId = requestId++; - - const proxy = this.getUrlProxy(requestUrl); - - if (this.protocol === 'http:') { - request.path = requestUrl; - - if (proxy.authorization) { - request.setHeader('proxy-authorization', 'Basic ' + Buffer.from(proxy.authorization).toString('base64')); - } - } - - log.trace({ - destination: requestUrl, - proxy: 'http://' + proxy.hostname + ':' + proxy.port, - requestId: currentRequestId, - }, 'proxying request'); - - request.on('error', (error) => { - log.error({ - error: serializeError(error), - }, 'request error'); - }); - - request.once('response', (response) => { - log.trace({ - headers: response.headers, - requestId: currentRequestId, - statusCode: response.statusCode, - }, 'proxying response'); - }); - - request.shouldKeepAlive = false; - - const connectionConfiguration = { - host: configuration.hostname || configuration.host, - port: configuration.port || 80, - proxy, - tls: {}, - }; - - // add optional tls options for https requests. - // @see https://nodejs.org/docs/latest-v12.x/api/https.html#https_https_request_url_options_callback : - // > The following additional options from tls.connect() - // > - https://nodejs.org/docs/latest-v12.x/api/tls.html#tls_tls_connect_options_callback - - // > are also accepted: - // > ca, cert, ciphers, clientCertEngine, crl, dhparam, ecdhCurve, honorCipherOrder, - // > key, passphrase, pfx, rejectUnauthorized, secureOptions, secureProtocol, servername, sessionIdContext. - if (this.protocol === 'https:') { - connectionConfiguration.tls = { - ca: configuration.ca, - cert: configuration.cert, - ciphers: configuration.ciphers, - clientCertEngine: configuration.clientCertEngine, - crl: configuration.crl, - dhparam: configuration.dhparam, - ecdhCurve: configuration.ecdhCurve, - honorCipherOrder: configuration.honorCipherOrder, - key: configuration.key, - passphrase: configuration.passphrase, - pfx: configuration.pfx, - rejectUnauthorized: configuration.rejectUnauthorized, - secureOptions: configuration.secureOptions, - secureProtocol: configuration.secureProtocol, - servername: configuration.servername || connectionConfiguration.host, - sessionIdContext: configuration.sessionIdContext, - }; - - // This is not ideal because there is no way to override this setting using `tls` configuration if `NODE_TLS_REJECT_UNAUTHORIZED=0`. - // However, popular HTTP clients (such as https://github.com/sindresorhus/got) come with pre-configured value for `rejectUnauthorized`, - // which makes it impossible to override that value globally and respect `rejectUnauthorized` for specific requests only. - // - // eslint-disable-next-line no-process-env - if (typeof process.env.NODE_TLS_REJECT_UNAUTHORIZED === 'string' && boolean(process.env.NODE_TLS_REJECT_UNAUTHORIZED) === false) { - connectionConfiguration.tls.rejectUnauthorized = false; - } - } - - // $FlowFixMe It appears that Flow is missing the method description. - this.createConnection(connectionConfiguration, (error, socket) => { - log.trace({ - target: connectionConfiguration, - }, 'connecting'); - - // @see https://github.com/nodejs/node/issues/5757#issuecomment-305969057 - if (socket) { - socket.setTimeout(this.socketConnectionTimeout, () => { - socket.destroy(); - }); - - socket.once('connect', () => { - log.trace({ - target: connectionConfiguration, - }, 'connected'); - - socket.setTimeout(0); - }); - - socket.once('secureConnect', () => { - log.trace({ - target: connectionConfiguration, - }, 'connected (secure)'); - - socket.setTimeout(0); - }); - } - - if (error) { - request.emit('error', error); - } else { - log.debug('created socket'); - - socket.on('error', (socketError) => { - log.error({ - error: serializeError(socketError), - }, 'socket error'); - }); - - request.onSocket(socket); - } - }); - } -} - -export default Agent; diff --git a/node_modules/global-agent/src/classes/HttpProxyAgent.js b/node_modules/global-agent/src/classes/HttpProxyAgent.js deleted file mode 100644 index 8b9b471..0000000 --- a/node_modules/global-agent/src/classes/HttpProxyAgent.js +++ /dev/null @@ -1,30 +0,0 @@ -// @flow - -import net from 'net'; -import type { - ConnectionCallbackType, - ConnectionConfigurationType, -} from '../types'; -import Agent from './Agent'; - -class HttpProxyAgent extends Agent { - // @see https://github.com/sindresorhus/eslint-plugin-unicorn/issues/169#issuecomment-486980290 - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor (...args: *) { - super(...args); - - this.protocol = 'http:'; - this.defaultPort = 80; - } - - createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) { - const socket = net.connect( - configuration.proxy.port, - configuration.proxy.hostname, - ); - - callback(null, socket); - } -} - -export default HttpProxyAgent; diff --git a/node_modules/global-agent/src/classes/HttpsProxyAgent.js b/node_modules/global-agent/src/classes/HttpsProxyAgent.js deleted file mode 100644 index 24d724f..0000000 --- a/node_modules/global-agent/src/classes/HttpsProxyAgent.js +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import net from 'net'; -import tls from 'tls'; -import type { - ConnectionCallbackType, - ConnectionConfigurationType, -} from '../types'; -import Agent from './Agent'; - -class HttpsProxyAgent extends Agent { - // eslint-disable-next-line unicorn/prevent-abbreviations - constructor (...args: *) { - super(...args); - - this.protocol = 'https:'; - this.defaultPort = 443; - } - - createConnection (configuration: ConnectionConfigurationType, callback: ConnectionCallbackType) { - const socket = net.connect( - configuration.proxy.port, - configuration.proxy.hostname, - ); - - socket.on('error', (error) => { - callback(error); - }); - - socket.once('data', () => { - const secureSocket = tls.connect({ - ...configuration.tls, - socket, - }); - - callback(null, secureSocket); - }); - - let connectMessage = ''; - - connectMessage += 'CONNECT ' + configuration.host + ':' + configuration.port + ' HTTP/1.1\r\n'; - connectMessage += 'Host: ' + configuration.host + ':' + configuration.port + '\r\n'; - - if (configuration.proxy.authorization) { - connectMessage += 'Proxy-Authorization: Basic ' + Buffer.from(configuration.proxy.authorization).toString('base64') + '\r\n'; - } - - connectMessage += '\r\n'; - - socket.write(connectMessage); - } -} - -export default HttpsProxyAgent; diff --git a/node_modules/global-agent/src/classes/index.js b/node_modules/global-agent/src/classes/index.js deleted file mode 100644 index 9e8418a..0000000 --- a/node_modules/global-agent/src/classes/index.js +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export {default as Agent} from './Agent'; -export {default as HttpProxyAgent} from './HttpProxyAgent'; -export {default as HttpsProxyAgent} from './HttpsProxyAgent'; diff --git a/node_modules/global-agent/src/errors.js b/node_modules/global-agent/src/errors.js deleted file mode 100644 index d93ba6f..0000000 --- a/node_modules/global-agent/src/errors.js +++ /dev/null @@ -1,15 +0,0 @@ -// @flow - -/* eslint-disable fp/no-class, fp/no-this */ - -import ExtendableError from 'es6-error'; - -export class UnexpectedStateError extends ExtendableError { - code: string; - - constructor (message: string, code: string = 'UNEXPECTED_STATE_ERROR') { - super(message); - - this.code = code; - } -} diff --git a/node_modules/global-agent/src/factories/createGlobalProxyAgent.js b/node_modules/global-agent/src/factories/createGlobalProxyAgent.js deleted file mode 100644 index d515a9d..0000000 --- a/node_modules/global-agent/src/factories/createGlobalProxyAgent.js +++ /dev/null @@ -1,197 +0,0 @@ -// @flow - -import http from 'http'; -import https from 'https'; -import { - boolean as parseBoolean, -} from 'boolean'; -import semver from 'semver'; -import Logger from '../Logger'; -import { - HttpProxyAgent, - HttpsProxyAgent, -} from '../classes'; -import { - UnexpectedStateError, -} from '../errors'; -import { - bindHttpMethod, - isUrlMatchingNoProxy, - parseProxyUrl, -} from '../utilities'; -import type { - ProxyAgentConfigurationInputType, - ProxyAgentConfigurationType, -} from '../types'; -import createProxyController from './createProxyController'; - -const httpGet = http.get; -const httpRequest = http.request; -const httpsGet = https.get; -const httpsRequest = https.request; - -const log = Logger.child({ - namespace: 'createGlobalProxyAgent', -}); - -const defaultConfigurationInput = { - environmentVariableNamespace: undefined, - forceGlobalAgent: undefined, - socketConnectionTimeout: 60000, -}; - -const omitUndefined = (subject) => { - const keys = Object.keys(subject); - - const result = {}; - - for (const key of keys) { - const value = subject[key]; - - if (value !== undefined) { - result[key] = value; - } - } - - return result; -}; - -const createConfiguration = (configurationInput: ProxyAgentConfigurationInputType): ProxyAgentConfigurationType => { - // eslint-disable-next-line no-process-env - const environment = process.env; - - const defaultConfiguration = { - environmentVariableNamespace: typeof environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE === 'string' ? environment.GLOBAL_AGENT_ENVIRONMENT_VARIABLE_NAMESPACE : 'GLOBAL_AGENT_', - forceGlobalAgent: typeof environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT === 'string' ? parseBoolean(environment.GLOBAL_AGENT_FORCE_GLOBAL_AGENT) : true, - socketConnectionTimeout: typeof environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT === 'string' ? Number.parseInt(environment.GLOBAL_AGENT_SOCKET_CONNECTION_TIMEOUT, 10) : defaultConfigurationInput.socketConnectionTimeout, - }; - - // $FlowFixMe - return { - ...defaultConfiguration, - ...omitUndefined(configurationInput), - }; -}; - -export default (configurationInput: ProxyAgentConfigurationInputType = defaultConfigurationInput) => { - const configuration = createConfiguration(configurationInput); - - const proxyController = createProxyController(); - - // eslint-disable-next-line no-process-env - proxyController.HTTP_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTP_PROXY'] || null; - - // eslint-disable-next-line no-process-env - proxyController.HTTPS_PROXY = process.env[configuration.environmentVariableNamespace + 'HTTPS_PROXY'] || null; - - // eslint-disable-next-line no-process-env - proxyController.NO_PROXY = process.env[configuration.environmentVariableNamespace + 'NO_PROXY'] || null; - - log.info({ - configuration, - state: proxyController, - }, 'global agent has been initialized'); - - const mustUrlUseProxy = (getProxy) => { - return (url) => { - if (!getProxy()) { - return false; - } - - if (!proxyController.NO_PROXY) { - return true; - } - - return !isUrlMatchingNoProxy(url, proxyController.NO_PROXY); - }; - }; - - const getUrlProxy = (getProxy) => { - return () => { - const proxy = getProxy(); - - if (!proxy) { - throw new UnexpectedStateError('HTTP(S) proxy must be configured.'); - } - - return parseProxyUrl(proxy); - }; - }; - - const getHttpProxy = () => { - return proxyController.HTTP_PROXY; - }; - - const BoundHttpProxyAgent = class extends HttpProxyAgent { - constructor () { - super( - () => { - return getHttpProxy(); - }, - mustUrlUseProxy(getHttpProxy), - getUrlProxy(getHttpProxy), - http.globalAgent, - configuration.socketConnectionTimeout, - ); - } - }; - - const httpAgent = new BoundHttpProxyAgent(); - - const getHttpsProxy = () => { - return proxyController.HTTPS_PROXY || proxyController.HTTP_PROXY; - }; - - const BoundHttpsProxyAgent = class extends HttpsProxyAgent { - constructor () { - super( - () => { - return getHttpsProxy(); - }, - mustUrlUseProxy(getHttpsProxy), - getUrlProxy(getHttpsProxy), - https.globalAgent, - configuration.socketConnectionTimeout, - ); - } - }; - - const httpsAgent = new BoundHttpsProxyAgent(); - - // Overriding globalAgent was added in v11.7. - // @see https://nodejs.org/uk/blog/release/v11.7.0/ - if (semver.gte(process.version, 'v11.7.0')) { - // @see https://github.com/facebook/flow/issues/7670 - // $FlowFixMe - http.globalAgent = httpAgent; - - // $FlowFixMe - https.globalAgent = httpsAgent; - } - - // The reason this logic is used in addition to overriding http(s).globalAgent - // is because there is no guarantee that we set http(s).globalAgent variable - // before an instance of http(s).Agent has been already constructed by someone, - // e.g. Stripe SDK creates instances of http(s).Agent at the top-level. - // @see https://github.com/gajus/global-agent/pull/13 - // - // We still want to override http(s).globalAgent when possible to enable logic - // in `bindHttpMethod`. - if (semver.gte(process.version, 'v10.0.0')) { - // $FlowFixMe - http.get = bindHttpMethod(httpGet, httpAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - http.request = bindHttpMethod(httpRequest, httpAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - https.get = bindHttpMethod(httpsGet, httpsAgent, configuration.forceGlobalAgent); - - // $FlowFixMe - https.request = bindHttpMethod(httpsRequest, httpsAgent, configuration.forceGlobalAgent); - } else { - log.warn('attempt to initialize global-agent in unsupported Node.js version was ignored'); - } - - return proxyController; -}; diff --git a/node_modules/global-agent/src/factories/createProxyController.js b/node_modules/global-agent/src/factories/createProxyController.js deleted file mode 100644 index 5805ec8..0000000 --- a/node_modules/global-agent/src/factories/createProxyController.js +++ /dev/null @@ -1,46 +0,0 @@ -// @flow - -import Logger from '../Logger'; - -type ProxyControllerType = {| - HTTP_PROXY: string | null, - HTTPS_PROXY: string | null, - NO_PROXY: string | null, -|}; - -const log = Logger.child({ - namespace: 'createProxyController', -}); - -const KNOWN_PROPERTY_NAMES = [ - 'HTTP_PROXY', - 'HTTPS_PROXY', - 'NO_PROXY', -]; - -export default (): ProxyControllerType => { - // eslint-disable-next-line fp/no-proxy - return new Proxy({ - HTTP_PROXY: null, - HTTPS_PROXY: null, - NO_PROXY: null, - }, { - set: (subject, name, value) => { - if (!KNOWN_PROPERTY_NAMES.includes(name)) { - throw new Error('Cannot set an unmapped property "' + name + '".'); - } - - subject[name] = value; - - log.info({ - change: { - name, - value, - }, - newConfiguration: subject, - }, 'configuration changed'); - - return true; - }, - }); -}; diff --git a/node_modules/global-agent/src/factories/index.js b/node_modules/global-agent/src/factories/index.js deleted file mode 100644 index c16eca6..0000000 --- a/node_modules/global-agent/src/factories/index.js +++ /dev/null @@ -1,4 +0,0 @@ -// @flow - -export {default as createGlobalProxyAgent} from './createGlobalProxyAgent'; -export {default as createProxyController} from './createProxyController'; diff --git a/node_modules/global-agent/src/index.js b/node_modules/global-agent/src/index.js deleted file mode 100644 index 14da1ba..0000000 --- a/node_modules/global-agent/src/index.js +++ /dev/null @@ -1,4 +0,0 @@ -// @flow - -export {bootstrap} from './routines'; -export {createGlobalProxyAgent} from './factories'; diff --git a/node_modules/global-agent/src/routines/bootstrap.js b/node_modules/global-agent/src/routines/bootstrap.js deleted file mode 100644 index 038feb3..0000000 --- a/node_modules/global-agent/src/routines/bootstrap.js +++ /dev/null @@ -1,25 +0,0 @@ -// @flow - -import Logger from '../Logger'; -import { - createGlobalProxyAgent, -} from '../factories'; -import type { - ProxyAgentConfigurationInputType, -} from '../types'; - -const log = Logger.child({ - namespace: 'bootstrap', -}); - -export default (configurationInput?: ProxyAgentConfigurationInputType): boolean => { - if (global.GLOBAL_AGENT) { - log.warn('found global.GLOBAL_AGENT; second attempt to bootstrap global-agent was ignored'); - - return false; - } - - global.GLOBAL_AGENT = createGlobalProxyAgent(configurationInput); - - return true; -}; diff --git a/node_modules/global-agent/src/routines/index.js b/node_modules/global-agent/src/routines/index.js deleted file mode 100644 index e47a8a0..0000000 --- a/node_modules/global-agent/src/routines/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// @flow - -export {default as bootstrap} from './bootstrap'; diff --git a/node_modules/global-agent/src/types.js b/node_modules/global-agent/src/types.js deleted file mode 100644 index e2f1a99..0000000 --- a/node_modules/global-agent/src/types.js +++ /dev/null @@ -1,66 +0,0 @@ -// @flow - -import { - Socket, -} from 'net'; -import { - TLSSocket, -} from 'tls'; -import { - Agent as HttpAgent, -} from 'http'; -import { - Agent as HttpsAgent, -} from 'https'; - -export type ProxyConfigurationType = {| - +authorization: string, - +hostname: string, - +port: number, -|}; - -export type TlsConfigurationType = {| - +ca?: string, - +cert?: string, - +ciphers?: string, - +clientCertEngine?: string, - +crl?: string, - +dhparam?: string, - +ecdhCurve?: string, - +honorCipherOrder?: boolean, - +key?: string, - +passphrase?: string, - +pfx?: string, - +rejectUnauthorized?: boolean, - +secureOptions?: number, - +secureProtocol?: string, - +servername?: string, - +sessionIdContext?: string, -|}; - -export type ConnectionConfigurationType = {| - +host: string, - +port: number, - +tls?: TlsConfigurationType, - +proxy: ProxyConfigurationType, -|}; - -export type ConnectionCallbackType = (error: Error | null, socket?: Socket | TLSSocket) => void; - -export type AgentType = HttpAgent | HttpsAgent; -export type IsProxyConfiguredMethodType = () => boolean; -export type MustUrlUseProxyMethodType = (url: string) => boolean; -export type GetUrlProxyMethodType = (url: string) => ProxyConfigurationType; -export type ProtocolType = 'http:' | 'https:'; - -export type ProxyAgentConfigurationInputType = {| - +environmentVariableNamespace?: string, - +forceGlobalAgent?: boolean, - +socketConnectionTimeout?: number, -|}; - -export type ProxyAgentConfigurationType = {| - +environmentVariableNamespace: string, - +forceGlobalAgent: boolean, - +socketConnectionTimeout: number, -|}; diff --git a/node_modules/global-agent/src/utilities/bindHttpMethod.js b/node_modules/global-agent/src/utilities/bindHttpMethod.js deleted file mode 100644 index f8859b5..0000000 --- a/node_modules/global-agent/src/utilities/bindHttpMethod.js +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import http from 'http'; -import https from 'https'; - -type AgentType = http.Agent | https.Agent; - -// eslint-disable-next-line flowtype/no-weak-types -export default (originalMethod: Function, agent: AgentType, forceGlobalAgent: boolean) => { - // eslint-disable-next-line unicorn/prevent-abbreviations - return (...args: *) => { - let url; - let options; - let callback; - - if (typeof args[0] === 'string' || args[0] instanceof URL) { - url = args[0]; - - if (typeof args[1] === 'function') { - options = {}; - callback = args[1]; - } else { - options = { - ...args[1], - }; - callback = args[2]; - } - } else { - options = { - ...args[0], - }; - callback = args[1]; - } - - if (forceGlobalAgent) { - options.agent = agent; - } else { - if (!options.agent) { - options.agent = agent; - } - - if (options.agent === http.globalAgent || options.agent === https.globalAgent) { - options.agent = agent; - } - } - - if (url) { - // $FlowFixMe - return originalMethod(url, options, callback); - } else { - return originalMethod(options, callback); - } - }; -}; diff --git a/node_modules/global-agent/src/utilities/index.js b/node_modules/global-agent/src/utilities/index.js deleted file mode 100644 index 3412387..0000000 --- a/node_modules/global-agent/src/utilities/index.js +++ /dev/null @@ -1,5 +0,0 @@ -// @flow - -export {default as bindHttpMethod} from './bindHttpMethod'; -export {default as isUrlMatchingNoProxy} from './isUrlMatchingNoProxy'; -export {default as parseProxyUrl} from './parseProxyUrl'; diff --git a/node_modules/global-agent/src/utilities/isUrlMatchingNoProxy.js b/node_modules/global-agent/src/utilities/isUrlMatchingNoProxy.js deleted file mode 100644 index f2de584..0000000 --- a/node_modules/global-agent/src/utilities/isUrlMatchingNoProxy.js +++ /dev/null @@ -1,37 +0,0 @@ -// @flow - -import { - parse as parseUrl, -} from 'url'; -import matcher from 'matcher'; -import { - UnexpectedStateError, -} from '../errors'; - -export default (subjectUrl: string, noProxy: string) => { - const subjectUrlTokens = parseUrl(subjectUrl); - - const rules = noProxy.split(/[\s,]+/); - - for (const rule of rules) { - const ruleMatch = rule - .replace(/^(?<leadingDot>\.)/, '*') - .match(/^(?<hostname>.+?)(?::(?<port>\d+))?$/); - - if (!ruleMatch || !ruleMatch.groups) { - throw new UnexpectedStateError('Invalid NO_PROXY pattern.'); - } - - if (!ruleMatch.groups.hostname) { - throw new UnexpectedStateError('NO_PROXY entry pattern must include hostname. Use * to match any hostname.'); - } - - const hostnameIsMatch = matcher.isMatch(subjectUrlTokens.hostname, ruleMatch.groups.hostname); - - if (hostnameIsMatch && (!ruleMatch.groups || !ruleMatch.groups.port || subjectUrlTokens.port && subjectUrlTokens.port === ruleMatch.groups.port)) { - return true; - } - } - - return false; -}; diff --git a/node_modules/global-agent/src/utilities/parseProxyUrl.js b/node_modules/global-agent/src/utilities/parseProxyUrl.js deleted file mode 100644 index e2e9a6b..0000000 --- a/node_modules/global-agent/src/utilities/parseProxyUrl.js +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import { - parse as parseUrl, -} from 'url'; -import { - UnexpectedStateError, -} from '../errors'; - -export default (url: string) => { - const urlTokens = parseUrl(url); - - if (urlTokens.query !== null) { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have query.'); - } - - if (urlTokens.hash !== null) { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL must not have hash.'); - } - - if (urlTokens.protocol !== 'http:') { - throw new UnexpectedStateError('Unsupported `GLOBAL_AGENT.HTTP_PROXY` configuration value: URL protocol must be "http:".'); - } - - let port = 80; - - if (urlTokens.port) { - port = Number.parseInt(urlTokens.port, 10); - } - - return { - authorization: urlTokens.auth || null, - hostname: urlTokens.hostname, - port, - }; -}; |