Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclaudiahdz <cghr1990@gmail.com>2020-03-31 23:09:27 +0300
committerisaacs <i@izs.me>2020-05-08 04:12:58 +0300
commite97662e25f92840f7e8a683f8e2cda2f5874d945 (patch)
tree121568f55a85593e09e6e0e98b7c3b9bc09b086f /node_modules/agentkeepalive
parent29be1c9d1845d36c6eb2ef9f2c0ec2132066bb0f (diff)
chore: rm libcipm
Diffstat (limited to 'node_modules/agentkeepalive')
-rw-r--r--node_modules/agentkeepalive/History.md170
-rw-r--r--node_modules/agentkeepalive/README.md248
-rw-r--r--node_modules/agentkeepalive/browser.js5
-rw-r--r--node_modules/agentkeepalive/index.d.ts43
-rw-r--r--node_modules/agentkeepalive/index.js4
-rw-r--r--node_modules/agentkeepalive/lib/_http_agent.js416
-rw-r--r--node_modules/agentkeepalive/lib/agent.js133
-rw-r--r--node_modules/agentkeepalive/lib/https_agent.js42
-rw-r--r--node_modules/agentkeepalive/package.json83
9 files changed, 0 insertions, 1144 deletions
diff --git a/node_modules/agentkeepalive/History.md b/node_modules/agentkeepalive/History.md
deleted file mode 100644
index d5d14d8b4..000000000
--- a/node_modules/agentkeepalive/History.md
+++ /dev/null
@@ -1,170 +0,0 @@
-
-3.5.2 / 2018-10-19
-==================
-
-**fixes**
- * [[`5751fc1`](http://github.com/node-modules/agentkeepalive/commit/5751fc1180ed6544602c681ffbd08ca66a0cb12c)] - fix: sockLen being miscalculated when removing sockets (#60) (Ehden Sinai <<cixel@users.noreply.github.com>>)
-
-3.5.1 / 2018-07-31
-==================
-
-**fixes**
- * [[`495f1ab`](http://github.com/node-modules/agentkeepalive/commit/495f1ab625d43945d72f68096b97db723d4f0657)] - fix: add the lost npm files (#66) (Henry Zhuang <<zhuanghengfei@gmail.com>>)
-
-3.5.0 / 2018-07-31
-==================
-
-**features**
- * [[`16f5aea`](http://github.com/node-modules/agentkeepalive/commit/16f5aeadfda57f1c602652f1472a63cc83cd05bf)] - feat: add typing define. (#65) (Henry Zhuang <<zhuanghengfei@gmail.com>>)
-
-**others**
- * [[`28fa062`](http://github.com/node-modules/agentkeepalive/commit/28fa06246fb5103f88ebeeb8563757a9078b8157)] - docs: add "per host" to description of maxFreeSockets (tony-gutierrez <<tony.gutierrez@bluefletch.com>>)
- * [[`7df2577`](http://github.com/node-modules/agentkeepalive/commit/7df25774f00a1031ca4daad2878a17e0539072a2)] - test: run test on node 10 (#63) (fengmk2 <<fengmk2@gmail.com>>)
-
-3.4.1 / 2018-03-08
-==================
-
-**fixes**
- * [[`4d3a3b1`](http://github.com/node-modules/agentkeepalive/commit/4d3a3b1f7b16595febbbd39eeed72b2663549014)] - fix: Handle ipv6 addresses in host-header correctly with TLS (#53) (Mattias Holmlund <<u376@m1.holmlund.se>>)
-
-**others**
- * [[`55a7a5c`](http://github.com/node-modules/agentkeepalive/commit/55a7a5cd33e97f9a8370083dcb041c5552f10ac9)] - test: stop timer after test end (fengmk2 <<fengmk2@gmail.com>>)
-
-3.4.0 / 2018-02-27
-==================
-
-**features**
- * [[`bc7cadb`](http://github.com/node-modules/agentkeepalive/commit/bc7cadb30ecd2071e2b341ac53ae1a2b8155c43d)] - feat: use socket custom freeSocketKeepAliveTimeout first (#59) (fengmk2 <<fengmk2@gmail.com>>)
-
-**others**
- * [[`138eda8`](http://github.com/node-modules/agentkeepalive/commit/138eda81e10b632aaa87bea0cb66d8667124c4e8)] - doc: fix `keepAliveMsecs` params description (#55) (Hongcai Deng <<admin@dhchouse.com>>)
-
-3.3.0 / 2017-06-20
-==================
-
- * feat: add statusChanged getter (#51)
- * chore: format License
-
-3.2.0 / 2017-06-10
-==================
-
- * feat: add expiring active sockets
- * test: add node 8 (#49)
-
-3.1.0 / 2017-02-20
-==================
-
- * feat: timeout support humanize ms (#48)
-
-3.0.0 / 2016-12-20
-==================
-
- * fix: emit agent socket close event
- * test: add remove excess calls to removeSocket
- * test: use egg-ci
- * test: refactor test with eslint rules
- * feat: merge _http_agent.js from 7.2.1
-
-2.2.0 / 2016-06-26
-==================
-
- * feat: Add browser shim (noop) for isomorphic use. (#39)
- * chore: add security check badge
-
-2.1.1 / 2016-04-06
-==================
-
- * https: fix ssl socket leak when keepalive is used
- * chore: remove circle ci image
-
-2.1.0 / 2016-04-02
-==================
-
- * fix: opened sockets number overflow maxSockets
-
-2.0.5 / 2016-03-16
-==================
-
- * fix: pick _evictSession to httpsAgent
-
-2.0.4 / 2016-03-13
-==================
-
- * test: add Circle ci
- * test: add appveyor ci build
- * refactor: make sure only one error listener
- * chore: use codecov
- * fix: handle idle socket error
- * test: run on more node versions
-
-2.0.3 / 2015-08-03
-==================
-
- * fix: add default error handler to avoid Unhandled error event throw
-
-2.0.2 / 2015-04-25
-==================
-
- * fix: remove socket from freeSockets on 'timeout' (@pmalouin)
-
-2.0.1 / 2015-04-19
-==================
-
- * fix: add timeoutSocketCount to getCurrentStatus()
- * feat(getCurrentStatus): add getCurrentStatus
-
-2.0.0 / 2015-04-01
-==================
-
- * fix: socket.destroyed always be undefined on 0.10.x
- * Make it compatible with node v0.10.x (@lattmann)
-
-1.2.1 / 2015-03-23
-==================
-
- * patch from iojs: don't overwrite servername option
- * patch commits from joyent/node
- * add max sockets test case
- * add nagle algorithm delayed link
-
-1.2.0 / 2014-09-02
-==================
-
- * allow set keepAliveTimeout = 0
- * support timeout on working socket. fixed #6
-
-1.1.0 / 2014-08-28
-==================
-
- * add some socket counter for deep monitor
-
-1.0.0 / 2014-08-13
-==================
-
- * update _http_agent, only support 0.11+, only support node 0.11.0+
-
-0.2.2 / 2013-11-19
-==================
-
- * support node 0.8 and node 0.10
-
-0.2.1 / 2013-11-08
-==================
-
- * fix socket does not timeout bug, it will hang on life, must use 0.2.x on node 0.11
-
-0.2.0 / 2013-11-06
-==================
-
- * use keepalive agent on node 0.11+ impl
-
-0.1.5 / 2013-06-24
-==================
-
- * support coveralls
- * add node 0.10 test
- * add 0.8.22 original https.js
- * add original http.js module to diff
- * update jscover
- * mv pem to fixtures
- * add https agent usage
diff --git a/node_modules/agentkeepalive/README.md b/node_modules/agentkeepalive/README.md
deleted file mode 100644
index 823145821..000000000
--- a/node_modules/agentkeepalive/README.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# agentkeepalive
-
-[![NPM version][npm-image]][npm-url]
-[![build status][travis-image]][travis-url]
-[![Appveyor status][appveyor-image]][appveyor-url]
-[![Test coverage][codecov-image]][codecov-url]
-[![David deps][david-image]][david-url]
-[![Known Vulnerabilities][snyk-image]][snyk-url]
-[![npm download][download-image]][download-url]
-
-[npm-image]: https://img.shields.io/npm/v/agentkeepalive.svg?style=flat
-[npm-url]: https://npmjs.org/package/agentkeepalive
-[travis-image]: https://img.shields.io/travis/node-modules/agentkeepalive.svg?style=flat
-[travis-url]: https://travis-ci.org/node-modules/agentkeepalive
-[appveyor-image]: https://ci.appveyor.com/api/projects/status/k7ct4s47di6m5uy2?svg=true
-[appveyor-url]: https://ci.appveyor.com/project/fengmk2/agentkeepalive
-[codecov-image]: https://codecov.io/gh/node-modules/agentkeepalive/branch/master/graph/badge.svg
-[codecov-url]: https://codecov.io/gh/node-modules/agentkeepalive
-[david-image]: https://img.shields.io/david/node-modules/agentkeepalive.svg?style=flat
-[david-url]: https://david-dm.org/node-modules/agentkeepalive
-[snyk-image]: https://snyk.io/test/npm/agentkeepalive/badge.svg?style=flat-square
-[snyk-url]: https://snyk.io/test/npm/agentkeepalive
-[download-image]: https://img.shields.io/npm/dm/agentkeepalive.svg?style=flat-square
-[download-url]: https://npmjs.org/package/agentkeepalive
-
-The Node.js's missing `keep alive` `http.Agent`. Support `http` and `https`.
-
-## What's different from original `http.Agent`?
-
-- `keepAlive=true` by default
-- Disable Nagle's algorithm: `socket.setNoDelay(true)`
-- Add free socket timeout: avoid long time inactivity socket leak in the free-sockets queue.
-- Add active socket timeout: avoid long time inactivity socket leak in the active-sockets queue.
-
-## Install
-
-```bash
-$ npm install agentkeepalive --save
-```
-
-## new Agent([options])
-
-* `options` {Object} Set of configurable options to set on the agent.
- Can have the following fields:
- * `keepAlive` {Boolean} Keep sockets around in a pool to be used by
- other requests in the future. Default = `true`.
- * `keepAliveMsecs` {Number} When using the keepAlive option, specifies the initial delay
- for TCP Keep-Alive packets. Ignored when the keepAlive option is false or undefined. Defaults to 1000.
- Default = `1000`. Only relevant if `keepAlive` is set to `true`.
- * `freeSocketKeepAliveTimeout`: {Number} Sets the free socket to timeout
- after `freeSocketKeepAliveTimeout` milliseconds of inactivity on the free socket.
- Default is `15000`.
- Only relevant if `keepAlive` is set to `true`.
- * `timeout`: {Number} Sets the working socket to timeout
- after `timeout` milliseconds of inactivity on the working socket.
- Default is `freeSocketKeepAliveTimeout * 2`.
- * `maxSockets` {Number} Maximum number of sockets to allow per
- host. Default = `Infinity`.
- * `maxFreeSockets` {Number} Maximum number of sockets (per host) to leave open
- in a free state. Only relevant if `keepAlive` is set to `true`.
- Default = `256`.
- * `socketActiveTTL` {Number} Sets the socket active time to live, even if it's in use.
- If not setted the behaviour continues the same (the socket will be released only when free)
- Default = `null`.
-
-## Usage
-
-```js
-const http = require('http');
-const Agent = require('agentkeepalive');
-
-const keepaliveAgent = new Agent({
- maxSockets: 100,
- maxFreeSockets: 10,
- timeout: 60000,
- freeSocketKeepAliveTimeout: 30000, // free socket keepalive for 30 seconds
-});
-
-const options = {
- host: 'cnodejs.org',
- port: 80,
- path: '/',
- method: 'GET',
- agent: keepaliveAgent,
-};
-
-const req = http.request(options, res => {
- console.log('STATUS: ' + res.statusCode);
- console.log('HEADERS: ' + JSON.stringify(res.headers));
- res.setEncoding('utf8');
- res.on('data', function (chunk) {
- console.log('BODY: ' + chunk);
- });
-});
-req.on('error', e => {
- console.log('problem with request: ' + e.message);
-});
-req.end();
-
-setTimeout(() => {
- if (keepaliveAgent.statusChanged) {
- console.log('[%s] agent status changed: %j', Date(), keepaliveAgent.getCurrentStatus());
- }
-}, 2000);
-
-```
-
-### `getter agent.statusChanged`
-
-counters have change or not after last checkpoint.
-
-### `agent.getCurrentStatus()`
-
-`agent.getCurrentStatus()` will return a object to show the status of this agent:
-
-```js
-{
- createSocketCount: 10,
- closeSocketCount: 5,
- timeoutSocketCount: 0,
- requestCount: 5,
- freeSockets: { 'localhost:57479:': 3 },
- sockets: { 'localhost:57479:': 5 },
- requests: {}
-}
-```
-
-### Support `https`
-
-```js
-const https = require('https');
-const HttpsAgent = require('agentkeepalive').HttpsAgent;
-
-const keepaliveAgent = new HttpsAgent();
-// https://www.google.com/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8
-const options = {
- host: 'www.google.com',
- port: 443,
- path: '/search?q=nodejs&sugexp=chrome,mod=12&sourceid=chrome&ie=UTF-8',
- method: 'GET',
- agent: keepaliveAgent,
-};
-
-const req = https.request(options, res => {
- console.log('STATUS: ' + res.statusCode);
- console.log('HEADERS: ' + JSON.stringify(res.headers));
- res.setEncoding('utf8');
- res.on('data', chunk => {
- console.log('BODY: ' + chunk);
- });
-});
-
-req.on('error', e => {
- console.log('problem with request: ' + e.message);
-});
-req.end();
-
-setTimeout(() => {
- console.log('agent status: %j', keepaliveAgent.getCurrentStatus());
-}, 2000);
-```
-
-## [Benchmark](https://github.com/node-modules/agentkeepalive/tree/master/benchmark)
-
-run the benchmark:
-
-```bash
-cd benchmark
-sh start.sh
-```
-
-Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
-
-node@v0.8.9
-
-50 maxSockets, 60 concurrent, 1000 requests per concurrent, 5ms delay
-
-Keep alive agent (30 seconds):
-
-```js
-Transactions: 60000 hits
-Availability: 100.00 %
-Elapsed time: 29.70 secs
-Data transferred: 14.88 MB
-Response time: 0.03 secs
-Transaction rate: 2020.20 trans/sec
-Throughput: 0.50 MB/sec
-Concurrency: 59.84
-Successful transactions: 60000
-Failed transactions: 0
-Longest transaction: 0.15
-Shortest transaction: 0.01
-```
-
-Normal agent:
-
-```js
-Transactions: 60000 hits
-Availability: 100.00 %
-Elapsed time: 46.53 secs
-Data transferred: 14.88 MB
-Response time: 0.05 secs
-Transaction rate: 1289.49 trans/sec
-Throughput: 0.32 MB/sec
-Concurrency: 59.81
-Successful transactions: 60000
-Failed transactions: 0
-Longest transaction: 0.45
-Shortest transaction: 0.00
-```
-
-Socket created:
-
-```
-[proxy.js:120000] keepalive, 50 created, 60000 requestFinished, 1200 req/socket, 0 requests, 0 sockets, 0 unusedSockets, 50 timeout
-{" <10ms":662," <15ms":17825," <20ms":20552," <30ms":17646," <40ms":2315," <50ms":567," <100ms":377," <150ms":56," <200ms":0," >=200ms+":0}
-----------------------------------------------------------------
-[proxy.js:120000] normal , 53866 created, 84260 requestFinished, 1.56 req/socket, 0 requests, 0 sockets
-{" <10ms":75," <15ms":1112," <20ms":10947," <30ms":32130," <40ms":8228," <50ms":3002," <100ms":4274," <150ms":181," <200ms":18," >=200ms+":33}
-```
-
-## License
-
-```
-(The MIT License)
-
-Copyright(c) node-modules and other contributors.
-Copyright(c) 2012 - 2015 fengmk2 <fengmk2@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-```
diff --git a/node_modules/agentkeepalive/browser.js b/node_modules/agentkeepalive/browser.js
deleted file mode 100644
index 29c9398aa..000000000
--- a/node_modules/agentkeepalive/browser.js
+++ /dev/null
@@ -1,5 +0,0 @@
-module.exports = noop;
-module.exports.HttpsAgent = noop;
-
-// Noop function for browser since native api's don't use agents.
-function noop () {}
diff --git a/node_modules/agentkeepalive/index.d.ts b/node_modules/agentkeepalive/index.d.ts
deleted file mode 100644
index c11636f7c..000000000
--- a/node_modules/agentkeepalive/index.d.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-declare module "agentkeepalive" {
- import * as http from 'http';
- import * as https from 'https';
-
- interface AgentStatus {
- createSocketCount: number,
- createSocketErrorCount: number,
- closeSocketCount: number,
- errorSocketCount: number,
- timeoutSocketCount: number,
- requestCount: number,
- freeSockets: object,
- sockets: object,
- requests: object,
- }
-
- interface HttpOptions extends http.AgentOptions {
- freeSocketKeepAliveTimeout?: number;
- timeout?: number;
- socketActiveTTL?: number;
- }
-
- interface HttpsOptions extends https.AgentOptions {
- freeSocketKeepAliveTimeout?: number;
- timeout?: number;
- socketActiveTTL?: number;
- }
-
- class internal extends http.Agent {
- constructor(opts?: HttpOptions);
- readonly statusChanged: boolean;
- createSocket(req: http.IncomingMessage, options: http.RequestOptions, cb: Function): void;
- getCurrentStatus(): AgentStatus;
- }
-
- namespace internal {
- export class HttpsAgent extends internal {
- constructor(opts?: HttpsOptions);
- }
- }
-
- export = internal;
-}
diff --git a/node_modules/agentkeepalive/index.js b/node_modules/agentkeepalive/index.js
deleted file mode 100644
index 6138131a9..000000000
--- a/node_modules/agentkeepalive/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-
-module.exports = require('./lib/agent');
-module.exports.HttpsAgent = require('./lib/https_agent');
diff --git a/node_modules/agentkeepalive/lib/_http_agent.js b/node_modules/agentkeepalive/lib/_http_agent.js
deleted file mode 100644
index c324b7f87..000000000
--- a/node_modules/agentkeepalive/lib/_http_agent.js
+++ /dev/null
@@ -1,416 +0,0 @@
-// Copyright Joyent, Inc. and other Node contributors.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a
-// copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to permit
-// persons to whom the Software is furnished to do so, subject to the
-// following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-// USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-// patch from https://github.com/nodejs/node/blob/v7.2.1/lib/_http_agent.js
-
-'use strict';
-
-const net = require('net');
-const util = require('util');
-const EventEmitter = require('events');
-const debug = util.debuglog('http');
-
-// New Agent code.
-
-// The largest departure from the previous implementation is that
-// an Agent instance holds connections for a variable number of host:ports.
-// Surprisingly, this is still API compatible as far as third parties are
-// concerned. The only code that really notices the difference is the
-// request object.
-
-// Another departure is that all code related to HTTP parsing is in
-// ClientRequest.onSocket(). The Agent is now *strictly*
-// concerned with managing a connection pool.
-
-function Agent(options) {
- if (!(this instanceof Agent))
- return new Agent(options);
-
- EventEmitter.call(this);
-
- var self = this;
-
- self.defaultPort = 80;
- self.protocol = 'http:';
-
- self.options = util._extend({}, options);
-
- // don't confuse net and make it think that we're connecting to a pipe
- self.options.path = null;
- self.requests = {};
- self.sockets = {};
- self.freeSockets = {};
- self.keepAliveMsecs = self.options.keepAliveMsecs || 1000;
- self.keepAlive = self.options.keepAlive || false;
- self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets;
- self.maxFreeSockets = self.options.maxFreeSockets || 256;
-
- // [patch start]
- // free keep-alive socket timeout. By default free socket do not have a timeout.
- self.freeSocketKeepAliveTimeout = self.options.freeSocketKeepAliveTimeout || 0;
- // working socket timeout. By default working socket do not have a timeout.
- self.timeout = self.options.timeout || 0;
- // the socket active time to live, even if it's in use
- this.socketActiveTTL = this.options.socketActiveTTL || null;
- // [patch end]
-
- self.on('free', function(socket, options) {
- var name = self.getName(options);
- debug('agent.on(free)', name);
-
- if (socket.writable &&
- self.requests[name] && self.requests[name].length) {
- // [patch start]
- debug('continue handle next request');
- // [patch end]
- self.requests[name].shift().onSocket(socket);
- if (self.requests[name].length === 0) {
- // don't leak
- delete self.requests[name];
- }
- } else {
- // If there are no pending requests, then put it in
- // the freeSockets pool, but only if we're allowed to do so.
- var req = socket._httpMessage;
- if (req &&
- req.shouldKeepAlive &&
- socket.writable &&
- self.keepAlive) {
- var freeSockets = self.freeSockets[name];
- var freeLen = freeSockets ? freeSockets.length : 0;
- var count = freeLen;
- if (self.sockets[name])
- count += self.sockets[name].length;
-
- if (count > self.maxSockets || freeLen >= self.maxFreeSockets) {
- socket.destroy();
- } else {
- freeSockets = freeSockets || [];
- self.freeSockets[name] = freeSockets;
- socket.setKeepAlive(true, self.keepAliveMsecs);
- socket.unref();
- socket._httpMessage = null;
- self.removeSocket(socket, options);
- freeSockets.push(socket);
-
- // [patch start]
- // Add a default error handler to avoid Unhandled 'error' event throw on idle socket
- // https://github.com/node-modules/agentkeepalive/issues/25
- // https://github.com/nodejs/node/pull/4482 (fixed in >= 4.4.0 and >= 5.4.0)
- if (socket.listeners('error').length === 0) {
- socket.once('error', freeSocketErrorListener);
- }
- // set free keepalive timer
- // try to use socket custom freeSocketKeepAliveTimeout first
- const freeSocketKeepAliveTimeout = socket.freeSocketKeepAliveTimeout || self.freeSocketKeepAliveTimeout;
- socket.setTimeout(freeSocketKeepAliveTimeout);
- debug(`push to free socket queue and wait for ${freeSocketKeepAliveTimeout}ms`);
- // [patch end]
- }
- } else {
- socket.destroy();
- }
- }
- });
-}
-
-util.inherits(Agent, EventEmitter);
-exports.Agent = Agent;
-
-// [patch start]
-function freeSocketErrorListener(err) {
- var socket = this;
- debug('SOCKET ERROR on FREE socket:', err.message, err.stack);
- socket.destroy();
- socket.emit('agentRemove');
-}
-// [patch end]
-
-Agent.defaultMaxSockets = Infinity;
-
-Agent.prototype.createConnection = net.createConnection;
-
-// Get the key for a given set of request options
-Agent.prototype.getName = function getName(options) {
- var name = options.host || 'localhost';
-
- name += ':';
- if (options.port)
- name += options.port;
-
- name += ':';
- if (options.localAddress)
- name += options.localAddress;
-
- // Pacify parallel/test-http-agent-getname by only appending
- // the ':' when options.family is set.
- if (options.family === 4 || options.family === 6)
- name += ':' + options.family;
-
- return name;
-};
-
-// [patch start]
-function handleSocketCreation(req) {
- return function(err, newSocket) {
- if (err) {
- process.nextTick(function() {
- req.emit('error', err);
- });
- return;
- }
- req.onSocket(newSocket);
- }
-}
-// [patch end]
-
-Agent.prototype.addRequest = function addRequest(req, options, port/*legacy*/,
- localAddress/*legacy*/) {
- // Legacy API: addRequest(req, host, port, localAddress)
- if (typeof options === 'string') {
- options = {
- host: options,
- port,
- localAddress
- };
- }
-
- options = util._extend({}, options);
- options = util._extend(options, this.options);
-
- if (!options.servername)
- options.servername = calculateServerName(options, req);
-
- var name = this.getName(options);
- if (!this.sockets[name]) {
- this.sockets[name] = [];
- }
-
- var freeLen = this.freeSockets[name] ? this.freeSockets[name].length : 0;
- var sockLen = freeLen + this.sockets[name].length;
-
- if (freeLen) {
- // we have a free socket, so use that.
- var socket = this.freeSockets[name].shift();
- debug('have free socket');
-
- // [patch start]
- // remove free socket error event handler
- socket.removeListener('error', freeSocketErrorListener);
- // restart the default timer
- socket.setTimeout(this.timeout);
-
- if (this.socketActiveTTL && Date.now() - socket.createdTime > this.socketActiveTTL) {
- debug(`socket ${socket.createdTime} expired`);
- socket.destroy();
- return this.createSocket(req, options, handleSocketCreation(req));
- }
- // [patch end]
-
- // don't leak
- if (!this.freeSockets[name].length)
- delete this.freeSockets[name];
-
- socket.ref();
- req.onSocket(socket);
- this.sockets[name].push(socket);
- } else if (sockLen < this.maxSockets) {
- debug('call onSocket', sockLen, freeLen);
- // If we are under maxSockets create a new one.
- // [patch start]
- this.createSocket(req, options, handleSocketCreation(req));
- // [patch end]
- } else {
- debug('wait for socket');
- // We are over limit so we'll add it to the queue.
- if (!this.requests[name]) {
- this.requests[name] = [];
- }
- this.requests[name].push(req);
- }
-};
-
-Agent.prototype.createSocket = function createSocket(req, options, cb) {
- var self = this;
- options = util._extend({}, options);
- options = util._extend(options, self.options);
-
- if (!options.servername)
- options.servername = calculateServerName(options, req);
-
- var name = self.getName(options);
- options._agentKey = name;
-
- debug('createConnection', name, options);
- options.encoding = null;
- var called = false;
- const newSocket = self.createConnection(options, oncreate);
- // [patch start]
- if (newSocket) {
- oncreate(null, Object.assign(newSocket, { createdTime: Date.now() }));
- }
- // [patch end]
- function oncreate(err, s) {
- if (called)
- return;
- called = true;
- if (err)
- return cb(err);
- if (!self.sockets[name]) {
- self.sockets[name] = [];
- }
- self.sockets[name].push(s);
- debug('sockets', name, self.sockets[name].length);
-
- function onFree() {
- self.emit('free', s, options);
- }
- s.on('free', onFree);
-
- function onClose(err) {
- debug('CLIENT socket onClose');
- // This is the only place where sockets get removed from the Agent.
- // If you want to remove a socket from the pool, just close it.
- // All socket errors end in a close event anyway.
- self.removeSocket(s, options);
-
- // [patch start]
- self.emit('close');
- // [patch end]
- }
- s.on('close', onClose);
-
- // [patch start]
- // start socket timeout handler
- function onTimeout() {
- debug('CLIENT socket onTimeout');
- s.destroy();
- // Remove it from freeSockets immediately to prevent new requests from being sent through this socket.
- self.removeSocket(s, options);
- self.emit('timeout');
- }
- s.on('timeout', onTimeout);
- // set the default timer
- s.setTimeout(self.timeout);
- // [patch end]
-
- function onRemove() {
- // We need this function for cases like HTTP 'upgrade'
- // (defined by WebSockets) where we need to remove a socket from the
- // pool because it'll be locked up indefinitely
- debug('CLIENT socket onRemove');
- self.removeSocket(s, options);
- s.removeListener('close', onClose);
- s.removeListener('free', onFree);
- s.removeListener('agentRemove', onRemove);
-
- // [patch start]
- // remove socket timeout handler
- s.setTimeout(0, onTimeout);
- // [patch end]
- }
- s.on('agentRemove', onRemove);
- cb(null, s);
- }
-};
-
-function calculateServerName(options, req) {
- let servername = options.host;
- const hostHeader = req.getHeader('host');
- if (hostHeader) {
- // abc => abc
- // abc:123 => abc
- // [::1] => ::1
- // [::1]:123 => ::1
- if (hostHeader.startsWith('[')) {
- const index = hostHeader.indexOf(']');
- if (index === -1) {
- // Leading '[', but no ']'. Need to do something...
- servername = hostHeader;
- } else {
- servername = hostHeader.substr(1, index - 1);
- }
- } else {
- servername = hostHeader.split(':', 1)[0];
- }
- }
- return servername;
-}
-
-Agent.prototype.removeSocket = function removeSocket(s, options) {
- var name = this.getName(options);
- debug('removeSocket', name, 'writable:', s.writable);
- var sets = [this.sockets];
-
- // If the socket was destroyed, remove it from the free buffers too.
- if (!s.writable)
- sets.push(this.freeSockets);
-
- for (var sk = 0; sk < sets.length; sk++) {
- var sockets = sets[sk];
-
- if (sockets[name]) {
- var index = sockets[name].indexOf(s);
- if (index !== -1) {
- sockets[name].splice(index, 1);
- // Don't leak
- if (sockets[name].length === 0)
- delete sockets[name];
- }
- }
- }
-
- // [patch start]
- var freeLen = this.freeSockets[name] ? this.freeSockets[name].length : 0;
- var sockLen = freeLen + (this.sockets[name] ? this.sockets[name].length : 0);
- // [patch end]
-
- if (this.requests[name] && this.requests[name].length && sockLen < this.maxSockets) {
- debug('removeSocket, have a request, make a socket');
- var req = this.requests[name][0];
- // If we have pending requests and a socket gets closed make a new one
- this.createSocket(req, options, function(err, newSocket) {
- if (err) {
- process.nextTick(function() {
- req.emit('error', err);
- });
- return;
- }
- newSocket.emit('free');
- });
- }
-};
-
-Agent.prototype.destroy = function destroy() {
- var sets = [this.freeSockets, this.sockets];
- for (var s = 0; s < sets.length; s++) {
- var set = sets[s];
- var keys = Object.keys(set);
- for (var v = 0; v < keys.length; v++) {
- var setName = set[keys[v]];
- for (var n = 0; n < setName.length; n++) {
- setName[n].destroy();
- }
- }
- }
-};
-
-exports.globalAgent = new Agent();
diff --git a/node_modules/agentkeepalive/lib/agent.js b/node_modules/agentkeepalive/lib/agent.js
deleted file mode 100644
index a51ad597b..000000000
--- a/node_modules/agentkeepalive/lib/agent.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * refer:
- * * @atimb "Real keep-alive HTTP agent": https://gist.github.com/2963672
- * * https://github.com/joyent/node/blob/master/lib/http.js
- * * https://github.com/joyent/node/blob/master/lib/https.js
- * * https://github.com/joyent/node/blob/master/lib/_http_agent.js
- */
-
-'use strict';
-
-const OriginalAgent = require('./_http_agent').Agent;
-const ms = require('humanize-ms');
-
-class Agent extends OriginalAgent {
- constructor(options) {
- options = options || {};
- options.keepAlive = options.keepAlive !== false;
- // default is keep-alive and 15s free socket timeout
- if (options.freeSocketKeepAliveTimeout === undefined) {
- options.freeSocketKeepAliveTimeout = 15000;
- }
- // Legacy API: keepAliveTimeout should be rename to `freeSocketKeepAliveTimeout`
- if (options.keepAliveTimeout) {
- options.freeSocketKeepAliveTimeout = options.keepAliveTimeout;
- }
- options.freeSocketKeepAliveTimeout = ms(options.freeSocketKeepAliveTimeout);
-
- // Sets the socket to timeout after timeout milliseconds of inactivity on the socket.
- // By default is double free socket keepalive timeout.
- if (options.timeout === undefined) {
- options.timeout = options.freeSocketKeepAliveTimeout * 2;
- // make sure socket default inactivity timeout >= 30s
- if (options.timeout < 30000) {
- options.timeout = 30000;
- }
- }
- options.timeout = ms(options.timeout);
-
- super(options);
-
- this.createSocketCount = 0;
- this.createSocketCountLastCheck = 0;
-
- this.createSocketErrorCount = 0;
- this.createSocketErrorCountLastCheck = 0;
-
- this.closeSocketCount = 0;
- this.closeSocketCountLastCheck = 0;
-
- // socket error event count
- this.errorSocketCount = 0;
- this.errorSocketCountLastCheck = 0;
-
- this.requestCount = 0;
- this.requestCountLastCheck = 0;
-
- this.timeoutSocketCount = 0;
- this.timeoutSocketCountLastCheck = 0;
-
- this.on('free', s => {
- this.requestCount++;
- // last enter free queue timestamp
- s.lastFreeTime = Date.now();
- });
- this.on('timeout', () => {
- this.timeoutSocketCount++;
- });
- this.on('close', () => {
- this.closeSocketCount++;
- });
- this.on('error', () => {
- this.errorSocketCount++;
- });
- }
-
- createSocket(req, options, cb) {
- super.createSocket(req, options, (err, socket) => {
- if (err) {
- this.createSocketErrorCount++;
- return cb(err);
- }
- if (this.keepAlive) {
- // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/
- // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html
- socket.setNoDelay(true);
- }
- this.createSocketCount++;
- cb(null, socket);
- });
- }
-
- get statusChanged() {
- const changed = this.createSocketCount !== this.createSocketCountLastCheck ||
- this.createSocketErrorCount !== this.createSocketErrorCountLastCheck ||
- this.closeSocketCount !== this.closeSocketCountLastCheck ||
- this.errorSocketCount !== this.errorSocketCountLastCheck ||
- this.timeoutSocketCount !== this.timeoutSocketCountLastCheck ||
- this.requestCount !== this.requestCountLastCheck;
- if (changed) {
- this.createSocketCountLastCheck = this.createSocketCount;
- this.createSocketErrorCountLastCheck = this.createSocketErrorCount;
- this.closeSocketCountLastCheck = this.closeSocketCount;
- this.errorSocketCountLastCheck = this.errorSocketCount;
- this.timeoutSocketCountLastCheck = this.timeoutSocketCount;
- this.requestCountLastCheck = this.requestCount;
- }
- return changed;
- }
-
- getCurrentStatus() {
- return {
- createSocketCount: this.createSocketCount,
- createSocketErrorCount: this.createSocketErrorCount,
- closeSocketCount: this.closeSocketCount,
- errorSocketCount: this.errorSocketCount,
- timeoutSocketCount: this.timeoutSocketCount,
- requestCount: this.requestCount,
- freeSockets: inspect(this.freeSockets),
- sockets: inspect(this.sockets),
- requests: inspect(this.requests),
- };
- }
-}
-
-module.exports = Agent;
-
-function inspect(obj) {
- const res = {};
- for (const key in obj) {
- res[key] = obj[key].length;
- }
- return res;
-}
diff --git a/node_modules/agentkeepalive/lib/https_agent.js b/node_modules/agentkeepalive/lib/https_agent.js
deleted file mode 100644
index e6d58a3df..000000000
--- a/node_modules/agentkeepalive/lib/https_agent.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Https Agent base on custom http agent
- */
-
-'use strict';
-
-const https = require('https');
-const HttpAgent = require('./agent');
-const OriginalHttpsAgent = https.Agent;
-
-class HttpsAgent extends HttpAgent {
- constructor(options) {
- super(options);
-
- this.defaultPort = 443;
- this.protocol = 'https:';
- this.maxCachedSessions = this.options.maxCachedSessions;
- if (this.maxCachedSessions === undefined) {
- this.maxCachedSessions = 100;
- }
-
- this._sessionCache = {
- map: {},
- list: [],
- };
- }
-}
-
-[
- 'createConnection',
- 'getName',
- '_getSession',
- '_cacheSession',
- // https://github.com/nodejs/node/pull/4982
- '_evictSession',
-].forEach(function(method) {
- if (typeof OriginalHttpsAgent.prototype[method] === 'function') {
- HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method];
- }
-});
-
-module.exports = HttpsAgent;
diff --git a/node_modules/agentkeepalive/package.json b/node_modules/agentkeepalive/package.json
deleted file mode 100644
index ba6470dba..000000000
--- a/node_modules/agentkeepalive/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "_from": "agentkeepalive@^3.4.1",
- "_id": "agentkeepalive@3.5.2",
- "_inBundle": false,
- "_integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
- "_location": "/agentkeepalive",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agentkeepalive@^3.4.1",
- "name": "agentkeepalive",
- "escapedName": "agentkeepalive",
- "rawSpec": "^3.4.1",
- "saveSpec": null,
- "fetchSpec": "^3.4.1"
- },
- "_requiredBy": [
- "/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
- "_shasum": "a113924dd3fa24a0bc3b78108c450c2abee00f67",
- "_spec": "agentkeepalive@^3.4.1",
- "_where": "/Users/isaacs/dev/npm/cli/node_modules/make-fetch-happen",
- "author": {
- "name": "fengmk2",
- "email": "fengmk2@gmail.com",
- "url": "https://fengmk2.com"
- },
- "browser": "browser.js",
- "bugs": {
- "url": "https://github.com/node-modules/agentkeepalive/issues"
- },
- "bundleDependencies": false,
- "ci": {
- "version": "4, 6, 8, 10"
- },
- "dependencies": {
- "humanize-ms": "^1.2.1"
- },
- "deprecated": false,
- "description": "Missing keepalive http.Agent",
- "devDependencies": {
- "autod": "^3.0.1",
- "egg-bin": "^1.11.1",
- "egg-ci": "^1.8.0",
- "eslint": "^4.19.1",
- "eslint-config-egg": "^6.0.0",
- "pedding": "^1.1.0"
- },
- "engines": {
- "node": ">= 4.0.0"
- },
- "files": [
- "index.js",
- "index.d.ts",
- "browser.js",
- "lib"
- ],
- "homepage": "https://github.com/node-modules/agentkeepalive#readme",
- "keywords": [
- "http",
- "https",
- "agent",
- "keepalive",
- "agentkeepalive"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "agentkeepalive",
- "repository": {
- "type": "git",
- "url": "git://github.com/node-modules/agentkeepalive.git"
- },
- "scripts": {
- "autod": "autod",
- "ci": "npm run lint && npm run cov",
- "cov": "egg-bin cov",
- "lint": "eslint lib test index.js",
- "test": "egg-bin test"
- },
- "version": "3.5.2"
-}