From 194789f25b7f1b6c2b40f6a48ab24aa9b18521ff Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Mon, 9 Dec 2019 20:44:12 +0100 Subject: [PATCH 01/88] stream: make all streams error in a pipeline This changes makes all stream in a pipeline emit 'error' in case of an abnormal termination of the pipeline. If the last stream is currently being async iterated, this change will make the iteration reject accordingly. See: https://github.com/nodejs/node/pull/30861 Fixes: https://github.com/nodejs/node/issues/28194 PR-URL: https://github.com/nodejs/node/pull/30869 Reviewed-By: Luigi Pinca Reviewed-By: Rich Trott --- lib/internal/streams/pipeline.js | 24 ++++++++++---- .../test-stream-pipeline-async-iterator.js | 31 +++++++++++++++++++ test/parallel/test-stream-pipeline.js | 6 ++++ 3 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 test/parallel/test-stream-pipeline-async-iterator.js diff --git a/lib/internal/streams/pipeline.js b/lib/internal/streams/pipeline.js index 0c464605106630..ed5556e5d0a600 100644 --- a/lib/internal/streams/pipeline.js +++ b/lib/internal/streams/pipeline.js @@ -43,15 +43,21 @@ function destroyer(stream, reading, writing, callback) { // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); - if (typeof stream.destroy === 'function') return stream.destroy(); + if (typeof stream.destroy === 'function') { + if (stream.req && stream._writableState === undefined) { + // This is a ClientRequest + // TODO(mcollina): backward compatible fix to avoid crashing. + // Possibly remove in a later semver-major change. + stream.req.on('error', noop); + } + return stream.destroy(err); + } callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } -function call(fn) { - fn(); -} +function noop() {} function pipe(from, to) { return from.pipe(to); @@ -81,9 +87,15 @@ function pipeline(...streams) { const writing = i > 0; return destroyer(stream, reading, writing, function(err) { if (!error) error = err; - if (err) destroys.forEach(call); + if (err) { + for (const destroy of destroys) { + destroy(err); + } + } if (reading) return; - destroys.forEach(call); + for (const destroy of destroys) { + destroy(); + } callback(error); }); }); diff --git a/test/parallel/test-stream-pipeline-async-iterator.js b/test/parallel/test-stream-pipeline-async-iterator.js new file mode 100644 index 00000000000000..06a2ed6ca877f8 --- /dev/null +++ b/test/parallel/test-stream-pipeline-async-iterator.js @@ -0,0 +1,31 @@ +'use strict'; + +const common = require('../common'); +const { Readable, PassThrough, pipeline } = require('stream'); +const assert = require('assert'); + +const _err = new Error('kaboom'); + +async function run() { + const source = new Readable({ + read() { + } + }); + source.push('hello'); + source.push('world'); + + setImmediate(() => { source.destroy(_err); }); + + const iterator = pipeline( + source, + new PassThrough(), + () => {}); + + iterator.setEncoding('utf8'); + + for await (const k of iterator) { + assert.strictEqual(k, 'helloworld'); + } +} + +run().catch(common.mustCall((err) => assert.strictEqual(err, _err))); diff --git a/test/parallel/test-stream-pipeline.js b/test/parallel/test-stream-pipeline.js index ef5a39fddd881f..4a41f053bd0a85 100644 --- a/test/parallel/test-stream-pipeline.js +++ b/test/parallel/test-stream-pipeline.js @@ -119,6 +119,12 @@ const { promisify } = require('util'); transform.on('close', common.mustCall()); write.on('close', common.mustCall()); + [read, transform, write].forEach((stream) => { + stream.on('error', common.mustCall((err) => { + assert.deepStrictEqual(err, new Error('kaboom')); + })); + }); + const dst = pipeline(read, transform, write, common.mustCall((err) => { assert.deepStrictEqual(err, new Error('kaboom')); })); From edf75e4299219d57e53f98956b8e27e4945dd5d6 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 12 Apr 2020 18:55:03 +0200 Subject: [PATCH 02/88] src: use basename(argv0) for --trace-uncaught suggestion Refs: https://github.com/nodejs/node/pull/32797#discussion_r407222290 PR-URL: https://github.com/nodejs/node/pull/32798 Reviewed-By: David Carlier Reviewed-By: Richard Lau --- src/node_errors.cc | 9 +++++++-- src/node_file.cc | 16 ++++++++++++++++ src/node_internals.h | 4 ++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/node_errors.cc b/src/node_errors.cc index 9bae27550cec1b..4e13c24e15e1d0 100644 --- a/src/node_errors.cc +++ b/src/node_errors.cc @@ -375,8 +375,13 @@ static void ReportFatalException(Environment* env, } if (!env->options()->trace_uncaught) { - FPrintF(stderr, "(Use `node --trace-uncaught ...` to show " - "where the exception was thrown)\n"); + std::string argv0; + if (!env->argv().empty()) argv0 = env->argv()[0]; + if (argv0.empty()) argv0 = "node"; + FPrintF(stderr, + "(Use `%s --trace-uncaught ...` to show where the exception " + "was thrown)\n", + fs::Basename(argv0, ".exe")); } } diff --git a/src/node_file.cc b/src/node_file.cc index 97497132570c5f..d0d5cdc1fe9f83 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -82,6 +82,22 @@ constexpr char kPathSeparator = '/'; const char* const kPathSeparator = "\\/"; #endif +std::string Basename(const std::string& str, const std::string& extension) { + std::string ret = str; + + // Remove everything leading up to and including the final path separator. + std::string::size_type pos = ret.find_last_of(kPathSeparator); + if (pos != std::string::npos) ret = ret.substr(pos + 1); + + // Strip away the extension, if any. + if (ret.size() >= extension.size() && + ret.substr(ret.size() - extension.size()) == extension) { + ret = ret.substr(0, ret.size() - extension.size()); + } + + return ret; +} + inline int64_t GetOffset(Local value) { return value->IsNumber() ? value.As()->Value() : -1; } diff --git a/src/node_internals.h b/src/node_internals.h index 7ec3eac697e4b7..9f4f3337172f1b 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -397,6 +397,10 @@ BaseObjectPtr CreateHeapSnapshotStream( Environment* env, HeapSnapshotPointer&& snapshot); } // namespace heap +namespace fs { +std::string Basename(const std::string& str, const std::string& extension); +} // namespace fs + } // namespace node #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS From 1766514c5bfb4718e88814b700f770cc6abc8fe2 Mon Sep 17 00:00:00 2001 From: Julian Duque Date: Thu, 30 Apr 2020 22:25:55 -0400 Subject: [PATCH 03/88] 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 00000000000000..65144c0d617e9b --- /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 e572cf93e562e4cbe44f8f68d5bfeaac2c99089d Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Fri, 1 May 2020 14:40:13 +0300 Subject: [PATCH 04/88] 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 b839f0cebad093..ab90ddf353f6db 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} @@ -3379,7 +3379,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 903862089ba080a3fd0f0fb824cbebcd7a9d6bc8 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Fri, 1 May 2020 17:00:00 +0300 Subject: [PATCH 18/88] 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 ab90ddf353f6db..3b4c8432e6e971 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -2521,9 +2521,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 642f81317e1091e2cc13bcad8526b2bd73be5e03 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 24 Apr 2020 21:12:32 +0200 Subject: [PATCH 32/88] 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 18f548cc31ad66..9ac792d90cc673 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; @@ -996,7 +1001,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 509dcd2207e83e..662bf1abe0ba33 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 631e433cf5f7707612f7f5de4352bd697af47ac1 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 24 Apr 2020 21:12:32 +0200 Subject: [PATCH 33/88] 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 19405263c92896..4bb6af0322033f 100644 --- a/lib/zlib.js +++ b/lib/zlib.js @@ -614,9 +614,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 1f99a378fc6eda..95f401a3718f30 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 730690a07c423f..a27fd6734a5425 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 662bf1abe0ba33..02e66167d11b4f 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 66dbaff84846ea85f14a5be52589ef1fb75cbe15 Mon Sep 17 00:00:00 2001 From: Pranshu Srivastava Date: Tue, 21 Apr 2020 05:58:28 +0530 Subject: [PATCH 34/88] 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 00000000000000..3077687fbf9a3b --- /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 964adfafa56ba2601d7c18f754a3476894ab8224 Mon Sep 17 00:00:00 2001 From: Nikolai Vavilov Date: Sat, 2 May 2020 20:30:44 +0300 Subject: [PATCH 35/88] 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 874227f0d44051..a818f41a26ed5b 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 4d6f56a76a7c149a69d8d9d1011188f427e15ad9 Mon Sep 17 00:00:00 2001 From: Ruy Adorno Date: Mon, 4 May 2020 14:57:47 -0400 Subject: [PATCH 36/88] 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 c42aaf956257d5..f45f47b93829b8 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 cec3aac226b1c1..9fb0d51133692c 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 c2a38c02d53f97..08cade33b6ff10 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 5cd9c8d8f88615..bae7de70605601 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 981f0457d5c6bf..c08bd090cb64b4 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 01a9308204d196..2d9789dd77c1c6 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 a9ca433fdea08c..befedd0724aa56 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 f3853e530b6b3a..63df3a3728374c 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 7b96fcce677001..ada805d205847f 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 5d57fac3d4e3e5..78afd583ec1937 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 c54afe93556aeb..ba6fd6ea4d2aea 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 d9f5b5282ff212..b93cd6604c1ba8 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 8850a4e9d88f3e..b0e8aeaa7b788a 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 9e8457cc5ac1c3..2be5194916c775 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 bbf164e0fb1e5a..481cc9e44c585a 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 08b46aff44b0d5..5b671a8a751d5e 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 0a8d28382f08e5..8ffddbecb65d23 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 5f6c38423fd106..7d6227d2d9db79 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 0b9b4e795290c3..88d4bddb6f8468 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 503e6ec7fc4660..1bb22d2979f39f 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 7955f8def330eb..4201cb3f3c74f4 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 42f18e75075ce1..b5dedd56d12a68 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 ac94c50d0edca3..a38eb67e3d21a6 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 bddb1c09c83afc..d0a8bf18f0ffda 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 97f438294558d4..91374a0fac95cd 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 f58901446cd58a..3d160d633ac550 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 abd84b775782d5..e9cc5ffc7ef4d6 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 e38710dc87f52c..0a8ab53f2a4828 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 bd3e717c829525..d60bcddbb96af5 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 0515fcadc6ce4b..9b51a55ff46419 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 78f717dc33e524..ca152fa1cd238f 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 d63b61afcf1249..368eb1929d46f3 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 16a98c965a6d08..8e8b3fd7ff4b74 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 5b568995d6209d..c19007eb504fe0 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 7e4ce934fb5c4c..6a357ee4d358ea 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 89ed133f3ab21b..e879abe100bc1f 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 0a7800216e28e1..456c231887b571 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 77274aff6bf25d..8fe29cc37003c2 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 d128bf2ff1136a..64784997a926d9 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 1bdd218cfb3f11..f07ac85d9e5b00 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 478c206499f759..b6d0f2b6be43d4 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 aa5515abf372bb..4f7aea9576a868 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 97617c3fb01b80..dfef3141e6ca16 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 8dc6092402f5e1..2b6ae9f754aa6e 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 4ba3e0db658254..f5ddb1f7b6f8bc 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 1be8c34433293f..667eb2d96b7906 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 790ee382f5e989..da85949c143802 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 0a360a63e88e8f..cde0b9bf741e12 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 28c9770f184c2a..1018371d5e8844 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 3afd3d51c62c09..3d4e3fed8109d5 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 d97c2b26efa3dd..77968fc78a5796 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 2cff81bb8c896b..7ac4b1117182d4 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 d0c887c754a130..5186681c685a79 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 226a132de82039..9edac6d450dd9e 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 387e4fe959e9c9..f16afcecd2b119 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 e6fed3aeec6c23..07ba9067e27357 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 6d6a0bd0866a40..c8776ba911df1a 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 7f47f2ab2d328d..4b7638d884244c 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 10f880ea2e132e..4ee8f7539b1e4e 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 059bac05a46a2d..8bc3b7a03ee84d 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 f9ea9a44155b54..e04fc20823049c 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 e6653d1f1908f8..094b12d0f5f3ad 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 d540d9d254764a..9260a0a6b2e161 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 c9345b8d0893a6..66bf9750c71cb8 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 e0c37ba0252cc8..7f25283a705b61 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 0d06bfb33ab2e2..d6c68a00732949 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 a48d6c70ff5ffd..3a7b2078ced93a 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 1464ac5477af5a..5587e72e588736 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 e1a2c4efda160e..b654a7f6aaf390 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 0c18b027fdb734..2edfaff524cf63 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 6ffd16ebed3502..fe061fbb6ad16f 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 535f83b28e08e2..b2e311e1addb33 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 e2ff06feb4c377..7219fb663eadce 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 a3bd3a8d519095..21fae68bfdbd5b 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 6d7c2995a95c3c..cc245172bb399c 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 a6cbcdf43bc5e3..c6d6c506bac13a 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 fa98276007062f..93a92cd27028e4 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 3ebd3a1444a936..0a6fa3f2b7ebe3 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 6cc806bc43651a..8bc4e9bde235ae 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 723334e4dae6e3..cc5fff6d64ce9d 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 fe450fd3739bd7..362b542d13bd5b 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 d2376cf2754a68..4609d564041492 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 79ff8e1c437f92..fd6017acf9e29e 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 9d873689f6b7e1..41995abe22bbf1 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 3d8b333c64441c..72c71929630009 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 ab410ffc9b6e3c..df0eec6f6a6313 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 1ec4f9ba6dcfd7..122068c2012872 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 2ba6afd57c0e2f..f9f3511f7c364c 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 448c9859a44a62..583bbc0a252990 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 3d005b13029d1a..db0e7e078dbcae 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 d0a77fdf0d7815..db60498e2a210a 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 26480b0d0ff647..ffc64299daa1f7 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 1566c8706c1c53..967d15b73c5f6c 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 20919da86c19f8..5c1f2c802e1546 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 a2cb2ad35b4f2a..9b3b69753e8755 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 30186d7925cf8f..201c7790106964 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 625cf2ef7b4eea..807e94b067ad47 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 263e04cba27875..44e041d1032545 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 2c71ad1410e40c..71016d0ef10dd3 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 53e71c0f405040..3e41436455d37e 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 3d7c160d987b33..aa14c873cc1a6f 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 9e8fb37ac0db3b..dae13ae00f086f 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 e518a5082fd6de..8b6a846a9b71ff 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 4c04a7b6be9d41..188c80ac79ff7b 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 9f992f04d55f65..828825f8cb97ff 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 74159220becef2..5859ed053ff71b 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 e4c418f8dae881..acb459d745e9bb 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 19c7d7b5f5693d..72c18bd5e6c54b 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 6fa907cc9000f2..1aa3d6ddaea9da 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 74169fb4423c60..9d6d0a04616aa6 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 5c1b522ccbf7bb..f33cede27f8d5d 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 e5962b93fdae02..ed5559db37bad3 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 73c7400b73d3de..6d65529eab00b1 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 6bd9a4cd58e440..152becd7eaae61 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 79ad02d88ca0db..84df5b7e446fb1 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 d9020ea68413cb..3a46bcc3af5c71 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 54ef77772f060f..5e024fadb2f3ba 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 d3f1531252ed66..cc343314f75c3c 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 808555c7b1b989..d353c5f340a66c 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 f0e2f07a0cbc9a..34917c9b88340c 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 dac6963b4a2672..c9163675ec45d0 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 28ae935229cda4..0558082b0c4fbd 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 3b695b870e085b..3483ad3708e43d 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 b0990f099e5085..d1580469207b15 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 b51f829ca9c9fc..95d8e15984e1f9 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 eec1f60120a4cd..d4ad6b01fb340d 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 7e0d43fadf134d..41df28b52e6d01 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 68920454a69173..360080640b59f9 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 d90bebb90633d5..6c72553de428d2 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 dab19fcabf5a0e..93ff1323e3f0ce 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 8a7d2b6e2ff06c..4e38d392d63792 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 9b9b7861dab818..e2406f92252aae 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 59b2e499d1e9bf..4f4b95715cff88 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 e5a18f85be1374..023f409b75c006 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 bcc7cce20518c1..b2e851319715b0 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 64a22b7cb9461a..b64ec8b17533fe 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 5144671e15fcdd..1e23c9385f6c0d 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 6e0b1da57d6e06..2419f372b3d10b 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 fed0b5d5bb2dd1..b046fa0376d56f 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 2ef8c563f1eb30..0a7555c14ec4f4 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 72172f08c8f1fb..37ed8caf734e38 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 5db95caffc36d5..e776bb047f00dd 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 b236b1eaaaa561..2006a973c2040e 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 22dc7a71ed4b01..57cd4e9f6ff14c 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 0bed92ababc3dd..a0b97326a48c76 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 c581a1f0a4d363..08dc425b269aeb 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 a9ea697aea7dc2..fc2e735cc44d66 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 c88bdecd34f1e8..06fcc5032448ca 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 9309aa1f17c006..08b410eddca817 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 bc3f8fdaed0e5b..ed5483983f300a 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 13d90854131429..7ebe2dcf4a4918 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 43c6e419367742..5db9bea393f475 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 f610e42ba4ba4a..f7856325abbbe7 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 e891c84ecff4ee..227c7e87611217 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 0f653366b1d287..db95234d49e24b 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 a84548af27c641..942ce4b431a448 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 a94c70b3d833de..4c5a73a2e57771 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 418537ead8c219..b32c26c19cb3a0 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 f22059121e843b..5de9a3e0968093 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 7b7322628f2c65..254a685ad2c24d 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 1884347b8b6ab1..680125cf6d5c54 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 17b549b05e7c1c..f507049bc186fb 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 419716a83d737a..7e8df25a356581 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 8c75ee259e0911..de3df47fd55529 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 788876e3220739..32518904d97418 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 3cc13153851162..fc314bfbd662cf 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 2f1287071fc0d6..468d7cd8df53be 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 5ff5891b2c06d8..af775065f04fae 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 3c3629e647f5dd..00000000000000 --- 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 a1cef591c3cfd0..00000000000000 --- 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 142447e18e756c..00000000000000 --- 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 1fb113514f3347..0ec5753d0cb898 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 cea3624f4d14e5..1490f6d25d75cf 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 5c18ac0fc6a319..00000000000000 --- 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 3599c6b2fcac1b..75b74eec60144d 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 80ce64cda78efe..9f9c6d0e808fd2 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 d7be3f9b38a167..c4e8b687412a58 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 ca6c5f90c63527..c1582514e36e1e 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 d367dc98b5982f..bfbed9ea0bab43 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 31fb6fa1941418..75d2115aadf83a 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 257fc99fc123ff..1c9995cedc8a04 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 68551d22d2e8fcee1dc3e67ff5e80bb0ff9d543f 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 37/88] 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 efc92ca8c4aee4..2ce0d29464a9bd 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 c68de859b6b654..3b2f94411f3df3 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 cd92052935e19a9e684f12c5ec49dd9441d8fe5e 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 38/88] 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 dcf42abe7925f7..421b5fdcb77fc7 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 00000000000000..779d5b4af08428 --- /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 00000000000000..364dd81a344818 --- /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 00000000000000..6676b001a8b816 --- /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 00000000000000..c53b04d844e4f5 --- /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 00000000000000..fd8049cb9a1eee --- /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 00000000000000..5bec688af9cd3c --- /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 00000000000000..40c1d061830e6f --- /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 00000000000000..7c2d90df275fbc --- /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 00000000000000..731da9db758ba5 --- /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 00000000000000..06b0bc7da78b4b --- /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 00000000000000..30e804bd735031 --- /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 00000000000000..20aea75084515a --- /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 00000000000000..71ade4a8c48ce2 --- /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 00000000000000..18c4e0dc327919 --- /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 00000000000000..1e5ef1cdffecf6 --- /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 c560f6844e9e3d..5fdc09c4f4f8c5 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 00000000000000..0967ef424bce67 --- /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 00000000000000..eb9c68797dfcbf --- /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 5d5e66c10c6a55cde328e2e4ca814bd8c4aa5209 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 9 Mar 2020 21:53:03 +0100 Subject: [PATCH 39/88] 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 86d4b595e7dc9a..f707caffdafde4 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 f791eb8a8d2513..6cad46f101c0af 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 cdd7d3a66d2720a7221667b04fd36fea7a3dbe82 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 9 Mar 2020 21:56:04 +0100 Subject: [PATCH 40/88] 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 ba94036b0f50bc..14c53277a19a47 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 b6300793fb3317d5b247ec4fa10d9b7e19ef91a1 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 8 May 2020 05:56:31 +0200 Subject: [PATCH 41/88] 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 9f4f3337172f1b..c1555b312e2f22 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -246,9 +246,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 41eeb1e0ef5710..ef7a5e4c7a87f2 100644 --- a/src/stream_base-inl.h +++ b/src/stream_base-inl.h @@ -113,29 +113,29 @@ inline void StreamResource::RemoveStreamListener(StreamListener* listener) { } inline uv_buf_t StreamResource::EmitAlloc(size_t suggested_size) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; return listener_->OnStreamAlloc(suggested_size); } inline 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); } inline void StreamResource::EmitAfterWrite(WriteWrap* w, int status) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamAfterWrite(w, status); } inline void StreamResource::EmitAfterShutdown(ShutdownWrap* w, int status) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamAfterShutdown(w, status); } inline void StreamResource::EmitWantsWrite(size_t suggested_size) { - DebugSealHandleScope handle_scope(v8::Isolate::GetCurrent()); + DebugSealHandleScope seal_handle_scope; listener_->OnStreamWantsWrite(suggested_size); } From 59769c4d14f534abd65d1bd8b5e30ab84c164af5 Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Fri, 8 May 2020 08:21:50 +0200 Subject: [PATCH 42/88] 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 bb80f57ee295c5..1577e31779ddc6 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 2645b1c85b861004289d64dcfdf598b9e5189885 Mon Sep 17 00:00:00 2001 From: cjihrig Date: Fri, 8 May 2020 15:21:30 -0400 Subject: [PATCH 43/88] 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 0a802b0c25d0ca..427544bad668c0 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 6609734950a443..cd3b816b6570a2 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 21071075c24599..4b1ad51b2f0efc 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 d08d108b2b5b67..5c77cba829c5bd 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 0e2e4909183090..5b4c386f9269b3 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 09ba94309070c5..1a08521b5a0017 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 4d9802a89e2999..c6b10012540c24 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 3611a6b523fe85..932b979176f33b 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 e42aa68a542d9e..b7c198a6f3d7c5 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 00000000000000..c275decd2d23a7 --- /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 00000000000000..10921d66e857a7 --- /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 00000000000000..7f9a443d80d22a --- /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 a03d1c3ef402fa..988575d77f0045 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 d22f11891bdd84..5f7f545e8785a3 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 aa23d09f79dd9f..88abe0ffb91100 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 700b4ff054b1fe..e2c80afc134141 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 1bd3a921263580..b7db020775eb2d 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 00000000000000..5d82581a13f990 --- /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 00000000000000..e7af2f77107d73 --- /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 00000000000000..2b0aef0e49e6e8 --- /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 00000000000000..2a1ef654667d3f --- /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 00000000000000..e7af2f77107d73 --- /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 00000000000000..b6219713cecd70 --- /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 00000000000000..877cb93b7861f7 --- /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.`