From 676ef952abf09c95a06d6c4da91098976bb2ceae Mon Sep 17 00:00:00 2001 From: Julian Duque Date: Thu, 30 Apr 2020 22:25:55 -0400 Subject: [PATCH 001/104] test: add tests for options.fs in fs streams MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/33185 Reviewed-By: Adrian Estrada Reviewed-By: Juan José Arboleda --- test/parallel/test-fs-stream-fs-options.js | 73 ++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 test/parallel/test-fs-stream-fs-options.js diff --git a/test/parallel/test-fs-stream-fs-options.js b/test/parallel/test-fs-stream-fs-options.js new file mode 100644 index 000000000000..65144c0d617e --- /dev/null +++ b/test/parallel/test-fs-stream-fs-options.js @@ -0,0 +1,73 @@ +'use strict'; + +require('../common'); +const fixtures = require('../common/fixtures'); +const path = require('path'); +const fs = require('fs'); +const assert = require('assert'); + +const tmpdir = require('../common/tmpdir'); +tmpdir.refresh(); + +const streamOpts = ['open', 'close']; +const writeStreamOptions = [...streamOpts, 'write']; +const readStreamOptions = [...streamOpts, 'read']; +const originalFs = { fs }; + +{ + const file = path.join(tmpdir.path, 'write-end-test0.txt'); + + writeStreamOptions.forEach((fn) => { + const overrideFs = Object.assign({}, originalFs.fs, { [fn]: null }); + if (fn === 'write') overrideFs.writev = null; + + const opts = { + fs: overrideFs + }; + assert.throws( + () => fs.createWriteStream(file, opts), { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + message: `The "options.fs.${fn}" property must be of type function. ` + + 'Received null' + }, + `createWriteStream options.fs.${fn} should throw if isn't a function` + ); + }); +} + +{ + const file = path.join(tmpdir.path, 'write-end-test0.txt'); + const overrideFs = Object.assign({}, originalFs.fs, { writev: 'not a fn' }); + const opts = { + fs: overrideFs + }; + assert.throws( + () => fs.createWriteStream(file, opts), { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + message: 'The "options.fs.writev" property must be of type function. ' + + 'Received type string (\'not a fn\')' + }, + 'createWriteStream options.fs.writev should throw if isn\'t a function' + ); +} + +{ + const file = fixtures.path('x.txt'); + readStreamOptions.forEach((fn) => { + const overrideFs = Object.assign({}, originalFs.fs, { [fn]: null }); + const opts = { + fs: overrideFs + }; + assert.throws( + () => fs.createReadStream(file, opts), { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + message: `The "options.fs.${fn}" property must be of type function. ` + + 'Received null' + }, + `createReadStream options.fs.${fn} should throw if isn't a function` + ); + }); +} From c5a38fe6d7cbf8de7b5949fe0855bf399a1e5a53 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Fri, 1 May 2020 14:40:13 +0300 Subject: [PATCH 002/104] doc: fix style and grammer in buffer.md PR-URL: https://github.com/nodejs/node/pull/33194 Reviewed-By: Rich Trott Reviewed-By: James M Snell --- doc/api/buffer.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 52e86430ede8..e53cd5c93f5d 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -569,7 +569,7 @@ Array entries outside that range will be truncated to fit into it. const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); ``` -A `TypeError` will be thrown if `array` is not an `Array` or other type +A `TypeError` will be thrown if `array` is not an `Array` or another type appropriate for `Buffer.from()` variants. `Buffer.from(array)` and [`Buffer.from(string)`][] may also use the internal @@ -623,7 +623,8 @@ console.log(buf.length); ``` A `TypeError` will be thrown if `arrayBuffer` is not an [`ArrayBuffer`][] or a -[`SharedArrayBuffer`][] or other type appropriate for `Buffer.from()` variants. +[`SharedArrayBuffer`][] or another type appropriate for `Buffer.from()` +variants. ### Class Method: `Buffer.from(buffer)` -* `data` {string|Buffer} +* `data` {string|Buffer|Uint8Array} * `encoding` {string} * `callback` {Function} * Returns: {this} @@ -3396,7 +3396,7 @@ does not indicate whether the data has been flushed, for this use added: v8.4.0 --> -* `chunk` {string|Buffer} +* `chunk` {string|Buffer|Uint8Array} * `encoding` {string} * `callback` {Function} * Returns: {boolean} From 27b814c79b188f65ccbe9e008cbf9b7fd8ab5895 Mon Sep 17 00:00:00 2001 From: himself65 Date: Sat, 2 May 2020 22:04:51 +0800 Subject: [PATCH 020/104] module: lazy load 'getOptionValue' in initializeLoader This enables loading this module during early bootstrapping. PR-URL: https://github.com/nodejs/node/pull/33212 Reviewed-By: Guy Bedford Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Richard Lau --- lib/internal/process/esm_loader.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/internal/process/esm_loader.js b/lib/internal/process/esm_loader.js index 996532a93049..fe47098fde2f 100644 --- a/lib/internal/process/esm_loader.js +++ b/lib/internal/process/esm_loader.js @@ -8,8 +8,6 @@ const { pathToFileURL } = require('internal/url'); const { getModuleFromWrap, } = require('internal/vm/module'); -const { getOptionValue } = require('internal/options'); -const userLoader = getOptionValue('--experimental-loader'); exports.initializeImportMetaObject = function(wrap, meta) { const { callbackMap } = internalBinding('module_wrap'); @@ -38,6 +36,8 @@ exports.ESMLoader = ESMLoader; exports.initializeLoader = initializeLoader; async function initializeLoader() { + const { getOptionValue } = require('internal/options'); + const userLoader = getOptionValue('--experimental-loader'); if (!userLoader) return; let cwd; From e20fe535a5a3b25f7c6b93a675c44d940b541197 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Fri, 1 May 2020 17:00:00 +0300 Subject: [PATCH 021/104] doc: update Buffer(size) documentation It returns zero-filled memory since v8.0.0. PR-URL: https://github.com/nodejs/node/pull/33198 Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater --- doc/api/buffer.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/api/buffer.md b/doc/api/buffer.md index e53cd5c93f5d..c32060563faa 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -2529,9 +2529,7 @@ changes: * `size` {integer} The desired length of the new `Buffer`. See [`Buffer.alloc()`][] and [`Buffer.allocUnsafe()`][]. This variant of the -constructor is equivalent to [`Buffer.allocUnsafe()`][], although using -[`Buffer.alloc()`][] is recommended in code paths that are not critical to -performance. +constructor is equivalent to [`Buffer.alloc()`][]. ### `new Buffer(string[, encoding])` + + + +- **Version**: ✍️ +- **Platform**: ✍️ +- **Subsystem**: ✍️ + +## Location + +_Section of the site where the content exists_ + +Affected URL(s): +- https://nodejs.org/api/✍️ + +## Problem description + +_Concise explanation of what you found to be problematic_ + + + +✍️ + +--- + + + +- [ ] I would like to work on this issue and submit a pull request. From ef2503375b7fd48bd544524e4c6365b33d7a42de Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 24 Apr 2020 21:12:32 +0200 Subject: [PATCH 035/104] src: fix invalid windowBits=8 gzip segfault MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `{ windowBits: 8 }` is legal for deflate streams but not gzip streams. Fix a nullptr dereference when formatting the error message. Bug introduced in commit c34eae5f88 ("zlib: refactor zlib internals") from September 2018. PR-URL: https://github.com/nodejs/node/pull/33045 Reviewed-By: Anna Henningsen Reviewed-By: Gerhard Stöbich Reviewed-By: David Carlier --- src/node_zlib.cc | 9 +++++++-- test/parallel/test-zlib.js | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/node_zlib.cc b/src/node_zlib.cc index eacd710143a1..83698bd5192e 100644 --- a/src/node_zlib.cc +++ b/src/node_zlib.cc @@ -111,7 +111,12 @@ enum node_zlib_mode { struct CompressionError { CompressionError(const char* message, const char* code, int err) - : message(message), code(code), err(err) {} + : message(message), + code(code), + err(err) { + CHECK_NOT_NULL(message); + } + CompressionError() = default; const char* message = nullptr; @@ -997,7 +1002,7 @@ CompressionError ZlibContext::Init( if (err_ != Z_OK) { dictionary_.clear(); mode_ = NONE; - return ErrorForMessage(nullptr); + return ErrorForMessage("zlib error"); } return SetDictionary(); diff --git a/test/parallel/test-zlib.js b/test/parallel/test-zlib.js index 0d21cf6cc29e..3af791c379a4 100644 --- a/test/parallel/test-zlib.js +++ b/test/parallel/test-zlib.js @@ -27,6 +27,13 @@ const stream = require('stream'); const fs = require('fs'); const fixtures = require('../common/fixtures'); +// Should not segfault. +assert.throws(() => zlib.gzipSync(Buffer.alloc(0), { windowBits: 8 }), { + code: 'ERR_ZLIB_INITIALIZATION_FAILED', + name: 'Error', + message: 'Initialization failed', +}); + let zlibPairs = [ [zlib.Deflate, zlib.Inflate], [zlib.Gzip, zlib.Gunzip], From 736ca65c2ccd7ef8cb0363afed0db50171602745 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 24 Apr 2020 21:12:32 +0200 Subject: [PATCH 036/104] zlib: reject windowBits=8 when mode=GZIP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's also handled in C++ land now, per the previous commit, but intercepting it in JS land makes for prettier error messages. PR-URL: https://github.com/nodejs/node/pull/33045 Reviewed-By: Anna Henningsen Reviewed-By: Gerhard Stöbich Reviewed-By: David Carlier --- lib/zlib.js | 4 +++- test/parallel/test-zlib-failed-init.js | 2 +- test/parallel/test-zlib-zero-windowBits.js | 2 +- test/parallel/test-zlib.js | 7 ++++--- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/zlib.js b/lib/zlib.js index 502ee61aa3bd..be8f9401a310 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -613,9 +613,11 @@ function Zlib(opts, mode) { mode === UNZIP)) { windowBits = 0; } else { + // `{ windowBits: 8 }` is valid for deflate but not gzip. + const min = Z_MIN_WINDOWBITS + (mode === GZIP ? 1 : 0); windowBits = checkRangesOrGetDefault( opts.windowBits, 'options.windowBits', - Z_MIN_WINDOWBITS, Z_MAX_WINDOWBITS, Z_DEFAULT_WINDOWBITS); + min, Z_MAX_WINDOWBITS, Z_DEFAULT_WINDOWBITS); } level = checkRangesOrGetDefault( diff --git a/test/parallel/test-zlib-failed-init.js b/test/parallel/test-zlib-failed-init.js index 1f99a378fc6e..95f401a3718f 100644 --- a/test/parallel/test-zlib-failed-init.js +++ b/test/parallel/test-zlib-failed-init.js @@ -21,7 +21,7 @@ assert.throws( code: 'ERR_OUT_OF_RANGE', name: 'RangeError', message: 'The value of "options.windowBits" is out of range. It must ' + - 'be >= 8 and <= 15. Received 0' + 'be >= 9 and <= 15. Received 0' } ); diff --git a/test/parallel/test-zlib-zero-windowBits.js b/test/parallel/test-zlib-zero-windowBits.js index 730690a07c42..a27fd6734a54 100644 --- a/test/parallel/test-zlib-zero-windowBits.js +++ b/test/parallel/test-zlib-zero-windowBits.js @@ -28,6 +28,6 @@ const zlib = require('zlib'); code: 'ERR_OUT_OF_RANGE', name: 'RangeError', message: 'The value of "options.windowBits" is out of range. ' + - 'It must be >= 8 and <= 15. Received 0' + 'It must be >= 9 and <= 15. Received 0' }); } diff --git a/test/parallel/test-zlib.js b/test/parallel/test-zlib.js index 3af791c379a4..65050b85a036 100644 --- a/test/parallel/test-zlib.js +++ b/test/parallel/test-zlib.js @@ -29,9 +29,10 @@ const fixtures = require('../common/fixtures'); // Should not segfault. assert.throws(() => zlib.gzipSync(Buffer.alloc(0), { windowBits: 8 }), { - code: 'ERR_ZLIB_INITIALIZATION_FAILED', - name: 'Error', - message: 'Initialization failed', + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError', + message: 'The value of "options.windowBits" is out of range. ' + + 'It must be >= 9 and <= 15. Received 8', }); let zlibPairs = [ From b634d4b000842ad2a426f9b354d8624e4f0003d3 Mon Sep 17 00:00:00 2001 From: Robert Nagy Date: Tue, 28 Apr 2020 19:17:57 +0200 Subject: [PATCH 037/104] http: set IncomingMessage.destroyed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IncomingMessage is a Readable stream and should properly set the destroyed property. PR-URL: https://github.com/nodejs/node/pull/33131 Reviewed-By: Anna Henningsen Reviewed-By: Matteo Collina Reviewed-By: Juan José Arboleda --- lib/_http_client.js | 4 ++ lib/_http_incoming.js | 2 + lib/_http_server.js | 9 +++- .../test-http-client-res-destroyed.js | 41 +++++++++++++++++++ test/parallel/test-http-connect-req-res.js | 5 ++- test/parallel/test-http-connect.js | 5 ++- .../test-http-pause-resume-one-end.js | 9 +++- test/parallel/test-http-req-res-close.js | 12 ++++++ test/parallel/test-http-response-close.js | 8 ++++ test/parallel/test-http-server-stale-close.js | 3 ++ 10 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 test/parallel/test-http-client-res-destroyed.js diff --git a/lib/_http_client.js b/lib/_http_client.js index c78289138e75..22b695e60648 100644 --- a/lib/_http_client.js +++ b/lib/_http_client.js @@ -422,10 +422,12 @@ function socketCloseListener() { req.emit('close'); if (!res.aborted && res.readable) { res.on('end', function() { + this.destroyed = true; this.emit('close'); }); res.push(null); } else { + res.destroyed = true; res.emit('close'); } } else { @@ -539,6 +541,7 @@ function socketOnData(d) { socket.readableFlowing = null; req.emit(eventName, res, socket, bodyHead); + req.destroyed = true; req.emit('close'); } else { // Requested Upgrade or used CONNECT method, but have no handler. @@ -710,6 +713,7 @@ function requestOnPrefinish() { function emitFreeNT(req) { req.emit('close'); if (req.res) { + req.res.destroyed = true; req.res.emit('close'); } diff --git a/lib/_http_incoming.js b/lib/_http_incoming.js index f309e32e36dc..60081279a05e 100644 --- a/lib/_http_incoming.js +++ b/lib/_http_incoming.js @@ -119,6 +119,8 @@ IncomingMessage.prototype._read = function _read(n) { // any messages, before ever calling this. In that case, just skip // it, since something else is destroying this connection anyway. IncomingMessage.prototype.destroy = function destroy(error) { + // TODO(ronag): Implement in terms of _destroy + this.destroyed = true; if (this.socket) this.socket.destroy(error); }; diff --git a/lib/_http_server.js b/lib/_http_server.js index c8b27dcd42cb..9dfeef746636 100644 --- a/lib/_http_server.js +++ b/lib/_http_server.js @@ -205,7 +205,10 @@ function onServerResponseClose() { // Ergo, we need to deal with stale 'close' events and handle the case // where the ServerResponse object has already been deconstructed. // Fortunately, that requires only a single if check. :-) - if (this._httpMessage) this._httpMessage.emit('close'); + if (this._httpMessage) { + this._httpMessage.destroyed = true; + this._httpMessage.emit('close'); + } } ServerResponse.prototype.assignSocket = function assignSocket(socket) { @@ -534,6 +537,7 @@ function abortIncoming(incoming) { while (incoming.length) { const req = incoming.shift(); req.aborted = true; + req.destroyed = true; req.emit('aborted'); req.emit('close'); } @@ -660,11 +664,13 @@ function clearIncoming(req) { if (parser && parser.incoming === req) { if (req.readableEnded) { parser.incoming = null; + req.destroyed = true; req.emit('close'); } else { req.on('end', clearIncoming); } } else { + req.destroyed = true; req.emit('close'); } } @@ -708,6 +714,7 @@ function resOnFinish(req, res, socket, state, server) { } function emitCloseNT(self) { + self.destroyed = true; self.emit('close'); } diff --git a/test/parallel/test-http-client-res-destroyed.js b/test/parallel/test-http-client-res-destroyed.js new file mode 100644 index 000000000000..188ab06c1557 --- /dev/null +++ b/test/parallel/test-http-client-res-destroyed.js @@ -0,0 +1,41 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); + +{ + const server = http.createServer(common.mustCall((req, res) => { + res.end('asd'); + })); + + server.listen(0, common.mustCall(() => { + http.get({ + port: server.address().port + }, common.mustCall((res) => { + assert.strictEqual(res.destroyed, false); + res.destroy(); + assert.strictEqual(res.destroyed, true); + res.on('close', common.mustCall(() => { + server.close(); + })); + })); + })); +} + +{ + const server = http.createServer(common.mustCall((req, res) => { + res.end('asd'); + })); + + server.listen(0, common.mustCall(() => { + http.get({ + port: server.address().port + }, common.mustCall((res) => { + assert.strictEqual(res.destroyed, false); + res.on('close', common.mustCall(() => { + assert.strictEqual(res.destroyed, true); + server.close(); + })).resume(); + })); + })); +} diff --git a/test/parallel/test-http-connect-req-res.js b/test/parallel/test-http-connect-req-res.js index 893c621852be..cd6e55e0898c 100644 --- a/test/parallel/test-http-connect-req-res.js +++ b/test/parallel/test-http-connect-req-res.js @@ -33,7 +33,10 @@ server.listen(0, common.mustCall(function() { path: 'example.com:443' }, common.mustNotCall()); - req.on('close', common.mustCall()); + assert.strictEqual(req.destroyed, false); + req.on('close', common.mustCall(() => { + assert.strictEqual(req.destroyed, true); + })); req.on('connect', common.mustCall(function(res, socket, firstBodyChunk) { console.error('Client got CONNECT request'); diff --git a/test/parallel/test-http-connect.js b/test/parallel/test-http-connect.js index be853de347e0..47fd7316d0cf 100644 --- a/test/parallel/test-http-connect.js +++ b/test/parallel/test-http-connect.js @@ -62,7 +62,10 @@ server.listen(0, common.mustCall(() => { assert.strictEqual(socket._httpMessage, req); })); - req.on('close', common.mustCall()); + assert.strictEqual(req.destroyed, false); + req.on('close', common.mustCall(() => { + assert.strictEqual(req.destroyed, true); + })); req.on('connect', common.mustCall((res, socket, firstBodyChunk) => { // Make sure this request got removed from the pool. diff --git a/test/parallel/test-http-pause-resume-one-end.js b/test/parallel/test-http-pause-resume-one-end.js index 4886a7d490e4..34bf3be478f0 100644 --- a/test/parallel/test-http-pause-resume-one-end.js +++ b/test/parallel/test-http-pause-resume-one-end.js @@ -22,6 +22,7 @@ 'use strict'; const common = require('../common'); const http = require('http'); +const assert = require('assert'); const server = http.Server(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); @@ -43,6 +44,12 @@ server.listen(0, common.mustCall(function() { }); })); - res.on('end', common.mustCall()); + res.on('end', common.mustCall(() => { + assert.strictEqual(res.destroyed, false); + })); + assert.strictEqual(res.destroyed, false); + res.on('close', common.mustCall(() => { + assert.strictEqual(res.destroyed, true); + })); })); })); diff --git a/test/parallel/test-http-req-res-close.js b/test/parallel/test-http-req-res-close.js index daba55f43427..329515ccd76f 100644 --- a/test/parallel/test-http-req-res-close.js +++ b/test/parallel/test-http-req-res-close.js @@ -8,13 +8,25 @@ const server = http.Server(common.mustCall((req, res) => { let resClosed = false; res.end(); + let resFinished = false; res.on('finish', common.mustCall(() => { + resFinished = true; + assert.strictEqual(resClosed, false); + assert.strictEqual(res.destroyed, false); assert.strictEqual(resClosed, false); })); + assert.strictEqual(req.destroyed, false); res.on('close', common.mustCall(() => { resClosed = true; + assert.strictEqual(resFinished, true); + assert.strictEqual(res.destroyed, true); + })); + assert.strictEqual(req.destroyed, false); + req.on('end', common.mustCall(() => { + assert.strictEqual(req.destroyed, false); })); req.on('close', common.mustCall(() => { + assert.strictEqual(req.destroyed, true); assert.strictEqual(req._readableState.ended, true); })); res.socket.on('close', () => server.close()); diff --git a/test/parallel/test-http-response-close.js b/test/parallel/test-http-response-close.js index 4c3600335798..0435cd0ee37d 100644 --- a/test/parallel/test-http-response-close.js +++ b/test/parallel/test-http-response-close.js @@ -22,6 +22,7 @@ 'use strict'; const common = require('../common'); const http = require('http'); +const assert = require('assert'); { const server = http.createServer( @@ -39,7 +40,9 @@ const http = require('http'); res.on('data', common.mustCall(() => { res.destroy(); })); + assert.strictEqual(res.destroyed, false); res.on('close', common.mustCall(() => { + assert.strictEqual(res.destroyed, true); server.close(); })); }) @@ -61,7 +64,12 @@ const http = require('http'); http.get( { port: server.address().port }, common.mustCall((res) => { + assert.strictEqual(res.destroyed, false); + res.on('end', common.mustCall(() => { + assert.strictEqual(res.destroyed, false); + })); res.on('close', common.mustCall(() => { + assert.strictEqual(res.destroyed, true); server.close(); })); res.resume(); diff --git a/test/parallel/test-http-server-stale-close.js b/test/parallel/test-http-server-stale-close.js index d67c4d31c36e..b9322ed9fcf8 100644 --- a/test/parallel/test-http-server-stale-close.js +++ b/test/parallel/test-http-server-stale-close.js @@ -23,6 +23,7 @@ require('../common'); const http = require('http'); const fork = require('child_process').fork; +const assert = require('assert'); if (process.env.NODE_TEST_FORK_PORT) { const req = http.request({ @@ -37,7 +38,9 @@ if (process.env.NODE_TEST_FORK_PORT) { const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Length': '42' }); req.pipe(res); + assert.strictEqual(req.destroyed, false); req.on('close', () => { + assert.strictEqual(req.destroyed, true); server.close(); res.end(); }); From 41c5524432d3688efb1d2778b8500743cda70271 Mon Sep 17 00:00:00 2001 From: Pranshu Srivastava Date: Tue, 21 Apr 2020 05:58:28 +0530 Subject: [PATCH 038/104] http2: add `bytesWritten` test for `Http2Stream` note that this is for the `Http2Server` class. I'll soon be adding one for `Http2SecureServer` as well. Refs: https://github.com/nodejs/node/issues/29829 PR-URL: https://github.com/nodejs/node/pull/33162 Reviewed-By: James M Snell --- .../test-http2-byteswritten-server.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/parallel/test-http2-byteswritten-server.js diff --git a/test/parallel/test-http2-byteswritten-server.js b/test/parallel/test-http2-byteswritten-server.js new file mode 100644 index 000000000000..3077687fbf9a --- /dev/null +++ b/test/parallel/test-http2-byteswritten-server.js @@ -0,0 +1,28 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); + +const http2Server = http2.createServer(common.mustCall(function(req, res) { + res.socket.on('finish', common.mustCall(() => { + assert(req.socket.bytesWritten > 0); // 1094 + })); + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.write(Buffer.from('1'.repeat(1024))); + res.end(); +})); + +http2Server.listen(0, common.mustCall(function() { + const URL = `http://localhost:${http2Server.address().port}`; + const http2client = http2.connect(URL, { protocol: 'http:' }); + const req = http2client.request({ ':method': 'GET', ':path': '/' }); + req.on('data', common.mustCall()); + req.on('end', common.mustCall(function() { + http2client.close(); + http2Server.close(); + })); + req.end(); +})); From eedc13174e8e8a4235375ba782f9a233e1604b2d Mon Sep 17 00:00:00 2001 From: David Halls Date: Sat, 2 May 2020 07:42:26 +0100 Subject: [PATCH 039/104] tls: reset secureConnecting on client socket secureConnecting is never set to false on client TLS sockets. So if Http2Session constructor (in lib/internal/http2/core.js) is called after secureConnect is emitted, then it will wrongly wait for a secureConnect event. This fix sets secureConnecting to false when a client TLS socket has connected. PR-URL: https://github.com/nodejs/node/pull/33209 Reviewed-By: Luigi Pinca Reviewed-By: Sam Roberts --- lib/_tls_wrap.js | 2 ++ test/parallel/test-http2-connect.js | 34 ++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index 1937f3984d71..47b2c6009dba 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -1512,11 +1512,13 @@ function onConnectSecure() { debug('client emit secureConnect. rejectUnauthorized: %s, ' + 'authorizationError: %s', options.rejectUnauthorized, this.authorizationError); + this.secureConnecting = false; this.emit('secureConnect'); } } else { this.authorized = true; debug('client emit secureConnect. authorized:', this.authorized); + this.secureConnecting = false; this.emit('secureConnect'); } diff --git a/test/parallel/test-http2-connect.js b/test/parallel/test-http2-connect.js index 6f62f55a93b7..9ee2e4347f60 100644 --- a/test/parallel/test-http2-connect.js +++ b/test/parallel/test-http2-connect.js @@ -9,9 +9,11 @@ const { } = require('../common'); if (!hasCrypto) skip('missing crypto'); +const fixtures = require('../common/fixtures'); const assert = require('assert'); -const { createServer, connect } = require('http2'); +const { createServer, createSecureServer, connect } = require('http2'); const { connect: netConnect } = require('net'); +const { connect: tlsConnect } = require('tls'); // Check for session connect callback and event { @@ -70,6 +72,36 @@ const { connect: netConnect } = require('net'); connect(authority).on('error', () => {}); } +// Check for session connect callback on already connected TLS socket +{ + const serverOptions = { + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem') + }; + const server = createSecureServer(serverOptions); + server.listen(0, mustCall(() => { + const { port } = server.address(); + + const onSocketConnect = () => { + const authority = `https://localhost:${port}`; + const createConnection = mustCall(() => socket); + const options = { createConnection }; + connect(authority, options, mustCall(onSessionConnect)); + }; + + const onSessionConnect = (session) => { + session.close(); + server.close(); + }; + + const clientOptions = { + port, + rejectUnauthorized: false + }; + const socket = tlsConnect(clientOptions, mustCall(onSocketConnect)); + })); +} + // Check for error for init settings error { createServer(function() { From cae2051b832d6f836d6ab9bc5752113fc01fc0c8 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Sat, 2 May 2020 20:30:44 +0300 Subject: [PATCH 040/104] buffer: improve copy() performance There is no need to create a slice when sourceEnd is out of bounds. PR-URL: https://github.com/nodejs/node/pull/33214 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Zeyu Yang Reviewed-By: Luigi Pinca --- lib/buffer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/buffer.js b/lib/buffer.js index 874227f0d440..a818f41a26ed 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -257,7 +257,7 @@ function _copyActual(source, target, targetStart, sourceStart, sourceEnd) { if (nb > sourceLen) nb = sourceLen; - if (sourceStart !== 0 || sourceEnd !== source.length) + if (sourceStart !== 0 || sourceEnd < source.length) source = new Uint8Array(source.buffer, source.byteOffset + sourceStart, nb); target.set(source, targetStart); From ba66b21c37b8e2fd51ca4a799f189a823394b95f Mon Sep 17 00:00:00 2001 From: Ruy Adorno Date: Mon, 4 May 2020 14:57:47 -0400 Subject: [PATCH 041/104] deps: upgrade npm to 6.14.5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/33239 Reviewed-By: Colin Ihrig Reviewed-By: Michaël Zasso --- deps/npm/.npmignore | 2 +- deps/npm/.travis.yml | 3 - deps/npm/AUTHORS | 4 + deps/npm/CHANGELOG.md | 15 + deps/npm/CONTRIBUTING.md | 6 +- deps/npm/docs/content/cli-commands/npm.md | 10 +- deps/npm/docs/content/using-npm/scripts.md | 42 ++- .../public/cli-commands/npm-access/index.html | 6 +- .../cli-commands/npm-adduser/index.html | 6 +- .../public/cli-commands/npm-audit/index.html | 6 +- .../public/cli-commands/npm-bin/index.html | 6 +- .../public/cli-commands/npm-bugs/index.html | 6 +- .../public/cli-commands/npm-build/index.html | 6 +- .../public/cli-commands/npm-bundle/index.html | 6 +- .../public/cli-commands/npm-cache/index.html | 6 +- .../public/cli-commands/npm-ci/index.html | 6 +- .../cli-commands/npm-completion/index.html | 6 +- .../public/cli-commands/npm-config/index.html | 6 +- .../public/cli-commands/npm-dedupe/index.html | 6 +- .../cli-commands/npm-deprecate/index.html | 6 +- .../cli-commands/npm-dist-tag/index.html | 6 +- .../public/cli-commands/npm-docs/index.html | 6 +- .../public/cli-commands/npm-doctor/index.html | 6 +- .../public/cli-commands/npm-edit/index.html | 6 +- .../cli-commands/npm-explore/index.html | 6 +- .../public/cli-commands/npm-fund/index.html | 6 +- .../cli-commands/npm-help-search/index.html | 6 +- .../public/cli-commands/npm-help/index.html | 6 +- .../public/cli-commands/npm-hook/index.html | 6 +- .../public/cli-commands/npm-init/index.html | 6 +- .../npm-install-ci-test/index.html | 6 +- .../cli-commands/npm-install-test/index.html | 6 +- .../cli-commands/npm-install/index.html | 6 +- .../public/cli-commands/npm-link/index.html | 6 +- .../public/cli-commands/npm-logout/index.html | 6 +- .../public/cli-commands/npm-ls/index.html | 8 +- .../public/cli-commands/npm-org/index.html | 6 +- .../cli-commands/npm-outdated/index.html | 6 +- .../public/cli-commands/npm-owner/index.html | 6 +- .../public/cli-commands/npm-pack/index.html | 6 +- .../public/cli-commands/npm-ping/index.html | 6 +- .../public/cli-commands/npm-prefix/index.html | 6 +- .../cli-commands/npm-profile/index.html | 6 +- .../public/cli-commands/npm-prune/index.html | 6 +- .../cli-commands/npm-publish/index.html | 6 +- .../cli-commands/npm-rebuild/index.html | 6 +- .../public/cli-commands/npm-repo/index.html | 6 +- .../cli-commands/npm-restart/index.html | 6 +- .../public/cli-commands/npm-root/index.html | 6 +- .../cli-commands/npm-run-script/index.html | 6 +- .../public/cli-commands/npm-search/index.html | 6 +- .../cli-commands/npm-shrinkwrap/index.html | 6 +- .../public/cli-commands/npm-star/index.html | 6 +- .../public/cli-commands/npm-stars/index.html | 6 +- .../public/cli-commands/npm-start/index.html | 6 +- .../public/cli-commands/npm-stop/index.html | 6 +- .../public/cli-commands/npm-team/index.html | 6 +- .../public/cli-commands/npm-test/index.html | 6 +- .../public/cli-commands/npm-token/index.html | 6 +- .../cli-commands/npm-uninstall/index.html | 6 +- .../cli-commands/npm-unpublish/index.html | 6 +- .../public/cli-commands/npm-update/index.html | 6 +- .../cli-commands/npm-version/index.html | 6 +- .../public/cli-commands/npm-view/index.html | 6 +- .../public/cli-commands/npm-whoami/index.html | 6 +- .../docs/public/cli-commands/npm/index.html | 18 +- .../public/configuring-npm/folders/index.html | 6 +- .../public/configuring-npm/install/index.html | 6 +- .../public/configuring-npm/npmrc/index.html | 6 +- .../configuring-npm/package-json/index.html | 6 +- .../package-lock-json/index.html | 6 +- .../configuring-npm/package-locks/index.html | 6 +- .../shrinkwrap-json/index.html | 6 +- .../v18/QldKNThLqRwH-OJ1UHjlKGlZ5q4.woff | Bin 21764 -> 0 bytes .../v18/QldKNThLqRwH-OJ1UHjlKGlZ5qg.woff2 | Bin 17472 -> 0 bytes .../v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_o.woff | Bin 25172 -> 0 bytes .../v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_w.woff2 | Bin 20336 -> 0 bytes deps/npm/docs/public/index.html | 4 +- .../docs/public/using-npm/config/index.html | 6 +- .../public/using-npm/developers/index.html | 6 +- .../docs/public/using-npm/disputes/index.html | 6 +- .../npm/docs/public/using-npm/orgs/index.html | 6 +- .../docs/public/using-npm/registry/index.html | 6 +- .../docs/public/using-npm/removal/index.html | 6 +- .../docs/public/using-npm/scope/index.html | 6 +- .../docs/public/using-npm/scripts/index.html | 48 ++- .../docs/public/using-npm/semver/index.html | 6 +- deps/npm/lib/init.js | 2 +- deps/npm/lib/install/deps.js | 8 +- deps/npm/lib/install/get-requested.js | 7 +- deps/npm/lib/install/inflate-shrinkwrap.js | 23 +- deps/npm/man/man1/npm-README.1 | 2 +- deps/npm/man/man1/npm-access.1 | 2 +- deps/npm/man/man1/npm-adduser.1 | 2 +- deps/npm/man/man1/npm-audit.1 | 2 +- deps/npm/man/man1/npm-bin.1 | 2 +- deps/npm/man/man1/npm-bugs.1 | 2 +- deps/npm/man/man1/npm-build.1 | 2 +- deps/npm/man/man1/npm-bundle.1 | 2 +- deps/npm/man/man1/npm-cache.1 | 2 +- deps/npm/man/man1/npm-ci.1 | 2 +- deps/npm/man/man1/npm-completion.1 | 2 +- deps/npm/man/man1/npm-config.1 | 2 +- deps/npm/man/man1/npm-dedupe.1 | 2 +- deps/npm/man/man1/npm-deprecate.1 | 2 +- deps/npm/man/man1/npm-dist-tag.1 | 2 +- deps/npm/man/man1/npm-docs.1 | 2 +- deps/npm/man/man1/npm-doctor.1 | 2 +- deps/npm/man/man1/npm-edit.1 | 2 +- deps/npm/man/man1/npm-explore.1 | 2 +- deps/npm/man/man1/npm-fund.1 | 2 +- deps/npm/man/man1/npm-help-search.1 | 2 +- deps/npm/man/man1/npm-help.1 | 2 +- deps/npm/man/man1/npm-hook.1 | 2 +- deps/npm/man/man1/npm-init.1 | 2 +- deps/npm/man/man1/npm-install-ci-test.1 | 2 +- deps/npm/man/man1/npm-install-test.1 | 2 +- deps/npm/man/man1/npm-install.1 | 2 +- deps/npm/man/man1/npm-link.1 | 2 +- deps/npm/man/man1/npm-logout.1 | 2 +- deps/npm/man/man1/npm-ls.1 | 4 +- deps/npm/man/man1/npm-org.1 | 2 +- deps/npm/man/man1/npm-outdated.1 | 2 +- deps/npm/man/man1/npm-owner.1 | 2 +- deps/npm/man/man1/npm-pack.1 | 2 +- deps/npm/man/man1/npm-ping.1 | 2 +- deps/npm/man/man1/npm-prefix.1 | 2 +- deps/npm/man/man1/npm-profile.1 | 2 +- deps/npm/man/man1/npm-prune.1 | 2 +- deps/npm/man/man1/npm-publish.1 | 2 +- deps/npm/man/man1/npm-rebuild.1 | 2 +- deps/npm/man/man1/npm-repo.1 | 2 +- deps/npm/man/man1/npm-restart.1 | 2 +- deps/npm/man/man1/npm-root.1 | 2 +- deps/npm/man/man1/npm-run-script.1 | 2 +- deps/npm/man/man1/npm-search.1 | 2 +- deps/npm/man/man1/npm-shrinkwrap.1 | 2 +- deps/npm/man/man1/npm-star.1 | 2 +- deps/npm/man/man1/npm-stars.1 | 2 +- deps/npm/man/man1/npm-start.1 | 2 +- deps/npm/man/man1/npm-stop.1 | 2 +- deps/npm/man/man1/npm-team.1 | 2 +- deps/npm/man/man1/npm-test.1 | 2 +- deps/npm/man/man1/npm-token.1 | 2 +- deps/npm/man/man1/npm-uninstall.1 | 2 +- deps/npm/man/man1/npm-unpublish.1 | 2 +- deps/npm/man/man1/npm-update.1 | 2 +- deps/npm/man/man1/npm-version.1 | 2 +- deps/npm/man/man1/npm-view.1 | 2 +- deps/npm/man/man1/npm-whoami.1 | 2 +- deps/npm/man/man1/npm.1 | 14 +- deps/npm/man/man5/folders.5 | 2 +- deps/npm/man/man5/install.5 | 2 +- deps/npm/man/man5/npmrc.5 | 2 +- deps/npm/man/man5/package-json.5 | 2 +- deps/npm/man/man5/package-lock-json.5 | 2 +- deps/npm/man/man5/package-locks.5 | 2 +- deps/npm/man/man5/shrinkwrap-json.5 | 2 +- deps/npm/man/man7/config.7 | 2 +- deps/npm/man/man7/developers.7 | 2 +- deps/npm/man/man7/disputes.7 | 2 +- deps/npm/man/man7/orgs.7 | 2 +- deps/npm/man/man7/registry.7 | 2 +- deps/npm/man/man7/removal.7 | 2 +- deps/npm/man/man7/scope.7 | 2 +- deps/npm/man/man7/scripts.7 | 44 ++- deps/npm/man/man7/semver.7 | 2 +- .../node_modules/graceful-fs/graceful-fs.js | 30 +- .../npm/node_modules/graceful-fs/package.json | 22 +- deps/npm/node_modules/mkdirp/README.markdown | 4 +- deps/npm/node_modules/mkdirp/index.js | 4 +- deps/npm/node_modules/mkdirp/package.json | 22 +- deps/npm/node_modules/nopt/.npmignore | 1 - deps/npm/node_modules/nopt/.travis.yml | 8 - .../node_modules/nopt/examples/my-program.js | 30 -- deps/npm/node_modules/nopt/lib/nopt.js | 7 +- deps/npm/node_modules/nopt/package.json | 44 +-- deps/npm/node_modules/nopt/test/basic.js | 303 ------------------ .../npm-registry-fetch/CHANGELOG.md | 5 + .../node_modules/npm-registry-fetch/README.md | 2 +- .../node_modules/npm-registry-fetch/config.js | 2 +- .../npm-registry-fetch/package.json | 22 +- deps/npm/package.json | 10 +- deps/npm/scripts/release.sh | 2 + .../test/tap/install-dep-classification.js | 6 +- 185 files changed, 567 insertions(+), 797 deletions(-) delete mode 100644 deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5q4.woff delete mode 100644 deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5qg.woff2 delete mode 100644 deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_o.woff delete mode 100644 deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_w.woff2 delete mode 100644 deps/npm/node_modules/nopt/.npmignore delete mode 100644 deps/npm/node_modules/nopt/.travis.yml delete mode 100755 deps/npm/node_modules/nopt/examples/my-program.js delete mode 100644 deps/npm/node_modules/nopt/test/basic.js diff --git a/deps/npm/.npmignore b/deps/npm/.npmignore index c42aaf956257..f45f47b93829 100644 --- a/deps/npm/.npmignore +++ b/deps/npm/.npmignore @@ -24,5 +24,5 @@ html/*.png *.pyc - +Session.vim .nyc_output diff --git a/deps/npm/.travis.yml b/deps/npm/.travis.yml index cec3aac226b1..9fb0d5113369 100644 --- a/deps/npm/.travis.yml +++ b/deps/npm/.travis.yml @@ -12,9 +12,6 @@ node_js: env: "DEPLOY_VERSION=testing" -notifications: - slack: npm-inc:kRqQjto7YbINqHPb1X6nS3g8 - install: - "node . install" diff --git a/deps/npm/AUTHORS b/deps/npm/AUTHORS index c2a38c02d53f..08cade33b6ff 100644 --- a/deps/npm/AUTHORS +++ b/deps/npm/AUTHORS @@ -691,3 +691,7 @@ Vitaliy Markitanov <9357021+vit100@users.noreply.github.com> simon_s John Kennedy Bernard Kitchens +Jarda Snajdr +Naix Geng <1308363651@qq.com> +Dylan Treisman +mum-never-proud diff --git a/deps/npm/CHANGELOG.md b/deps/npm/CHANGELOG.md index 5cd9c8d8f886..bae7de706056 100644 --- a/deps/npm/CHANGELOG.md +++ b/deps/npm/CHANGELOG.md @@ -1,3 +1,18 @@ +## 6.14.5 (2020-05-01) + +### BUG FIXES + +* [`33ec41f18`](https://github.com/npm/cli/commit/33ec41f18f557146607cb14a7a38c707fce6d42c) [#758](https://github.com/npm/cli/pull/758) fix: relativize file links when inflating shrinkwrap ([@jsnajdr](https://github.com/jsnajdr)) +* [`94ed456df`](https://github.com/npm/cli/commit/94ed456dfb0b122fd4192429024f034d06c3c454) [#1162](https://github.com/npm/cli/pull/1162) fix: npm init help output ([@mum-never-proud](https://github.com/mum-never-proud)) + +### DEPENDENCIES + +* [`5587ac01f`](https://github.com/npm/cli/commit/5587ac01ffd0d2ea830a6bbb67bb34a611ffc409) `npm-registry-fetch@4.0.4` + * [`fc5d94c39`](https://github.com/npm/npm-registry-fetch/commit/fc5d94c39ca218d78df77249ab3a6bf1d9ed9db1) fix: removed default timeout +* [`07a4d8884`](https://github.com/npm/cli/commit/07a4d8884448359bac485a49c05fd2d23d06834b) `graceful-fs@4.2.4` +* [`8228d1f2e`](https://github.com/npm/cli/commit/8228d1f2e427ad9adee617266108acd1ee39b4a5) `mkdirp@0.5.5` +* [`e6d208317`](https://github.com/npm/cli/commit/e6d20831740a84aea766da2a2913cf82a4d56ada) `nopt@4.0.3` + ## 6.14.4 (2020-03-24) ### DEPENDENCIES diff --git a/deps/npm/CONTRIBUTING.md b/deps/npm/CONTRIBUTING.md index 981f0457d5c6..c08bd090cb64 100644 --- a/deps/npm/CONTRIBUTING.md +++ b/deps/npm/CONTRIBUTING.md @@ -73,7 +73,7 @@ All interactions in the npm repository are covered by the [npm Code of Conduct]( # Make sure you install the dependencies first before running tests. $ npm install -# Run tests for the CLI (it could take awhile). +# Run tests for the CLI (it could take a while). $ npm run test ``` @@ -97,7 +97,7 @@ $ make link ################# # ALTERNATIVELY ################# -# If ou're working on a feature or bug, you can run the same command on your +# If you're working on a feature or bug, you can run the same command on your # working branch and link that code. # Create new branch to work from (there are many ways) @@ -130,7 +130,7 @@ let you know that it's sent the request to start the benchmark suite. ![image](https://user-images.githubusercontent.com/2818462/72312698-e2e57f80-3656-11ea-9fcf-4a8f6b97b0d1.png) -If you've updated your pull-reuqest and you'd like to run the the benchmark suite again, simple update your original comment, by adding `test this please ✅` again, or simply just adding another emoji to the **end**. _(The trigger is the phrase "test this please ✅" at the beginning of a comment. Updates will trigger as well, so long as the phrase stays at the beginning.)_. +If you've updated your pull-request and you'd like to run the the benchmark suite again, simple update your original comment, by adding `test this please ✅` again, or simply just adding another emoji to the **end**. _(The trigger is the phrase "test this please ✅" at the beginning of a comment. Updates will trigger as well, so long as the phrase stays at the beginning.)_. ![image](https://user-images.githubusercontent.com/2818462/72313006-ec231c00-3657-11ea-9bd9-227634d67362.png) diff --git a/deps/npm/docs/content/cli-commands/npm.md b/deps/npm/docs/content/cli-commands/npm.md index 01a9308204d1..2d9789dd77c1 100644 --- a/deps/npm/docs/content/cli-commands/npm.md +++ b/deps/npm/docs/content/cli-commands/npm.md @@ -57,14 +57,14 @@ on a preinstalled git. If one of the packages npm tries to install is a native node module and requires compiling of C++ Code, npm will use -[node-gyp](https://github.com/TooTallNate/node-gyp) for that task. -For a Unix system, [node-gyp](https://github.com/TooTallNate/node-gyp) +[node-gyp](https://github.com/nodejs/node-gyp) for that task. +For a Unix system, [node-gyp](https://github.com/nodejs/node-gyp) needs Python, make and a buildchain like GCC. On Windows, Python and Microsoft Visual Studio C++ are needed. Python 3 is -not supported by [node-gyp](https://github.com/TooTallNate/node-gyp). +not supported by [node-gyp](https://github.com/nodejs/node-gyp). For more information visit -[the node-gyp repository](https://github.com/TooTallNate/node-gyp) and -the [node-gyp Wiki](https://github.com/TooTallNate/node-gyp/wiki). +[the node-gyp repository](https://github.com/nodejs/node-gyp) and +the [node-gyp Wiki](https://github.com/nodejs/node-gyp/wiki). ### Directories diff --git a/deps/npm/docs/content/using-npm/scripts.md b/deps/npm/docs/content/using-npm/scripts.md index a9ca433fdea0..befedd0724aa 100644 --- a/deps/npm/docs/content/using-npm/scripts.md +++ b/deps/npm/docs/content/using-npm/scripts.md @@ -145,9 +145,15 @@ suites, then those executables will be added to the `PATH` for executing the scripts. So, if your package.json has this: ```json -{ "name" : "foo" -, "dependencies" : { "bar" : "0.1.x" } -, "scripts": { "start" : "bar ./test" } } +{ + "name" : "foo", + "dependencies" : { + "bar" : "0.1.x" + }, + "scripts": { + "start" : "bar ./test" + } +} ``` then you could run `npm start` to execute the `bar` script, which is @@ -176,9 +182,15 @@ there is a config param of `[@]:`. For example, if the package.json has this: ```json -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server.js" } } +{ + "name" : "foo", + "config" : { + "port" : "8080" + }, + "scripts" : { + "start" : "node server.js" + } +} ``` and the server.js is this: @@ -213,10 +225,11 @@ process.env.npm_package_scripts_install === "foo.js" For example, if your package.json contains this: ```json -{ "scripts" : - { "install" : "scripts/install.js" - , "postinstall" : "scripts/postinstall.js" - , "uninstall" : "scripts/uninstall.js" +{ + "scripts" : { + "install" : "scripts/install.js", + "postinstall" : "scripts/install.js", + "uninstall" : "scripts/uninstall.js" } } ``` @@ -232,10 +245,11 @@ If you want to run a make command, you can do so. This works just fine: ```json -{ "scripts" : - { "preinstall" : "./configure" - , "install" : "make && make install" - , "test" : "make test" +{ + "scripts" : { + "preinstall" : "./configure", + "install" : "make && make install", + "test" : "make test" } } ``` diff --git a/deps/npm/docs/public/cli-commands/npm-access/index.html b/deps/npm/docs/public/cli-commands/npm-access/index.html index f3853e530b6b..63df3a372837 100644 --- a/deps/npm/docs/public/cli-commands/npm-access/index.html +++ b/deps/npm/docs/public/cli-commands/npm-access/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm access

+

npm access

Set access level on published packages

Synopsis

npm access public [<package>]
@@ -148,4 +148,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-adduser/index.html b/deps/npm/docs/public/cli-commands/npm-adduser/index.html index 7b96fcce6770..ada805d20584 100644 --- a/deps/npm/docs/public/cli-commands/npm-adduser/index.html +++ b/deps/npm/docs/public/cli-commands/npm-adduser/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

+

section: cli-commands title: npm-adduser description: Set access level on published packages

@@ -143,4 +143,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-audit/index.html b/deps/npm/docs/public/cli-commands/npm-audit/index.html index 5d57fac3d4e3..78afd583ec19 100644 --- a/deps/npm/docs/public/cli-commands/npm-audit/index.html +++ b/deps/npm/docs/public/cli-commands/npm-audit/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm audit

+

npm audit

Run a security audit

Synopsis

npm audit [--json|--parseable|--audit-level=(low|moderate|high|critical)]
@@ -165,4 +165,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bin/index.html b/deps/npm/docs/public/cli-commands/npm-bin/index.html index c54afe93556a..ba6fd6ea4d2a 100644 --- a/deps/npm/docs/public/cli-commands/npm-bin/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bin/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm bin

+

npm bin

Display npm bin folder

Synopsis

npm bin [-g|--global]
@@ -94,4 +94,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bugs/index.html b/deps/npm/docs/public/cli-commands/npm-bugs/index.html index d9f5b5282ff2..b93cd6604c1b 100644 --- a/deps/npm/docs/public/cli-commands/npm-bugs/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bugs/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm bugs

+

npm bugs

Bugs for a package in a web browser maybe

Synopsis

npm bugs [<pkgname>]
@@ -114,4 +114,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-build/index.html b/deps/npm/docs/public/cli-commands/npm-build/index.html index 8850a4e9d88f..b0e8aeaa7b78 100644 --- a/deps/npm/docs/public/cli-commands/npm-build/index.html +++ b/deps/npm/docs/public/cli-commands/npm-build/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm build

+

npm build

Build a package

Synopsis

npm build [<package-folder>]
@@ -100,4 +100,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-bundle/index.html b/deps/npm/docs/public/cli-commands/npm-bundle/index.html index 9e8457cc5ac1..2be5194916c7 100644 --- a/deps/npm/docs/public/cli-commands/npm-bundle/index.html +++ b/deps/npm/docs/public/cli-commands/npm-bundle/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm bundle

+

npm bundle

REMOVED

Description

The npm bundle command has been removed in 1.0, for the simple reason @@ -91,4 +91,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-cache/index.html b/deps/npm/docs/public/cli-commands/npm-cache/index.html index bbf164e0fb1e..481cc9e44c58 100644 --- a/deps/npm/docs/public/cli-commands/npm-cache/index.html +++ b/deps/npm/docs/public/cli-commands/npm-cache/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm cache

+

npm cache

Manipulates packages cache

Synopsis

npm cache add <tarball file>
@@ -145,4 +145,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ci/index.html b/deps/npm/docs/public/cli-commands/npm-ci/index.html index 08b46aff44b0..5b671a8a751d 100644 --- a/deps/npm/docs/public/cli-commands/npm-ci/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ci/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm ci

+

npm ci

Install a project with a clean slate

Synopsis

npm ci
@@ -122,4 +122,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-completion/index.html b/deps/npm/docs/public/cli-commands/npm-completion/index.html index 0a8d28382f08..8ffddbecb65d 100644 --- a/deps/npm/docs/public/cli-commands/npm-completion/index.html +++ b/deps/npm/docs/public/cli-commands/npm-completion/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm completion

+

npm completion

Tab Completion for npm

Synopsis

source <(npm completion)
@@ -104,4 +104,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-config/index.html b/deps/npm/docs/public/cli-commands/npm-config/index.html index 5f6c38423fd1..7d6227d2d9db 100644 --- a/deps/npm/docs/public/cli-commands/npm-config/index.html +++ b/deps/npm/docs/public/cli-commands/npm-config/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm config

+

npm config

Manage the npm configuration files

Synopsis

npm config set <key> <value> [-g|--global]
@@ -128,4 +128,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-dedupe/index.html b/deps/npm/docs/public/cli-commands/npm-dedupe/index.html index 0b9b4e795290..88d4bddb6f84 100644 --- a/deps/npm/docs/public/cli-commands/npm-dedupe/index.html +++ b/deps/npm/docs/public/cli-commands/npm-dedupe/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm dedupe

+

npm dedupe

Reduce duplication

Synopsis

npm dedupe
@@ -121,4 +121,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-deprecate/index.html b/deps/npm/docs/public/cli-commands/npm-deprecate/index.html index 503e6ec7fc46..1bb22d2979f3 100644 --- a/deps/npm/docs/public/cli-commands/npm-deprecate/index.html +++ b/deps/npm/docs/public/cli-commands/npm-deprecate/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm deprecate

+

npm deprecate

Deprecate a version of a package

Synopsis

npm deprecate <pkg>[@<version>] <message>
@@ -100,4 +100,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html b/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html index 7955f8def330..4201cb3f3c74 100644 --- a/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html +++ b/deps/npm/docs/public/cli-commands/npm-dist-tag/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

+

section: cli-commands title: npm-dist-tag description: Modify package distribution tags

@@ -149,4 +149,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-docs/index.html b/deps/npm/docs/public/cli-commands/npm-docs/index.html index 42f18e75075c..b5dedd56d12a 100644 --- a/deps/npm/docs/public/cli-commands/npm-docs/index.html +++ b/deps/npm/docs/public/cli-commands/npm-docs/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm docs

+

npm docs

Docs for a package in a web browser maybe

Synopsis

npm docs [<pkgname> [<pkgname> ...]]
@@ -115,4 +115,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-doctor/index.html b/deps/npm/docs/public/cli-commands/npm-doctor/index.html index ac94c50d0edc..a38eb67e3d21 100644 --- a/deps/npm/docs/public/cli-commands/npm-doctor/index.html +++ b/deps/npm/docs/public/cli-commands/npm-doctor/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm doctor

+

npm doctor

Check your environments

Synopsis

npm doctor
@@ -163,4 +163,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-edit/index.html b/deps/npm/docs/public/cli-commands/npm-edit/index.html index bddb1c09c83a..d0a8bf18f0ff 100644 --- a/deps/npm/docs/public/cli-commands/npm-edit/index.html +++ b/deps/npm/docs/public/cli-commands/npm-edit/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm edit

+

npm edit

Edit an installed package

Synopsis

npm edit <pkg>[/<subpkg>...]
@@ -110,4 +110,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-explore/index.html b/deps/npm/docs/public/cli-commands/npm-explore/index.html index 97f438294558..91374a0fac95 100644 --- a/deps/npm/docs/public/cli-commands/npm-explore/index.html +++ b/deps/npm/docs/public/cli-commands/npm-explore/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

+

section: cli-commands title: npm-explore description: Browse an installed package

@@ -114,4 +114,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-fund/index.html b/deps/npm/docs/public/cli-commands/npm-fund/index.html index f58901446cd5..3d160d633ac5 100644 --- a/deps/npm/docs/public/cli-commands/npm-fund/index.html +++ b/deps/npm/docs/public/cli-commands/npm-fund/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm fund

+

npm fund

Retrieve funding information

Synopsis

    npm fund [<pkg>]
@@ -128,4 +128,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-help-search/index.html b/deps/npm/docs/public/cli-commands/npm-help-search/index.html index abd84b775782..e9cc5ffc7ef4 100644 --- a/deps/npm/docs/public/cli-commands/npm-help-search/index.html +++ b/deps/npm/docs/public/cli-commands/npm-help-search/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm help-search

+

npm help-search

Search npm help documentation

Synopsis

npm help-search <text>
@@ -105,4 +105,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-help/index.html b/deps/npm/docs/public/cli-commands/npm-help/index.html index e38710dc87f5..0a8ab53f2a48 100644 --- a/deps/npm/docs/public/cli-commands/npm-help/index.html +++ b/deps/npm/docs/public/cli-commands/npm-help/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm help

+

npm help

Get help on npm

Synopsis

npm help <term> [<terms..>]
@@ -107,4 +107,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-hook/index.html b/deps/npm/docs/public/cli-commands/npm-hook/index.html index bd3e717c8295..d60bcddbb96a 100644 --- a/deps/npm/docs/public/cli-commands/npm-hook/index.html +++ b/deps/npm/docs/public/cli-commands/npm-hook/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm hook

+

npm hook

Manage registry hooks

Synopsis

npm hook ls [pkg]
@@ -119,4 +119,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-init/index.html b/deps/npm/docs/public/cli-commands/npm-init/index.html index 0515fcadc6ce..9b51a55ff464 100644 --- a/deps/npm/docs/public/cli-commands/npm-init/index.html +++ b/deps/npm/docs/public/cli-commands/npm-init/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm init

+

npm init

create a package.json file

Synopsis

npm init [--force|-f|--yes|-y|--scope]
@@ -126,4 +126,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html b/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html index 78f717dc33e5..ca152fa1cd23 100644 --- a/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install-ci-test/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm install-ci-test

+

npm install-ci-test

Install a project with a clean slate and run tests

Synopsis

npm install-ci-test
@@ -93,4 +93,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install-test/index.html b/deps/npm/docs/public/cli-commands/npm-install-test/index.html index d63b61afcf12..368eb1929d46 100644 --- a/deps/npm/docs/public/cli-commands/npm-install-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install-test/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm install-test

+

npm install-test

Install package(s) and run tests

Synopsis

npm install-test (with no args, in package dir)
@@ -102,4 +102,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-install/index.html b/deps/npm/docs/public/cli-commands/npm-install/index.html index 16a98c965a6d..8e8b3fd7ff4b 100644 --- a/deps/npm/docs/public/cli-commands/npm-install/index.html +++ b/deps/npm/docs/public/cli-commands/npm-install/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm install

+

npm install

Install a package

Synopsis

npm install (with no args, in package dir)
@@ -468,4 +468,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-link/index.html b/deps/npm/docs/public/cli-commands/npm-link/index.html index 5b568995d620..c19007eb504f 100644 --- a/deps/npm/docs/public/cli-commands/npm-link/index.html +++ b/deps/npm/docs/public/cli-commands/npm-link/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm link

+

npm link

Synopsis

npm link (in package dir)
@@ -134,4 +134,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-logout/index.html b/deps/npm/docs/public/cli-commands/npm-logout/index.html index 7e4ce934fb5c..6a357ee4d358 100644 --- a/deps/npm/docs/public/cli-commands/npm-logout/index.html +++ b/deps/npm/docs/public/cli-commands/npm-logout/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm logout

+

npm logout

Log out of the registry

Synopsis

npm logout [--registry=<url>] [--scope=<@scope>]
@@ -109,4 +109,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ls/index.html b/deps/npm/docs/public/cli-commands/npm-ls/index.html index 89ed133f3ab2..e879abe100bc 100644 --- a/deps/npm/docs/public/cli-commands/npm-ls/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ls/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm ls

+
\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-org/index.html b/deps/npm/docs/public/cli-commands/npm-org/index.html index 0a7800216e28..456c231887b5 100644 --- a/deps/npm/docs/public/cli-commands/npm-org/index.html +++ b/deps/npm/docs/public/cli-commands/npm-org/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm org

+

npm org

Manage orgs

Synopsis

npm org set <orgname> <username> [developer | admin | owner]
@@ -107,4 +107,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-outdated/index.html b/deps/npm/docs/public/cli-commands/npm-outdated/index.html index 77274aff6bf2..8fe29cc37003 100644 --- a/deps/npm/docs/public/cli-commands/npm-outdated/index.html +++ b/deps/npm/docs/public/cli-commands/npm-outdated/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm outdated

+

npm outdated

Check for outdated packages

Synopsis

npm outdated [[<@scope>/]<pkg> ...]
@@ -178,4 +178,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-owner/index.html b/deps/npm/docs/public/cli-commands/npm-owner/index.html index d128bf2ff113..64784997a926 100644 --- a/deps/npm/docs/public/cli-commands/npm-owner/index.html +++ b/deps/npm/docs/public/cli-commands/npm-owner/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm owner

+

npm owner

Manage package owners

Synopsis

npm owner add <user> [<@scope>/]<pkg>
@@ -114,4 +114,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-pack/index.html b/deps/npm/docs/public/cli-commands/npm-pack/index.html index 1bdd218cfb3f..f07ac85d9e5b 100644 --- a/deps/npm/docs/public/cli-commands/npm-pack/index.html +++ b/deps/npm/docs/public/cli-commands/npm-pack/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm pack

+

npm pack

Create a tarball from a package

Synopsis

npm pack [[<@scope>/]<pkg>...] [--dry-run]
@@ -102,4 +102,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-ping/index.html b/deps/npm/docs/public/cli-commands/npm-ping/index.html index 478c206499f7..b6d0f2b6be43 100644 --- a/deps/npm/docs/public/cli-commands/npm-ping/index.html +++ b/deps/npm/docs/public/cli-commands/npm-ping/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm ping

+

npm ping

Ping npm registry

Synopsis

npm ping [--registry <registry>]
@@ -95,4 +95,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-prefix/index.html b/deps/npm/docs/public/cli-commands/npm-prefix/index.html index aa5515abf372..4f7aea9576a8 100644 --- a/deps/npm/docs/public/cli-commands/npm-prefix/index.html +++ b/deps/npm/docs/public/cli-commands/npm-prefix/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm prefix

+

npm prefix

Display prefix

Synopsis

npm prefix [-g]
@@ -98,4 +98,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-profile/index.html b/deps/npm/docs/public/cli-commands/npm-profile/index.html index 97617c3fb01b..dfef3141e6ca 100644 --- a/deps/npm/docs/public/cli-commands/npm-profile/index.html +++ b/deps/npm/docs/public/cli-commands/npm-profile/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm profile

+

npm profile

Change settings on your registry profile

Synopsis

npm profile get [--json|--parseable] [<property>]
@@ -148,4 +148,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-prune/index.html b/deps/npm/docs/public/cli-commands/npm-prune/index.html index 8dc6092402f5..2b6ae9f754aa 100644 --- a/deps/npm/docs/public/cli-commands/npm-prune/index.html +++ b/deps/npm/docs/public/cli-commands/npm-prune/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm prune

+

npm prune

Remove extraneous packages

Synopsis

npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]
@@ -108,4 +108,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-publish/index.html b/deps/npm/docs/public/cli-commands/npm-publish/index.html index 4ba3e0db6582..f5ddb1f7b6f8 100644 --- a/deps/npm/docs/public/cli-commands/npm-publish/index.html +++ b/deps/npm/docs/public/cli-commands/npm-publish/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm publish

+

npm publish

Publish a package

Synopsis

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]
@@ -140,4 +140,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-rebuild/index.html b/deps/npm/docs/public/cli-commands/npm-rebuild/index.html index 1be8c3443329..667eb2d96b79 100644 --- a/deps/npm/docs/public/cli-commands/npm-rebuild/index.html +++ b/deps/npm/docs/public/cli-commands/npm-rebuild/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm rebuild

+

npm rebuild

Rebuild a package

Synopsis

npm rebuild [[<@scope>/<name>]...]
@@ -93,4 +93,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-repo/index.html b/deps/npm/docs/public/cli-commands/npm-repo/index.html index 790ee382f5e9..da85949c1438 100644 --- a/deps/npm/docs/public/cli-commands/npm-repo/index.html +++ b/deps/npm/docs/public/cli-commands/npm-repo/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm repo

+

npm repo

Open package repository page in the browser

Synopsis

npm repo [<pkg>]
@@ -101,4 +101,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-restart/index.html b/deps/npm/docs/public/cli-commands/npm-restart/index.html index 0a360a63e88e..cde0b9bf741e 100644 --- a/deps/npm/docs/public/cli-commands/npm-restart/index.html +++ b/deps/npm/docs/public/cli-commands/npm-restart/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm restart

+

npm restart

Restart a package

Synopsis

npm restart [-- <args>]
@@ -113,4 +113,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-root/index.html b/deps/npm/docs/public/cli-commands/npm-root/index.html index 28c9770f184c..1018371d5e88 100644 --- a/deps/npm/docs/public/cli-commands/npm-root/index.html +++ b/deps/npm/docs/public/cli-commands/npm-root/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm root

+

npm root

Display npm root

Synopsis

npm root [-g]
@@ -94,4 +94,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-run-script/index.html b/deps/npm/docs/public/cli-commands/npm-run-script/index.html index 3afd3d51c62c..3d4e3fed8109 100644 --- a/deps/npm/docs/public/cli-commands/npm-run-script/index.html +++ b/deps/npm/docs/public/cli-commands/npm-run-script/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm run-script

+

npm run-script

Run arbitrary package scripts

Synopsis

npm run-script <command> [--silent] [-- <args>...]
@@ -143,4 +143,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-search/index.html b/deps/npm/docs/public/cli-commands/npm-search/index.html index d97c2b26efa3..77968fc78a57 100644 --- a/deps/npm/docs/public/cli-commands/npm-search/index.html +++ b/deps/npm/docs/public/cli-commands/npm-search/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm search

+

npm search

Search for packages

Synopsis

npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...]
@@ -168,4 +168,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html b/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html index 2cff81bb8c89..7ac4b1117182 100644 --- a/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html +++ b/deps/npm/docs/public/cli-commands/npm-shrinkwrap/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm shrinkwrap

+

npm shrinkwrap

Lock down dependency versions for publication

Synopsis

npm shrinkwrap
@@ -101,4 +101,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-star/index.html b/deps/npm/docs/public/cli-commands/npm-star/index.html index d0c887c754a1..5186681c685a 100644 --- a/deps/npm/docs/public/cli-commands/npm-star/index.html +++ b/deps/npm/docs/public/cli-commands/npm-star/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm star

+

npm star

Mark your favorite packages

Synopsis

npm star [<pkg>...]
@@ -96,4 +96,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-stars/index.html b/deps/npm/docs/public/cli-commands/npm-stars/index.html index 226a132de820..9edac6d450dd 100644 --- a/deps/npm/docs/public/cli-commands/npm-stars/index.html +++ b/deps/npm/docs/public/cli-commands/npm-stars/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm stars

+

npm stars

View packages marked as favorites

Synopsis

npm stars [<user>]
@@ -96,4 +96,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-start/index.html b/deps/npm/docs/public/cli-commands/npm-start/index.html index 387e4fe959e9..f16afcecd2b1 100644 --- a/deps/npm/docs/public/cli-commands/npm-start/index.html +++ b/deps/npm/docs/public/cli-commands/npm-start/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm start

+

npm start

Start a package

Synopsis

npm start [-- <args>]
@@ -98,4 +98,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-stop/index.html b/deps/npm/docs/public/cli-commands/npm-stop/index.html index e6fed3aeec6c..07ba9067e273 100644 --- a/deps/npm/docs/public/cli-commands/npm-stop/index.html +++ b/deps/npm/docs/public/cli-commands/npm-stop/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm stop

+

npm stop

Stop a package

Synopsis

npm stop [-- <args>]
@@ -94,4 +94,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-team/index.html b/deps/npm/docs/public/cli-commands/npm-team/index.html index 6d6a0bd0866a..c8776ba911df 100644 --- a/deps/npm/docs/public/cli-commands/npm-team/index.html +++ b/deps/npm/docs/public/cli-commands/npm-team/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm team

+

npm team

Manage organization teams and team memberships

Synopsis

npm team create <scope:team>
@@ -125,4 +125,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-test/index.html b/deps/npm/docs/public/cli-commands/npm-test/index.html index 7f47f2ab2d32..4b7638d88424 100644 --- a/deps/npm/docs/public/cli-commands/npm-test/index.html +++ b/deps/npm/docs/public/cli-commands/npm-test/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm test

+

npm test

Test a package

Synopsis

npm test [-- <args>]
@@ -96,4 +96,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-token/index.html b/deps/npm/docs/public/cli-commands/npm-token/index.html index 10f880ea2e13..4ee8f7539b1e 100644 --- a/deps/npm/docs/public/cli-commands/npm-token/index.html +++ b/deps/npm/docs/public/cli-commands/npm-token/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm token

+

npm token

Manage your authentication tokens

Synopsis

  npm token list [--json|--parseable]
@@ -133,4 +133,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-uninstall/index.html b/deps/npm/docs/public/cli-commands/npm-uninstall/index.html index 059bac05a46a..8bc3b7a03ee8 100644 --- a/deps/npm/docs/public/cli-commands/npm-uninstall/index.html +++ b/deps/npm/docs/public/cli-commands/npm-uninstall/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm uninstall

+

npm uninstall

Remove a package

Synopsis

npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save]
@@ -118,4 +118,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-unpublish/index.html b/deps/npm/docs/public/cli-commands/npm-unpublish/index.html index f9ea9a44155b..e04fc2082304 100644 --- a/deps/npm/docs/public/cli-commands/npm-unpublish/index.html +++ b/deps/npm/docs/public/cli-commands/npm-unpublish/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm unpublish

+

npm unpublish

Remove a package from the registry

Synopsis

Unpublishing a single version of a package

@@ -106,4 +106,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-update/index.html b/deps/npm/docs/public/cli-commands/npm-update/index.html index e6653d1f1908..094b12d0f5f3 100644 --- a/deps/npm/docs/public/cli-commands/npm-update/index.html +++ b/deps/npm/docs/public/cli-commands/npm-update/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm update

+

npm update

Update a package

Synopsis

npm update [-g] [<pkg>...]
@@ -167,4 +167,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-version/index.html b/deps/npm/docs/public/cli-commands/npm-version/index.html index d540d9d25476..9260a0a6b2e1 100644 --- a/deps/npm/docs/public/cli-commands/npm-version/index.html +++ b/deps/npm/docs/public/cli-commands/npm-version/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm version

+

npm version

Bump a package version

Synopsis

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]
@@ -180,4 +180,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-view/index.html b/deps/npm/docs/public/cli-commands/npm-view/index.html index c9345b8d0893..66bf9750c71c 100644 --- a/deps/npm/docs/public/cli-commands/npm-view/index.html +++ b/deps/npm/docs/public/cli-commands/npm-view/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm view

+

npm view

View registry info

Synopsis

npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
@@ -145,4 +145,4 @@ 

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm-whoami/index.html b/deps/npm/docs/public/cli-commands/npm-whoami/index.html index e0c37ba0252c..7f25283a705b 100644 --- a/deps/npm/docs/public/cli-commands/npm-whoami/index.html +++ b/deps/npm/docs/public/cli-commands/npm-whoami/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm whoami

+

npm whoami

Display npm username

Synopsis

npm whoami [--registry <registry>]
@@ -92,4 +92,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/cli-commands/npm/index.html b/deps/npm/docs/public/cli-commands/npm/index.html index 0d06bfb33ab2..d6c68a007329 100644 --- a/deps/npm/docs/public/cli-commands/npm/index.html +++ b/deps/npm/docs/public/cli-commands/npm/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm

+

npm

javascript package manager

Synopsis

npm <command> [args]

Version

-

6.14.4

+

6.14.5

Description

npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency @@ -106,14 +106,14 @@

If one of the packages npm tries to install is a native node module and requires compiling of C++ Code, npm will use -node-gyp for that task. -For a Unix system, node-gyp +node-gyp for that task. +For a Unix system, node-gyp needs Python, make and a buildchain like GCC. On Windows, Python and Microsoft Visual Studio C++ are needed. Python 3 is -not supported by node-gyp. +not supported by node-gyp. For more information visit -the node-gyp repository and -the node-gyp Wiki.

+the node-gyp repository and +the node-gyp Wiki.

Directories

See folders to learn about where npm puts stuff.

In particular, npm has two modes of operation:

@@ -211,4 +211,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/folders/index.html b/deps/npm/docs/public/configuring-npm/folders/index.html index a48d6c70ff5f..3a7b2078ced9 100644 --- a/deps/npm/docs/public/configuring-npm/folders/index.html +++ b/deps/npm/docs/public/configuring-npm/folders/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

folders

+

folders

Folder Structures Used by npm

Description

npm puts various things on your computer. That's its job.

@@ -240,4 +240,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/install/index.html b/deps/npm/docs/public/configuring-npm/install/index.html index 1464ac5477af..5587e72e5887 100644 --- a/deps/npm/docs/public/configuring-npm/install/index.html +++ b/deps/npm/docs/public/configuring-npm/install/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

install

+

install

Download and Install npm

Description

To publish and install packages to and from the public npm registry, you must install Node.js and the npm command line interface using either a Node version manager or a Node installer. We strongly recommend using a Node version manager to install Node.js and npm. We do not recommend using a Node installer, since the Node installation process installs npm in a directory with local permissions and can cause permissions errors when you run npm packages globally.

@@ -123,4 +123,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/npmrc/index.html b/deps/npm/docs/public/configuring-npm/npmrc/index.html index e1a2c4efda16..b654a7f6aaf3 100644 --- a/deps/npm/docs/public/configuring-npm/npmrc/index.html +++ b/deps/npm/docs/public/configuring-npm/npmrc/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npmrc

+

npmrc

The npm config files

Description

npm gets its config settings from the command line, environment @@ -145,4 +145,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-json/index.html b/deps/npm/docs/public/configuring-npm/package-json/index.html index 0c18b027fdb7..2edfaff524cf 100644 --- a/deps/npm/docs/public/configuring-npm/package-json/index.html +++ b/deps/npm/docs/public/configuring-npm/package-json/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

package.json

+

package.json

Specifics of npm's package.json handling

Description

This document is all you need to know about what's required in your package.json @@ -713,4 +713,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-lock-json/index.html b/deps/npm/docs/public/configuring-npm/package-lock-json/index.html index 6ffd16ebed35..fe061fbb6ad1 100644 --- a/deps/npm/docs/public/configuring-npm/package-lock-json/index.html +++ b/deps/npm/docs/public/configuring-npm/package-lock-json/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

package-lock.json

+

package-lock.json

A manifestation of the manifest

Description

package-lock.json is automatically generated for any operations where npm @@ -186,4 +186,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/package-locks/index.html b/deps/npm/docs/public/configuring-npm/package-locks/index.html index 535f83b28e08..b2e311e1addb 100644 --- a/deps/npm/docs/public/configuring-npm/package-locks/index.html +++ b/deps/npm/docs/public/configuring-npm/package-locks/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

package-locks

+

package-locks

An explanation of npm lockfiles

Description

Conceptually, the "input" to npm install is a package.json, while its @@ -214,4 +214,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html b/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html index e2ff06feb4c3..7219fb663ead 100644 --- a/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html +++ b/deps/npm/docs/public/configuring-npm/shrinkwrap-json/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

npm shrinkwrap.json

+

npm shrinkwrap.json

A publishable lockfile

Description

npm-shrinkwrap.json is a file created by npm shrinkwrap. It is identical to @@ -102,4 +102,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5q4.woff b/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5q4.woff deleted file mode 100644 index 9771531d13dd6ea24f9bac976573d14d7880f6e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21764 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

P)GKALp;r>c_14rVh$KFE_<5vTQ)C= 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 diff --git a/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5qg.woff2 b/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldKNThLqRwH-OJ1UHjlKGlZ5qg.woff2 deleted file mode 100644 index 77829329c652e995b779d575754a50a464533b26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17472 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 Q))Y1d7Z(5<11b^#0H9iCumAu6 diff --git a/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_w.woff2 b/deps/npm/docs/public/google-fonts/s/inconsolata/v18/QldXNThLqRwH-OJ1UHjlKGHiw71p5_w.woff2 deleted file mode 100644 index 8be24ab2809ad54732bd20017e91f83db3b9f330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20336 zcmV)6K*+y$Pew8T0RR9108elL5dZ)H0JaPO08b470RR9100000000000000000000 z0000QA{!taheQTo0EHL`ffxyz77+*vf}?bTgc=KkGynlM0we>7L_7|~2Y@5q&5jHN8wUWSJ6`es|7Ro}V>r;pFq2z#&|%q&X*qz=@&I zFoX;tbB!vL4L>X`{Re^|Z}fTFwi9YeFDv@)@}BEMebeOalKq#*2=57KbgR2#rF=I4}y2gS-KnTX(xLLM3y+0!9zU#u%_FYK&X~ z3$mp`XaP~dLcwTSP*l{{elsyq-wa;=zBcRs#*+8CBUQkN>dJACVqXYMmdOxjO@M!) zclH!Ex4?*d7*obtMvN6PtWVXxs_O2U0Z7@Sfjqx)PUqHgjW*$9goVsPxafS$L`s9T z%as+OtmMadA~*gaZ|~2OLR^=mleoY&3w0$GWx{Gk*$1)%^x%*T_XygcbX3$|)at5{ z!!{Ob(xQimO2*#L4zu^yk`qHc$eX;AY*Vo(HA97et&yh0hjeEDW;Bw4L}U?JCR&^T zZterS`&5)zv_D;y+?{vZ108HT18cJ6s)rJ$JK7{&leH8Qg+eWdP%o6gmtWJo%A}HM zMDRfv+quc^?11jr4%)-=BRNEBOOJg3_(U6mDvEk*u&o;jVo;CpD(bg;{n~yo>AEFJ zl3ur0<3w8rNkiqublUs(rkd@4yIjT#&_$k{=zJ;HBt%|{MdhN2)!+aB;%@>L*ab*% znL#R%3JjtWq&Y5jbprwyl;(zV<~gLqAc{9sxR68V?(B+{Q|Mfjae9}oYZq1JvN1e; zYniS8x+_3J5gCgrQZ4knNo}V>XapYOED3kgoN~bGgc4`KvD9pPomGI$XB$R|-Kzh8 zjp>y@K~VwHks1Y_Ae;f{0~rnetLbbm?|ur%?(7M-@|2}1vJ}nus!ZZ&<9RI8f~Ya4 z9Z?W;`_KROGk*@YEp-fG@rqYO#Iog;`YTC}u~m=tm*EoW4z!4R`{z&fa3F)&?RG#y ztRWPM;`FoS?&7!P)(5W5ZS-&83hxX`MVkr!5h%gZ$LLyw$ z+LI1__F}9zf1NgSU!r9;o+&mq%3?u~O;b{=8Y5~jE)xUn^Wi7};|~rHo$oHD5Dw6M2xur)dn&xBvSwlsfb$Z@~!p8SQ(JaTM`IEE6EpWc5z`utLom2o-Anh~TP+4__v zqu@z8d_*i@5YYXP$LC6b*2+BqKLF^R)kVZ2XbD13o8|^sEP$7X#?I@)un)rXi{y=L z@Uo)0LvNo#S|V+)9FGimG1+~EI0n!y1AzP){2~7FpT9JJ5dh|A0bss+e&zg``PK8O z^Z0q6N7o)nA4wiwes~_V2?z=`8?!m_5RmU#@8aa+HZcCLqn-l}n{nS8AM`ryj1iAb zI`5!46OLN&+zW@i2e;HR28@`qV9AO-2S|>bpt$qo#hVX2B9Z`P6eo>3<)>2_2*Sd~ z#TPC@B$0R$QZjOhQl-m~DO-+0MT(VJ?u75odgYdBcRh5^BR~9}8lNfudhLQQsq@XZ zhHY($|9rH!rG`|vXrI0Io25ewf*x(Ume6O$m>VdT>10mhaixL zEHuGFFi_DkafA^N3Kd5zS_~cql_beDl%7#5kSkBVQfbP#Nl7=&IcHsU%@r5zPedbp zOBVBO*3vi&@Ml-i`M*2tdjImg(no(m86jVQm^T`s-!Y6}J-=pkWZ1xjl|Q4l8KnjB zN8c)N@DJms14_@IJ$F~EUcwaVkDk=y|E`Rr9?8&HOI(OI()1w0;0h8jDy9V~Fb03Q zA8tKb+V4n&*#jmU32N-G`cVuYUNf{HDl#U#QYU;PlG1S!+OJ;fE)RDwT94#Z zK*3Kv58+TUcj@b0>&*)*(-DPfNQlae9{MYX9B>5kD94Be8OOb5;E;xd#6wS1_pbpB zGg;BqrRO9$v>YVIexgt~1d{T%axg2q^61iEvpNX=Kdzo=K^+;|dO-u3NXQf@vIGIy z0z-}Ju53p{=TCF%rFfv zA%p-TFo?k*0fQ6_GBC)&pa6ps3@Whh7N}+`nhy+A3e?gy>Je4RrMC+(W1LJTbQk>V zvtv$v=6}+=`8)HI=J`u?&(ppxky4Ymbo+K0A4)wu)7W>92`Ix@C@_w*+)G45dU&4Y zG`v+&0J1Dy+%&>2J5qm9TRRL$O?h&v>?UK;EP7-)tGZ;_FT=Z1?twiqM_5$#j@<-9 z!zd+Yq@~(4l-)Y)lGF}J+hhu3cLdreCCuyN557bt*2sK21{6mkA-Oba?|VEOL*Lo0 zOqZS(cGb7O!wcH@W-0-N@aZ?>8vS z?SI5z@e*Iilj?IT*)(>Uq^vrM-nHYj9t`chgpZV!O!0^J9X^=GeQx)7pw&CW^4+37 zAD4aF$RNE0_oRMyYR4CP+7rxHP@+p|87}+F#!SW*xijF0ja~{OFF_~(MU?{9#0Zf(TTs0w{^m%a*|vDny`aB|uGxUME5z zGzd_$5}+jnHMgC^2_2l!#R)x}(8mb_oG`=*Bb@6oGAZMjC#nM)TbyFHW<%c;Sle^m zL6n6eEETdkBbA$VRM|u|Z_zxlD^9Xk$U$Mpdr;#PHO^7v5;d*`N_wtcts+sGu0;T~|2i>j|5jB}qe2{@)c12cZ=;Ir;xOWg6UXG>AGlV+Bao=j0_^O?quqkATATdl-FRew;2lFx^0Mwntg(Bn|%` zC)pF2D^jx;QW&MGmgt&M>R01|NF1Z9j9eW@T{4`Sb(M2rIzEHeD3f%`UnI9I?s8(7 z_uJ^wEJ%IvE(`E%Tq@7TOG3f^Z&a#7xYM3WlFD zOSVGNvv`nZ_@vue1wP#iNHGAkmVn~8@k3c$eX}CU-f`J=oxn{t zE3-9Sf(gkevbf~zPoBJmtA9l|U(s%(?ZjAkUvl;+^>sGgY_WT$?OO}G{RslioU{bI zko5Ca73N8HabJQshilL#$1f21%@K~ao2eBi=12zj3}yq7K!$OuL+`w|{)q|#qam|I zED2cVrev2H7Wxn+wS>2M^Z}AFMn8Z#eUO?uPSYCII<2Qyl^p~++nW_E_a^mcEjBWk zR+z$9a~vB>95VRWB|EVphV31CG-7x%Mn@b|np8EkUdqUA>Vu@N;t?;<8@{Hd8K_m_ zMs!;KbLBD#%oHbKO>&sH0(DDl;(I4i{n)C$#lbgRx^p{#L(?~aMmNGJ2`la$5%Wtx2HxKDV3kyKbd|;pE&M5rgP{2mnPoo3kV(M#_g- zSs)Q;Tz|Amrf64qI>Zl#*i0+fJ&SD_dz9~rS=xUuv=f^uH*Z%w0k?_slRndMn*7L@ zHvE|K{1X|n;nQh43tgjwkws}+8`GSsd($2@PlD8_25M9pWT+RVY%_aC7ME$0m)%DX z4{*M~HgY)<@VW0>ncDbZPb;qoU$1!s{^V>O52oa1k+(y1aP<37GvmHkerKDS{oQf7 zh#6Z0mjT7Kq1M<%gKwhs=TJs=aj<7G(aw;D+bZz3A*~eC>juB7Ruw+|Q=0|>wW(XS z1~_B#BQGJm2;(DsuW%Y;ofD+46nN)how9!=w_J)28|Vu$YL(`PfVrRuyipZ>bITY= zl(JvX;>CTL!Su)yh%JYd9r)1uixwoqpFFUZa2TlOK?WORV_nsNi5lJeplCf%@cKS2 zwzV1!F>G$pqY(hEu_}c_=88I;|z`rOWsM3QWc2Z2do^JKvv!b`Xw{c^hTN@!LJJg=a-YHctL4U|Kk|<`x$M(j;sA$f~3D3@9 zZKq*vBbdXRPod%SK_P!)aC^=)Az}v6*%iD~u!c;WhA%|jMPuu9Xk%M^R+h{=+&Z7P zFyYp1xV2k%6bw>{4AMpUlpS<;n@iii*aup2a~}zu)F(aZ#U5NOUSMP;)+Z zjLa`t5?XRia#vs;wYRfj!>+{aEmKOD>>M$k^h zn_nrBa7KK(%mc?kCqqrQ-SJz;Z|%)vg3D+rx;EXvwyOT7KW;3Tg1dU;bb4PyI#06O zM|!}6M6@HUiqKD0GE&7rYt>@qB?#A=U$|{+x-XX4MHhx#9KYcbF~%c+A~;!5a+=?z zaiZ#?`8M-+@7BBfKZ#c-gWVI0E)`*Dh3;CPDqQUAl$G?D9&lU-)0)6Sxr^p za|KDHY5W>=%_f$$e~vYf@e^srf_)&3MFJ4dTzL8IxBwA@3XD$5xOj5K7*+Mkq?YV^w2@xyGmsT`^%*Xkt z^R2Rb%cw0oEHkRRm&TbDx~LE(?i|(KNux*qz!^?$&B_1{wU<_zQ~!8Kfg7>IPfKKD zbN98snD@D@<7aK#QUX=P>_gA9ZRz>2 zv+r_3a3;;Vw)S5d-s&uAE5mXEYX6O2=)d|MOriZWxmyEL7N|J@B)a?gOkwiQUOA+F zQhP}2_ZrcND!Yl5HK4fiYUQ=+{#$omrd1$g5Lh8GzOl*RURpiUz?s)koIJaHlF-}N z5Ax}4Ky_-6Bj11)p?Jd6b3Aw)CSjt#e~`wR*umzNOhIR82BDK$v&;VS@&$O-A6!Ey zwG^ALr0>5+(?n&cBJaH0#v9&g`Nw&2eK%*a)VS1C*w1>O>asDRXq7yGe)+e;T6a?#(Cry- z+1JQ%)wq8?W$k*IRlrI;&;>8bMReJ+KHOrQ{cix-^|bCsuinLyF}ci0g94_O?_Qb9 z_gk|6p^cJh&{pf0TlcPwOZ%^-_{9OBQ*0BCUfbxd9as&7kxJnexzRTFc4bBBY$vO z6sD5_^rw92O^PITu&9C<{=dCYq7lP-nW${Yh!|(zU>mlu1^>%MMbt}g?P(dYrmM8I z^=R~J5Qa9l9NB(xiejl0kri4Xn;;QNU{gSTx;iX4g>WfSK-5+FLQ7x=i=3ZRs;F#G zBF4Y^6QU7^9;R%;mUL|@a8Oa?FcNg(Uyc$9URffj;DQ2P^L{!=J9N_IfBT9PwiWjU z%5e2UC}+}L?by6G4xe<1AdQ;P-+-;FOwAtfzpS7?2|Tux_r`j7u_<5XSo!j8;r9G3 zHyXI==d*}3I*}wz^ba5>`IDtYdSu!cwE-WDn)E`ENWQIY0um{+)oyTHeNa{ama7&E zPSAr4&KhI~pEP0bi)Xcil_%jlv`~xn^AAS)L!-LcnBCH3ztW)nKTiLwwJ^~u&x+!@ zdNLI*>_OjAc0s9Fomi9K*3+@-M2~80Z!Tx~wW{WoPkZa#@4a2?^`^P8`&xfM^VSGM z5S>~X8M>g;LBcJpx`AK&-*&c#q= zOL{ybVm6{uzXlzfJ+`v5U@_!mV&IRnKeDAK>)IBrPWZZ=nmZL%sMRoLnIJgE${&8U zv&{Q5wL9J3l;zc2YYNWqUj^*J?{$dsr0^?cVHXG2aOP`@MR`oW4|o2)!y)+6lD`}{ z2g+v-kUZW(KPy+xUyT-rGLcv#WZPP_KGVX`-5(0Wpk$x@WoZnZ=ac9Q`)lAIp#PVOxvK(@b%`a$|Old zf;?6;Ew6n%+?5|#Db~nF&SkCtIW?->3mUB&IGvappWxxn&EzR?qry!`tEHNOiG;lB z15r`2`I|rx1U&iO%ve$crVHcY$;{(s`VGE=!C+_UD0dtLf>2XzQV$FUEztY}2@n8+ z!~S{ogoM+3PNx#&INOJdPXoTrgLi9(tUIqz-rG%h?E7iq^F{uc)w9JQP z8eR^&u7OM2Q6-u58{;fo*cTvz89k$AjkKu z>#5SzbbaFQWb0O_(^Kgk%)^DN<0CIdso+DbqUt3ro+FzDB2t7e=gMu%MtWGCBuU+O zFs1@Z4$dY;F>`ae@U%916s3~sWt>7I_H;ftrRp=}sbb6cB1&p*D}lO#DP)z=c45nz zbW~LcGERy_7u!jRKh8QCv<8TQYhwMl&>_TiW(0)+Zdx8>$E-&>Q-NF>|7f_ItIKfW=AF2x;M}0E{xS+J z;58*+?GWyaPVTVs>&fOW>Rdd_w<9Hm*eDGmQRFN_lU(B4nHWJ$+=#qYvV6XOUBSY? z6?FyE=^0o1ECX!{^y?ZMWb{VLwyLU?yYKXCD4yyVN`N@4R8O5oYDffum(eanxgsYU zi=ILw9w9DGT|(ESO^wU5rW+c{dLRh0>5?GCRoM7LsgOh(gP zF&rEY!=}4pUFa?f3Qnh7bbKFWhxj{8u#Bk9VawKJJCgH>n!lg4CpF&(by@E+ZwO%w z>^yRj`I4T_O`!(J0tx9%*M-cf=@-I#({u1E(;Ba*v!#8?qdViWR9iyX!pb4gII6si z$4}0@Cp-v5y@X)!C2TuwH~@km!;$5^e}5=XvjAw>S$8|K)47K3eNCnN$rie*mN5kE z=h)*3_?QOneEJ`XZH&8@Pb^_KFP_Lq7q|DFxUoLMhUpkKTXd~kie%Wh;v&@L7vE}+ z&n_fm+k!>STjnk>U(hqd)L}ki3_dhKvrt!uyi{AVu&S->+2#6*3WkQ*wo1gHKGlqA zRRp0YDVflr5-@4W0{>1y(+`I|oGHlnj9g7)a1Lg7R=m90P|0MPhUAYbSXERS`*6v+ z{AcIOY9a)->?R}U4Ka4+4{3ae*UqBh)p83Kcyl`{akqWFj}bG;-8ZI3E}fs=BYn75 zBgHH5roJj)yu3-m8L3#m57r|r=Ha~?-cNCluI#Q9P13Yhfr4Aaz*ZIs>C zwk*;HVOD8@+Tc`^w3)Sw_8jqf_Cc{5cR4LQeWW1m>EKYtll^%q!sS#9>&WvvpJgm! zPj-uRt2#}wZ`C^GnwU0(S_4}Wk(OCtwCh+QIq*qv$UC#&O_gSl%6;1UUS9tCJh*E$ zduf^F1WL|yUB;{4RjH4s%L^$D{^ZaHfR^!d)%V2B8#bv|%lzZGel0SEf3GZ(w2`o7 z0FcG{1@elR^y=s@FK6Ghpm{w}5>C6Hvi>3nLN9$_yzzKA2!oVW*UTHaLF&+`NI%P1O}d#no)%=H^awL-_@RAP55M8falbk*+Am ziwS74Rc|5;2EB6h`(BYsgCoZ)C*9ehKkZZONAkyaaO_=ZzUV|M*Dp7PD$q<7gvyf= z66D!2)8=a*RDZesX|`mCB4%BjT)9o=+ThYK*PSmK8C2$-CR1bh#6hyWZ^QmuL@k=3 z{UvDT=F&&MUHy%}ZG`I&W1ty~nE{-Is}54pgVVgei}YN!9Jw6xBqrmbxl=QkK?}&B zoQLyg646*@uZW#R9-4(m`EA43J_(*RAD?~pZnilAn~&WT9sxqLPZV2<{W_ZPHdCfS zSs{0<--Lp$7tU9h6q#Jn`0}2yZo-cH&G`NBz7+c(;xgkOMjY9B78dET16TOAD`4Zc zrV>WF`(^$R2pR!iT{VvQSS2dnd}w<9{l@ZWJE?se(?ka~jD+A2hQy=6z;QG=w)1`Z z+2e~{uQDdSt*z&45d$e;P9QCnUVJ=fqnA?XOC@;6U|;3tGFZLAlFotlrmN?q=i~%l z?&erQg2+xP^!B#>?Gjlv_-63jfPJ4VW@l!ebbLS+C+&@k-c?d8*}qmA?>y7)7)uFu zl;%1*)i@>uQ;>0$PT5;WK8&bbCQVOnNOiw@l@U&EY->|fGwq%f@6OsVZGP)@ zn@C9v1+F}=ERYvbf)2O+mQA!YA-G}BkGnMgw)mO;#i+vV-`?DOoO@gosg}q1$t*rr zVL93$Xjqg4ANsK-pI3adsxg03uGyKLr8&Lr(B{pN5u1Cy(k@%hdVgvu+ftLGnK+i( zh-ls|KLUX6F)Ic6^3+^;O1`Sad+W@+?Z)M52|q>>&MNf!Ra4K6IVR37nut>kB&MXU z;v$zNXu)7Gk>uEn|C8D45xB6@sn=&KY}c_}0rQ_>l@+c-apP%8r&}9S&L7RIv99^J zv(^wCBC@01g90TaLQZ5!Mnim%jQpr4*mJ|a6VDC5@y!@Z0SIdK-2*}Ij2f@@xQvVT z=V(q^u)hyxqr4`Ku{{B<_5Tx}x z#UK;{&iLv*4HS^vGKE5)v`{>bm`bqlHO=6G_> zPK~POU^+R>H>p2Trrxkunv%LJK51=yWa@?pf|^t{laiLV`-HMst00E1_D5AQ&@L`i zX9_B7d#rhq$ip+#o0nHDcVwgD%h+D{$QW;YrMueVj6dc4l=`F~T+q@F7%?+EX%P~p zTd#IaLQ-YoNM6?2s*0=&CyFXa`$SwvF02vL%_asUWi>9(OUzApr+~xZ*3J6gm>{st zco5S|Sf>;nZfFo4UZ>2;O3DfEja^wQc&R7Z$q93gqkn`89@Y`nGRW@&XBp&T%Ju?t z#|oRO5Kd`iTvTH(SDv~t-Yu#w!4PC9a{^ejfM6cg*M(|*y$)wT`gKjHP76Euks}L) ztuxvHY5m>i1Z!MM>CB2KY50mpZn(T7ML1ho8+CL;YG!x_=CU-?=+^;^yTH{$Xt*G< zz!Y=gaKz6t`wG|{Fz=mjL@<{vBn1w@el+t3^N72}&xv`g5qmkiy*QNhX3k-|c{@2W zgT)srBOR|$qXQUJRhhrIepPO2Kv47=wsWk4$rk5y21Qd0Ofe4s`jgTe(6p~48HeoV zE)p=!v7~TUH#RAlfMF0il)?iQHR2QNv(iKJUG$PO0N@bQ4(%D??i=g*JHpb7mCs<5 z2qSs5wY*5X{%A8ls8pb!6N1BufdMqX?xzr>{kqgZ4xVx1>+0%a`oe}iSk+tW>=%si zU^kBi{ul2WT*VInuh8>-c#$G2Z z3z-0PRj$o5Yj7Zse=4Sso=F4hoklBe2VWZHOTK=vm4mb$6mzLdFsv{+0)gFZPt(^x zu!xTTXLhuF%kS8laO|X}E($UJ-|+?~PucsL$|~IqUdQUs?21j_wA?Wsam80q=TdFo3$qaBN)#@Mt?R;2FM{x#-O=7!qxr0S$K zMnSUC~C%^b3h2 zIJ(mQY$NepC_GuY9~UYRwjl1Z=y_F-f4{lry;*QFdj{2POa6o-+tvv7ha|tW*iv=M z-TH+B`!#V)hW(m~IAqB|yV6~-Zgeij#g*^k!9ZbgbRNdT{?b;tA2H64z|eRgkraOZ zaRfg_KK7GJ7TT4HMsM2fV9^}sOV~@3&1}0=u~5}$Oi;PW4dqV7qC5Ky7w-MBQIL<+ zg$&Qx*}9-Pep$#KDX@Nj2=XskPfkHs+@{Z8=<5sOx! zl00xGGbYw$0#oKV`OfuUD_!Hb&~Q3aD2msHOyJ%hm*L_IT*5AZsIajmn-1HVpVJ+@ zhGJX=G1P1n`6`Ga?J*hJV{baOWaF$$l+L?6q-nw4lh#xeii$ypQBfH5voJIUMSX@Q z?Ef#=MMD-sd+=1paL;hLR7#RMoLlL})&fDpqD1)E%jV_WtUDD|`FoONgAz72HGr)@ zs!v6|}S zOHRb}2}hN{M7z6Fd(F$z3Y@)SA{slHI3_`mFCJ|@iXpI$G1ObTwRR^3@F_6|#8gUX zG<64AbD%?{qc_I)8@-TvU;Vr<#pvX%6(N3m5jRh5IM5~bJy&6X2}YPP zK|C-siRp63`3MvIq1%V->)rx~0Lwao5>P2ubWstV%Lr$vvp@fUP|wqk{6iTzh5vtA z>ZJ2mQJi_;L>G!JMqW-jgmS{oEu6v736Cv@70zmEef8+G7NRw_we^J#x==!}5X!qn zB8JBDFFxf#3TF2A?t4Y&r8EihkoqRUCw`%@jd@vKMU;`Cuy4o`i;lOG`Bty3kFW6a zBTnBn87%nZPZU3I zfxDYHu-O;&qca-%`QjN-DrkLSmED6>>kTc@XG;FkQjG1@4!dVU)5@rdKet@4zg%P= z9&dk2xRQ>H6o1o*$Zhct#<%T=Oxv5A?;aMN;Lgv@Z7j{orbnB(iUpXg%%1JsEKjaN z=BZO;*DE8FiIK@UE*aU91%ZUm7f6LdrquitNQB|z%j5=o<#b-fenLP&7?UIP(al~% zTt8SK;MFuG#2c0TJ7IvJCL@p{!)|#Xw{)#BTp7uUqq~wkw)<_~QYQ}W=}Jj5$^I7@ zPT1v&LwQg?_*kYYOL2~gOYBdlHJq|sQH?u5g|v-P0a>`2MC8iugU6$Dk5n`ZPA%r< z9tyXoNZQNn@}96}4u;zqI1I86Fm21)YE#Im{@Y~R1=MvkX&0$Sgp>%d`BIdQw5f4Q zT8_(6j_y&W$M-PloaUX*ryX9Dd*C=8ZW5YfvBT7t6m5wU!+JSlr>%X`SW=I@107u% zy`M!Y@MWWUW@;77)HzUvQTz1=U0;;#UMyQoUo2Vt_UM~ViB7ss8C0_S&$}lNo@~&i z4SC_TZq+>xKR-Zv#Bp?vz3AjJ_0rl`$nvK~{l71HpTA>S zdM&sL!td3k*RanMuiPj>Pz)o8pO%&oYj2#dVmGEE){&CJj)XC9Flk3#yy20Mkh-Do%*#%!z$8xJmtTSDCsZ zDJpU`i?G&R7XSZYi^_}$Alr?=aSI~zy#Ly{`BdsokvMx@Ojv(XC~csihU3B#ayKx; zBkNiPqL>vC{CZvpzFv|wviGO03022PH|zCuP4vpZnC9`_RVL1PKB**sA1=<*hvp}W zFEs2+2ti%K-5^)9JTOrVUz}>DS+T4?HFlFcQPuxcazF`aJw6X;xs?H0ZvQ$K7amLD zB)4zXpH)^o6yw}jVJshK;|O=2*#@8XP8Aj#&Ekyau!;gjlCI4$s+@_U0M(8jlb-M% zF^}k!^VI=!Tj3pLm+aKrr4HujEsrB-P-L>T+ha4DtLAMqn~7923y!UKWO%q04eREU zhkDvx|GuN6`TdLb=B9=AmiHak`}#S8>F~7l;;q?9Gntu*2e)P?D~B@`2XnI()596c z=&0s6-m2Kx(5^a>aQT{YOZ6sFU8uc2d9WDe&E$kd1|NsmCC1!ZXFB9dUWT?P!VF;RzszRYEL-}ZoLxb~8WUF#065*h7j>TsP`60ZA zZDPYHF2NL+{UFc_Yv&28M1PWu_^(oPB3Ty9?CKJ33K@lLh7)W_x@K0GP<1rL{YlT_ zZ##EsN|mpJq+BNUW}$k1uC=s^%_4XbN~lg!XJ;AJ8RJSr3!R)Z=}s8YCzr22u2i&# zqqCIigu$6M2IkZ#Mo0??Y;>RtFJM72g7CTF!;R(Mr_yf=C8kZrx>IgeSA&OH{enF; z!5n^}WX($(e<7QKWxBZXyjm_?uylF$&6}aI(|K&L=C&14$PdOc-Eg7aEAKq8be?d& ziQJku6pla+2gbMlp?@+&x11dA{2#>W6zD!-bL#N@!;xVoE_4%|wek2EAV(rMEW18f zA6$>I6%V_K!vM6fD>>403c8cx&u@a76JXS5FBRV(85F;`h}6zf&&%-M_UN)I)TIW-O2@S z$%;i;0mzEya^gosjiGx&0SMKH!@{9gu5ERQcPPcD_!K`R8<#)aa}b2yIE>(YW^PCRE8HAr5w5=i{*+Ny;D6|c>Iwswe8>&B?AA~EAIwI216_iC z4A1H0PLAO)C2~%Q=qM3DiTw|Bhp9Y=i!;gr5p#Clc@B8zCC2WmwpN4j1qQ4r7tKph z8yG(S|2&7S;Y8T>Tp*x@xNjA-(M|_j7-E>MY-2k+*vYQFC)mB*nIqL8f@}tKRlu10 z3+PHPnvH=(!2Qr3eD5pxQ0w4iQ0ibtJmXI`ss`0=sL3{lW=FNE)kJEH?&#e!)pa{l=Et zA@vqYhct5RN`!sv4h2%Lm5$+40FdbNfJJf7;l1oAlujBr1>w)M0m?Vrc$Eb9v1gZ= zB=r_b*J5`~YF*bWLh7~B#cI<(+k$5!ox#2`P6FQm0JcqYuJn&`eHrOVxf)Rk07Z!5 zeE*XvhSN(3orohsh;~*)!~_d2Eu^`1g9C%&E{tz5o7r|gTp26nsErJPt5w2=5f{Sw zfkVuookoPNh$Dn(XAu#PVPW7H{zU*lbO9|<_+vFK28Os^y52NxMCmyB;gkBr&hp$;8mF;?o@ya{?v!$bX~Y?7)fkIMwnZrB6oEl z*99TFg36}^R%AT|$xG@X(E`w);2v$^D`M()YRhXu^9$w;03xv8uJ#CD?e^*MLKm(A zii`<%_AXcH>qxF*j8ktYLGW{NkD1+dJGirD(6*#9J6<&fAPCl<(& zhZToz;w82zJBl-lx|#_e+)j#2k<7ixO;E9eJhqGsU1|#9Pl0F>?t(x@4eAm=SYxPw zi_3)%n|gqLS!AN-!u9)ekyE7boseRipe@^3=1Bo7ZZ$`2AlfQR`& z&8#7flnI0c>z=W}x~#Hn*3p41j>9;fAz9m>gn=x%<%2CDwMK?)yPr`q+RNL1vbaQ| zX6p7DNnj?N=n@ZY^e0qj<}Rp?MuV14U3V+{?BlX1?xhH)HOUCQtT*Wg6P# zP`E{`$UQYC=|R+j=Zf#9ARB^{DoIc$M(zpzR4|}%HwG9@BkW(qQ7}Zred@dh#DgZm zgLaJhy$OTOv_i6gsH~9!dZ_kF)7@%>D~no@*7xU{?m%2!0Nr&=WC89KMO5jGnO}J7X6aF|X5Oj~vE`}9W zh0waN7c$>omWE<5S-M?Nm5>_G0Q?<{2pX~p$oFgzdjk+GR~96hp4A!!pY9DO1SmR@Exy}VB3rGMs;CONSJfB~7FIk3CA zMo}=xa|PP@5ic&6=Ts^xQzKW>U#6S~*`!`0O|{_M7onM%8vwx_N?eUoP%m}4Mne{A z<*`~ZGw@=xCIr)F;p`?yO8iL_Rr&sW#)K77C2bp_R5-y9m{$?2OJAi=ktA0H|rha4Bi)&M-g!FRUudfE>z! zZDNA$4?RtVPc5C2A6;CBnMOr0TdoX>CuJx+-m*@=-^X=aRZV`Ip1zge{DrGM2q(mJ zO!8R;i!b-%lD3E<^>EBRhbmQ-$%>{`&h2yHv2B9KSSNck6>UGtzIYm3A4A&U6 z(Cf~k80eN)Z1Mo3-iJI)_*ZtNss=!Vwv8Gf9A{gTYP8PQWf3*mTVG>cx&uB4!Wp-LL+0wG@JbS#khK(Sz4}Cx z-QzEpd=-dvm|VAW(l)-UPmQTk6mmz6JTEBO?1R^Wm0?Euzey|8FN=MSbYKw>BP9LQ z%()qXwS0}^4(ghUXr7l~eQiK+*iddAXCzI~-F6(nDV#hCV8g2Gj%ISr)Ct9Kff1OB zaFF+S;!nn3AOb11KLB`B7Wt-`Yzs?Ktmxl?xf~MH`L1uYil8+EBX=0vkn5H|4twab zK|w`q*ZVat&%4cwLT#&*j3rARYczZ=vlq>34a9{3>$ah#6_U2@?98W&K`AB9k#2{! zT_SOjqrnrRQi&;th3+={j8R+XKAJOT#H#I7yyr2Qbk6>)MFanBY4k|M)-~ zgn~v;TJzaDRZDU^RTj7)PHPQUj~o5vnh@ zuDl0rpVw3bliZDsbi-}{*kc~;_iYR8ANKd>Q@d+->m_DrvQ*2m#GL3z_}Hg7qDw>s z1BBiw2xn(8B%)2c1AQJk$tV&=$G9vCC^<4(q{u@(7|u@cK$N$!VK>A|usbugq}!rf z7GR}T68JD-l#159xp6>6A>>yVmAc6YyW_jjaA&5r3vI#;UP5;`g92hib@BU)^MbfN zc$U<|cRe%34nbeuEY;GTEx}PYGI1{CtGIY)sB88ZC6oqtDc+rs;&mbNPEz$!P~x%mE$hJ9X8PtPh{ z$`HL6UNXSyY$0Jo$*p|Z8xnl%txrVhC}nDgRMmqO=VzfKqs~BoVfhu5%Q?p|O(Wm4 z%f2*9RRVGHGLt~O|H+#-+b!_sw{L#)`Q!HW_SNkf8?0w_8V9~@W}~pF(IgU3X+Ks2 z<`dM6V(u@r{c)g?b#D&UKj{Op?n_R!QWl+QDGT7ug1Hs8X6@A%iC?>P0Vo~tE5seq z-DgwI?H;K@P)mBRXw8}{qbME@K!c{aa%UNO6nAPGKp;cm1f&^{OU5S~Yz7H220*h| z3qf($Os?TKVAjA{_!+TsP(H)~#vn&W5o2lUxLRbP8>LQojRSeT6LXXjGJ*%(mW=C3 zXs{!9CS6PAmOy_@%?I^SO|>kQyE+EDL<8wjA(&E?Z&9s;Yi`l>Ibwmu5-IgE?*@ht z25=Nj@Hu7%Ij{mxEP^DGHzu+uF%`hMQ{n(RQ5Bb2Q-a+ZT_(XFQ2Js^ z-4>eg%rom0Qw68V2FNha)~lDw9J#|#lu*%kt!RT-3xYi2j|ioZHt|_8fI7V+B7DKoq&({aYp$(>BBSzo8^ zXLN!HE%*0Il&6VMrjkYo7Ytk=6~YAp2nZKVQllKt71EQ-TF=W7p>5iu08pke@O>+Q zX;hj76u%KD^&m9zkY{)$!qCg}Q1q0!E+AU)$9^Eybts)F6d6@DP>z&kx}Nu}EXv&T z_yS}EMThcfhnQ|#w8REQN5m}tJl18NOwnQ~vg{%RNV2eAf~8>^*}E=7f~U=Q4UP_^ z8&YQ3J>-c3=4ewji;KLgL*e6Hz#x~?WU}SbK5d4PRAy+ah=~d55Ru5y=vZ&Wd*{+t zjKpIz=DH!UMVm#zQ!A#{_Dd-SCrV=+saAs)B+`hGp}&FgQ{@-wnD8huN{wOTvxmy_nAga&8q#0@um}Svc zZOa(nanR;&pLT#{cl_v>)HNcV$~VSEIX6zsl%CSdNs0_1LaiyJ9281v@Vue(F!NGp z9l_<-xZ6=*K$JUaPC#uFEDW5Ihz3gmrernfj979}g`l&3U$q;5cPT=DHvdRsQ?F74--|V0aW{%&8Hmy-O=8udA}n8{x7(TqJNDq(A`;t3!b$#E z{HFPu6TFo~-Ed9U?M#-Nx{2(_c1Oy6t^H!65wFJ3=?s)}a-O3waHMn-Vzm-bV!(4? z_T8Z?CPq_PnQIQaMiU5HHTQQV%NOlJSN~&<8a!fYZ~!p;KpxFg-*07+C9Ykd=>e>i zc)W}G7tm(bh!r0EUIC&lx#9fU2R;vu3egNaf(WO}heT+tM%35EewQbvM@Jx1S z2eKubC^zyT=?18n9r`4~)Ck(-w*g^%{&4I;O+0f`ciG2iZ37gMR`e_n>f{6AAE>tS z<0Bl2-{hu4>1$TeG))6E+h(&`fP=WEyLo;&erJ6}=tuY%eUh0KO+f0|w1u`xBJ*E+ zg}#~dRs!XwT*o0?IIT3my?#hY@(GL|-Ude1i|eyoqrM(yB8p1L@_ZEoARVT?)`(YHV$l=cckfCs66ST2a{F5XfuiNFx z3-j^k57+30VNNo`tSbIlE1mK&Y>AfYX#$Z{u>mPk3O#V7oAr3Ht#>aRxqj#V0#ZEZ z%U8sceH_QU$UPwqTk0zG;yL`0EBjz?a|$#l6>{KydP_I6nQx2MT#C7|l4a1MX$hL05iO7!<_T{#St zvL5RXmoT;8!oythY19J}5kO^zCzptxoIDCjsb2d>)(tDZQX00S8;62_rcN(tH8<}g(XyWietpj!Z@&CPKQu9jLx*~(Sb6yTfkYbEW00GMkX4;{8nBpGW#Ahc zS1R|_{XOuY+R{Hv-VnEK$_tY`mv$%jWUCAhD!Ih_W2r4jmR?jbV3~t;ylymAktgGE zEp?*5w*T$6kzjsSQ`#p$`-Y$x_!|lG&qVo_n#vM~$!!2Ep7$XmBL;G*^Qxj$Om#^; zIoEANo$D8mJ@AU}ANP+B_jk89=i>n@EVC@v>#+`6a_6}<9*;+LRl-di<1v7LnMBix zb-9OmfHif2^??_FwO1Gg$BEeeSzx5Vfq7{T!Xn?zU1Fv+&PO7<0C*FlCee06tJIQF z8P$bhxtlG8ex*BEqYN4mnB= zS0i;Qw9Ofe9nvRLpdTJ?ye~``v{ns2T%@~Vxe5??xDoijkM+TW=N=;O&^6`9n9f0IIv zTpNb~Bd9BJ34O0u;CyNu-=!!k$^a z8Gr!WGY@_0`Z9kQjRCqU6SOSMUg(5_s2}DP>(M<(OzIswN7lx9jPyCzLbp1OCBR{R z2zfz3HBF4X>;Q;l!VkHmcu4=kRY~g&2@7!ti$QP|kl$r9-3|1(@baH#9emB98+@v; zr?#OJe_4Y}H6smv>3^-+ps$<5TK2A=3`~OG2Cmk&E;t?&fPbZNOG}+141KS!l<;H` zWc{WL12Af%f)0&o;w$YbJ4k zM^jrLjoh$De5wWIc{cajME+oX72e~L!{@zcV;XcS9aYmwX0rH#iZ4m4eH@lI5-i8v znED)6M17v7#yi|6LtT%$n$c(xe?oJxa&!NptLo9HUKhicb0LQDWUsNB)n%b8YMCm! zqK$MS+|`I_0_=MNpAe-VC^?od60DK<62oI^tTe-jbZt3j1bLej#oSN5F7rytBPE z0??;2#@roBT0W>M!pssu#3>2~(^jYo#ddt`EI*h*g%1l?a4f;$Snyx&tuN|vQvmG6 zd_8Xy5qstC_^5_BbM%fMjDqP{WOZD~{*e$PRIO91 zYO7B%LAgEc5K)sUIFL}PR0f|k&^`K3W2(w78-HZJCXga4LiVVU;@1E%pkcejfF)W5 z%Dv>g@L$gvhHEC_51??!H=gV&SC%&bVVypeCR$ug)w&wYjaNY(E1K0RiYR=I)$Qu$ zu+wnArXK2nYg4XWb8ou;u=KiA*6MtLdYN81sgnwIFAAggJly z!zz5SFcWL6brou}9*3yG0+ud+C=9t+9?J1vQ+z{4#}Leid{v|rYf^ma7vpDGFzcM# zdNXfPp)3+3)rtY&|0kDq*l+SQnR@P^nm%MOEpKFae3mH9N1t`0`|aJLohRaBH9P>J zxI9n5k9!g2Nhl}fiyz(|)5I27;I={8mW79+*+c*jxNoW`sL7mii;aH&aNo{YM6nF0 zW9;^cNFD>JX10`vLX3-ros;}UuCby3@vE5Mp7-0jR3asGEXbIA7@MrO@9#6>`E!zg zfrTvzHxG@znrgN}d zv8#@9Op%dnz#IACRSOLugS!XtiK)hi&2 zs6vMIdyR<~PS^ZEW%ha@gHJOJnUS@W6vm28NiuHS-uz5yzMTH{`^qu4J}|gUP_y3y zcI|4PCr+HzIK;FyR+u5a5IDraH%}(Zvt&!qHi}l%+qe4gp7vK+zq~meRhszTZ1`oa zKKYQz`|N5$QKUi3+8T+hGh}zbiU~u>ijki%4eHg-`^THA?VQ)tP=(9XAbP{LI3^*Y zPoC1}S*mp6Zu0)`=Vo5V{W1aII0Asb1Tein&wmxlU-mQre*Gn50Ko67{_}6)*SYJP z4v;n&00G3Xv|o9K+SJqAm&x?2j=J6KG?;QC4I}}*jS6VPk+_XkyRV>72`q*K0nianh>luiKUv_RML%?5%X$2DMzL=V&U zOBMKH*voeUiSrI8U^76B3zeS5!U~TmF~~R0%jp(4shsUxAaF%S{s*9vOnE1eK$p~E zkWT>Y9iPQ{3<_}oU>g#5^1K}affI0mopcEt2KjKw0>+hk@ zFFg!7a+S%KCPk`3NO<17`9l&*rG~_lO(};{aFHp=ZAo|$AwOBVGb_z6Xo?z3Ma%bp zfN7>H?yKN=^1ePDh#{T`>-+%2J&)o8NQ20$7-|P{8nFXu>*M$v0eHGlE;27(Au9u8 zxv3^(PhQJx8va>|>$z}jLNJ%v^KWQu6@NVofD|wgl(SAtwwKaAE1_YiV7=l(?TmBI zbA{u^-39-;=n{`8zD$#U#${KexTf2FBYeH(hrk~Z$#plRx+wrzAd3G4VM;q#I)-e? zG8peyb`Fl$xN-yaVDj+r2?*U%s8~smBB8;BMFpmnW}__Hw3(LMtkS3`@1pFwKP_U# zsZyg>wRj06q~18_l-uaiR{aS&jOfHzWM8*~BqnASR;)SVm|Kyj>AS^=@V$ZU}-ACtGOIW6u~p4Y@?YsFql2 z+!({aPP-g&)JYR2O*!D7ko9SBn0Bbq>OkLnA524XhOZ;ZcxO3MnN@Ww(4rVzL6g9-W+Q^*&ixqBiuR52S^z`>}+XoJuPuA5oB2 zN>^dX_B5tKwohfJHOnlK73LAJw*&+X^vFPV3UP9(`7SPInGI2S9*s zM$2q~dS#dx0+^#HusJergxVYzkV?SxJE&6wfbhpvisLG3@%5G*py;^hnCd`Fans=6 T#sR!z6s8Xz*HR$>CKCVv{vQ*U diff --git a/deps/npm/docs/public/index.html b/deps/npm/docs/public/index.html index a3bd3a8d5190..21fae68bfdbd 100644 --- a/deps/npm/docs/public/index.html +++ b/deps/npm/docs/public/index.html @@ -80,7 +80,7 @@ /* sc-component-id: sc-keyframes-gxCBeh */ @-webkit-keyframes gxCBeh{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}33%{-webkit-transform:rotate(8deg);-ms-transform:rotate(8deg);transform:rotate(8deg);}100%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}} @keyframes gxCBeh{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}33%{-webkit-transform:rotate(8deg);-ms-transform:rotate(8deg);transform:rotate(8deg);}100%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);}} /* sc-component-id: sc-keyframes-hlcKXx */ -@-webkit-keyframes hlcKXx{0%{opacity:0;}50%{opacity:1;}100%{opacity:0;}} @keyframes hlcKXx{0%{opacity:0;}50%{opacity:1;}100%{opacity:0;}}

npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!

The current stable version of npm is available on GitHub.

To upgrade, run: npm install npm@latest -g

\ No newline at end of file +
npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!
npm cli _
The intelligent package manager for the Node Javascript Platform. Install stuff and get coding!

The current stable version of npm is available on GitHub.

To upgrade, run: npm install npm@latest -g

\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/config/index.html b/deps/npm/docs/public/using-npm/config/index.html index 6d7c2995a95c..cc245172bb39 100644 --- a/deps/npm/docs/public/using-npm/config/index.html +++ b/deps/npm/docs/public/using-npm/config/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

config

+

config

More than you probably want to know about npm configuration

Description

npm gets its configuration values from the following sources, sorted by priority:

@@ -1161,4 +1161,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/developers/index.html b/deps/npm/docs/public/using-npm/developers/index.html index a6cbcdf43bc5..c6d6c506bac1 100644 --- a/deps/npm/docs/public/using-npm/developers/index.html +++ b/deps/npm/docs/public/using-npm/developers/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

developers

+

developers

Developer Guide

Description

So, you've decided to use npm to develop (and maybe publish/deploy) @@ -259,4 +259,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/disputes/index.html b/deps/npm/docs/public/using-npm/disputes/index.html index fa9827600706..93a92cd27028 100644 --- a/deps/npm/docs/public/using-npm/disputes/index.html +++ b/deps/npm/docs/public/using-npm/disputes/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

disputes

+

disputes

Handling Module Name Disputes

This document describes the steps that you should take to resolve module name disputes with other npm publishers. It also describes special steps you should @@ -192,4 +192,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/orgs/index.html b/deps/npm/docs/public/using-npm/orgs/index.html index 3ebd3a1444a9..0a6fa3f2b7eb 100644 --- a/deps/npm/docs/public/using-npm/orgs/index.html +++ b/deps/npm/docs/public/using-npm/orgs/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

orgs

+

orgs

Working with Teams & Orgs

Description

There are three levels of org users:

@@ -144,4 +144,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/registry/index.html b/deps/npm/docs/public/using-npm/registry/index.html index 6cc806bc4365..8bc4e9bde235 100644 --- a/deps/npm/docs/public/using-npm/registry/index.html +++ b/deps/npm/docs/public/using-npm/registry/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

registry

+

registry

The JavaScript Package Registry

Description

To resolve packages by name and version, npm talks to a registry website @@ -156,4 +156,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/removal/index.html b/deps/npm/docs/public/using-npm/removal/index.html index 723334e4dae6..cc5fff6d64ce 100644 --- a/deps/npm/docs/public/using-npm/removal/index.html +++ b/deps/npm/docs/public/using-npm/removal/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

removal

+

removal

Cleaning the Slate

Synopsis

So sad to see you go.

@@ -116,4 +116,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/scope/index.html b/deps/npm/docs/public/using-npm/scope/index.html index fe450fd3739b..362b542d13bd 100644 --- a/deps/npm/docs/public/using-npm/scope/index.html +++ b/deps/npm/docs/public/using-npm/scope/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

scope

+

scope

Scoped packages

Description

All npm packages have a name. Some package names also have a scope. A scope @@ -159,4 +159,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/scripts/index.html b/deps/npm/docs/public/using-npm/scripts/index.html index d2376cf2754a..4609d5640414 100644 --- a/deps/npm/docs/public/using-npm/scripts/index.html +++ b/deps/npm/docs/public/using-npm/scripts/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

scripts

+

scripts

How npm handles the "scripts" field

Description

The "scripts" property of of your package.json file supports a number of built-in scripts and their preset life cycle events as well as arbitrary scripts. These all can be executed by running npm run-script <stage> or npm run <stage> for short. Pre and post commands with matching names will be run for those as well (e.g. premyscript, myscript, postmyscript). Scripts from dependencies can be run with npm explore <pkg> -- npm run <stage>.

@@ -197,9 +197,15 @@

PATH for executing the scripts. So, if your package.json has this:

-
{ "name" : "foo"
-, "dependencies" : { "bar" : "0.1.x" }
-, "scripts": { "start" : "bar ./test" } }
+
{
+  "name" : "foo",
+  "dependencies" : {
+    "bar" : "0.1.x"
+  },
+  "scripts": {
+    "start" : "bar ./test"
+  }
+}

then you could run npm start to execute the bar script, which is exported into the node_modules/.bin directory on npm install.

package.json vars

@@ -218,9 +224,15 @@

<name>[@<version>]:<key>. For example, if the package.json has this:

-
{ "name" : "foo"
-, "config" : { "port" : "8080" }
-, "scripts" : { "start" : "node server.js" } }
+
{
+  "name" : "foo",
+  "config" : {
+    "port" : "8080"
+  },
+  "scripts" : {
+    "start" : "node server.js"
+  }
+}

and the server.js is this:

http.createServer(...).listen(process.env.npm_package_config_port)

then the user could change the behavior by doing:

@@ -236,10 +248,11 @@

process.env.npm_package_scripts_install === "foo.js"

Examples

For example, if your package.json contains this:

-
{ "scripts" :
-  { "install" : "scripts/install.js"
-  , "postinstall" : "scripts/postinstall.js"
-  , "uninstall" : "scripts/uninstall.js"
+
{
+  "scripts" : {
+    "install" : "scripts/install.js",
+    "postinstall" : "scripts/install.js",
+    "uninstall" : "scripts/uninstall.js"
   }
 }

then scripts/install.js will be called for the install @@ -250,10 +263,11 @@

{ "scripts" :
-  { "preinstall" : "./configure"
-  , "install" : "make && make install"
-  , "test" : "make test"
+
{
+  "scripts" : {
+    "preinstall" : "./configure",
+    "install" : "make && make install",
+    "test" : "make test"
   }
 }

Exiting

@@ -309,4 +323,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/docs/public/using-npm/semver/index.html b/deps/npm/docs/public/using-npm/semver/index.html index 79ff8e1c437f..fd6017acf9e2 100644 --- a/deps/npm/docs/public/using-npm/semver/index.html +++ b/deps/npm/docs/public/using-npm/semver/index.html @@ -26,7 +26,7 @@ /* sc-component-id: FoundTypo__Container-sc-1e373sc-0 */ .fMOzaj{margin:80px 0;border-top:1px solid black;padding:20px 0;} /* sc-component-id: Page__Content-sc-4b62ym-0 */ -.gJQTGP{max-width:760px;margin:auto;padding:0 30px 120px;}

semver(7) -- The semantic versioner for npm

+

semver(7) -- The semantic versioner for npm

Install

npm install --save semver

Usage

@@ -435,4 +435,4 @@

\ No newline at end of file +
\ No newline at end of file diff --git a/deps/npm/lib/init.js b/deps/npm/lib/init.js index 9d873689f6b7..41995abe22bb 100644 --- a/deps/npm/lib/init.js +++ b/deps/npm/lib/init.js @@ -63,7 +63,7 @@ function init (args, cb) { 'This utility will walk you through creating a package.json file.', 'It only covers the most common items, and tries to guess sensible defaults.', '', - 'See `npm help json` for definitive documentation on these fields', + 'See `npm help init` for definitive documentation on these fields', 'and exactly what they do.', '', 'Use `npm install ` afterwards to install a package and', diff --git a/deps/npm/lib/install/deps.js b/deps/npm/lib/install/deps.js index 3d8b333c6444..72c719296300 100644 --- a/deps/npm/lib/install/deps.js +++ b/deps/npm/lib/install/deps.js @@ -74,7 +74,10 @@ function doesChildVersionMatch (child, requested, requestor) { var childReq = child.package._requested if (childReq) { if (childReq.rawSpec === requested.rawSpec) return true - if (childReq.type === requested.type && childReq.saveSpec === requested.saveSpec) return true + if (childReq.type === requested.type) { + if (childReq.saveSpec === requested.saveSpec) return true + if (childReq.fetchSpec === requested.fetchSpec) return true + } } // If _requested didn't exist OR if it didn't match then we'll try using // _from. We pass it through npa to normalize the specifier. @@ -200,6 +203,7 @@ function removeObsoleteDep (child, log) { }) } +exports.packageRelativePath = packageRelativePath function packageRelativePath (tree) { if (!tree) return '' var requested = tree.package._requested || {} @@ -570,7 +574,7 @@ function addDependency (name, versionSpec, tree, log, done) { try { var req = childDependencySpecifier(tree, name, versionSpec) if (tree.swRequires && tree.swRequires[name]) { - var swReq = childDependencySpecifier(tree, name, tree.swRequires[name], tree.package._where) + var swReq = childDependencySpecifier(tree, name, tree.swRequires[name]) } } catch (err) { return done(err) diff --git a/deps/npm/lib/install/get-requested.js b/deps/npm/lib/install/get-requested.js index ab410ffc9b6e..df0eec6f6a63 100644 --- a/deps/npm/lib/install/get-requested.js +++ b/deps/npm/lib/install/get-requested.js @@ -1,12 +1,15 @@ 'use strict' const npa = require('npm-package-arg') const moduleName = require('../utils/module-name.js') - +const packageRelativePath = require('./deps').packageRelativePath module.exports = function (child, reqBy) { if (!child.requiredBy.length) return if (!reqBy) reqBy = child.requiredBy[0] const deps = reqBy.package.dependencies || {} const devDeps = reqBy.package.devDependencies || {} + const optDeps = reqBy.package.optionalDependencies || {} const name = moduleName(child) - return npa.resolve(name, deps[name] || devDeps[name], reqBy.realpath) + const spec = deps[name] || devDeps[name] || optDeps[name] + const where = packageRelativePath(reqBy) + return npa.resolve(name, spec, where) } diff --git a/deps/npm/lib/install/inflate-shrinkwrap.js b/deps/npm/lib/install/inflate-shrinkwrap.js index 1ec4f9ba6dcf..122068c20128 100644 --- a/deps/npm/lib/install/inflate-shrinkwrap.js +++ b/deps/npm/lib/install/inflate-shrinkwrap.js @@ -89,6 +89,20 @@ function tarballToVersion (name, tb) { return match[2] || match[1] } +function relativizeLink (name, spec, topPath, requested) { + if (!spec.startsWith('file:')) { + return + } + + let requestedPath = requested.fetchSpec + if (requested.type === 'file') { + requestedPath = path.dirname(requestedPath) + } + + const relativized = path.relative(requestedPath, path.resolve(topPath, spec.slice(5))) + return 'file:' + relativized +} + function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) { validate('OSSOOOO|ZSSOOOO', arguments) const usesIntegrity = ( @@ -101,7 +115,14 @@ function inflatableChild (onDiskChild, name, topPath, tree, sw, requested, opts) sw.resolved = sw.version sw.version = regTarball } - if (sw.requires) Object.keys(sw.requires).map(_ => { sw.requires[_] = tarballToVersion(_, sw.requires[_]) || sw.requires[_] }) + if (sw.requires) { + Object.keys(sw.requires).forEach(name => { + const spec = sw.requires[name] + sw.requires[name] = tarballToVersion(name, spec) || + relativizeLink(name, spec, topPath, requested) || + spec + }) + } const modernLink = requested.type === 'directory' && !sw.from if (hasModernMeta(onDiskChild) && childIsEquivalent(sw, requested, onDiskChild)) { // The version on disk matches the shrinkwrap entry. diff --git a/deps/npm/man/man1/npm-README.1 b/deps/npm/man/man1/npm-README.1 index 2ba6afd57c0e..f9f3511f7c36 100644 --- a/deps/npm/man/man1/npm-README.1 +++ b/deps/npm/man/man1/npm-README.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "March 2020" "" "" +.TH "NPM" "1" "May 2020" "" "" .SH "NAME" \fBnpm\fR \- a JavaScript package manager .P diff --git a/deps/npm/man/man1/npm-access.1 b/deps/npm/man/man1/npm-access.1 index 448c9859a44a..583bbc0a2529 100644 --- a/deps/npm/man/man1/npm-access.1 +++ b/deps/npm/man/man1/npm-access.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ACCESS" "1" "March 2020" "" "" +.TH "NPM\-ACCESS" "1" "May 2020" "" "" .SH "NAME" \fBnpm-access\fR \- Set access level on published packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-adduser.1 b/deps/npm/man/man1/npm-adduser.1 index 3d005b13029d..db0e7e078dbc 100644 --- a/deps/npm/man/man1/npm-adduser.1 +++ b/deps/npm/man/man1/npm-adduser.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-adduser .SH description: Set access level on published packages -.TH "NPM\-ADDUSER" "1" "March 2020" "" "" +.TH "NPM\-ADDUSER" "1" "May 2020" "" "" .SH "NAME" \fBnpm-adduser\fR \- Add a registry user account .SS Synopsis diff --git a/deps/npm/man/man1/npm-audit.1 b/deps/npm/man/man1/npm-audit.1 index d0a77fdf0d78..db60498e2a21 100644 --- a/deps/npm/man/man1/npm-audit.1 +++ b/deps/npm/man/man1/npm-audit.1 @@ -1,4 +1,4 @@ -.TH "NPM\-AUDIT" "1" "March 2020" "" "" +.TH "NPM\-AUDIT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-audit\fR \- Run a security audit .SS Synopsis diff --git a/deps/npm/man/man1/npm-bin.1 b/deps/npm/man/man1/npm-bin.1 index 26480b0d0ff6..ffc64299daa1 100644 --- a/deps/npm/man/man1/npm-bin.1 +++ b/deps/npm/man/man1/npm-bin.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BIN" "1" "March 2020" "" "" +.TH "NPM\-BIN" "1" "May 2020" "" "" .SH "NAME" \fBnpm-bin\fR \- Display npm bin folder .SS Synopsis diff --git a/deps/npm/man/man1/npm-bugs.1 b/deps/npm/man/man1/npm-bugs.1 index 1566c8706c1c..967d15b73c5f 100644 --- a/deps/npm/man/man1/npm-bugs.1 +++ b/deps/npm/man/man1/npm-bugs.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUGS" "1" "March 2020" "" "" +.TH "NPM\-BUGS" "1" "May 2020" "" "" .SH "NAME" \fBnpm-bugs\fR \- Bugs for a package in a web browser maybe .SS Synopsis diff --git a/deps/npm/man/man1/npm-build.1 b/deps/npm/man/man1/npm-build.1 index 20919da86c19..5c1f2c802e15 100644 --- a/deps/npm/man/man1/npm-build.1 +++ b/deps/npm/man/man1/npm-build.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUILD" "1" "March 2020" "" "" +.TH "NPM\-BUILD" "1" "May 2020" "" "" .SH "NAME" \fBnpm-build\fR \- Build a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-bundle.1 b/deps/npm/man/man1/npm-bundle.1 index a2cb2ad35b4f..9b3b69753e87 100644 --- a/deps/npm/man/man1/npm-bundle.1 +++ b/deps/npm/man/man1/npm-bundle.1 @@ -1,4 +1,4 @@ -.TH "NPM\-BUNDLE" "1" "March 2020" "" "" +.TH "NPM\-BUNDLE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-bundle\fR \- REMOVED .SS Description diff --git a/deps/npm/man/man1/npm-cache.1 b/deps/npm/man/man1/npm-cache.1 index 30186d7925cf..201c77901069 100644 --- a/deps/npm/man/man1/npm-cache.1 +++ b/deps/npm/man/man1/npm-cache.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CACHE" "1" "March 2020" "" "" +.TH "NPM\-CACHE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-cache\fR \- Manipulates packages cache .SS Synopsis diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1 index 625cf2ef7b4e..807e94b067ad 100644 --- a/deps/npm/man/man1/npm-ci.1 +++ b/deps/npm/man/man1/npm-ci.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CI" "1" "March 2020" "" "" +.TH "NPM\-CI" "1" "May 2020" "" "" .SH "NAME" \fBnpm-ci\fR \- Install a project with a clean slate .SS Synopsis diff --git a/deps/npm/man/man1/npm-completion.1 b/deps/npm/man/man1/npm-completion.1 index 263e04cba278..44e041d10325 100644 --- a/deps/npm/man/man1/npm-completion.1 +++ b/deps/npm/man/man1/npm-completion.1 @@ -1,4 +1,4 @@ -.TH "NPM\-COMPLETION" "1" "March 2020" "" "" +.TH "NPM\-COMPLETION" "1" "May 2020" "" "" .SH "NAME" \fBnpm-completion\fR \- Tab Completion for npm .SS Synopsis diff --git a/deps/npm/man/man1/npm-config.1 b/deps/npm/man/man1/npm-config.1 index 2c71ad1410e4..71016d0ef10d 100644 --- a/deps/npm/man/man1/npm-config.1 +++ b/deps/npm/man/man1/npm-config.1 @@ -1,4 +1,4 @@ -.TH "NPM\-CONFIG" "1" "March 2020" "" "" +.TH "NPM\-CONFIG" "1" "May 2020" "" "" .SH "NAME" \fBnpm-config\fR \- Manage the npm configuration files .SS Synopsis diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1 index 53e71c0f4050..3e41436455d3 100644 --- a/deps/npm/man/man1/npm-dedupe.1 +++ b/deps/npm/man/man1/npm-dedupe.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DEDUPE" "1" "March 2020" "" "" +.TH "NPM\-DEDUPE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-dedupe\fR \- Reduce duplication .SS Synopsis diff --git a/deps/npm/man/man1/npm-deprecate.1 b/deps/npm/man/man1/npm-deprecate.1 index 3d7c160d987b..aa14c873cc1a 100644 --- a/deps/npm/man/man1/npm-deprecate.1 +++ b/deps/npm/man/man1/npm-deprecate.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DEPRECATE" "1" "March 2020" "" "" +.TH "NPM\-DEPRECATE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-deprecate\fR \- Deprecate a version of a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-dist-tag.1 b/deps/npm/man/man1/npm-dist-tag.1 index 9e8fb37ac0db..dae13ae00f08 100644 --- a/deps/npm/man/man1/npm-dist-tag.1 +++ b/deps/npm/man/man1/npm-dist-tag.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-dist\-tag .SH description: Modify package distribution tags -.TH "NPM\-DIST\-TAG" "1" "March 2020" "" "" +.TH "NPM\-DIST\-TAG" "1" "May 2020" "" "" .SH "NAME" \fBnpm-dist-tag\fR \- Modify package distribution tags .SS Synopsis diff --git a/deps/npm/man/man1/npm-docs.1 b/deps/npm/man/man1/npm-docs.1 index e518a5082fd6..8b6a846a9b71 100644 --- a/deps/npm/man/man1/npm-docs.1 +++ b/deps/npm/man/man1/npm-docs.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DOCS" "1" "March 2020" "" "" +.TH "NPM\-DOCS" "1" "May 2020" "" "" .SH "NAME" \fBnpm-docs\fR \- Docs for a package in a web browser maybe .SS Synopsis diff --git a/deps/npm/man/man1/npm-doctor.1 b/deps/npm/man/man1/npm-doctor.1 index 4c04a7b6be9d..188c80ac79ff 100644 --- a/deps/npm/man/man1/npm-doctor.1 +++ b/deps/npm/man/man1/npm-doctor.1 @@ -1,4 +1,4 @@ -.TH "NPM\-DOCTOR" "1" "March 2020" "" "" +.TH "NPM\-DOCTOR" "1" "May 2020" "" "" .SH "NAME" \fBnpm-doctor\fR \- Check your environments .SS Synopsis diff --git a/deps/npm/man/man1/npm-edit.1 b/deps/npm/man/man1/npm-edit.1 index 9f992f04d55f..828825f8cb97 100644 --- a/deps/npm/man/man1/npm-edit.1 +++ b/deps/npm/man/man1/npm-edit.1 @@ -1,4 +1,4 @@ -.TH "NPM\-EDIT" "1" "March 2020" "" "" +.TH "NPM\-EDIT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-edit\fR \- Edit an installed package .SS Synopsis diff --git a/deps/npm/man/man1/npm-explore.1 b/deps/npm/man/man1/npm-explore.1 index 74159220bece..5859ed053ff7 100644 --- a/deps/npm/man/man1/npm-explore.1 +++ b/deps/npm/man/man1/npm-explore.1 @@ -3,7 +3,7 @@ section: cli\-commands title: npm\-explore .SH description: Browse an installed package -.TH "NPM\-EXPLORE" "1" "March 2020" "" "" +.TH "NPM\-EXPLORE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-explore\fR \- Browse an installed package .SS Synopsis diff --git a/deps/npm/man/man1/npm-fund.1 b/deps/npm/man/man1/npm-fund.1 index e4c418f8dae8..acb459d745e9 100644 --- a/deps/npm/man/man1/npm-fund.1 +++ b/deps/npm/man/man1/npm-fund.1 @@ -1,4 +1,4 @@ -.TH "NPM\-FUND" "1" "March 2020" "" "" +.TH "NPM\-FUND" "1" "May 2020" "" "" .SH "NAME" \fBnpm-fund\fR \- Retrieve funding information .SS Synopsis diff --git a/deps/npm/man/man1/npm-help-search.1 b/deps/npm/man/man1/npm-help-search.1 index 19c7d7b5f569..72c18bd5e6c5 100644 --- a/deps/npm/man/man1/npm-help-search.1 +++ b/deps/npm/man/man1/npm-help-search.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HELP\-SEARCH" "1" "March 2020" "" "" +.TH "NPM\-HELP\-SEARCH" "1" "May 2020" "" "" .SH "NAME" \fBnpm-help-search\fR \- Search npm help documentation .SS Synopsis diff --git a/deps/npm/man/man1/npm-help.1 b/deps/npm/man/man1/npm-help.1 index 6fa907cc9000..1aa3d6ddaea9 100644 --- a/deps/npm/man/man1/npm-help.1 +++ b/deps/npm/man/man1/npm-help.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HELP" "1" "March 2020" "" "" +.TH "NPM\-HELP" "1" "May 2020" "" "" .SH "NAME" \fBnpm-help\fR \- Get help on npm .SS Synopsis diff --git a/deps/npm/man/man1/npm-hook.1 b/deps/npm/man/man1/npm-hook.1 index 74169fb4423c..9d6d0a04616a 100644 --- a/deps/npm/man/man1/npm-hook.1 +++ b/deps/npm/man/man1/npm-hook.1 @@ -1,4 +1,4 @@ -.TH "NPM\-HOOK" "1" "March 2020" "" "" +.TH "NPM\-HOOK" "1" "May 2020" "" "" .SH "NAME" \fBnpm-hook\fR \- Manage registry hooks .SS Synopsis diff --git a/deps/npm/man/man1/npm-init.1 b/deps/npm/man/man1/npm-init.1 index 5c1b522ccbf7..f33cede27f8d 100644 --- a/deps/npm/man/man1/npm-init.1 +++ b/deps/npm/man/man1/npm-init.1 @@ -1,4 +1,4 @@ -.TH "NPM\-INIT" "1" "March 2020" "" "" +.TH "NPM\-INIT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-init\fR \- create a package\.json file .SS Synopsis diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1 index e5962b93fdae..ed5559db37ba 100644 --- a/deps/npm/man/man1/npm-install-ci-test.1 +++ b/deps/npm/man/man1/npm-install-ci-test.1 @@ -1,4 +1,4 @@ -.TH "NPM" "" "March 2020" "" "" +.TH "NPM" "" "May 2020" "" "" .SH "NAME" \fBnpm\fR .SS Synopsis diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1 index 73c7400b73d3..6d65529eab00 100644 --- a/deps/npm/man/man1/npm-install-test.1 +++ b/deps/npm/man/man1/npm-install-test.1 @@ -1,4 +1,4 @@ -.TH "NPM" "" "March 2020" "" "" +.TH "NPM" "" "May 2020" "" "" .SH "NAME" \fBnpm\fR .SS Synopsis diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1 index 6bd9a4cd58e4..152becd7eaae 100644 --- a/deps/npm/man/man1/npm-install.1 +++ b/deps/npm/man/man1/npm-install.1 @@ -1,4 +1,4 @@ -.TH "NPM\-INSTALL" "1" "March 2020" "" "" +.TH "NPM\-INSTALL" "1" "May 2020" "" "" .SH "NAME" \fBnpm-install\fR \- Install a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1 index 79ad02d88ca0..84df5b7e446f 100644 --- a/deps/npm/man/man1/npm-link.1 +++ b/deps/npm/man/man1/npm-link.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LINK" "1" "March 2020" "" "" +.TH "NPM\-LINK" "1" "May 2020" "" "" .SH "NAME" \fBnpm-link\fR \- Symlink a package folder .SS Synopsis diff --git a/deps/npm/man/man1/npm-logout.1 b/deps/npm/man/man1/npm-logout.1 index d9020ea68413..3a46bcc3af5c 100644 --- a/deps/npm/man/man1/npm-logout.1 +++ b/deps/npm/man/man1/npm-logout.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LOGOUT" "1" "March 2020" "" "" +.TH "NPM\-LOGOUT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-logout\fR \- Log out of the registry .SS Synopsis diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1 index 54ef77772f06..5e024fadb2f3 100644 --- a/deps/npm/man/man1/npm-ls.1 +++ b/deps/npm/man/man1/npm-ls.1 @@ -1,4 +1,4 @@ -.TH "NPM\-LS" "1" "March 2020" "" "" +.TH "NPM\-LS" "1" "May 2020" "" "" .SH "NAME" \fBnpm-ls\fR \- List installed packages .SS Synopsis @@ -22,7 +22,7 @@ For example, running \fBnpm ls promzard\fP in npm's source tree will show: .P .RS 2 .nf - npm@6\.14\.4 /path/to/npm + npm@6\.14\.5 /path/to/npm └─┬ init\-package\-json@0\.0\.4 └── promzard@0\.1\.5 .fi diff --git a/deps/npm/man/man1/npm-org.1 b/deps/npm/man/man1/npm-org.1 index d3f1531252ed..cc343314f75c 100644 --- a/deps/npm/man/man1/npm-org.1 +++ b/deps/npm/man/man1/npm-org.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ORG" "1" "March 2020" "" "" +.TH "NPM\-ORG" "1" "May 2020" "" "" .SH "NAME" \fBnpm-org\fR \- Manage orgs .SS Synopsis diff --git a/deps/npm/man/man1/npm-outdated.1 b/deps/npm/man/man1/npm-outdated.1 index 808555c7b1b9..d353c5f340a6 100644 --- a/deps/npm/man/man1/npm-outdated.1 +++ b/deps/npm/man/man1/npm-outdated.1 @@ -1,4 +1,4 @@ -.TH "NPM\-OUTDATED" "1" "March 2020" "" "" +.TH "NPM\-OUTDATED" "1" "May 2020" "" "" .SH "NAME" \fBnpm-outdated\fR \- Check for outdated packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-owner.1 b/deps/npm/man/man1/npm-owner.1 index f0e2f07a0cbc..34917c9b8834 100644 --- a/deps/npm/man/man1/npm-owner.1 +++ b/deps/npm/man/man1/npm-owner.1 @@ -1,4 +1,4 @@ -.TH "NPM\-OWNER" "1" "March 2020" "" "" +.TH "NPM\-OWNER" "1" "May 2020" "" "" .SH "NAME" \fBnpm-owner\fR \- Manage package owners .SS Synopsis diff --git a/deps/npm/man/man1/npm-pack.1 b/deps/npm/man/man1/npm-pack.1 index dac6963b4a26..c9163675ec45 100644 --- a/deps/npm/man/man1/npm-pack.1 +++ b/deps/npm/man/man1/npm-pack.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PACK" "1" "March 2020" "" "" +.TH "NPM\-PACK" "1" "May 2020" "" "" .SH "NAME" \fBnpm-pack\fR \- Create a tarball from a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-ping.1 b/deps/npm/man/man1/npm-ping.1 index 28ae935229cd..0558082b0c4f 100644 --- a/deps/npm/man/man1/npm-ping.1 +++ b/deps/npm/man/man1/npm-ping.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PING" "1" "March 2020" "" "" +.TH "NPM\-PING" "1" "May 2020" "" "" .SH "NAME" \fBnpm-ping\fR \- Ping npm registry .SS Synopsis diff --git a/deps/npm/man/man1/npm-prefix.1 b/deps/npm/man/man1/npm-prefix.1 index 3b695b870e08..3483ad3708e4 100644 --- a/deps/npm/man/man1/npm-prefix.1 +++ b/deps/npm/man/man1/npm-prefix.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PREFIX" "1" "March 2020" "" "" +.TH "NPM\-PREFIX" "1" "May 2020" "" "" .SH "NAME" \fBnpm-prefix\fR \- Display prefix .SS Synopsis diff --git a/deps/npm/man/man1/npm-profile.1 b/deps/npm/man/man1/npm-profile.1 index b0990f099e50..d1580469207b 100644 --- a/deps/npm/man/man1/npm-profile.1 +++ b/deps/npm/man/man1/npm-profile.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PROFILE" "1" "March 2020" "" "" +.TH "NPM\-PROFILE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-profile\fR \- Change settings on your registry profile .SS Synopsis diff --git a/deps/npm/man/man1/npm-prune.1 b/deps/npm/man/man1/npm-prune.1 index b51f829ca9c9..95d8e15984e1 100644 --- a/deps/npm/man/man1/npm-prune.1 +++ b/deps/npm/man/man1/npm-prune.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PRUNE" "1" "March 2020" "" "" +.TH "NPM\-PRUNE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-prune\fR \- Remove extraneous packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-publish.1 b/deps/npm/man/man1/npm-publish.1 index eec1f60120a4..d4ad6b01fb34 100644 --- a/deps/npm/man/man1/npm-publish.1 +++ b/deps/npm/man/man1/npm-publish.1 @@ -1,4 +1,4 @@ -.TH "NPM\-PUBLISH" "1" "March 2020" "" "" +.TH "NPM\-PUBLISH" "1" "May 2020" "" "" .SH "NAME" \fBnpm-publish\fR \- Publish a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-rebuild.1 b/deps/npm/man/man1/npm-rebuild.1 index 7e0d43fadf13..41df28b52e6d 100644 --- a/deps/npm/man/man1/npm-rebuild.1 +++ b/deps/npm/man/man1/npm-rebuild.1 @@ -1,4 +1,4 @@ -.TH "NPM\-REBUILD" "1" "March 2020" "" "" +.TH "NPM\-REBUILD" "1" "May 2020" "" "" .SH "NAME" \fBnpm-rebuild\fR \- Rebuild a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-repo.1 b/deps/npm/man/man1/npm-repo.1 index 68920454a691..360080640b59 100644 --- a/deps/npm/man/man1/npm-repo.1 +++ b/deps/npm/man/man1/npm-repo.1 @@ -1,4 +1,4 @@ -.TH "NPM\-REPO" "1" "March 2020" "" "" +.TH "NPM\-REPO" "1" "May 2020" "" "" .SH "NAME" \fBnpm-repo\fR \- Open package repository page in the browser .SS Synopsis diff --git a/deps/npm/man/man1/npm-restart.1 b/deps/npm/man/man1/npm-restart.1 index d90bebb90633..6c72553de428 100644 --- a/deps/npm/man/man1/npm-restart.1 +++ b/deps/npm/man/man1/npm-restart.1 @@ -1,4 +1,4 @@ -.TH "NPM\-RESTART" "1" "March 2020" "" "" +.TH "NPM\-RESTART" "1" "May 2020" "" "" .SH "NAME" \fBnpm-restart\fR \- Restart a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-root.1 b/deps/npm/man/man1/npm-root.1 index dab19fcabf5a..93ff1323e3f0 100644 --- a/deps/npm/man/man1/npm-root.1 +++ b/deps/npm/man/man1/npm-root.1 @@ -1,4 +1,4 @@ -.TH "NPM\-ROOT" "1" "March 2020" "" "" +.TH "NPM\-ROOT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-root\fR \- Display npm root .SS Synopsis diff --git a/deps/npm/man/man1/npm-run-script.1 b/deps/npm/man/man1/npm-run-script.1 index 8a7d2b6e2ff0..4e38d392d637 100644 --- a/deps/npm/man/man1/npm-run-script.1 +++ b/deps/npm/man/man1/npm-run-script.1 @@ -1,4 +1,4 @@ -.TH "NPM\-RUN\-SCRIPT" "1" "March 2020" "" "" +.TH "NPM\-RUN\-SCRIPT" "1" "May 2020" "" "" .SH "NAME" \fBnpm-run-script\fR \- Run arbitrary package scripts .SS Synopsis diff --git a/deps/npm/man/man1/npm-search.1 b/deps/npm/man/man1/npm-search.1 index 9b9b7861dab8..e2406f92252a 100644 --- a/deps/npm/man/man1/npm-search.1 +++ b/deps/npm/man/man1/npm-search.1 @@ -1,4 +1,4 @@ -.TH "NPM\-SEARCH" "1" "March 2020" "" "" +.TH "NPM\-SEARCH" "1" "May 2020" "" "" .SH "NAME" \fBnpm-search\fR \- Search for packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-shrinkwrap.1 b/deps/npm/man/man1/npm-shrinkwrap.1 index 59b2e499d1e9..4f4b95715cff 100644 --- a/deps/npm/man/man1/npm-shrinkwrap.1 +++ b/deps/npm/man/man1/npm-shrinkwrap.1 @@ -1,4 +1,4 @@ -.TH "NPM\-SHRINKWRAP" "1" "March 2020" "" "" +.TH "NPM\-SHRINKWRAP" "1" "May 2020" "" "" .SH "NAME" \fBnpm-shrinkwrap\fR \- Lock down dependency versions for publication .SS Synopsis diff --git a/deps/npm/man/man1/npm-star.1 b/deps/npm/man/man1/npm-star.1 index e5a18f85be13..023f409b75c0 100644 --- a/deps/npm/man/man1/npm-star.1 +++ b/deps/npm/man/man1/npm-star.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STAR" "1" "March 2020" "" "" +.TH "NPM\-STAR" "1" "May 2020" "" "" .SH "NAME" \fBnpm-star\fR \- Mark your favorite packages .SS Synopsis diff --git a/deps/npm/man/man1/npm-stars.1 b/deps/npm/man/man1/npm-stars.1 index bcc7cce20518..b2e851319715 100644 --- a/deps/npm/man/man1/npm-stars.1 +++ b/deps/npm/man/man1/npm-stars.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STARS" "1" "March 2020" "" "" +.TH "NPM\-STARS" "1" "May 2020" "" "" .SH "NAME" \fBnpm-stars\fR \- View packages marked as favorites .SS Synopsis diff --git a/deps/npm/man/man1/npm-start.1 b/deps/npm/man/man1/npm-start.1 index 64a22b7cb946..b64ec8b17533 100644 --- a/deps/npm/man/man1/npm-start.1 +++ b/deps/npm/man/man1/npm-start.1 @@ -1,4 +1,4 @@ -.TH "NPM\-START" "1" "March 2020" "" "" +.TH "NPM\-START" "1" "May 2020" "" "" .SH "NAME" \fBnpm-start\fR \- Start a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-stop.1 b/deps/npm/man/man1/npm-stop.1 index 5144671e15fc..1e23c9385f6c 100644 --- a/deps/npm/man/man1/npm-stop.1 +++ b/deps/npm/man/man1/npm-stop.1 @@ -1,4 +1,4 @@ -.TH "NPM\-STOP" "1" "March 2020" "" "" +.TH "NPM\-STOP" "1" "May 2020" "" "" .SH "NAME" \fBnpm-stop\fR \- Stop a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-team.1 b/deps/npm/man/man1/npm-team.1 index 6e0b1da57d6e..2419f372b3d1 100644 --- a/deps/npm/man/man1/npm-team.1 +++ b/deps/npm/man/man1/npm-team.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TEAM" "1" "March 2020" "" "" +.TH "NPM\-TEAM" "1" "May 2020" "" "" .SH "NAME" \fBnpm-team\fR \- Manage organization teams and team memberships .SS Synopsis diff --git a/deps/npm/man/man1/npm-test.1 b/deps/npm/man/man1/npm-test.1 index fed0b5d5bb2d..b046fa0376d5 100644 --- a/deps/npm/man/man1/npm-test.1 +++ b/deps/npm/man/man1/npm-test.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TEST" "1" "March 2020" "" "" +.TH "NPM\-TEST" "1" "May 2020" "" "" .SH "NAME" \fBnpm-test\fR \- Test a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-token.1 b/deps/npm/man/man1/npm-token.1 index 2ef8c563f1eb..0a7555c14ec4 100644 --- a/deps/npm/man/man1/npm-token.1 +++ b/deps/npm/man/man1/npm-token.1 @@ -1,4 +1,4 @@ -.TH "NPM\-TOKEN" "1" "March 2020" "" "" +.TH "NPM\-TOKEN" "1" "May 2020" "" "" .SH "NAME" \fBnpm-token\fR \- Manage your authentication tokens .SS Synopsis diff --git a/deps/npm/man/man1/npm-uninstall.1 b/deps/npm/man/man1/npm-uninstall.1 index 72172f08c8f1..37ed8caf734e 100644 --- a/deps/npm/man/man1/npm-uninstall.1 +++ b/deps/npm/man/man1/npm-uninstall.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UNINSTALL" "1" "March 2020" "" "" +.TH "NPM\-UNINSTALL" "1" "May 2020" "" "" .SH "NAME" \fBnpm-uninstall\fR \- Remove a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-unpublish.1 b/deps/npm/man/man1/npm-unpublish.1 index 5db95caffc36..e776bb047f00 100644 --- a/deps/npm/man/man1/npm-unpublish.1 +++ b/deps/npm/man/man1/npm-unpublish.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UNPUBLISH" "1" "March 2020" "" "" +.TH "NPM\-UNPUBLISH" "1" "May 2020" "" "" .SH "NAME" \fBnpm-unpublish\fR \- Remove a package from the registry .SS Synopsis diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1 index b236b1eaaaa5..2006a973c204 100644 --- a/deps/npm/man/man1/npm-update.1 +++ b/deps/npm/man/man1/npm-update.1 @@ -1,4 +1,4 @@ -.TH "NPM\-UPDATE" "1" "March 2020" "" "" +.TH "NPM\-UPDATE" "1" "May 2020" "" "" .SH "NAME" \fBnpm-update\fR \- Update a package .SS Synopsis diff --git a/deps/npm/man/man1/npm-version.1 b/deps/npm/man/man1/npm-version.1 index 22dc7a71ed4b..57cd4e9f6ff1 100644 --- a/deps/npm/man/man1/npm-version.1 +++ b/deps/npm/man/man1/npm-version.1 @@ -1,4 +1,4 @@ -.TH "NPM\-VERSION" "1" "March 2020" "" "" +.TH "NPM\-VERSION" "1" "May 2020" "" "" .SH "NAME" \fBnpm-version\fR \- Bump a package version .SS Synopsis diff --git a/deps/npm/man/man1/npm-view.1 b/deps/npm/man/man1/npm-view.1 index 0bed92ababc3..a0b97326a48c 100644 --- a/deps/npm/man/man1/npm-view.1 +++ b/deps/npm/man/man1/npm-view.1 @@ -1,4 +1,4 @@ -.TH "NPM\-VIEW" "1" "March 2020" "" "" +.TH "NPM\-VIEW" "1" "May 2020" "" "" .SH "NAME" \fBnpm-view\fR \- View registry info .SS Synopsis diff --git a/deps/npm/man/man1/npm-whoami.1 b/deps/npm/man/man1/npm-whoami.1 index c581a1f0a4d3..08dc425b269a 100644 --- a/deps/npm/man/man1/npm-whoami.1 +++ b/deps/npm/man/man1/npm-whoami.1 @@ -1,4 +1,4 @@ -.TH "NPM\-WHOAMI" "1" "March 2020" "" "" +.TH "NPM\-WHOAMI" "1" "May 2020" "" "" .SH "NAME" \fBnpm-whoami\fR \- Display npm username .SS Synopsis diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1 index a9ea697aea7d..fc2e735cc44d 100644 --- a/deps/npm/man/man1/npm.1 +++ b/deps/npm/man/man1/npm.1 @@ -1,4 +1,4 @@ -.TH "NPM" "1" "March 2020" "" "" +.TH "NPM" "1" "May 2020" "" "" .SH "NAME" \fBnpm\fR \- javascript package manager .SS Synopsis @@ -10,7 +10,7 @@ npm [args] .RE .SS Version .P -6\.14\.4 +6\.14\.5 .SS Description .P npm is the package manager for the Node JavaScript platform\. It puts @@ -47,14 +47,14 @@ on a preinstalled git\. .P If one of the packages npm tries to install is a native node module and requires compiling of C++ Code, npm will use -node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR for that task\. -For a Unix system, node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR +node\-gyp \fIhttps://github\.com/nodejs/node\-gyp\fR for that task\. +For a Unix system, node\-gyp \fIhttps://github\.com/nodejs/node\-gyp\fR needs Python, make and a buildchain like GCC\. On Windows, Python and Microsoft Visual Studio C++ are needed\. Python 3 is -not supported by node\-gyp \fIhttps://github\.com/TooTallNate/node\-gyp\fR\|\. +not supported by node\-gyp \fIhttps://github\.com/nodejs/node\-gyp\fR\|\. For more information visit -the node\-gyp repository \fIhttps://github\.com/TooTallNate/node\-gyp\fR and -the node\-gyp Wiki \fIhttps://github\.com/TooTallNate/node\-gyp/wiki\fR\|\. +the node\-gyp repository \fIhttps://github\.com/nodejs/node\-gyp\fR and +the node\-gyp Wiki \fIhttps://github\.com/nodejs/node\-gyp/wiki\fR\|\. .SS Directories .P See npm help \fBfolders\fP to learn about where npm puts stuff\. diff --git a/deps/npm/man/man5/folders.5 b/deps/npm/man/man5/folders.5 index c88bdecd34f1..06fcc5032448 100644 --- a/deps/npm/man/man5/folders.5 +++ b/deps/npm/man/man5/folders.5 @@ -1,4 +1,4 @@ -.TH "FOLDERS" "5" "March 2020" "" "" +.TH "FOLDERS" "5" "May 2020" "" "" .SH "NAME" \fBfolders\fR \- Folder Structures Used by npm .SS Description diff --git a/deps/npm/man/man5/install.5 b/deps/npm/man/man5/install.5 index 9309aa1f17c0..08b410eddca8 100644 --- a/deps/npm/man/man5/install.5 +++ b/deps/npm/man/man5/install.5 @@ -1,4 +1,4 @@ -.TH "INSTALL" "5" "March 2020" "" "" +.TH "INSTALL" "5" "May 2020" "" "" .SH "NAME" \fBinstall\fR \- Download and Install npm .SS Description diff --git a/deps/npm/man/man5/npmrc.5 b/deps/npm/man/man5/npmrc.5 index bc3f8fdaed0e..ed5483983f30 100644 --- a/deps/npm/man/man5/npmrc.5 +++ b/deps/npm/man/man5/npmrc.5 @@ -1,4 +1,4 @@ -.TH "NPMRC" "5" "March 2020" "" "" +.TH "NPMRC" "5" "May 2020" "" "" .SH "NAME" \fBnpmrc\fR \- The npm config files .SS Description diff --git a/deps/npm/man/man5/package-json.5 b/deps/npm/man/man5/package-json.5 index 13d908541314..7ebe2dcf4a49 100644 --- a/deps/npm/man/man5/package-json.5 +++ b/deps/npm/man/man5/package-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\.JSON" "5" "March 2020" "" "" +.TH "PACKAGE\.JSON" "5" "May 2020" "" "" .SH "NAME" \fBpackage.json\fR \- Specifics of npm's package\.json handling .SS Description diff --git a/deps/npm/man/man5/package-lock-json.5 b/deps/npm/man/man5/package-lock-json.5 index 43c6e4193677..5db9bea393f4 100644 --- a/deps/npm/man/man5/package-lock-json.5 +++ b/deps/npm/man/man5/package-lock-json.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\-LOCK\.JSON" "5" "March 2020" "" "" +.TH "PACKAGE\-LOCK\.JSON" "5" "May 2020" "" "" .SH "NAME" \fBpackage-lock.json\fR \- A manifestation of the manifest .SS Description diff --git a/deps/npm/man/man5/package-locks.5 b/deps/npm/man/man5/package-locks.5 index f610e42ba4ba..f7856325abbb 100644 --- a/deps/npm/man/man5/package-locks.5 +++ b/deps/npm/man/man5/package-locks.5 @@ -1,4 +1,4 @@ -.TH "PACKAGE\-LOCKS" "5" "March 2020" "" "" +.TH "PACKAGE\-LOCKS" "5" "May 2020" "" "" .SH "NAME" \fBpackage-locks\fR \- An explanation of npm lockfiles .SS Description diff --git a/deps/npm/man/man5/shrinkwrap-json.5 b/deps/npm/man/man5/shrinkwrap-json.5 index e891c84ecff4..227c7e876112 100644 --- a/deps/npm/man/man5/shrinkwrap-json.5 +++ b/deps/npm/man/man5/shrinkwrap-json.5 @@ -1,4 +1,4 @@ -.TH "NPM\-SHRINKWRAP\.JSON" "5" "March 2020" "" "" +.TH "NPM\-SHRINKWRAP\.JSON" "5" "May 2020" "" "" .SH "NAME" \fBnpm-shrinkwrap.json\fR \- A publishable lockfile .SS Description diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7 index 0f653366b1d2..db95234d49e2 100644 --- a/deps/npm/man/man7/config.7 +++ b/deps/npm/man/man7/config.7 @@ -1,4 +1,4 @@ -.TH "CONFIG" "7" "March 2020" "" "" +.TH "CONFIG" "7" "May 2020" "" "" .SH "NAME" \fBconfig\fR \- More than you probably want to know about npm configuration .SS Description diff --git a/deps/npm/man/man7/developers.7 b/deps/npm/man/man7/developers.7 index a84548af27c6..942ce4b431a4 100644 --- a/deps/npm/man/man7/developers.7 +++ b/deps/npm/man/man7/developers.7 @@ -1,4 +1,4 @@ -.TH "DEVELOPERS" "7" "March 2020" "" "" +.TH "DEVELOPERS" "7" "May 2020" "" "" .SH "NAME" \fBdevelopers\fR \- Developer Guide .SS Description diff --git a/deps/npm/man/man7/disputes.7 b/deps/npm/man/man7/disputes.7 index a94c70b3d833..4c5a73a2e577 100644 --- a/deps/npm/man/man7/disputes.7 +++ b/deps/npm/man/man7/disputes.7 @@ -1,4 +1,4 @@ -.TH "DISPUTES" "7" "March 2020" "" "" +.TH "DISPUTES" "7" "May 2020" "" "" .SH "NAME" \fBdisputes\fR \- Handling Module Name Disputes .P diff --git a/deps/npm/man/man7/orgs.7 b/deps/npm/man/man7/orgs.7 index 418537ead8c2..b32c26c19cb3 100644 --- a/deps/npm/man/man7/orgs.7 +++ b/deps/npm/man/man7/orgs.7 @@ -1,4 +1,4 @@ -.TH "ORGS" "7" "March 2020" "" "" +.TH "ORGS" "7" "May 2020" "" "" .SH "NAME" \fBorgs\fR \- Working with Teams & Orgs .SS Description diff --git a/deps/npm/man/man7/registry.7 b/deps/npm/man/man7/registry.7 index f22059121e84..5de9a3e09680 100644 --- a/deps/npm/man/man7/registry.7 +++ b/deps/npm/man/man7/registry.7 @@ -1,4 +1,4 @@ -.TH "REGISTRY" "7" "March 2020" "" "" +.TH "REGISTRY" "7" "May 2020" "" "" .SH "NAME" \fBregistry\fR \- The JavaScript Package Registry .SS Description diff --git a/deps/npm/man/man7/removal.7 b/deps/npm/man/man7/removal.7 index 7b7322628f2c..254a685ad2c2 100644 --- a/deps/npm/man/man7/removal.7 +++ b/deps/npm/man/man7/removal.7 @@ -1,4 +1,4 @@ -.TH "REMOVAL" "7" "March 2020" "" "" +.TH "REMOVAL" "7" "May 2020" "" "" .SH "NAME" \fBremoval\fR \- Cleaning the Slate .SS Synopsis diff --git a/deps/npm/man/man7/scope.7 b/deps/npm/man/man7/scope.7 index 1884347b8b6a..680125cf6d5c 100644 --- a/deps/npm/man/man7/scope.7 +++ b/deps/npm/man/man7/scope.7 @@ -1,4 +1,4 @@ -.TH "SCOPE" "7" "March 2020" "" "" +.TH "SCOPE" "7" "May 2020" "" "" .SH "NAME" \fBscope\fR \- Scoped packages .SS Description diff --git a/deps/npm/man/man7/scripts.7 b/deps/npm/man/man7/scripts.7 index 17b549b05e7c..f507049bc186 100644 --- a/deps/npm/man/man7/scripts.7 +++ b/deps/npm/man/man7/scripts.7 @@ -1,4 +1,4 @@ -.TH "SCRIPTS" "7" "March 2020" "" "" +.TH "SCRIPTS" "7" "May 2020" "" "" .SH "NAME" \fBscripts\fR \- How npm handles the "scripts" field .SS Description @@ -194,9 +194,15 @@ executing the scripts\. So, if your package\.json has this: .P .RS 2 .nf -{ "name" : "foo" -, "dependencies" : { "bar" : "0\.1\.x" } -, "scripts": { "start" : "bar \./test" } } +{ + "name" : "foo", + "dependencies" : { + "bar" : "0\.1\.x" + }, + "scripts": { + "start" : "bar \./test" + } +} .fi .RE .P @@ -224,9 +230,15 @@ if the package\.json has this: .P .RS 2 .nf -{ "name" : "foo" -, "config" : { "port" : "8080" } -, "scripts" : { "start" : "node server\.js" } } +{ + "name" : "foo", + "config" : { + "port" : "8080" + }, + "scripts" : { + "start" : "node server\.js" + } +} .fi .RE .P @@ -267,10 +279,11 @@ For example, if your package\.json contains this: .P .RS 2 .nf -{ "scripts" : - { "install" : "scripts/install\.js" - , "postinstall" : "scripts/postinstall\.js" - , "uninstall" : "scripts/uninstall\.js" +{ + "scripts" : { + "install" : "scripts/install\.js", + "postinstall" : "scripts/install\.js", + "uninstall" : "scripts/uninstall\.js" } } .fi @@ -288,10 +301,11 @@ fine: .P .RS 2 .nf -{ "scripts" : - { "preinstall" : "\./configure" - , "install" : "make && make install" - , "test" : "make test" +{ + "scripts" : { + "preinstall" : "\./configure", + "install" : "make && make install", + "test" : "make test" } } .fi diff --git a/deps/npm/man/man7/semver.7 b/deps/npm/man/man7/semver.7 index 419716a83d73..7e8df25a3565 100644 --- a/deps/npm/man/man7/semver.7 +++ b/deps/npm/man/man7/semver.7 @@ -1,4 +1,4 @@ -.TH "SEMVER" "7" "March 2020" "" "" +.TH "SEMVER" "7" "May 2020" "" "" .SH "NAME" \fBsemver\fR \- The semantic versioner for npm .SH Install diff --git a/deps/npm/node_modules/graceful-fs/graceful-fs.js b/deps/npm/node_modules/graceful-fs/graceful-fs.js index 8c75ee259e09..de3df47fd555 100644 --- a/deps/npm/node_modules/graceful-fs/graceful-fs.js +++ b/deps/npm/node_modules/graceful-fs/graceful-fs.js @@ -21,6 +21,14 @@ if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { function noop () {} +function publishQueue(context, queue) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue + } + }) +} + var debug = noop if (util.debuglog) debug = util.debuglog('gfs4') @@ -32,14 +40,10 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) } // Once time initialization -if (!global[gracefulQueue]) { +if (!fs[gracefulQueue]) { // This queue can be shared by multiple loaded instances - var queue = [] - Object.defineProperty(global, gracefulQueue, { - get: function() { - return queue - } - }) + var queue = global[gracefulQueue] || [] + publishQueue(fs, queue) // Patch fs.close/closeSync to shared queue version, because we need // to retry() whenever a close happens *anywhere* in the program. @@ -79,12 +83,16 @@ if (!global[gracefulQueue]) { if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { process.on('exit', function() { - debug(global[gracefulQueue]) - require('assert').equal(global[gracefulQueue].length, 0) + debug(fs[gracefulQueue]) + require('assert').equal(fs[gracefulQueue].length, 0) }) } } +if (!global[gracefulQueue]) { + publishQueue(global, fs[gracefulQueue]); +} + module.exports = patch(clone(fs)) if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { module.exports = patch(fs) @@ -334,11 +342,11 @@ function patch (fs) { function enqueue (elem) { debug('ENQUEUE', elem[0].name, elem[1]) - global[gracefulQueue].push(elem) + fs[gracefulQueue].push(elem) } function retry () { - var elem = global[gracefulQueue].shift() + var elem = fs[gracefulQueue].shift() if (elem) { debug('RETRY', elem[0].name, elem[1]) elem[0].apply(null, elem[1]) diff --git a/deps/npm/node_modules/graceful-fs/package.json b/deps/npm/node_modules/graceful-fs/package.json index 788876e32207..32518904d974 100644 --- a/deps/npm/node_modules/graceful-fs/package.json +++ b/deps/npm/node_modules/graceful-fs/package.json @@ -1,19 +1,19 @@ { - "_from": "graceful-fs@4.2.3", - "_id": "graceful-fs@4.2.3", + "_from": "graceful-fs@4.2.4", + "_id": "graceful-fs@4.2.4", "_inBundle": false, - "_integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "_integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "_location": "/graceful-fs", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "graceful-fs@4.2.3", + "raw": "graceful-fs@4.2.4", "name": "graceful-fs", "escapedName": "graceful-fs", - "rawSpec": "4.2.3", + "rawSpec": "4.2.4", "saveSpec": null, - "fetchSpec": "4.2.3" + "fetchSpec": "4.2.4" }, "_requiredBy": [ "#USER", @@ -41,10 +41,10 @@ "/test-exclude/load-json-file", "/write-file-atomic" ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "_shasum": "4a12ff1b60376ef09862c2093edd908328be8423", - "_spec": "graceful-fs@4.2.3", - "_where": "/Users/mperrotte/npminc/cli", + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "_shasum": "2256bde14d3632958c465ebc96dc467ca07a29fb", + "_spec": "graceful-fs@4.2.4", + "_where": "/Users/ruyadorno/Documents/workspace/cli", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, @@ -98,5 +98,5 @@ "preversion": "npm test", "test": "node test.js | tap -" }, - "version": "4.2.3" + "version": "4.2.4" } diff --git a/deps/npm/node_modules/mkdirp/README.markdown b/deps/npm/node_modules/mkdirp/README.markdown index 3cc131538511..fc314bfbd662 100644 --- a/deps/npm/node_modules/mkdirp/README.markdown +++ b/deps/npm/node_modules/mkdirp/README.markdown @@ -37,7 +37,7 @@ Create a new directory and any necessary subdirectories at `dir` with octal permission string `opts.mode`. If `opts` is a non-object, it will be treated as the `opts.mode`. -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. +If `opts.mode` isn't specified, it defaults to `0777`. `cb(err, made)` fires with the error or the first directory `made` that had to be created, if any. @@ -52,7 +52,7 @@ Synchronously create a new directory and any necessary subdirectories at `dir` with octal permission string `opts.mode`. If `opts` is a non-object, it will be treated as the `opts.mode`. -If `opts.mode` isn't specified, it defaults to `0777 & (~process.umask())`. +If `opts.mode` isn't specified, it defaults to `0777`. Returns the first directory that had to be created, if any. diff --git a/deps/npm/node_modules/mkdirp/index.js b/deps/npm/node_modules/mkdirp/index.js index 2f1287071fc0..468d7cd8df53 100644 --- a/deps/npm/node_modules/mkdirp/index.js +++ b/deps/npm/node_modules/mkdirp/index.js @@ -17,7 +17,7 @@ function mkdirP (p, opts, f, made) { var xfs = opts.fs || fs; if (mode === undefined) { - mode = _0777 & (~process.umask()); + mode = _0777 } if (!made) made = null; @@ -62,7 +62,7 @@ mkdirP.sync = function sync (p, opts, made) { var xfs = opts.fs || fs; if (mode === undefined) { - mode = _0777 & (~process.umask()); + mode = _0777 } if (!made) made = null; diff --git a/deps/npm/node_modules/mkdirp/package.json b/deps/npm/node_modules/mkdirp/package.json index 5ff5891b2c06..af775065f04f 100644 --- a/deps/npm/node_modules/mkdirp/package.json +++ b/deps/npm/node_modules/mkdirp/package.json @@ -1,19 +1,19 @@ { - "_from": "mkdirp@0.5.4", - "_id": "mkdirp@0.5.4", + "_from": "mkdirp@0.5.5", + "_id": "mkdirp@0.5.5", "_inBundle": false, - "_integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "_integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "_location": "/mkdirp", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "mkdirp@0.5.4", + "raw": "mkdirp@0.5.5", "name": "mkdirp", "escapedName": "mkdirp", - "rawSpec": "0.5.4", + "rawSpec": "0.5.5", "saveSpec": null, - "fetchSpec": "0.5.4" + "fetchSpec": "0.5.5" }, "_requiredBy": [ "#USER", @@ -32,9 +32,9 @@ "/tar", "/write" ], - "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "_shasum": "fd01504a6797ec5c9be81ff43d204961ed64a512", - "_spec": "mkdirp@0.5.4", + "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "_shasum": "d91cefd62d1436ca0f41620e251288d420099def", + "_spec": "mkdirp@0.5.5", "_where": "/Users/ruyadorno/Documents/workspace/cli", "author": { "name": "James Halliday", @@ -51,7 +51,7 @@ "dependencies": { "minimist": "^1.2.5" }, - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "deprecated": false, "description": "Recursively mkdir, like `mkdir -p`", "devDependencies": { "mock-fs": "^3.7.0", @@ -79,5 +79,5 @@ "scripts": { "test": "tap test/*.js" }, - "version": "0.5.4" + "version": "0.5.5" } diff --git a/deps/npm/node_modules/nopt/.npmignore b/deps/npm/node_modules/nopt/.npmignore deleted file mode 100644 index 3c3629e647f5..000000000000 --- a/deps/npm/node_modules/nopt/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/deps/npm/node_modules/nopt/.travis.yml b/deps/npm/node_modules/nopt/.travis.yml deleted file mode 100644 index a1cef591c3cf..000000000000 --- a/deps/npm/node_modules/nopt/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - '0.12' - - '4' - - '6' - - '7' -before_install: - - npm install -g npm@latest diff --git a/deps/npm/node_modules/nopt/examples/my-program.js b/deps/npm/node_modules/nopt/examples/my-program.js deleted file mode 100755 index 142447e18e75..000000000000 --- a/deps/npm/node_modules/nopt/examples/my-program.js +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env node - -//process.env.DEBUG_NOPT = 1 - -// my-program.js -var nopt = require("../lib/nopt") - , Stream = require("stream").Stream - , path = require("path") - , knownOpts = { "foo" : [String, null] - , "bar" : [Stream, Number] - , "baz" : path - , "bloo" : [ "big", "medium", "small" ] - , "flag" : Boolean - , "pick" : Boolean - } - , shortHands = { "foofoo" : ["--foo", "Mr. Foo"] - , "b7" : ["--bar", "7"] - , "m" : ["--bloo", "medium"] - , "p" : ["--pick"] - , "f" : ["--flag", "true"] - , "g" : ["--flag"] - , "s" : "--flag" - } - // everything is optional. - // knownOpts and shorthands default to {} - // arg list defaults to process.argv - // slice defaults to 2 - , parsed = nopt(knownOpts, shortHands, process.argv, 2) - -console.log("parsed =\n"+ require("util").inspect(parsed)) diff --git a/deps/npm/node_modules/nopt/lib/nopt.js b/deps/npm/node_modules/nopt/lib/nopt.js index 1fb113514f33..0ec5753d0cb8 100644 --- a/deps/npm/node_modules/nopt/lib/nopt.js +++ b/deps/npm/node_modules/nopt/lib/nopt.js @@ -113,7 +113,12 @@ function clean (data, types, typeDefs) { return d[k] }).filter(function (val) { return val !== remove }) - if (!val.length) delete data[k] + // if we allow Array specifically, then an empty array is how we + // express 'no value here', not null. Allow it. + if (!val.length && type.indexOf(Array) === -1) { + debug('VAL HAS NO LENGTH, DELETE IT', val, k, type.indexOf(Array)) + delete data[k] + } else if (isArray) { debug(isArray, data[k], val) data[k] = val diff --git a/deps/npm/node_modules/nopt/package.json b/deps/npm/node_modules/nopt/package.json index cea3624f4d14..1490f6d25d75 100644 --- a/deps/npm/node_modules/nopt/package.json +++ b/deps/npm/node_modules/nopt/package.json @@ -1,51 +1,54 @@ { - "_args": [ - [ - "nopt@4.0.1", - "/Users/rebecca/code/npm" - ] - ], - "_from": "nopt@4.0.1", - "_id": "nopt@4.0.1", + "_from": "nopt@4.0.3", + "_id": "nopt@4.0.3", "_inBundle": false, - "_integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "_integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "_location": "/nopt", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "nopt@4.0.1", + "raw": "nopt@4.0.3", "name": "nopt", "escapedName": "nopt", - "rawSpec": "4.0.1", + "rawSpec": "4.0.3", "saveSpec": null, - "fetchSpec": "4.0.1" + "fetchSpec": "4.0.3" }, "_requiredBy": [ - "/" + "#USER", + "/", + "/node-gyp" ], - "_resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "_spec": "4.0.1", - "_where": "/Users/rebecca/code/npm", + "_resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "_shasum": "a375cad9d02fd921278d954c2254d5aa57e15e48", + "_spec": "nopt@4.0.3", + "_where": "/Users/ruyadorno/Documents/workspace/cli", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me/" }, "bin": { - "nopt": "./bin/nopt.js" + "nopt": "bin/nopt.js" }, "bugs": { "url": "https://github.com/npm/nopt/issues" }, + "bundleDependencies": false, "dependencies": { "abbrev": "1", "osenv": "^0.1.4" }, + "deprecated": false, "description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.", "devDependencies": { - "tap": "^8.0.1" + "tap": "^14.10.6" }, + "files": [ + "bin", + "lib" + ], "homepage": "https://github.com/npm/nopt#readme", "license": "ISC", "main": "lib/nopt.js", @@ -55,7 +58,10 @@ "url": "git+https://github.com/npm/nopt.git" }, "scripts": { + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags", + "preversion": "npm test", "test": "tap test/*.js" }, - "version": "4.0.1" + "version": "4.0.3" } diff --git a/deps/npm/node_modules/nopt/test/basic.js b/deps/npm/node_modules/nopt/test/basic.js deleted file mode 100644 index 5c18ac0fc6a3..000000000000 --- a/deps/npm/node_modules/nopt/test/basic.js +++ /dev/null @@ -1,303 +0,0 @@ -var nopt = require("../") - , test = require('tap').test - , isWin = process.platform === 'win32' - -test("passing a string results in a string", function (t) { - var parsed = nopt({ key: String }, {}, ["--key", "myvalue"], 0) - t.same(parsed.key, "myvalue") - t.end() -}) - -// https://github.com/npm/nopt/issues/31 -test("Empty String results in empty string, not true", function (t) { - var parsed = nopt({ empty: String }, {}, ["--empty"], 0) - t.same(parsed.empty, "") - t.end() -}) - -// https://github.com/npm/nopt/issues/65 -test("Empty String should not swallow next flag", function (t) { - var parsed = nopt({ empty: String, foo: String }, {}, ["--empty", "--foo"], 0) - t.same(parsed.empty, "") - t.same(parsed.foo, "") - t.end() -}) - -// https://github.com/npm/nopt/issues/66 -test("Empty String should not be true when type is single item Array", function (t) { - var parsed = nopt({ 'foo': [String] }, {}, ["--foo"], 0) - t.same(parsed.foo, "") - t.end() -}) - -test("~ path is resolved to " + (isWin ? '%USERPROFILE%' : '$HOME'), function (t) { - var path = require("path") - , the - - if (isWin) { - the = { - key: 'USERPROFILE', - dir: 'C:\\temp', - val: '~\\val' - } - } else { - the = { - key: 'HOME', - dir: '/tmp', - val: '~/val' - } - } - if (!process.env[the.key]) process.env[the.key] = v.dir - var parsed = nopt({key: path}, {}, ["--key=" + the.val], 0) - t.same(parsed.key, path.resolve(process.env[the.key], "val")) - t.end() -}) - -// https://github.com/npm/nopt/issues/24 -test("Unknown options are not parsed as numbers", function (t) { - var parsed = nopt({"parse-me": Number}, null, ['--leave-as-is=1.20', '--parse-me=1.20'], 0) - t.equal(parsed['leave-as-is'], '1.20') - t.equal(parsed['parse-me'], 1.2) - t.end() -}); - -// https://github.com/npm/nopt/issues/48 -test("Check types based on name of type", function (t) { - var parsed = nopt({"parse-me": {name: "Number"}}, null, ['--parse-me=1.20'], 0) - t.equal(parsed['parse-me'], 1.2) - t.end() -}) - - -test("Missing types are not parsed", function (t) { - var parsed = nopt({"parse-me": {}}, null, ['--parse-me=1.20'], 0) - //should only contain argv - t.equal(Object.keys(parsed).length, 1) - t.end() -}) - -test("Types passed without a name are not parsed", function (t) { - var parsed = nopt({"parse-me": {}}, {}, ['--parse-me=1.20'], 0) - //should only contain argv - t.equal(Object.keys(parsed).length, 1) - t.end() -}) - -test("other tests", function (t) { - - var util = require("util") - , Stream = require("stream") - , path = require("path") - , url = require("url") - - , shorthands = - { s : ["--loglevel", "silent"] - , d : ["--loglevel", "info"] - , dd : ["--loglevel", "verbose"] - , ddd : ["--loglevel", "silly"] - , noreg : ["--no-registry"] - , reg : ["--registry"] - , "no-reg" : ["--no-registry"] - , silent : ["--loglevel", "silent"] - , verbose : ["--loglevel", "verbose"] - , h : ["--usage"] - , H : ["--usage"] - , "?" : ["--usage"] - , help : ["--usage"] - , v : ["--version"] - , f : ["--force"] - , desc : ["--description"] - , "no-desc" : ["--no-description"] - , "local" : ["--no-global"] - , l : ["--long"] - , p : ["--parseable"] - , porcelain : ["--parseable"] - , g : ["--global"] - } - - , types = - { aoa: Array - , nullstream: [null, Stream] - , date: Date - , str: String - , browser : String - , cache : path - , color : ["always", Boolean] - , depth : Number - , description : Boolean - , dev : Boolean - , editor : path - , force : Boolean - , global : Boolean - , globalconfig : path - , group : [String, Number] - , gzipbin : String - , logfd : [Number, Stream] - , loglevel : ["silent","win","error","warn","info","verbose","silly"] - , long : Boolean - , "node-version" : [false, String] - , npaturl : url - , npat : Boolean - , "onload-script" : [false, String] - , outfd : [Number, Stream] - , parseable : Boolean - , pre: Boolean - , prefix: path - , proxy : url - , "rebuild-bundle" : Boolean - , registry : url - , searchopts : String - , searchexclude: [null, String] - , shell : path - , t: [Array, String] - , tag : String - , tar : String - , tmp : path - , "unsafe-perm" : Boolean - , usage : Boolean - , user : String - , username : String - , userconfig : path - , version : Boolean - , viewer: path - , _exit : Boolean - , path: path - } - - ; [["-v", {version:true}, []] - ,["---v", {version:true}, []] - ,["ls -s --no-reg connect -d", - {loglevel:"info",registry:null},["ls","connect"]] - ,["ls ---s foo",{loglevel:"silent"},["ls","foo"]] - ,["ls --registry blargle", {}, ["ls"]] - ,["--no-registry", {registry:null}, []] - ,["--no-color true", {color:false}, []] - ,["--no-color false", {color:true}, []] - ,["--no-color", {color:false}, []] - ,["--color false", {color:false}, []] - ,["--color --logfd 7", {logfd:7,color:true}, []] - ,["--color=true", {color:true}, []] - ,["--logfd=10", {logfd:10}, []] - ,["--tmp=/tmp -tar=gtar", {tmp: isWin ? "C:\\tmp" : "/tmp",tar:"gtar"},[]] - ,["--tmp=tmp -tar=gtar", - {tmp:path.resolve(process.cwd(), "tmp"),tar:"gtar"},[]] - ,["--logfd x", {}, []] - ,["a -true -- -no-false", {true:true},["a","-no-false"]] - ,["a -no-false", {false:false},["a"]] - ,["a -no-no-true", {true:true}, ["a"]] - ,["a -no-no-no-false", {false:false}, ["a"]] - ,["---NO-no-No-no-no-no-nO-no-no"+ - "-No-no-no-no-no-no-no-no-no"+ - "-no-no-no-no-NO-NO-no-no-no-no-no-no"+ - "-no-body-can-do-the-boogaloo-like-I-do" - ,{"body-can-do-the-boogaloo-like-I-do":false}, []] - ,["we are -no-strangers-to-love "+ - "--you-know=the-rules --and=so-do-i "+ - "---im-thinking-of=a-full-commitment "+ - "--no-you-would-get-this-from-any-other-guy "+ - "--no-gonna-give-you-up "+ - "-no-gonna-let-you-down=true "+ - "--no-no-gonna-run-around false "+ - "--desert-you=false "+ - "--make-you-cry false "+ - "--no-tell-a-lie "+ - "--no-no-and-hurt-you false" - ,{"strangers-to-love":false - ,"you-know":"the-rules" - ,"and":"so-do-i" - ,"you-would-get-this-from-any-other-guy":false - ,"gonna-give-you-up":false - ,"gonna-let-you-down":false - ,"gonna-run-around":false - ,"desert-you":false - ,"make-you-cry":false - ,"tell-a-lie":false - ,"and-hurt-you":false - },["we", "are"]] - ,["-t one -t two -t three" - ,{t: ["one", "two", "three"]} - ,[]] - ,["-t one -t null -t three four five null" - ,{t: ["one", "null", "three"]} - ,["four", "five", "null"]] - ,["-t foo" - ,{t:["foo"]} - ,[]] - ,["--no-t" - ,{t:["false"]} - ,[]] - ,["-no-no-t" - ,{t:["true"]} - ,[]] - ,["-aoa one -aoa null -aoa 100" - ,{aoa:["one", null, '100']} - ,[]] - ,["-str 100" - ,{str:"100"} - ,[]] - ,["--color always" - ,{color:"always"} - ,[]] - ,["--no-nullstream" - ,{nullstream:null} - ,[]] - ,["--nullstream false" - ,{nullstream:null} - ,[]] - ,["--notadate=2011-01-25" - ,{notadate: "2011-01-25"} - ,[]] - ,["--date 2011-01-25" - ,{date: new Date("2011-01-25")} - ,[]] - ,["-cl 1" - ,{config: true, length: 1} - ,[] - ,{config: Boolean, length: Number, clear: Boolean} - ,{c: "--config", l: "--length"}] - ,["--acount bla" - ,{"acount":true} - ,["bla"] - ,{account: Boolean, credentials: Boolean, options: String} - ,{a:"--account", c:"--credentials",o:"--options"}] - ,["--clear" - ,{clear:true} - ,[] - ,{clear:Boolean,con:Boolean,len:Boolean,exp:Boolean,add:Boolean,rep:Boolean} - ,{c:"--con",l:"--len",e:"--exp",a:"--add",r:"--rep"}] - ,["--file -" - ,{"file":"-"} - ,[] - ,{file:String} - ,{}] - ,["--file -" - ,{"file":true} - ,["-"] - ,{file:Boolean} - ,{}] - ,["--path" - ,{"path":null} - ,[]] - ,["--path ." - ,{"path":process.cwd()} - ,[]] - ].forEach(function (test) { - var argv = test[0].split(/\s+/) - , opts = test[1] - , rem = test[2] - , actual = nopt(test[3] || types, test[4] || shorthands, argv, 0) - , parsed = actual.argv - delete actual.argv - for (var i in opts) { - var e = JSON.stringify(opts[i]) - , a = JSON.stringify(actual[i] === undefined ? null : actual[i]) - if (e && typeof e === "object") { - t.deepEqual(e, a) - } else { - t.equal(e, a) - } - } - t.deepEqual(rem, parsed.remain) - }) - t.end() -}) diff --git a/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md index 3599c6b2fcac..75b74eec6014 100644 --- a/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md +++ b/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md @@ -2,6 +2,11 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [4.0.4](https://github.com/npm/registry-fetch/compare/v4.0.3...v4.0.4) (2020-04-28) + + + ## [4.0.3](https://github.com/npm/registry-fetch/compare/v4.0.2...v4.0.3) (2020-02-13) diff --git a/deps/npm/node_modules/npm-registry-fetch/README.md b/deps/npm/node_modules/npm-registry-fetch/README.md index 80ce64cda78e..9f9c6d0e808f 100644 --- a/deps/npm/node_modules/npm-registry-fetch/README.md +++ b/deps/npm/node_modules/npm-registry-fetch/README.md @@ -581,7 +581,7 @@ See also [`opts.ca`](#opts-ca). ##### `opts.timeout` * Type: Milliseconds -* Default: 30000 (30 seconds) +* Default: 0 (no timeout) Time before a hanging request times out. diff --git a/deps/npm/node_modules/npm-registry-fetch/config.js b/deps/npm/node_modules/npm-registry-fetch/config.js index d7be3f9b38a1..c4e8b687412a 100644 --- a/deps/npm/node_modules/npm-registry-fetch/config.js +++ b/deps/npm/node_modules/npm-registry-fetch/config.js @@ -76,7 +76,7 @@ module.exports = figgyPudding({ 'spec': {}, 'strict-ssl': {}, 'timeout': { - default: 30 * 1000 + default: 0 }, 'user-agent': { default: `${ diff --git a/deps/npm/node_modules/npm-registry-fetch/package.json b/deps/npm/node_modules/npm-registry-fetch/package.json index ca6c5f90c635..c1582514e36e 100644 --- a/deps/npm/node_modules/npm-registry-fetch/package.json +++ b/deps/npm/node_modules/npm-registry-fetch/package.json @@ -1,19 +1,19 @@ { - "_from": "npm-registry-fetch@4.0.3", - "_id": "npm-registry-fetch@4.0.3", + "_from": "npm-registry-fetch@4.0.4", + "_id": "npm-registry-fetch@4.0.4", "_inBundle": false, - "_integrity": "sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw==", + "_integrity": "sha512-6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==", "_location": "/npm-registry-fetch", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "npm-registry-fetch@4.0.3", + "raw": "npm-registry-fetch@4.0.4", "name": "npm-registry-fetch", "escapedName": "npm-registry-fetch", - "rawSpec": "4.0.3", + "rawSpec": "4.0.4", "saveSpec": null, - "fetchSpec": "4.0.3" + "fetchSpec": "4.0.4" }, "_requiredBy": [ "#USER", @@ -28,10 +28,10 @@ "/npm-profile", "/pacote" ], - "_resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz", - "_shasum": "3c2179e39e04f9348b1c2979545951d36bee8766", - "_spec": "npm-registry-fetch@4.0.3", - "_where": "/Users/darcyclarke/Documents/Repos/npm/cli", + "_resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz", + "_shasum": "2da1ecf3f43d419d96abf313664291a4623d3ea5", + "_spec": "npm-registry-fetch@4.0.4", + "_where": "/Users/ruyadorno/Documents/workspace/cli", "author": { "name": "Kat Marchán", "email": "kzm@sykosomatic.org" @@ -102,5 +102,5 @@ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'", "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'" }, - "version": "4.0.3" + "version": "4.0.4" } diff --git a/deps/npm/package.json b/deps/npm/package.json index d367dc98b598..bfbed9ea0bab 100644 --- a/deps/npm/package.json +++ b/deps/npm/package.json @@ -1,5 +1,5 @@ { - "version": "6.14.4", + "version": "6.14.5", "name": "npm", "description": "a package manager for JavaScript", "keywords": [ @@ -61,7 +61,7 @@ "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.3.0", "glob": "^7.1.6", - "graceful-fs": "^4.2.3", + "graceful-fs": "^4.2.4", "has-unicode": "~2.0.1", "hosted-git-info": "^2.8.8", "iferr": "^1.0.2", @@ -91,10 +91,10 @@ "lru-cache": "^5.1.1", "meant": "~1.0.1", "mississippi": "^3.0.0", - "mkdirp": "^0.5.4", + "mkdirp": "^0.5.5", "move-concurrently": "^1.0.1", "node-gyp": "^5.1.0", - "nopt": "~4.0.1", + "nopt": "^4.0.3", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", "npm-cache-filename": "~1.0.2", @@ -104,7 +104,7 @@ "npm-packlist": "^1.4.8", "npm-pick-manifest": "^3.0.2", "npm-profile": "^4.0.4", - "npm-registry-fetch": "^4.0.3", + "npm-registry-fetch": "^4.0.4", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", diff --git a/deps/npm/scripts/release.sh b/deps/npm/scripts/release.sh index 31fb6fa19414..75d2115aadf8 100644 --- a/deps/npm/scripts/release.sh +++ b/deps/npm/scripts/release.sh @@ -7,6 +7,8 @@ unset CDPATH set -e rm -rf release *.tgz || true +rm node_modules/node-gyp/gyp/pylib/gyp/*.pyc || true +rm node_modules/node-gyp/gyp/pylib/gyp/generator/*.pyc || true mkdir release node ./bin/npm-cli.js pack --loglevel error >/dev/null mv *.tgz release diff --git a/deps/npm/test/tap/install-dep-classification.js b/deps/npm/test/tap/install-dep-classification.js index 257fc99fc123..1c9995cedc8a 100644 --- a/deps/npm/test/tap/install-dep-classification.js +++ b/deps/npm/test/tap/install-dep-classification.js @@ -126,7 +126,7 @@ test('optional dependency identification', function (t) { optional: true }, example: { - version: '1.0.0', + version: 'file:../example-1.0.0.tgz', optional: true } } @@ -150,7 +150,7 @@ test('development dependency identification', function (t) { dev: true }, example: { - version: '1.0.0', + version: 'file:../example-1.0.0.tgz', dev: true } } @@ -173,7 +173,7 @@ test('default dependency identification', function (t) { optional: true }, example: { - version: '1.0.0', + version: 'file:../example-1.0.0.tgz', optional: true } } From 398bdf40e5ca57477722ec015630577a140093e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 7 May 2020 20:23:56 +0200 Subject: [PATCH 042/104] perf_hooks: fix error message for invalid entryTypes Will now print a more meaningful value instead of always [object Object] PR-URL: https://github.com/nodejs/node/pull/33285 Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Anna Henningsen Reviewed-By: Chengzhong Wu Reviewed-By: Luigi Pinca --- lib/perf_hooks.js | 11 ++++++----- test/parallel/test-performanceobserver.js | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index efc92ca8c4ae..2ce0d29464a9 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -341,11 +341,12 @@ class PerformanceObserver extends AsyncResource { if (typeof options !== 'object' || options === null) { throw new ERR_INVALID_ARG_TYPE('options', 'Object', options); } - if (!ArrayIsArray(options.entryTypes)) { - throw new ERR_INVALID_OPT_VALUE('entryTypes', options); + const { entryTypes } = options; + if (!ArrayIsArray(entryTypes)) { + throw new ERR_INVALID_OPT_VALUE('entryTypes', entryTypes); } - const entryTypes = options.entryTypes.filter(filterTypes).map(mapTypes); - if (entryTypes.length === 0) { + const filteredEntryTypes = entryTypes.filter(filterTypes).map(mapTypes); + if (filteredEntryTypes.length === 0) { throw new ERR_VALID_PERFORMANCE_ENTRY_TYPE(); } this.disconnect(); @@ -353,7 +354,7 @@ class PerformanceObserver extends AsyncResource { this[kBuffer][kEntries] = []; L.init(this[kBuffer][kEntries]); this[kBuffering] = Boolean(options.buffered); - for (const entryType of entryTypes) { + for (const entryType of filteredEntryTypes) { const list = getObserversList(entryType); if (this[kTypes][entryType]) continue; const item = { obs: this }; diff --git a/test/parallel/test-performanceobserver.js b/test/parallel/test-performanceobserver.js index c68de859b6b6..3b2f94411f3d 100644 --- a/test/parallel/test-performanceobserver.js +++ b/test/parallel/test-performanceobserver.js @@ -58,7 +58,7 @@ assert.strictEqual(counts[NODE_PERFORMANCE_ENTRY_TYPE_FUNCTION], 0); { code: 'ERR_INVALID_OPT_VALUE', name: 'TypeError', - message: 'The value "[object Object]" is invalid ' + + message: `The value "${i}" is invalid ` + 'for option "entryTypes"' }); }); From 1d2c81fee984fb38bbde624ca8565cdffb1ceba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Thu, 7 May 2020 20:49:56 +0200 Subject: [PATCH 043/104] test: add hr-time Web platform tests Refs: https://github.com/nodejs/node/pull/32790 PR-URL: https://github.com/nodejs/node/pull/33287 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Joyee Cheung --- test/fixtures/wpt/README.md | 1 + test/fixtures/wpt/hr-time/META.yml | 4 + test/fixtures/wpt/hr-time/basic.any.js | 28 +++++++ test/fixtures/wpt/hr-time/idlharness.any.js | 23 ++++++ .../wpt/hr-time/monotonic-clock.any.js | 13 ++++ .../wpt/hr-time/performance-tojson.html | 76 +++++++++++++++++++ .../wpt/hr-time/resources/now_frame.html | 9 +++ .../wpt/hr-time/resources/unload-a.html | 13 ++++ .../wpt/hr-time/resources/unload-b.html | 13 ++++ .../wpt/hr-time/resources/unload-c.html | 13 ++++ test/fixtures/wpt/hr-time/resources/unload.js | 50 ++++++++++++ .../wpt/hr-time/test_cross_frame_start.html | 59 ++++++++++++++ test/fixtures/wpt/hr-time/timeOrigin.html | 45 +++++++++++ test/fixtures/wpt/hr-time/timing-attack.html | 55 ++++++++++++++ test/fixtures/wpt/hr-time/unload-manual.html | 73 ++++++++++++++++++ .../window-worker-timeOrigin.window.js | 30 ++++++++ test/fixtures/wpt/versions.json | 4 + test/wpt/status/hr-time.json | 1 + test/wpt/test-hr-time.js | 27 +++++++ 19 files changed, 537 insertions(+) create mode 100644 test/fixtures/wpt/hr-time/META.yml create mode 100644 test/fixtures/wpt/hr-time/basic.any.js create mode 100644 test/fixtures/wpt/hr-time/idlharness.any.js create mode 100644 test/fixtures/wpt/hr-time/monotonic-clock.any.js create mode 100644 test/fixtures/wpt/hr-time/performance-tojson.html create mode 100644 test/fixtures/wpt/hr-time/resources/now_frame.html create mode 100644 test/fixtures/wpt/hr-time/resources/unload-a.html create mode 100644 test/fixtures/wpt/hr-time/resources/unload-b.html create mode 100644 test/fixtures/wpt/hr-time/resources/unload-c.html create mode 100644 test/fixtures/wpt/hr-time/resources/unload.js create mode 100644 test/fixtures/wpt/hr-time/test_cross_frame_start.html create mode 100644 test/fixtures/wpt/hr-time/timeOrigin.html create mode 100644 test/fixtures/wpt/hr-time/timing-attack.html create mode 100644 test/fixtures/wpt/hr-time/unload-manual.html create mode 100644 test/fixtures/wpt/hr-time/window-worker-timeOrigin.window.js create mode 100644 test/wpt/status/hr-time.json create mode 100644 test/wpt/test-hr-time.js diff --git a/test/fixtures/wpt/README.md b/test/fixtures/wpt/README.md index dcf42abe7925..421b5fdcb77f 100644 --- a/test/fixtures/wpt/README.md +++ b/test/fixtures/wpt/README.md @@ -17,6 +17,7 @@ Last update: - interfaces: https://github.com/web-platform-tests/wpt/tree/712c9f275e/interfaces - html/webappapis/microtask-queuing: https://github.com/web-platform-tests/wpt/tree/0c3bed38df/html/webappapis/microtask-queuing - html/webappapis/timers: https://github.com/web-platform-tests/wpt/tree/ddfe9c089b/html/webappapis/timers +- hr-time: https://github.com/web-platform-tests/wpt/tree/a5d1774ecf/hr-time [Web Platform Tests]: https://github.com/web-platform-tests/wpt [`git node wpt`]: https://github.com/nodejs/node-core-utils/blob/master/docs/git-node.md#git-node-wpt diff --git a/test/fixtures/wpt/hr-time/META.yml b/test/fixtures/wpt/hr-time/META.yml new file mode 100644 index 000000000000..779d5b4af084 --- /dev/null +++ b/test/fixtures/wpt/hr-time/META.yml @@ -0,0 +1,4 @@ +spec: https://w3c.github.io/hr-time/ +suggested_reviewers: + - plehegar + - igrigorik diff --git a/test/fixtures/wpt/hr-time/basic.any.js b/test/fixtures/wpt/hr-time/basic.any.js new file mode 100644 index 000000000000..364dd81a3448 --- /dev/null +++ b/test/fixtures/wpt/hr-time/basic.any.js @@ -0,0 +1,28 @@ +test(function() { + assert_true((self.performance !== undefined), "self.performance exists"); + assert_equals(typeof self.performance, "object", "self.performance is an object"); + assert_equals((typeof self.performance.now), "function", "self.performance.now() is a function"); + assert_equals(typeof self.performance.now(), "number", "self.performance.now() returns a number"); +}, "self.performance.now() is a function that returns a number"); + +test(function() { + assert_true(self.performance.now() > 0); +}, "self.performance.now() returns a positive number"); + +test(function() { + var now1 = self.performance.now(); + var now2 = self.performance.now(); + assert_true((now2-now1) >= 0); + }, "self.performance.now() difference is not negative"); + +async_test(function() { + // Check whether the performance.now() method is close to Date() within 30ms (due to inaccuracies) + var initial_hrt = self.performance.now(); + var initial_date = Date.now(); + this.step_timeout(function() { + var final_hrt = self.performance.now(); + var final_date = Date.now(); + assert_approx_equals(final_hrt - initial_hrt, final_date - initial_date, 30, 'High resolution time value increased by approximately the same amount as time from date object'); + this.done(); + }, 2000); +}, 'High resolution time has approximately the right relative magnitude'); diff --git a/test/fixtures/wpt/hr-time/idlharness.any.js b/test/fixtures/wpt/hr-time/idlharness.any.js new file mode 100644 index 000000000000..6676b001a8b8 --- /dev/null +++ b/test/fixtures/wpt/hr-time/idlharness.any.js @@ -0,0 +1,23 @@ +// META: global=window,worker +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js +// META: timeout=long + +'use strict'; + +// https://w3c.github.io/hr-time/ + +idl_test( + ['hr-time'], + ['html', 'dom'], + async idl_array => { + if (self.GLOBAL.isWorker()) { + idl_array.add_objects({ WorkerGlobalScope: ['self'] }); + } else { + idl_array.add_objects({ Window: ['self'] }); + } + idl_array.add_objects({ + Performance: ['performance'], + }); + } +); diff --git a/test/fixtures/wpt/hr-time/monotonic-clock.any.js b/test/fixtures/wpt/hr-time/monotonic-clock.any.js new file mode 100644 index 000000000000..c53b04d844e4 --- /dev/null +++ b/test/fixtures/wpt/hr-time/monotonic-clock.any.js @@ -0,0 +1,13 @@ +// The time values returned when calling the now method MUST be monotonically increasing and not subject to system clock adjustments or system clock skew. +test(function() { + assert_true(self.performance.now() > 0, "self.performance.now() returns positive numbers"); +}, "self.performance.now() returns a positive number"); + +// The difference between any two chronologically recorded time values returned from the now method MUST never be negative. +test(function() { + var now1 = self.performance.now(); + var now2 = self.performance.now(); + assert_true((now2-now1) >= 0, "self.performance.now() difference is not negative"); + }, + "self.performance.now() difference is not negative" +); diff --git a/test/fixtures/wpt/hr-time/performance-tojson.html b/test/fixtures/wpt/hr-time/performance-tojson.html new file mode 100644 index 000000000000..fd8049cb9a1e --- /dev/null +++ b/test/fixtures/wpt/hr-time/performance-tojson.html @@ -0,0 +1,76 @@ + + + + + + + + + + \ No newline at end of file diff --git a/test/fixtures/wpt/hr-time/resources/now_frame.html b/test/fixtures/wpt/hr-time/resources/now_frame.html new file mode 100644 index 000000000000..5bec688af9cd --- /dev/null +++ b/test/fixtures/wpt/hr-time/resources/now_frame.html @@ -0,0 +1,9 @@ + + + + + window.performance.now frame + + + + diff --git a/test/fixtures/wpt/hr-time/resources/unload-a.html b/test/fixtures/wpt/hr-time/resources/unload-a.html new file mode 100644 index 000000000000..40c1d061830e --- /dev/null +++ b/test/fixtures/wpt/hr-time/resources/unload-a.html @@ -0,0 +1,13 @@ + + + + Helper page for ../unload-manual.html + + + + + + + diff --git a/test/fixtures/wpt/hr-time/resources/unload-b.html b/test/fixtures/wpt/hr-time/resources/unload-b.html new file mode 100644 index 000000000000..7c2d90df275f --- /dev/null +++ b/test/fixtures/wpt/hr-time/resources/unload-b.html @@ -0,0 +1,13 @@ + + + + Helper page for ../unload-manual.html + + + + + + + diff --git a/test/fixtures/wpt/hr-time/resources/unload-c.html b/test/fixtures/wpt/hr-time/resources/unload-c.html new file mode 100644 index 000000000000..731da9db758b --- /dev/null +++ b/test/fixtures/wpt/hr-time/resources/unload-c.html @@ -0,0 +1,13 @@ + + + + Helper page for ../unload-manual.html + + + + + + + diff --git a/test/fixtures/wpt/hr-time/resources/unload.js b/test/fixtures/wpt/hr-time/resources/unload.js new file mode 100644 index 000000000000..06b0bc7da78b --- /dev/null +++ b/test/fixtures/wpt/hr-time/resources/unload.js @@ -0,0 +1,50 @@ +const syncDelay = ms => { + const start = performance.now(); + let elapsedTime; + do { + elapsedTime = performance.now() - start; + } while (elapsedTime < ms); +}; + +const markTime = (docName, lifecycleEventName) => { + // Calculating these values before the below `mark` invocation ensures that delays in + // reaching across to the other window object doesn't interfere with the correctness + // of the test. + const dateNow = Date.now(); + const performanceNow = performance.now(); + + window.opener.mark({ + docName, + lifecycleEventName, + performanceNow: performanceNow, + dateNow: dateNow + }); +}; + +const setupUnloadPrompt = (docName, msg) => { + window.addEventListener("beforeunload", ev => { + markTime(docName, "beforeunload"); + return ev.returnValue = msg || "Click OK to continue test." + }); +}; + +const setupListeners = (docName, nextDocument) => { + window.addEventListener("load", () => { + markTime(docName, "load"); + document.getElementById("proceed").addEventListener("click", ev => { + ev.preventDefault(); + if (nextDocument) { + document.location = nextDocument; + } else { + window.close(); + } + }) + }); + + setupUnloadPrompt(docName); + + window.addEventListener("unload", () => { + markTime(docName, "unload"); + if (docName !== "c") { syncDelay(1000); } + }); +}; diff --git a/test/fixtures/wpt/hr-time/test_cross_frame_start.html b/test/fixtures/wpt/hr-time/test_cross_frame_start.html new file mode 100644 index 000000000000..30e804bd7350 --- /dev/null +++ b/test/fixtures/wpt/hr-time/test_cross_frame_start.html @@ -0,0 +1,59 @@ + + + + + window.performance.now across frames + + + + + + + + + + +

Description

+

This test validates the values of the window.performance.now() are based on the current document's navigationStart.

+
+ + diff --git a/test/fixtures/wpt/hr-time/timeOrigin.html b/test/fixtures/wpt/hr-time/timeOrigin.html new file mode 100644 index 000000000000..20aea7508451 --- /dev/null +++ b/test/fixtures/wpt/hr-time/timeOrigin.html @@ -0,0 +1,45 @@ + + + + + + + + + + \ No newline at end of file diff --git a/test/fixtures/wpt/hr-time/timing-attack.html b/test/fixtures/wpt/hr-time/timing-attack.html new file mode 100644 index 000000000000..71ade4a8c48c --- /dev/null +++ b/test/fixtures/wpt/hr-time/timing-attack.html @@ -0,0 +1,55 @@ + + + + +window.performance.now should not enable timing attacks + + + + + + + +

Description

+

The recommended minimum resolution of the Performance interface should be set to 5 microseconds.

+ +
+ + + diff --git a/test/fixtures/wpt/hr-time/unload-manual.html b/test/fixtures/wpt/hr-time/unload-manual.html new file mode 100644 index 000000000000..18c4e0dc3279 --- /dev/null +++ b/test/fixtures/wpt/hr-time/unload-manual.html @@ -0,0 +1,73 @@ + + + + time origin value manual test + + + + + + + + + + +

Description

+

This test validates the behavior of performance.now() with respect to its time origin.

+
+

Manual Test Steps

+
    +
  1. Click here +
+
+ + diff --git a/test/fixtures/wpt/hr-time/window-worker-timeOrigin.window.js b/test/fixtures/wpt/hr-time/window-worker-timeOrigin.window.js new file mode 100644 index 000000000000..1e5ef1cdffec --- /dev/null +++ b/test/fixtures/wpt/hr-time/window-worker-timeOrigin.window.js @@ -0,0 +1,30 @@ +"use strict" +// https://w3c.github.io/hr-time/#time-origin + +async_test(function(test) { + // Cache global time before starting worker + const globalTimeOrigin = performance.timeOrigin; + const globalNowBeforeWorkerStart = performance.now(); + + // Start worker and retrieve time + const workerScript = "postMessage({timeOrigin: performance.timeOrigin, now: performance.now()})"; + const blob = new Blob([workerScript]); + let worker = new Worker(URL.createObjectURL(blob)); + + worker.addEventListener("message", test.step_func_done(function(event) { + const workerTimeOrigin = event.data.timeOrigin; + const workerNow = event.data.now; + + assert_not_equals(workerTimeOrigin, 0, "worker timeOrigin must not be 0"); + assert_not_equals(performance.timeOrigin, 0, "Document timeOrigin must not be 0"); + + assert_equals(globalTimeOrigin, performance.timeOrigin, "timeOrigin should not be changed in same document mode"); + assert_less_than(globalTimeOrigin, workerTimeOrigin, "Document timeOrigin must be earlier than worker timeOrigin"); + + // Document and worker's now() start from their respective timeOrigins. + const timeDiff = workerTimeOrigin - globalTimeOrigin; // convert worker's time to Document time. + assert_less_than(globalTimeOrigin + globalNowBeforeWorkerStart, globalTimeOrigin + timeDiff + workerNow, "Document old now is earlier than worker now."); + + // Comparing timing between Document and worker threads could be delicate as it relies on the thread implementation and could be subject to race conditions. + })); +}, 'timeOrigin and now() should be correctly ordered between window and worker'); diff --git a/test/fixtures/wpt/versions.json b/test/fixtures/wpt/versions.json index c560f6844e9e..5fdc09c4f4f8 100644 --- a/test/fixtures/wpt/versions.json +++ b/test/fixtures/wpt/versions.json @@ -26,5 +26,9 @@ "html/webappapis/timers": { "commit": "ddfe9c089bab565a9d3aa37bdef63d8012c1a94c", "path": "html/webappapis/timers" + }, + "hr-time": { + "commit": "a5d1774ecf41751d1c9357c27c709ee33bf3e279", + "path": "hr-time" } } \ No newline at end of file diff --git a/test/wpt/status/hr-time.json b/test/wpt/status/hr-time.json new file mode 100644 index 000000000000..0967ef424bce --- /dev/null +++ b/test/wpt/status/hr-time.json @@ -0,0 +1 @@ +{} diff --git a/test/wpt/test-hr-time.js b/test/wpt/test-hr-time.js new file mode 100644 index 000000000000..eb9c68797dfc --- /dev/null +++ b/test/wpt/test-hr-time.js @@ -0,0 +1,27 @@ +'use strict'; + +// Flags: --expose-internals + +require('../common'); +const { WPTRunner } = require('../common/wpt'); +const { performance, PerformanceObserver } = require('perf_hooks'); + +const runner = new WPTRunner('hr-time'); + +runner.copyGlobalsFromObject(global, [ + 'setInterval', + 'clearInterval', + 'setTimeout', + 'clearTimeout' +]); + +runner.defineGlobal('performance', { + get() { + return performance; + } +}); +runner.defineGlobal('PerformanceObserver', { + value: PerformanceObserver +}); + +runner.runJsTests(); From 804982c1b60f9b4d11f600972301378d67afd06c Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 9 Mar 2020 21:53:03 +0100 Subject: [PATCH 044/104] tools: add eslint rule to only pass through 'test' to debuglog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes sure all usages of `util.debuglog()` must contain the string 'test' as argument. PR-URL: https://github.com/nodejs/node/pull/32161 Refs: https://github.com/nodejs/node/pull/32078 Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat Reviewed-By: Juan José Arboleda Reviewed-By: Michaël Zasso --- test/.eslintrc.yaml | 36 ++++++++++++++++++++++++++++++ test/sequential/test-util-debug.js | 1 + 2 files changed, 37 insertions(+) diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml index 86d4b595e7dc..f707caffdafd 100644 --- a/test/.eslintrc.yaml +++ b/test/.eslintrc.yaml @@ -11,6 +11,42 @@ rules: prefer-const: error symbol-description: off + no-restricted-syntax: + # Config copied from .eslintrc.js + - error + - selector: "CallExpression:matches([callee.name='deepStrictEqual'], [callee.property.name='deepStrictEqual'])[arguments.2.type='Literal']" + message: "Do not use a literal for the third argument of assert.deepStrictEqual()" + - selector: "CallExpression:matches([callee.name='doesNotThrow'], [callee.property.name='doesNotThrow'])" + message: "Do not use `assert.doesNotThrow()`. Write the code without the wrapper and add a comment instead." + - selector: "CallExpression:matches([callee.name='doesNotReject'], [callee.property.name='doesNotReject'])" + message: "Do not use `assert.doesNotReject()`. Write the code without the wrapper and add a comment instead." + - selector: "CallExpression:matches([callee.name='rejects'], [callee.property.name='rejects'])[arguments.length<2]" + message: "`assert.rejects()` must be invoked with at least two arguments." + - selector: "CallExpression[callee.property.name='strictEqual'][arguments.2.type='Literal']" + message: "Do not use a literal for the third argument of assert.strictEqual()" + - selector: "CallExpression:matches([callee.name='throws'], [callee.property.name='throws'])[arguments.1.type='Literal']:not([arguments.1.regex])" + message: "Use an object as second argument of `assert.throws()`." + - selector: "CallExpression:matches([callee.name='throws'], [callee.property.name='throws'])[arguments.length<2]" + message: "`assert.throws()` must be invoked with at least two arguments." + - selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]" + message: "`setTimeout()` must be invoked with at least two arguments." + - selector: "CallExpression[callee.name='setInterval'][arguments.length<2]" + message: "`setInterval()` must be invoked with at least two arguments." + - selector: "ThrowStatement > CallExpression[callee.name=/Error$/]" + message: "Use `new` keyword when throwing an `Error`." + - selector: "CallExpression:matches([callee.name='notDeepStrictEqual'], [callee.property.name='notDeepStrictEqual'])[arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])" + message: "The first argument should be the `actual`, not the `expected` value." + - selector: "CallExpression:matches([callee.name='notStrictEqual'], [callee.property.name='notStrictEqual'])[arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])" + message: "The first argument should be the `actual`, not the `expected` value." + - selector: "CallExpression:matches([callee.name='deepStrictEqual'], [callee.property.name='deepStrictEqual'])[arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])" + message: "The first argument should be the `actual`, not the `expected` value." + - selector: "CallExpression:matches([callee.name='strictEqual'], [callee.property.name='strictEqual'])[arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])" + message: "The first argument should be the `actual`, not the `expected` value." + - selector: "CallExpression[callee.name='isNaN']" + message: "Use Number.isNaN() instead of the global isNaN() function." + - selector: "VariableDeclarator > CallExpression:matches([callee.name='debuglog'], [callee.property.name='debuglog']):not([arguments.0.value='test'])" + message: "Use 'test' as debuglog value in tests." + # Custom rules in tools/eslint-rules node-core/prefer-assert-iferror: error node-core/prefer-assert-methods: error diff --git a/test/sequential/test-util-debug.js b/test/sequential/test-util-debug.js index f791eb8a8d25..6cad46f101c0 100644 --- a/test/sequential/test-util-debug.js +++ b/test/sequential/test-util-debug.js @@ -117,6 +117,7 @@ function child(section) { Object.defineProperty(process.stderr, 'hasColors', { value: tty.WriteStream.prototype.hasColors }); + // eslint-disable-next-line no-restricted-syntax const debug = util.debuglog(section); debug('this', { is: 'a' }, /debugging/); debug('num=%d str=%s obj=%j', 1, 'a', { foo: 'bar' }); From cf03fe5b67a2ec97cc26950ec0d0d780d178378d Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 9 Mar 2020 21:56:04 +0100 Subject: [PATCH 045/104] tools: remove obsolete no-restricted-syntax eslint rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These rules only apply for the test folder and will already be checked for. PR-URL: https://github.com/nodejs/node/pull/32161 Refs: https://github.com/nodejs/node/pull/32078 Reviewed-By: Rich Trott Reviewed-By: James M Snell Reviewed-By: Trivikram Kamat Reviewed-By: Juan José Arboleda Reviewed-By: Michaël Zasso --- .eslintrc.js | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ba94036b0f50..14c53277a19a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -189,34 +189,6 @@ module.exports = { // as well to lib/.eslintrc.yaml. 'no-restricted-syntax': [ 'error', - { - selector: "CallExpression[callee.property.name='deepStrictEqual'][arguments.2.type='Literal']", - message: 'Do not use a literal for the third argument of assert.deepStrictEqual()', - }, - { - selector: "CallExpression[callee.property.name='doesNotThrow']", - message: 'Do not use `assert.doesNotThrow()`. Write the code without the wrapper and add a comment instead.', - }, - { - selector: "CallExpression[callee.property.name='doesNotReject']", - message: 'Do not use `assert.doesNotReject()`. Write the code without the wrapper and add a comment instead.', - }, - { - selector: "CallExpression[callee.property.name='rejects'][arguments.length<2]", - message: '`assert.rejects()` must be invoked with at least two arguments.', - }, - { - selector: "CallExpression[callee.property.name='strictEqual'][arguments.2.type='Literal']", - message: 'Do not use a literal for the third argument of assert.strictEqual()', - }, - { - selector: "CallExpression[callee.property.name='throws'][arguments.1.type='Literal']:not([arguments.1.regex])", - message: 'Use an object as second argument of `assert.throws()`.', - }, - { - selector: "CallExpression[callee.property.name='throws'][arguments.length<2]", - message: '`assert.throws()` must be invoked with at least two arguments.', - }, { selector: "CallExpression[callee.name='setTimeout'][arguments.length<2]", message: '`setTimeout()` must be invoked with at least two arguments.', @@ -229,22 +201,6 @@ module.exports = { selector: 'ThrowStatement > CallExpression[callee.name=/Error$/]', message: 'Use `new` keyword when throwing an `Error`.', }, - { - selector: "CallExpression[callee.property.name='notDeepStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])", - message: 'The first argument should be the `actual`, not the `expected` value.', - }, - { - selector: "CallExpression[callee.property.name='notStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])", - message: 'The first argument should be the `actual`, not the `expected` value.', - }, - { - selector: "CallExpression[callee.property.name='deepStrictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])", - message: 'The first argument should be the `actual`, not the `expected` value.', - }, - { - selector: "CallExpression[callee.property.name='strictEqual'][arguments.0.type='Literal']:not([arguments.1.type='Literal']):not([arguments.1.type='ObjectExpression']):not([arguments.1.type='ArrayExpression']):not([arguments.1.type='UnaryExpression'])", - message: 'The first argument should be the `actual`, not the `expected` value.', - }, { selector: "CallExpression[callee.name='isNaN']", message: 'Use Number.isNaN() instead of the global isNaN() function.', From 3de9dd9c8dd1181cacb1046f93dd17d0d594e39e Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 8 May 2020 05:56:31 +0200 Subject: [PATCH 046/104] src: remove unnecessary Isolate::GetCurrent() calls These calls are unnecessary in Release mode but would still have been included, so move them to the `DebugSealHandleScope` constructor. PR-URL: https://github.com/nodejs/node/pull/33298 Reviewed-By: Daniel Bevenius Reviewed-By: Colin Ihrig Reviewed-By: David Carlier Reviewed-By: Michael Dawson --- src/node_internals.h | 4 ++-- src/stream_base-inl.h | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/node_internals.h b/src/node_internals.h index fa3ba022fe7e..70750cc87179 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -243,9 +243,9 @@ class InternalCallbackScope { class DebugSealHandleScope { public: - explicit inline DebugSealHandleScope(v8::Isolate* isolate) + explicit inline DebugSealHandleScope(v8::Isolate* isolate = nullptr) #ifdef DEBUG - : actual_scope_(isolate) + : actual_scope_(isolate != nullptr ? isolate : v8::Isolate::GetCurrent()) #endif {} diff --git a/src/stream_base-inl.h b/src/stream_base-inl.h index 9660cc386cef..149f542d8416 100644 --- a/src/stream_base-inl.h +++ b/src/stream_base-inl.h @@ -92,29 +92,29 @@ void StreamResource::RemoveStreamListener(StreamListener* listener) { } uv_buf_t StreamResource::EmitAlloc(size_t suggested_size) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; return listener_->OnStreamAlloc(suggested_size); } void StreamResource::EmitRead(ssize_t nread, const uv_buf_t& buf) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; if (nread > 0) bytes_read_ += static_cast(nread); listener_->OnStreamRead(nread, buf); } void StreamResource::EmitAfterWrite(WriteWrap* w, int status) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamAfterWrite(w, status); } void StreamResource::EmitAfterShutdown(ShutdownWrap* w, int status) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamAfterShutdown(w, status); } void StreamResource::EmitWantsWrite(size_t suggested_size) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamWantsWrite(suggested_size); } From a133a882342252a6b13571e0b48c00f1258e8ddb Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 8 May 2020 08:21:50 +0200 Subject: [PATCH 047/104] lib: fix typo in timers insert function comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/33301 Reviewed-By: Zeyu Yang Reviewed-By: Michaël Zasso Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater --- lib/internal/timers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/timers.js b/lib/internal/timers.js index bb80f57ee295..1577e31779dd 100644 --- a/lib/internal/timers.js +++ b/lib/internal/timers.js @@ -338,7 +338,7 @@ function insertGuarded(item, refed, start) { } function insert(item, msecs, start = getLibuvNow()) { - // Truncate so that accuracy of sub-milisecond timers is not assumed. + // Truncate so that accuracy of sub-millisecond timers is not assumed. msecs = MathTrunc(msecs); item._idleStart = start; From e1e57a4223518bc7ab8fba7c2b73f44351c47950 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Fri, 8 May 2020 15:21:30 -0400 Subject: [PATCH 048/104] tools: update ESLint to 7.0.0 Update ESLint to 7.0.0 PR-URL: https://github.com/nodejs/node/pull/33316 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Zeyu Yang Reviewed-By: Rich Trott Reviewed-By: Ruben Bridgewater --- tools/node_modules/eslint/README.md | 2 +- .../eslint/conf/category-list.json | 1 - .../node_modules/@types/color-name/LICENSE | 42 +- .../node_modules/@types/color-name/README.md | 32 +- .../chalk/node_modules/color-convert/LICENSE | 1 + .../chalk/node_modules/color-convert/route.js | 1 + .../chalk/node_modules/color-name/LICENSE | 14 +- .../chalk/node_modules/color-name/README.md | 22 +- .../chalk/node_modules/color-name/index.js | 304 +++---- .../00ef1b3d-3687-482b-8d03-de2f76b58f54.json | 1 + .../00ef1b3d-3687-482b-8d03-de2f76b58f54.json | 1 + .../.nyc_output/processinfo/index.json | 1 + .../eslint/node_modules/espree/README.md | 95 +- .../eslint/node_modules/espree/package.json | 5 +- .../node_modules/esquery/dist/esquery.esm.js | 6 +- .../node_modules/esquery/dist/esquery.js | 8 +- .../node_modules/estraverse/estraverse.js | 2 +- .../node_modules/ansi-styles/index.js | 163 ++++ .../inquirer/node_modules/ansi-styles/license | 9 + .../node_modules/ansi-styles/package.json | 66 ++ .../node_modules/ansi-styles/readme.md | 158 ++++ .../inquirer/node_modules/chalk/license | 9 + .../inquirer/node_modules/chalk/package.json | 72 ++ .../inquirer/node_modules/chalk/readme.md | 304 +++++++ .../node_modules/chalk/source/index.js | 233 +++++ .../node_modules/chalk/source/templates.js | 134 +++ .../node_modules/chalk/source/util.js | 39 + .../node_modules/color-convert/LICENSE | 21 + .../node_modules/color-convert/README.md | 68 ++ .../node_modules/color-convert/conversions.js | 839 ++++++++++++++++++ .../node_modules/color-convert/index.js | 81 ++ .../node_modules/color-convert/package.json | 60 ++ .../node_modules/color-convert/route.js | 97 ++ .../inquirer/node_modules/color-name/LICENSE | 8 + .../node_modules/color-name/README.md | 11 + .../inquirer/node_modules/color-name/index.js | 152 ++++ .../node_modules/color-name/package.json | 33 + .../inquirer/node_modules/has-flag/index.js | 8 + .../inquirer/node_modules/has-flag/license | 9 + .../node_modules/has-flag/package.json | 55 ++ .../inquirer/node_modules/has-flag/readme.md | 89 ++ .../node_modules/supports-color/browser.js | 5 + .../node_modules/supports-color/index.js | 139 +++ .../node_modules/supports-color/license | 9 + .../node_modules/supports-color/package.json | 62 ++ .../node_modules/supports-color/readme.md | 76 ++ .../eslint/node_modules/is-promise/LICENSE | 19 - .../eslint/node_modules/is-promise/index.js | 6 - .../node_modules/is-promise/package.json | 35 - .../eslint/node_modules/is-promise/readme.md | 33 - .../eslint/node_modules/minimist/index.js | 2 +- .../eslint/node_modules/run-async/index.js | 4 +- .../node_modules/run-async/package.json | 6 +- .../node_modules/semver/ranges/simplify.js | 44 + .../node_modules/semver/ranges/subset.js | 155 ++++ .../node_modules/tslib/CopyrightNotice.txt | 24 +- .../eslint/node_modules/tslib/LICENSE.txt | 67 +- .../eslint/node_modules/tslib/README.md | 94 +- .../eslint/node_modules/tslib/package.json | 4 +- .../eslint/node_modules/tslib/tslib.es6.js | 172 ++-- .../eslint/node_modules/tslib/tslib.js | 250 +++--- tools/node_modules/eslint/package.json | 6 +- 62 files changed, 3816 insertions(+), 652 deletions(-) create mode 100644 tools/node_modules/eslint/node_modules/cli-width/.nyc_output/00ef1b3d-3687-482b-8d03-de2f76b58f54.json create mode 100644 tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/00ef1b3d-3687-482b-8d03-de2f76b58f54.json create mode 100644 tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/index.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/license create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/readme.md create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/license create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/readme.md create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/source/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/source/templates.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/source/util.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/README.md create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/conversions.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-convert/route.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-name/LICENSE create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-name/README.md create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-name/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/color-name/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/has-flag/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/has-flag/license create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/has-flag/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/has-flag/readme.md create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/supports-color/browser.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/supports-color/index.js create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/supports-color/license create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/supports-color/package.json create mode 100644 tools/node_modules/eslint/node_modules/inquirer/node_modules/supports-color/readme.md delete mode 100644 tools/node_modules/eslint/node_modules/is-promise/LICENSE delete mode 100644 tools/node_modules/eslint/node_modules/is-promise/index.js delete mode 100644 tools/node_modules/eslint/node_modules/is-promise/package.json delete mode 100644 tools/node_modules/eslint/node_modules/is-promise/readme.md create mode 100644 tools/node_modules/eslint/node_modules/semver/ranges/simplify.js create mode 100644 tools/node_modules/eslint/node_modules/semver/ranges/subset.js diff --git a/tools/node_modules/eslint/README.md b/tools/node_modules/eslint/README.md index 0a802b0c25d0..427544bad668 100644 --- a/tools/node_modules/eslint/README.md +++ b/tools/node_modules/eslint/README.md @@ -250,7 +250,7 @@ The following companies, organizations, and individuals support ESLint's ongoing

Gold Sponsors

-

Shopify Salesforce Airbnb

Silver Sponsors

+

Shopify Salesforce Airbnb

Silver Sponsors

AMP Project

Bronze Sponsors

CasinoTop.com Casino Topp Writers Per Hour Anagram Solver vpn netflix Kasinot.fi Pelisivut Nettikasinot.org BonusFinder Deutschland Top Web Design Agencies Bugsnag Stability Monitoring Mixpanel VPS Server Free Icons by Icons8 UI UX Design Agencies clay Discord ThemeIsle TekHattan Marfeel Fire Stick Tricks

diff --git a/tools/node_modules/eslint/conf/category-list.json b/tools/node_modules/eslint/conf/category-list.json index 6609734950a4..cd3b816b6570 100644 --- a/tools/node_modules/eslint/conf/category-list.json +++ b/tools/node_modules/eslint/conf/category-list.json @@ -4,7 +4,6 @@ { "name": "Best Practices", "description": "These rules relate to better ways of doing things to help you avoid problems:" }, { "name": "Strict Mode", "description": "These rules relate to strict mode directives:" }, { "name": "Variables", "description": "These rules relate to variable declarations:" }, - { "name": "Node.js and CommonJS", "description": "These rules relate to code running in Node.js, or in browsers with CommonJS:" }, { "name": "Stylistic Issues", "description": "These rules relate to style guidelines, and are therefore quite subjective:" }, { "name": "ECMAScript 6", "description": "These rules relate to ES6, also known as ES2015:" } ], diff --git a/tools/node_modules/eslint/node_modules/@types/color-name/LICENSE b/tools/node_modules/eslint/node_modules/@types/color-name/LICENSE index 21071075c245..4b1ad51b2f0e 100644 --- a/tools/node_modules/eslint/node_modules/@types/color-name/LICENSE +++ b/tools/node_modules/eslint/node_modules/@types/color-name/LICENSE @@ -1,21 +1,21 @@ - MIT License - - Copyright (c) Microsoft Corporation. All rights reserved. - - 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 + MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + 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/tools/node_modules/eslint/node_modules/@types/color-name/README.md b/tools/node_modules/eslint/node_modules/@types/color-name/README.md index d08d108b2b5b..5c77cba829c5 100644 --- a/tools/node_modules/eslint/node_modules/@types/color-name/README.md +++ b/tools/node_modules/eslint/node_modules/@types/color-name/README.md @@ -1,16 +1,16 @@ -# Installation -> `npm install --save @types/color-name` - -# Summary -This package contains type definitions for color-name ( https://github.com/colorjs/color-name ). - -# Details -Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/color-name - -Additional Details - * Last updated: Wed, 13 Feb 2019 16:16:48 GMT - * Dependencies: none - * Global values: none - -# Credits -These definitions were written by Junyoung Clare Jang . +# Installation +> `npm install --save @types/color-name` + +# Summary +This package contains type definitions for color-name ( https://github.com/colorjs/color-name ). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/color-name + +Additional Details + * Last updated: Wed, 13 Feb 2019 16:16:48 GMT + * Dependencies: none + * Global values: none + +# Credits +These definitions were written by Junyoung Clare Jang . diff --git a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/LICENSE b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/LICENSE index 0e2e49091830..5b4c386f9269 100644 --- a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/LICENSE +++ b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/LICENSE @@ -18,3 +18,4 @@ 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/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/route.js b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/route.js index 09ba94309070..1a08521b5a00 100644 --- a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/route.js +++ b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-convert/route.js @@ -94,3 +94,4 @@ module.exports = function (fromModel) { return conversion; }; + diff --git a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/LICENSE b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/LICENSE index 4d9802a89e29..c6b10012540c 100644 --- a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/LICENSE +++ b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/LICENSE @@ -1,8 +1,8 @@ -The MIT License (MIT) -Copyright (c) 2015 Dmitry Ivanov - -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 MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +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. \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/README.md b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/README.md index 3611a6b523fe..932b979176f3 100644 --- a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/README.md +++ b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/README.md @@ -1,11 +1,11 @@ -A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. - -[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) - - -```js -var colors = require('color-name'); -colors.red //[255,0,0] -``` - - +A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. + +[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) + + +```js +var colors = require('color-name'); +colors.red //[255,0,0] +``` + + diff --git a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/index.js b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/index.js index e42aa68a542d..b7c198a6f3d7 100644 --- a/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/index.js +++ b/tools/node_modules/eslint/node_modules/chalk/node_modules/color-name/index.js @@ -1,152 +1,152 @@ -'use strict' - -module.exports = { - "aliceblue": [240, 248, 255], - "antiquewhite": [250, 235, 215], - "aqua": [0, 255, 255], - "aquamarine": [127, 255, 212], - "azure": [240, 255, 255], - "beige": [245, 245, 220], - "bisque": [255, 228, 196], - "black": [0, 0, 0], - "blanchedalmond": [255, 235, 205], - "blue": [0, 0, 255], - "blueviolet": [138, 43, 226], - "brown": [165, 42, 42], - "burlywood": [222, 184, 135], - "cadetblue": [95, 158, 160], - "chartreuse": [127, 255, 0], - "chocolate": [210, 105, 30], - "coral": [255, 127, 80], - "cornflowerblue": [100, 149, 237], - "cornsilk": [255, 248, 220], - "crimson": [220, 20, 60], - "cyan": [0, 255, 255], - "darkblue": [0, 0, 139], - "darkcyan": [0, 139, 139], - "darkgoldenrod": [184, 134, 11], - "darkgray": [169, 169, 169], - "darkgreen": [0, 100, 0], - "darkgrey": [169, 169, 169], - "darkkhaki": [189, 183, 107], - "darkmagenta": [139, 0, 139], - "darkolivegreen": [85, 107, 47], - "darkorange": [255, 140, 0], - "darkorchid": [153, 50, 204], - "darkred": [139, 0, 0], - "darksalmon": [233, 150, 122], - "darkseagreen": [143, 188, 143], - "darkslateblue": [72, 61, 139], - "darkslategray": [47, 79, 79], - "darkslategrey": [47, 79, 79], - "darkturquoise": [0, 206, 209], - "darkviolet": [148, 0, 211], - "deeppink": [255, 20, 147], - "deepskyblue": [0, 191, 255], - "dimgray": [105, 105, 105], - "dimgrey": [105, 105, 105], - "dodgerblue": [30, 144, 255], - "firebrick": [178, 34, 34], - "floralwhite": [255, 250, 240], - "forestgreen": [34, 139, 34], - "fuchsia": [255, 0, 255], - "gainsboro": [220, 220, 220], - "ghostwhite": [248, 248, 255], - "gold": [255, 215, 0], - "goldenrod": [218, 165, 32], - "gray": [128, 128, 128], - "green": [0, 128, 0], - "greenyellow": [173, 255, 47], - "grey": [128, 128, 128], - "honeydew": [240, 255, 240], - "hotpink": [255, 105, 180], - "indianred": [205, 92, 92], - "indigo": [75, 0, 130], - "ivory": [255, 255, 240], - "khaki": [240, 230, 140], - "lavender": [230, 230, 250], - "lavenderblush": [255, 240, 245], - "lawngreen": [124, 252, 0], - "lemonchiffon": [255, 250, 205], - "lightblue": [173, 216, 230], - "lightcoral": [240, 128, 128], - "lightcyan": [224, 255, 255], - "lightgoldenrodyellow": [250, 250, 210], - "lightgray": [211, 211, 211], - "lightgreen": [144, 238, 144], - "lightgrey": [211, 211, 211], - "lightpink": [255, 182, 193], - "lightsalmon": [255, 160, 122], - "lightseagreen": [32, 178, 170], - "lightskyblue": [135, 206, 250], - "lightslategray": [119, 136, 153], - "lightslategrey": [119, 136, 153], - "lightsteelblue": [176, 196, 222], - "lightyellow": [255, 255, 224], - "lime": [0, 255, 0], - "limegreen": [50, 205, 50], - "linen": [250, 240, 230], - "magenta": [255, 0, 255], - "maroon": [128, 0, 0], - "mediumaquamarine": [102, 205, 170], - "mediumblue": [0, 0, 205], - "mediumorchid": [186, 85, 211], - "mediumpurple": [147, 112, 219], - "mediumseagreen": [60, 179, 113], - "mediumslateblue": [123, 104, 238], - "mediumspringgreen": [0, 250, 154], - "mediumturquoise": [72, 209, 204], - "mediumvioletred": [199, 21, 133], - "midnightblue": [25, 25, 112], - "mintcream": [245, 255, 250], - "mistyrose": [255, 228, 225], - "moccasin": [255, 228, 181], - "navajowhite": [255, 222, 173], - "navy": [0, 0, 128], - "oldlace": [253, 245, 230], - "olive": [128, 128, 0], - "olivedrab": [107, 142, 35], - "orange": [255, 165, 0], - "orangered": [255, 69, 0], - "orchid": [218, 112, 214], - "palegoldenrod": [238, 232, 170], - "palegreen": [152, 251, 152], - "paleturquoise": [175, 238, 238], - "palevioletred": [219, 112, 147], - "papayawhip": [255, 239, 213], - "peachpuff": [255, 218, 185], - "peru": [205, 133, 63], - "pink": [255, 192, 203], - "plum": [221, 160, 221], - "powderblue": [176, 224, 230], - "purple": [128, 0, 128], - "rebeccapurple": [102, 51, 153], - "red": [255, 0, 0], - "rosybrown": [188, 143, 143], - "royalblue": [65, 105, 225], - "saddlebrown": [139, 69, 19], - "salmon": [250, 128, 114], - "sandybrown": [244, 164, 96], - "seagreen": [46, 139, 87], - "seashell": [255, 245, 238], - "sienna": [160, 82, 45], - "silver": [192, 192, 192], - "skyblue": [135, 206, 235], - "slateblue": [106, 90, 205], - "slategray": [112, 128, 144], - "slategrey": [112, 128, 144], - "snow": [255, 250, 250], - "springgreen": [0, 255, 127], - "steelblue": [70, 130, 180], - "tan": [210, 180, 140], - "teal": [0, 128, 128], - "thistle": [216, 191, 216], - "tomato": [255, 99, 71], - "turquoise": [64, 224, 208], - "violet": [238, 130, 238], - "wheat": [245, 222, 179], - "white": [255, 255, 255], - "whitesmoke": [245, 245, 245], - "yellow": [255, 255, 0], - "yellowgreen": [154, 205, 50] -}; +'use strict' + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; diff --git a/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/00ef1b3d-3687-482b-8d03-de2f76b58f54.json b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/00ef1b3d-3687-482b-8d03-de2f76b58f54.json new file mode 100644 index 000000000000..c275decd2d23 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/00ef1b3d-3687-482b-8d03-de2f76b58f54.json @@ -0,0 +1 @@ +{"/Users/ilya/maintained/cli-width/index.js":{"path":"/Users/ilya/maintained/cli-width/index.js","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"1":{"start":{"line":6,"column":20},"end":{"line":10,"column":3}},"2":{"start":{"line":12,"column":2},"end":{"line":14,"column":3}},"3":{"start":{"line":13,"column":4},"end":{"line":13,"column":23}},"4":{"start":{"line":16,"column":2},"end":{"line":20,"column":5}},"5":{"start":{"line":17,"column":4},"end":{"line":19,"column":5}},"6":{"start":{"line":18,"column":6},"end":{"line":18,"column":38}},"7":{"start":{"line":22,"column":2},"end":{"line":22,"column":17}},"8":{"start":{"line":26,"column":13},"end":{"line":26,"column":35}},"9":{"start":{"line":28,"column":2},"end":{"line":30,"column":3}},"10":{"start":{"line":29,"column":4},"end":{"line":29,"column":63}},"11":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"12":{"start":{"line":33,"column":4},"end":{"line":33,"column":60}},"13":{"start":{"line":36,"column":2},"end":{"line":38,"column":3}},"14":{"start":{"line":37,"column":4},"end":{"line":37,"column":31}},"15":{"start":{"line":40,"column":2},"end":{"line":46,"column":3}},"16":{"start":{"line":41,"column":16},"end":{"line":41,"column":51}},"17":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"18":{"start":{"line":44,"column":6},"end":{"line":44,"column":19}},"19":{"start":{"line":48,"column":2},"end":{"line":48,"column":27}}},"fnMap":{"0":{"name":"normalizeOpts","decl":{"start":{"line":5,"column":9},"end":{"line":5,"column":22}},"loc":{"start":{"line":5,"column":32},"end":{"line":23,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":35},"end":{"line":16,"column":36}},"loc":{"start":{"line":16,"column":50},"end":{"line":20,"column":3}},"line":16},"2":{"name":"cliWidth","decl":{"start":{"line":25,"column":9},"end":{"line":25,"column":17}},"loc":{"start":{"line":25,"column":27},"end":{"line":49,"column":1}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":2},"end":{"line":14,"column":3}},"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":14,"column":3}},{"start":{"line":12,"column":2},"end":{"line":14,"column":3}}],"line":12},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":19,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":19,"column":5}},{"start":{"line":17,"column":4},"end":{"line":19,"column":5}}],"line":17},"2":{"loc":{"start":{"line":28,"column":2},"end":{"line":30,"column":3}},"type":"if","locations":[{"start":{"line":28,"column":2},"end":{"line":30,"column":3}},{"start":{"line":28,"column":2},"end":{"line":30,"column":3}}],"line":28},"3":{"loc":{"start":{"line":29,"column":11},"end":{"line":29,"column":62}},"type":"binary-expr","locations":[{"start":{"line":29,"column":11},"end":{"line":29,"column":41}},{"start":{"line":29,"column":45},"end":{"line":29,"column":62}}],"line":29},"4":{"loc":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},{"start":{"line":32,"column":2},"end":{"line":34,"column":3}}],"line":32},"5":{"loc":{"start":{"line":33,"column":11},"end":{"line":33,"column":59}},"type":"binary-expr","locations":[{"start":{"line":33,"column":11},"end":{"line":33,"column":38}},{"start":{"line":33,"column":42},"end":{"line":33,"column":59}}],"line":33},"6":{"loc":{"start":{"line":36,"column":2},"end":{"line":38,"column":3}},"type":"if","locations":[{"start":{"line":36,"column":2},"end":{"line":38,"column":3}},{"start":{"line":36,"column":2},"end":{"line":38,"column":3}}],"line":36},"7":{"loc":{"start":{"line":40,"column":2},"end":{"line":46,"column":3}},"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":46,"column":3}},{"start":{"line":40,"column":2},"end":{"line":46,"column":3}}],"line":40},"8":{"loc":{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},"type":"if","locations":[{"start":{"line":43,"column":4},"end":{"line":45,"column":5}},{"start":{"line":43,"column":4},"end":{"line":45,"column":5}}],"line":43},"9":{"loc":{"start":{"line":43,"column":8},"end":{"line":43,"column":36}},"type":"binary-expr","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":21}},{"start":{"line":43,"column":25},"end":{"line":43,"column":36}}],"line":43}},"s":{"0":1,"1":11,"2":11,"3":5,"4":6,"5":18,"6":12,"7":6,"8":11,"9":11,"10":3,"11":8,"12":3,"13":5,"14":1,"15":4,"16":2,"17":2,"18":1,"19":3},"f":{"0":11,"1":18,"2":11},"b":{"0":[5,6],"1":[12,6],"2":[3,8],"3":[3,1],"4":[3,5],"5":[3,1],"6":[1,4],"7":[2,2],"8":[1,1],"9":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a4d7f0a30376f059a5bc5bb60422e8b1332adf0c","contentHash":"1ab1e2def09289f7630132524d4d3929b81fe2db9a3f07e64865500b9c42e817"}} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/00ef1b3d-3687-482b-8d03-de2f76b58f54.json b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/00ef1b3d-3687-482b-8d03-de2f76b58f54.json new file mode 100644 index 000000000000..10921d66e857 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/00ef1b3d-3687-482b-8d03-de2f76b58f54.json @@ -0,0 +1 @@ +{"parent":null,"pid":4489,"argv":["/Users/ilya/.volta/tools/image/node/12.16.0/6.13.4/bin/node","/Users/ilya/maintained/cli-width/test"],"execArgv":[],"cwd":"/Users/ilya/maintained/cli-width","time":1586875876791,"ppid":4487,"coverageFilename":"/Users/ilya/maintained/cli-width/.nyc_output/00ef1b3d-3687-482b-8d03-de2f76b58f54.json","externalId":"","uuid":"00ef1b3d-3687-482b-8d03-de2f76b58f54","files":["/Users/ilya/maintained/cli-width/index.js"]} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/index.json b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/index.json new file mode 100644 index 000000000000..7f9a443d80d2 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/cli-width/.nyc_output/processinfo/index.json @@ -0,0 +1 @@ +{"processes":{"00ef1b3d-3687-482b-8d03-de2f76b58f54":{"parent":null,"children":[]}},"files":{"/Users/ilya/maintained/cli-width/index.js":["00ef1b3d-3687-482b-8d03-de2f76b58f54"]},"externalIds":{}} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/espree/README.md b/tools/node_modules/eslint/node_modules/espree/README.md index a03d1c3ef402..988575d77f00 100644 --- a/tools/node_modules/eslint/node_modules/espree/README.md +++ b/tools/node_modules/eslint/node_modules/espree/README.md @@ -23,14 +23,101 @@ const espree = require("espree"); const ast = espree.parse(code); ``` -There is a second argument to `parse()` that allows you to specify various options: +## API + +### `parse()` + +`parse` parses the given code and returns a abstract syntax tree (AST). It takes two paramenter. + +- `code` [string]() - the code which needs to be parsed. +- `options (Optional)` [Object]() - read more about this [here](#options) ```javascript const espree = require("espree"); -// Optional second options argument with the following default settings -const ast = espree.parse(code, { +const ast = espree.parse(code, options); +``` + +**Example :** + +```js +const ast = espree.parse('let foo = "bar"', { ecmaVersion: 6 }); +console.log(ast); +``` + +
Output +

+ +``` +Node { + type: 'Program', + start: 0, + end: 15, + body: [ + Node { + type: 'VariableDeclaration', + start: 0, + end: 15, + declarations: [Array], + kind: 'let' + } + ], + sourceType: 'script' +} +``` + +

+
+ +### `tokenize()` + +`tokenize` returns the tokens of a give code. It takes two paramenter. + +- `code` [string]() - the code which needs to be parsed. +- `options (Optional)` [Object]() - read more about this [here](#options) + +Even if `options` is empty or undefined or `options.tokens` is `false`, it assigns it to `true` in order to get the `tokens` array + +**Example :** + +```js +const tokens = espree.tokenize('let foo = "bar"', { ecmaVersion: 6 }); +console.log(tokens); +``` + +
Output +

+ +``` +Token { type: 'Keyword', value: 'let', start: 0, end: 3 }, +Token { type: 'Identifier', value: 'foo', start: 4, end: 7 }, +Token { type: 'Punctuator', value: '=', start: 8, end: 9 }, +Token { type: 'String', value: '"bar"', start: 10, end: 15 } +``` + +

+
+ +### `version` + +Returns the current `espree` version + +### `VisitorKeys` + +Returns all visitor keys for traversing the AST from [eslint-visitor-keys](https://github.com/eslint/eslint-visitor-keys) + +### `latestEcmaVersion` + +Returns the latest ECMAScript supported by `espree` + +### `supportedEcmaVersions` + +Returns an array of all supported ECMAScript version + +## Options +```js +const options = { // attach range information to each node range: false, @@ -62,7 +149,7 @@ const ast = espree.parse(code, { // enable implied strict mode (if ecmaVersion >= 5) impliedStrict: false } -}); +} ``` ## Esprima Compatibility Going Forward diff --git a/tools/node_modules/eslint/node_modules/espree/package.json b/tools/node_modules/eslint/node_modules/espree/package.json index d22f11891bdd..5f7f545e8785 100644 --- a/tools/node_modules/eslint/node_modules/espree/package.json +++ b/tools/node_modules/eslint/node_modules/espree/package.json @@ -33,7 +33,7 @@ "unicode-6.3.0": "^0.7.5" }, "engines": { - "node": ">=6.0.0" + "node": "^10.12.0 || >=12.0.0" }, "files": [ "lib", @@ -64,7 +64,8 @@ "generate-release": "eslint-generate-release", "lint": "node Makefile.js lint", "publish-release": "eslint-publish-release", + "sync-docs": "node Makefile.js docs", "test": "npm run-script lint && node Makefile.js test" }, - "version": "6.2.1" + "version": "7.0.0" } \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/esquery/dist/esquery.esm.js b/tools/node_modules/eslint/node_modules/esquery/dist/esquery.esm.js index aa23d09f79dd..88abe0ffb911 100644 --- a/tools/node_modules/eslint/node_modules/esquery/dist/esquery.esm.js +++ b/tools/node_modules/eslint/node_modules/esquery/dist/esquery.esm.js @@ -96,16 +96,16 @@ var estraverse = createCommonjsModule(function (module, exports) { /* Copyright (C) 2012-2013 Yusuke Suzuki Copyright (C) 2012 Ariya Hidayat - + 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. - + 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 diff --git a/tools/node_modules/eslint/node_modules/esquery/dist/esquery.js b/tools/node_modules/eslint/node_modules/esquery/dist/esquery.js index 700b4ff054b1..e2c80afc1341 100644 --- a/tools/node_modules/eslint/node_modules/esquery/dist/esquery.js +++ b/tools/node_modules/eslint/node_modules/esquery/dist/esquery.js @@ -95,23 +95,23 @@ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; + return module = { exports: {} }, fn(module, module.exports), module.exports; } var estraverse = createCommonjsModule(function (module, exports) { /* Copyright (C) 2012-2013 Yusuke Suzuki Copyright (C) 2012 Ariya Hidayat - + 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. - + 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 diff --git a/tools/node_modules/eslint/node_modules/esquery/node_modules/estraverse/estraverse.js b/tools/node_modules/eslint/node_modules/esquery/node_modules/estraverse/estraverse.js index 1bd3a9212635..b7db020775eb 100644 --- a/tools/node_modules/eslint/node_modules/esquery/node_modules/estraverse/estraverse.js +++ b/tools/node_modules/eslint/node_modules/esquery/node_modules/estraverse/estraverse.js @@ -388,7 +388,7 @@ function isProperty(nodeType, key) { return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; } - + function candidateExistsInLeaveList(leavelist, candidate) { for (var i = leavelist.length - 1; i >= 0; --i) { if (leavelist[i].node === candidate) { diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/index.js b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/index.js new file mode 100644 index 000000000000..5d82581a13f9 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/index.js @@ -0,0 +1,163 @@ +'use strict'; + +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; + +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + + return value; + }, + enumerable: true, + configurable: true + }); +}; + +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require('color-convert'); + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/license b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/license new file mode 100644 index 000000000000..e7af2f77107d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/package.json b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/package.json new file mode 100644 index 000000000000..2b0aef0e49e6 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/package.json @@ -0,0 +1,66 @@ +{ + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-styles/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "deprecated": false, + "description": "ANSI escape codes for styling strings in the terminal", + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "homepage": "https://github.com/chalk/ansi-styles#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "ansi-styles", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-styles.git" + }, + "scripts": { + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor", + "test": "xo && ava && tsd" + }, + "version": "4.2.1" +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/readme.md b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/readme.md new file mode 100644 index 000000000000..2a1ef654667d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/ansi-styles/readme.md @@ -0,0 +1,158 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + +## Install + +``` +$ npm install ansi-styles +``` + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `blackBright` (alias: `gray`, `grey`) +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +The following color spaces from `color-convert` are supported: + +- `rgb` +- `hex` +- `keyword` +- `hsl` +- `hsv` +- `hwb` +- `ansi` +- `ansi256` + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/license b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/license new file mode 100644 index 000000000000..e7af2f77107d --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/package.json b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/package.json new file mode 100644 index 000000000000..b6219713cecd --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/package.json @@ -0,0 +1,72 @@ +{ + "bugs": { + "url": "https://github.com/chalk/chalk/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "deprecated": false, + "description": "Terminal string styling done right", + "devDependencies": { + "ava": "^2.4.0", + "coveralls": "^3.0.7", + "execa": "^3.2.0", + "import-fresh": "^3.1.0", + "matcha": "^0.7.0", + "nyc": "^14.1.1", + "resolve-from": "^5.0.0", + "tsd": "^0.7.4", + "xo": "^0.25.3" + }, + "engines": { + "node": ">=8" + }, + "files": [ + "source", + "index.d.ts" + ], + "homepage": "https://github.com/chalk/chalk#readme", + "keywords": [ + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "str", + "ansi", + "style", + "styles", + "tty", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "main": "source", + "name": "chalk", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/chalk.git" + }, + "scripts": { + "bench": "matcha benchmark.js", + "test": "xo && nyc ava && tsd" + }, + "version": "3.0.0", + "xo": { + "rules": { + "unicorn/prefer-string-slice": "off", + "unicorn/prefer-includes": "off" + } + } +} \ No newline at end of file diff --git a/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/readme.md b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/readme.md new file mode 100644 index 000000000000..877cb93b7861 --- /dev/null +++ b/tools/node_modules/eslint/node_modules/inquirer/node_modules/chalk/readme.md @@ -0,0 +1,304 @@ +

+
+
+ Chalk +
+
+
+

+ +> Terminal string styling done right + +[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![npm dependents](https://badgen.net/npm/dependents/chalk)](https://www.npmjs.com/package/chalk?activeTab=dependents) [![Downloads](https://badgen.net/npm/dt/chalk)](https://www.npmjs.com/package/chalk) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) ![TypeScript-ready](https://img.shields.io/npm/types/chalk.svg) + + + + +## Highlights + +- Expressive API +- Highly performant +- Ability to nest styles +- [256/Truecolor color support](#256-and-truecolor-color-support) +- Auto-detects color support +- Doesn't extend `String.prototype` +- Clean and focused +- Actively maintained +- [Used by ~46,000 packages](https://www.npmjs.com/browse/depended/chalk) as of October 1, 2019 + + +## Install + +```console +$ npm install chalk +``` + + +## Usage + +```js +const chalk = require('chalk'); + +console.log(chalk.blue('Hello world!')); +``` + +Chalk comes with an easy to use composable API where you just chain and nest the styles you want. + +```js +const chalk = require('chalk'); +const log = console.log; + +// Combine styled and normal strings +log(chalk.blue('Hello') + ' World' + chalk.red('!')); + +// Compose multiple styles using the chainable API +log(chalk.blue.bgRed.bold('Hello world!')); + +// Pass in multiple arguments +log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz')); + +// Nest styles +log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!')); + +// Nest styles of the same type even (color, underline, background) +log(chalk.green( + 'I am a green line ' + + chalk.blue.underline.bold('with a blue substring') + + ' that becomes green again!' +)); + +// ES2015 template literal +log(` +CPU: ${chalk.red('90%')} +RAM: ${chalk.green('40%')} +DISK: ${chalk.yellow('70%')} +`); + +// ES2015 tagged template literal +log(chalk` +CPU: {red ${cpu.totalPercent}%} +RAM: {green ${ram.used / ram.total * 100}%} +DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%} +`); + +// Use RGB colors in terminal emulators that support it. +log(chalk.keyword('orange')('Yay for orange colored text!')); +log(chalk.rgb(123, 45, 67).underline('Underlined reddish color')); +log(chalk.hex('#DEADED').bold('Bold gray!')); +``` + +Easily define your own themes: + +```js +const chalk = require('chalk'); + +const error = chalk.bold.red; +const warning = chalk.keyword('orange'); + +console.log(error('Error!')); +console.log(warning('Warning!')); +``` + +Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args): + +```js +const name = 'Sindre'; +console.log(chalk.green('Hello %s'), name); +//=> 'Hello Sindre' +``` + + +## API + +### chalk.`