From a44260326ced81c21885f52e11d84c1d061629ac Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sun, 4 Jun 2017 13:35:56 +0200 Subject: [PATCH 001/248] async_hooks: use resource objects for Promises MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use `PromiseWrap` resource objects whose lifetimes are tied to the `Promise` instances themselves to track promises, and have a `.promise` getter that points to the `Promise` and a `.parent` property that points to the parent Promise’s resource object, if there is any. The properties are implemented as getters for internal fields rather than normal properties in the hope that it helps keep performance for the common case that async_hooks users will often not inspect them. PR-URL: https://github.com/nodejs/node/pull/13452 Reviewed-By: Andreas Madsen Reviewed-By: Trevor Norris --- doc/api/async_hooks.md | 13 +++- src/async-wrap.cc | 84 ++++++++++++++++++++--- src/env.h | 1 + test/parallel/test-async-hooks-promise.js | 23 +++++++ 4 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 test/parallel/test-async-hooks-promise.js diff --git a/doc/api/async_hooks.md b/doc/api/async_hooks.md index d6407dea2837b3..dd1eef22a96bd5 100644 --- a/doc/api/async_hooks.md +++ b/doc/api/async_hooks.md @@ -203,13 +203,16 @@ UDPSENDWRAP, UDPWRAP, WRITEWRAP, ZLIB, SSLCONNECTION, PBKDF2REQUEST, RANDOMBYTESREQUEST, TLSWRAP, Timeout, Immediate, TickObject ``` +There is also the `PROMISE` resource type, which is used to track `Promise` +instances and asynchronous work scheduled by them. + Users are be able to define their own `type` when using the public embedder API. *Note:* It is possible to have type name collisions. Embedders are encouraged to use a unique prefixes, such as the npm package name, to prevent collisions when listening to the hooks. -###### `triggerid` +###### `triggerId` `triggerId` is the `asyncId` of the resource that caused (or "triggered") the new resource to initialize and that caused `init` to call. This is different @@ -258,7 +261,13 @@ considered public, but using the Embedder API users can provide and document their own resource objects. Such as resource object could for example contain the SQL query being executed. -*Note:* In some cases the resource object is reused for performance reasons, +In the case of Promises, the `resource` object will have `promise` property +that refers to the Promise that is being initialized, and a `parentId` property +that equals the `asyncId` of a parent Promise, if there is one, and +`undefined` otherwise. For example, in the case of `b = a.then(handler)`, +`a` is considered a parent Promise of `b`. + +*Note*: In some cases the resource object is reused for performance reasons, it is thus not safe to use it as a key in a `WeakMap` or add properties to it. ###### asynchronous context example diff --git a/src/async-wrap.cc b/src/async-wrap.cc index 813d7c21bb0d87..2dcfdc799720ed 100644 --- a/src/async-wrap.cc +++ b/src/async-wrap.cc @@ -36,6 +36,7 @@ using v8::Context; using v8::Float64Array; using v8::Function; using v8::FunctionCallbackInfo; +using v8::FunctionTemplate; using v8::HandleScope; using v8::HeapProfiler; using v8::Integer; @@ -44,8 +45,10 @@ using v8::Local; using v8::MaybeLocal; using v8::Number; using v8::Object; +using v8::ObjectTemplate; using v8::Promise; using v8::PromiseHookType; +using v8::PropertyCallbackInfo; using v8::RetainedObjectInfo; using v8::String; using v8::Symbol; @@ -282,37 +285,86 @@ bool AsyncWrap::EmitAfter(Environment* env, double async_id) { class PromiseWrap : public AsyncWrap { public: PromiseWrap(Environment* env, Local object, bool silent) - : AsyncWrap(env, object, PROVIDER_PROMISE, silent) {} + : AsyncWrap(env, object, PROVIDER_PROMISE, silent) { + MakeWeak(this); + } size_t self_size() const override { return sizeof(*this); } + + static constexpr int kPromiseField = 1; + static constexpr int kParentIdField = 2; + static constexpr int kInternalFieldCount = 3; + + static PromiseWrap* New(Environment* env, + Local promise, + PromiseWrap* parent_wrap, + bool silent); + static void GetPromise(Local property, + const PropertyCallbackInfo& info); + static void GetParentId(Local property, + const PropertyCallbackInfo& info); }; +PromiseWrap* PromiseWrap::New(Environment* env, + Local promise, + PromiseWrap* parent_wrap, + bool silent) { + Local object = env->promise_wrap_template() + ->NewInstance(env->context()).ToLocalChecked(); + object->SetInternalField(PromiseWrap::kPromiseField, promise); + if (parent_wrap != nullptr) { + object->SetInternalField(PromiseWrap::kParentIdField, + Number::New(env->isolate(), + parent_wrap->get_id())); + } + CHECK_EQ(promise->GetAlignedPointerFromInternalField(0), nullptr); + promise->SetInternalField(0, object); + return new PromiseWrap(env, object, silent); +} + +void PromiseWrap::GetPromise(Local property, + const PropertyCallbackInfo& info) { + info.GetReturnValue().Set(info.Holder()->GetInternalField(kPromiseField)); +} + +void PromiseWrap::GetParentId(Local property, + const PropertyCallbackInfo& info) { + info.GetReturnValue().Set(info.Holder()->GetInternalField(kParentIdField)); +} static void PromiseHook(PromiseHookType type, Local promise, Local parent, void* arg) { Local context = promise->CreationContext(); Environment* env = Environment::GetCurrent(context); - PromiseWrap* wrap = Unwrap(promise); + Local resource_object_value = promise->GetInternalField(0); + PromiseWrap* wrap = nullptr; + if (resource_object_value->IsObject()) { + Local resource_object = resource_object_value.As(); + wrap = Unwrap(resource_object); + } if (type == PromiseHookType::kInit || wrap == nullptr) { bool silent = type != PromiseHookType::kInit; + PromiseWrap* parent_wrap = nullptr; + // set parent promise's async Id as this promise's triggerId if (parent->IsPromise()) { // parent promise exists, current promise // is a chained promise, so we set parent promise's id as // current promise's triggerId Local parent_promise = parent.As(); - auto parent_wrap = Unwrap(parent_promise); + Local parent_resource = parent_promise->GetInternalField(0); + if (parent_resource->IsObject()) { + parent_wrap = Unwrap(parent_resource.As()); + } if (parent_wrap == nullptr) { - // create a new PromiseWrap for parent promise with silent parameter - parent_wrap = new PromiseWrap(env, parent_promise, true); - parent_wrap->MakeWeak(parent_wrap); + parent_wrap = PromiseWrap::New(env, parent_promise, nullptr, true); } // get id from parentWrap double trigger_id = parent_wrap->get_id(); env->set_init_trigger_id(trigger_id); } - wrap = new PromiseWrap(env, promise, silent); - wrap->MakeWeak(wrap); + + wrap = PromiseWrap::New(env, promise, parent_wrap, silent); } else if (type == PromiseHookType::kResolve) { // TODO(matthewloring): need to expose this through the async hooks api. } @@ -351,6 +403,22 @@ static void SetupHooks(const FunctionCallbackInfo& args) { SET_HOOK_FN(destroy); env->AddPromiseHook(PromiseHook, nullptr); #undef SET_HOOK_FN + + { + Local ctor = + FunctionTemplate::New(env->isolate()); + ctor->SetClassName(FIXED_ONE_BYTE_STRING(env->isolate(), "PromiseWrap")); + Local promise_wrap_template = ctor->InstanceTemplate(); + promise_wrap_template->SetInternalFieldCount( + PromiseWrap::kInternalFieldCount); + promise_wrap_template->SetAccessor( + FIXED_ONE_BYTE_STRING(env->isolate(), "promise"), + PromiseWrap::GetPromise); + promise_wrap_template->SetAccessor( + FIXED_ONE_BYTE_STRING(env->isolate(), "parentId"), + PromiseWrap::GetParentId); + env->set_promise_wrap_template(promise_wrap_template); + } } diff --git a/src/env.h b/src/env.h index 7179a6081cc417..2eacf68ef5e93b 100644 --- a/src/env.h +++ b/src/env.h @@ -268,6 +268,7 @@ namespace node { V(pipe_constructor_template, v8::FunctionTemplate) \ V(process_object, v8::Object) \ V(promise_reject_function, v8::Function) \ + V(promise_wrap_template, v8::ObjectTemplate) \ V(push_values_to_array_function, v8::Function) \ V(randombytes_constructor_template, v8::ObjectTemplate) \ V(script_context_constructor_template, v8::FunctionTemplate) \ diff --git a/test/parallel/test-async-hooks-promise.js b/test/parallel/test-async-hooks-promise.js new file mode 100644 index 00000000000000..ea5e59d319db53 --- /dev/null +++ b/test/parallel/test-async-hooks-promise.js @@ -0,0 +1,23 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const async_hooks = require('async_hooks'); + +const initCalls = []; + +async_hooks.createHook({ + init: common.mustCall((id, type, triggerId, resource) => { + assert.strictEqual(type, 'PROMISE'); + initCalls.push({id, triggerId, resource}); + }, 2) +}).enable(); + +const a = Promise.resolve(42); +const b = a.then(common.mustCall()); + +assert.strictEqual(initCalls[0].triggerId, 1); +assert.strictEqual(initCalls[0].resource.parentId, undefined); +assert.strictEqual(initCalls[0].resource.promise, a); +assert.strictEqual(initCalls[1].triggerId, initCalls[0].id); +assert.strictEqual(initCalls[1].resource.parentId, initCalls[0].id); +assert.strictEqual(initCalls[1].resource.promise, b); From 8b57b09c15bdd754e210148ab763732c96ea1396 Mon Sep 17 00:00:00 2001 From: Trevor Norris Date: Tue, 6 Jun 2017 10:50:36 -0600 Subject: [PATCH 002/248] Revert "async_hooks: only set up hooks if used" This reverts commit 410b1417648b5273fe80f4d910c6bbd198a00a2d. PR-URL: https://github.com/nodejs/node/pull/13509 Reviewed-By: Andreas Madsen Reviewed-By: Anna Henningsen --- lib/async_hooks.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/async_hooks.js b/lib/async_hooks.js index 1726a4f7e1dfea..9fac1e506ba06d 100644 --- a/lib/async_hooks.js +++ b/lib/async_hooks.js @@ -49,7 +49,12 @@ const before_symbol = Symbol('before'); const after_symbol = Symbol('after'); const destroy_symbol = Symbol('destroy'); -let setupHooksCalled = false; +// Setup the callbacks that node::AsyncWrap will call when there are hooks to +// process. They use the same functions as the JS embedder API. +async_wrap.setupHooks({ init, + before: emitBeforeN, + after: emitAfterN, + destroy: emitDestroyN }); // Used to fatally abort the process if a callback throws. function fatalError(e) { @@ -98,16 +103,6 @@ class AsyncHook { if (hooks_array.includes(this)) return this; - if (!setupHooksCalled) { - setupHooksCalled = true; - // Setup the callbacks that node::AsyncWrap will call when there are - // hooks to process. They use the same functions as the JS embedder API. - async_wrap.setupHooks({ init, - before: emitBeforeN, - after: emitAfterN, - destroy: emitDestroyN }); - } - // createHook() has already enforced that the callbacks are all functions, // so here simply increment the count of whether each callbacks exists or // not. From 96279e83e73375fcbf4833e1810ff811f36416cc Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 6 Jun 2017 13:22:48 -0600 Subject: [PATCH 003/248] async_wrap: expose enable/disablePromiseHook API Allow node::PromiseHook (src/async-wrap.cc) to be enabled/disabled from the JavaScript API. PR-URL: https://github.com/nodejs/node/pull/13509 Reviewed-By: Andreas Madsen Reviewed-By: Anna Henningsen --- src/async-wrap.cc | 14 ++++++++++++++ src/env.cc | 25 +++++++++++++++++++++++++ src/env.h | 1 + 3 files changed, 40 insertions(+) diff --git a/src/async-wrap.cc b/src/async-wrap.cc index 2dcfdc799720ed..c4777ac827a685 100644 --- a/src/async-wrap.cc +++ b/src/async-wrap.cc @@ -422,6 +422,18 @@ static void SetupHooks(const FunctionCallbackInfo& args) { } +static void EnablePromiseHook(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + env->AddPromiseHook(PromiseHook, nullptr); +} + + +static void DisablePromiseHook(const FunctionCallbackInfo& args) { + Environment* env = Environment::GetCurrent(args); + env->RemovePromiseHook(PromiseHook, nullptr); +} + + void AsyncWrap::GetAsyncId(const FunctionCallbackInfo& args) { AsyncWrap* wrap; args.GetReturnValue().Set(-1); @@ -478,6 +490,8 @@ void AsyncWrap::Initialize(Local target, env->SetMethod(target, "popAsyncIds", PopAsyncIds); env->SetMethod(target, "clearIdStack", ClearIdStack); env->SetMethod(target, "addIdToDestroyList", QueueDestroyId); + env->SetMethod(target, "enablePromiseHook", EnablePromiseHook); + env->SetMethod(target, "disablePromiseHook", DisablePromiseHook); v8::PropertyAttribute ReadOnlyDontDelete = static_cast(v8::ReadOnly | v8::DontDelete); diff --git a/src/env.cc b/src/env.cc index 0bf4b573aafd69..c97868a5882b41 100644 --- a/src/env.cc +++ b/src/env.cc @@ -11,6 +11,7 @@ #endif #include +#include namespace node { @@ -178,12 +179,36 @@ void Environment::AtExit(void (*cb)(void* arg), void* arg) { } void Environment::AddPromiseHook(promise_hook_func fn, void* arg) { + auto it = std::find_if( + promise_hooks_.begin(), promise_hooks_.end(), + [&](const PromiseHookCallback& hook) { + return hook.cb_ == fn && hook.arg_ == arg; + }); + CHECK_EQ(it, promise_hooks_.end()); promise_hooks_.push_back(PromiseHookCallback{fn, arg}); + if (promise_hooks_.size() == 1) { isolate_->SetPromiseHook(EnvPromiseHook); } } +bool Environment::RemovePromiseHook(promise_hook_func fn, void* arg) { + auto it = std::find_if( + promise_hooks_.begin(), promise_hooks_.end(), + [&](const PromiseHookCallback& hook) { + return hook.cb_ == fn && hook.arg_ == arg; + }); + + if (it == promise_hooks_.end()) return false; + + promise_hooks_.erase(it); + if (promise_hooks_.empty()) { + isolate_->SetPromiseHook(nullptr); + } + + return true; +} + void Environment::EnvPromiseHook(v8::PromiseHookType type, v8::Local promise, v8::Local parent) { diff --git a/src/env.h b/src/env.h index 2eacf68ef5e93b..2f62663be6ab33 100644 --- a/src/env.h +++ b/src/env.h @@ -654,6 +654,7 @@ class Environment { static const int kContextEmbedderDataIndex = NODE_CONTEXT_EMBEDDER_DATA_INDEX; void AddPromiseHook(promise_hook_func fn, void* arg); + bool RemovePromiseHook(promise_hook_func fn, void* arg); private: inline void ThrowError(v8::Local (*fun)(v8::Local), From 2122e2fe89766ef6167d6655200283e7ca99f082 Mon Sep 17 00:00:00 2001 From: Trevor Norris Date: Tue, 6 Jun 2017 10:57:10 -0600 Subject: [PATCH 004/248] async_wrap: use kTotals to enable PromiseHook Keep a total of enabled hook callbacks in kTotals. This value is used to track whether node::PromiseHook (src/async-wrap.cc) should be enabled or disabled. Don't enable node::PromiseHook, using enablePromiseHook(), until a hook has been added. Then, using disablePromiseHook(), disable node::PromiseHook when all hooks have been disabled. Need to use a native test in order to check the internal field of the Promise and check for a PromiseWrap. PR-URL: https://github.com/nodejs/node/pull/13509 Reviewed-By: Andreas Madsen Reviewed-By: Anna Henningsen --- lib/async_hooks.js | 38 ++++++++++----- src/async-wrap.cc | 8 +++- src/env.h | 1 + test/addons/async-hooks-promise/binding.cc | 43 +++++++++++++++++ test/addons/async-hooks-promise/binding.gyp | 9 ++++ test/addons/async-hooks-promise/test.js | 43 +++++++++++++++++ ...test-async-hooks-promise-enable-disable.js | 47 +++++++++++++++++++ 7 files changed, 177 insertions(+), 12 deletions(-) create mode 100644 test/addons/async-hooks-promise/binding.cc create mode 100644 test/addons/async-hooks-promise/binding.gyp create mode 100644 test/addons/async-hooks-promise/test.js create mode 100644 test/parallel/test-async-hooks-promise-enable-disable.js diff --git a/lib/async_hooks.js b/lib/async_hooks.js index 9fac1e506ba06d..53ce0382348042 100644 --- a/lib/async_hooks.js +++ b/lib/async_hooks.js @@ -38,8 +38,8 @@ var tmp_async_hook_fields = null; // Each constant tracks how many callbacks there are for any given step of // async execution. These are tracked so if the user didn't include callbacks // for a given step, that step can bail out early. -const { kInit, kBefore, kAfter, kDestroy, kCurrentAsyncId, kCurrentTriggerId, - kAsyncUidCntr, kInitTriggerId } = async_wrap.constants; +const { kInit, kBefore, kAfter, kDestroy, kTotals, kCurrentAsyncId, + kCurrentTriggerId, kAsyncUidCntr, kInitTriggerId } = async_wrap.constants; const { async_id_symbol, trigger_id_symbol } = async_wrap; @@ -50,7 +50,9 @@ const after_symbol = Symbol('after'); const destroy_symbol = Symbol('destroy'); // Setup the callbacks that node::AsyncWrap will call when there are hooks to -// process. They use the same functions as the JS embedder API. +// process. They use the same functions as the JS embedder API. These callbacks +// are setup immediately to prevent async_wrap.setupHooks() from being hijacked +// and the cost of doing so is negligible. async_wrap.setupHooks({ init, before: emitBeforeN, after: emitAfterN, @@ -103,14 +105,21 @@ class AsyncHook { if (hooks_array.includes(this)) return this; + const prev_kTotals = hook_fields[kTotals]; + hook_fields[kTotals] = 0; + // createHook() has already enforced that the callbacks are all functions, // so here simply increment the count of whether each callbacks exists or // not. - hook_fields[kInit] += +!!this[init_symbol]; - hook_fields[kBefore] += +!!this[before_symbol]; - hook_fields[kAfter] += +!!this[after_symbol]; - hook_fields[kDestroy] += +!!this[destroy_symbol]; + hook_fields[kTotals] += hook_fields[kInit] += +!!this[init_symbol]; + hook_fields[kTotals] += hook_fields[kBefore] += +!!this[before_symbol]; + hook_fields[kTotals] += hook_fields[kAfter] += +!!this[after_symbol]; + hook_fields[kTotals] += hook_fields[kDestroy] += +!!this[destroy_symbol]; hooks_array.push(this); + + if (prev_kTotals === 0 && hook_fields[kTotals] > 0) + async_wrap.enablePromiseHook(); + return this; } @@ -121,11 +130,18 @@ class AsyncHook { if (index === -1) return this; - hook_fields[kInit] -= +!!this[init_symbol]; - hook_fields[kBefore] -= +!!this[before_symbol]; - hook_fields[kAfter] -= +!!this[after_symbol]; - hook_fields[kDestroy] -= +!!this[destroy_symbol]; + const prev_kTotals = hook_fields[kTotals]; + hook_fields[kTotals] = 0; + + hook_fields[kTotals] += hook_fields[kInit] -= +!!this[init_symbol]; + hook_fields[kTotals] += hook_fields[kBefore] -= +!!this[before_symbol]; + hook_fields[kTotals] += hook_fields[kAfter] -= +!!this[after_symbol]; + hook_fields[kTotals] += hook_fields[kDestroy] -= +!!this[destroy_symbol]; hooks_array.splice(index, 1); + + if (prev_kTotals > 0 && hook_fields[kTotals] === 0) + async_wrap.disablePromiseHook(); + return this; } } diff --git a/src/async-wrap.cc b/src/async-wrap.cc index c4777ac827a685..d7cdc4198c944b 100644 --- a/src/async-wrap.cc +++ b/src/async-wrap.cc @@ -335,12 +335,17 @@ static void PromiseHook(PromiseHookType type, Local promise, Local parent, void* arg) { Local context = promise->CreationContext(); Environment* env = Environment::GetCurrent(context); + + // PromiseHook() should never be called if no hooks have been enabled. + CHECK_GT(env->async_hooks()->fields()[AsyncHooks::kTotals], 0); + Local resource_object_value = promise->GetInternalField(0); PromiseWrap* wrap = nullptr; if (resource_object_value->IsObject()) { Local resource_object = resource_object_value.As(); wrap = Unwrap(resource_object); } + if (type == PromiseHookType::kInit || wrap == nullptr) { bool silent = type != PromiseHookType::kInit; PromiseWrap* parent_wrap = nullptr; @@ -368,6 +373,7 @@ static void PromiseHook(PromiseHookType type, Local promise, } else if (type == PromiseHookType::kResolve) { // TODO(matthewloring): need to expose this through the async hooks api. } + CHECK_NE(wrap, nullptr); if (type == PromiseHookType::kBefore) { PreCallbackExecution(wrap, false); @@ -401,7 +407,6 @@ static void SetupHooks(const FunctionCallbackInfo& args) { SET_HOOK_FN(before); SET_HOOK_FN(after); SET_HOOK_FN(destroy); - env->AddPromiseHook(PromiseHook, nullptr); #undef SET_HOOK_FN { @@ -542,6 +547,7 @@ void AsyncWrap::Initialize(Local target, SET_HOOKS_CONSTANT(kBefore); SET_HOOKS_CONSTANT(kAfter); SET_HOOKS_CONSTANT(kDestroy); + SET_HOOKS_CONSTANT(kTotals); SET_HOOKS_CONSTANT(kCurrentAsyncId); SET_HOOKS_CONSTANT(kCurrentTriggerId); SET_HOOKS_CONSTANT(kAsyncUidCntr); diff --git a/src/env.h b/src/env.h index 2f62663be6ab33..458173ec6d2a41 100644 --- a/src/env.h +++ b/src/env.h @@ -344,6 +344,7 @@ class Environment { kBefore, kAfter, kDestroy, + kTotals, kFieldsCount, }; diff --git a/test/addons/async-hooks-promise/binding.cc b/test/addons/async-hooks-promise/binding.cc new file mode 100644 index 00000000000000..fb91b936e66d28 --- /dev/null +++ b/test/addons/async-hooks-promise/binding.cc @@ -0,0 +1,43 @@ +#include +#include + +namespace { + +using v8::FunctionCallbackInfo; +using v8::Isolate; +using v8::Local; +using v8::NewStringType; +using v8::Object; +using v8::Promise; +using v8::String; +using v8::Value; + +static void ThrowError(Isolate* isolate, const char* err_msg) { + Local str = String::NewFromOneByte( + isolate, + reinterpret_cast(err_msg), + NewStringType::kNormal).ToLocalChecked(); + isolate->ThrowException(str); +} + +static void GetPromiseField(const FunctionCallbackInfo& args) { + auto isolate = args.GetIsolate(); + + if (!args[0]->IsPromise()) + return ThrowError(isolate, "arg is not an Promise"); + + auto p = args[0].As(); + if (p->InternalFieldCount() < 1) + return ThrowError(isolate, "Promise has no internal field"); + + auto l = p->GetInternalField(0); + args.GetReturnValue().Set(l); +} + +inline void Initialize(v8::Local binding) { + NODE_SET_METHOD(binding, "getPromiseField", GetPromiseField); +} + +NODE_MODULE(binding, Initialize) + +} // anonymous namespace diff --git a/test/addons/async-hooks-promise/binding.gyp b/test/addons/async-hooks-promise/binding.gyp new file mode 100644 index 00000000000000..7ede63d94a0d77 --- /dev/null +++ b/test/addons/async-hooks-promise/binding.gyp @@ -0,0 +1,9 @@ +{ + 'targets': [ + { + 'target_name': 'binding', + 'defines': [ 'V8_DEPRECATION_WARNINGS=1' ], + 'sources': [ 'binding.cc' ] + } + ] +} diff --git a/test/addons/async-hooks-promise/test.js b/test/addons/async-hooks-promise/test.js new file mode 100644 index 00000000000000..bbe11dd3c57d01 --- /dev/null +++ b/test/addons/async-hooks-promise/test.js @@ -0,0 +1,43 @@ +'use strict'; + +const common = require('../../common'); +const assert = require('assert'); +const async_hooks = require('async_hooks'); +const binding = require(`./build/${common.buildType}/binding`); + +// Baseline to make sure the internal field isn't being set. +assert.strictEqual( + binding.getPromiseField(Promise.resolve(1)), + 0, + 'Promise internal field used despite missing enabled AsyncHook'); + +const hook0 = async_hooks.createHook({}).enable(); + +// Check that no PromiseWrap is created when there are no hook callbacks. +assert.strictEqual( + binding.getPromiseField(Promise.resolve(1)), + 0, + 'Promise internal field used despite missing enabled AsyncHook'); + +hook0.disable(); + +let pwrap = null; +const hook1 = async_hooks.createHook({ + init(id, type, tid, resource) { + pwrap = resource; + } +}).enable(); + +// Check that the internal field returns the same PromiseWrap passed to init(). +assert.strictEqual( + binding.getPromiseField(Promise.resolve(1)), + pwrap, + 'Unexpected PromiseWrap'); + +hook1.disable(); + +// Check that internal fields are no longer being set. +assert.strictEqual( + binding.getPromiseField(Promise.resolve(1)), + 0, + 'Promise internal field used despite missing enabled AsyncHook'); diff --git a/test/parallel/test-async-hooks-promise-enable-disable.js b/test/parallel/test-async-hooks-promise-enable-disable.js new file mode 100644 index 00000000000000..5d9abe00901762 --- /dev/null +++ b/test/parallel/test-async-hooks-promise-enable-disable.js @@ -0,0 +1,47 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const async_hooks = require('async_hooks'); +const EXPECTED_INITS = 2; +let p_resource = null; +let p_er = null; +let p_inits = 0; + +// Not useful to place common.mustCall() around 'exit' event b/c it won't be +// able to check it anway. +process.on('exit', (code) => { + if (code !== 0) + return; + if (p_er !== null) + throw p_er; + // Expecint exactly 2 PROMISE types to reach init. + assert.strictEqual(p_inits, EXPECTED_INITS); +}); + +const mustCallInit = common.mustCall(function init(id, type, tid, resource) { + if (type !== 'PROMISE') + return; + p_inits++; + p_resource = resource.promise; +}, EXPECTED_INITS); + +const hook = async_hooks.createHook({ + init: mustCallInit +// Enable then disable to test whether disable() actually works. +}).enable().disable().disable(); + +new Promise(common.mustCall((res) => { + res(42); +})).then(common.mustCall((val) => { + hook.enable().enable(); + const p = new Promise((res) => res(val)); + assert.strictEqual(p, p_resource); + hook.disable(); + return p; +})).then(common.mustCall((val2) => { + hook.enable(); + const p = new Promise((res) => res(val2)); + hook.disable(); + return p; +})).catch((er) => p_er = er); From b22a04b2c6b20d0b8993919389439a7c9528a19d Mon Sep 17 00:00:00 2001 From: Brian White Date: Wed, 7 Jun 2017 11:25:24 -0400 Subject: [PATCH 005/248] http: always cork outgoing writes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/13522 Reviewed-By: Matteo Collina Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: James M Snell Reviewed-By: Fedor Indutny --- benchmark/fixtures/simple-http-server.js | 62 +++++++++++------------- benchmark/http/simple.js | 6 ++- lib/_http_outgoing.js | 10 ++-- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/benchmark/fixtures/simple-http-server.js b/benchmark/fixtures/simple-http-server.js index 1dda98e9f2d9c1..854d249ac803e0 100644 --- a/benchmark/fixtures/simple-http-server.js +++ b/benchmark/fixtures/simple-http-server.js @@ -27,13 +27,14 @@ module.exports = http.createServer(function(req, res) { dom.add(res); } - // URL format: //// + // URL format: /////chunkedEnc var params = req.url.split('/'); var command = params[1]; var body = ''; var arg = params[2]; var n_chunks = parseInt(params[3], 10); var resHow = (params.length >= 5 ? params[4] : 'normal'); + var chunkedEnc = (params.length >= 6 && params[5] === 'false' ? false : true); var status = 200; var n, i; @@ -95,48 +96,43 @@ module.exports = http.createServer(function(req, res) { // example: http://localhost:port/bytes/512/4 // sends a 512 byte body in 4 chunks of 128 bytes - if (n_chunks > 0) { - switch (resHow) { - case 'setHeader': - res.statusCode = status; - res.setHeader('Content-Type', 'text/plain'); + var len = body.length; + switch (resHow) { + case 'setHeader': + res.statusCode = status; + res.setHeader('Content-Type', 'text/plain'); + if (chunkedEnc) res.setHeader('Transfer-Encoding', 'chunked'); - break; - case 'setHeaderWH': - res.setHeader('Content-Type', 'text/plain'); + else + res.setHeader('Content-Length', len.toString()); + break; + case 'setHeaderWH': + res.setHeader('Content-Type', 'text/plain'); + if (chunkedEnc) res.writeHead(status, { 'Transfer-Encoding': 'chunked' }); - break; - default: + else + res.writeHead(status, { 'Content-Length': len.toString() }); + break; + default: + if (chunkedEnc) { res.writeHead(status, { 'Content-Type': 'text/plain', 'Transfer-Encoding': 'chunked' }); - } - // send body in chunks - var len = body.length; + } else { + res.writeHead(status, { + 'Content-Type': 'text/plain', + 'Content-Length': len.toString() + }); + } + } + // send body in chunks + if (n_chunks > 1) { var step = Math.floor(len / n_chunks) || 1; - - for (i = 0, n = (n_chunks - 1); i < n; ++i) { + for (i = 0, n = (n_chunks - 1); i < n; ++i) res.write(body.slice(i * step, i * step + step)); - } res.end(body.slice((n_chunks - 1) * step)); } else { - switch (resHow) { - case 'setHeader': - res.statusCode = status; - res.setHeader('Content-Type', 'text/plain'); - res.setHeader('Content-Length', body.length.toString()); - break; - case 'setHeaderWH': - res.setHeader('Content-Type', 'text/plain'); - res.writeHead(status, { 'Content-Length': body.length.toString() }); - break; - default: - res.writeHead(status, { - 'Content-Type': 'text/plain', - 'Content-Length': body.length.toString() - }); - } res.end(body); } }); diff --git a/benchmark/http/simple.js b/benchmark/http/simple.js index 81b7cb5afb2614..6dc69a2d8f6e85 100644 --- a/benchmark/http/simple.js +++ b/benchmark/http/simple.js @@ -6,8 +6,9 @@ var bench = common.createBenchmark(main, { // unicode confuses ab on os x. type: ['bytes', 'buffer'], len: [4, 1024, 102400], - chunks: [0, 1, 4], // chunks=0 means 'no chunked encoding'. + chunks: [1, 4], c: [50, 500], + chunkedEnc: ['true', 'false'], res: ['normal', 'setHeader', 'setHeaderWH'] }); @@ -16,7 +17,8 @@ function main(conf) { var server = require('../fixtures/simple-http-server.js') .listen(process.env.PORT || common.PORT) .on('listening', function() { - var path = `/${conf.type}/${conf.len}/${conf.chunks}/${conf.res}`; + var path = + `/${conf.type}/${conf.len}/${conf.chunks}/${conf.res}/${conf.chunkedEnc}`; bench.http({ path: path, diff --git a/lib/_http_outgoing.js b/lib/_http_outgoing.js index 84aa57151f2182..b3706d5a9ef811 100644 --- a/lib/_http_outgoing.js +++ b/lib/_http_outgoing.js @@ -660,6 +660,11 @@ function write_(msg, chunk, encoding, callback, fromEnd) { // signal the user to keep writing. if (chunk.length === 0) return true; + if (!fromEnd && msg.connection && !msg.connection.corked) { + msg.connection.cork(); + process.nextTick(connectionCorkNT, msg.connection); + } + var len, ret; if (msg.chunkedEncoding) { if (typeof chunk === 'string') @@ -667,11 +672,6 @@ function write_(msg, chunk, encoding, callback, fromEnd) { else len = chunk.length; - if (msg.connection && !msg.connection.corked) { - msg.connection.cork(); - process.nextTick(connectionCorkNT, msg.connection); - } - msg._send(len.toString(16), 'latin1', null); msg._send(crlf_buf, null, null); msg._send(chunk, encoding, null); From 6512fd761476ddf0215f61db5f93a91184df08d0 Mon Sep 17 00:00:00 2001 From: Brian White Date: Tue, 30 May 2017 12:55:38 -0400 Subject: [PATCH 006/248] stream: improve Transform performance PR-URL: https://github.com/nodejs/node/pull/13322 Reviewed-By: James M Snell Reviewed-By: Matteo Collina --- benchmark/streams/transform-creation.js | 23 +++++++++ lib/_stream_transform.js | 67 +++++++++++-------------- 2 files changed, 53 insertions(+), 37 deletions(-) create mode 100644 benchmark/streams/transform-creation.js diff --git a/benchmark/streams/transform-creation.js b/benchmark/streams/transform-creation.js new file mode 100644 index 00000000000000..0bc383d9aad876 --- /dev/null +++ b/benchmark/streams/transform-creation.js @@ -0,0 +1,23 @@ +'use strict'; +var common = require('../common.js'); +var Transform = require('stream').Transform; +var inherits = require('util').inherits; + +var bench = common.createBenchmark(main, { + n: [1e6] +}); + +function MyTransform() { + Transform.call(this); +} +inherits(MyTransform, Transform); +MyTransform.prototype._transform = function() {}; + +function main(conf) { + var n = +conf.n; + + bench.start(); + for (var i = 0; i < n; ++i) + new MyTransform(); + bench.end(n); +} diff --git a/lib/_stream_transform.js b/lib/_stream_transform.js index 1aa423fffa75fe..f3e83e3a24cbeb 100644 --- a/lib/_stream_transform.js +++ b/lib/_stream_transform.js @@ -70,41 +70,29 @@ const util = require('util'); util.inherits(Transform, Duplex); -function TransformState(stream) { - this.afterTransform = function(er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; +function afterTransform(er, data) { + var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; if (!cb) { - return stream.emit('error', - new Error('write callback called multiple times')); + return this.emit('error', + new Error('write callback called multiple times')); } ts.writechunk = null; ts.writecb = null; - if (data !== null && data !== undefined) - stream.push(data); + if (data != null) // single equals check for both `null` and `undefined` + this.push(data); cb(er); - var rs = stream._readableState; + var rs = this._readableState; rs.reading = false; if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); + this._read(rs.highWaterMark); } } @@ -115,9 +103,14 @@ function Transform(options) { Duplex.call(this, options); - this._transformState = new TransformState(this); - - var stream = this; + this._transformState = { + afterTransform: afterTransform.bind(this), + needTransform: false, + transforming: false, + writecb: null, + writechunk: null, + writeencoding: null + }; // start out asking for a readable event once data is transformed. this._readableState.needReadable = true; @@ -136,14 +129,17 @@ function Transform(options) { } // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function() { - if (typeof this._flush === 'function') - this._flush(function(er, data) { - done(stream, er, data); - }); - else - done(stream); - }); + this.on('prefinish', prefinish); +} + +function prefinish() { + if (typeof this._flush === 'function') { + this._flush((er, data) => { + done(this, er, data); + }); + } else { + done(this, null, null); + } } Transform.prototype.push = function(chunk, encoding) { @@ -208,18 +204,15 @@ function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data !== null && data !== undefined) + if (data != null) // single equals check for both `null` and `undefined` stream.push(data); // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) + if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0'); - if (ts.transforming) + if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming'); return stream.push(null); From 3bb4ec80aec3ab9a5332f84035f33e774a927e4a Mon Sep 17 00:00:00 2001 From: Andreas Madsen Date: Wed, 14 Jun 2017 12:39:53 +0200 Subject: [PATCH 007/248] async_hooks: rename currentId and triggerId currentId is renamed to executionAsyncId triggerId is renamed to triggerAsyncId AsyncResource.triggerId is renamed to AsyncResource.triggerAsyncId AsyncHooksGetCurrentId is renamed to AsyncHooksGetExecutionAsyncId AsyncHooksGetTriggerId is renamed to AsyncHooksGetTriggerAsyncId PR-URL: https://github.com/nodejs/node/pull/13490 Reviewed-By: Refael Ackermann Reviewed-By: Anna Henningsen Reviewed-By: Trevor Norris --- doc/api/async_hooks.md | 105 +++++++++-------- doc/api/deprecations.md | 30 +++++ lib/async_hooks.js | 111 ++++++++++++------ lib/internal/process/next_tick.js | 18 +-- lib/timers.js | 8 +- src/async-wrap.cc | 16 ++- src/node.h | 48 ++++---- test/addons/async-resource/binding.cc | 3 +- test/addons/async-resource/test.js | 4 +- test/async-hooks/init-hooks.js | 6 +- test/async-hooks/test-callback-error.js | 15 +-- test/async-hooks/test-connection.ssl.js | 4 +- test/async-hooks/test-crypto-pbkdf2.js | 2 +- test/async-hooks/test-crypto-randomBytes.js | 2 +- ...r.api.async-resource.after-on-destroyed.js | 4 +- ....api.async-resource.before-on-destroyed.js | 4 +- ...edder.api.async-resource.improper-order.js | 4 +- ...dder.api.async-resource.improper-unwind.js | 4 +- .../test-embedder.api.async-resource.js | 20 ++-- test/async-hooks/test-emit-before-after.js | 8 +- test/async-hooks/test-emit-init.js | 10 +- test/async-hooks/test-enable-disable.js | 4 +- test/async-hooks/test-fseventwrap.js | 2 +- test/async-hooks/test-fsreqwrap-readFile.js | 2 +- test/async-hooks/test-getaddrinforeqwrap.js | 2 +- test/async-hooks/test-getnameinforeqwrap.js | 2 +- test/async-hooks/test-graph.connection.js | 7 +- test/async-hooks/test-graph.fsreq-readFile.js | 8 +- test/async-hooks/test-graph.intervals.js | 8 +- test/async-hooks/test-graph.pipe.js | 8 +- test/async-hooks/test-graph.pipeconnect.js | 11 +- test/async-hooks/test-graph.shutdown.js | 12 +- test/async-hooks/test-graph.signal.js | 28 ++--- test/async-hooks/test-graph.statwatcher.js | 4 +- test/async-hooks/test-graph.tcp.js | 10 +- test/async-hooks/test-graph.timeouts.js | 12 +- test/async-hooks/test-graph.tls-write.js | 28 ++--- test/async-hooks/test-httpparser.request.js | 2 +- test/async-hooks/test-httpparser.response.js | 2 +- test/async-hooks/test-immediate.js | 4 +- test/async-hooks/test-pipeconnectwrap.js | 4 +- test/async-hooks/test-pipewrap.js | 6 +- test/async-hooks/test-promise.js | 4 +- .../test-promise.promise-before-init-hooks.js | 2 +- test/async-hooks/test-querywrap.js | 2 +- test/async-hooks/test-shutdownwrap.js | 2 +- test/async-hooks/test-signalwrap.js | 4 +- test/async-hooks/test-statwatcher.js | 4 +- test/async-hooks/test-tcpwrap.js | 8 +- .../async-hooks/test-timerwrap.setInterval.js | 2 +- test/async-hooks/test-timerwrap.setTimeout.js | 4 +- test/async-hooks/test-tlswrap.js | 4 +- test/async-hooks/test-ttywrap.readstream.js | 2 +- test/async-hooks/test-ttywrap.writestream.js | 2 +- test/async-hooks/test-udpsendwrap.js | 2 +- test/async-hooks/test-udpwrap.js | 2 +- test/async-hooks/test-writewrap.js | 2 +- .../test-zlib.zlib-binding.deflate.js | 2 +- test/async-hooks/verify-graph.js | 22 ++-- .../test-async-hooks-close-during-destroy.js | 2 +- .../test-async-hooks-run-in-async-id-scope.js | 4 +- ...st-async-hooks-top-level-clearimmediate.js | 4 +- ...st-async-wrap-asyncresource-constructor.js | 4 +- test/parallel/test-async-wrap-trigger-id.js | 22 ++-- .../test-async-wrap-uncaughtexception.js | 4 +- 65 files changed, 395 insertions(+), 307 deletions(-) diff --git a/doc/api/async_hooks.md b/doc/api/async_hooks.md index dd1eef22a96bd5..f6cd1c4bf8b99c 100644 --- a/doc/api/async_hooks.md +++ b/doc/api/async_hooks.md @@ -29,11 +29,11 @@ Following is a simple overview of the public API. const async_hooks = require('async_hooks'); // Return the ID of the current execution context. -const cid = async_hooks.currentId(); +const eid = async_hooks.executionAsyncId(); // Return the ID of the handle responsible for triggering the callback of the // current execution scope to call. -const tid = async_hooks.triggerId(); +const tid = async_hooks.triggerAsyncId(); // Create a new AsyncHook instance. All of these callbacks are optional. const asyncHook = async_hooks.createHook({ init, before, after, destroy }); @@ -53,7 +53,7 @@ asyncHook.disable(); // init is called during object construction. The resource may not have // completed construction when this callback runs, therefore all fields of the // resource referenced by "asyncId" may not have been populated. -function init(asyncId, type, triggerId, resource) { } +function init(asyncId, type, triggerAsyncId, resource) { } // before is called just before the resource's callback is called. It can be // called 0-N times for handles (e.g. TCPWrap), and will be called exactly 1 @@ -163,11 +163,11 @@ Key events in the lifetime of asynchronous events have been categorized into four areas: instantiation, before/after the callback is called, and when the instance is destructed. -##### `init(asyncId, type, triggerId, resource)` +##### `init(asyncId, type, triggerAsyncId, resource)` * `asyncId` {number} a unique ID for the async resource * `type` {string} the type of the async resource -* `triggerId` {number} the unique ID of the async resource in whose +* `triggerAsyncId` {number} the unique ID of the async resource in whose execution context this async resource was created * `resource` {Object} reference to the resource representing the async operation, needs to be released during _destroy_ @@ -214,20 +214,20 @@ when listening to the hooks. ###### `triggerId` -`triggerId` is the `asyncId` of the resource that caused (or "triggered") the +`triggerAsyncId` is the `asyncId` of the resource that caused (or "triggered") the new resource to initialize and that caused `init` to call. This is different -from `async_hooks.currentId()` that only shows *when* a resource was created, -while `triggerId` shows *why* a resource was created. +from `async_hooks.executionAsyncId()` that only shows *when* a resource was +created, while `triggerAsyncId` shows *why* a resource was created. -The following is a simple demonstration of `triggerId`: +The following is a simple demonstration of `triggerAsyncId`: ```js async_hooks.createHook({ - init(asyncId, type, triggerId) { - const cId = async_hooks.currentId(); + init(asyncId, type, triggerAsyncId) { + const eid = async_hooks.executionAsyncId(); fs.writeSync( - 1, `${type}(${asyncId}): trigger: ${triggerId} scope: ${cId}\n`); + 1, `${type}(${asyncId}): trigger: ${triggerAsyncId} execution: ${eid}\n`); } }).enable(); @@ -237,18 +237,18 @@ require('net').createServer((conn) => {}).listen(8080); Output when hitting the server with `nc localhost 8080`: ``` -TCPWRAP(2): trigger: 1 scope: 1 -TCPWRAP(4): trigger: 2 scope: 0 +TCPWRAP(2): trigger: 1 execution: 1 +TCPWRAP(4): trigger: 2 execution: 0 ``` The first `TCPWRAP` is the server which receives the connections. The second `TCPWRAP` is the new connection from the client. When a new connection is made the `TCPWrap` instance is immediately constructed. This -happens outside of any JavaScript stack (side note: a `currentId()` of `0` +happens outside of any JavaScript stack (side note: a `executionAsyncId()` of `0` means it's being executed from C++, with no JavaScript stack above it). With only that information it would be impossible to link resources together in -terms of what caused them to be created, so `triggerId` is given the task of +terms of what caused them to be created, so `triggerAsyncId` is given the task of propagating what resource is responsible for the new resource's existence. ###### `resource` @@ -280,12 +280,13 @@ elaborate to make calling context easier to see. ```js let indent = 0; async_hooks.createHook({ - init(asyncId, type, triggerId) { - const cId = async_hooks.currentId(); + init(asyncId, type, triggerAsyncId) { + const eid = async_hooks.executionAsyncId(); const indentStr = ' '.repeat(indent); fs.writeSync( 1, - `${indentStr}${type}(${asyncId}): trigger: ${triggerId} scope: ${cId}\n`); + `${indentStr}${type}(${asyncId}):` + + ` trigger: ${triggerAsyncId} execution: ${eid}\n`); }, before(asyncId) { const indentStr = ' '.repeat(indent); @@ -306,7 +307,7 @@ async_hooks.createHook({ require('net').createServer(() => {}).listen(8080, () => { // Let's wait 10ms before logging the server started. setTimeout(() => { - console.log('>>>', async_hooks.currentId()); + console.log('>>>', async_hooks.executionAsyncId()); }, 10); }); ``` @@ -314,20 +315,20 @@ require('net').createServer(() => {}).listen(8080, () => { Output from only starting the server: ``` -TCPWRAP(2): trigger: 1 scope: 1 -TickObject(3): trigger: 2 scope: 1 +TCPWRAP(2): trigger: 1 execution: 1 +TickObject(3): trigger: 2 execution: 1 before: 3 - Timeout(4): trigger: 3 scope: 3 - TIMERWRAP(5): trigger: 3 scope: 3 + Timeout(4): trigger: 3 execution: 3 + TIMERWRAP(5): trigger: 3 execution: 3 after: 3 destroy: 3 before: 5 before: 4 - TTYWRAP(6): trigger: 4 scope: 4 - SIGNALWRAP(7): trigger: 4 scope: 4 - TTYWRAP(8): trigger: 4 scope: 4 + TTYWRAP(6): trigger: 4 execution: 4 + SIGNALWRAP(7): trigger: 4 execution: 4 + TTYWRAP(8): trigger: 4 execution: 4 >>> 4 - TickObject(9): trigger: 4 scope: 4 + TickObject(9): trigger: 4 execution: 4 after: 4 after: 5 before: 9 @@ -337,11 +338,11 @@ destroy: 9 destroy: 5 ``` -*Note*: As illustrated in the example, `currentId()` and `scope` each specify -the value of the current execution context; which is delineated by calls to -`before` and `after`. +*Note*: As illustrated in the example, `executionAsyncId()` and `execution` +each specify the value of the current execution context; which is delineated by +calls to `before` and `after`. -Only using `scope` to graph resource allocation results in the following: +Only using `execution` to graph resource allocation results in the following: ``` TTYWRAP(6) -> Timeout(4) -> TIMERWRAP(5) -> TickObject(3) -> root(1) @@ -353,7 +354,7 @@ hostname is actually synchronous, but to maintain a completely asynchronous API the user's callback is placed in a `process.nextTick()`. The graph only shows *when* a resource was created, not *why*, so to track -the *why* use `triggerId`. +the *why* use `triggerAsyncId`. ##### `before(asyncId)` @@ -396,7 +397,7 @@ the `resource` object passed to `init` it's possible that `destroy` is never called, causing a memory leak in the application. Of course if the resource doesn't depend on GC then this isn't an issue. -#### `async_hooks.currentId()` +#### `async_hooks.executionAsyncId()` * Returns {number} the `asyncId` of the current execution context. Useful to track when something calls. @@ -404,14 +405,14 @@ the resource doesn't depend on GC then this isn't an issue. For example: ```js -console.log(async_hooks.currentId()); // 1 - bootstrap +console.log(async_hooks.executionAsyncId()); // 1 - bootstrap fs.open(path, 'r', (err, fd) => { - console.log(async_hooks.currentId()); // 6 - open() + console.log(async_hooks.executionAsyncId()); // 6 - open() }); ``` -It is important to note that the ID returned fom `currentId()` is related to -execution timing, not causality (which is covered by `triggerId()`). For +It is important to note that the ID returned fom `executionAsyncId()` is related +to execution timing, not causality (which is covered by `triggerAsyncId()`). For example: ```js @@ -419,16 +420,16 @@ const server = net.createServer(function onConnection(conn) { // Returns the ID of the server, not of the new connection, because the // onConnection callback runs in the execution scope of the server's // MakeCallback(). - async_hooks.currentId(); + async_hooks.executionAsyncId(); }).listen(port, function onListening() { // Returns the ID of a TickObject (i.e. process.nextTick()) because all // callbacks passed to .listen() are wrapped in a nextTick(). - async_hooks.currentId(); + async_hooks.executionAsyncId(); }); ``` -#### `async_hooks.triggerId()` +#### `async_hooks.triggerAsyncId()` * Returns {number} the ID of the resource responsible for calling the callback that is currently being executed. @@ -438,15 +439,15 @@ For example: ```js const server = net.createServer((conn) => { // The resource that caused (or triggered) this callback to be called - // was that of the new connection. Thus the return value of triggerId() + // was that of the new connection. Thus the return value of triggerAsyncId() // is the asyncId of "conn". - async_hooks.triggerId(); + async_hooks.triggerAsyncId(); }).listen(port, () => { // Even though all callbacks passed to .listen() are wrapped in a nextTick() // the callback itself exists because the call to the server's .listen() // was made. So the return value would be the ID of the server. - async_hooks.triggerId(); + async_hooks.triggerAsyncId(); }); ``` @@ -475,9 +476,9 @@ The following is an overview of the `AsyncResource` API. const { AsyncResource } = require('async_hooks'); // AsyncResource() is meant to be extended. Instantiating a -// new AsyncResource() also triggers init. If triggerId is omitted then -// async_hook.currentId() is used. -const asyncResource = new AsyncResource(type, triggerId); +// new AsyncResource() also triggers init. If triggerAsyncId is omitted then +// async_hook.executionAsyncId() is used. +const asyncResource = new AsyncResource(type, triggerAsyncId); // Call AsyncHooks before callbacks. asyncResource.emitBefore(); @@ -492,14 +493,14 @@ asyncResource.emitDestroy(); asyncResource.asyncId(); // Return the trigger ID for the AsyncResource instance. -asyncResource.triggerId(); +asyncResource.triggerAsyncId(); ``` -#### `AsyncResource(type[, triggerId])` +#### `AsyncResource(type[, triggerAsyncId])` * arguments * `type` {string} the type of ascyc event - * `triggerId` {number} the ID of the execution context that created this async + * `triggerAsyncId` {number} the ID of the execution context that created this async event Example usage: @@ -558,9 +559,9 @@ never be called. * Returns {number} the unique `asyncId` assigned to the resource. -#### `asyncResource.triggerId()` +#### `asyncResource.triggerAsyncId()` -* Returns {number} the same `triggerId` that is passed to the `AsyncResource` +* Returns {number} the same `triggerAsyncId` that is passed to the `AsyncResource` constructor. [`Hook Callbacks`]: #hook-callbacks diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 1b5a509107c8af..d06e70a10c9e30 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -600,6 +600,36 @@ The DebugContext will be removed in V8 soon and will not be available in Node *Note*: DebugContext was an experimental API. + +### DEP0070: async_hooks.currentId() + +Type: Runtime + +`async_hooks.currentId()` was renamed to `async_hooks.executionAsyncId()` for +clarity. + +*Note*: change was made while `async_hooks` was an experimental API. + + +### DEP0071: async_hooks.triggerId() + +Type: Runtime + +`async_hooks.triggerId()` was renamed to `async_hooks.triggerAsyncId()` for +clarity. + +*Note*: change was made while `async_hooks` was an experimental API. + + +### DEP0072: async_hooks.AsyncResource.triggerId() + +Type: Runtime + +`async_hooks.AsyncResource.triggerId()` was renamed to +`async_hooks.AsyncResource.triggerAsyncId()` for clarity. + +*Note*: change was made while `async_hooks` was an experimental API. + [`Buffer.allocUnsafeSlow(size)`]: buffer.html#buffer_class_method_buffer_allocunsafeslow_size [`Buffer.from(array)`]: buffer.html#buffer_class_method_buffer_from_array [`Buffer.from(buffer)`]: buffer.html#buffer_class_method_buffer_from_buffer diff --git a/lib/async_hooks.js b/lib/async_hooks.js index 53ce0382348042..e1029c97a57eec 100644 --- a/lib/async_hooks.js +++ b/lib/async_hooks.js @@ -1,5 +1,6 @@ 'use strict'; +const internalUtil = require('internal/util'); const async_wrap = process.binding('async_wrap'); /* Both these arrays are used to communicate between JS and C++ with as little * overhead as possible. @@ -191,12 +192,12 @@ function createHook(fns) { } -function currentId() { +function executionAsyncId() { return async_uid_fields[kCurrentAsyncId]; } -function triggerId() { +function triggerAsyncId() { return async_uid_fields[kCurrentTriggerId]; } @@ -204,28 +205,28 @@ function triggerId() { // Embedder API // class AsyncResource { - constructor(type, triggerId) { + constructor(type, triggerAsyncId) { this[async_id_symbol] = ++async_uid_fields[kAsyncUidCntr]; // Read and reset the current kInitTriggerId so that when the constructor // finishes the kInitTriggerId field is always 0. - if (triggerId === undefined) { - triggerId = initTriggerId(); - // If a triggerId was passed, any kInitTriggerId still must be null'd. + if (triggerAsyncId === undefined) { + triggerAsyncId = initTriggerId(); + // If a triggerAsyncId was passed, any kInitTriggerId still must be null'd. } else { async_uid_fields[kInitTriggerId] = 0; } - this[trigger_id_symbol] = triggerId; + this[trigger_id_symbol] = triggerAsyncId; if (typeof type !== 'string' || type.length <= 0) throw new TypeError('type must be a string with length > 0'); - if (!Number.isSafeInteger(triggerId) || triggerId < 0) - throw new RangeError('triggerId must be an unsigned integer'); + if (!Number.isSafeInteger(triggerAsyncId) || triggerAsyncId < 0) + throw new RangeError('triggerAsyncId must be an unsigned integer'); // Return immediately if there's nothing to do. if (async_hook_fields[kInit] === 0) return; - init(this[async_id_symbol], type, triggerId, this); + init(this[async_id_symbol], type, triggerAsyncId, this); } emitBefore() { @@ -247,16 +248,27 @@ class AsyncResource { return this[async_id_symbol]; } - triggerId() { + triggerAsyncId() { return this[trigger_id_symbol]; } } +// triggerId was renamed to triggerAsyncId. This was in 8.2.0 during the +// experimental stage so the alias can be removed at any time, we are just +// being nice :) +Object.defineProperty(AsyncResource.prototype, 'triggerId', { + get: internalUtil.deprecate(function() { + return AsyncResource.prototype.triggerAsyncId; + }, 'AsyncResource.triggerId is deprecated. ' + + 'Use AsyncResource.triggerAsyncId instead.', 'DEP0072') +}); + + function runInAsyncIdScope(asyncId, cb) { // Store the async id now to make sure the stack is still good when the ids // are popped off the stack. - const prevId = currentId(); + const prevId = executionAsyncId(); pushAsyncIds(asyncId, prevId); try { cb(); @@ -276,8 +288,8 @@ function newUid() { } -// Return the triggerId meant for the constructor calling it. It's up to the -// user to safeguard this call and make sure it's zero'd out when the +// Return the triggerAsyncId meant for the constructor calling it. It's up to +// the user to safeguard this call and make sure it's zero'd out when the // constructor is complete. function initTriggerId() { var tId = async_uid_fields[kInitTriggerId]; @@ -290,14 +302,14 @@ function initTriggerId() { } -function setInitTriggerId(triggerId) { - // CHECK(Number.isSafeInteger(triggerId)) - // CHECK(triggerId > 0) - async_uid_fields[kInitTriggerId] = triggerId; +function setInitTriggerId(triggerAsyncId) { + // CHECK(Number.isSafeInteger(triggerAsyncId)) + // CHECK(triggerAsyncId > 0) + async_uid_fields[kInitTriggerId] = triggerAsyncId; } -function emitInitS(asyncId, type, triggerId, resource) { +function emitInitS(asyncId, type, triggerAsyncId, resource) { // Short circuit all checks for the common case. Which is that no hooks have // been set. Do this to remove performance impact for embedders (and core). // Even though it bypasses all the argument checks. The performance savings @@ -307,10 +319,10 @@ function emitInitS(asyncId, type, triggerId, resource) { // This can run after the early return check b/c running this function // manually means that the embedder must have used initTriggerId(). - if (!Number.isSafeInteger(triggerId)) { - if (triggerId !== undefined) - resource = triggerId; - triggerId = initTriggerId(); + if (!Number.isSafeInteger(triggerAsyncId)) { + if (triggerAsyncId !== undefined) + resource = triggerAsyncId; + triggerAsyncId = initTriggerId(); } // I'd prefer allowing these checks to not exist, or only throw in a debug @@ -319,10 +331,10 @@ function emitInitS(asyncId, type, triggerId, resource) { throw new RangeError('asyncId must be an unsigned integer'); if (typeof type !== 'string' || type.length <= 0) throw new TypeError('type must be a string with length > 0'); - if (!Number.isSafeInteger(triggerId) || triggerId < 0) - throw new RangeError('triggerId must be an unsigned integer'); + if (!Number.isSafeInteger(triggerAsyncId) || triggerAsyncId < 0) + throw new RangeError('triggerAsyncId must be an unsigned integer'); - init(asyncId, type, triggerId, resource); + init(asyncId, type, triggerAsyncId, resource); // Isn't null if hooks were added/removed while the hooks were running. if (tmp_active_hooks_array !== null) { @@ -351,19 +363,19 @@ function emitBeforeN(asyncId) { } -// Usage: emitBeforeS(asyncId[, triggerId]). If triggerId is omitted then -// asyncId will be used instead. -function emitBeforeS(asyncId, triggerId = asyncId) { +// Usage: emitBeforeS(asyncId[, triggerAsyncId]). If triggerAsyncId is omitted +// then asyncId will be used instead. +function emitBeforeS(asyncId, triggerAsyncId = asyncId) { // CHECK(Number.isSafeInteger(asyncId) && asyncId > 0) - // CHECK(Number.isSafeInteger(triggerId) && triggerId > 0) + // CHECK(Number.isSafeInteger(triggerAsyncId) && triggerAsyncId > 0) // Validate the ids. - if (asyncId < 0 || triggerId < 0) { - fatalError('before(): asyncId or triggerId is less than zero ' + - `(asyncId: ${asyncId}, triggerId: ${triggerId})`); + if (asyncId < 0 || triggerAsyncId < 0) { + fatalError('before(): asyncId or triggerAsyncId is less than zero ' + + `(asyncId: ${asyncId}, triggerAsyncId: ${triggerAsyncId})`); } - pushAsyncIds(asyncId, triggerId); + pushAsyncIds(asyncId, triggerAsyncId); if (async_hook_fields[kBefore] === 0) return; @@ -446,13 +458,16 @@ function emitDestroyN(asyncId) { // change in the future depending on whether it can be determined if there's a // slim chance of the application remaining stable after handling one of these // exceptions. -function init(asyncId, type, triggerId, resource) { +function init(asyncId, type, triggerAsyncId, resource) { processing_hook = true; // Use a single try/catch for all hook to avoid setting up one per iteration. try { for (var i = 0; i < active_hooks_array.length; i++) { if (typeof active_hooks_array[i][init_symbol] === 'function') { - active_hooks_array[i][init_symbol](asyncId, type, triggerId, resource); + active_hooks_array[i][init_symbol]( + asyncId, type, triggerAsyncId, + resource + ); } } } catch (e) { @@ -467,8 +482,8 @@ function init(asyncId, type, triggerId, resource) { module.exports = { // Public API createHook, - currentId, - triggerId, + executionAsyncId, + triggerAsyncId, // Embedder API AsyncResource, runInAsyncIdScope, @@ -481,3 +496,23 @@ module.exports = { emitAfter: emitAfterS, emitDestroy: emitDestroyS, }; + +// currentId was renamed to executionAsyncId. This was in 8.2.0 during the +// experimental stage so the alias can be removed at any time, we are just +// being nice :) +Object.defineProperty(module.exports, 'currentId', { + get: internalUtil.deprecate(function() { + return executionAsyncId; + }, 'async_hooks.currentId is deprecated. ' + + 'Use async_hooks.executionAsyncId instead.', 'DEP0070') +}); + +// triggerId was renamed to triggerAsyncId. This was in 8.2.0 during the +// experimental stage so the alias can be removed at any time, we are just +// being nice :) +Object.defineProperty(module.exports, 'triggerId', { + get: internalUtil.deprecate(function() { + return triggerAsyncId; + }, 'async_hooks.triggerId is deprecated. ' + + 'Use async_hooks.triggerAsyncId instead.', 'DEP0071') +}); diff --git a/lib/internal/process/next_tick.js b/lib/internal/process/next_tick.js index 0ba26ce033e6ff..61756f603cd0e6 100644 --- a/lib/internal/process/next_tick.js +++ b/lib/internal/process/next_tick.js @@ -114,11 +114,11 @@ function setupNextTick() { // is much slower here than was the Float64Array stack used in a previous // implementation. Problem is the Float64Array stack was a bit brittle. // Investigate how to harden that implementation and possibly reintroduce it. - function nextTickEmitBefore(asyncId, triggerId) { + function nextTickEmitBefore(asyncId, triggerAsyncId) { if (async_hook_fields[kBefore] > 0) - emitBefore(asyncId, triggerId); + emitBefore(asyncId, triggerAsyncId); else - pushAsyncIds(asyncId, triggerId); + pushAsyncIds(asyncId, triggerAsyncId); } function nextTickEmitAfter(asyncId) { @@ -218,9 +218,9 @@ function setupNextTick() { this[trigger_id_symbol] = -1; } - function setupInit(tickObject, triggerId) { + function setupInit(tickObject, triggerAsyncId) { tickObject[async_id_symbol] = ++async_uid_fields[kAsyncUidCntr]; - tickObject[trigger_id_symbol] = triggerId || initTriggerId(); + tickObject[trigger_id_symbol] = triggerAsyncId || initTriggerId(); if (async_hook_fields[kInit] > 0) { emitInit(tickObject[async_id_symbol], 'TickObject', @@ -249,11 +249,11 @@ function setupNextTick() { tickInfo[kLength]++; } - function internalNextTick(triggerId, callback) { + function internalNextTick(triggerAsyncId, callback) { if (typeof callback !== 'function') throw new TypeError('callback is not a function'); - // CHECK(Number.isSafeInteger(triggerId) || triggerId === null) - // CHECK(triggerId > 0 || triggerId === null) + // CHECK(Number.isSafeInteger(triggerAsyncId) || triggerAsyncId === null) + // CHECK(triggerAsyncId > 0 || triggerAsyncId === null) if (process._exiting) return; @@ -266,7 +266,7 @@ function setupNextTick() { } var obj = new TickObject(callback, args, process.domain || null); - setupInit(obj, triggerId); + setupInit(obj, triggerAsyncId); // The call to initTriggerId() was skipped, so clear kInitTriggerId. async_uid_fields[kInitTriggerId] = 0; nextTickQueue.push(obj); diff --git a/lib/timers.js b/lib/timers.js index dd650d3c9acd56..13c55322ec628a 100644 --- a/lib/timers.js +++ b/lib/timers.js @@ -43,7 +43,7 @@ const { kInit, kBefore, kAfter, kDestroy, kAsyncUidCntr } = async_wrap.constants; // Symbols for storing async id state. const async_id_symbol = Symbol('asyncId'); -const trigger_id_symbol = Symbol('triggerId'); +const trigger_id_symbol = Symbol('triggerAsyncId'); // Timeout values > TIMEOUT_MAX are set to 1. const TIMEOUT_MAX = 2147483647; // 2^31-1 @@ -149,11 +149,11 @@ exports._unrefActive = function(item) { }; -function timerEmitBefore(asyncId, triggerId) { +function timerEmitBefore(asyncId, triggerAsyncId) { if (async_hook_fields[kBefore] > 0) - emitBefore(asyncId, triggerId); + emitBefore(asyncId, triggerAsyncId); else - pushAsyncIds(asyncId, triggerId); + pushAsyncIds(asyncId, triggerAsyncId); } diff --git a/src/async-wrap.cc b/src/async-wrap.cc index d7cdc4198c944b..4d357f2f41b7ef 100644 --- a/src/async-wrap.cc +++ b/src/async-wrap.cc @@ -350,11 +350,11 @@ static void PromiseHook(PromiseHookType type, Local promise, bool silent = type != PromiseHookType::kInit; PromiseWrap* parent_wrap = nullptr; - // set parent promise's async Id as this promise's triggerId + // set parent promise's async Id as this promise's triggerAsyncId if (parent->IsPromise()) { // parent promise exists, current promise // is a chained promise, so we set parent promise's id as - // current promise's triggerId + // current promise's triggerAsyncId Local parent_promise = parent.As(); Local parent_resource = parent_promise->GetInternalField(0); if (parent_resource->IsObject()) { @@ -731,15 +731,23 @@ Local AsyncWrap::MakeCallback(const Local cb, /* Public C++ embedder API */ -async_uid AsyncHooksGetCurrentId(Isolate* isolate) { +async_uid AsyncHooksGetExecutionAsyncId(Isolate* isolate) { return Environment::GetCurrent(isolate)->current_async_id(); } +async_uid AsyncHooksGetCurrentId(Isolate* isolate) { + return AsyncHooksGetExecutionAsyncId(isolate); +} -async_uid AsyncHooksGetTriggerId(Isolate* isolate) { + +async_uid AsyncHooksGetTriggerAsyncId(Isolate* isolate) { return Environment::GetCurrent(isolate)->get_init_trigger_id(); } +async_uid AsyncHooksGetTriggerId(Isolate* isolate) { + return AsyncHooksGetTriggerAsyncId(isolate); +} + async_uid EmitAsyncInit(Isolate* isolate, Local resource, diff --git a/src/node.h b/src/node.h index 65f6852a4822cd..9e4edd06277b1e 100644 --- a/src/node.h +++ b/src/node.h @@ -528,22 +528,30 @@ NODE_EXTERN void AddPromiseHook(v8::Isolate* isolate, /* Returns the id of the current execution context. If the return value is * zero then no execution has been set. This will happen if the user handles * I/O from native code. */ -NODE_EXTERN async_uid AsyncHooksGetCurrentId(v8::Isolate* isolate); +NODE_EXTERN async_uid AsyncHooksGetExecutionAsyncId(v8::Isolate* isolate); +/* legacy alias */ +NODE_EXTERN NODE_DEPRECATED("Use AsyncHooksGetExecutionAsyncId(isolate)", + async_uid AsyncHooksGetCurrentId(v8::Isolate* isolate)); + + +/* Return same value as async_hooks.triggerAsyncId(); */ +NODE_EXTERN async_uid AsyncHooksGetTriggerAsyncId(v8::Isolate* isolate); +/* legacy alias */ +NODE_EXTERN NODE_DEPRECATED("Use AsyncHooksGetTriggerAsyncId(isolate)", + async_uid AsyncHooksGetTriggerId(v8::Isolate* isolate)); -/* Return same value as async_hooks.triggerId(); */ -NODE_EXTERN async_uid AsyncHooksGetTriggerId(v8::Isolate* isolate); /* If the native API doesn't inherit from the helper class then the callbacks * must be triggered manually. This triggers the init() callback. The return * value is the uid assigned to the resource. * - * The `trigger_id` parameter should correspond to the resource which is + * The `trigger_async_id` parameter should correspond to the resource which is * creating the new resource, which will usually be the return value of - * `AsyncHooksGetTriggerId()`. */ + * `AsyncHooksGetTriggerAsyncId()`. */ NODE_EXTERN async_uid EmitAsyncInit(v8::Isolate* isolate, v8::Local resource, const char* name, - async_uid trigger_id); + async_uid trigger_async_id); /* Emit the destroy() callback. */ NODE_EXTERN void EmitAsyncDestroy(v8::Isolate* isolate, async_uid id); @@ -554,8 +562,8 @@ NODE_EXTERN void EmitAsyncDestroy(v8::Isolate* isolate, async_uid id); * These methods may create handles on their own, so run them inside a * HandleScope. * - * `asyncId` and `triggerId` should correspond to the values returned by - * `EmitAsyncInit()` and `AsyncHooksGetTriggerId()`, respectively, when the + * `asyncId` and `triggerAsyncId` should correspond to the values returned by + * `EmitAsyncInit()` and `AsyncHooksGetTriggerAsyncId()`, respectively, when the * invoking resource was created. If these values are unknown, 0 can be passed. * */ NODE_EXTERN @@ -565,7 +573,7 @@ v8::MaybeLocal MakeCallback(v8::Isolate* isolate, int argc, v8::Local* argv, async_uid asyncId, - async_uid triggerId); + async_uid triggerAsyncId); NODE_EXTERN v8::MaybeLocal MakeCallback(v8::Isolate* isolate, v8::Local recv, @@ -573,7 +581,7 @@ v8::MaybeLocal MakeCallback(v8::Isolate* isolate, int argc, v8::Local* argv, async_uid asyncId, - async_uid triggerId); + async_uid triggerAsyncId); NODE_EXTERN v8::MaybeLocal MakeCallback(v8::Isolate* isolate, v8::Local recv, @@ -581,7 +589,7 @@ v8::MaybeLocal MakeCallback(v8::Isolate* isolate, int argc, v8::Local* argv, async_uid asyncId, - async_uid triggerId); + async_uid triggerAsyncId); /* Helper class users can optionally inherit from. If * `AsyncResource::MakeCallback()` is used, then all four callbacks will be @@ -591,14 +599,14 @@ class AsyncResource { AsyncResource(v8::Isolate* isolate, v8::Local resource, const char* name, - async_uid trigger_id = -1) + async_uid trigger_async_id = -1) : isolate_(isolate), resource_(isolate, resource), - trigger_id_(trigger_id) { - if (trigger_id_ == -1) - trigger_id_ = AsyncHooksGetTriggerId(isolate); + trigger_async_id_(trigger_async_id) { + if (trigger_async_id_ == -1) + trigger_async_id_ = AsyncHooksGetTriggerAsyncId(isolate); - uid_ = EmitAsyncInit(isolate, resource, name, trigger_id_); + uid_ = EmitAsyncInit(isolate, resource, name, trigger_async_id_); } ~AsyncResource() { @@ -611,7 +619,7 @@ class AsyncResource { v8::Local* argv) { return node::MakeCallback(isolate_, get_resource(), callback, argc, argv, - uid_, trigger_id_); + uid_, trigger_async_id_); } v8::MaybeLocal MakeCallback( @@ -620,7 +628,7 @@ class AsyncResource { v8::Local* argv) { return node::MakeCallback(isolate_, get_resource(), method, argc, argv, - uid_, trigger_id_); + uid_, trigger_async_id_); } v8::MaybeLocal MakeCallback( @@ -629,7 +637,7 @@ class AsyncResource { v8::Local* argv) { return node::MakeCallback(isolate_, get_resource(), symbol, argc, argv, - uid_, trigger_id_); + uid_, trigger_async_id_); } v8::Local get_resource() { @@ -643,7 +651,7 @@ class AsyncResource { v8::Isolate* isolate_; v8::Persistent resource_; async_uid uid_; - async_uid trigger_id_; + async_uid trigger_async_id_; }; } // namespace node diff --git a/test/addons/async-resource/binding.cc b/test/addons/async-resource/binding.cc index 093adfcba6aca0..372f7a6fa464ed 100644 --- a/test/addons/async-resource/binding.cc +++ b/test/addons/async-resource/binding.cc @@ -93,7 +93,8 @@ void GetResource(const FunctionCallbackInfo& args) { } void GetCurrentId(const FunctionCallbackInfo& args) { - args.GetReturnValue().Set(node::AsyncHooksGetCurrentId(args.GetIsolate())); + args.GetReturnValue().Set( + node::AsyncHooksGetExecutionAsyncId(args.GetIsolate())); } void Initialize(Local exports) { diff --git a/test/addons/async-resource/test.js b/test/addons/async-resource/test.js index 34017750ce500e..b52db61a95c1ba 100644 --- a/test/addons/async-resource/test.js +++ b/test/addons/async-resource/test.js @@ -14,13 +14,13 @@ let after = 0; let destroy = 0; async_hooks.createHook({ - init(id, type, triggerId, resource) { + init(id, type, triggerAsyncId, resource) { assert.strictEqual(typeof id, 'number'); assert.strictEqual(typeof resource, 'object'); assert(id > 1); if (type === 'foobär') { assert.strictEqual(resource.kObjectTag, kObjectTag); - assert.strictEqual(triggerId, expectedTriggerId); + assert.strictEqual(triggerAsyncId, expectedTriggerId); bindingUids.push(id); } }, diff --git a/test/async-hooks/init-hooks.js b/test/async-hooks/init-hooks.js index 90758e5335d508..69656fdb2c4255 100644 --- a/test/async-hooks/init-hooks.js +++ b/test/async-hooks/init-hooks.js @@ -162,12 +162,12 @@ class ActivityCollector { return h; } - _init(uid, type, triggerId, handle) { - const activity = { uid, type, triggerId }; + _init(uid, type, triggerAsyncId, handle) { + const activity = { uid, type, triggerAsyncId }; this._stamp(activity, 'init'); this._activities.set(uid, activity); this._maybeLog(uid, type, 'init'); - this.oninit(uid, type, triggerId, handle); + this.oninit(uid, type, triggerAsyncId, handle); } _before(uid) { diff --git a/test/async-hooks/test-callback-error.js b/test/async-hooks/test-callback-error.js index 6b09e4bb49748d..6b7ab7d0ea4734 100644 --- a/test/async-hooks/test-callback-error.js +++ b/test/async-hooks/test-callback-error.js @@ -12,25 +12,26 @@ switch (process.argv[2]) { oninit: common.mustCall(() => { throw new Error('test_init_callback'); }) }).enable(); - async_hooks.emitInit(async_hooks.currentId(), 'test_init_callback_type', - async_hooks.triggerId()); + async_hooks.emitInit(async_hooks.executionAsyncId(), + 'test_init_callback_type', + async_hooks.triggerAsyncId()); break; case 'test_callback': initHooks({ onbefore: common.mustCall(() => { throw new Error('test_callback'); }) }).enable(); - async_hooks.emitInit(async_hooks.currentId(), 'test_callback_type', - async_hooks.triggerId()); - async_hooks.emitBefore(async_hooks.currentId()); + async_hooks.emitInit(async_hooks.executionAsyncId(), 'test_callback_type', + async_hooks.triggerAsyncId()); + async_hooks.emitBefore(async_hooks.executionAsyncId()); break; case 'test_callback_abort': initHooks({ oninit: common.mustCall(() => { throw new Error('test_callback_abort'); }) }).enable(); - async_hooks.emitInit(async_hooks.currentId(), 'test_callback_abort', - async_hooks.triggerId()); + async_hooks.emitInit(async_hooks.executionAsyncId(), 'test_callback_abort', + async_hooks.triggerAsyncId()); break; } diff --git a/test/async-hooks/test-connection.ssl.js b/test/async-hooks/test-connection.ssl.js index d331ee1d0c4463..ac3e069fb8a21d 100644 --- a/test/async-hooks/test-connection.ssl.js +++ b/test/async-hooks/test-connection.ssl.js @@ -42,7 +42,7 @@ assert.strictEqual(as.length, 1); const f1 = as[0]; assert.strictEqual(f1.type, 'SSLCONNECTION'); assert.strictEqual(typeof f1.uid, 'number'); -assert.strictEqual(typeof f1.triggerId, 'number'); +assert.strictEqual(typeof f1.triggerAsyncId, 'number'); checkInvocations(f1, { init: 1 }, 'first connection, when first created'); // creating second server connection @@ -53,7 +53,7 @@ assert.strictEqual(as.length, 2); const f2 = as[1]; assert.strictEqual(f2.type, 'SSLCONNECTION'); assert.strictEqual(typeof f2.uid, 'number'); -assert.strictEqual(typeof f2.triggerId, 'number'); +assert.strictEqual(typeof f2.triggerAsyncId, 'number'); checkInvocations(f1, { init: 1 }, 'first connection, when second created'); checkInvocations(f2, { init: 1 }, 'second connection, when second created'); diff --git a/test/async-hooks/test-crypto-pbkdf2.js b/test/async-hooks/test-crypto-pbkdf2.js index c3940a3a5f412e..3023101f0b6640 100644 --- a/test/async-hooks/test-crypto-pbkdf2.js +++ b/test/async-hooks/test-crypto-pbkdf2.js @@ -36,7 +36,7 @@ function onexit() { const a = as[0]; assert.strictEqual(a.type, 'PBKDF2REQUEST'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, 1); + assert.strictEqual(a.triggerAsyncId, 1); checkInvocations(a, { init: 1, before: 1, after: 1, destroy: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-crypto-randomBytes.js b/test/async-hooks/test-crypto-randomBytes.js index b7af1393693ad1..49ffc6fdb612ea 100644 --- a/test/async-hooks/test-crypto-randomBytes.js +++ b/test/async-hooks/test-crypto-randomBytes.js @@ -37,7 +37,7 @@ function onexit() { const a = as[0]; assert.strictEqual(a.type, 'RANDOMBYTESREQUEST'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, 1); + assert.strictEqual(a.triggerAsyncId, 1); checkInvocations(a, { init: 1, before: 1, after: 1, destroy: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-embedder.api.async-resource.after-on-destroyed.js b/test/async-hooks/test-embedder.api.async-resource.after-on-destroyed.js index 8672f943ca7887..3cf0cc430f0fe0 100644 --- a/test/async-hooks/test-embedder.api.async-resource.after-on-destroyed.js +++ b/test/async-hooks/test-embedder.api.async-resource.after-on-destroyed.js @@ -17,13 +17,13 @@ if (process.argv[2] === 'child') { // once 'destroy' has been emitted, we can no longer emit 'after' // Emitting 'before', 'after' and then 'destroy' - const event1 = new AsyncResource('event1', async_hooks.currentId()); + const event1 = new AsyncResource('event1', async_hooks.executionAsyncId()); event1.emitBefore(); event1.emitAfter(); event1.emitDestroy(); // Emitting 'after' after 'destroy' - const event2 = new AsyncResource('event2', async_hooks.currentId()); + const event2 = new AsyncResource('event2', async_hooks.executionAsyncId()); event2.emitDestroy(); console.log('heartbeat: still alive'); diff --git a/test/async-hooks/test-embedder.api.async-resource.before-on-destroyed.js b/test/async-hooks/test-embedder.api.async-resource.before-on-destroyed.js index 0a5d0a61f2b11c..6463c438ed9102 100644 --- a/test/async-hooks/test-embedder.api.async-resource.before-on-destroyed.js +++ b/test/async-hooks/test-embedder.api.async-resource.before-on-destroyed.js @@ -17,13 +17,13 @@ if (process.argv[2] === 'child') { // once 'destroy' has been emitted, we can no longer emit 'before' // Emitting 'before', 'after' and then 'destroy' - const event1 = new AsyncResource('event1', async_hooks.currentId()); + const event1 = new AsyncResource('event1', async_hooks.executionAsyncId()); event1.emitBefore(); event1.emitAfter(); event1.emitDestroy(); // Emitting 'before' after 'destroy' - const event2 = new AsyncResource('event2', async_hooks.currentId()); + const event2 = new AsyncResource('event2', async_hooks.executionAsyncId()); event2.emitDestroy(); console.log('heartbeat: still alive'); diff --git a/test/async-hooks/test-embedder.api.async-resource.improper-order.js b/test/async-hooks/test-embedder.api.async-resource.improper-order.js index 5f6ba89e6e0f31..048ae0841357ec 100644 --- a/test/async-hooks/test-embedder.api.async-resource.improper-order.js +++ b/test/async-hooks/test-embedder.api.async-resource.improper-order.js @@ -17,13 +17,13 @@ if (process.argv[2] === 'child') { // async hooks enforce proper order of 'before' and 'after' invocations // Proper ordering - const event1 = new AsyncResource('event1', async_hooks.currentId()); + const event1 = new AsyncResource('event1', async_hooks.executionAsyncId()); event1.emitBefore(); event1.emitAfter(); // Improper ordering // Emitting 'after' without 'before' which is illegal - const event2 = new AsyncResource('event2', async_hooks.currentId()); + const event2 = new AsyncResource('event2', async_hooks.executionAsyncId()); console.log('heartbeat: still alive'); event2.emitAfter(); diff --git a/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js b/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js index 9e0c132dba99f9..a552b46e1f3116 100644 --- a/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js +++ b/test/async-hooks/test-embedder.api.async-resource.improper-unwind.js @@ -21,8 +21,8 @@ if (process.argv[2] === 'child') { // The first test of the two below follows that rule, // the second one doesnt. - const event1 = new AsyncResource('event1', async_hooks.currentId()); - const event2 = new AsyncResource('event2', async_hooks.currentId()); + const event1 = new AsyncResource('event1', async_hooks.executionAsyncId()); + const event2 = new AsyncResource('event2', async_hooks.executionAsyncId()); // Proper unwind event1.emitBefore(); diff --git a/test/async-hooks/test-embedder.api.async-resource.js b/test/async-hooks/test-embedder.api.async-resource.js index ec3d265e58cb0f..6574db8fffe1b6 100644 --- a/test/async-hooks/test-embedder.api.async-resource.js +++ b/test/async-hooks/test-embedder.api.async-resource.js @@ -15,14 +15,16 @@ hooks.enable(); assert.throws(() => new AsyncResource(), /^TypeError: type must be a string with length > 0$/); assert.throws(() => new AsyncResource('invalid_trigger_id', null), - /^RangeError: triggerId must be an unsigned integer$/); + /^RangeError: triggerAsyncId must be an unsigned integer$/); -assert.strictEqual(typeof new AsyncResource('default_trigger_id').triggerId(), - 'number'); +assert.strictEqual( + typeof new AsyncResource('default_trigger_id').triggerAsyncId(), + 'number' +); -// create first custom event 'alcazares' with triggerId derived -// from async_hooks currentId -const alcaTriggerId = async_hooks.currentId(); +// create first custom event 'alcazares' with triggerAsyncId derived +// from async_hooks executionAsyncId +const alcaTriggerId = async_hooks.executionAsyncId(); const alcaEvent = new AsyncResource('alcazares', alcaTriggerId); const alcazaresActivities = hooks.activitiesOfTypes([ 'alcazares' ]); @@ -31,12 +33,12 @@ assert.strictEqual(alcazaresActivities.length, 1); const alcazares = alcazaresActivities[0]; assert.strictEqual(alcazares.type, 'alcazares'); assert.strictEqual(typeof alcazares.uid, 'number'); -assert.strictEqual(alcazares.triggerId, alcaTriggerId); +assert.strictEqual(alcazares.triggerAsyncId, alcaTriggerId); checkInvocations(alcazares, { init: 1 }, 'alcazares constructed'); assert.strictEqual(typeof alcaEvent.asyncId(), 'number'); assert.notStrictEqual(alcaEvent.asyncId(), alcaTriggerId); -assert.strictEqual(alcaEvent.triggerId(), alcaTriggerId); +assert.strictEqual(alcaEvent.triggerAsyncId(), alcaTriggerId); alcaEvent.emitBefore(); checkInvocations(alcazares, { init: 1, before: 1 }, @@ -64,7 +66,7 @@ function tick1() { const poblado = pobladoActivities[0]; assert.strictEqual(poblado.type, 'poblado'); assert.strictEqual(typeof poblado.uid, 'number'); - assert.strictEqual(poblado.triggerId, pobTriggerId); + assert.strictEqual(poblado.triggerAsyncId, pobTriggerId); checkInvocations(poblado, { init: 1 }, 'poblado constructed'); pobEvent.emitBefore(); checkInvocations(poblado, { init: 1, before: 1 }, diff --git a/test/async-hooks/test-emit-before-after.js b/test/async-hooks/test-emit-before-after.js index fb16bda22aff92..37bbb9eb1c0041 100644 --- a/test/async-hooks/test-emit-before-after.js +++ b/test/async-hooks/test-emit-before-after.js @@ -17,14 +17,14 @@ switch (process.argv[2]) { const c1 = spawnSync(process.execPath, [__filename, 'test_invalid_async_id']); assert.strictEqual(c1.stderr.toString().split('\n')[0], - 'Error: before(): asyncId or triggerId is less than zero ' + - '(asyncId: -1, triggerId: -1)'); + 'Error: before(): asyncId or triggerAsyncId is less than ' + + 'zero (asyncId: -1, triggerAsyncId: -1)'); assert.strictEqual(c1.status, 1); const c2 = spawnSync(process.execPath, [__filename, 'test_invalid_trigger_id']); assert.strictEqual(c2.stderr.toString().split('\n')[0], - 'Error: before(): asyncId or triggerId is less than zero ' + - '(asyncId: 1, triggerId: -1)'); + 'Error: before(): asyncId or triggerAsyncId is less than ' + + 'zero (asyncId: 1, triggerAsyncId: -1)'); assert.strictEqual(c2.status, 1); const expectedId = async_hooks.newUid(); diff --git a/test/async-hooks/test-emit-init.js b/test/async-hooks/test-emit-init.js index 59476f2d44e7c5..e0a28d50c930d3 100644 --- a/test/async-hooks/test-emit-init.js +++ b/test/async-hooks/test-emit-init.js @@ -15,10 +15,10 @@ const expectedType = 'test_emit_init_type'; const expectedResource = { key: 'test_emit_init_resource' }; const hooks1 = initHooks({ - oninit: common.mustCall((id, type, triggerId, resource) => { + oninit: common.mustCall((id, type, triggerAsyncId, resource) => { assert.strictEqual(id, expectedId); assert.strictEqual(type, expectedType); - assert.strictEqual(triggerId, expectedTriggerId); + assert.strictEqual(triggerAsyncId, expectedTriggerId); assert.strictEqual(resource.key, expectedResource.key); }) }); @@ -30,7 +30,7 @@ assert.throws(() => async_hooks.emitInit(), assert.throws(() => async_hooks.emitInit(expectedId), /^TypeError: type must be a string with length > 0$/); assert.throws(() => async_hooks.emitInit(expectedId, expectedType, -1), - /^RangeError: triggerId must be an unsigned integer$/); + /^RangeError: triggerAsyncId must be an unsigned integer$/); async_hooks.emitInit(expectedId, expectedType, expectedTriggerId, expectedResource); @@ -38,10 +38,10 @@ async_hooks.emitInit(expectedId, expectedType, expectedTriggerId, hooks1.disable(); initHooks({ - oninit: common.mustCall((id, type, triggerId, resource) => { + oninit: common.mustCall((id, type, triggerAsyncId, resource) => { assert.strictEqual(id, expectedId); assert.strictEqual(type, expectedType); - assert.notStrictEqual(triggerId, expectedTriggerId); + assert.notStrictEqual(triggerAsyncId, expectedTriggerId); assert.strictEqual(resource.key, expectedResource.key); }) }).enable(); diff --git a/test/async-hooks/test-enable-disable.js b/test/async-hooks/test-enable-disable.js index 6cd584878a7e0f..27e13efdd8b3fd 100644 --- a/test/async-hooks/test-enable-disable.js +++ b/test/async-hooks/test-enable-disable.js @@ -159,7 +159,7 @@ function onfirstImmediate() { assert.strictEqual(as3[0].uid, as1[0].uid); assert.strictEqual(firstImmediate.type, 'Immediate'); assert.strictEqual(typeof firstImmediate.uid, 'number'); - assert.strictEqual(typeof firstImmediate.triggerId, 'number'); + assert.strictEqual(typeof firstImmediate.triggerAsyncId, 'number'); checkInvocations(as1[0], { init: 1, before: 1 }, 'hook1[0]: on first immediate'); checkInvocations(as3[0], { init: 1, before: 1 }, @@ -207,7 +207,7 @@ function onsecondImmediate() { assert.strictEqual(hook1Second.uid, hook3Second.uid); assert.strictEqual(secondImmediate.type, 'Immediate'); assert.strictEqual(typeof secondImmediate.uid, 'number'); - assert.strictEqual(typeof secondImmediate.triggerId, 'number'); + assert.strictEqual(typeof secondImmediate.triggerAsyncId, 'number'); checkInvocations(hook1First, { init: 1, before: 1, after: 1, destroy: 1 }, 'hook1First: on second immediate'); diff --git a/test/async-hooks/test-fseventwrap.js b/test/async-hooks/test-fseventwrap.js index acb579c6ae227f..2d9e697501efb6 100644 --- a/test/async-hooks/test-fseventwrap.js +++ b/test/async-hooks/test-fseventwrap.js @@ -28,6 +28,6 @@ function onexit() { const a = as[0]; assert.strictEqual(a.type, 'FSEVENTWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, 1); + assert.strictEqual(a.triggerAsyncId, 1); checkInvocations(a, { init: 1, destroy: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-fsreqwrap-readFile.js b/test/async-hooks/test-fsreqwrap-readFile.js index 20a57a5dd6c490..a40b9a35fd4b0b 100644 --- a/test/async-hooks/test-fsreqwrap-readFile.js +++ b/test/async-hooks/test-fsreqwrap-readFile.js @@ -19,7 +19,7 @@ function onread() { const a = as[i]; assert.strictEqual(a.type, 'FSREQWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, lastParent); + assert.strictEqual(a.triggerAsyncId, lastParent); lastParent = a.uid; } checkInvocations(as[0], { init: 1, before: 1, after: 1, destroy: 1 }, diff --git a/test/async-hooks/test-getaddrinforeqwrap.js b/test/async-hooks/test-getaddrinforeqwrap.js index b99ba2832bd9d7..787ea26fd344c8 100644 --- a/test/async-hooks/test-getaddrinforeqwrap.js +++ b/test/async-hooks/test-getaddrinforeqwrap.js @@ -21,7 +21,7 @@ function onlookup(err_, ip, family) { const a = as[0]; assert.strictEqual(a.type, 'GETADDRINFOREQWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, 1); + assert.strictEqual(a.triggerAsyncId, 1); checkInvocations(a, { init: 1, before: 1 }, 'while in onlookup callback'); tick(2); } diff --git a/test/async-hooks/test-getnameinforeqwrap.js b/test/async-hooks/test-getnameinforeqwrap.js index e7b9a4aca844fc..071462dddc9b10 100644 --- a/test/async-hooks/test-getnameinforeqwrap.js +++ b/test/async-hooks/test-getnameinforeqwrap.js @@ -21,7 +21,7 @@ function onlookupService(err_, ip, family) { const a = as[0]; assert.strictEqual(a.type, 'GETNAMEINFOREQWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(a.triggerId, 1); + assert.strictEqual(a.triggerAsyncId, 1); checkInvocations(a, { init: 1, before: 1 }, 'while in onlookupService callback'); tick(2); diff --git a/test/async-hooks/test-graph.connection.js b/test/async-hooks/test-graph.connection.js index 60bd19996f7df7..37ecc79bb06956 100644 --- a/test/async-hooks/test-graph.connection.js +++ b/test/async-hooks/test-graph.connection.js @@ -38,7 +38,7 @@ sc1.start(); function onfirstHandShake() { // Create second connection inside handshake of first to show - // that the triggerId of the second will be set to id of the first + // that the triggerAsyncId of the second will be set to id of the first const sc2 = createServerConnection(common.mustCall(onsecondHandShake)); sc2.start(); } @@ -50,7 +50,8 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'CONNECTION', id: 'connection:1', triggerId: null }, - { type: 'CONNECTION', id: 'connection:2', triggerId: 'connection:1' } ] + [ { type: 'CONNECTION', id: 'connection:1', triggerAsyncId: null }, + { type: 'CONNECTION', id: 'connection:2', + triggerAsyncId: 'connection:1' } ] ); } diff --git a/test/async-hooks/test-graph.fsreq-readFile.js b/test/async-hooks/test-graph.fsreq-readFile.js index b3610c22febcd7..f9c476ca0b10fc 100644 --- a/test/async-hooks/test-graph.fsreq-readFile.js +++ b/test/async-hooks/test-graph.fsreq-readFile.js @@ -18,9 +18,9 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'FSREQWRAP', id: 'fsreq:1', triggerId: null }, - { type: 'FSREQWRAP', id: 'fsreq:2', triggerId: 'fsreq:1' }, - { type: 'FSREQWRAP', id: 'fsreq:3', triggerId: 'fsreq:2' }, - { type: 'FSREQWRAP', id: 'fsreq:4', triggerId: 'fsreq:3' } ] + [ { type: 'FSREQWRAP', id: 'fsreq:1', triggerAsyncId: null }, + { type: 'FSREQWRAP', id: 'fsreq:2', triggerAsyncId: 'fsreq:1' }, + { type: 'FSREQWRAP', id: 'fsreq:3', triggerAsyncId: 'fsreq:2' }, + { type: 'FSREQWRAP', id: 'fsreq:4', triggerAsyncId: 'fsreq:3' } ] ); } diff --git a/test/async-hooks/test-graph.intervals.js b/test/async-hooks/test-graph.intervals.js index 9cb3caf0587968..13a6ed29efe713 100644 --- a/test/async-hooks/test-graph.intervals.js +++ b/test/async-hooks/test-graph.intervals.js @@ -29,9 +29,9 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'Timeout', id: 'timeout:1', triggerId: null }, - { type: 'TIMERWRAP', id: 'timer:1', triggerId: null }, - { type: 'Timeout', id: 'timeout:2', triggerId: 'timeout:1' }, - { type: 'TIMERWRAP', id: 'timer:2', triggerId: 'timeout:1' } ] + [ { type: 'Timeout', id: 'timeout:1', triggerAsyncId: null }, + { type: 'TIMERWRAP', id: 'timer:1', triggerAsyncId: null }, + { type: 'Timeout', id: 'timeout:2', triggerAsyncId: 'timeout:1' }, + { type: 'TIMERWRAP', id: 'timer:2', triggerAsyncId: 'timeout:1' } ] ); } diff --git a/test/async-hooks/test-graph.pipe.js b/test/async-hooks/test-graph.pipe.js index 03a5751b1ab3d2..69d403a34e4c23 100644 --- a/test/async-hooks/test-graph.pipe.js +++ b/test/async-hooks/test-graph.pipe.js @@ -24,9 +24,9 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'PROCESSWRAP', id: 'process:1', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:1', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:2', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:3', triggerId: null } ] + [ { type: 'PROCESSWRAP', id: 'process:1', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:1', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:2', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:3', triggerAsyncId: null } ] ); } diff --git a/test/async-hooks/test-graph.pipeconnect.js b/test/async-hooks/test-graph.pipeconnect.js index 96837ec384427f..a3486521d5a7ea 100644 --- a/test/async-hooks/test-graph.pipeconnect.js +++ b/test/async-hooks/test-graph.pipeconnect.js @@ -28,10 +28,11 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'PIPEWRAP', id: 'pipe:1', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:2', triggerId: 'pipe:1' }, - { type: 'PIPECONNECTWRAP', id: 'pipeconnect:1', triggerId: 'pipe:2' }, - { type: 'PIPEWRAP', id: 'pipe:3', triggerId: 'pipe:1' }, - { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerId: 'pipe:3' } ] + [ { type: 'PIPEWRAP', id: 'pipe:1', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:2', triggerAsyncId: 'pipe:1' }, + { type: 'PIPECONNECTWRAP', id: 'pipeconnect:1', + triggerAsyncId: 'pipe:2' }, + { type: 'PIPEWRAP', id: 'pipe:3', triggerAsyncId: 'pipe:1' }, + { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerAsyncId: 'pipe:3' } ] ); } diff --git a/test/async-hooks/test-graph.shutdown.js b/test/async-hooks/test-graph.shutdown.js index a8b35af8e0f6f5..029a9c86b66763 100644 --- a/test/async-hooks/test-graph.shutdown.js +++ b/test/async-hooks/test-graph.shutdown.js @@ -37,13 +37,13 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'TCPWRAP', id: 'tcp:1', triggerId: null }, - { type: 'TCPWRAP', id: 'tcp:2', triggerId: 'tcp:1' }, + [ { type: 'TCPWRAP', id: 'tcp:1', triggerAsyncId: null }, + { type: 'TCPWRAP', id: 'tcp:2', triggerAsyncId: 'tcp:1' }, { type: 'GETADDRINFOREQWRAP', - id: 'getaddrinforeq:1', triggerId: 'tcp:2' }, + id: 'getaddrinforeq:1', triggerAsyncId: 'tcp:2' }, { type: 'TCPCONNECTWRAP', - id: 'tcpconnect:1', triggerId: 'tcp:2' }, - { type: 'TCPWRAP', id: 'tcp:3', triggerId: 'tcp:1' }, - { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerId: 'tcp:3' } ] + id: 'tcpconnect:1', triggerAsyncId: 'tcp:2' }, + { type: 'TCPWRAP', id: 'tcp:3', triggerAsyncId: 'tcp:1' }, + { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerAsyncId: 'tcp:3' } ] ); } diff --git a/test/async-hooks/test-graph.signal.js b/test/async-hooks/test-graph.signal.js index e38f1c19ab86d3..bdc56d9d1c6edc 100644 --- a/test/async-hooks/test-graph.signal.js +++ b/test/async-hooks/test-graph.signal.js @@ -36,19 +36,19 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'SIGNALWRAP', id: 'signal:1', triggerId: null }, - { type: 'PROCESSWRAP', id: 'process:1', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:1', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:2', triggerId: null }, - { type: 'PIPEWRAP', id: 'pipe:3', triggerId: null }, - { type: 'PROCESSWRAP', id: 'process:2', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:4', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:5', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:6', triggerId: 'signal:1' }, - { type: 'SIGNALWRAP', id: 'signal:2', triggerId: 'signal:1' }, - { type: 'PROCESSWRAP', id: 'process:3', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:7', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:8', triggerId: 'signal:1' }, - { type: 'PIPEWRAP', id: 'pipe:9', triggerId: 'signal:1' } ] + [ { type: 'SIGNALWRAP', id: 'signal:1', triggerAsyncId: null }, + { type: 'PROCESSWRAP', id: 'process:1', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:1', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:2', triggerAsyncId: null }, + { type: 'PIPEWRAP', id: 'pipe:3', triggerAsyncId: null }, + { type: 'PROCESSWRAP', id: 'process:2', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:4', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:5', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:6', triggerAsyncId: 'signal:1' }, + { type: 'SIGNALWRAP', id: 'signal:2', triggerAsyncId: 'signal:1' }, + { type: 'PROCESSWRAP', id: 'process:3', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:7', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:8', triggerAsyncId: 'signal:1' }, + { type: 'PIPEWRAP', id: 'pipe:9', triggerAsyncId: 'signal:1' } ] ); } diff --git a/test/async-hooks/test-graph.statwatcher.js b/test/async-hooks/test-graph.statwatcher.js index c4e0432c7cff87..3067045d2bf8ac 100644 --- a/test/async-hooks/test-graph.statwatcher.js +++ b/test/async-hooks/test-graph.statwatcher.js @@ -28,7 +28,7 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'STATWATCHER', id: 'statwatcher:1', triggerId: null }, - { type: 'STATWATCHER', id: 'statwatcher:2', triggerId: null } ] + [ { type: 'STATWATCHER', id: 'statwatcher:1', triggerAsyncId: null }, + { type: 'STATWATCHER', id: 'statwatcher:2', triggerAsyncId: null } ] ); } diff --git a/test/async-hooks/test-graph.tcp.js b/test/async-hooks/test-graph.tcp.js index d6c0de34c35005..f9703769b831b9 100644 --- a/test/async-hooks/test-graph.tcp.js +++ b/test/async-hooks/test-graph.tcp.js @@ -41,11 +41,11 @@ function onexit() { verifyGraph( hooks, - [ { type: 'TCPWRAP', id: 'tcp:1', triggerId: null }, - { type: 'TCPWRAP', id: 'tcp:2', triggerId: null }, + [ { type: 'TCPWRAP', id: 'tcp:1', triggerAsyncId: null }, + { type: 'TCPWRAP', id: 'tcp:2', triggerAsyncId: null }, { type: 'TCPCONNECTWRAP', - id: 'tcpconnect:1', triggerId: 'tcp:2' }, - { type: 'TCPWRAP', id: 'tcp:3', triggerId: 'tcp:1' }, - { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerId: 'tcp:3' } ] + id: 'tcpconnect:1', triggerAsyncId: 'tcp:2' }, + { type: 'TCPWRAP', id: 'tcp:3', triggerAsyncId: 'tcp:1' }, + { type: 'SHUTDOWNWRAP', id: 'shutdown:1', triggerAsyncId: 'tcp:3' } ] ); } diff --git a/test/async-hooks/test-graph.timeouts.js b/test/async-hooks/test-graph.timeouts.js index eebf320472efe9..2da426e9fa21b8 100644 --- a/test/async-hooks/test-graph.timeouts.js +++ b/test/async-hooks/test-graph.timeouts.js @@ -25,11 +25,11 @@ function onexit() { hooks.disable(); verifyGraph( hooks, - [ { type: 'Timeout', id: 'timeout:1', triggerId: null }, - { type: 'TIMERWRAP', id: 'timer:1', triggerId: null }, - { type: 'Timeout', id: 'timeout:2', triggerId: 'timeout:1' }, - { type: 'TIMERWRAP', id: 'timer:2', triggerId: 'timeout:1' }, - { type: 'Timeout', id: 'timeout:3', triggerId: 'timeout:2' }, - { type: 'TIMERWRAP', id: 'timer:3', triggerId: 'timeout:2' } ] + [ { type: 'Timeout', id: 'timeout:1', triggerAsyncId: null }, + { type: 'TIMERWRAP', id: 'timer:1', triggerAsyncId: null }, + { type: 'Timeout', id: 'timeout:2', triggerAsyncId: 'timeout:1' }, + { type: 'TIMERWRAP', id: 'timer:2', triggerAsyncId: 'timeout:1' }, + { type: 'Timeout', id: 'timeout:3', triggerAsyncId: 'timeout:2' }, + { type: 'TIMERWRAP', id: 'timer:3', triggerAsyncId: 'timeout:2' } ] ); } diff --git a/test/async-hooks/test-graph.tls-write.js b/test/async-hooks/test-graph.tls-write.js index 116f56f49bfdf6..77a97bedbc5438 100644 --- a/test/async-hooks/test-graph.tls-write.js +++ b/test/async-hooks/test-graph.tls-write.js @@ -59,21 +59,21 @@ function onexit() { verifyGraph( hooks, - [ { type: 'TCPWRAP', id: 'tcp:1', triggerId: null }, - { type: 'TCPWRAP', id: 'tcp:2', triggerId: 'tcp:1' }, - { type: 'TLSWRAP', id: 'tls:1', triggerId: 'tcp:1' }, + [ { type: 'TCPWRAP', id: 'tcp:1', triggerAsyncId: null }, + { type: 'TCPWRAP', id: 'tcp:2', triggerAsyncId: 'tcp:1' }, + { type: 'TLSWRAP', id: 'tls:1', triggerAsyncId: 'tcp:1' }, { type: 'GETADDRINFOREQWRAP', - id: 'getaddrinforeq:1', triggerId: 'tls:1' }, + id: 'getaddrinforeq:1', triggerAsyncId: 'tls:1' }, { type: 'TCPCONNECTWRAP', - id: 'tcpconnect:1', triggerId: 'tcp:2' }, - { type: 'WRITEWRAP', id: 'write:1', triggerId: 'tcpconnect:1' }, - { type: 'TCPWRAP', id: 'tcp:3', triggerId: 'tcp:1' }, - { type: 'TLSWRAP', id: 'tls:2', triggerId: 'tcp:1' }, - { type: 'TIMERWRAP', id: 'timer:1', triggerId: 'tcp:1' }, - { type: 'WRITEWRAP', id: 'write:2', triggerId: null }, - { type: 'WRITEWRAP', id: 'write:3', triggerId: null }, - { type: 'WRITEWRAP', id: 'write:4', triggerId: null }, - { type: 'Immediate', id: 'immediate:1', triggerId: 'tcp:2' }, - { type: 'Immediate', id: 'immediate:2', triggerId: 'tcp:3' } ] + id: 'tcpconnect:1', triggerAsyncId: 'tcp:2' }, + { type: 'WRITEWRAP', id: 'write:1', triggerAsyncId: 'tcpconnect:1' }, + { type: 'TCPWRAP', id: 'tcp:3', triggerAsyncId: 'tcp:1' }, + { type: 'TLSWRAP', id: 'tls:2', triggerAsyncId: 'tcp:1' }, + { type: 'TIMERWRAP', id: 'timer:1', triggerAsyncId: 'tcp:1' }, + { type: 'WRITEWRAP', id: 'write:2', triggerAsyncId: null }, + { type: 'WRITEWRAP', id: 'write:3', triggerAsyncId: null }, + { type: 'WRITEWRAP', id: 'write:4', triggerAsyncId: null }, + { type: 'Immediate', id: 'immediate:1', triggerAsyncId: 'tcp:2' }, + { type: 'Immediate', id: 'immediate:2', triggerAsyncId: 'tcp:3' } ] ); } diff --git a/test/async-hooks/test-httpparser.request.js b/test/async-hooks/test-httpparser.request.js index ebac57b6aba014..ca15172de19817 100644 --- a/test/async-hooks/test-httpparser.request.js +++ b/test/async-hooks/test-httpparser.request.js @@ -28,7 +28,7 @@ const httpparser = as[0]; assert.strictEqual(as.length, 1); assert.strictEqual(typeof httpparser.uid, 'number'); -assert.strictEqual(typeof httpparser.triggerId, 'number'); +assert.strictEqual(typeof httpparser.triggerAsyncId, 'number'); checkInvocations(httpparser, { init: 1 }, 'when created new Httphttpparser'); parser[kOnHeadersComplete] = common.mustCall(onheadersComplete); diff --git a/test/async-hooks/test-httpparser.response.js b/test/async-hooks/test-httpparser.response.js index a87de0674fa72a..d5ae8d65d86df1 100644 --- a/test/async-hooks/test-httpparser.response.js +++ b/test/async-hooks/test-httpparser.response.js @@ -32,7 +32,7 @@ const httpparser = as[0]; assert.strictEqual(as.length, 1); assert.strictEqual(typeof httpparser.uid, 'number'); -assert.strictEqual(typeof httpparser.triggerId, 'number'); +assert.strictEqual(typeof httpparser.triggerAsyncId, 'number'); checkInvocations(httpparser, { init: 1 }, 'when created new Httphttpparser'); parser[kOnHeadersComplete] = common.mustCall(onheadersComplete); diff --git a/test/async-hooks/test-immediate.js b/test/async-hooks/test-immediate.js index e5bce88de9b257..3ef782eb5fa66c 100644 --- a/test/async-hooks/test-immediate.js +++ b/test/async-hooks/test-immediate.js @@ -17,7 +17,7 @@ assert.strictEqual(as.length, 1); const imd1 = as[0]; assert.strictEqual(imd1.type, 'Immediate'); assert.strictEqual(typeof imd1.uid, 'number'); -assert.strictEqual(typeof imd1.triggerId, 'number'); +assert.strictEqual(typeof imd1.triggerAsyncId, 'number'); checkInvocations(imd1, { init: 1 }, 'imd1: when first set immediate installed'); @@ -36,7 +36,7 @@ function onimmediate() { imd2 = as[1]; assert.strictEqual(imd2.type, 'Immediate'); assert.strictEqual(typeof imd2.uid, 'number'); - assert.strictEqual(typeof imd2.triggerId, 'number'); + assert.strictEqual(typeof imd2.triggerAsyncId, 'number'); checkInvocations(imd1, { init: 1, before: 1 }, 'imd1: when second set immediate installed'); checkInvocations(imd2, { init: 1 }, diff --git a/test/async-hooks/test-pipeconnectwrap.js b/test/async-hooks/test-pipeconnectwrap.js index fa38185f1ee4f1..bcab601d05952f 100644 --- a/test/async-hooks/test-pipeconnectwrap.js +++ b/test/async-hooks/test-pipeconnectwrap.js @@ -44,7 +44,7 @@ function onlisten() { assert.strictEqual(pipeconnect.type, 'PIPECONNECTWRAP'); for (const a of [ pipe1, pipe2, pipeconnect ]) { assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(typeof a.triggerId, 'number'); + assert.strictEqual(typeof a.triggerAsyncId, 'number'); checkInvocations(a, { init: 1 }, 'after net.connect'); } } @@ -64,7 +64,7 @@ function maybeOnconnect(source) { assert.strictEqual(pipeconnects.length, 1); pipe3 = pipes[2]; assert.strictEqual(typeof pipe3.uid, 'number'); - assert.strictEqual(typeof pipe3.triggerId, 'number'); + assert.strictEqual(typeof pipe3.triggerAsyncId, 'number'); checkInvocations(pipe1, { init: 1, before: 1, after: 1 }, 'pipe1, client connected'); diff --git a/test/async-hooks/test-pipewrap.js b/test/async-hooks/test-pipewrap.js index 4e4236b46d953b..550de7907a168a 100644 --- a/test/async-hooks/test-pipewrap.js +++ b/test/async-hooks/test-pipewrap.js @@ -32,13 +32,13 @@ const pipe2 = pipes[1]; const pipe3 = pipes[2]; assert.strictEqual(processwrap.type, 'PROCESSWRAP'); -assert.strictEqual(processwrap.triggerId, 1); +assert.strictEqual(processwrap.triggerAsyncId, 1); checkInvocations(processwrap, { init: 1 }, 'processwrap when sleep.spawn was called'); [ pipe1, pipe2, pipe3 ].forEach((x) => { assert.strictEqual(x.type, 'PIPEWRAP'); - assert.strictEqual(x.triggerId, 1); + assert.strictEqual(x.triggerAsyncId, 1); checkInvocations(x, { init: 1 }, 'pipe wrap when sleep.spawn was called'); }); @@ -70,7 +70,7 @@ function onexit() { [ pipe1, pipe2, pipe3 ].forEach((x) => { assert.strictEqual(x.type, 'PIPEWRAP'); - assert.strictEqual(x.triggerId, 1); + assert.strictEqual(x.triggerAsyncId, 1); }); const ioEvents = Math.min(pipe2.before.length, pipe2.after.length); diff --git a/test/async-hooks/test-promise.js b/test/async-hooks/test-promise.js index bded7e3aaccb07..7d8e3919f28cd0 100644 --- a/test/async-hooks/test-promise.js +++ b/test/async-hooks/test-promise.js @@ -40,13 +40,13 @@ function onexit() { const a0 = as[0]; assert.strictEqual(a0.type, 'PROMISE'); assert.strictEqual(typeof a0.uid, 'number'); - assert.strictEqual(a0.triggerId, 1); + assert.strictEqual(a0.triggerAsyncId, 1); checkInvocations(a0, { init: 1 }, 'when process exits'); const a1 = as[1]; assert.strictEqual(a1.type, 'PROMISE'); assert.strictEqual(typeof a1.uid, 'number'); - assert.strictEqual(a1.triggerId, a0.uid); + assert.strictEqual(a1.triggerAsyncId, a0.uid); // We expect a destroy hook as well but we cannot guarentee predictable gc. checkInvocations(a1, { init: 1, before: 1, after: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-promise.promise-before-init-hooks.js b/test/async-hooks/test-promise.promise-before-init-hooks.js index 123e5e2da947a0..9a542dff46bd21 100644 --- a/test/async-hooks/test-promise.promise-before-init-hooks.js +++ b/test/async-hooks/test-promise.promise-before-init-hooks.js @@ -36,7 +36,7 @@ process.on('exit', function onexit() { // never called. However, it is known that the parent promise was created // immediately before the child promise, thus there should only be one // difference in id. - assert.strictEqual(a0.triggerId, a0.uid - 1); + assert.strictEqual(a0.triggerAsyncId, a0.uid - 1); // We expect a destroy hook as well but we cannot guarentee predictable gc. checkInvocations(a0, { init: 1, before: 1, after: 1 }, 'when process exits'); }); diff --git a/test/async-hooks/test-querywrap.js b/test/async-hooks/test-querywrap.js index 9ab219ecf58128..7d71a183130881 100644 --- a/test/async-hooks/test-querywrap.js +++ b/test/async-hooks/test-querywrap.js @@ -34,7 +34,7 @@ function onexit() { assert.strictEqual(a.type, 'QUERYWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(typeof a.triggerId, 'number'); + assert.strictEqual(typeof a.triggerAsyncId, 'number'); checkInvocations(a, { init: 1, before: 1, after: 1, destroy: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-shutdownwrap.js b/test/async-hooks/test-shutdownwrap.js index c3d9936c540034..dfaac2a1c05a70 100644 --- a/test/async-hooks/test-shutdownwrap.js +++ b/test/async-hooks/test-shutdownwrap.js @@ -55,7 +55,7 @@ function onexit() { const a = as[0]; assert.strictEqual(a.type, 'SHUTDOWNWRAP'); assert.strictEqual(typeof a.uid, 'number'); - assert.strictEqual(typeof a.triggerId, 'number'); + assert.strictEqual(typeof a.triggerAsyncId, 'number'); checkInvocations(as[0], { init: 1, before: 1, after: 1, destroy: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-signalwrap.js b/test/async-hooks/test-signalwrap.js index 3b1cffbb8c8259..dad85815d42e71 100644 --- a/test/async-hooks/test-signalwrap.js +++ b/test/async-hooks/test-signalwrap.js @@ -16,7 +16,7 @@ assert.strictEqual(as.length, 1); const signal1 = as[0]; assert.strictEqual(signal1.type, 'SIGNALWRAP'); assert.strictEqual(typeof signal1.uid, 'number'); -assert.strictEqual(typeof signal1.triggerId, 'number'); +assert.strictEqual(typeof signal1.triggerAsyncId, 'number'); checkInvocations(signal1, { init: 1 }, 'when SIGUSR2 handler is set up'); let count = 0; @@ -50,7 +50,7 @@ function onsigusr2() { signal2 = as[1]; assert.strictEqual(signal2.type, 'SIGNALWRAP'); assert.strictEqual(typeof signal2.uid, 'number'); - assert.strictEqual(typeof signal2.triggerId, 'number'); + assert.strictEqual(typeof signal2.triggerAsyncId, 'number'); checkInvocations( signal1, { init: 1, before: 2, after: 1 }, diff --git a/test/async-hooks/test-statwatcher.js b/test/async-hooks/test-statwatcher.js index a4814842ae416a..52d146306405f8 100644 --- a/test/async-hooks/test-statwatcher.js +++ b/test/async-hooks/test-statwatcher.js @@ -20,7 +20,7 @@ assert.strictEqual(as.length, 1); const statwatcher1 = as[0]; assert.strictEqual(statwatcher1.type, 'STATWATCHER'); assert.strictEqual(typeof statwatcher1.uid, 'number'); -assert.strictEqual(statwatcher1.triggerId, 1); +assert.strictEqual(statwatcher1.triggerAsyncId, 1); checkInvocations(statwatcher1, { init: 1 }, 'watcher1: when started to watch file'); @@ -32,7 +32,7 @@ assert.strictEqual(as.length, 2); const statwatcher2 = as[1]; assert.strictEqual(statwatcher2.type, 'STATWATCHER'); assert.strictEqual(typeof statwatcher2.uid, 'number'); -assert.strictEqual(statwatcher2.triggerId, 1); +assert.strictEqual(statwatcher2.triggerAsyncId, 1); checkInvocations(statwatcher1, { init: 1 }, 'watcher1: when started to watch second file'); checkInvocations(statwatcher2, { init: 1 }, diff --git a/test/async-hooks/test-tcpwrap.js b/test/async-hooks/test-tcpwrap.js index bdb45b47a36029..0dce8c7d9f0bde 100644 --- a/test/async-hooks/test-tcpwrap.js +++ b/test/async-hooks/test-tcpwrap.js @@ -34,7 +34,7 @@ const server = net tcp1 = tcps[0]; assert.strictEqual(tcp1.type, 'TCPWRAP'); assert.strictEqual(typeof tcp1.uid, 'number'); - assert.strictEqual(typeof tcp1.triggerId, 'number'); + assert.strictEqual(typeof tcp1.triggerAsyncId, 'number'); checkInvocations(tcp1, { init: 1 }, 'when calling server.listen'); } @@ -54,7 +54,7 @@ const server = net assert.strictEqual(tcps.length, 2); assert.strictEqual(tcp2.type, 'TCPWRAP'); assert.strictEqual(typeof tcp2.uid, 'number'); - assert.strictEqual(typeof tcp2.triggerId, 'number'); + assert.strictEqual(typeof tcp2.triggerAsyncId, 'number'); checkInvocations(tcp1, { init: 1 }, 'tcp1 when client is connecting'); checkInvocations(tcp2, { init: 1 }, 'tcp2 when client is connecting'); @@ -86,7 +86,7 @@ function ontcpConnection(serverConnection) { tcpconnect = tcpconnects[0]; assert.strictEqual(tcpconnect.type, 'TCPCONNECTWRAP'); assert.strictEqual(typeof tcpconnect.uid, 'number'); - assert.strictEqual(typeof tcpconnect.triggerId, 'number'); + assert.strictEqual(typeof tcpconnect.triggerAsyncId, 'number'); // When client receives connection first ('onconnected'), we 'before' has // been invoked at this point already, otherwise it only was 'init'ed const expected = serverConnection ? { init: 1 } : { init: 1, before: 1 }; @@ -117,7 +117,7 @@ function onconnection(c) { tcp3 = tcps[2]; assert.strictEqual(tcp3.type, 'TCPWRAP'); assert.strictEqual(typeof tcp3.uid, 'number'); - assert.strictEqual(typeof tcp3.triggerId, 'number'); + assert.strictEqual(typeof tcp3.triggerAsyncId, 'number'); checkInvocations(tcp1, { init: 1, before: 1 }, 'tcp1 when server receives connection'); diff --git a/test/async-hooks/test-timerwrap.setInterval.js b/test/async-hooks/test-timerwrap.setInterval.js index 02cd2740dfe071..058f2c9a9d14cc 100644 --- a/test/async-hooks/test-timerwrap.setInterval.js +++ b/test/async-hooks/test-timerwrap.setInterval.js @@ -18,7 +18,7 @@ assert.strictEqual(as.length, 1); const t = as[0]; assert.strictEqual(t.type, 'TIMERWRAP'); assert.strictEqual(typeof t.uid, 'number'); -assert.strictEqual(typeof t.triggerId, 'number'); +assert.strictEqual(typeof t.triggerAsyncId, 'number'); checkInvocations(t, { init: 1 }, 't: when first timer installed'); function oninterval() { diff --git a/test/async-hooks/test-timerwrap.setTimeout.js b/test/async-hooks/test-timerwrap.setTimeout.js index c95d116a249f7c..9c873125d044b6 100644 --- a/test/async-hooks/test-timerwrap.setTimeout.js +++ b/test/async-hooks/test-timerwrap.setTimeout.js @@ -17,7 +17,7 @@ assert.strictEqual(as.length, 1); const t1 = as[0]; assert.strictEqual(t1.type, 'TIMERWRAP'); assert.strictEqual(typeof t1.uid, 'number'); -assert.strictEqual(typeof t1.triggerId, 'number'); +assert.strictEqual(typeof t1.triggerAsyncId, 'number'); checkInvocations(t1, { init: 1 }, 't1: when first timer installed'); function ontimeout() { @@ -48,7 +48,7 @@ function onsecondTimeout() { t2 = as[1]; assert.strictEqual(t2.type, 'TIMERWRAP'); assert.strictEqual(typeof t2.uid, 'number'); - assert.strictEqual(typeof t2.triggerId, 'number'); + assert.strictEqual(typeof t2.triggerAsyncId, 'number'); checkInvocations(t1, { init: 1, before: 2, after: 1 }, 't1: when third timer installed'); checkInvocations(t2, { init: 1 }, diff --git a/test/async-hooks/test-tlswrap.js b/test/async-hooks/test-tlswrap.js index 7429a54f10fbdf..47cca62c182af9 100644 --- a/test/async-hooks/test-tlswrap.js +++ b/test/async-hooks/test-tlswrap.js @@ -43,7 +43,7 @@ function onlistening() { assert.strictEqual(svr.type, 'TLSWRAP'); assert.strictEqual(typeof svr.uid, 'number'); - assert.strictEqual(typeof svr.triggerId, 'number'); + assert.strictEqual(typeof svr.triggerAsyncId, 'number'); checkInvocations(svr, { init: 1 }, 'server: when client connecting'); } @@ -56,7 +56,7 @@ function onsecureConnection() { client = as[1]; assert.strictEqual(client.type, 'TLSWRAP'); assert.strictEqual(typeof client.uid, 'number'); - assert.strictEqual(typeof client.triggerId, 'number'); + assert.strictEqual(typeof client.triggerAsyncId, 'number'); // TODO(thlorenz) which callback did the server wrap execute that already // finished as well? diff --git a/test/async-hooks/test-ttywrap.readstream.js b/test/async-hooks/test-ttywrap.readstream.js index 96f078ab1482d4..70c5bba2308c5e 100644 --- a/test/async-hooks/test-ttywrap.readstream.js +++ b/test/async-hooks/test-ttywrap.readstream.js @@ -17,7 +17,7 @@ assert.strictEqual(as.length, 1); const tty = as[0]; assert.strictEqual(tty.type, 'TTYWRAP'); assert.strictEqual(typeof tty.uid, 'number'); -assert.strictEqual(typeof tty.triggerId, 'number'); +assert.strictEqual(typeof tty.triggerAsyncId, 'number'); checkInvocations(tty, { init: 1 }, 'when tty created'); ttyStream.end(common.mustCall(onend)); diff --git a/test/async-hooks/test-ttywrap.writestream.js b/test/async-hooks/test-ttywrap.writestream.js index ad0148191f806c..b1cc768877d925 100644 --- a/test/async-hooks/test-ttywrap.writestream.js +++ b/test/async-hooks/test-ttywrap.writestream.js @@ -27,7 +27,7 @@ assert.strictEqual(as.length, 1); const tty = as[0]; assert.strictEqual(tty.type, 'TTYWRAP'); assert.strictEqual(typeof tty.uid, 'number'); -assert.strictEqual(typeof tty.triggerId, 'number'); +assert.strictEqual(typeof tty.triggerAsyncId, 'number'); checkInvocations(tty, { init: 1 }, 'when tty created'); ttyStream diff --git a/test/async-hooks/test-udpsendwrap.js b/test/async-hooks/test-udpsendwrap.js index 07fb8790fae114..750fafdeb2a5dd 100644 --- a/test/async-hooks/test-udpsendwrap.js +++ b/test/async-hooks/test-udpsendwrap.js @@ -35,7 +35,7 @@ function onsent() { assert.strictEqual(as.length, 1); assert.strictEqual(send.type, 'UDPSENDWRAP'); assert.strictEqual(typeof send.uid, 'number'); - assert.strictEqual(typeof send.triggerId, 'number'); + assert.strictEqual(typeof send.triggerAsyncId, 'number'); checkInvocations(send, { init: 1, before: 1 }, 'when message sent'); sock.close(common.mustCall(onsockClosed)); diff --git a/test/async-hooks/test-udpwrap.js b/test/async-hooks/test-udpwrap.js index 66142911de0f4e..5770ac060edce8 100644 --- a/test/async-hooks/test-udpwrap.js +++ b/test/async-hooks/test-udpwrap.js @@ -17,7 +17,7 @@ const udpwrap = as[0]; assert.strictEqual(as.length, 1); assert.strictEqual(udpwrap.type, 'UDPWRAP'); assert.strictEqual(typeof udpwrap.uid, 'number'); -assert.strictEqual(typeof udpwrap.triggerId, 'number'); +assert.strictEqual(typeof udpwrap.triggerAsyncId, 'number'); checkInvocations(udpwrap, { init: 1 }, 'after dgram.createSocket call'); sock.close(common.mustCall(onsockClosed)); diff --git a/test/async-hooks/test-writewrap.js b/test/async-hooks/test-writewrap.js index eabb61847ff166..6253b09d4adccc 100644 --- a/test/async-hooks/test-writewrap.js +++ b/test/async-hooks/test-writewrap.js @@ -48,7 +48,7 @@ function checkDestroyedWriteWraps(n, stage) { function checkValidWriteWrap(w) { assert.strictEqual(w.type, 'WRITEWRAP'); assert.strictEqual(typeof w.uid, 'number'); - assert.strictEqual(typeof w.triggerId, 'number'); + assert.strictEqual(typeof w.triggerAsyncId, 'number'); checkInvocations(w, { init: 1 }, `when ${stage}`); } diff --git a/test/async-hooks/test-zlib.zlib-binding.deflate.js b/test/async-hooks/test-zlib.zlib-binding.deflate.js index bf991cfbabb73f..57c8b7ec04271d 100644 --- a/test/async-hooks/test-zlib.zlib-binding.deflate.js +++ b/test/async-hooks/test-zlib.zlib-binding.deflate.js @@ -18,7 +18,7 @@ assert.strictEqual(as.length, 1); const hdl = as[0]; assert.strictEqual(hdl.type, 'ZLIB'); assert.strictEqual(typeof hdl.uid, 'number'); -assert.strictEqual(typeof hdl.triggerId, 'number'); +assert.strictEqual(typeof hdl.triggerAsyncId, 'number'); checkInvocations(hdl, { init: 1 }, 'when created handle'); handle.init( diff --git a/test/async-hooks/verify-graph.js b/test/async-hooks/verify-graph.js index 1f4cacd2a770e2..5e8795ef97aa68 100644 --- a/test/async-hooks/verify-graph.js +++ b/test/async-hooks/verify-graph.js @@ -31,13 +31,13 @@ function pruneTickObjects(activities) { if (tickObjectIdx >= 0) { foundTickObject = true; - // point all triggerIds that point to the tickObject - // to its triggerId and findally remove it from the activities + // point all triggerAsyncIds that point to the tickObject + // to its triggerAsyncId and findally remove it from the activities const tickObject = activities[tickObjectIdx]; - const newTriggerId = tickObject.triggerId; + const newTriggerId = tickObject.triggerAsyncId; const oldTriggerId = tickObject.uid; activities.forEach(function repointTriggerId(x) { - if (x.triggerId === oldTriggerId) x.triggerId = newTriggerId; + if (x.triggerAsyncId === oldTriggerId) x.triggerAsyncId = newTriggerId; }); activities.splice(tickObjectIdx, 1); } @@ -66,15 +66,15 @@ module.exports = function verifyGraph(hooks, graph) { idtouid[node.id] = x.uid; uidtoid[x.uid] = node.id; - if (node.triggerId == null) return; + if (node.triggerAsyncId == null) return; - const tid = idtouid[node.triggerId]; - if (x.triggerId === tid) return; + const tid = idtouid[node.triggerAsyncId]; + if (x.triggerAsyncId === tid) return; errors.push({ id: node.id, - expectedTid: node.triggerId, - actualTid: uidtoid[x.triggerId] + expectedTid: node.triggerAsyncId, + actualTid: uidtoid[x.triggerAsyncId] }); } @@ -108,8 +108,8 @@ module.exports.printGraph = function printGraph(hooks) { if (!ids[key]) ids[key] = 1; const id = key + ':' + ids[key]++; uidtoid[x.uid] = id; - const triggerId = uidtoid[x.triggerId] || null; - graph.push({ type: x.type, id, triggerId }); + const triggerAsyncId = uidtoid[x.triggerAsyncId] || null; + graph.push({ type: x.type, id, triggerAsyncId }); } inspect(graph); }; diff --git a/test/parallel/test-async-hooks-close-during-destroy.js b/test/parallel/test-async-hooks-close-during-destroy.js index 98e12e77fbcce1..abdeab2404251a 100644 --- a/test/parallel/test-async-hooks-close-during-destroy.js +++ b/test/parallel/test-async-hooks-close-during-destroy.js @@ -11,7 +11,7 @@ let destroyResCallCount = 0; let res2; async_hooks.createHook({ - init: common.mustCallAtLeast((id, provider, triggerId) => { + init: common.mustCallAtLeast((id, provider, triggerAsyncId) => { if (provider === 'foobar') initCalls.add(id); }, 2), diff --git a/test/parallel/test-async-hooks-run-in-async-id-scope.js b/test/parallel/test-async-hooks-run-in-async-id-scope.js index a283e9c30924be..8cef7d214c2b4f 100644 --- a/test/parallel/test-async-hooks-run-in-async-id-scope.js +++ b/test/parallel/test-async-hooks-run-in-async-id-scope.js @@ -6,8 +6,8 @@ const async_hooks = require('async_hooks'); const asyncId = async_hooks.newUid(); -assert.notStrictEqual(async_hooks.currentId(), asyncId); +assert.notStrictEqual(async_hooks.executionAsyncId(), asyncId); async_hooks.runInAsyncIdScope(asyncId, common.mustCall(() => { - assert.strictEqual(async_hooks.currentId(), asyncId); + assert.strictEqual(async_hooks.executionAsyncId(), asyncId); })); diff --git a/test/parallel/test-async-hooks-top-level-clearimmediate.js b/test/parallel/test-async-hooks-top-level-clearimmediate.js index f667c3ca337816..e7a5d8f5606118 100644 --- a/test/parallel/test-async-hooks-top-level-clearimmediate.js +++ b/test/parallel/test-async-hooks-top-level-clearimmediate.js @@ -9,11 +9,11 @@ const async_hooks = require('async_hooks'); let seenId, seenResource; async_hooks.createHook({ - init: common.mustCall((id, provider, triggerId, resource) => { + init: common.mustCall((id, provider, triggerAsyncId, resource) => { seenId = id; seenResource = resource; assert.strictEqual(provider, 'Immediate'); - assert.strictEqual(triggerId, 1); + assert.strictEqual(triggerAsyncId, 1); }), before: common.mustNotCall(), after: common.mustNotCall(), diff --git a/test/parallel/test-async-wrap-asyncresource-constructor.js b/test/parallel/test-async-wrap-asyncresource-constructor.js index c8ecf047405510..2465f9590735ae 100644 --- a/test/parallel/test-async-wrap-asyncresource-constructor.js +++ b/test/parallel/test-async-wrap-asyncresource-constructor.js @@ -16,8 +16,8 @@ assert.throws(() => { assert.throws(() => { new AsyncResource('type', -4); -}, /^RangeError: triggerId must be an unsigned integer$/); +}, /^RangeError: triggerAsyncId must be an unsigned integer$/); assert.throws(() => { new AsyncResource('type', Math.PI); -}, /^RangeError: triggerId must be an unsigned integer$/); +}, /^RangeError: triggerAsyncId must be an unsigned integer$/); diff --git a/test/parallel/test-async-wrap-trigger-id.js b/test/parallel/test-async-wrap-trigger-id.js index 53e84a351eed62..271fe3b107e0dc 100644 --- a/test/parallel/test-async-wrap-trigger-id.js +++ b/test/parallel/test-async-wrap-trigger-id.js @@ -3,26 +3,26 @@ require('../common'); const assert = require('assert'); const async_hooks = require('async_hooks'); -const triggerId = async_hooks.triggerId; +const triggerAsyncId = async_hooks.triggerAsyncId; -const triggerId0 = triggerId(); -let triggerId1; +const triggerAsyncId0 = triggerAsyncId(); +let triggerAsyncId1; process.nextTick(() => { process.nextTick(() => { - triggerId1 = triggerId(); + triggerAsyncId1 = triggerAsyncId(); assert.notStrictEqual( - triggerId0, - triggerId1, + triggerAsyncId0, + triggerAsyncId1, 'Async resources having different causal ancestry ' + - 'should have different triggerIds'); + 'should have different triggerAsyncIds'); }); process.nextTick(() => { - const triggerId2 = triggerId(); + const triggerAsyncId2 = triggerAsyncId(); assert.strictEqual( - triggerId1, - triggerId2, + triggerAsyncId1, + triggerAsyncId2, 'Async resources having the same causal ancestry ' + - 'should have the same triggerId'); + 'should have the same triggerAsyncId'); }); }); diff --git a/test/parallel/test-async-wrap-uncaughtexception.js b/test/parallel/test-async-wrap-uncaughtexception.js index c6ff06397e26d1..f5f81f10052966 100644 --- a/test/parallel/test-async-wrap-uncaughtexception.js +++ b/test/parallel/test-async-wrap-uncaughtexception.js @@ -35,13 +35,13 @@ hooks = async_hooks.createHook({ process.on('uncaughtException', common.mustCall(() => { - assert.strictEqual(call_id, async_hooks.currentId()); + assert.strictEqual(call_id, async_hooks.executionAsyncId()); call_log[2]++; })); require('crypto').randomBytes(1, common.mustCall(() => { - assert.strictEqual(call_id, async_hooks.currentId()); + assert.strictEqual(call_id, async_hooks.executionAsyncId()); call_log[1]++; throw new Error('ah crap'); })); From 74741fa52bdb9879b57dee85dc47ec16b8c6147f Mon Sep 17 00:00:00 2001 From: XadillaX Date: Sat, 10 Jun 2017 14:09:35 -0400 Subject: [PATCH 008/248] https: make opts optional & immutable when create `opts` in `createServer` will be immutable that won't change origional opts value. What's more, it's optional which can make `requestListener` be the first argument. PR-URL: https://github.com/nodejs/node/pull/13599 Fixes: https://github.com/nodejs/node/issues/13584 Reviewed-By: Refael Ackermann Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Yorkie Liu Reviewed-By: James M Snell Reviewed-By: Brian White --- doc/api/https.md | 2 +- lib/https.js | 6 +++ .../test-https-argument-of-creating.js | 44 +++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 test/parallel/test-https-argument-of-creating.js diff --git a/doc/api/https.md b/doc/api/https.md index f4000335a00770..f6c56ef8ed7efb 100644 --- a/doc/api/https.md +++ b/doc/api/https.md @@ -46,7 +46,7 @@ added: v8.0.0 See [`http.Server#keepAliveTimeout`][]. -## https.createServer(options[, requestListener]) +## https.createServer([options][, requestListener]) diff --git a/lib/https.js b/lib/https.js index 457327d6bbb729..fb220872598315 100644 --- a/lib/https.js +++ b/lib/https.js @@ -34,6 +34,12 @@ const { urlToOptions, searchParamsSymbol } = require('internal/url'); function Server(opts, requestListener) { if (!(this instanceof Server)) return new Server(opts, requestListener); + if (typeof opts === 'function') { + requestListener = opts; + opts = undefined; + } + opts = util._extend({}, opts); + if (process.features.tls_npn && !opts.NPNProtocols) { opts.NPNProtocols = ['http/1.1', 'http/1.0']; } diff --git a/test/parallel/test-https-argument-of-creating.js b/test/parallel/test-https-argument-of-creating.js new file mode 100644 index 00000000000000..87d934316f887c --- /dev/null +++ b/test/parallel/test-https-argument-of-creating.js @@ -0,0 +1,44 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) { + common.skip('missing crypto'); + return; +} + +const assert = require('assert'); +const https = require('https'); +const tls = require('tls'); + +const dftProtocol = {}; + +// test for immutable `opts` +{ + const opts = { foo: 'bar', NPNProtocols: [ 'http/1.1' ] }; + const server = https.createServer(opts); + + tls.convertNPNProtocols([ 'http/1.1' ], dftProtocol); + assert.deepStrictEqual(opts, { foo: 'bar', NPNProtocols: [ 'http/1.1' ] }); + assert.strictEqual(server.NPNProtocols.compare(dftProtocol.NPNProtocols), 0); +} + + +// validate that `createServer` can work with the only argument requestListener +{ + const mustNotCall = common.mustNotCall(); + const server = https.createServer(mustNotCall); + + tls.convertNPNProtocols([ 'http/1.1', 'http/1.0' ], dftProtocol); + assert.strictEqual(server.NPNProtocols.compare(dftProtocol.NPNProtocols), 0); + assert.strictEqual(server.listeners('request').length, 1); + assert.strictEqual(server.listeners('request')[0], mustNotCall); +} + + +// validate that `createServer` can work with no arguments +{ + const server = https.createServer(); + + assert.strictEqual(server.NPNProtocols.compare(dftProtocol.NPNProtocols), 0); + assert.strictEqual(server.listeners('request').length, 0); +} From e2d325403f4ea53c112c27acc880931723b2a797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20F=2E=20Romaniello?= Date: Wed, 29 Jun 2016 10:29:19 -0300 Subject: [PATCH 009/248] tls: add host and port info to ECONNRESET errors Add more information to the "ECONNRESET" errors generated when the socket hang ups before establishing the secure connection. These kind of errors are really hard to troubleshoot without this info. PR-URL: https://github.com/nodejs/node/pull/7476 Reviewed-By: Trevor Norris Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Fedor Indutny Reviewed-By: Ben Noordhuis Reviewed-By: Santiago Gimeno Reviewed-By: Yazhong Liu --- lib/_tls_wrap.js | 4 +++ .../test-tls-wrap-econnreset-localaddress.js | 25 ++++++++++++++++++ .../parallel/test-tls-wrap-econnreset-pipe.js | 22 ++++++++++++++++ .../test-tls-wrap-econnreset-socket.js | 26 +++++++++++++++++++ test/parallel/test-tls-wrap-econnreset.js | 22 ++++++++++++++++ 5 files changed, 99 insertions(+) create mode 100644 test/parallel/test-tls-wrap-econnreset-localaddress.js create mode 100644 test/parallel/test-tls-wrap-econnreset-pipe.js create mode 100644 test/parallel/test-tls-wrap-econnreset-socket.js create mode 100644 test/parallel/test-tls-wrap-econnreset.js diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index eba8aada150bd2..aba633a8ac2080 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -1129,6 +1129,10 @@ exports.connect = function(...args /* [port,] [host,] [options,] [cb] */) { socket._hadError = true; var error = new Error('socket hang up'); error.code = 'ECONNRESET'; + error.path = options.path; + error.host = options.host; + error.port = options.port; + error.localAddress = options.localAddress; socket.destroy(error); } } diff --git a/test/parallel/test-tls-wrap-econnreset-localaddress.js b/test/parallel/test-tls-wrap-econnreset-localaddress.js new file mode 100644 index 00000000000000..981e57248aee03 --- /dev/null +++ b/test/parallel/test-tls-wrap-econnreset-localaddress.js @@ -0,0 +1,25 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); +const tls = require('tls'); + +const server = net.createServer((c) => { + c.end(); +}).listen(common.mustCall(() => { + const port = server.address().port; + + tls.connect({ + port: port, + localAddress: common.localhostIPv4 + }, common.localhostIPv4) + .once('error', common.mustCall((e) => { + assert.strictEqual(e.code, 'ECONNRESET'); + assert.strictEqual(e.path, undefined); + assert.strictEqual(e.host, undefined); + assert.strictEqual(e.port, port); + assert.strictEqual(e.localAddress, common.localhostIPv4); + server.close(); + })); +})); diff --git a/test/parallel/test-tls-wrap-econnreset-pipe.js b/test/parallel/test-tls-wrap-econnreset-pipe.js new file mode 100644 index 00000000000000..5925d65658e7cc --- /dev/null +++ b/test/parallel/test-tls-wrap-econnreset-pipe.js @@ -0,0 +1,22 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const tls = require('tls'); +const net = require('net'); + +common.refreshTmpDir(); + +const server = net.createServer((c) => { + c.end(); +}).listen(common.PIPE, common.mustCall(() => { + tls.connect({ path: common.PIPE }) + .once('error', common.mustCall((e) => { + assert.strictEqual(e.code, 'ECONNRESET'); + assert.strictEqual(e.path, common.PIPE); + assert.strictEqual(e.port, undefined); + assert.strictEqual(e.host, undefined); + assert.strictEqual(e.localAddress, undefined); + server.close(); + })); +})); diff --git a/test/parallel/test-tls-wrap-econnreset-socket.js b/test/parallel/test-tls-wrap-econnreset-socket.js new file mode 100644 index 00000000000000..ba7511c1944ca6 --- /dev/null +++ b/test/parallel/test-tls-wrap-econnreset-socket.js @@ -0,0 +1,26 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); +const tls = require('tls'); + +const server = net.createServer((c) => { + c.end(); +}).listen(common.mustCall(() => { + const port = server.address().port; + + const socket = new net.Socket(); + + tls.connect({ socket }) + .once('error', common.mustCall((e) => { + assert.strictEqual(e.code, 'ECONNRESET'); + assert.strictEqual(e.path, undefined); + assert.strictEqual(e.host, undefined); + assert.strictEqual(e.port, undefined); + assert.strictEqual(e.localAddress, undefined); + server.close(); + })); + + socket.connect(port); +})); diff --git a/test/parallel/test-tls-wrap-econnreset.js b/test/parallel/test-tls-wrap-econnreset.js new file mode 100644 index 00000000000000..07fdaf6b221b55 --- /dev/null +++ b/test/parallel/test-tls-wrap-econnreset.js @@ -0,0 +1,22 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); +const tls = require('tls'); + +const server = net.createServer((c) => { + c.end(); +}).listen(common.mustCall(() => { + const port = server.address().port; + + tls.connect(port, common.localhostIPv4) + .once('error', common.mustCall((e) => { + assert.strictEqual(e.code, 'ECONNRESET'); + assert.strictEqual(e.path, undefined); + assert.strictEqual(e.host, common.localhostIPv4); + assert.strictEqual(e.port, port); + assert.strictEqual(e.localAddress, undefined); + server.close(); + })); +})); From 69f806cc55103a2fca7c7dc7019126740c1a249e Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Wed, 7 Jun 2017 12:48:35 -0700 Subject: [PATCH 010/248] net: return this from destroy() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/13530 Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Jeremiah Senkpiel Reviewed-By: Michael Dawson Reviewed-By: Gibson Fahnestock Reviewed-By: Matteo Collina Reviewed-By: James M Snell --- doc/api/net.md | 2 ++ doc/api/stream.md | 4 +++- lib/internal/streams/destroy.js | 4 +++- test/parallel/test-net-socket-destroy-send.js | 3 ++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/doc/api/net.md b/doc/api/net.md index 6eb661b43af90c..86c9159bcfbcab 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -643,6 +643,8 @@ callback. added: v0.1.90 --> +* Returns: {net.Socket} + Ensures that no more I/O activity happens on this socket. Only necessary in case of errors (parse error or so). diff --git a/doc/api/stream.md b/doc/api/stream.md index ca37243c90e62d..ff1b0c78fbcc29 100644 --- a/doc/api/stream.md +++ b/doc/api/stream.md @@ -515,8 +515,10 @@ A Writable stream in object mode will always ignore the `encoding` argument. added: v8.0.0 --> +* Returns: `this` + Destroy the stream, and emit the passed error. After this call, the -writible stream has ended. Implementors should not override this method, +writable stream has ended. Implementors should not override this method, but instead implement [`writable._destroy`][writable-_destroy]. ### Readable Streams diff --git a/lib/internal/streams/destroy.js b/lib/internal/streams/destroy.js index 37e7d4bc364299..86a22633f2fe78 100644 --- a/lib/internal/streams/destroy.js +++ b/lib/internal/streams/destroy.js @@ -14,7 +14,7 @@ function destroy(err, cb) { (!this._writableState || !this._writableState.errorEmitted)) { process.nextTick(emitErrorNT, this, err); } - return; + return this; } // we set destroyed to true before firing error callbacks in order @@ -39,6 +39,8 @@ function destroy(err, cb) { cb(err); } }); + + return this; } function undestroy() { diff --git a/test/parallel/test-net-socket-destroy-send.js b/test/parallel/test-net-socket-destroy-send.js index 309e41f6c94e6d..6dc4b9566a3900 100644 --- a/test/parallel/test-net-socket-destroy-send.js +++ b/test/parallel/test-net-socket-destroy-send.js @@ -10,7 +10,8 @@ server.listen(0, common.mustCall(function() { const conn = net.createConnection(port); conn.on('connect', common.mustCall(function() { - conn.destroy(); + // Test destroy returns this, even on multiple calls when it short-circuits. + assert.strictEqual(conn, conn.destroy().destroy()); conn.on('error', common.mustCall(function(err) { assert.strictEqual(err.message, 'This socket is closed'); })); From a839aede3ecece7a8e5b1b355e6e2f1c2e407db9 Mon Sep 17 00:00:00 2001 From: Sam Roberts Date: Wed, 7 Jun 2017 12:49:00 -0700 Subject: [PATCH 011/248] net: return this from getConnections() PR-URL: https://github.com/nodejs/node/pull/13553 Reviewed-By: Colin Ihrig Reviewed-By: Roman Reiss Reviewed-By: Luigi Pinca Reviewed-By: Gibson Fahnestock Reviewed-By: James M Snell --- doc/api/net.md | 2 ++ lib/net.js | 5 ++++- test/parallel/test-net-pingpong.js | 11 +++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/doc/api/net.md b/doc/api/net.md index 86c9159bcfbcab..c66b87a261152b 100644 --- a/doc/api/net.md +++ b/doc/api/net.md @@ -162,6 +162,8 @@ connections use asynchronous `server.getConnections` instead. added: v0.9.7 --> +* Returns {net.Server} + Asynchronously get the number of concurrent connections on the server. Works when sockets were sent to forks. diff --git a/lib/net.js b/lib/net.js index 19f69aaaad73b8..278153d3bdffc7 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1558,7 +1558,8 @@ Server.prototype.getConnections = function(cb) { } if (!this._usingSlaves) { - return end(null, this._connections); + end(null, this._connections); + return this; } // Poll slaves @@ -1578,6 +1579,8 @@ Server.prototype.getConnections = function(cb) { for (var n = 0; n < this._slaves.length; n++) { this._slaves[n].getConnections(oncount); } + + return this; }; diff --git a/test/parallel/test-net-pingpong.js b/test/parallel/test-net-pingpong.js index d030d069c6d1d7..c83cfaf94349df 100644 --- a/test/parallel/test-net-pingpong.js +++ b/test/parallel/test-net-pingpong.js @@ -37,10 +37,13 @@ function pingPongTest(port, host) { function onSocket(socket) { assert.strictEqual(socket.server, server); - server.getConnections(common.mustCall(function(err, connections) { - assert.ifError(err); - assert.strictEqual(connections, 1); - })); + assert.strictEqual( + server, + server.getConnections(common.mustCall(function(err, connections) { + assert.ifError(err); + assert.strictEqual(connections, 1); + })) + ); socket.setNoDelay(); socket.timeout = 0; From 820b011ed648999f54216098f34545feb90c803b Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 5 Jun 2017 10:53:54 +0200 Subject: [PATCH 012/248] doc: update minimum g++ version to 4.9.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 4.8.x releases don't fully support C++11. Update the prerequisites for node.js 8 so that we won't have to work around compiler bugs in the future. To be decided if we should also update the minimum clang version. I believe clang 3.4.2 properly supports C++11 but am not 100% sure. PR-URL: https://github.com/nodejs/node/pull/13466 Ref: https://github.com/nodejs/node/pull/11840 Reviewed-By: Gibson Fahnestock Reviewed-By: Tobias Nießen Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Michael Dawson Reviewed-By: Colin Ihrig Reviewed-By: Nikolai Vavilov --- BUILDING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 9c1fb6899911c4..47630ddf150216 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -65,7 +65,7 @@ Depending on host platform, the selection of toolchains may vary. #### Unix -* GCC 4.8.5 or newer +* GCC 4.9.4 or newer * Clang 3.4.2 or newer #### Windows @@ -80,8 +80,8 @@ Depending on host platform, the selection of toolchains may vary. Prerequisites: -* `gcc` and `g++` 4.8.5 or newer, or -* `clang` and `clang++` 3.4.2 or newer +* `gcc` and `g++` 4.9.4 or newer, or +* `clang` and `clang++` 3.4.2 or newer (macOS: latest Xcode Command Line Tools) * Python 2.6 or 2.7 * GNU Make 3.81 or newer From a45792a383d89914801bf9d095a96e654d81fe43 Mon Sep 17 00:00:00 2001 From: Eugene Ostroukhov Date: Mon, 5 Jun 2017 10:17:20 -0700 Subject: [PATCH 013/248] inspector: perform DNS lookup for host PR-URL: https://github.com/nodejs/node/pull/13478 Fixes: https://github.com/nodejs/node/issues/13477 Reviewed-By: Sam Roberts Reviewed-By: Refael Ackermann Reviewed-By: Ben Noordhuis --- src/inspector_agent.cc | 8 +- src/inspector_io.cc | 2 +- src/inspector_io.h | 4 + src/inspector_socket.h | 1 + src/inspector_socket_server.cc | 382 +++++++++++++------- src/inspector_socket_server.h | 37 +- test/cctest/test_inspector_socket_server.cc | 72 +++- 7 files changed, 343 insertions(+), 163 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index f1acfa64b4ad13..bfa2b082b4ef35 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -702,13 +702,7 @@ void Url(const FunctionCallbackInfo& args) { if (ids.empty()) return; - std::string url = "ws://"; - url += io->host(); - url += ":"; - url += std::to_string(io->port()); - url += "/"; - url += ids[0]; - + std::string url = FormatWsAddress(io->host(), io->port(), ids[0], true); args.GetReturnValue().Set(OneByteString(env->isolate(), url.c_str())); } diff --git a/src/inspector_io.cc b/src/inspector_io.cc index 69eed62ab4729a..a7d69263edad6d 100644 --- a/src/inspector_io.cc +++ b/src/inspector_io.cc @@ -313,7 +313,7 @@ void InspectorIo::ThreadMain() { uv_sem_post(&thread_start_sem_); return; } - port_ = server.port(); // Safe, main thread is waiting on semaphore. + port_ = server.Port(); // Safe, main thread is waiting on semaphore. if (!wait_for_connect_) { uv_sem_post(&thread_start_sem_); } diff --git a/src/inspector_io.h b/src/inspector_io.h index 6ef2ea54c4745d..7c15466eed91ff 100644 --- a/src/inspector_io.h +++ b/src/inspector_io.h @@ -28,6 +28,10 @@ class StringView; namespace node { namespace inspector { +std::string FormatWsAddress(const std::string& host, int port, + const std::string& target_id, + bool include_protocol); + class InspectorIoDelegate; enum class InspectorAction { diff --git a/src/inspector_socket.h b/src/inspector_socket.h index 7cd8254fb3f4d2..ee4bd7835c75ff 100644 --- a/src/inspector_socket.h +++ b/src/inspector_socket.h @@ -63,6 +63,7 @@ class InspectorSocket { bool ws_mode; bool shutting_down; bool connection_eof; + private: DISALLOW_COPY_AND_ASSIGN(InspectorSocket); }; diff --git a/src/inspector_socket_server.cc b/src/inspector_socket_server.cc index f3e56b6ceb53e0..cdc907ee9b263b 100644 --- a/src/inspector_socket_server.cc +++ b/src/inspector_socket_server.cc @@ -12,6 +12,28 @@ namespace node { namespace inspector { +// Function is declared in inspector_io.h so the rest of the node does not +// depend on inspector_socket_server.h +std::string FormatWsAddress(const std::string& host, int port, + const std::string& target_id, + bool include_protocol) { + // Host is valid (socket was bound) so colon means it's a v6 IP address + bool v6 = host.find(':') != std::string::npos; + std::ostringstream url; + if (include_protocol) + url << "ws://"; + if (v6) { + url << '['; + } + url << host; + if (v6) { + url << ']'; + } + url << ':' << port << '/' << target_id; + return url.str(); +} + + namespace { static const uint8_t PROTOCOL_JSON[] = { @@ -24,12 +46,6 @@ void Escape(std::string* string) { } } -std::string GetWsUrl(const std::string& host, int port, const std::string& id) { - char buf[1024]; - snprintf(buf, sizeof(buf), "%s:%d/%s", host.c_str(), port, id.c_str()); - return buf; -} - std::string MapToString(const std::map& object) { bool first = true; std::ostringstream json; @@ -82,8 +98,8 @@ void PrintDebuggerReadyMessage(const std::string& host, return; } for (const std::string& id : ids) { - fprintf(out, "Debugger listening on ws://%s\n", - GetWsUrl(host, port, id).c_str()); + fprintf(out, "Debugger listening on %s\n", + FormatWsAddress(host, port, id, true).c_str()); } fprintf(out, "For help see %s\n", "https://nodejs.org/en/docs/inspector"); @@ -151,24 +167,6 @@ int GetSocketHost(uv_tcp_t* socket, std::string* out_host) { *out_host = ip; return err; } - -int GetPort(uv_tcp_t* socket, int* out_port) { - sockaddr_storage addr; - int len = sizeof(addr); - int err = uv_tcp_getsockname(socket, - reinterpret_cast(&addr), - &len); - if (err != 0) - return err; - int port; - if (addr.ss_family == AF_INET6) - port = reinterpret_cast(&addr)->sin6_port; - else - port = reinterpret_cast(&addr)->sin_port; - *out_port = ntohs(port); - return err; -} - } // namespace @@ -211,34 +209,77 @@ class Closer { class SocketSession { public: - SocketSession(InspectorSocketServer* server, int id); + static int Accept(InspectorSocketServer* server, int server_port, + uv_stream_t* server_socket); + void Send(const std::string& message); void Close(); - void Declined() { state_ = State::kDeclined; } + + int id() const { return id_; } + bool IsForTarget(const std::string& target_id) const { + return target_id_ == target_id; + } + static int ServerPortForClient(InspectorSocket* client) { + return From(client)->server_port_; + } + + private: + SocketSession(InspectorSocketServer* server, int server_port); static SocketSession* From(InspectorSocket* socket) { return node::ContainerOf(&SocketSession::socket_, socket); } + + enum class State { kHttp, kWebSocket, kClosing, kEOF, kDeclined }; + static bool HandshakeCallback(InspectorSocket* socket, + enum inspector_handshake_event state, + const std::string& path); + static void ReadCallback(uv_stream_t* stream, ssize_t read, + const uv_buf_t* buf); + static void CloseCallback(InspectorSocket* socket, int code); + void FrontendConnected(); - InspectorSocketServer* GetServer() { return server_; } - int Id() { return id_; } - void Send(const std::string& message); + void SetDeclined() { state_ = State::kDeclined; } void SetTargetId(const std::string& target_id) { CHECK(target_id_.empty()); target_id_ = target_id; } - InspectorSocket* Socket() { return &socket_; } - const std::string TargetId() { return target_id_; } - private: - enum class State { kHttp, kWebSocket, kClosing, kEOF, kDeclined }; - static void CloseCallback(InspectorSocket* socket, int code); - static void ReadCallback(uv_stream_t* stream, ssize_t read, - const uv_buf_t* buf); - void OnRemoteDataIO(ssize_t read, const uv_buf_t* buf); const int id_; InspectorSocket socket_; InspectorSocketServer* server_; std::string target_id_; State state_; + const int server_port_; +}; + +class ServerSocket { + public: + static int Listen(InspectorSocketServer* inspector_server, + sockaddr* addr, uv_loop_t* loop); + void Close() { + uv_close(reinterpret_cast(&tcp_socket_), + SocketClosedCallback); + } + int port() const { return port_; } + + private: + explicit ServerSocket(InspectorSocketServer* server) + : tcp_socket_(uv_tcp_t()), server_(server), port_(-1) {} + template + static ServerSocket* FromTcpSocket(UvHandle* socket) { + return node::ContainerOf(&ServerSocket::tcp_socket_, + reinterpret_cast(socket)); + } + + static void SocketConnectedCallback(uv_stream_t* tcp_socket, int status); + static void SocketClosedCallback(uv_handle_t* tcp_socket); + static void FreeOnCloseCallback(uv_handle_t* tcp_socket_) { + delete FromTcpSocket(tcp_socket_); + } + int DetectPort(); + + uv_tcp_t tcp_socket_; + InspectorSocketServer* server_; + int port_; }; InspectorSocketServer::InspectorSocketServer(SocketServerDelegate* delegate, @@ -249,58 +290,29 @@ InspectorSocketServer::InspectorSocketServer(SocketServerDelegate* delegate, delegate_(delegate), host_(host), port_(port), - server_(uv_tcp_t()), closer_(nullptr), next_session_id_(0), out_(out) { state_ = ServerState::kNew; } -// static -bool InspectorSocketServer::HandshakeCallback(InspectorSocket* socket, - inspector_handshake_event event, - const std::string& path) { - InspectorSocketServer* server = SocketSession::From(socket)->GetServer(); - const std::string& id = path.empty() ? path : path.substr(1); - switch (event) { - case kInspectorHandshakeHttpGet: - return server->RespondToGet(socket, path); - case kInspectorHandshakeUpgrading: - return server->SessionStarted(SocketSession::From(socket), id); - case kInspectorHandshakeUpgraded: - SocketSession::From(socket)->FrontendConnected(); - return true; - case kInspectorHandshakeFailed: - server->SessionTerminated(SocketSession::From(socket)); - return false; - default: - UNREACHABLE(); - return false; - } -} - bool InspectorSocketServer::SessionStarted(SocketSession* session, const std::string& id) { - bool connected = false; - if (TargetExists(id)) { - connected = delegate_->StartSession(session->Id(), id); - } - if (connected) { - connected_sessions_[session->Id()] = session; - session->SetTargetId(id); + if (TargetExists(id) && delegate_->StartSession(session->id(), id)) { + connected_sessions_[session->id()] = session; + return true; } else { - session->Declined(); + return false; } - return connected; } void InspectorSocketServer::SessionTerminated(SocketSession* session) { - int id = session->Id(); + int id = session->id(); if (connected_sessions_.erase(id) != 0) { delegate_->EndSession(id); if (connected_sessions_.empty()) { - if (state_ == ServerState::kRunning) { - PrintDebuggerReadyMessage(host_, port_, + if (state_ == ServerState::kRunning && !server_sockets_.empty()) { + PrintDebuggerReadyMessage(host_, server_sockets_[0]->port(), delegate_->GetTargetIds(), out_); } if (state_ == ServerState::kStopped) { @@ -311,8 +323,8 @@ void InspectorSocketServer::SessionTerminated(SocketSession* session) { delete session; } -bool InspectorSocketServer::RespondToGet(InspectorSocket* socket, - const std::string& path) { +bool InspectorSocketServer::HandleGetRequest(InspectorSocket* socket, + const std::string& path) { const char* command = MatchPathSegment(path.c_str(), "/json"); if (command == nullptr) return false; @@ -354,21 +366,22 @@ void InspectorSocketServer::SendListResponse(InspectorSocket* socket) { bool connected = false; for (const auto& session : connected_sessions_) { - if (session.second->TargetId() == id) { + if (session.second->IsForTarget(id)) { connected = true; break; } } if (!connected) { std::string host; + int port = SocketSession::ServerPortForClient(socket); GetSocketHost(&socket->tcp, &host); - std::string address = GetWsUrl(host, port_, id); std::ostringstream frontend_url; frontend_url << "chrome-devtools://devtools/bundled"; frontend_url << "/inspector.html?experiments=true&v8only=true&ws="; - frontend_url << address; + frontend_url << FormatWsAddress(host, port, id, false); target_map["devtoolsFrontendUrl"] += frontend_url.str(); - target_map["webSocketDebuggerUrl"] = "ws://" + address; + target_map["webSocketDebuggerUrl"] = + FormatWsAddress(host, port, id, true); } } SendHttpResponse(socket, MapsToString(response)); @@ -376,30 +389,44 @@ void InspectorSocketServer::SendListResponse(InspectorSocket* socket) { bool InspectorSocketServer::Start() { CHECK_EQ(state_, ServerState::kNew); - sockaddr_in addr; - uv_tcp_init(loop_, &server_); - uv_ip4_addr(host_.c_str(), port_, &addr); - int err = uv_tcp_bind(&server_, - reinterpret_cast(&addr), 0); - if (err == 0) - err = GetPort(&server_, &port_); - if (err == 0) { - err = uv_listen(reinterpret_cast(&server_), 1, - SocketConnectedCallback); + struct addrinfo hints; + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_NUMERICSERV; + hints.ai_socktype = SOCK_STREAM; + uv_getaddrinfo_t req; + const std::string port_string = std::to_string(port_); + int err = uv_getaddrinfo(loop_, &req, nullptr, host_.c_str(), + port_string.c_str(), &hints); + if (err < 0) { + if (out_ != NULL) { + fprintf(out_, "Unable to resolve \"%s\": %s\n", host_.c_str(), + uv_strerror(err)); + } + return false; } - if (err == 0 && connected_sessions_.empty()) { - state_ = ServerState::kRunning; - PrintDebuggerReadyMessage(host_, port_, delegate_->GetTargetIds(), out_); + for (addrinfo* address = req.addrinfo; address != nullptr; + address = address->ai_next) { + err = ServerSocket::Listen(this, address->ai_addr, loop_); } - if (err != 0 && connected_sessions_.empty()) { + uv_freeaddrinfo(req.addrinfo); + + if (!connected_sessions_.empty()) { + return true; + } + // We only show error if we failed to start server on all addresses. We only + // show one error, for the last address. + if (server_sockets_.empty()) { if (out_ != NULL) { fprintf(out_, "Starting inspector on %s:%d failed: %s\n", host_.c_str(), port_, uv_strerror(err)); fflush(out_); } - uv_close(reinterpret_cast(&server_), nullptr); return false; } + state_ = ServerState::kRunning; + // getaddrinfo sorts the addresses, so the first port is most relevant. + PrintDebuggerReadyMessage(host_, server_sockets_[0]->port(), + delegate_->GetTargetIds(), out_); return true; } @@ -411,7 +438,8 @@ void InspectorSocketServer::Stop(ServerCallback cb) { closer_->AddCallback(cb); closer_->IncreaseExpectedCount(); state_ = ServerState::kStopping; - uv_close(reinterpret_cast(&server_), ServerClosedCallback); + for (ServerSocket* server_socket : server_sockets_) + server_socket->Close(); closer_->NotifyIfDone(); } @@ -434,37 +462,41 @@ void InspectorSocketServer::Send(int session_id, const std::string& message) { } } -// static -void InspectorSocketServer::ServerClosedCallback(uv_handle_t* server) { - InspectorSocketServer* socket_server = InspectorSocketServer::From(server); - CHECK_EQ(socket_server->state_, ServerState::kStopping); - if (socket_server->closer_) { - socket_server->closer_->DecreaseExpectedCount(); +void InspectorSocketServer::ServerSocketListening(ServerSocket* server_socket) { + server_sockets_.push_back(server_socket); +} + +void InspectorSocketServer::ServerSocketClosed(ServerSocket* server_socket) { + CHECK_EQ(state_, ServerState::kStopping); + + server_sockets_.erase(std::remove(server_sockets_.begin(), + server_sockets_.end(), server_socket), + server_sockets_.end()); + if (!server_sockets_.empty()) + return; + + if (closer_ != nullptr) { + closer_->DecreaseExpectedCount(); } - if (socket_server->connected_sessions_.empty()) { - socket_server->delegate_->ServerDone(); + if (connected_sessions_.empty()) { + delegate_->ServerDone(); } - socket_server->state_ = ServerState::kStopped; + state_ = ServerState::kStopped; } -// static -void InspectorSocketServer::SocketConnectedCallback(uv_stream_t* server, - int status) { - if (status == 0) { - InspectorSocketServer* socket_server = InspectorSocketServer::From(server); - // Memory is freed when the socket closes. - SocketSession* session = - new SocketSession(socket_server, socket_server->next_session_id_++); - if (inspector_accept(server, session->Socket(), HandshakeCallback) != 0) { - delete session; - } +int InspectorSocketServer::Port() const { + if (!server_sockets_.empty()) { + return server_sockets_[0]->port(); } + return port_; } // InspectorSession tracking -SocketSession::SocketSession(InspectorSocketServer* server, int id) - : id_(id), server_(server), - state_(State::kHttp) { } +SocketSession::SocketSession(InspectorSocketServer* server, int server_port) + : id_(server->GenerateSessionId()), + server_(server), + state_(State::kHttp), + server_port_(server_port) { } void SocketSession::Close() { CHECK_NE(state_, State::kClosing); @@ -472,6 +504,49 @@ void SocketSession::Close() { inspector_close(&socket_, CloseCallback); } +// static +int SocketSession::Accept(InspectorSocketServer* server, int server_port, + uv_stream_t* server_socket) { + // Memory is freed when the socket closes. + SocketSession* session = new SocketSession(server, server_port); + int err = inspector_accept(server_socket, &session->socket_, + HandshakeCallback); + if (err != 0) { + delete session; + } + return err; +} + +// static +bool SocketSession::HandshakeCallback(InspectorSocket* socket, + inspector_handshake_event event, + const std::string& path) { + SocketSession* session = SocketSession::From(socket); + InspectorSocketServer* server = session->server_; + const std::string& id = path.empty() ? path : path.substr(1); + switch (event) { + case kInspectorHandshakeHttpGet: + return server->HandleGetRequest(socket, path); + case kInspectorHandshakeUpgrading: + if (server->SessionStarted(session, id)) { + session->SetTargetId(id); + return true; + } else { + session->SetDeclined(); + return false; + } + case kInspectorHandshakeUpgraded: + session->FrontendConnected(); + return true; + case kInspectorHandshakeFailed: + server->SessionTerminated(session); + return false; + default: + UNREACHABLE(); + return false; + } +} + // static void SocketSession::CloseCallback(InspectorSocket* socket, int code) { SocketSession* session = SocketSession::From(socket); @@ -489,14 +564,12 @@ void SocketSession::FrontendConnected() { void SocketSession::ReadCallback(uv_stream_t* stream, ssize_t read, const uv_buf_t* buf) { InspectorSocket* socket = inspector_from_stream(stream); - SocketSession::From(socket)->OnRemoteDataIO(read, buf); -} - -void SocketSession::OnRemoteDataIO(ssize_t read, const uv_buf_t* buf) { + SocketSession* session = SocketSession::From(socket); if (read > 0) { - server_->Delegate()->MessageReceived(id_, std::string(buf->base, read)); + session->server_->MessageReceived(session->id_, + std::string(buf->base, read)); } else { - Close(); + session->Close(); } if (buf != nullptr && buf->base != nullptr) delete[] buf->base; @@ -506,5 +579,62 @@ void SocketSession::Send(const std::string& message) { inspector_write(&socket_, message.data(), message.length()); } +// ServerSocket implementation +int ServerSocket::DetectPort() { + sockaddr_storage addr; + int len = sizeof(addr); + int err = uv_tcp_getsockname(&tcp_socket_, + reinterpret_cast(&addr), &len); + if (err != 0) + return err; + int port; + if (addr.ss_family == AF_INET6) + port = reinterpret_cast(&addr)->sin6_port; + else + port = reinterpret_cast(&addr)->sin_port; + port_ = ntohs(port); + return err; +} + +// static +int ServerSocket::Listen(InspectorSocketServer* inspector_server, + sockaddr* addr, uv_loop_t* loop) { + ServerSocket* server_socket = new ServerSocket(inspector_server); + uv_tcp_t* server = &server_socket->tcp_socket_; + CHECK_EQ(0, uv_tcp_init(loop, server)); + int err = uv_tcp_bind(server, addr, 0); + if (err == 0) { + err = uv_listen(reinterpret_cast(server), 1, + ServerSocket::SocketConnectedCallback); + } + if (err == 0) { + err = server_socket->DetectPort(); + } + if (err == 0) { + inspector_server->ServerSocketListening(server_socket); + } else { + uv_close(reinterpret_cast(server), FreeOnCloseCallback); + } + return err; +} + +// static +void ServerSocket::SocketConnectedCallback(uv_stream_t* tcp_socket, + int status) { + if (status == 0) { + ServerSocket* server_socket = ServerSocket::FromTcpSocket(tcp_socket); + // Memory is freed when the socket closes. + SocketSession::Accept(server_socket->server_, server_socket->port_, + tcp_socket); + } +} + +// static +void ServerSocket::SocketClosedCallback(uv_handle_t* tcp_socket) { + ServerSocket* server_socket = ServerSocket::FromTcpSocket(tcp_socket); + server_socket->server_->ServerSocketClosed(server_socket); + delete server_socket; +} + } // namespace inspector } // namespace node diff --git a/src/inspector_socket_server.h b/src/inspector_socket_server.h index 4c606ee77a15f3..16b047da333f68 100644 --- a/src/inspector_socket_server.h +++ b/src/inspector_socket_server.h @@ -18,6 +18,7 @@ namespace inspector { class Closer; class SocketSession; +class ServerSocket; class SocketServerDelegate { public: @@ -54,28 +55,27 @@ class InspectorSocketServer { // kKill void TerminateConnections(); - int port() { - return port_; + int Port() const; + + // Server socket lifecycle. There may be multiple sockets + void ServerSocketListening(ServerSocket* server_socket); + void ServerSocketClosed(ServerSocket* server_socket); + + // Session connection lifecycle + bool HandleGetRequest(InspectorSocket* socket, const std::string& path); + bool SessionStarted(SocketSession* session, const std::string& id); + void SessionTerminated(SocketSession* session); + void MessageReceived(int session_id, const std::string& message) { + delegate_->MessageReceived(session_id, message); } - private: - static bool HandshakeCallback(InspectorSocket* socket, - enum inspector_handshake_event state, - const std::string& path); - static void SocketConnectedCallback(uv_stream_t* server, int status); - static void ServerClosedCallback(uv_handle_t* server); - template - static InspectorSocketServer* From(SomeUvStruct* server) { - return node::ContainerOf(&InspectorSocketServer::server_, - reinterpret_cast(server)); + int GenerateSessionId() { + return next_session_id_++; } - bool RespondToGet(InspectorSocket* socket, const std::string& path); + + private: void SendListResponse(InspectorSocket* socket); - void ReadCallback(InspectorSocket* socket, ssize_t read, const uv_buf_t* buf); - bool SessionStarted(SocketSession* session, const std::string& id); - void SessionTerminated(SocketSession* session); bool TargetExists(const std::string& id); - SocketServerDelegate* Delegate() { return delegate_; } enum class ServerState {kNew, kRunning, kStopping, kStopped}; uv_loop_t* loop_; @@ -83,14 +83,13 @@ class InspectorSocketServer { const std::string host_; int port_; std::string path_; - uv_tcp_t server_; + std::vector server_sockets_; Closer* closer_; std::map connected_sessions_; int next_session_id_; FILE* out_; ServerState state_; - friend class SocketSession; friend class Closer; }; diff --git a/test/cctest/test_inspector_socket_server.cc b/test/cctest/test_inspector_socket_server.cc index 7224ad9e31b3a1..cd9e8f1cfcbb89 100644 --- a/test/cctest/test_inspector_socket_server.cc +++ b/test/cctest/test_inspector_socket_server.cc @@ -26,7 +26,7 @@ static const char WS_HANDSHAKE_RESPONSE[] = { \ Timeout timeout(&loop); \ while ((condition) && !timeout.timed_out) { \ - uv_run(&loop, UV_RUN_NOWAIT); \ + uv_run(&loop, UV_RUN_ONCE); \ } \ ASSERT_FALSE((condition)); \ } @@ -41,6 +41,7 @@ class Timeout { explicit Timeout(uv_loop_t* loop) : timed_out(false), done_(false) { uv_timer_init(loop, &timer_); uv_timer_start(&timer_, Timeout::set_flag, 5000, 0); + uv_unref(reinterpret_cast(&timer_)); } ~Timeout() { @@ -163,18 +164,20 @@ class SocketWrapper { connected_(false), sending_(false) { } - void Connect(std::string host, int port) { + void Connect(std::string host, int port, bool v6 = false) { closed_ = false; connection_failed_ = false; connected_ = false; eof_ = false; contents_.clear(); uv_tcp_init(loop_, &socket_); - sockaddr_in addr; - uv_ip4_addr(host.c_str(), port, &addr); - int err = uv_tcp_connect(&connect_, &socket_, - reinterpret_cast(&addr), - Connected_); + union {sockaddr generic; sockaddr_in v4; sockaddr_in6 v6;} addr; + if (v6) { + uv_ip6_addr(host.c_str(), port, &addr.v6); + } else { + uv_ip4_addr(host.c_str(), port, &addr.v4); + } + int err = uv_tcp_connect(&connect_, &socket_, &addr.generic, Connected_); ASSERT_EQ(0, err); SPIN_WHILE(!connected_) uv_read_start(reinterpret_cast(&socket_), AllocCallback, @@ -306,9 +309,14 @@ class SocketWrapper { class ServerHolder { public: template - ServerHolder(Delegate* delegate, uv_loop_t* loop, int port, FILE* out = NULL) + ServerHolder(Delegate* delegate, uv_loop_t* loop, int port) + : ServerHolder(delegate, loop, HOST, port, NULL) { } + + template + ServerHolder(Delegate* delegate, uv_loop_t* loop, const std::string host, + int port, FILE* out) : closed(false), paused(false), - server_(delegate, loop, HOST, port, out) { + server_(delegate, loop, host, port, out) { delegate->Connect(&server_); } @@ -317,7 +325,7 @@ class ServerHolder { } int port() { - return server_.port(); + return server_.Port(); } static void CloseCallback(InspectorSocketServer* server) { @@ -575,3 +583,47 @@ TEST_F(InspectorSocketServerTest, TerminatingSessionReportsDone) { socket1.ExpectEOF(); SPIN_WHILE(!delegate.done); } + +TEST_F(InspectorSocketServerTest, FailsToBindToNodejsHost) { + TestInspectorServerDelegate delegate; + ServerHolder server(&delegate, &loop, "nodejs.org", 0, nullptr); + ASSERT_FALSE(server->Start()); + SPIN_WHILE(uv_loop_alive(&loop)); +} + +bool has_ipv6_address() { + uv_interface_address_s* addresses = nullptr; + int address_count = 0; + int err = uv_interface_addresses(&addresses, &address_count); + if (err != 0) { + return false; + } + bool has_address = false; + for (int i = 0; i < address_count; i++) { + if (addresses[i].address.address6.sin6_family == AF_INET6) { + has_address = true; + } + } + uv_free_interface_addresses(addresses, address_count); + return has_address; +} + +TEST_F(InspectorSocketServerTest, BindsToIpV6) { + if (!has_ipv6_address()) { + fprintf(stderr, "No IPv6 network detected\n"); + return; + } + TestInspectorServerDelegate delegate; + ServerHolder server(&delegate, &loop, "::", 0, NULL); + ASSERT_TRUE(server->Start()); + + SocketWrapper socket1(&loop); + socket1.Connect("[::]", server.port(), true); + socket1.Write(WsHandshakeRequest(MAIN_TARGET_ID)); + socket1.Expect(WS_HANDSHAKE_RESPONSE); + server->Stop(ServerHolder::CloseCallback); + SPIN_WHILE(!server.closed); + ASSERT_FALSE(delegate.done); + socket1.Close(); + SPIN_WHILE(!delegate.done); +} From 8f37f5dd014672cef39cebbffbba5516ab8b4553 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Fri, 9 Jun 2017 21:27:02 +0200 Subject: [PATCH 014/248] async_hooks: proper id stacking for Promises MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Until now, the async_hooks PromiseHook did not register the Promise’s async id and trigger id on the id stack, so inside the `.then()` handler those ids would be invalid. To fix this, add push and pop calls to its `before` and `after` parts, respectively. Some care needs to be taken for the cases that the Promise hook is being disabled or enabled during the execution of a Promise handler; in the former case, actually removing the hook is delayed by adding another task to the microtask queue, in the latter case popping the id off the async id stack is skipped if the ids don’t match. Fixes: https://github.com/nodejs/node/issues/13583 PR-URL: https://github.com/nodejs/node/pull/13585 Reviewed-By: Trevor Norris --- src/async-wrap.cc | 26 ++++++++++----- src/env.cc | 9 ++++-- src/env.h | 1 + test/addons/async-hooks-promise/test.js | 14 +++++--- ...test-async-hooks-disable-during-promise.js | 17 ++++++++++ .../test-async-hooks-enable-during-promise.js | 13 ++++++++ .../test-async-hooks-promise-triggerid.js | 32 +++++++++++++++++++ 7 files changed, 97 insertions(+), 15 deletions(-) create mode 100644 test/parallel/test-async-hooks-disable-during-promise.js create mode 100644 test/parallel/test-async-hooks-enable-during-promise.js create mode 100644 test/parallel/test-async-hooks-promise-triggerid.js diff --git a/src/async-wrap.cc b/src/async-wrap.cc index 4d357f2f41b7ef..7cfa9e0fe817aa 100644 --- a/src/async-wrap.cc +++ b/src/async-wrap.cc @@ -333,12 +333,7 @@ void PromiseWrap::GetParentId(Local property, static void PromiseHook(PromiseHookType type, Local promise, Local parent, void* arg) { - Local context = promise->CreationContext(); - Environment* env = Environment::GetCurrent(context); - - // PromiseHook() should never be called if no hooks have been enabled. - CHECK_GT(env->async_hooks()->fields()[AsyncHooks::kTotals], 0); - + Environment* env = static_cast(arg); Local resource_object_value = promise->GetInternalField(0); PromiseWrap* wrap = nullptr; if (resource_object_value->IsObject()) { @@ -376,9 +371,18 @@ static void PromiseHook(PromiseHookType type, Local promise, CHECK_NE(wrap, nullptr); if (type == PromiseHookType::kBefore) { + env->async_hooks()->push_ids(wrap->get_id(), wrap->get_trigger_id()); PreCallbackExecution(wrap, false); } else if (type == PromiseHookType::kAfter) { PostCallbackExecution(wrap, false); + if (env->current_async_id() == wrap->get_id()) { + // This condition might not be true if async_hooks was enabled during + // the promise callback execution. + // Popping it off the stack can be skipped in that case, because is is + // known that it would correspond to exactly one call with + // PromiseHookType::kBefore that was not witnessed by the PromiseHook. + env->async_hooks()->pop_ids(wrap->get_id()); + } } } @@ -429,13 +433,19 @@ static void SetupHooks(const FunctionCallbackInfo& args) { static void EnablePromiseHook(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - env->AddPromiseHook(PromiseHook, nullptr); + env->AddPromiseHook(PromiseHook, static_cast(env)); } static void DisablePromiseHook(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args); - env->RemovePromiseHook(PromiseHook, nullptr); + + // Delay the call to `RemovePromiseHook` because we might currently be + // between the `before` and `after` calls of a Promise. + env->isolate()->EnqueueMicrotask([](void* data) { + Environment* env = static_cast(data); + env->RemovePromiseHook(PromiseHook, data); + }, static_cast(env)); } diff --git a/src/env.cc b/src/env.cc index c97868a5882b41..0087f719dc00db 100644 --- a/src/env.cc +++ b/src/env.cc @@ -184,8 +184,11 @@ void Environment::AddPromiseHook(promise_hook_func fn, void* arg) { [&](const PromiseHookCallback& hook) { return hook.cb_ == fn && hook.arg_ == arg; }); - CHECK_EQ(it, promise_hooks_.end()); - promise_hooks_.push_back(PromiseHookCallback{fn, arg}); + if (it != promise_hooks_.end()) { + it->enable_count_++; + return; + } + promise_hooks_.push_back(PromiseHookCallback{fn, arg, 1}); if (promise_hooks_.size() == 1) { isolate_->SetPromiseHook(EnvPromiseHook); @@ -201,6 +204,8 @@ bool Environment::RemovePromiseHook(promise_hook_func fn, void* arg) { if (it == promise_hooks_.end()) return false; + if (--it->enable_count_ > 0) return true; + promise_hooks_.erase(it); if (promise_hooks_.empty()) { isolate_->SetPromiseHook(nullptr); diff --git a/src/env.h b/src/env.h index 458173ec6d2a41..527618d7c65409 100644 --- a/src/env.h +++ b/src/env.h @@ -709,6 +709,7 @@ class Environment { struct PromiseHookCallback { promise_hook_func cb_; void* arg_; + size_t enable_count_; }; std::vector promise_hooks_; diff --git a/test/addons/async-hooks-promise/test.js b/test/addons/async-hooks-promise/test.js index bbe11dd3c57d01..b0af8806bd665f 100644 --- a/test/addons/async-hooks-promise/test.js +++ b/test/addons/async-hooks-promise/test.js @@ -36,8 +36,12 @@ assert.strictEqual( hook1.disable(); -// Check that internal fields are no longer being set. -assert.strictEqual( - binding.getPromiseField(Promise.resolve(1)), - 0, - 'Promise internal field used despite missing enabled AsyncHook'); +// Check that internal fields are no longer being set. This needs to be delayed +// a bit because the `disable()` call only schedules disabling the hook in a +// future microtask. +setImmediate(() => { + assert.strictEqual( + binding.getPromiseField(Promise.resolve(1)), + 0, + 'Promise internal field used despite missing enabled AsyncHook'); +}); diff --git a/test/parallel/test-async-hooks-disable-during-promise.js b/test/parallel/test-async-hooks-disable-during-promise.js new file mode 100644 index 00000000000000..a81c4fbc40caf3 --- /dev/null +++ b/test/parallel/test-async-hooks-disable-during-promise.js @@ -0,0 +1,17 @@ +'use strict'; +const common = require('../common'); +const async_hooks = require('async_hooks'); + +const hook = async_hooks.createHook({ + init: common.mustCall(2), + before: common.mustCall(1), + after: common.mustNotCall() +}).enable(); + +Promise.resolve(1).then(common.mustCall(() => { + hook.disable(); + + Promise.resolve(42).then(common.mustCall()); + + process.nextTick(common.mustCall()); +})); diff --git a/test/parallel/test-async-hooks-enable-during-promise.js b/test/parallel/test-async-hooks-enable-during-promise.js new file mode 100644 index 00000000000000..106f433322ef94 --- /dev/null +++ b/test/parallel/test-async-hooks-enable-during-promise.js @@ -0,0 +1,13 @@ +'use strict'; +const common = require('../common'); +const async_hooks = require('async_hooks'); + +Promise.resolve(1).then(common.mustCall(() => { + async_hooks.createHook({ + init: common.mustCall(), + before: common.mustCall(), + after: common.mustCall(2) + }).enable(); + + process.nextTick(common.mustCall()); +})); diff --git a/test/parallel/test-async-hooks-promise-triggerid.js b/test/parallel/test-async-hooks-promise-triggerid.js new file mode 100644 index 00000000000000..7afd005855fb3e --- /dev/null +++ b/test/parallel/test-async-hooks-promise-triggerid.js @@ -0,0 +1,32 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const async_hooks = require('async_hooks'); + +common.crashOnUnhandledRejection(); + +const promiseAsyncIds = []; + +async_hooks.createHook({ + init: common.mustCallAtLeast((id, type, triggerId) => { + if (type === 'PROMISE') { + // Check that the last known Promise is triggering the creation of + // this one. + assert.strictEqual(promiseAsyncIds[promiseAsyncIds.length - 1] || 1, + triggerId); + promiseAsyncIds.push(id); + } + }, 3), + before: common.mustCall((id) => { + assert.strictEqual(id, promiseAsyncIds[1]); + }), + after: common.mustCall((id) => { + assert.strictEqual(id, promiseAsyncIds[1]); + }) +}).enable(); + +Promise.resolve(42).then(common.mustCall(() => { + assert.strictEqual(async_hooks.executionAsyncId(), promiseAsyncIds[1]); + assert.strictEqual(async_hooks.triggerAsyncId(), promiseAsyncIds[0]); + Promise.resolve(10); +})); From 779403070021af9b4618422e26e50c5a01eb2907 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 5 Jun 2017 11:58:20 +0200 Subject: [PATCH 015/248] buffer: add constants object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add `buffer.constants`, containing length limits for `Buffer` and `string` instances. This could be useful for programmers to tell whether a value can be turned into a string or not. Ref: https://github.com/nodejs/node/issues/13465 PR-URL: https://github.com/nodejs/node/pull/13467 Reviewed-By: Colin Ihrig Reviewed-By: Vse Mozhet Byt Reviewed-By: Tobias Nießen --- doc/api/buffer.md | 61 +++++++++++++++++++++----- lib/buffer.js | 23 ++++++++++ test/parallel/test-buffer-constants.js | 13 ++++++ 3 files changed, 85 insertions(+), 12 deletions(-) create mode 100644 test/parallel/test-buffer-constants.js diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 5de805b6e9831e..4488ae2ad9bf8d 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -447,8 +447,8 @@ changes: * `size` {integer} The desired length of the new `Buffer` Allocates a new `Buffer` of `size` bytes. If the `size` is larger than -[`buffer.kMaxLength`] or smaller than 0, a [`RangeError`] will be thrown. -A zero-length `Buffer` will be created if `size` is 0. +[`buffer.constants.MAX_LENGTH`] or smaller than 0, a [`RangeError`] will be +thrown. A zero-length `Buffer` will be created if `size` is 0. Prior to Node.js 8.0.0, the underlying memory for `Buffer` instances created in this way is *not initialized*. The contents of a newly created @@ -528,8 +528,8 @@ console.log(buf); ``` Allocates a new `Buffer` of `size` bytes. If the `size` is larger than -[`buffer.kMaxLength`] or smaller than 0, a [`RangeError`] will be thrown. -A zero-length `Buffer` will be created if `size` is 0. +[`buffer.constants.MAX_LENGTH`] or smaller than 0, a [`RangeError`] will be +thrown. A zero-length `Buffer` will be created if `size` is 0. If `fill` is specified, the allocated `Buffer` will be initialized by calling [`buf.fill(fill)`][`buf.fill()`]. @@ -573,8 +573,8 @@ changes: * `size` {integer} The desired length of the new `Buffer` Allocates a new `Buffer` of `size` bytes. If the `size` is larger than -[`buffer.kMaxLength`] or smaller than 0, a [`RangeError`] will be thrown. -A zero-length `Buffer` will be created if `size` is 0. +[`buffer.constants.MAX_LENGTH`] or smaller than 0, a [`RangeError`] will be +thrown. A zero-length `Buffer` will be created if `size` is 0. The underlying memory for `Buffer` instances created in this way is *not initialized*. The contents of the newly created `Buffer` are unknown and @@ -619,8 +619,8 @@ added: v5.10.0 * `size` {integer} The desired length of the new `Buffer` Allocates a new `Buffer` of `size` bytes. If the `size` is larger than -[`buffer.kMaxLength`] or smaller than 0, a [`RangeError`] will be thrown. -A zero-length `Buffer` will be created if `size` is 0. +[`buffer.constants.MAX_LENGTH`] or smaller than 0, a [`RangeError`] will be +thrown. A zero-length `Buffer` will be created if `size` is 0. The underlying memory for `Buffer` instances created in this way is *not initialized*. The contents of the newly created `Buffer` are unknown and @@ -2050,6 +2050,9 @@ added: v0.1.90 Decodes `buf` to a string according to the specified character encoding in `encoding`. `start` and `end` may be passed to decode only a subset of `buf`. +The maximum length of a string instance (in UTF-16 code units) is available +as [`buffer.constants.MAX_STRING_LENGTH`][]. + Examples: ```js @@ -2507,8 +2510,7 @@ added: v3.0.0 * {integer} The largest size allowed for a single `Buffer` instance -On 32-bit architectures, this value is `(2^30)-1` (~1GB). -On 64-bit architectures, this value is `(2^31)-1` (~2GB). +An alias for [`buffer.constants.MAX_LENGTH`][] Note that this is a property on the `buffer` module returned by `require('buffer')`, not on the `Buffer` global or a `Buffer` instance. @@ -2599,8 +2601,8 @@ deprecated: v6.0.0 * `size` {integer} The desired length of the new `SlowBuffer` Allocates a new `Buffer` of `size` bytes. If the `size` is larger than -[`buffer.kMaxLength`] or smaller than 0, a [`RangeError`] will be thrown. -A zero-length `Buffer` will be created if `size` is 0. +[`buffer.constants.MAX_LENGTH`] or smaller than 0, a [`RangeError`] will be +thrown. A zero-length `Buffer` will be created if `size` is 0. The underlying memory for `SlowBuffer` instances is *not initialized*. The contents of a newly created `SlowBuffer` are unknown and may contain @@ -2622,6 +2624,39 @@ buf.fill(0); console.log(buf); ``` + +## Buffer Constants + + +Note that `buffer.constants` is a property on the `buffer` module returned by +`require('buffer')`, not on the `Buffer` global or a `Buffer` instance. + +### buffer.constants.MAX_LENGTH + + +* {integer} The largest size allowed for a single `Buffer` instance + +On 32-bit architectures, this value is `(2^30)-1` (~1GB). +On 64-bit architectures, this value is `(2^31)-1` (~2GB). + +This value is also available as [`buffer.kMaxLength`][]. + +### buffer.constants.MAX_STRING_LENGTH + + +* {integer} The largest length allowed for a single `string` instance + +Represents the largest `length` that a `string` primitive can have, counted +in UTF-16 code units. + +This value may depend on the JS engine that is being used. + [`ArrayBuffer#slice()`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/slice [`ArrayBuffer`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer [`Buffer.alloc()`]: #buffer_class_method_buffer_alloc_size_fill_encoding @@ -2652,6 +2687,8 @@ console.log(buf); [`buf.slice()`]: #buffer_buf_slice_start_end [`buf.values()`]: #buffer_buf_values [`buffer.kMaxLength`]: #buffer_buffer_kmaxlength +[`buffer.constants.MAX_LENGTH`]: #buffer_buffer_constants_max_length +[`buffer.constants.MAX_STRING_LENGTH`]: #buffer_buffer_constants_max_string_length [`util.inspect()`]: util.html#util_util_inspect_object_options [RFC1345]: https://tools.ietf.org/html/rfc1345 [RFC4648, Section 5]: https://tools.ietf.org/html/rfc4648#section-5 diff --git a/lib/buffer.js b/lib/buffer.js index 168a607a36270c..223b6eed24e350 100644 --- a/lib/buffer.js +++ b/lib/buffer.js @@ -41,8 +41,31 @@ Buffer.prototype = FastBuffer.prototype; exports.Buffer = Buffer; exports.SlowBuffer = SlowBuffer; exports.INSPECT_MAX_BYTES = 50; + +// Legacy. exports.kMaxLength = binding.kMaxLength; +const constants = Object.defineProperties({}, { + MAX_LENGTH: { + value: binding.kStringMaxLength, + writable: false, + enumerable: true + }, + MAX_STRING_LENGTH: { + value: binding.kStringMaxLength, + writable: false, + enumerable: true + } +}); + +Object.defineProperty(exports, 'constants', { + configurable: false, + enumerable: true, + value: constants +}); + +exports.kStringMaxLength = binding.kStringMaxLength; + const kFromErrorMsg = 'First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'; diff --git a/test/parallel/test-buffer-constants.js b/test/parallel/test-buffer-constants.js new file mode 100644 index 00000000000000..59f5b6d0deada4 --- /dev/null +++ b/test/parallel/test-buffer-constants.js @@ -0,0 +1,13 @@ +'use strict'; +require('../common'); +const assert = require('assert'); + +const { MAX_LENGTH, MAX_STRING_LENGTH } = require('buffer').constants; + +assert.strictEqual(typeof MAX_LENGTH, 'number'); +assert.strictEqual(typeof MAX_STRING_LENGTH, 'number'); +assert(MAX_STRING_LENGTH <= MAX_LENGTH); +assert.throws(() => ' '.repeat(MAX_STRING_LENGTH + 1), + /^RangeError: Invalid string length$/); + +assert.doesNotThrow(() => ' '.repeat(MAX_STRING_LENGTH)); From 8cba959a9361523d847afd1ea1d7fdabdad1ee7c Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Thu, 27 Apr 2017 21:57:12 -0400 Subject: [PATCH 016/248] util: add callbackify Add `util.callbackify(function)` for creating callback style functions from functions returning a `Thenable` Original-PR-URL: https://github.com/nodejs/node/pull/12712 Fixes: https://github.com/nodejs/CTC/issues/109 Original-Reviewed-By: Benjamin Gruenbaum Original-Reviewed-By: Teddy Katz Original-Reviewed-By: Matteo Collina Original-Reviewed-By: Colin Ihrig Original-Reviewed-By: Timothy Gu Original-Reviewed-By: Anna Henningsen PR-URL: https://github.com/nodejs/node/pull/13750 Reviewed-By: Anna Henningsen --- doc/api/util.md | 59 +++++ lib/internal/errors.js | 1 + lib/util.js | 51 ++++ .../uncaught-exceptions/callbackify1.js | 15 ++ .../uncaught-exceptions/callbackify2.js | 22 ++ test/parallel/test-util-callbackify.js | 227 ++++++++++++++++++ 6 files changed, 375 insertions(+) create mode 100644 test/fixtures/uncaught-exceptions/callbackify1.js create mode 100644 test/fixtures/uncaught-exceptions/callbackify2.js create mode 100644 test/parallel/test-util-callbackify.js diff --git a/doc/api/util.md b/doc/api/util.md index 839bdadf76e1ec..9fce6294e18b17 100644 --- a/doc/api/util.md +++ b/doc/api/util.md @@ -10,6 +10,64 @@ module developers as well. It can be accessed using: const util = require('util'); ``` +## util.callbackify(original) + + +* `original` {Function} An `async` function +* Returns: {Function} a callback style function + +Takes an `async` function (or a function that returns a Promise) and returns a +function following the Node.js error first callback style. In the callback, the +first argument will be the rejection reason (or `null` if the Promise resolved), +and the second argument will be the resolved value. + +For example: + +```js +const util = require('util'); + +async function fn() { + return await Promise.resolve('hello world'); +} +const callbackFunction = util.callbackify(fn); + +callbackFunction((err, ret) => { + if (err) throw err; + console.log(ret); +}); +``` + +Will print: + +```txt +hello world +``` + +*Note*: + +* The callback is executed asynchronously, and will have a limited stack trace. +If the callback throws, the process will emit an [`'uncaughtException'`][] +event, and if not handled will exit. + +* Since `null` has a special meaning as the first argument to a callback, if a +wrapped function rejects a `Promise` with a falsy value as a reason, the value +is wrapped in an `Error` with the original value stored in a field named +`reason`. + ```js + function fn() { + return Promise.reject(null); + } + const callbackFunction = util.callbackify(fn); + + callbackFunction((err, ret) => { + // When the Promise was rejected with `null` it is wrapped with an Error and + // the original value is stored in `reason`. + err && err.hasOwnProperty('reason') && err.reason === null; // true + }); + ``` + ## util.debuglog(section) `options...` are interpreted as if they had been specified on the command line -before the actual command line (so they can be overriden). Node will exit with +before the actual command line (so they can be overridden). Node will exit with an error if an option that is not allowed in the environment is used, such as `-p` or a script file. diff --git a/doc/api/n-api.md b/doc/api/n-api.md index d7a93c3c5c5a2a..f6e225488c13d1 100644 --- a/doc/api/n-api.md +++ b/doc/api/n-api.md @@ -239,7 +239,7 @@ typedef struct napi_extended_error_info { napi_status error_code; }; ``` -- `error_message`: Textual representation of the error that occured. +- `error_message`: Textual representation of the error that occurred. - `engine_reserved`: Opaque handle reserved for engine use only. - `engine_error_code`: VM specific error code. - `error_code`: n-api status code for the last error. @@ -267,7 +267,7 @@ information about the error. Returns `napi_ok` if the API succeeded. This API retrieves a `napi_extended_error_info` structure with information -about the last error that occured. +about the last error that occurred. *Note*: Do not rely on the content or format of any of the extended information as it is not subject to SemVer and may change at any time. diff --git a/doc/node.1 b/doc/node.1 index 9c9c80d7a0de26..af9069f134e2ee 100644 --- a/doc/node.1 +++ b/doc/node.1 @@ -275,7 +275,7 @@ When set to \fI1\fR, process warnings are silenced. .TP .BR NODE_OPTIONS =\fIoptions...\fR \fBoptions...\fR are interpreted as if they had been specified on the command -line before the actual command line (so they can be overriden). Node will exit +line before the actual command line (so they can be overridden). Node will exit with an error if an option that is not allowed in the environment is used, such as \fB-p\fR or a script file. diff --git a/lib/internal/process/next_tick.js b/lib/internal/process/next_tick.js index 61756f603cd0e6..bd820abe9db6b5 100644 --- a/lib/internal/process/next_tick.js +++ b/lib/internal/process/next_tick.js @@ -2,7 +2,7 @@ // This value is used to prevent the nextTickQueue from becoming too // large and cause the process to run out of memory. When this value -// is reached the nextTimeQueue array will be shortend (see tickDone +// is reached the nextTimeQueue array will be shortened (see tickDone // for details). const kMaxCallbacksPerLoop = 1e4; diff --git a/lib/net.js b/lib/net.js index 278153d3bdffc7..121757aa108472 100644 --- a/lib/net.js +++ b/lib/net.js @@ -110,9 +110,9 @@ function connect() { // Returns an array [options, cb], where options is an object, -// cb is either a funciton or null. +// cb is either a function or null. // Used to normalize arguments of Socket.prototype.connect() and -// Server.prototype.listen(). Possible combinations of paramters: +// Server.prototype.listen(). Possible combinations of parameters: // (options[...][, cb]) // (path[...][, cb]) // ([port][, host][...][, cb]) diff --git a/src/node_api.cc b/src/node_api.cc index 9c579cde726869..18ff7b64e4e5a3 100644 --- a/src/node_api.cc +++ b/src/node_api.cc @@ -2561,7 +2561,7 @@ napi_status napi_create_arraybuffer(napi_env env, v8::ArrayBuffer::New(isolate, byte_length); // Optionally return a pointer to the buffer's data, to avoid another call to - // retreive it. + // retrieve it. if (data != nullptr) { *data = buffer->GetContents().Data(); } diff --git a/src/node_debug_options.cc b/src/node_debug_options.cc index d82e92170a9304..3ec773132047de 100644 --- a/src/node_debug_options.cc +++ b/src/node_debug_options.cc @@ -78,7 +78,7 @@ bool DebugOptions::ParseOption(const char* argv0, const std::string& option) { argument.clear(); } - // Note that --debug-port and --debug-brk in conjuction with --inspect + // Note that --debug-port and --debug-brk in conjunction with --inspect // work but are undocumented. // --debug is no longer valid. // Ref: https://github.com/nodejs/node/issues/12630 diff --git a/src/node_i18n.cc b/src/node_i18n.cc index f35bf2685592a4..44d94d625585e6 100644 --- a/src/node_i18n.cc +++ b/src/node_i18n.cc @@ -515,7 +515,7 @@ int32_t ToASCII(MaybeStackBuffer* buf, // In UTS #46 which specifies ToASCII, certain error conditions are // configurable through options, and the WHATWG URL Standard promptly elects - // to disable some of them to accomodate for real-world use cases. + // to disable some of them to accommodate for real-world use cases. // Unfortunately, ICU4C's IDNA module does not support disabling some of // these options through `options` above, and thus continues throwing // unnecessary errors. To counter this situation, we just filter out the diff --git a/src/tracing/trace_event.h b/src/tracing/trace_event.h index 4e2b6f4e88bac5..ac0c1f757885f2 100644 --- a/src/tracing/trace_event.h +++ b/src/tracing/trace_event.h @@ -396,13 +396,13 @@ static inline uint64_t AddTraceEventImpl( const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args, const char** arg_names, const uint8_t* arg_types, const uint64_t* arg_values, unsigned int flags) { - std::unique_ptr arg_convertables[2]; + std::unique_ptr arg_convertibles[2]; if (num_args > 0 && arg_types[0] == TRACE_VALUE_TYPE_CONVERTABLE) { - arg_convertables[0].reset(reinterpret_cast( + arg_convertibles[0].reset(reinterpret_cast( static_cast(arg_values[0]))); } if (num_args > 1 && arg_types[1] == TRACE_VALUE_TYPE_CONVERTABLE) { - arg_convertables[1].reset(reinterpret_cast( + arg_convertibles[1].reset(reinterpret_cast( static_cast(arg_values[1]))); } // DCHECK(num_args <= 2); @@ -410,7 +410,7 @@ static inline uint64_t AddTraceEventImpl( node::tracing::TraceEventHelper::GetCurrentPlatform(); return platform->AddTraceEvent(phase, category_group_enabled, name, scope, id, bind_id, num_args, arg_names, arg_types, - arg_values, arg_convertables, flags); + arg_values, arg_convertibles, flags); } // Define SetTraceValue for each allowed type. It stores the type and diff --git a/test/README.md b/test/README.md index af81573f582d99..7042882bd568b2 100644 --- a/test/README.md +++ b/test/README.md @@ -5,7 +5,7 @@ This directory contains code and data used to test the Node.js implementation. For a detailed guide on how to write tests in this directory, see [the guide on writing tests](../doc/guides/writing-tests.md). -On how to run tests in this direcotry, see +On how to run tests in this directory, see [the contributing guide](../CONTRIBUTING.md#step-5-test). ## Test Directories diff --git a/test/addons-napi/test_general/test.js b/test/addons-napi/test_general/test.js index 614cf0f4f0e7c4..2aff480eeb2a69 100644 --- a/test/addons-napi/test_general/test.js +++ b/test/addons-napi/test_general/test.js @@ -31,6 +31,6 @@ assert.ok(test_general.testGetPrototype(baseObject) !== test_general.testGetPrototype(extendedObject), 'Prototypes for base and extended should be different'); -// test version management funcitons +// test version management functions // expected version is currently 1 assert.strictEqual(test_general.testGetVersion(), 1); diff --git a/test/async-hooks/test-promise.js b/test/async-hooks/test-promise.js index 7d8e3919f28cd0..f7dbe64b890970 100644 --- a/test/async-hooks/test-promise.js +++ b/test/async-hooks/test-promise.js @@ -47,6 +47,6 @@ function onexit() { assert.strictEqual(a1.type, 'PROMISE'); assert.strictEqual(typeof a1.uid, 'number'); assert.strictEqual(a1.triggerAsyncId, a0.uid); - // We expect a destroy hook as well but we cannot guarentee predictable gc. + // We expect a destroy hook as well but we cannot guarantee predictable gc. checkInvocations(a1, { init: 1, before: 1, after: 1 }, 'when process exits'); } diff --git a/test/async-hooks/test-promise.promise-before-init-hooks.js b/test/async-hooks/test-promise.promise-before-init-hooks.js index 9a542dff46bd21..27536b727d232f 100644 --- a/test/async-hooks/test-promise.promise-before-init-hooks.js +++ b/test/async-hooks/test-promise.promise-before-init-hooks.js @@ -37,6 +37,6 @@ process.on('exit', function onexit() { // immediately before the child promise, thus there should only be one // difference in id. assert.strictEqual(a0.triggerAsyncId, a0.uid - 1); - // We expect a destroy hook as well but we cannot guarentee predictable gc. + // We expect a destroy hook as well but we cannot guarantee predictable gc. checkInvocations(a0, { init: 1, before: 1, after: 1 }, 'when process exits'); }); diff --git a/test/async-hooks/test-udpsendwrap.js b/test/async-hooks/test-udpsendwrap.js index 750fafdeb2a5dd..10deaca8452d3d 100644 --- a/test/async-hooks/test-udpsendwrap.js +++ b/test/async-hooks/test-udpsendwrap.js @@ -21,7 +21,7 @@ function onlistening() { new Buffer(2), 0, 2, sock.address().port, undefined, common.mustCall(onsent)); - // init not called synchronously because dns lookup alwasy wraps + // init not called synchronously because dns lookup always wraps // callback in a next tick even if no lookup is needed // TODO (trevnorris) submit patch to fix creation of tick objects and instead // create the send wrap synchronously. diff --git a/test/parallel/test-async-wrap-getasyncid.js b/test/parallel/test-async-wrap-getasyncid.js index 6b9d33b8ca25c7..cdb97ef8f27bc8 100644 --- a/test/parallel/test-async-wrap-getasyncid.js +++ b/test/parallel/test-async-wrap-getasyncid.js @@ -68,7 +68,7 @@ function testInitialized(req, ctor_name) { { // We don't want to expose getAsyncId for promises but we need to construct - // one so that the cooresponding provider type is removed from the + // one so that the corresponding provider type is removed from the // providers list. new Promise((res) => res(5)); } diff --git a/test/parallel/test-internal-fs-syncwritestream.js b/test/parallel/test-internal-fs-syncwritestream.js index a0e1aedd3b50be..166692f4e6236e 100644 --- a/test/parallel/test-internal-fs-syncwritestream.js +++ b/test/parallel/test-internal-fs-syncwritestream.js @@ -11,7 +11,7 @@ common.refreshTmpDir(); const filename = path.join(common.tmpDir, 'sync-write-stream.txt'); -// Verify constructing the instance with defualt options. +// Verify constructing the instance with default options. { const stream = new SyncWriteStream(1); @@ -31,7 +31,7 @@ const filename = path.join(common.tmpDir, 'sync-write-stream.txt'); assert.strictEqual(stream.listenerCount('end'), 1); } -// Verfiy that the file will be writen synchronously. +// Verfiy that the file will be written synchronously. { const fd = fs.openSync(filename, 'w'); const stream = new SyncWriteStream(fd); @@ -41,7 +41,7 @@ const filename = path.join(common.tmpDir, 'sync-write-stream.txt'); assert.strictEqual(fs.readFileSync(filename).equals(chunk), true); } -// Verify that the stream will unset the fd after destory(). +// Verify that the stream will unset the fd after destroy(). { const fd = fs.openSync(filename, 'w'); const stream = new SyncWriteStream(fd); diff --git a/test/parallel/test-net-connect-options-allowhalfopen.js b/test/parallel/test-net-connect-options-allowhalfopen.js index 4a0cc18772aec3..898708a679e8bc 100644 --- a/test/parallel/test-net-connect-options-allowhalfopen.js +++ b/test/parallel/test-net-connect-options-allowhalfopen.js @@ -65,7 +65,7 @@ const forAllClients = (cb) => common.mustCall(cb, CLIENT_VARIANTS); })); socket.on('end', common.mustCall(function() { serverReceivedFIN++; - console.error(`Server recieved FIN sent by No. ${clientId}`); + console.error(`Server received FIN sent by No. ${clientId}`); if (serverReceivedFIN === CLIENT_VARIANTS) { setTimeout(() => { server.close(); diff --git a/tools/cpplint.py b/tools/cpplint.py index 305220060c5cdb..845f2d2f39de01 100644 --- a/tools/cpplint.py +++ b/tools/cpplint.py @@ -6051,7 +6051,7 @@ def ParseArguments(args): try: _valid_extensions = set(val.split(',')) except ValueError: - PrintUsage('Extensions must be comma seperated list.') + PrintUsage('Extensions must be comma separated list.') elif opt == '--logfile': logger.addHandler(logging.FileHandler(val, mode='wb')) diff --git a/vcbuild.bat b/vcbuild.bat index 6a77d9ae85abb3..df54d0ea02b280 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -55,7 +55,7 @@ if /i "%1"=="clean" set target=Clean&goto arg-ok if /i "%1"=="ia32" set target_arch=x86&goto arg-ok if /i "%1"=="x86" set target_arch=x86&goto arg-ok if /i "%1"=="x64" set target_arch=x64&goto arg-ok -@rem args should be vs2017 and vs2015. keeping vc2015 for backward combatibility (undocumented) +@rem args should be vs2017 and vs2015. keeping vc2015 for backward compatibility (undocumented) if /i "%1"=="vc2015" set target_env=vs2015&goto arg-ok if /i "%1"=="vs2015" set target_env=vs2015&goto arg-ok if /i "%1"=="vs2017" set target_env=vs2017&goto arg-ok @@ -157,7 +157,7 @@ if defined noprojgen if defined nobuild if not defined sign if not defined msi g set msvs_host_arch=x86 if _%PROCESSOR_ARCHITECTURE%_==_AMD64_ set msvs_host_arch=amd64 if _%PROCESSOR_ARCHITEW6432%_==_AMD64_ set msvs_host_arch=amd64 -@rem usualy vcvarsall takes an argument: host + '_' + target +@rem usually vcvarsall takes an argument: host + '_' + target set vcvarsall_arg=%msvs_host_arch%_%target_arch% @rem unless both host and target are x64 if %target_arch%==x64 if %msvs_host_arch%==amd64 set vcvarsall_arg=amd64 From e30fc2c5ba73c0cdd117ff6ee5c47239bc290702 Mon Sep 17 00:00:00 2001 From: Brian White Date: Sat, 3 Jun 2017 23:28:57 -0400 Subject: [PATCH 021/248] process: improve nextTick() performance PR-URL: https://github.com/nodejs/node/pull/13446 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Jeremiah Senkpiel Reviewed-By: Evan Lucas --- benchmark/process/next-tick-depth-args.js | 2 +- benchmark/process/next-tick-depth.js | 2 +- lib/internal/process/next_tick.js | 138 +++++++++++++++------- 3 files changed, 97 insertions(+), 45 deletions(-) diff --git a/benchmark/process/next-tick-depth-args.js b/benchmark/process/next-tick-depth-args.js index 066b4837856f60..06bea4676b3615 100644 --- a/benchmark/process/next-tick-depth-args.js +++ b/benchmark/process/next-tick-depth-args.js @@ -2,7 +2,7 @@ var common = require('../common.js'); var bench = common.createBenchmark(main, { - millions: [2] + millions: [12] }); process.maxTickDepth = Infinity; diff --git a/benchmark/process/next-tick-depth.js b/benchmark/process/next-tick-depth.js index bc513d338d6d8c..824b7a8b69df86 100644 --- a/benchmark/process/next-tick-depth.js +++ b/benchmark/process/next-tick-depth.js @@ -1,7 +1,7 @@ 'use strict'; var common = require('../common.js'); var bench = common.createBenchmark(main, { - millions: [2] + millions: [12] }); process.maxTickDepth = Infinity; diff --git a/lib/internal/process/next_tick.js b/lib/internal/process/next_tick.js index bd820abe9db6b5..e41064104e0c3e 100644 --- a/lib/internal/process/next_tick.js +++ b/lib/internal/process/next_tick.js @@ -10,6 +10,42 @@ exports.setup = setupNextTick; // Will be overwritten when setupNextTick() is called. exports.nextTick = null; +class NextTickQueue { + constructor() { + this.head = null; + this.tail = null; + this.length = 0; + } + + push(v) { + const entry = { data: v, next: null }; + if (this.length > 0) + this.tail.next = entry; + else + this.head = entry; + this.tail = entry; + ++this.length; + } + + shift() { + if (this.length === 0) + return; + const ret = this.head.data; + if (this.length === 1) + this.head = this.tail = null; + else + this.head = this.head.next; + --this.length; + return ret; + } + + clear() { + this.head = null; + this.tail = null; + this.length = 0; + } +} + function setupNextTick() { const async_wrap = process.binding('async_wrap'); const async_hooks = require('async_hooks'); @@ -27,7 +63,7 @@ function setupNextTick() { const { kInit, kBefore, kAfter, kDestroy, kAsyncUidCntr, kInitTriggerId } = async_wrap.constants; const { async_id_symbol, trigger_id_symbol } = async_wrap; - var nextTickQueue = []; + var nextTickQueue = new NextTickQueue(); var microtasksScheduled = false; // Used to run V8's micro task queue. @@ -55,27 +91,29 @@ function setupNextTick() { function tickDone() { if (tickInfo[kLength] !== 0) { if (tickInfo[kLength] <= tickInfo[kIndex]) { - nextTickQueue = []; + nextTickQueue.clear(); tickInfo[kLength] = 0; } else { - nextTickQueue.splice(0, tickInfo[kIndex]); tickInfo[kLength] = nextTickQueue.length; } } tickInfo[kIndex] = 0; } + const microTasksTickObject = { + callback: runMicrotasksCallback, + args: undefined, + domain: null, + [async_id_symbol]: 0, + [trigger_id_symbol]: 0 + }; function scheduleMicrotasks() { if (microtasksScheduled) return; - const tickObject = - new TickObject(runMicrotasksCallback, undefined, null); // For the moment all microtasks come from the void until the PromiseHook // API is implemented. - tickObject[async_id_symbol] = 0; - tickObject[trigger_id_symbol] = 0; - nextTickQueue.push(tickObject); + nextTickQueue.push(microTasksTickObject); tickInfo[kLength]++; microtasksScheduled = true; @@ -86,8 +124,9 @@ function setupNextTick() { _runMicrotasks(); if (tickInfo[kIndex] < tickInfo[kLength] || - emitPendingUnhandledRejections()) + emitPendingUnhandledRejections()) { scheduleMicrotasks(); + } } function _combinedTickCallback(args, callback) { @@ -133,7 +172,8 @@ function setupNextTick() { function _tickCallback() { do { while (tickInfo[kIndex] < tickInfo[kLength]) { - const tock = nextTickQueue[tickInfo[kIndex]++]; + ++tickInfo[kIndex]; + const tock = nextTickQueue.shift(); const callback = tock.callback; const args = tock.args; @@ -174,7 +214,8 @@ function setupNextTick() { function _tickDomainCallback() { do { while (tickInfo[kIndex] < tickInfo[kLength]) { - const tock = nextTickQueue[tickInfo[kIndex]++]; + ++tickInfo[kIndex]; + const tock = nextTickQueue.shift(); const callback = tock.callback; const domain = tock.domain; const args = tock.args; @@ -210,45 +251,48 @@ function setupNextTick() { } while (tickInfo[kLength] !== 0); } - function TickObject(callback, args, domain) { - this.callback = callback; - this.domain = domain; - this.args = args; - this[async_id_symbol] = -1; - this[trigger_id_symbol] = -1; - } - - function setupInit(tickObject, triggerAsyncId) { - tickObject[async_id_symbol] = ++async_uid_fields[kAsyncUidCntr]; - tickObject[trigger_id_symbol] = triggerAsyncId || initTriggerId(); - if (async_hook_fields[kInit] > 0) { - emitInit(tickObject[async_id_symbol], - 'TickObject', - tickObject[trigger_id_symbol], - tickObject); + class TickObject { + constructor(callback, args, asyncId, triggerAsyncId) { + this.callback = callback; + this.args = args; + this.domain = process.domain || null; + this[async_id_symbol] = asyncId; + this[trigger_id_symbol] = triggerAsyncId; } } + // `nextTick()` will not enqueue any callback when the process is about to + // exit since the callback would not have a chance to be executed. function nextTick(callback) { if (typeof callback !== 'function') throw new errors.TypeError('ERR_INVALID_CALLBACK'); - // on the way out, don't bother. it won't get fired anyway. + if (process._exiting) return; var args; - if (arguments.length > 1) { - args = new Array(arguments.length - 1); - for (var i = 1; i < arguments.length; i++) - args[i - 1] = arguments[i]; + switch (arguments.length) { + case 1: break; + case 2: args = [arguments[1]]; break; + case 3: args = [arguments[1], arguments[2]]; break; + case 4: args = [arguments[1], arguments[2], arguments[3]]; break; + default: + args = new Array(arguments.length - 1); + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; } - var obj = new TickObject(callback, args, process.domain || null); - setupInit(obj, null); + const asyncId = ++async_uid_fields[kAsyncUidCntr]; + const triggerAsyncId = initTriggerId(); + const obj = new TickObject(callback, args, asyncId, triggerAsyncId); nextTickQueue.push(obj); - tickInfo[kLength]++; + ++tickInfo[kLength]; + if (async_hook_fields[kInit] > 0) + emitInit(asyncId, 'TickObject', triggerAsyncId, obj); } + // `internalNextTick()` will not enqueue any callback when the process is + // about to exit since the callback would not have a chance to be executed. function internalNextTick(triggerAsyncId, callback) { if (typeof callback !== 'function') throw new TypeError('callback is not a function'); @@ -259,17 +303,25 @@ function setupNextTick() { return; var args; - if (arguments.length > 2) { - args = new Array(arguments.length - 2); - for (var i = 2; i < arguments.length; i++) - args[i - 2] = arguments[i]; + switch (arguments.length) { + case 2: break; + case 3: args = [arguments[2]]; break; + case 4: args = [arguments[2], arguments[3]]; break; + case 5: args = [arguments[2], arguments[3], arguments[4]]; break; + default: + args = new Array(arguments.length - 2); + for (var i = 2; i < arguments.length; i++) + args[i - 2] = arguments[i]; } - var obj = new TickObject(callback, args, process.domain || null); - setupInit(obj, triggerAsyncId); + const asyncId = ++async_uid_fields[kAsyncUidCntr]; + const obj = new TickObject(callback, args, asyncId, triggerAsyncId); + nextTickQueue.push(obj); + ++tickInfo[kLength]; + if (async_hook_fields[kInit] > 0) + emitInit(asyncId, 'TickObject', triggerAsyncId, obj); + // The call to initTriggerId() was skipped, so clear kInitTriggerId. async_uid_fields[kInitTriggerId] = 0; - nextTickQueue.push(obj); - tickInfo[kLength]++; } } From 0e857a5ee42a6fb0fb1b3567f5968a427fc86bbc Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Thu, 15 Jun 2017 03:33:50 +0300 Subject: [PATCH 022/248] test: remove needless RegExp flags * /m is needless if ^ and $ are not used * /g is needless in split() * /g is needless in test() with one-time RegExp/String PR-URL: https://github.com/nodejs/node/pull/13690 Reviewed-By: Colin Ihrig Reviewed-By: Joyee Cheung Reviewed-By: Daniel Bevenius Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca Reviewed-By: James M Snell --- test/parallel/test-http-full-response.js | 8 ++++---- .../test-http-outgoing-first-chunk-singlebyte-encoding.js | 2 +- test/parallel/test-tls-client-verify.js | 2 +- test/parallel/test-tls-server-verify.js | 4 ++-- test/parallel/test-util-callbackify.js | 2 +- test/pummel/test-keep-alive.js | 4 ++-- test/pummel/test-tls-securepair-client.js | 4 ++-- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/parallel/test-http-full-response.js b/test/parallel/test-http-full-response.js index 6d81f967f45b68..dc52a5bc2f1b6d 100644 --- a/test/parallel/test-http-full-response.js +++ b/test/parallel/test-http-full-response.js @@ -42,7 +42,7 @@ function runAb(opts, callback) { const command = `ab ${opts} http://127.0.0.1:${server.address().port}/`; exec(command, function(err, stdout, stderr) { if (err) { - if (/ab|apr/mi.test(stderr)) { + if (/ab|apr/i.test(stderr)) { common.skip(`problem spawning \`ab\`.\n${stderr}`); process.reallyExit(0); } @@ -50,13 +50,13 @@ function runAb(opts, callback) { return; } - let m = /Document Length:\s*(\d+) bytes/mi.exec(stdout); + let m = /Document Length:\s*(\d+) bytes/i.exec(stdout); const documentLength = parseInt(m[1]); - m = /Complete requests:\s*(\d+)/mi.exec(stdout); + m = /Complete requests:\s*(\d+)/i.exec(stdout); const completeRequests = parseInt(m[1]); - m = /HTML transferred:\s*(\d+) bytes/mi.exec(stdout); + m = /HTML transferred:\s*(\d+) bytes/i.exec(stdout); const htmlTransfered = parseInt(m[1]); assert.strictEqual(bodyLength, documentLength); diff --git a/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js b/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js index 214287a6ffc157..f1af1dc718bd9a 100644 --- a/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js +++ b/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js @@ -24,7 +24,7 @@ for (const enc of ['utf8', 'utf16le', 'latin1', 'UTF-8']) { const headerEnd = received.indexOf('\r\n\r\n', 'utf8'); assert.notStrictEqual(headerEnd, -1); - const header = received.toString('utf8', 0, headerEnd).split(/\r\n/g); + const header = received.toString('utf8', 0, headerEnd).split(/\r\n/); const body = received.toString(enc, headerEnd + 4); assert.strictEqual(header[0], 'HTTP/1.1 200 OK'); diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index bdd5667a5e013a..93fa99f773566f 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -31,7 +31,7 @@ const tls = require('tls'); const fs = require('fs'); -const hosterr = /Hostname\/IP doesn't match certificate's altnames/g; +const hosterr = /Hostname\/IP doesn't match certificate's altnames/; const testCases = [{ ca: ['ca1-cert'], key: 'agent2-key', diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index 2d7323dc5a840d..65ddaa5e2dc3d0 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -217,7 +217,7 @@ function runClient(prefix, port, options, cb) { client.stdout.on('data', function(d) { out += d; - if (!goodbye && /_unauthed/g.test(out)) { + if (!goodbye && /_unauthed/.test(out)) { console.error(`${prefix} * unauthed`); goodbye = true; client.kill(); @@ -225,7 +225,7 @@ function runClient(prefix, port, options, cb) { rejected = false; } - if (!goodbye && /_authed/g.test(out)) { + if (!goodbye && /_authed/.test(out)) { console.error(`${prefix} * authed`); goodbye = true; client.kill(); diff --git a/test/parallel/test-util-callbackify.js b/test/parallel/test-util-callbackify.js index a385538159c8a8..68ffc6e9207e23 100644 --- a/test/parallel/test-util-callbackify.js +++ b/test/parallel/test-util-callbackify.js @@ -205,7 +205,7 @@ const values = [ assert.strictEqual(err.code, 1); assert.strictEqual(Object.getPrototypeOf(err).name, 'Error'); assert.strictEqual(stdout, ''); - const errLines = stderr.trim().split(/[\r\n]+/g); + const errLines = stderr.trim().split(/[\r\n]+/); const errLine = errLines.find((l) => /^Error/.exec(l)); assert.strictEqual(errLine, `Error: ${fixture}`); }) diff --git a/test/pummel/test-keep-alive.js b/test/pummel/test-keep-alive.js index fb3e4e7ca6ba32..26e19786913f22 100644 --- a/test/pummel/test-keep-alive.js +++ b/test/pummel/test-keep-alive.js @@ -79,10 +79,10 @@ function runAb(opts, callback) { return; } - let matches = /Requests\/sec:\s*(\d+)\./mi.exec(stdout); + let matches = /Requests\/sec:\s*(\d+)\./i.exec(stdout); const reqSec = parseInt(matches[1]); - matches = /Keep-Alive requests:\s*(\d+)/mi.exec(stdout); + matches = /Keep-Alive requests:\s*(\d+)/i.exec(stdout); let keepAliveRequests; if (matches) { keepAliveRequests = parseInt(matches[1]); diff --git a/test/pummel/test-tls-securepair-client.js b/test/pummel/test-tls-securepair-client.js index 32e6252c2e333d..f147d019c9388f 100644 --- a/test/pummel/test-tls-securepair-client.js +++ b/test/pummel/test-tls-securepair-client.js @@ -84,7 +84,7 @@ function test(keyfn, certfn, check, next) { console.error(state); switch (state) { case 'WAIT-ACCEPT': - if (/ACCEPT/g.test(serverStdoutBuffer)) { + if (/ACCEPT/.test(serverStdoutBuffer)) { // Give s_server half a second to start up. setTimeout(startClient, 500); state = 'WAIT-HELLO'; @@ -92,7 +92,7 @@ function test(keyfn, certfn, check, next) { break; case 'WAIT-HELLO': - if (/hello/g.test(serverStdoutBuffer)) { + if (/hello/.test(serverStdoutBuffer)) { // End the current SSL connection and exit. // See s_server(1ssl). From 7e3bab779a7e103a7bd0d8b67f114adef224cd0a Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Fri, 16 Jun 2017 03:07:07 +0300 Subject: [PATCH 023/248] test: use string instead of RegExp in split() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/13710 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: James M Snell Reviewed-By: Gibson Fahnestock Reviewed-By: Michaël Zasso --- .../test-http-outgoing-first-chunk-singlebyte-encoding.js | 2 +- test/parallel/test-repl-setprompt.js | 2 +- test/parallel/test-stdin-script-child.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js b/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js index f1af1dc718bd9a..7249230cfadbb7 100644 --- a/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js +++ b/test/parallel/test-http-outgoing-first-chunk-singlebyte-encoding.js @@ -24,7 +24,7 @@ for (const enc of ['utf8', 'utf16le', 'latin1', 'UTF-8']) { const headerEnd = received.indexOf('\r\n\r\n', 'utf8'); assert.notStrictEqual(headerEnd, -1); - const header = received.toString('utf8', 0, headerEnd).split(/\r\n/); + const header = received.toString('utf8', 0, headerEnd).split('\r\n'); const body = received.toString(enc, headerEnd + 4); assert.strictEqual(header[0], 'HTTP/1.1 200 OK'); diff --git a/test/parallel/test-repl-setprompt.js b/test/parallel/test-repl-setprompt.js index c49e08c399483b..d9eb85be145734 100644 --- a/test/parallel/test-repl-setprompt.js +++ b/test/parallel/test-repl-setprompt.js @@ -44,6 +44,6 @@ child.stdin.end(`e.setPrompt("${p}");${os.EOL}`); child.on('close', function(code, signal) { assert.strictEqual(code, 0); assert.ok(!signal); - const lines = data.split(/\n/); + const lines = data.split('\n'); assert.strictEqual(lines.pop(), p); }); diff --git a/test/parallel/test-stdin-script-child.js b/test/parallel/test-stdin-script-child.js index d3d22a9a82fdff..6e37fad9414de4 100644 --- a/test/parallel/test-stdin-script-child.js +++ b/test/parallel/test-stdin-script-child.js @@ -19,7 +19,7 @@ for (const args of [[], ['-']]) { child.stderr.setEncoding('utf8'); child.stderr.on('data', function(c) { - console.error(`> ${c.trim().split(/\n/).join('\n> ')}`); + console.error(`> ${c.trim().split('\n').join('\n> ')}`); }); child.on('close', common.mustCall(function(c) { From 70f39351307838265a7ee89d1c1aac2e32f5da7c Mon Sep 17 00:00:00 2001 From: Daijiro Wachi Date: Thu, 15 Jun 2017 15:57:00 +0200 Subject: [PATCH 024/248] doc: fix api docs style doc/api/async_hooks.md + L198: Missing code-language flag + L239: Missing code-language flag + L317: Missing code-language flag + L347: Missing code-language flag doc/api/fs.md + L2857: Unused definition PR-URL: https://github.com/nodejs/node/pull/13700 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Benjamin Gruenbaum Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Michael Dawson --- doc/api/async_hooks.md | 8 ++++---- doc/api/fs.md | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/doc/api/async_hooks.md b/doc/api/async_hooks.md index f6cd1c4bf8b99c..432c1a2de853d0 100644 --- a/doc/api/async_hooks.md +++ b/doc/api/async_hooks.md @@ -195,7 +195,7 @@ The `type` is a string that represents the type of resource that caused `init` to be called. Generally, it will correspond to the name of the resource's constructor. -``` +```text FSEVENTWRAP, FSREQWRAP, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPPARSER, JSSTREAM, PIPECONNECTWRAP, PIPEWRAP, PROCESSWRAP, QUERYWRAP, SHUTDOWNWRAP, SIGNALWRAP, STATWATCHER, TCPCONNECTWRAP, TCPWRAP, TIMERWRAP, TTYWRAP, @@ -236,7 +236,7 @@ require('net').createServer((conn) => {}).listen(8080); Output when hitting the server with `nc localhost 8080`: -``` +```console TCPWRAP(2): trigger: 1 execution: 1 TCPWRAP(4): trigger: 2 execution: 0 ``` @@ -314,7 +314,7 @@ require('net').createServer(() => {}).listen(8080, () => { Output from only starting the server: -``` +```console TCPWRAP(2): trigger: 1 execution: 1 TickObject(3): trigger: 2 execution: 1 before: 3 @@ -344,7 +344,7 @@ calls to `before` and `after`. Only using `execution` to graph resource allocation results in the following: -``` +```console TTYWRAP(6) -> Timeout(4) -> TIMERWRAP(5) -> TickObject(3) -> root(1) ``` diff --git a/doc/api/fs.md b/doc/api/fs.md index a2a8165e3a2fbd..a245eed287d93a 100644 --- a/doc/api/fs.md +++ b/doc/api/fs.md @@ -2854,7 +2854,6 @@ The following constants are meant for use with the [`fs.Stats`][] object's [Caveats]: #fs_caveats [Common System Errors]: errors.html#errors_common_system_errors [FS Constants]: #fs_fs_constants_1 -[MDN-Date-getTime]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTime [MDN-Date]: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date [MDN-Number]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type [MSDN-Rel-Path]: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx#fully_qualified_vs._relative_paths From 683f743e61dde178fada5e381531696f495650ca Mon Sep 17 00:00:00 2001 From: James M Snell Date: Fri, 16 Jun 2017 12:35:15 -0700 Subject: [PATCH 025/248] buffer: support boxed strings and toPrimitive Add support for `Buffer.from(new String('...'))` and `Buffer.from({[Symbol.toPrimitive]() { return '...'; }})` PR-URL: https://github.com/nodejs/node/pull/13725 Reviewed-By: Anna Henningsen Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig --- doc/api/buffer.md | 38 +++++++++++++++++++++ lib/buffer.js | 18 ++++++++-- test/parallel/test-buffer-from.js | 57 +++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 test/parallel/test-buffer-from.js diff --git a/doc/api/buffer.md b/doc/api/buffer.md index 4488ae2ad9bf8d..3a04ad514b4d4e 100644 --- a/doc/api/buffer.md +++ b/doc/api/buffer.md @@ -908,6 +908,44 @@ console.log(buf2.toString()); A `TypeError` will be thrown if `str` is not a string. +### Class Method: Buffer.from(object[, offsetOrEncoding[, length]]) + + +* `object` {Object} An object supporting `Symbol.toPrimitive` or `valueOf()` +* `offsetOrEncoding` {number|string} A byte-offset or encoding, depending on + the value returned either by `object.valueOf()` or + `object[Symbol.toPrimitive]()`. +* `length` {number} A length, depending on the value returned either by + `object.valueOf()` or `object[Symbol.toPrimitive]()`. + +For objects whose `valueOf()` function returns a value not strictly equal to +`object`, returns `Buffer.from(object.valueOf(), offsetOrEncoding, length)`. + +For example: + +```js +const buf = Buffer.from(new String('this is a test')); +// +``` + +For objects that support `Symbol.toPrimitive`, returns +`Buffer.from(object[Symbol.toPrimitive](), offsetOrEncoding, length)`. + +For example: + +```js +class Foo { + [Symbol.toPrimitive]() { + return 'this is a test'; + } +} + +const buf = Buffer.from(new Foo(), 'utf8'); +// +``` + ### Class Method: Buffer.isBuffer(obj) -Returns an array of IP address strings that are being used for name -resolution. +Returns an array of IP address strings, formatted according to [rfc5952][], +that are currently configured for DNS resolution. A string will include a port +section if a custom port is used. + +For example: + + +```js +[ + '4.4.4.4', + '2001:4860:4860::8888', + '4.4.4.4:1053', + '[2001:4860:4860::8888]:1053' +] +``` ## dns.lookup(hostname[, options], callback) -- `servers` {string[]} +- `servers` {string[]} array of [rfc5952][] formatted addresses + +Sets the IP address and port of servers to be used when performing DNS +resolution. The `servers` argument is an array of [rfc5952][] formatted +addresses. If the port is the IANA default DNS port (53) it can be omitted. -Sets the IP addresses of the servers to be used when resolving. The `servers` -argument is an array of IPv4 or IPv6 addresses. +For example: -If a port is specified on the address, it will be removed. +```js +dns.setServers([ + '4.4.4.4', + '[2001:4860:4860::8888]', + '4.4.4.4:1053', + '[2001:4860:4860::8888]:1053' +]); +``` An error will be thrown if an invalid address is provided. @@ -536,3 +559,4 @@ uses. For instance, _they do not use the configuration from `/etc/hosts`_. [supported `getaddrinfo` flags]: #dns_supported_getaddrinfo_flags [the official libuv documentation]: http://docs.libuv.org/en/latest/threadpool.html [`util.promisify()`]: util.html#util_util_promisify_original +[rfc5952]: https://tools.ietf.org/html/rfc5952#section-6 diff --git a/lib/dns.js b/lib/dns.js index 1c3d8c3104db40..f69457239c8136 100644 --- a/lib/dns.js +++ b/lib/dns.js @@ -60,6 +60,7 @@ function errnoException(err, syscall, hostname) { return ex; } +const IANA_DNS_PORT = 53; const digits = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0-15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 @@ -301,7 +302,13 @@ function resolve(hostname, type_, callback_) { function getServers() { - return cares.getServers(); + const ret = cares.getServers(); + return ret.map((val) => { + if (!val[1] || val[1] === IANA_DNS_PORT) return val[0]; + + const host = isIP(val[0]) === 6 ? `[${val[0]}]` : val[0]; + return `${host}:${val[1]}`; + }); } @@ -311,26 +318,31 @@ function setServers(servers) { const orig = cares.getServers(); const newSet = []; const IPv6RE = /\[(.*)\]/; - const addrSplitRE = /:\d+$/; + const addrSplitRE = /(^.+?)(?::(\d+))?$/; servers.forEach((serv) => { var ipVersion = isIP(serv); if (ipVersion !== 0) - return newSet.push([ipVersion, serv]); + return newSet.push([ipVersion, serv, IANA_DNS_PORT]); const match = serv.match(IPv6RE); // we have an IPv6 in brackets if (match) { ipVersion = isIP(match[1]); - if (ipVersion !== 0) - return newSet.push([ipVersion, match[1]]); + if (ipVersion !== 0) { + const port = + parseInt(serv.replace(addrSplitRE, '$2')) || + IANA_DNS_PORT; + return newSet.push([ipVersion, match[1], port]); + } } - const s = serv.split(addrSplitRE)[0]; + const [, s, p] = serv.match(addrSplitRE); ipVersion = isIP(s); - if (ipVersion !== 0) - return newSet.push([ipVersion, s]); + if (ipVersion !== 0) { + return newSet.push([ipVersion, s, parseInt(p)]); + } throw new Error(`IP address is not properly formatted: ${serv}`); }); diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc index 62d0abd032ea73..25527d6f8c3593 100644 --- a/src/cares_wrap.cc +++ b/src/cares_wrap.cc @@ -419,9 +419,9 @@ void AresEnsureServers(Environment* env) { } ares_channel channel = env->cares_channel(); - ares_addr_node* servers = nullptr; + ares_addr_port_node* servers = nullptr; - ares_get_servers(channel, &servers); + ares_get_servers_ports(channel, &servers); /* if no server or multi-servers, ignore */ if (servers == nullptr) return; @@ -433,7 +433,9 @@ void AresEnsureServers(Environment* env) { /* if the only server is not 127.0.0.1, ignore */ if (servers[0].family != AF_INET || - servers[0].addr.addr4.s_addr != htonl(INADDR_LOOPBACK)) { + servers[0].addr.addr4.s_addr != htonl(INADDR_LOOPBACK) || + servers[0].tcp_port != 0 || + servers[0].udp_port != 0) { ares_free_data(servers); env->set_cares_is_servers_default(false); return; @@ -1384,12 +1386,12 @@ void GetServers(const FunctionCallbackInfo& args) { Local server_array = Array::New(env->isolate()); - ares_addr_node* servers; + ares_addr_port_node* servers; - int r = ares_get_servers(env->cares_channel(), &servers); + int r = ares_get_servers_ports(env->cares_channel(), &servers); CHECK_EQ(r, ARES_SUCCESS); - ares_addr_node* cur = servers; + ares_addr_port_node* cur = servers; for (uint32_t i = 0; cur != nullptr; ++i, cur = cur->next) { char ip[INET6_ADDRSTRLEN]; @@ -1398,8 +1400,11 @@ void GetServers(const FunctionCallbackInfo& args) { int err = uv_inet_ntop(cur->family, caddr, ip, sizeof(ip)); CHECK_EQ(err, 0); - Local addr = OneByteString(env->isolate(), ip); - server_array->Set(i, addr); + Local ret = Array::New(env->isolate(), 2); + ret->Set(0, OneByteString(env->isolate(), ip)); + ret->Set(1, Integer::New(env->isolate(), cur->udp_port)); + + server_array->Set(i, ret); } ares_free_data(servers); @@ -1422,8 +1427,8 @@ void SetServers(const FunctionCallbackInfo& args) { return args.GetReturnValue().Set(rv); } - ares_addr_node* servers = new ares_addr_node[len]; - ares_addr_node* last = nullptr; + ares_addr_port_node* servers = new ares_addr_port_node[len]; + ares_addr_port_node* last = nullptr; int err; @@ -1434,12 +1439,15 @@ void SetServers(const FunctionCallbackInfo& args) { CHECK(elm->Get(0)->Int32Value()); CHECK(elm->Get(1)->IsString()); + CHECK(elm->Get(2)->Int32Value()); int fam = elm->Get(0)->Int32Value(); node::Utf8Value ip(env->isolate(), elm->Get(1)); + int port = elm->Get(2)->Int32Value(); - ares_addr_node* cur = &servers[i]; + ares_addr_port_node* cur = &servers[i]; + cur->tcp_port = cur->udp_port = port; switch (fam) { case 4: cur->family = AF_INET; @@ -1465,7 +1473,7 @@ void SetServers(const FunctionCallbackInfo& args) { } if (err == 0) - err = ares_set_servers(env->cares_channel(), &servers[0]); + err = ares_set_servers_ports(env->cares_channel(), &servers[0]); else err = ARES_EBADSTR; diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index b409bb5e660d83..abbfb9d16b19e8 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -35,6 +35,8 @@ assert.doesNotThrow(() => { servers[0] = '127.0.0.1'; servers[2] = '0.0.0.0'; dns.setServers(servers); + + assert.deepStrictEqual(dns.getServers(), ['127.0.0.1', '0.0.0.0']); }); assert.doesNotThrow(() => { @@ -53,6 +55,11 @@ assert.doesNotThrow(() => { }); dns.setServers(servers); + assert.deepStrictEqual(dns.getServers(), [ + '127.0.0.1', + '192.168.1.1', + '0.0.0.0' + ]); }); const goog = [ @@ -63,6 +70,8 @@ assert.doesNotThrow(() => dns.setServers(goog)); assert.deepStrictEqual(dns.getServers(), goog); assert.throws(() => dns.setServers(['foobar']), /^Error: IP address is not properly formatted: foobar$/); +assert.throws(() => dns.setServers(['127.0.0.1:va']), + /^Error: IP address is not properly formatted: 127\.0\.0\.1:va$/); assert.deepStrictEqual(dns.getServers(), goog); const goog6 = [ @@ -79,10 +88,14 @@ assert.deepStrictEqual(dns.getServers(), goog6); const ports = [ '4.4.4.4:53', '[2001:4860:4860::8888]:53', + '103.238.225.181:666', + '[fe80::483a:5aff:fee6:1f04]:666' ]; const portsExpected = [ '4.4.4.4', '2001:4860:4860::8888', + '103.238.225.181:666', + '[fe80::483a:5aff:fee6:1f04]:666' ]; dns.setServers(ports); assert.deepStrictEqual(dns.getServers(), portsExpected); From b0db2b9fc25def0d3e41fc4bc0783558d547e5cc Mon Sep 17 00:00:00 2001 From: Eugene Ostroukhov Date: Mon, 19 Jun 2017 10:37:27 -0700 Subject: [PATCH 027/248] inspector, test: Fix test bug detected by Coverity Error value was not checked. Turns out, uv_ip6_addr was actually called on malformed IP (square brackets should not have been included). PR-URL: https://github.com/nodejs/node/pull/13799 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell --- test/cctest/test_inspector_socket_server.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/cctest/test_inspector_socket_server.cc b/test/cctest/test_inspector_socket_server.cc index cd9e8f1cfcbb89..a8c3bcd2f7f5d5 100644 --- a/test/cctest/test_inspector_socket_server.cc +++ b/test/cctest/test_inspector_socket_server.cc @@ -172,12 +172,14 @@ class SocketWrapper { contents_.clear(); uv_tcp_init(loop_, &socket_); union {sockaddr generic; sockaddr_in v4; sockaddr_in6 v6;} addr; + int err = 0; if (v6) { - uv_ip6_addr(host.c_str(), port, &addr.v6); + err = uv_ip6_addr(host.c_str(), port, &addr.v6); } else { - uv_ip4_addr(host.c_str(), port, &addr.v4); + err = uv_ip4_addr(host.c_str(), port, &addr.v4); } - int err = uv_tcp_connect(&connect_, &socket_, &addr.generic, Connected_); + ASSERT_EQ(0, err); + err = uv_tcp_connect(&connect_, &socket_, &addr.generic, Connected_); ASSERT_EQ(0, err); SPIN_WHILE(!connected_) uv_read_start(reinterpret_cast(&socket_), AllocCallback, @@ -618,7 +620,7 @@ TEST_F(InspectorSocketServerTest, BindsToIpV6) { ASSERT_TRUE(server->Start()); SocketWrapper socket1(&loop); - socket1.Connect("[::]", server.port(), true); + socket1.Connect("::", server.port(), true); socket1.Write(WsHandshakeRequest(MAIN_TARGET_ID)); socket1.Expect(WS_HANDSHAKE_RESPONSE); server->Stop(ServerHolder::CloseCallback); From 6e30e2558e9c2711c7bc9319eb6d0cb96158197b Mon Sep 17 00:00:00 2001 From: XadillaX Date: Sun, 21 May 2017 18:02:33 +0800 Subject: [PATCH 028/248] dns: add resolveAny support `dns.resolveAny` and `dns.resolve` with `"ANY"` has the similar behavior like `$ dig any` and returns an array with several types of records. `dns.resolveAny` parses the result packet by several rules in turn. Supported types: * A * AAAA * CNAME * MX * NAPTR * NS * PTR * SOA * SRV * TXT Fixes: https://github.com/nodejs/node/issues/2848 PR-URL: https://github.com/nodejs/node/pull/13137 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell Reviewed-By: Roman Reiss --- doc/api/dns.md | 47 ++ lib/dns.js | 2 + src/cares_wrap.cc | 889 +++++++++++++++++++++++++++------- src/env.h | 13 + test/internet/test-dns-any.js | 198 ++++++++ 5 files changed, 975 insertions(+), 174 deletions(-) create mode 100644 test/internet/test-dns-any.js diff --git a/doc/api/dns.md b/doc/api/dns.md index c41c886034d7ba..3813712305abe8 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -210,6 +210,7 @@ records. The type and structure of individual results varies based on `rrtype`: | `'SOA'` | start of authority records | {Object} | [`dns.resolveSoa()`][] | | `'SRV'` | service records | {Object} | [`dns.resolveSrv()`][] | | `'TXT'` | text records | {string} | [`dns.resolveTxt()`][] | +| `'ANY'` | any records | {Object} | [`dns.resolveAny()`][] | On error, `err` is an [`Error`][] object, where `err.code` is one of the [DNS error codes](#dns_error_codes). @@ -430,6 +431,51 @@ is a two-dimensional array of the text records available for `hostname` (e.g., one record. Depending on the use case, these could be either joined together or treated separately. +## dns.resolveAny(hostname, callback) + +- `hostname` {string} +- `callback` {Function} + - `err` {Error} + - `ret` {Object[][]} + +Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). +The `ret` argument passed to the `callback` function will be an array containing +various types of records. Each object has a property `type` that indicates the +type of the current record. And depending on the `type`, additional properties +will be present on the object: + +| Type | Properties | +|------|------------| +| `"A"` | `address` / `ttl` | +| `"AAAA"` | `address` / `ttl` | +| `"CNAME"` | `value` | +| `"MX"` | Refer to [`dns.resolveMx()`][] | +| `"NAPTR"` | Refer to [`dns.resolveNaptr()`][] | +| `"NS"` | `value` | +| `"PTR"` | `value` | +| `"SOA"` | Refer to [`dns.resolveSoa()`][] | +| `"SRV"` | Refer to [`dns.resolveSrv()`][] | +| `"TXT"` | This type of record contains an array property called `entries` which refers to [`dns.resolveTxt()`][], eg. `{ entries: ['...'], type: 'TXT' }` | + +Here is a example of the `ret` object passed to the callback: + + +```js +[ { type: 'A', address: '127.0.0.1', ttl: 299 }, + { type: 'CNAME', value: 'example.com' }, + { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + { type: 'NS', value: 'ns1.example.com', type: 'NS' }, + { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + { type: 'SOA', + nsname: 'ns1.example.com', + hostmaster: 'admin.example.com', + serial: 156696742, + refresh: 900, + retry: 900, + expire: 1800, + minttl: 60 } ] +``` + ## dns.reverse(ip, callback) + +* {net.Socket} + +See [`request.socket`][] + ### request.end([data[, encoding]][, callback]) + +* {net.Socket} + +Reference to the underlying socket. Usually users will not want to access +this property. In particular, the socket will not emit `'readable'` events +because of how the protocol parser attaches to the socket. After +`response.end()`, the property is nulled. The `socket` may also be accessed +via `request.connection`. + +Example: + +```js +const http = require('http'); +const server = http.createServer((req, res) => { + const ip = req.socket.remoteAddress; + const port = req.socket.remotePort; + res.end(`Your IP address is ${ip} and your source port is ${port}.`); +}).listen(3000); +``` + ### request.write(chunk[, encoding][, callback]) + +* {net.Socket} + +See [`response.socket`][]. + ### response.end([data][, encoding][, callback]) + +* {net.Socket} + +Reference to the underlying socket. Usually users will not want to access +this property. In particular, the socket will not emit `'readable'` events +because of how the protocol parser attaches to the socket. After +`response.end()`, the property is nulled. The `socket` may also be accessed +via `response.connection`. + +Example: + +```js +const http = require('http'); +const server = http.createServer((req, res) => { + const ip = req.socket.remoteAddress; + const port = req.socket.remotePort; + res.end(`Your IP address is ${ip} and your source port is ${port}.`); +}).listen(3000); +``` + ### response.statusCode - - - -1.0.2 / 2016-07-23 -================== - -* Fix `readme.md` ([`03823ce`](https://github.com/wooorm/collapse-white-space/commit/03823ce)) - -1.0.1 / 2016-07-23 -================== - -* Rewrite module ([`6d48e8d`](https://github.com/wooorm/collapse-white-space/commit/6d48e8d)) - -1.0.0 / 2015-07-12 -================== diff --git a/tools/eslint/node_modules/collapse-white-space/index.js b/tools/eslint/node_modules/collapse-white-space/index.js index 337c1078631a4c..dcd14c65de4a8a 100644 --- a/tools/eslint/node_modules/collapse-white-space/index.js +++ b/tools/eslint/node_modules/collapse-white-space/index.js @@ -1,27 +1,8 @@ -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module collapse-white-space - * @fileoverview Replace multiple white-space characters - * with a single space. - */ - 'use strict'; -/* Expose. */ module.exports = collapse; -/** - * Replace multiple white-space characters with a single space. - * - * @example - * collapse(' \t\nbar \nbaz\t'); // ' bar baz ' - * - * @param {string} value - Value with uncollapsed white-space, - * coerced to string. - * @return {string} - Value with collapsed white-space. - */ +/* collapse(' \t\nbar \nbaz\t'); // ' bar baz ' */ function collapse(value) { return String(value).replace(/\s+/g, ' '); } diff --git a/tools/eslint/node_modules/collapse-white-space/package.json b/tools/eslint/node_modules/collapse-white-space/package.json index 0f7712f0e8fe82..988384fb1efaab 100644 --- a/tools/eslint/node_modules/collapse-white-space/package.json +++ b/tools/eslint/node_modules/collapse-white-space/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "collapse-white-space@^1.0.0", - "scope": null, - "escapedName": "collapse-white-space", - "name": "collapse-white-space", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "collapse-white-space@>=1.0.0 <2.0.0", - "_id": "collapse-white-space@1.0.2", - "_inCache": true, + "_from": "collapse-white-space@^1.0.0", + "_id": "collapse-white-space@1.0.3", + "_inBundle": false, + "_integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=", "_location": "/collapse-white-space", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/collapse-white-space-1.0.2.tgz_1469310043598_0.74730454524979" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "collapse-white-space@^1.0.0", - "scope": null, - "escapedName": "collapse-white-space", "name": "collapse-white-space", + "escapedName": "collapse-white-space", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/remark-parse" ], - "_resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.2.tgz", - "_shasum": "9c463fb9c6d190d2dcae21a356a01bcae9eeef6d", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", + "_shasum": "4b906f670e5a963a87b76b0e1689643341b6023c", "_spec": "collapse-white-space@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/collapse-white-space/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,28 +39,20 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Replace multiple white-space characters with a single space", "devDependencies": { - "browserify": "^13.0.1", + "browserify": "^14.0.0", "esmangle": "^1.0.1", - "nyc": "^7.0.0", - "remark-cli": "^1.0.0", - "remark-comment-config": "^4.0.0", - "remark-github": "^5.0.0", - "remark-lint": "^4.0.0", - "remark-validate-links": "^4.0.0", + "nyc": "^11.0.0", + "remark-cli": "^3.0.0", + "remark-preset-wooorm": "^3.0.0", "tape": "^4.0.0", - "xo": "^0.16.0" - }, - "directories": {}, - "dist": { - "shasum": "9c463fb9c6d190d2dcae21a356a01bcae9eeef6d", - "tarball": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.2.tgz" + "xo": "^0.18.0" }, "files": [ "index.js" ], - "gitHead": "cd218a06e569cf9cbd4657436557299d3bb504cf", "homepage": "https://github.com/wooorm/collapse-white-space#readme", "keywords": [ "collapse", @@ -90,26 +60,11 @@ "space" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "collapse-white-space", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { - "output": true, "plugins": [ - "comment-config", - "github", - "lint", - "validate-links" - ], - "settings": { - "bullet": "*" - } + "preset-wooorm" + ] }, "repository": { "type": "git", @@ -119,18 +74,21 @@ "build": "npm run build-md && npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s collapseWhiteSpace > collapse-white-space.js", "build-mangle": "esmangle collapse-white-space.js > collapse-white-space.min.js", - "build-md": "remark . --quiet --frail", + "build-md": "remark . -qfo", "lint": "xo", "test": "npm run build && npm run lint && npm run test-coverage", "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.0.2", + "version": "1.0.3", "xo": { "space": true, + "esnext": false, + "rules": { + "capitalized-comments": "off" + }, "ignores": [ - "collapse-white-space.js", - "collapse-white-space.min.js" + "collapse-white-space.js" ] } } diff --git a/tools/eslint/node_modules/collapse-white-space/readme.md b/tools/eslint/node_modules/collapse-white-space/readme.md index d5dc32183df442..5cf867a7002957 100644 --- a/tools/eslint/node_modules/collapse-white-space/readme.md +++ b/tools/eslint/node_modules/collapse-white-space/readme.md @@ -1,7 +1,5 @@ # collapse-white-space [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] - - Replace multiple white-space characters with a single space. ## Installation @@ -14,37 +12,17 @@ npm install collapse-white-space ## Usage -Dependencies. - ```javascript var collapse = require('collapse-white-space'); -``` - -Collapse white space: -```javascript -var result = collapse('\tfoo \n\tbar \t\r\nbaz'); -``` - -Yields: - -```text - foo bar baz +collapse('\tfoo \n\tbar \t\r\nbaz'); //=> ' foo bar baz' ``` ## API ### `collapse(value)` -Replace multiple white-space characters with a single space. - -###### Parameters - -* `value` (`string`) — Value with uncollapsed white-space, coerced to string. - -###### Returns - -`string` — Value with collapsed white-space. +Replace multiple white-space characters in value with a single space. ## License diff --git a/tools/eslint/node_modules/concat-map/package.json b/tools/eslint/node_modules/concat-map/package.json index 59aabc31f5b7eb..3218121b30a4c3 100644 --- a/tools/eslint/node_modules/concat-map/package.json +++ b/tools/eslint/node_modules/concat-map/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "concat-map@0.0.1", - "scope": null, - "escapedName": "concat-map", - "name": "concat-map", - "rawSpec": "0.0.1", - "spec": "0.0.1", - "type": "version" - }, - "/Users/trott/io.js/tools/node_modules/brace-expansion" - ] - ], "_from": "concat-map@0.0.1", "_id": "concat-map@0.0.1", - "_inCache": true, - "_location": "/concat-map", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "_npmVersion": "1.3.21", + "_inBundle": false, + "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "_location": "/eslint/concat-map", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "concat-map@0.0.1", - "scope": null, - "escapedName": "concat-map", "name": "concat-map", + "escapedName": "concat-map", "rawSpec": "0.0.1", - "spec": "0.0.1", - "type": "version" + "saveSpec": null, + "fetchSpec": "0.0.1" }, "_requiredBy": [ - "/brace-expansion" + "/eslint/brace-expansion" ], "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "_shrinkwrap": null, "_spec": "concat-map@0.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/brace-expansion", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/brace-expansion", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -48,7 +30,8 @@ "bugs": { "url": "https://github.com/substack/node-concat-map/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "concatenative mapdashery", "devDependencies": { "tape": "~2.4.0" @@ -57,11 +40,7 @@ "example": "example", "test": "test" }, - "dist": { - "shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b", - "tarball": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "homepage": "https://github.com/substack/node-concat-map", + "homepage": "https://github.com/substack/node-concat-map#readme", "keywords": [ "concat", "concatMap", @@ -71,15 +50,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "concat-map", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/substack/node-concat-map.git" diff --git a/tools/eslint/node_modules/concat-stream/package.json b/tools/eslint/node_modules/concat-stream/package.json index 388cfc2a0facfd..e41fc763669c64 100644 --- a/tools/eslint/node_modules/concat-stream/package.json +++ b/tools/eslint/node_modules/concat-stream/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "concat-stream@^1.6.0", - "scope": null, - "escapedName": "concat-stream", - "name": "concat-stream", - "rawSpec": "^1.6.0", - "spec": ">=1.6.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "concat-stream@>=1.6.0 <2.0.0", + "_from": "concat-stream@^1.6.0", "_id": "concat-stream@1.6.0", - "_inCache": true, - "_location": "/concat-stream", - "_nodeVersion": "4.6.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/concat-stream-1.6.0.tgz_1482162257023_0.2988202746491879" - }, - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - "_npmVersion": "2.15.11", + "_inBundle": false, + "_integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "_location": "/eslint/concat-stream", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "concat-stream@^1.6.0", - "scope": null, - "escapedName": "concat-stream", "name": "concat-stream", + "escapedName": "concat-stream", "rawSpec": "^1.6.0", - "spec": ">=1.6.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.6.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "_shasum": "0aac662fd52be78964d5532f694784e70110acf7", - "_shrinkwrap": null, "_spec": "concat-stream@^1.6.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Max Ogden", "email": "max@maxogden.com" @@ -52,43 +29,27 @@ "bugs": { "url": "http://github.com/maxogden/concat-stream/issues" }, + "bundleDependencies": false, "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" }, + "deprecated": false, "description": "writable stream that concatenates strings or binary data and calls a callback with the result", "devDependencies": { "tape": "^4.6.3" }, - "directories": {}, - "dist": { - "shasum": "0aac662fd52be78964d5532f694784e70110acf7", - "tarball": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz" - }, "engines": [ "node >= 0.8" ], "files": [ "index.js" ], - "gitHead": "e482281642c1e011fc158f5749ef40a71c77a426", - "homepage": "https://github.com/maxogden/concat-stream", + "homepage": "https://github.com/maxogden/concat-stream#readme", "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - { - "name": "maxogden", - "email": "max@maxogden.com" - } - ], "name": "concat-stream", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/maxogden/concat-stream.git" diff --git a/tools/eslint/node_modules/core-util-is/package.json b/tools/eslint/node_modules/core-util-is/package.json index 69ed3faa62a9ff..c26c8b001ace67 100644 --- a/tools/eslint/node_modules/core-util-is/package.json +++ b/tools/eslint/node_modules/core-util-is/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "core-util-is@~1.0.0", - "scope": null, - "escapedName": "core-util-is", - "name": "core-util-is", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "core-util-is@>=1.0.0 <1.1.0", + "_from": "core-util-is@~1.0.0", "_id": "core-util-is@1.0.2", - "_inCache": true, - "_location": "/core-util-is", - "_nodeVersion": "4.0.0", - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.3.2", + "_inBundle": false, + "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "_location": "/eslint/core-util-is", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "core-util-is@~1.0.0", - "scope": null, - "escapedName": "core-util-is", "name": "core-util-is", + "escapedName": "core-util-is", "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.0" }, "_requiredBy": [ - "/readable-stream" + "/eslint/readable-stream" ], "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "_shrinkwrap": null, "_spec": "core-util-is@~1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -49,17 +30,12 @@ "bugs": { "url": "https://github.com/isaacs/core-util-is/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "The `util.is*` functions introduced in Node v0.12.", "devDependencies": { "tap": "^2.3.0" }, - "directories": {}, - "dist": { - "shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7", - "tarball": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "gitHead": "a177da234df5638b363ddc15fa324619a38577c8", "homepage": "https://github.com/isaacs/core-util-is#readme", "keywords": [ "util", @@ -74,15 +50,7 @@ ], "license": "MIT", "main": "lib/util.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "core-util-is", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/core-util-is.git" diff --git a/tools/eslint/node_modules/debug/package.json b/tools/eslint/node_modules/debug/package.json index ba620be76ee10b..2b3b9a4113e353 100644 --- a/tools/eslint/node_modules/debug/package.json +++ b/tools/eslint/node_modules/debug/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "debug@^2.6.8", - "scope": null, - "escapedName": "debug", - "name": "debug", - "rawSpec": "^2.6.8", - "spec": ">=2.6.8 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "debug@>=2.6.8 <3.0.0", + "_from": "debug@^2.6.8", "_id": "debug@2.6.8", - "_inCache": true, - "_location": "/debug", - "_nodeVersion": "7.10.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/debug-2.6.8.tgz_1495138020906_0.5965513256378472" - }, - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "_npmVersion": "4.2.0", + "_inBundle": false, + "_integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "_location": "/eslint/debug", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "debug@^2.6.8", - "scope": null, - "escapedName": "debug", "name": "debug", + "escapedName": "debug", "rawSpec": "^2.6.8", - "spec": ">=2.6.8 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.6.8" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "_shasum": "e731531ca2ede27d188222427da17821d68ff4fc", - "_shrinkwrap": null, "_spec": "debug@^2.6.8", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/visionmedia/debug/issues" }, + "bundleDependencies": false, "component": { "scripts": { "debug/index.js": "browser.js", @@ -73,6 +51,7 @@ "dependencies": { "ms": "2.0.0" }, + "deprecated": false, "description": "small debugging utility", "devDependencies": { "browserify": "9.0.3", @@ -92,12 +71,6 @@ "sinon": "^1.17.6", "sinon-chai": "^2.8.0" }, - "directories": {}, - "dist": { - "shasum": "e731531ca2ede27d188222427da17821d68ff4fc", - "tarball": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz" - }, - "gitHead": "52e1f21284322f167839e5d3a60f635c8b2dc842", "homepage": "https://github.com/visionmedia/debug#readme", "keywords": [ "debug", @@ -106,19 +79,10 @@ ], "license": "MIT", "main": "./src/index.js", - "maintainers": [ - { - "name": "thebigredgeek", - "email": "rhyneandrew@gmail.com" - } - ], "name": "debug", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/debug.git" }, - "scripts": {}, "version": "2.6.8" } diff --git a/tools/eslint/node_modules/deep-is/package.json b/tools/eslint/node_modules/deep-is/package.json index d54f38bd683c2d..1234ca07235833 100644 --- a/tools/eslint/node_modules/deep-is/package.json +++ b/tools/eslint/node_modules/deep-is/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "deep-is@~0.1.3", - "scope": null, - "escapedName": "deep-is", - "name": "deep-is", - "rawSpec": "~0.1.3", - "spec": ">=0.1.3 <0.2.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/optionator" - ] - ], - "_from": "deep-is@>=0.1.3 <0.2.0", + "_from": "deep-is@~0.1.3", "_id": "deep-is@0.1.3", - "_inCache": true, - "_location": "/deep-is", - "_npmUser": { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - }, - "_npmVersion": "1.4.14", + "_inBundle": false, + "_integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "_location": "/eslint/deep-is", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "deep-is@~0.1.3", - "scope": null, - "escapedName": "deep-is", "name": "deep-is", + "escapedName": "deep-is", "rawSpec": "~0.1.3", - "spec": ">=0.1.3 <0.2.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~0.1.3" }, "_requiredBy": [ - "/optionator" + "/eslint/optionator" ], "_resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "_shasum": "b369d6fb5dbc13eecf524f91b070feedc357cf34", - "_shrinkwrap": null, "_spec": "deep-is@~0.1.3", - "_where": "/Users/trott/io.js/tools/node_modules/optionator", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", "author": { "name": "Thorsten Lorenz", "email": "thlorenz@gmx.de", @@ -48,7 +30,8 @@ "bugs": { "url": "https://github.com/thlorenz/deep-is/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN", "devDependencies": { "tape": "~1.0.2" @@ -58,12 +41,7 @@ "example": "example", "test": "test" }, - "dist": { - "shasum": "b369d6fb5dbc13eecf524f91b070feedc357cf34", - "tarball": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - }, - "gitHead": "f126057628423458636dec9df3d621843b9ac55e", - "homepage": "https://github.com/thlorenz/deep-is", + "homepage": "https://github.com/thlorenz/deep-is#readme", "keywords": [ "equality", "equal", @@ -74,15 +52,7 @@ "url": "https://github.com/thlorenz/deep-is/blob/master/LICENSE" }, "main": "index.js", - "maintainers": [ - { - "name": "thlorenz", - "email": "thlorenz@gmx.de" - } - ], "name": "deep-is", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/thlorenz/deep-is.git" diff --git a/tools/eslint/node_modules/del/package.json b/tools/eslint/node_modules/del/package.json index dca7b106f29169..0f93beab8acc51 100644 --- a/tools/eslint/node_modules/del/package.json +++ b/tools/eslint/node_modules/del/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "del@^2.0.2", - "scope": null, - "escapedName": "del", - "name": "del", - "rawSpec": "^2.0.2", - "spec": ">=2.0.2 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/flat-cache" - ] - ], - "_from": "del@>=2.0.2 <3.0.0", + "_from": "del@^2.0.2", "_id": "del@2.2.2", - "_inCache": true, - "_location": "/del", - "_nodeVersion": "4.4.5", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/del-2.2.2.tgz_1471046735537_0.4419694794341922" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.5", + "_inBundle": false, + "_integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "_location": "/eslint/del", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "del@^2.0.2", - "scope": null, - "escapedName": "del", "name": "del", + "escapedName": "del", "rawSpec": "^2.0.2", - "spec": ">=2.0.2 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.2" }, "_requiredBy": [ - "/flat-cache" + "/eslint/flat-cache" ], "_resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "_shasum": "c12c981d067846c84bcaf862cff930d907ffd1a8", - "_shrinkwrap": null, "_spec": "del@^2.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/flat-cache", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/sindresorhus/del/issues" }, + "bundleDependencies": false, "dependencies": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", @@ -62,6 +40,7 @@ "pinkie-promise": "^2.0.0", "rimraf": "^2.2.8" }, + "deprecated": false, "description": "Delete files and folders", "devDependencies": { "ava": "*", @@ -70,18 +49,12 @@ "tempfile": "^1.1.1", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "c12c981d067846c84bcaf862cff930d907ffd1a8", - "tarball": "https://registry.npmjs.org/del/-/del-2.2.2.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "3a97a5ba131055fbf7eb39f5ed47db86a2fd4497", "homepage": "https://github.com/sindresorhus/del#readme", "keywords": [ "delete", @@ -108,15 +81,7 @@ "filesystem" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "del", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/del.git" diff --git a/tools/eslint/node_modules/doctrine/package.json b/tools/eslint/node_modules/doctrine/package.json index 00ff82ee57b1ae..eccf5d033b76f0 100644 --- a/tools/eslint/node_modules/doctrine/package.json +++ b/tools/eslint/node_modules/doctrine/package.json @@ -1,57 +1,36 @@ { - "_args": [ - [ - { - "raw": "doctrine@^2.0.0", - "scope": null, - "escapedName": "doctrine", - "name": "doctrine", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "doctrine@>=2.0.0 <3.0.0", + "_from": "doctrine@^2.0.0", "_id": "doctrine@2.0.0", - "_inCache": true, - "_location": "/doctrine", - "_nodeVersion": "4.4.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/doctrine-2.0.0.tgz_1479232728285_0.34204454137943685" - }, - "_npmUser": { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - "_npmVersion": "2.15.0", + "_inBundle": false, + "_integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "_location": "/eslint/doctrine", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "doctrine@^2.0.0", - "scope": null, - "escapedName": "doctrine", "name": "doctrine", + "escapedName": "doctrine", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", "_shasum": "c73d8d2909d22291e1a007a395804da8b665fe63", - "_shrinkwrap": null, "_spec": "doctrine@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/eslint/doctrine/issues" }, + "bundleDependencies": false, "dependencies": { "esutils": "^2.0.2", "isarray": "^1.0.0" }, + "deprecated": false, "description": "JSDoc parser", "devDependencies": { "coveralls": "^2.11.2", @@ -70,10 +49,6 @@ "directories": { "lib": "./lib" }, - "dist": { - "shasum": "c73d8d2909d22291e1a007a395804da8b665fe63", - "tarball": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, @@ -84,27 +59,22 @@ "LICENSE.esprima", "README.md" ], - "gitHead": "46c600f27f54b3ab6b0b8a9ac9f97c807ffa95ef", "homepage": "https://github.com/eslint/doctrine", "license": "Apache-2.0", "main": "lib/doctrine.js", "maintainers": [ { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" + "name": "Nicholas C. Zakas", + "email": "nicholas+npm@nczconsulting.com", + "url": "https://www.nczonline.net" }, { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "https://github.com/Constellation" } ], "name": "doctrine", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/eslint/doctrine.git" diff --git a/tools/eslint/node_modules/escape-string-regexp/package.json b/tools/eslint/node_modules/escape-string-regexp/package.json index 001e6a5dbf89c6..0b716286c45605 100644 --- a/tools/eslint/node_modules/escape-string-regexp/package.json +++ b/tools/eslint/node_modules/escape-string-regexp/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "escape-string-regexp@^1.0.2", - "scope": null, - "escapedName": "escape-string-regexp", - "name": "escape-string-regexp", - "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/chalk" - ] - ], - "_from": "escape-string-regexp@>=1.0.2 <2.0.0", + "_from": "escape-string-regexp@^1.0.2", "_id": "escape-string-regexp@1.0.5", - "_inCache": true, - "_location": "/escape-string-regexp", - "_nodeVersion": "4.2.6", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/escape-string-regexp-1.0.5.tgz_1456059312074_0.7245344955008477" - }, - "_npmUser": { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - }, - "_npmVersion": "2.14.12", + "_inBundle": false, + "_integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "_location": "/eslint/escape-string-regexp", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "escape-string-regexp@^1.0.2", - "scope": null, - "escapedName": "escape-string-regexp", "name": "escape-string-regexp", + "escapedName": "escape-string-regexp", "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.2" }, "_requiredBy": [ - "/chalk", - "/figures" + "/eslint/chalk", + "/eslint/figures" ], "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "_shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "_shrinkwrap": null, "_spec": "escape-string-regexp@^1.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/chalk", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/chalk", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -54,25 +31,20 @@ "bugs": { "url": "https://github.com/sindresorhus/escape-string-regexp/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Escape RegExp special characters", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4", - "tarball": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, "engines": { "node": ">=0.8.0" }, "files": [ "index.js" ], - "gitHead": "db124a3e1aae9d692c4899e42a5c6c3e329eaa20", - "homepage": "https://github.com/sindresorhus/escape-string-regexp", + "homepage": "https://github.com/sindresorhus/escape-string-regexp#readme", "keywords": [ "escape", "regex", @@ -88,17 +60,17 @@ "license": "MIT", "maintainers": [ { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" }, { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" } ], "name": "escape-string-regexp", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/escape-string-regexp.git" diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/package.json b/tools/eslint/node_modules/eslint-plugin-markdown/package.json index 4505df05e78a33..bf0bf1ca703e8c 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/package.json +++ b/tools/eslint/node_modules/eslint-plugin-markdown/package.json @@ -1,50 +1,28 @@ { - "_args": [ - [ - { - "raw": "eslint-plugin-markdown@1.0.0-beta.4", - "scope": null, - "escapedName": "eslint-plugin-markdown", - "name": "eslint-plugin-markdown", - "rawSpec": "1.0.0-beta.4", - "spec": "1.0.0-beta.4", - "type": "version" - }, - "/Users/trott/io.js/tools/eslint/node_modules" - ] - ], "_from": "eslint-plugin-markdown@1.0.0-beta.4", "_id": "eslint-plugin-markdown@1.0.0-beta.4", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-gqGZcTmeSxti99SsZCRofCwH7no=", "_location": "/eslint-plugin-markdown", - "_nodeVersion": "7.7.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/eslint-plugin-markdown-1.0.0-beta.4.tgz_1488662554242_0.9874107467476279" - }, - "_npmUser": { - "name": "btmills", - "email": "mills.brandont@gmail.com" - }, - "_npmVersion": "4.1.2", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "eslint-plugin-markdown@1.0.0-beta.4", - "scope": null, - "escapedName": "eslint-plugin-markdown", "name": "eslint-plugin-markdown", + "escapedName": "eslint-plugin-markdown", "rawSpec": "1.0.0-beta.4", - "spec": "1.0.0-beta.4", - "type": "version" + "saveSpec": null, + "fetchSpec": "1.0.0-beta.4" }, "_requiredBy": [ - "#USER" + "#USER", + "/" ], "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz", "_shasum": "82a19971399e4b1b62f7d4ac6424687c2c07ee7a", - "_shrinkwrap": null, "_spec": "eslint-plugin-markdown@1.0.0-beta.4", - "_where": "/Users/trott/io.js/tools/eslint/node_modules", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Brandon Mills", "url": "https://github.com/btmills" @@ -52,11 +30,13 @@ "bugs": { "url": "https://github.com/eslint/eslint-plugin-markdown/issues" }, + "bundleDependencies": false, "dependencies": { "object-assign": "^4.0.1", "parse5": "^2.2.2", "remark": "^5.0.0" }, + "deprecated": false, "description": "An ESLint plugin to lint JavaScript in Markdown code fences.", "devDependencies": { "chai": "^3.0.0", @@ -64,18 +44,12 @@ "eslint-config-eslint": "^3.0.0", "mocha": "^2.2.5" }, - "directories": {}, - "dist": { - "shasum": "82a19971399e4b1b62f7d4ac6424687c2c07ee7a", - "tarball": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz" - }, "files": [ "lib/*.js", "index.js", "LICENSE", "README.md" ], - "gitHead": "c84a63171c85a1ffec9b4fd41b55f29bb2117b21", "homepage": "https://github.com/eslint/eslint-plugin-markdown#readme", "keywords": [ "eslint", @@ -86,15 +60,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "btmills", - "email": "mills.brandont@gmail.com" - } - ], "name": "eslint-plugin-markdown", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/eslint/eslint-plugin-markdown.git" diff --git a/tools/eslint/node_modules/eslint-scope/package.json b/tools/eslint/node_modules/eslint-scope/package.json index abe7525cc8e58f..a8f3142707c1a3 100644 --- a/tools/eslint/node_modules/eslint-scope/package.json +++ b/tools/eslint/node_modules/eslint-scope/package.json @@ -1,57 +1,36 @@ { - "_args": [ - [ - { - "raw": "eslint-scope@^3.7.1", - "scope": null, - "escapedName": "eslint-scope", - "name": "eslint-scope", - "rawSpec": "^3.7.1", - "spec": ">=3.7.1 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "eslint-scope@>=3.7.1 <4.0.0", + "_from": "eslint-scope@^3.7.1", "_id": "eslint-scope@3.7.1", - "_inCache": true, - "_location": "/eslint-scope", - "_nodeVersion": "4.3.1", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/eslint-scope-3.7.1.tgz_1492031610481_0.544424896594137" - }, - "_npmUser": { - "name": "ivolodin", - "email": "ivolodin@gmail.com" - }, - "_npmVersion": "2.14.12", + "_inBundle": false, + "_integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "_location": "/eslint/eslint-scope", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "eslint-scope@^3.7.1", - "scope": null, - "escapedName": "eslint-scope", "name": "eslint-scope", + "escapedName": "eslint-scope", "rawSpec": "^3.7.1", - "spec": ">=3.7.1 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.7.1" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", "_shasum": "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8", - "_shrinkwrap": null, "_spec": "eslint-scope@^3.7.1", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/eslint/eslint-scope/issues" }, + "bundleDependencies": false, "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, + "deprecated": false, "description": "ECMAScript scope analyzer for ESLint", "devDependencies": { "chai": "^3.4.1", @@ -66,11 +45,6 @@ "typescript": "~2.0.10", "typescript-eslint-parser": "^1.0.0" }, - "directories": {}, - "dist": { - "shasum": "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8", - "tarball": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz" - }, "engines": { "node": ">=4.0.0" }, @@ -79,27 +53,10 @@ "README.md", "lib" ], - "gitHead": "bec1febf351ae7137a62241c18eb78876ee4fb7f", "homepage": "http://github.com/eslint/eslint-scope", "license": "BSD-2-Clause", "main": "lib/index.js", - "maintainers": [ - { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" - }, - { - "name": "ivolodin", - "email": "ivolodin@gmail.com" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - } - ], "name": "eslint-scope", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/eslint/eslint-scope.git" diff --git a/tools/eslint/node_modules/espree/package.json b/tools/eslint/node_modules/espree/package.json index c7aa0b385a78c4..57aca8ee24adde 100644 --- a/tools/eslint/node_modules/espree/package.json +++ b/tools/eslint/node_modules/espree/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "espree@^3.4.3", - "scope": null, - "escapedName": "espree", - "name": "espree", - "rawSpec": "^3.4.3", - "spec": ">=3.4.3 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "espree@>=3.4.3 <4.0.0", + "_from": "espree@^3.4.3", "_id": "espree@3.4.3", - "_inCache": true, - "_location": "/espree", - "_nodeVersion": "4.4.7", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/espree-3.4.3.tgz_1494016113798_0.18147883261553943" - }, - "_npmUser": { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" - }, - "_npmVersion": "2.15.8", + "_inBundle": false, + "_integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=", + "_location": "/eslint/espree", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "espree@^3.4.3", - "scope": null, - "escapedName": "espree", "name": "espree", + "escapedName": "espree", "rawSpec": "^3.4.3", - "spec": ">=3.4.3 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.4.3" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", "_shasum": "2910b5ccd49ce893c2ffffaab4fd8b3a31b82374", - "_shrinkwrap": null, "_spec": "espree@^3.4.3", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Nicholas C. Zakas", "email": "nicholas+npm@nczconsulting.com" @@ -52,10 +29,12 @@ "bugs": { "url": "http://github.com/eslint/espree.git" }, + "bundleDependencies": false, "dependencies": { "acorn": "^5.0.1", "acorn-jsx": "^3.0.0" }, + "deprecated": false, "description": "An Esprima-compatible JavaScript parser built on Acorn", "devDependencies": { "browserify": "^7.0.0", @@ -74,11 +53,6 @@ "shelljs-nodecli": "^0.1.1", "unicode-6.3.0": "~0.1.0" }, - "directories": {}, - "dist": { - "shasum": "2910b5ccd49ce893c2ffffaab4fd8b3a31b82374", - "tarball": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz" - }, "engines": { "node": ">=0.10.0" }, @@ -86,7 +60,6 @@ "lib", "espree.js" ], - "gitHead": "ea086113d26c40b91647b2184e5e8aa9190db654", "homepage": "https://github.com/eslint/espree", "keywords": [ "ast", @@ -98,47 +71,7 @@ ], "license": "BSD-2-Clause", "main": "espree.js", - "maintainers": [ - { - "name": "btmills", - "email": "mills.brandont@gmail.com" - }, - { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" - }, - { - "name": "gyandeeps", - "email": "gyandeeps@gmail.com" - }, - { - "name": "ivolodin", - "email": "ivolodin@gmail.com" - }, - { - "name": "kaicataldo", - "email": "kaicataldo@gmail.com" - }, - { - "name": "mysticatea", - "email": "star.ctor@gmail.com" - }, - { - "name": "not-an-aardvark", - "email": "notaardvark@gmail.com" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - { - "name": "sharpbites", - "email": "alberto.email@gmail.com" - } - ], "name": "espree", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/eslint/espree.git" diff --git a/tools/eslint/node_modules/esprima/package.json b/tools/eslint/node_modules/esprima/package.json index d4c95a174008f4..4a530cec161d72 100644 --- a/tools/eslint/node_modules/esprima/package.json +++ b/tools/eslint/node_modules/esprima/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "esprima@^3.1.1", - "scope": null, - "escapedName": "esprima", - "name": "esprima", - "rawSpec": "^3.1.1", - "spec": ">=3.1.1 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/js-yaml" - ] - ], - "_from": "esprima@>=3.1.1 <4.0.0", + "_from": "esprima@^3.1.1", "_id": "esprima@3.1.3", - "_inCache": true, - "_location": "/esprima", - "_nodeVersion": "7.1.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/esprima-3.1.3.tgz_1482463104044_0.19027737597934902" - }, - "_npmUser": { - "name": "ariya", - "email": "ariya.hidayat@gmail.com" - }, - "_npmVersion": "3.10.9", + "_inBundle": false, + "_integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "_location": "/eslint/esprima", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "esprima@^3.1.1", - "scope": null, - "escapedName": "esprima", "name": "esprima", + "escapedName": "esprima", "rawSpec": "^3.1.1", - "spec": ">=3.1.1 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.1.1" }, "_requiredBy": [ - "/js-yaml" + "/eslint/js-yaml" ], "_resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "_shasum": "fdca51cee6133895e3c88d535ce49dbff62a4633", - "_shrinkwrap": null, "_spec": "esprima@^3.1.1", - "_where": "/Users/trott/io.js/tools/node_modules/js-yaml", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/js-yaml", "author": { "name": "Ariya Hidayat", "email": "ariya.hidayat@gmail.com" @@ -56,7 +33,8 @@ "bugs": { "url": "https://github.com/jquery/esprima/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "ECMAScript parsing infrastructure for multipurpose analysis", "devDependencies": { "codecov.io": "~0.1.6", @@ -84,11 +62,6 @@ "unicode-8.0.0": "~0.7.0", "webpack": "~1.13.2" }, - "directories": {}, - "dist": { - "shasum": "fdca51cee6133895e3c88d535ce49dbff62a4633", - "tarball": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz" - }, "engines": { "node": ">=4" }, @@ -96,7 +69,6 @@ "bin", "dist/esprima.js" ], - "gitHead": "cd5909280f363d503142cb79077ec532132d9749", "homepage": "http://esprima.org", "keywords": [ "ast", @@ -110,13 +82,12 @@ "main": "dist/esprima.js", "maintainers": [ { - "name": "ariya", - "email": "ariya.hidayat@gmail.com" + "name": "Ariya Hidayat", + "email": "ariya.hidayat@gmail.com", + "url": "http://ariya.ofilabs.com" } ], "name": "esprima", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/jquery/esprima.git" diff --git a/tools/eslint/node_modules/esquery/package.json b/tools/eslint/node_modules/esquery/package.json index d4eceb29fce0f6..ce8ebda26639df 100644 --- a/tools/eslint/node_modules/esquery/package.json +++ b/tools/eslint/node_modules/esquery/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "esquery@^1.0.0", - "scope": null, - "escapedName": "esquery", - "name": "esquery", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "esquery@>=1.0.0 <2.0.0", + "_from": "esquery@^1.0.0", "_id": "esquery@1.0.0", - "_inCache": true, - "_location": "/esquery", - "_nodeVersion": "7.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/esquery-1.0.0.tgz_1489187536588_0.0852991035208106" - }, - "_npmUser": { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - }, - "_npmVersion": "4.1.2", + "_inBundle": false, + "_integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "_location": "/eslint/esquery", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "esquery@^1.0.0", - "scope": null, - "escapedName": "esquery", "name": "esquery", + "escapedName": "esquery", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", "_shasum": "cfba8b57d7fba93f17298a8a006a04cda13d80fa", - "_shrinkwrap": null, "_spec": "esquery@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Joel Feenstra", "email": "jrfeenst+esquery@gmail.com" @@ -52,9 +29,11 @@ "bugs": { "url": "https://github.com/jrfeenst/esquery/issues" }, + "bundleDependencies": false, "dependencies": { "estraverse": "^4.0.0" }, + "deprecated": false, "description": "A query library for ECMAScript AST using a CSS selector like query language.", "devDependencies": { "commonjs-everywhere": "~0.9.4", @@ -62,11 +41,6 @@ "jstestr": ">=0.4", "pegjs": "~0.7.0" }, - "directories": {}, - "dist": { - "shasum": "cfba8b57d7fba93f17298a8a006a04cda13d80fa", - "tarball": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz" - }, "engines": { "node": ">=0.6" }, @@ -76,7 +50,6 @@ "license.txt", "README.md" ], - "gitHead": "c029e89dcef7bc4ca66588a503ec154bd68f0e05", "homepage": "https://github.com/jrfeenst/esquery#readme", "keywords": [ "ast", @@ -86,20 +59,8 @@ ], "license": "BSD", "main": "esquery.js", - "maintainers": [ - { - "name": "jrfeenst", - "email": "jrfeenst@gmail.com" - }, - { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - } - ], "name": "esquery", - "optionalDependencies": {}, "preferGlobal": false, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/jrfeenst/esquery.git" diff --git a/tools/eslint/node_modules/esrecurse/.babelrc b/tools/eslint/node_modules/esrecurse/.babelrc new file mode 100644 index 00000000000000..a0765e185d3b6a --- /dev/null +++ b/tools/eslint/node_modules/esrecurse/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} diff --git a/tools/eslint/node_modules/esrecurse/README.md b/tools/eslint/node_modules/esrecurse/README.md new file mode 100644 index 00000000000000..03c2ff3025fa3c --- /dev/null +++ b/tools/eslint/node_modules/esrecurse/README.md @@ -0,0 +1,170 @@ +### Esrecurse [![Build Status](https://travis-ci.org/estools/esrecurse.svg?branch=master)](https://travis-ci.org/estools/esrecurse) + +Esrecurse ([esrecurse](https://github.com/estools/esrecurse)) is +[ECMAScript](https://www.ecma-international.org/publications/standards/Ecma-262.htm) +recursive traversing functionality. + +### Example Usage + +The following code will output all variables declared at the root of a file. + +```javascript +esrecurse.visit(ast, { + XXXStatement: function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); + } +}); +``` + +We can use `Visitor` instance. + +```javascript +var visitor = new esrecurse.Visitor({ + XXXStatement: function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); + } +}); + +visitor.visit(ast); +``` + +We can inherit `Visitor` instance easily. + +```javascript +class Derived extends esrecurse.Visitor { + constructor() + { + super(null); + } + + XXXStatement(node) { + } +} + +```javascript +function DerivedVisitor() { + esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); +} +util.inherits(DerivedVisitor, esrecurse.Visitor); +DerivedVisitor.prototype.XXXStatement = function (node) { + this.visit(node.left); + // do something... + this.visit(node.right); +}; +``` + +And you can invoke default visiting operation inside custom visit operation. + +```javascript +function DerivedVisitor() { + esrecurse.Visitor.call(/* this for constructor */ this /* visitor object automatically becomes this. */); +} +util.inherits(DerivedVisitor, esrecurse.Visitor); +DerivedVisitor.prototype.XXXStatement = function (node) { + // do something... + this.visitChildren(node); +}; +``` + +The `childVisitorKeys` option does customize the behavoir of `this.visitChildren(node)`. +We can use user-defined node types. + +```javascript +// This tree contains a user-defined `TestExpression` node. +var tree = { + type: 'TestExpression', + + // This 'argument' is the property containing the other **node**. + argument: { + type: 'Literal', + value: 20 + }, + + // This 'extended' is the property not containing the other **node**. + extended: true +}; +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + // Extending the existing traversing rules. + childVisitorKeys: { + // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] + TestExpression: ['argument'] + } + } +); +``` + +We can use the `fallback` option as well. +If the `fallback` option is `"iteration"`, `esrecurse` would visit all enumerable properties of unknown nodes. +Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). + +```javascript +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + fallback: 'iteration' + } +); +``` + +If the `fallback` option is a function, `esrecurse` calls this function to determine the enumerable properties of unknown nodes. +Please note circular references cause the stack overflow. AST might have circular references in additional properties for some purpose (e.g. `node.parent`). + +```javascript +esrecurse.visit( + ast, + { + Literal: function (node) { + // do something... + } + }, + { + fallback: function (node) { + return Object.keys(node).filter(function(key) { + return key !== 'argument' + }); + } + } +); +``` + +### License + +Copyright (C) 2014 [Yusuke Suzuki](https://github.com/Constellation) + (twitter: [@Constellation](https://twitter.com/Constellation)) and other contributors. + +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 +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD b/tools/eslint/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD deleted file mode 100644 index 3e580c355a96e5..00000000000000 --- a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/LICENSE.BSD +++ /dev/null @@ -1,19 +0,0 @@ -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 -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/README.md b/tools/eslint/node_modules/esrecurse/node_modules/estraverse/README.md deleted file mode 100644 index acefff6473c19c..00000000000000 --- a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/README.md +++ /dev/null @@ -1,124 +0,0 @@ -### Estraverse [![Build Status](https://secure.travis-ci.org/estools/estraverse.png)](http://travis-ci.org/estools/estraverse) - -Estraverse ([estraverse](http://github.com/estools/estraverse)) is -[ECMAScript](http://www.ecma-international.org/publications/standards/Ecma-262.htm) -traversal functions from [esmangle project](http://github.com/estools/esmangle). - -### Documentation - -You can find usage docs at [wiki page](https://github.com/estools/estraverse/wiki/Usage). - -### Example Usage - -The following code will output all variables declared at the root of a file. - -```javascript -estraverse.traverse(ast, { - enter: function (node, parent) { - if (node.type == 'FunctionExpression' || node.type == 'FunctionDeclaration') - return estraverse.VisitorOption.Skip; - }, - leave: function (node, parent) { - if (node.type == 'VariableDeclarator') - console.log(node.id.name); - } -}); -``` - -We can use `this.skip`, `this.remove` and `this.break` functions instead of using Skip, Remove and Break. - -```javascript -estraverse.traverse(ast, { - enter: function (node) { - this.break(); - } -}); -``` - -And estraverse provides `estraverse.replace` function. When returning node from `enter`/`leave`, current node is replaced with it. - -```javascript -result = estraverse.replace(tree, { - enter: function (node) { - // Replace it with replaced. - if (node.type === 'Literal') - return replaced; - } -}); -``` - -By passing `visitor.keys` mapping, we can extend estraverse traversing functionality. - -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Extending the existing traversing rules. - keys: { - // TargetNodeName: [ 'keys', 'containing', 'the', 'other', '**node**' ] - TestExpression: ['argument'] - } -}); -``` - -By passing `visitor.fallback` option, we can control the behavior when encountering unknown nodes. -```javascript -// This tree contains a user-defined `TestExpression` node. -var tree = { - type: 'TestExpression', - - // This 'argument' is the property containing the other **node**. - argument: { - type: 'Literal', - value: 20 - }, - - // This 'extended' is the property not containing the other **node**. - extended: true -}; -estraverse.traverse(tree, { - enter: function (node) { }, - - // Iterating the child **nodes** of unknown nodes. - fallback: 'iteration' -}); -``` - -### License - -Copyright (C) 2012-2013 [Yusuke Suzuki](http://github.com/Constellation) - (twitter: [@Constellation](http://twitter.com/Constellation)) and other contributors. - -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 -ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/estraverse.js b/tools/eslint/node_modules/esrecurse/node_modules/estraverse/estraverse.js deleted file mode 100644 index 0de6cec24f3ec6..00000000000000 --- a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/estraverse.js +++ /dev/null @@ -1,843 +0,0 @@ -/* - 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 - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -/*jslint vars:false, bitwise:true*/ -/*jshint indent:4*/ -/*global exports:true*/ -(function clone(exports) { - 'use strict'; - - var Syntax, - isArray, - VisitorOption, - VisitorKeys, - objectCreate, - objectKeys, - BREAK, - SKIP, - REMOVE; - - function ignoreJSHintError() { } - - isArray = Array.isArray; - if (!isArray) { - isArray = function isArray(array) { - return Object.prototype.toString.call(array) === '[object Array]'; - }; - } - - function deepCopy(obj) { - var ret = {}, key, val; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - val = obj[key]; - if (typeof val === 'object' && val !== null) { - ret[key] = deepCopy(val); - } else { - ret[key] = val; - } - } - } - return ret; - } - - function shallowCopy(obj) { - var ret = {}, key; - for (key in obj) { - if (obj.hasOwnProperty(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - ignoreJSHintError(shallowCopy); - - // based on LLVM libc++ upper_bound / lower_bound - // MIT License - - function upperBound(array, func) { - var diff, len, i, current; - - len = array.length; - i = 0; - - while (len) { - diff = len >>> 1; - current = i + diff; - if (func(array[current])) { - len = diff; - } else { - i = current + 1; - len -= diff + 1; - } - } - return i; - } - - function lowerBound(array, func) { - var diff, len, i, current; - - len = array.length; - i = 0; - - while (len) { - diff = len >>> 1; - current = i + diff; - if (func(array[current])) { - i = current + 1; - len -= diff + 1; - } else { - len = diff; - } - } - return i; - } - ignoreJSHintError(lowerBound); - - objectCreate = Object.create || (function () { - function F() { } - - return function (o) { - F.prototype = o; - return new F(); - }; - })(); - - objectKeys = Object.keys || function (o) { - var keys = [], key; - for (key in o) { - keys.push(key); - } - return keys; - }; - - function extend(to, from) { - var keys = objectKeys(from), key, i, len; - for (i = 0, len = keys.length; i < len; i += 1) { - key = keys[i]; - to[key] = from[key]; - } - return to; - } - - Syntax = { - AssignmentExpression: 'AssignmentExpression', - AssignmentPattern: 'AssignmentPattern', - ArrayExpression: 'ArrayExpression', - ArrayPattern: 'ArrayPattern', - ArrowFunctionExpression: 'ArrowFunctionExpression', - AwaitExpression: 'AwaitExpression', // CAUTION: It's deferred to ES7. - BlockStatement: 'BlockStatement', - BinaryExpression: 'BinaryExpression', - BreakStatement: 'BreakStatement', - CallExpression: 'CallExpression', - CatchClause: 'CatchClause', - ClassBody: 'ClassBody', - ClassDeclaration: 'ClassDeclaration', - ClassExpression: 'ClassExpression', - ComprehensionBlock: 'ComprehensionBlock', // CAUTION: It's deferred to ES7. - ComprehensionExpression: 'ComprehensionExpression', // CAUTION: It's deferred to ES7. - ConditionalExpression: 'ConditionalExpression', - ContinueStatement: 'ContinueStatement', - DebuggerStatement: 'DebuggerStatement', - DirectiveStatement: 'DirectiveStatement', - DoWhileStatement: 'DoWhileStatement', - EmptyStatement: 'EmptyStatement', - ExportAllDeclaration: 'ExportAllDeclaration', - ExportDefaultDeclaration: 'ExportDefaultDeclaration', - ExportNamedDeclaration: 'ExportNamedDeclaration', - ExportSpecifier: 'ExportSpecifier', - ExpressionStatement: 'ExpressionStatement', - ForStatement: 'ForStatement', - ForInStatement: 'ForInStatement', - ForOfStatement: 'ForOfStatement', - FunctionDeclaration: 'FunctionDeclaration', - FunctionExpression: 'FunctionExpression', - GeneratorExpression: 'GeneratorExpression', // CAUTION: It's deferred to ES7. - Identifier: 'Identifier', - IfStatement: 'IfStatement', - ImportDeclaration: 'ImportDeclaration', - ImportDefaultSpecifier: 'ImportDefaultSpecifier', - ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', - ImportSpecifier: 'ImportSpecifier', - Literal: 'Literal', - LabeledStatement: 'LabeledStatement', - LogicalExpression: 'LogicalExpression', - MemberExpression: 'MemberExpression', - MetaProperty: 'MetaProperty', - MethodDefinition: 'MethodDefinition', - ModuleSpecifier: 'ModuleSpecifier', - NewExpression: 'NewExpression', - ObjectExpression: 'ObjectExpression', - ObjectPattern: 'ObjectPattern', - Program: 'Program', - Property: 'Property', - RestElement: 'RestElement', - ReturnStatement: 'ReturnStatement', - SequenceExpression: 'SequenceExpression', - SpreadElement: 'SpreadElement', - Super: 'Super', - SwitchStatement: 'SwitchStatement', - SwitchCase: 'SwitchCase', - TaggedTemplateExpression: 'TaggedTemplateExpression', - TemplateElement: 'TemplateElement', - TemplateLiteral: 'TemplateLiteral', - ThisExpression: 'ThisExpression', - ThrowStatement: 'ThrowStatement', - TryStatement: 'TryStatement', - UnaryExpression: 'UnaryExpression', - UpdateExpression: 'UpdateExpression', - VariableDeclaration: 'VariableDeclaration', - VariableDeclarator: 'VariableDeclarator', - WhileStatement: 'WhileStatement', - WithStatement: 'WithStatement', - YieldExpression: 'YieldExpression' - }; - - VisitorKeys = { - AssignmentExpression: ['left', 'right'], - AssignmentPattern: ['left', 'right'], - ArrayExpression: ['elements'], - ArrayPattern: ['elements'], - ArrowFunctionExpression: ['params', 'body'], - AwaitExpression: ['argument'], // CAUTION: It's deferred to ES7. - BlockStatement: ['body'], - BinaryExpression: ['left', 'right'], - BreakStatement: ['label'], - CallExpression: ['callee', 'arguments'], - CatchClause: ['param', 'body'], - ClassBody: ['body'], - ClassDeclaration: ['id', 'superClass', 'body'], - ClassExpression: ['id', 'superClass', 'body'], - ComprehensionBlock: ['left', 'right'], // CAUTION: It's deferred to ES7. - ComprehensionExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - ConditionalExpression: ['test', 'consequent', 'alternate'], - ContinueStatement: ['label'], - DebuggerStatement: [], - DirectiveStatement: [], - DoWhileStatement: ['body', 'test'], - EmptyStatement: [], - ExportAllDeclaration: ['source'], - ExportDefaultDeclaration: ['declaration'], - ExportNamedDeclaration: ['declaration', 'specifiers', 'source'], - ExportSpecifier: ['exported', 'local'], - ExpressionStatement: ['expression'], - ForStatement: ['init', 'test', 'update', 'body'], - ForInStatement: ['left', 'right', 'body'], - ForOfStatement: ['left', 'right', 'body'], - FunctionDeclaration: ['id', 'params', 'body'], - FunctionExpression: ['id', 'params', 'body'], - GeneratorExpression: ['blocks', 'filter', 'body'], // CAUTION: It's deferred to ES7. - Identifier: [], - IfStatement: ['test', 'consequent', 'alternate'], - ImportDeclaration: ['specifiers', 'source'], - ImportDefaultSpecifier: ['local'], - ImportNamespaceSpecifier: ['local'], - ImportSpecifier: ['imported', 'local'], - Literal: [], - LabeledStatement: ['label', 'body'], - LogicalExpression: ['left', 'right'], - MemberExpression: ['object', 'property'], - MetaProperty: ['meta', 'property'], - MethodDefinition: ['key', 'value'], - ModuleSpecifier: [], - NewExpression: ['callee', 'arguments'], - ObjectExpression: ['properties'], - ObjectPattern: ['properties'], - Program: ['body'], - Property: ['key', 'value'], - RestElement: [ 'argument' ], - ReturnStatement: ['argument'], - SequenceExpression: ['expressions'], - SpreadElement: ['argument'], - Super: [], - SwitchStatement: ['discriminant', 'cases'], - SwitchCase: ['test', 'consequent'], - TaggedTemplateExpression: ['tag', 'quasi'], - TemplateElement: [], - TemplateLiteral: ['quasis', 'expressions'], - ThisExpression: [], - ThrowStatement: ['argument'], - TryStatement: ['block', 'handler', 'finalizer'], - UnaryExpression: ['argument'], - UpdateExpression: ['argument'], - VariableDeclaration: ['declarations'], - VariableDeclarator: ['id', 'init'], - WhileStatement: ['test', 'body'], - WithStatement: ['object', 'body'], - YieldExpression: ['argument'] - }; - - // unique id - BREAK = {}; - SKIP = {}; - REMOVE = {}; - - VisitorOption = { - Break: BREAK, - Skip: SKIP, - Remove: REMOVE - }; - - function Reference(parent, key) { - this.parent = parent; - this.key = key; - } - - Reference.prototype.replace = function replace(node) { - this.parent[this.key] = node; - }; - - Reference.prototype.remove = function remove() { - if (isArray(this.parent)) { - this.parent.splice(this.key, 1); - return true; - } else { - this.replace(null); - return false; - } - }; - - function Element(node, path, wrap, ref) { - this.node = node; - this.path = path; - this.wrap = wrap; - this.ref = ref; - } - - function Controller() { } - - // API: - // return property path array from root to current node - Controller.prototype.path = function path() { - var i, iz, j, jz, result, element; - - function addToPath(result, path) { - if (isArray(path)) { - for (j = 0, jz = path.length; j < jz; ++j) { - result.push(path[j]); - } - } else { - result.push(path); - } - } - - // root node - if (!this.__current.path) { - return null; - } - - // first node is sentinel, second node is root element - result = []; - for (i = 2, iz = this.__leavelist.length; i < iz; ++i) { - element = this.__leavelist[i]; - addToPath(result, element.path); - } - addToPath(result, this.__current.path); - return result; - }; - - // API: - // return type of current node - Controller.prototype.type = function () { - var node = this.current(); - return node.type || this.__current.wrap; - }; - - // API: - // return array of parent elements - Controller.prototype.parents = function parents() { - var i, iz, result; - - // first node is sentinel - result = []; - for (i = 1, iz = this.__leavelist.length; i < iz; ++i) { - result.push(this.__leavelist[i].node); - } - - return result; - }; - - // API: - // return current node - Controller.prototype.current = function current() { - return this.__current.node; - }; - - Controller.prototype.__execute = function __execute(callback, element) { - var previous, result; - - result = undefined; - - previous = this.__current; - this.__current = element; - this.__state = null; - if (callback) { - result = callback.call(this, element.node, this.__leavelist[this.__leavelist.length - 1].node); - } - this.__current = previous; - - return result; - }; - - // API: - // notify control skip / break - Controller.prototype.notify = function notify(flag) { - this.__state = flag; - }; - - // API: - // skip child nodes of current node - Controller.prototype.skip = function () { - this.notify(SKIP); - }; - - // API: - // break traversals - Controller.prototype['break'] = function () { - this.notify(BREAK); - }; - - // API: - // remove node - Controller.prototype.remove = function () { - this.notify(REMOVE); - }; - - Controller.prototype.__initialize = function(root, visitor) { - this.visitor = visitor; - this.root = root; - this.__worklist = []; - this.__leavelist = []; - this.__current = null; - this.__state = null; - this.__fallback = visitor.fallback === 'iteration'; - this.__keys = VisitorKeys; - if (visitor.keys) { - this.__keys = extend(objectCreate(this.__keys), visitor.keys); - } - }; - - function isNode(node) { - if (node == null) { - return false; - } - return typeof node === 'object' && typeof node.type === 'string'; - } - - function isProperty(nodeType, key) { - return (nodeType === Syntax.ObjectExpression || nodeType === Syntax.ObjectPattern) && 'properties' === key; - } - - Controller.prototype.traverse = function traverse(root, visitor) { - var worklist, - leavelist, - element, - node, - nodeType, - ret, - key, - current, - current2, - candidates, - candidate, - sentinel; - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - worklist.push(new Element(root, null, null, null)); - leavelist.push(new Element(null, null, null, null)); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - ret = this.__execute(visitor.leave, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - continue; - } - - if (element.node) { - - ret = this.__execute(visitor.enter, element); - - if (this.__state === BREAK || ret === BREAK) { - return; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || ret === SKIP) { - continue; - } - - node = element.node; - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = objectKeys(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', null); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, null); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - worklist.push(new Element(candidate, key, null, null)); - } - } - } - } - }; - - Controller.prototype.replace = function replace(root, visitor) { - function removeElem(element) { - var i, - key, - nextElem, - parent; - - if (element.ref.remove()) { - // When the reference is an element of an array. - key = element.ref.key; - parent = element.ref.parent; - - // If removed from array, then decrease following items' keys. - i = worklist.length; - while (i--) { - nextElem = worklist[i]; - if (nextElem.ref && nextElem.ref.parent === parent) { - if (nextElem.ref.key < key) { - break; - } - --nextElem.ref.key; - } - } - } - } - - var worklist, - leavelist, - node, - nodeType, - target, - element, - current, - current2, - candidates, - candidate, - sentinel, - outer, - key; - - this.__initialize(root, visitor); - - sentinel = {}; - - // reference - worklist = this.__worklist; - leavelist = this.__leavelist; - - // initialize - outer = { - root: root - }; - element = new Element(root, null, null, new Reference(outer, 'root')); - worklist.push(element); - leavelist.push(element); - - while (worklist.length) { - element = worklist.pop(); - - if (element === sentinel) { - element = leavelist.pop(); - - target = this.__execute(visitor.leave, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - continue; - } - - target = this.__execute(visitor.enter, element); - - // node may be replaced with null, - // so distinguish between undefined and null in this place - if (target !== undefined && target !== BREAK && target !== SKIP && target !== REMOVE) { - // replace - element.ref.replace(target); - element.node = target; - } - - if (this.__state === REMOVE || target === REMOVE) { - removeElem(element); - element.node = null; - } - - if (this.__state === BREAK || target === BREAK) { - return outer.root; - } - - // node may be null - node = element.node; - if (!node) { - continue; - } - - worklist.push(sentinel); - leavelist.push(element); - - if (this.__state === SKIP || target === SKIP) { - continue; - } - - nodeType = node.type || element.wrap; - candidates = this.__keys[nodeType]; - if (!candidates) { - if (this.__fallback) { - candidates = objectKeys(node); - } else { - throw new Error('Unknown node type ' + nodeType + '.'); - } - } - - current = candidates.length; - while ((current -= 1) >= 0) { - key = candidates[current]; - candidate = node[key]; - if (!candidate) { - continue; - } - - if (isArray(candidate)) { - current2 = candidate.length; - while ((current2 -= 1) >= 0) { - if (!candidate[current2]) { - continue; - } - if (isProperty(nodeType, candidates[current])) { - element = new Element(candidate[current2], [key, current2], 'Property', new Reference(candidate, current2)); - } else if (isNode(candidate[current2])) { - element = new Element(candidate[current2], [key, current2], null, new Reference(candidate, current2)); - } else { - continue; - } - worklist.push(element); - } - } else if (isNode(candidate)) { - worklist.push(new Element(candidate, key, null, new Reference(node, key))); - } - } - } - - return outer.root; - }; - - function traverse(root, visitor) { - var controller = new Controller(); - return controller.traverse(root, visitor); - } - - function replace(root, visitor) { - var controller = new Controller(); - return controller.replace(root, visitor); - } - - function extendCommentRange(comment, tokens) { - var target; - - target = upperBound(tokens, function search(token) { - return token.range[0] > comment.range[0]; - }); - - comment.extendedRange = [comment.range[0], comment.range[1]]; - - if (target !== tokens.length) { - comment.extendedRange[1] = tokens[target].range[0]; - } - - target -= 1; - if (target >= 0) { - comment.extendedRange[0] = tokens[target].range[1]; - } - - return comment; - } - - function attachComments(tree, providedComments, tokens) { - // At first, we should calculate extended comment ranges. - var comments = [], comment, len, i, cursor; - - if (!tree.range) { - throw new Error('attachComments needs range information'); - } - - // tokens array is empty, we attach comments to tree as 'leadingComments' - if (!tokens.length) { - if (providedComments.length) { - for (i = 0, len = providedComments.length; i < len; i += 1) { - comment = deepCopy(providedComments[i]); - comment.extendedRange = [0, tree.range[0]]; - comments.push(comment); - } - tree.leadingComments = comments; - } - return tree; - } - - for (i = 0, len = providedComments.length; i < len; i += 1) { - comments.push(extendCommentRange(deepCopy(providedComments[i]), tokens)); - } - - // This is based on John Freeman's implementation. - cursor = 0; - traverse(tree, { - enter: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (comment.extendedRange[1] > node.range[0]) { - break; - } - - if (comment.extendedRange[1] === node.range[0]) { - if (!node.leadingComments) { - node.leadingComments = []; - } - node.leadingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - cursor = 0; - traverse(tree, { - leave: function (node) { - var comment; - - while (cursor < comments.length) { - comment = comments[cursor]; - if (node.range[1] < comment.extendedRange[0]) { - break; - } - - if (node.range[1] === comment.extendedRange[0]) { - if (!node.trailingComments) { - node.trailingComments = []; - } - node.trailingComments.push(comment); - comments.splice(cursor, 1); - } else { - cursor += 1; - } - } - - // already out of owned node - if (cursor === comments.length) { - return VisitorOption.Break; - } - - if (comments[cursor].extendedRange[0] > node.range[1]) { - return VisitorOption.Skip; - } - } - }); - - return tree; - } - - exports.version = require('./package.json').version; - exports.Syntax = Syntax; - exports.traverse = traverse; - exports.replace = replace; - exports.attachComments = attachComments; - exports.VisitorKeys = VisitorKeys; - exports.VisitorOption = VisitorOption; - exports.Controller = Controller; - exports.cloneEnvironment = function () { return clone({}); }; - - return exports; -}(exports)); -/* vim: set sw=4 ts=4 et tw=80 : */ diff --git a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/package.json b/tools/eslint/node_modules/esrecurse/node_modules/estraverse/package.json deleted file mode 100644 index d98eb1c44a2f19..00000000000000 --- a/tools/eslint/node_modules/esrecurse/node_modules/estraverse/package.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "_args": [ - [ - { - "raw": "estraverse@~4.1.0", - "scope": null, - "escapedName": "estraverse", - "name": "estraverse", - "rawSpec": "~4.1.0", - "spec": ">=4.1.0 <4.2.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/esrecurse" - ] - ], - "_from": "estraverse@>=4.1.0 <4.2.0", - "_id": "estraverse@4.1.1", - "_inCache": true, - "_location": "/esrecurse/estraverse", - "_nodeVersion": "4.1.1", - "_npmUser": { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - "_npmVersion": "2.14.4", - "_phantomChildren": {}, - "_requested": { - "raw": "estraverse@~4.1.0", - "scope": null, - "escapedName": "estraverse", - "name": "estraverse", - "rawSpec": "~4.1.0", - "spec": ">=4.1.0 <4.2.0", - "type": "range" - }, - "_requiredBy": [ - "/esrecurse" - ], - "_resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", - "_shasum": "f6caca728933a850ef90661d0e17982ba47111a2", - "_shrinkwrap": null, - "_spec": "estraverse@~4.1.0", - "_where": "/Users/trott/io.js/tools/node_modules/esrecurse", - "bugs": { - "url": "https://github.com/estools/estraverse/issues" - }, - "dependencies": {}, - "description": "ECMAScript JS AST traversal functions", - "devDependencies": { - "chai": "^2.1.1", - "coffee-script": "^1.8.0", - "espree": "^1.11.0", - "gulp": "^3.8.10", - "gulp-bump": "^0.2.2", - "gulp-filter": "^2.0.0", - "gulp-git": "^1.0.1", - "gulp-tag-version": "^1.2.1", - "jshint": "^2.5.6", - "mocha": "^2.1.0" - }, - "directories": {}, - "dist": { - "shasum": "f6caca728933a850ef90661d0e17982ba47111a2", - "tarball": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" - }, - "engines": { - "node": ">=0.10.0" - }, - "gitHead": "bbcccbfe98296585e4311c8755e1d00dcd581e3c", - "homepage": "https://github.com/estools/estraverse", - "license": "BSD-2-Clause", - "main": "estraverse.js", - "maintainers": [ - { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - } - ], - "name": "estraverse", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/estools/estraverse.git" - }, - "scripts": { - "lint": "jshint estraverse.js", - "test": "npm run-script lint && npm run-script unit-test", - "unit-test": "mocha --compilers coffee:coffee-script/register" - }, - "version": "4.1.1" -} diff --git a/tools/eslint/node_modules/esrecurse/package-lock.json b/tools/eslint/node_modules/esrecurse/package-lock.json new file mode 100644 index 00000000000000..8faf2d522d10ca --- /dev/null +++ b/tools/eslint/node_modules/esrecurse/package-lock.json @@ -0,0 +1,4322 @@ +{ + "name": "esrecurse", + "version": "4.1.0", + "lockfileVersion": 1, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "any-shell-escape": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/any-shell-escape/-/any-shell-escape-0.1.1.tgz", + "integrity": "sha1-1Vq5ciRMcaml4asIefML8RCAaVk=", + "dev": true + }, + "anymatch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "dev": true, + "optional": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true + }, + "arr-flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", + "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", + "dev": true + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-slice": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.0.0.tgz", + "integrity": "sha1-5zA08A3MH0CHYAj9IP6ud71LfC8=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true, + "optional": true + }, + "babel-cli": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.1.tgz", + "integrity": "sha1-IHzXBbumFImy6kG1MSNBz2rKIoM=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "dev": true + }, + "babel-core": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", + "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "dev": true, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true + }, + "babel-helper-define-map": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", + "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true + }, + "babel-helper-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", + "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", + "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", + "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true + }, + "babel-plugin-transform-regenerator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", + "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "dev": true + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true + }, + "babel-polyfill": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "dev": true + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true + }, + "babel-register": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", + "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true + }, + "babel-template": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", + "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-traverse": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", + "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "dev": true, + "dependencies": { + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babel-types": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + } + } + }, + "babylon": { + "version": "6.17.4", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", + "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "binary-extensions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", + "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "dev": true, + "optional": true + }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true + }, + "bufferstreams": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.1.tgz", + "integrity": "sha1-AWE3MGCsWYjv+ZBYcxEU9uGV1R4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz", + "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + } + } + } + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true + }, + "catharsis": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.8.tgz", + "integrity": "sha1-aTR59DqsVJ2Aa9c+kkzQ2USVGgY=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true + }, + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true + }, + "cli-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "integrity": "sha1-pNKT72frt7iNSk1CwMzwDE0eNm0=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffee-script": { + "version": "1.12.6", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.6.tgz", + "integrity": "sha1-KFo/cRVokGUGTWv570Vy22ZpXL8=", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz", + "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + } + } + } + } + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true + }, + "dateformat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", + "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "detect-file": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", + "integrity": "sha1-STXe39lIhkjgBrASlWbpOGcR6mM=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=", + "dev": true, + "dependencies": { + "esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", + "dev": true + } + } + }, + "dot-object": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-1.5.4.tgz", + "integrity": "sha1-ryuN8mJrZQIM1nKdRsMxvDDTtIc=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true + }, + "es5-ext": { + "version": "0.10.23", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", + "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=", + "dev": true + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "dev": true + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true + }, + "eslint": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-1.10.3.tgz", + "integrity": "sha1-+xmpGxPBWAgrvKKUsX2Xm8g1Ogo=", + "dev": true, + "dependencies": { + "espree": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/espree/-/espree-2.2.5.tgz", + "integrity": "sha1-32kbkxCIlAKuspzAZnCMVmkLhUs=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + }, + "user-home": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", + "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", + "dev": true + } + } + }, + "espree": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.7.tgz", + "integrity": "sha1-/V3ux2qXpRIKnNOnyxF3oJI7EdI=", + "dev": true + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=", + "dev": true, + "dependencies": { + "estraverse": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz", + "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=", + "dev": true + } + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "estraverse-fb": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz", + "integrity": "sha1-Fg51qA5gWwjOiUvM4v4+Qpq/kr8=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true + }, + "expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "dependencies": { + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + } + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true + }, + "fancy-log": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", + "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", + "dev": true + }, + "fast-levenshtein": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz", + "integrity": "sha1-AXjc3uAjuSkFGTrwlZ6KdjnP3Lk=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true + }, + "file-entry-cache": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", + "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=", + "dev": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true + }, + "findup-sync": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", + "integrity": "sha1-QAQ5Kee8YK3wt/SCfExudaDeyhI=", + "dev": true + }, + "fined": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.0.tgz", + "integrity": "sha1-s33IRLdqL15wgeiE98CuNE8VNHY=", + "dev": true, + "dependencies": { + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true + } + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-0.3.2.tgz", + "integrity": "sha1-/xke3c1wiKZ1smEP/8l2vpuAdLU=", + "dev": true + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true + }, + "fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "dev": true + }, + "fs-readdir-recursive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz", + "integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dev": true, + "optional": true, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "dev": true, + "optional": true + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "optional": true + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true + }, + "global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "dev": true + }, + "global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "dev": true + }, + "globals": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-8.18.0.tgz", + "integrity": "sha1-k9SmK9ysOM+vr8R9awNHaMsP/LQ=", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true + } + } + }, + "glogg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", + "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true + }, + "gulp-bump": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulp-bump/-/gulp-bump-1.0.0.tgz", + "integrity": "sha1-XofEsSlyalzphvIjDnU3vzzecqw=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "gulp-eslint": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-1.1.1.tgz", + "integrity": "sha1-nxY4D1MxchUrN/O1woFkmt+PRmQ=", + "dev": true + }, + "gulp-filter": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-3.0.1.tgz", + "integrity": "sha1-fG/85bVj6J3nqQ387/FuyKjLFWI=", + "dev": true + }, + "gulp-git": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/gulp-git/-/gulp-git-1.15.1.tgz", + "integrity": "sha1-zdnTVPxB2Ny1LO9HJW37o2Z4WXk=", + "dev": true, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + } + } + }, + "gulp-mocha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-mocha/-/gulp-mocha-2.2.0.tgz", + "integrity": "sha1-HOXrpLlLQMdDav7DxJgsjuqJQZI=", + "dev": true + }, + "gulp-tag-version": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gulp-tag-version/-/gulp-tag-version-1.3.0.tgz", + "integrity": "sha1-hEjIfu0YZtuObLWYvEGb4t98R9s=", + "dev": true, + "dependencies": { + "ansi-regex": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz", + "integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=", + "dev": true + }, + "ansi-styles": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz", + "integrity": "sha1-6uy/Zs1waIJ2Cy9GkVgrj1XXp94=", + "dev": true + }, + "chalk": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz", + "integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true + }, + "gulp-git": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/gulp-git/-/gulp-git-0.3.6.tgz", + "integrity": "sha1-d+w9oiklwkbt15bKENQWOWXYFAo=", + "dev": true + }, + "gulp-util": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-2.2.20.tgz", + "integrity": "sha1-1xRuVyiRC9jwR6awseVJvCLb1kw=", + "dev": true, + "dependencies": { + "through2": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz", + "integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=", + "dev": true + } + } + }, + "has-ansi": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz", + "integrity": "sha1-hPJlqujA5qiKEtcCKJS3VoiUxi4=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz", + "integrity": "sha1-TxInqlqHEfxjL1sHofRgequLMiI=", + "dev": true + }, + "lodash.escape": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-2.4.1.tgz", + "integrity": "sha1-LOEsXghNsKV92l5dHu659dF1o7Q=", + "dev": true + }, + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + }, + "lodash.template": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-2.4.1.tgz", + "integrity": "sha1-nmEQB+32KRKal0qzxIuBez4c8g0=", + "dev": true + }, + "lodash.templatesettings": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz", + "integrity": "sha1-6nbHXRHrhtTb6JqDiTu4YZKaxpk=", + "dev": true + }, + "minimist": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz", + "integrity": "sha1-Tf/lJdriuGTGbC4jxicdev3s784=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "strip-ansi": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz", + "integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=", + "dev": true + }, + "supports-color": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", + "dev": true + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true, + "dependencies": { + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true + } + } + }, + "vinyl": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.2.3.tgz", + "integrity": "sha1-vKk4IJWC7FpJrVOKAPofEl5RMlI=", + "dev": true + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true + }, + "hosted-git-info": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", + "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "inquirer": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", + "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=", + "dev": true, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + } + } + }, + "interpret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true + }, + "irregular-plurals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.2.0.tgz", + "integrity": "sha1-OPKZg0uowAwwvpxVThNyaXUv86w=", + "dev": true + }, + "is-absolute": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", + "integrity": "sha1-IN5p89uULvLYe5wto28XIjWxtes=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.3.tgz", + "integrity": "sha1-wVvz5LZrYtcu+vKSWEhmPsvGGbY=", + "dev": true, + "dependencies": { + "isobject": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.0.tgz", + "integrity": "sha1-OVZSF/NmF4nooKDAgNX35rxG4aA=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-relative": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz", + "integrity": "sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU=", + "dev": true + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "dev": true + }, + "is-unc-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz", + "integrity": "sha1-arBTpyVzwQJQ/0FqOBTDUXivObk=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", + "dev": true + }, + "js-yaml": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.5.tgz", + "integrity": "sha1-w0A3l98SuRhmV08t4jZG/oyvtE0=", + "dev": true + }, + "js2xmlparser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-1.0.0.tgz", + "integrity": "sha1-WhcPLo1kds5FQF4EgjJCUTeC/jA=", + "dev": true + }, + "jsdoc": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.4.3.tgz", + "integrity": "sha1-5XQNYUXGgfZnnmwXeDqI292XzNM=", + "dev": true, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + } + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "levn": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz", + "integrity": "sha1-uo0znQykphDjo/FFucr0iAcVUFQ=", + "dev": true + }, + "liftoff": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "integrity": "sha1-qY8v9nGD2Lp8+soQVIvX/wVQs4U=", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true + } + } + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "lodash._arraycopy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz", + "integrity": "sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE=", + "dev": true + }, + "lodash._arrayeach": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", + "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=", + "dev": true + }, + "lodash._arraymap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz", + "integrity": "sha1-Go/Q9MDfS2HeoHbXF83Jfwo8PmY=", + "dev": true + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true + }, + "lodash._baseclone": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", + "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basedifference": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz", + "integrity": "sha1-8sIEKWwqeOArOJCBtu3KyTPPYpw=", + "dev": true + }, + "lodash._baseflatten": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz", + "integrity": "sha1-B3D/gBMa9uNPO1EXlqe6UhTmX/c=", + "dev": true + }, + "lodash._basefor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", + "integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=", + "dev": true + }, + "lodash._baseindexof": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz", + "integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=", + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz", + "integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=", + "dev": true + }, + "lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz", + "integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=", + "dev": true + }, + "lodash._escapehtmlchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz", + "integrity": "sha1-32fDu2t+jh6DGrSL+geVuSr+iZ0=", + "dev": true + }, + "lodash._escapestringchar": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz", + "integrity": "sha1-7P4iYYoq3lC/7qQ5N+Ud9m8O23I=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._htmlescapes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz", + "integrity": "sha1-MtFL8IRLbeb4tioFG09nwii2JMs=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._isnative": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", + "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", + "dev": true + }, + "lodash._objecttypes": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", + "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", + "dev": true + }, + "lodash._pickbyarray": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz", + "integrity": "sha1-H4mNlgfrVgsOFnOEt3x8bRCKpMU=", + "dev": true + }, + "lodash._pickbycallback": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz", + "integrity": "sha1-/2G5oBens699MObFPeKK+hm4dQo=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._reunescapedhtml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz", + "integrity": "sha1-dHxPxAED6zu4oJduVx96JlnpO6c=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash._shimkeys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", + "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "dev": true + }, + "lodash.clonedeep": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", + "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=", + "dev": true + }, + "lodash.defaults": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-2.4.1.tgz", + "integrity": "sha1-p+iIXwXmiFEUS24SqPNngCa8TFQ=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isobject": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", + "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.istypedarray": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz", + "integrity": "sha1-yaR3SYYHUB2OhJTSg7h8OSgc72I=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true + }, + "lodash.keysin": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "integrity": "sha1-IsRJPrvtsUJ5YqVLRFssinZ/tH8=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.merge": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz", + "integrity": "sha1-DZDZPtY3sYeEN7s+IWASYNev6ZQ=", + "dev": true, + "dependencies": { + "lodash.isplainobject": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", + "integrity": "sha1-moI4rhayAEMpYM1zRlEtASP79MU=", + "dev": true + } + } + }, + "lodash.omit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz", + "integrity": "sha1-iX/jguZBPZrJfGH3jtHgV6AK+fM=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true + }, + "lodash.toplainobject": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz", + "integrity": "sha1-KHkK2ULSk9eKpmOgfs9/UsoEGY0=", + "dev": true + }, + "lodash.values": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", + "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", + "dev": true, + "dependencies": { + "lodash.keys": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", + "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "dependencies": { + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true + }, + "mute-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", + "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=", + "dev": true + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "dev": true, + "optional": true + }, + "natives": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", + "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=", + "dev": true + }, + "normalize-package-data": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", + "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "dev": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true + }, + "isobject": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.0.tgz", + "integrity": "sha1-OVZSF/NmF4nooKDAgNX35rxG4aA=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true + }, + "object.pick": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.2.0.tgz", + "integrity": "sha1-tTkr7peC2m2ft9avr1OXefEjTCs=", + "dev": true + }, + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "optionator": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz", + "integrity": "sha1-tj7Lvw4xX61LyYJ7Rdx7pFKE/LY=", + "dev": true + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "parse-filepath": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.1.tgz", + "integrity": "sha1-FZ1hVdQ5BNFsEO9piRHaHpGWm3M=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + } + } + }, + "plugin-log": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/plugin-log/-/plugin-log-0.1.0.tgz", + "integrity": "sha1-hgSc9qsQgzOYqTHzaJy67nteEzM=", + "dev": true, + "dependencies": { + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true + } + } + }, + "plur": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", + "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz", + "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==", + "dev": true, + "optional": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true, + "optional": true + } + } + } + } + }, + "readline2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "dev": true + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true + }, + "regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, + "regenerator-transform": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", + "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "require-dir": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/require-dir/-/require-dir-0.1.0.tgz", + "integrity": "sha1-geAeKZ+vW3TDS2WU+OWt1Zhd3sU=", + "dev": true + }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", + "dev": true + }, + "resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "dev": true + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true + } + } + }, + "run-async": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "dev": true + }, + "rx-lite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz", + "integrity": "sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ==", + "dev": true + }, + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "optional": true + }, + "shelljs": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz", + "integrity": "sha1-xUmCuZbHbvDB5rWfvcWCX1txMRM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + } + } + }, + "sparkles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", + "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stream-consume": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz", + "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=", + "dev": true + }, + "streamfilter": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.5.tgz", + "integrity": "sha1-h1BxEb644phFFxe1Ec/tjwAqv1M=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz", + "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + } + } + } + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz", + "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", + "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", + "dev": true, + "dependencies": { + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + } + } + } + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "dependencies": { + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true, + "optional": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true + } + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true + }, + "xml-escape": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz", + "integrity": "sha1-AJY9aXsq3wwYXE4E5zF0upsojrI=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + } + } + } + } +} diff --git a/tools/eslint/node_modules/esrecurse/package.json b/tools/eslint/node_modules/esrecurse/package.json old mode 100644 new mode 100755 index 0894c344435533..d0141f2e18ac35 --- a/tools/eslint/node_modules/esrecurse/package.json +++ b/tools/eslint/node_modules/esrecurse/package.json @@ -1,101 +1,73 @@ { - "_args": [ - [ - { - "raw": "esrecurse@^4.1.0", - "scope": null, - "escapedName": "esrecurse", - "name": "esrecurse", - "rawSpec": "^4.1.0", - "spec": ">=4.1.0 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint-scope" - ] - ], - "_from": "esrecurse@>=4.1.0 <5.0.0", - "_id": "esrecurse@4.1.0", - "_inCache": true, - "_location": "/esrecurse", - "_nodeVersion": "0.12.9", - "_npmOperationalInternal": { - "host": "packages-13-west.internal.npmjs.com", - "tmp": "tmp/esrecurse-4.1.0.tgz_1457712782215_0.15950557170435786" - }, - "_npmUser": { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - "_npmVersion": "2.14.9", + "_from": "esrecurse@^4.1.0", + "_id": "esrecurse@4.2.0", + "_inBundle": false, + "_integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "_location": "/eslint/esrecurse", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "esrecurse@^4.1.0", - "scope": null, - "escapedName": "esrecurse", "name": "esrecurse", + "escapedName": "esrecurse", "rawSpec": "^4.1.0", - "spec": ">=4.1.0 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.1.0" }, "_requiredBy": [ - "/eslint-scope" + "/eslint/eslint-scope" ], - "_resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", - "_shasum": "4713b6536adf7f2ac4f327d559e7756bff648220", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "_shasum": "fa9568d98d3823f9a41d91e902dcab9ea6e5b163", "_spec": "esrecurse@^4.1.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint-scope", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-scope", + "babel": { + "presets": [ + "es2015" + ] + }, "bugs": { "url": "https://github.com/estools/esrecurse/issues" }, + "bundleDependencies": false, "dependencies": { - "estraverse": "~4.1.0", + "estraverse": "^4.1.0", "object-assign": "^4.0.1" }, + "deprecated": false, "description": "ECMAScript AST recursive visitor", "devDependencies": { - "chai": "^3.3.0", - "coffee-script": "^1.9.1", - "esprima": "^2.1.0", + "babel-cli": "^6.24.1", + "babel-eslint": "^7.2.3", + "babel-preset-es2015": "^6.24.1", + "babel-register": "^6.24.1", + "chai": "^4.0.2", + "esprima": "^4.0.0", "gulp": "^3.9.0", - "gulp-bump": "^1.0.0", - "gulp-eslint": "^1.0.0", - "gulp-filter": "^3.0.1", - "gulp-git": "^1.1.0", - "gulp-mocha": "^2.1.3", + "gulp-bump": "^2.7.0", + "gulp-eslint": "^4.0.0", + "gulp-filter": "^5.0.0", + "gulp-git": "^2.4.1", + "gulp-mocha": "^4.3.1", "gulp-tag-version": "^1.2.1", "jsdoc": "^3.3.0-alpha10", "minimist": "^1.1.0" }, - "directories": {}, - "dist": { - "shasum": "4713b6536adf7f2ac4f327d559e7756bff648220", - "tarball": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz" - }, "engines": { "node": ">=0.10.0" }, - "gitHead": "63a34714834bd7ad2063054bd4abb24fb82ca667", "homepage": "https://github.com/estools/esrecurse", "license": "BSD-2-Clause", "main": "esrecurse.js", "maintainers": [ { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "https://github.com/Constellation" } ], "name": "esrecurse", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/estools/esrecurse.git" @@ -105,5 +77,5 @@ "test": "gulp travis", "unit-test": "gulp test" }, - "version": "4.1.0" + "version": "4.2.0" } diff --git a/tools/eslint/node_modules/estraverse/package.json b/tools/eslint/node_modules/estraverse/package.json index bae7c7e91f031f..17bc44e0b792fc 100644 --- a/tools/eslint/node_modules/estraverse/package.json +++ b/tools/eslint/node_modules/estraverse/package.json @@ -1,56 +1,35 @@ { - "_args": [ - [ - { - "raw": "estraverse@^4.2.0", - "scope": null, - "escapedName": "estraverse", - "name": "estraverse", - "rawSpec": "^4.2.0", - "spec": ">=4.2.0 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "estraverse@>=4.2.0 <5.0.0", + "_from": "estraverse@^4.2.0", "_id": "estraverse@4.2.0", - "_inCache": true, - "_location": "/estraverse", - "_nodeVersion": "0.12.9", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/estraverse-4.2.0.tgz_1457646738925_0.7118953282479197" - }, - "_npmUser": { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - "_npmVersion": "2.14.9", + "_inBundle": false, + "_integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "_location": "/eslint/estraverse", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "estraverse@^4.2.0", - "scope": null, - "escapedName": "estraverse", "name": "estraverse", + "escapedName": "estraverse", "rawSpec": "^4.2.0", - "spec": ">=4.2.0 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.2.0" }, "_requiredBy": [ "/eslint", - "/eslint-scope", - "/esquery" + "/eslint/eslint-scope", + "/eslint/esquery", + "/eslint/esrecurse" ], "_resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", "_shasum": "0dee3fed31fcd469618ce7342099fc1afa0bdb13", - "_shrinkwrap": null, "_spec": "estraverse@^4.2.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/estools/estraverse/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "ECMAScript JS AST traversal functions", "devDependencies": { "babel-preset-es2015": "^6.3.13", @@ -65,35 +44,20 @@ "jshint": "^2.5.6", "mocha": "^2.1.0" }, - "directories": {}, - "dist": { - "shasum": "0dee3fed31fcd469618ce7342099fc1afa0bdb13", - "tarball": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" - }, "engines": { "node": ">=0.10.0" }, - "gitHead": "6f6a4e99653908e859c7c10d04d9518bf4844ede", "homepage": "https://github.com/estools/estraverse", "license": "BSD-2-Clause", "main": "estraverse.js", "maintainers": [ { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "http://github.com/Constellation" } ], "name": "estraverse", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/estools/estraverse.git" diff --git a/tools/eslint/node_modules/esutils/package.json b/tools/eslint/node_modules/esutils/package.json index 0c26be81d60550..6050334e29c442 100644 --- a/tools/eslint/node_modules/esutils/package.json +++ b/tools/eslint/node_modules/esutils/package.json @@ -1,52 +1,34 @@ { - "_args": [ - [ - { - "raw": "esutils@^2.0.2", - "scope": null, - "escapedName": "esutils", - "name": "esutils", - "rawSpec": "^2.0.2", - "spec": ">=2.0.2 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "esutils@>=2.0.2 <3.0.0", + "_from": "esutils@^2.0.2", "_id": "esutils@2.0.2", - "_inCache": true, - "_location": "/esutils", - "_nodeVersion": "0.12.0", - "_npmUser": { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" - }, - "_npmVersion": "2.5.1", + "_inBundle": false, + "_integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "_location": "/eslint/esutils", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "esutils@^2.0.2", - "scope": null, - "escapedName": "esutils", "name": "esutils", + "escapedName": "esutils", "rawSpec": "^2.0.2", - "spec": ">=2.0.2 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.2" }, "_requiredBy": [ - "/babel-code-frame", - "/doctrine", - "/eslint" + "/eslint", + "/eslint/babel-code-frame", + "/eslint/doctrine" ], "_resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "_shasum": "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", - "_shrinkwrap": null, "_spec": "esutils@^2.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "bugs": { "url": "https://github.com/estools/esutils/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "utility box for ECMAScript language tools", "devDependencies": { "chai": "~1.7.2", @@ -59,10 +41,6 @@ "directories": { "lib": "./lib" }, - "dist": { - "shasum": "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b", - "tarball": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - }, "engines": { "node": ">=0.10.0" }, @@ -71,7 +49,6 @@ "README.md", "lib" ], - "gitHead": "3ffd1c403f3f29db9e8a9574b1895682e57b6a7f", "homepage": "https://github.com/estools/esutils", "licenses": [ { @@ -82,17 +59,12 @@ "main": "lib/utils.js", "maintainers": [ { - "name": "constellation", - "email": "utatane.tea@gmail.com" - }, - { - "name": "michaelficarra", - "email": "npm@michael.ficarra.me" + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "url": "http://github.com/Constellation" } ], "name": "esutils", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/estools/esutils.git" diff --git a/tools/eslint/node_modules/extend/.eslintrc b/tools/eslint/node_modules/extend/.eslintrc deleted file mode 100644 index 90b31938e84ab3..00000000000000 --- a/tools/eslint/node_modules/extend/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 15], - "eqeqeq": [2, "allow-null"], - "func-name-matching": [1], - "max-depth": [1, 4], - "max-statements": [2, 26], - "no-extra-parens": [1], - "no-magic-numbers": [0], - "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"], - "sort-keys": [0], - } -} diff --git a/tools/eslint/node_modules/extend/.jscs.json b/tools/eslint/node_modules/extend/.jscs.json deleted file mode 100644 index 0284c86daafec3..00000000000000 --- a/tools/eslint/node_modules/extend/.jscs.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] }, - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 6 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": false, - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - }, - - "requireImportAlphabetized": false, - - "requireSpaceBeforeObjectValues": true, - "requireSpaceBeforeDestructuredValues": true, - - "disallowSpacesInsideTemplateStringPlaceholders": true, - - "disallowArrayDestructuringReturn": false, - - "requireNewlineBeforeSingleStatementsInIf": false, - - "disallowUnusedVariables": true, - - "requireSpacesInsideImportedObjectBraces": true, - - "requireUseStrict": true -} - diff --git a/tools/eslint/node_modules/extend/.npmignore b/tools/eslint/node_modules/extend/.npmignore deleted file mode 100644 index 30d74d258442c7..00000000000000 --- a/tools/eslint/node_modules/extend/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file diff --git a/tools/eslint/node_modules/extend/.travis.yml b/tools/eslint/node_modules/extend/.travis.yml deleted file mode 100644 index 6bf696c87b872a..00000000000000 --- a/tools/eslint/node_modules/extend/.travis.yml +++ /dev/null @@ -1,179 +0,0 @@ -language: node_js -os: - - linux -node_js: - - "7.9" - - "6.10" - - "5.12" - - "4.8" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" -before_install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi' - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi' -install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true -matrix: - fast_finish: true - include: - - node_js: "node" - env: PRETEST=true - - node_js: "node" - env: COVERAGE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true - ##- node_js: "7" - #env: TEST=true - #os: osx - #- node_js: "6" - #env: TEST=true - #os: osx - #- node_js: "5" - #env: TEST=true - #os: osx - #- node_js: "4" - #env: TEST=true - #os: osx - #- node_js: "iojs" - #env: TEST=true - #os: osx - #- node_js: "0.12" - #env: TEST=true - #os: osx - #- node_js: "0.10" - #env: TEST=true - #os: osx - #- node_js: "0.8" - #env: TEST=true - #os: osx - allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true diff --git a/tools/eslint/node_modules/extend/CHANGELOG.md b/tools/eslint/node_modules/extend/CHANGELOG.md deleted file mode 100644 index 0fe528764663d0..00000000000000 --- a/tools/eslint/node_modules/extend/CHANGELOG.md +++ /dev/null @@ -1,77 +0,0 @@ -3.0.1 / 2017-04-27 -================== - * [Fix] deep extending should work with a non-object (#46) - * [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config` - * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; improve matrix - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. - * [Docs] Add example to readme (#34) - -3.0.0 / 2015-07-01 -================== - * [Possible breaking change] Use global "strict" directive (#32) - * [Tests] `int` is an ES3 reserved word - * [Tests] Test up to `io.js` `v2.3` - * [Tests] Add `npm run eslint` - * [Dev Deps] Update `covert`, `jscs` - -2.0.1 / 2015-04-25 -================== - * Use an inline `isArray` check, for ES3 browsers. (#27) - * Some old browsers fail when an identifier is `toString` - * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds - * Add license info to package.json (#25) - * Update `tape`, `jscs` - * Adding a CHANGELOG - -2.0.0 / 2014-10-01 -================== - * Increase code coverage to 100%; run code coverage as part of tests - * Add `npm run lint`; Run linter as part of tests - * Remove nodeType and setInterval checks in isPlainObject - * Updating `tape`, `jscs`, `covert` - * General style and README cleanup - -1.3.0 / 2014-06-20 -================== - * Add component.json for browser support (#18) - * Use SVG for badges in README (#16) - * Updating `tape`, `covert` - * Updating travis-ci to work with multiple node versions - * Fix `deep === false` bug (returning target as {}) (#14) - * Fixing constructor checks in isPlainObject - * Adding additional test coverage - * Adding `npm run coverage` - * Add LICENSE (#13) - * Adding a warning about `false`, per #11 - * General style and whitespace cleanup - -1.2.1 / 2013-09-14 -================== - * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8 - * Updating `tape` - -1.2.0 / 2013-09-02 -================== - * Updating the README: add badges - * Adding a missing variable reference. - * Using `tape` instead of `buster` for tests; add more tests (#7) - * Adding node 0.10 to Travis CI (#6) - * Enabling "npm test" and cleaning up package.json (#5) - * Add Travis CI. - -1.1.3 / 2012-12-06 -================== - * Added unit tests. - * Ensure extend function is named. (Looks nicer in a stack trace.) - * README cleanup. - -1.1.1 / 2012-11-07 -================== - * README cleanup. - * Added installation instructions. - * Added a missing semicolon - -1.0.0 / 2012-04-08 -================== - * Initial commit - diff --git a/tools/eslint/node_modules/extend/component.json b/tools/eslint/node_modules/extend/component.json deleted file mode 100644 index 1500a2f3718182..00000000000000 --- a/tools/eslint/node_modules/extend/component.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "extend", - "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "3.0.0", - "description": "Port of jQuery.extend for node.js and the browser.", - "scripts": [ - "index.js" - ], - "contributors": [ - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "keywords": [ - "extend", - "clone", - "merge" - ], - "repository" : { - "type": "git", - "url": "https://github.com/justmoon/node-extend.git" - }, - "dependencies": { - }, - "devDependencies": { - "tape" : "~3.0.0", - "covert": "~0.4.0", - "jscs": "~1.6.2" - } -} - diff --git a/tools/eslint/node_modules/extend/package.json b/tools/eslint/node_modules/extend/package.json index 8664ee04d670cd..c5de803138a509 100644 --- a/tools/eslint/node_modules/extend/package.json +++ b/tools/eslint/node_modules/extend/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "extend@^3.0.0", - "scope": null, - "escapedName": "extend", - "name": "extend", - "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "extend@>=3.0.0 <4.0.0", + "_from": "extend@^3.0.0", "_id": "extend@3.0.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "_location": "/extend", - "_nodeVersion": "7.9.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/extend-3.0.1.tgz_1493357803699_0.1708133383654058" - }, - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - "_npmVersion": "4.2.0", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "extend@^3.0.0", - "scope": null, - "escapedName": "extend", "name": "extend", + "escapedName": "extend", "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.0.0" }, "_requiredBy": [ "/remark-parse", @@ -44,9 +22,8 @@ ], "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "_shasum": "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444", - "_shrinkwrap": null, "_spec": "extend@^3.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Stefan Thomas", "email": "justmoon@members.fsf.org", @@ -55,6 +32,7 @@ "bugs": { "url": "https://github.com/justmoon/node-extend/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Jordan Harband", @@ -62,6 +40,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Port of jQuery.extend for node.js and the browser", "devDependencies": { "@ljharb/eslint-config": "^11.0.0", @@ -70,12 +49,6 @@ "jscs": "^3.0.7", "tape": "^4.6.3" }, - "directories": {}, - "dist": { - "shasum": "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444", - "tarball": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" - }, - "gitHead": "138b515df4d628bb1742254ede5d2551c0fecae7", "homepage": "https://github.com/justmoon/node-extend#readme", "keywords": [ "extend", @@ -84,19 +57,7 @@ ], "license": "MIT", "main": "index", - "maintainers": [ - { - "name": "justmoon", - "email": "justmoon@members.fsf.org" - }, - { - "name": "ljharb", - "email": "ljharb@gmail.com" - } - ], "name": "extend", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/justmoon/node-extend.git" diff --git a/tools/eslint/node_modules/external-editor/package.json b/tools/eslint/node_modules/external-editor/package.json index a610deae387c67..ffc2fa713f6678 100644 --- a/tools/eslint/node_modules/external-editor/package.json +++ b/tools/eslint/node_modules/external-editor/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "external-editor@^2.0.4", - "scope": null, - "escapedName": "external-editor", - "name": "external-editor", - "rawSpec": "^2.0.4", - "spec": ">=2.0.4 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "external-editor@>=2.0.4 <3.0.0", + "_from": "external-editor@^2.0.4", "_id": "external-editor@2.0.4", - "_inCache": true, - "_location": "/external-editor", - "_nodeVersion": "7.7.3", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/external-editor-2.0.4.tgz_1495568005250_0.5491060812491924" - }, - "_npmUser": { - "name": "mrkmg", - "email": "kevin@mrkmg.com" - }, - "_npmVersion": "4.1.2", + "_inBundle": false, + "_integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", + "_location": "/eslint/external-editor", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "external-editor@^2.0.4", - "scope": null, - "escapedName": "external-editor", "name": "external-editor", + "escapedName": "external-editor", "rawSpec": "^2.0.4", - "spec": ">=2.0.4 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.4" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", "_shasum": "1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972", - "_shrinkwrap": null, "_spec": "external-editor@^2.0.4", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Kevin Gravier", "email": "kevin@mrkmg.com", @@ -53,11 +30,13 @@ "bugs": { "url": "https://github.com/mrkmg/node-external-editor/issues" }, + "bundleDependencies": false, "dependencies": { "iconv-lite": "^0.4.17", "jschardet": "^1.4.2", "tmp": "^0.0.31" }, + "deprecated": false, "description": "Edit a string with the users preferred text editor using $VISUAL or $ENVIRONMENT", "devDependencies": { "chai": "^3.5.0", @@ -65,11 +44,6 @@ "coffeelint": "^1.14.2", "mocha": "^3.2.0" }, - "directories": {}, - "dist": { - "shasum": "1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972", - "tarball": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz" - }, "engines": { "node": ">=0.12" }, @@ -78,7 +52,6 @@ "example_sync.js", "example_async.js" ], - "gitHead": "caa73e5fb283ba64a3c67a51f69a0c49bb544960", "homepage": "https://github.com/mrkmg/node-external-editor#readme", "keywords": [ "editor", @@ -88,15 +61,7 @@ ], "license": "MIT", "main": "main/index.js", - "maintainers": [ - { - "name": "mrkmg", - "email": "kevin@mrkmg.com" - } - ], "name": "external-editor", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/mrkmg/node-external-editor.git" diff --git a/tools/eslint/node_modules/fast-levenshtein/package.json b/tools/eslint/node_modules/fast-levenshtein/package.json index 5fa5b4089ee67c..8f99b9b0f3a6d0 100644 --- a/tools/eslint/node_modules/fast-levenshtein/package.json +++ b/tools/eslint/node_modules/fast-levenshtein/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "fast-levenshtein@~2.0.4", - "scope": null, - "escapedName": "fast-levenshtein", - "name": "fast-levenshtein", - "rawSpec": "~2.0.4", - "spec": ">=2.0.4 <2.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/optionator" - ] - ], - "_from": "fast-levenshtein@>=2.0.4 <2.1.0", + "_from": "fast-levenshtein@~2.0.4", "_id": "fast-levenshtein@2.0.6", - "_inCache": true, - "_location": "/fast-levenshtein", - "_nodeVersion": "6.9.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/fast-levenshtein-2.0.6.tgz_1482873305730_0.48711988772265613" - }, - "_npmUser": { - "name": "hiddentao", - "email": "ram@hiddentao.com" - }, - "_npmVersion": "3.10.8", + "_inBundle": false, + "_integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "_location": "/eslint/fast-levenshtein", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "fast-levenshtein@~2.0.4", - "scope": null, - "escapedName": "fast-levenshtein", "name": "fast-levenshtein", + "escapedName": "fast-levenshtein", "rawSpec": "~2.0.4", - "spec": ">=2.0.4 <2.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~2.0.4" }, "_requiredBy": [ - "/optionator" + "/eslint/optionator" ], "_resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "_shasum": "3d8a5c66883a16a30ca8643e851f19baa7797917", - "_shrinkwrap": null, "_spec": "fast-levenshtein@~2.0.4", - "_where": "/Users/trott/io.js/tools/node_modules/optionator", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", "author": { "name": "Ramesh Nair", "email": "ram@hiddentao.com", @@ -53,7 +30,8 @@ "bugs": { "url": "https://github.com/hiddentao/fast-levenshtein/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Efficient implementation of Levenshtein algorithm with locale-specific collator support.", "devDependencies": { "chai": "~1.5.0", @@ -68,15 +46,9 @@ "lodash": "^4.0.1", "mocha": "~1.9.0" }, - "directories": {}, - "dist": { - "shasum": "3d8a5c66883a16a30ca8643e851f19baa7797917", - "tarball": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - }, "files": [ "levenshtein.js" ], - "gitHead": "5bffe7151f99fb02f319f70a004e653105a760fb", "homepage": "https://github.com/hiddentao/fast-levenshtein#readme", "keywords": [ "levenshtein", @@ -85,15 +57,7 @@ ], "license": "MIT", "main": "levenshtein.js", - "maintainers": [ - { - "name": "hiddentao", - "email": "ram@hiddentao.com" - } - ], "name": "fast-levenshtein", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/hiddentao/fast-levenshtein.git" diff --git a/tools/eslint/node_modules/figures/package.json b/tools/eslint/node_modules/figures/package.json index 25a23095d8701e..a176621381e82d 100644 --- a/tools/eslint/node_modules/figures/package.json +++ b/tools/eslint/node_modules/figures/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "figures@^2.0.0", - "scope": null, - "escapedName": "figures", - "name": "figures", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "figures@>=2.0.0 <3.0.0", + "_from": "figures@^2.0.0", "_id": "figures@2.0.0", - "_inCache": true, - "_location": "/figures", - "_nodeVersion": "4.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/figures-2.0.0.tgz_1476763139845_0.48903139564208686" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.9", + "_inBundle": false, + "_integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "_location": "/eslint/figures", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "figures@^2.0.0", - "scope": null, - "escapedName": "figures", "name": "figures", + "escapedName": "figures", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "_shasum": "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962", - "_shrinkwrap": null, "_spec": "figures@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,9 +30,11 @@ "bugs": { "url": "https://github.com/sindresorhus/figures/issues" }, + "bundleDependencies": false, "dependencies": { "escape-string-regexp": "^1.0.5" }, + "deprecated": false, "description": "Unicode symbols with Windows CMD fallbacks", "devDependencies": { "ava": "*", @@ -63,18 +42,12 @@ "require-uncached": "^1.0.2", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962", - "tarball": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "fee8887d9f776798ae87ff54386443273c92ad97", "homepage": "https://github.com/sindresorhus/figures#readme", "keywords": [ "unicode", @@ -90,15 +63,7 @@ "fallback" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "figures", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/figures.git" diff --git a/tools/eslint/node_modules/file-entry-cache/package.json b/tools/eslint/node_modules/file-entry-cache/package.json index 0cad154e1f9401..55345014714cf0 100644 --- a/tools/eslint/node_modules/file-entry-cache/package.json +++ b/tools/eslint/node_modules/file-entry-cache/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "file-entry-cache@^2.0.0", - "scope": null, - "escapedName": "file-entry-cache", - "name": "file-entry-cache", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "file-entry-cache@>=2.0.0 <3.0.0", + "_from": "file-entry-cache@^2.0.0", "_id": "file-entry-cache@2.0.0", - "_inCache": true, - "_location": "/file-entry-cache", - "_nodeVersion": "6.3.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/file-entry-cache-2.0.0.tgz_1471380536263_0.40089720860123634" - }, - "_npmUser": { - "name": "royriojas", - "email": "royriojas@gmail.com" - }, - "_npmVersion": "3.10.3", + "_inBundle": false, + "_integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "_location": "/eslint/file-entry-cache", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "file-entry-cache@^2.0.0", - "scope": null, - "escapedName": "file-entry-cache", "name": "file-entry-cache", + "escapedName": "file-entry-cache", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", "_shasum": "c392990c3e684783d838b8c84a45d8a048458361", - "_shrinkwrap": null, "_spec": "file-entry-cache@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" @@ -52,6 +29,7 @@ "bugs": { "url": "https://github.com/royriojas/file-entry-cache/issues" }, + "bundleDependencies": false, "changelogx": { "ignoreRegExp": [ "BLD: Release", @@ -68,6 +46,7 @@ "flat-cache": "^1.2.1", "object-assign": "^4.0.1" }, + "deprecated": false, "description": "Super simple cache for file metadata, useful for process that work o a given series of files and that only need to repeat the job on the changed ones since the previous run of the process", "devDependencies": { "chai": "^3.2.0", @@ -87,18 +66,12 @@ "watch-run": "^1.2.1", "write": "^0.3.1" }, - "directories": {}, - "dist": { - "shasum": "c392990c3e684783d838b8c84a45d8a048458361", - "tarball": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "cache.js" ], - "gitHead": "8c015253938e1756104b524c09ea48798e788aa0", "homepage": "https://github.com/royriojas/file-entry-cache#readme", "keywords": [ "file cache", @@ -110,21 +83,13 @@ ], "license": "MIT", "main": "cache.js", - "maintainers": [ - { - "name": "royriojas", - "email": "royriojas@gmail.com" - } - ], "name": "file-entry-cache", - "optionalDependencies": {}, "precommit": [ "npm run verify" ], "prepush": [ "npm run verify" ], - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/royriojas/file-entry-cache.git" diff --git a/tools/eslint/node_modules/flat-cache/package.json b/tools/eslint/node_modules/flat-cache/package.json index 0bd37edaa63fdf..a540a264c92819 100644 --- a/tools/eslint/node_modules/flat-cache/package.json +++ b/tools/eslint/node_modules/flat-cache/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "flat-cache@^1.2.1", - "scope": null, - "escapedName": "flat-cache", - "name": "flat-cache", - "rawSpec": "^1.2.1", - "spec": ">=1.2.1 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/file-entry-cache" - ] - ], - "_from": "flat-cache@>=1.2.1 <2.0.0", + "_from": "flat-cache@^1.2.1", "_id": "flat-cache@1.2.2", - "_inCache": true, - "_location": "/flat-cache", - "_nodeVersion": "6.9.1", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/flat-cache-1.2.2.tgz_1482199463409_0.13759022881276906" - }, - "_npmUser": { - "name": "royriojas", - "email": "royriojas@gmail.com" - }, - "_npmVersion": "3.10.8", + "_inBundle": false, + "_integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "_location": "/eslint/flat-cache", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "flat-cache@^1.2.1", - "scope": null, - "escapedName": "flat-cache", "name": "flat-cache", + "escapedName": "flat-cache", "rawSpec": "^1.2.1", - "spec": ">=1.2.1 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.2.1" }, "_requiredBy": [ - "/file-entry-cache" + "/eslint/file-entry-cache" ], "_resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", "_shasum": "fa86714e72c21db88601761ecf2f555d1abc6b96", - "_shrinkwrap": null, "_spec": "flat-cache@^1.2.1", - "_where": "/Users/trott/io.js/tools/node_modules/file-entry-cache", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/file-entry-cache", "author": { "name": "Roy Riojas", "url": "http://royriojas.com" @@ -52,6 +29,7 @@ "bugs": { "url": "https://github.com/royriojas/flat-cache/issues" }, + "bundleDependencies": false, "changelogx": { "ignoreRegExp": [ "BLD: Release", @@ -70,6 +48,7 @@ "graceful-fs": "^4.1.2", "write": "^0.2.1" }, + "deprecated": false, "description": "A stupidly simple key/value storage using files to persist some data", "devDependencies": { "chai": "^3.2.0", @@ -86,11 +65,6 @@ "sinon-chai": "^2.8.0", "watch-run": "^1.2.2" }, - "directories": {}, - "dist": { - "shasum": "fa86714e72c21db88601761ecf2f555d1abc6b96", - "tarball": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz" - }, "engines": { "node": ">=0.10.0" }, @@ -98,7 +72,6 @@ "cache.js", "utils.js" ], - "gitHead": "9fdf499efd3dfb950e563ed7486623d7dc3e26c8", "homepage": "https://github.com/royriojas/flat-cache#readme", "keywords": [ "json cache", @@ -110,21 +83,13 @@ ], "license": "MIT", "main": "cache.js", - "maintainers": [ - { - "name": "royriojas", - "email": "royriojas@gmail.com" - } - ], "name": "flat-cache", - "optionalDependencies": {}, "precommit": [ "npm run verify --silent" ], "prepush": [ "npm run verify --silent" ], - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/royriojas/flat-cache.git" diff --git a/tools/eslint/node_modules/fs.realpath/package.json b/tools/eslint/node_modules/fs.realpath/package.json index c570fcd6793006..fce472f61eb92f 100644 --- a/tools/eslint/node_modules/fs.realpath/package.json +++ b/tools/eslint/node_modules/fs.realpath/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "fs.realpath@^1.0.0", - "scope": null, - "escapedName": "fs.realpath", - "name": "fs.realpath", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/glob" - ] - ], - "_from": "fs.realpath@>=1.0.0 <2.0.0", + "_from": "fs.realpath@^1.0.0", "_id": "fs.realpath@1.0.0", - "_inCache": true, - "_location": "/fs.realpath", - "_nodeVersion": "4.4.4", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/fs.realpath-1.0.0.tgz_1466015941059_0.3332864767871797" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.9.1", + "_inBundle": false, + "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "_location": "/eslint/fs.realpath", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "fs.realpath@^1.0.0", - "scope": null, - "escapedName": "fs.realpath", "name": "fs.realpath", + "escapedName": "fs.realpath", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/glob" + "/eslint/glob" ], "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f", - "_shrinkwrap": null, "_spec": "fs.realpath@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/glob", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -53,19 +30,15 @@ "bugs": { "url": "https://github.com/isaacs/fs.realpath/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "1504ad2523158caa40db4a2787cb01411994ea4f", - "tarball": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - }, "files": [ "old.js", "index.js" ], - "gitHead": "03e7c884431fe185dfebbc9b771aeca339c1807a", "homepage": "https://github.com/isaacs/fs.realpath#readme", "keywords": [ "realpath", @@ -74,15 +47,7 @@ ], "license": "ISC", "main": "index.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "fs.realpath", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/isaacs/fs.realpath.git" diff --git a/tools/eslint/node_modules/function-bind/.eslintrc b/tools/eslint/node_modules/function-bind/.eslintrc deleted file mode 100644 index 420b25351af38f..00000000000000 --- a/tools/eslint/node_modules/function-bind/.eslintrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-nested-callbacks": [2, 3], - "max-params": [2, 3], - "max-statements": [2, 20], - "no-new-func": [1], - "strict": [0] - } -} diff --git a/tools/eslint/node_modules/function-bind/.jscs.json b/tools/eslint/node_modules/function-bind/.jscs.json deleted file mode 100644 index d7047f6e952ece..00000000000000 --- a/tools/eslint/node_modules/function-bind/.jscs.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "ForInStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": "allButReserved", - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 8 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": "asc-insensitive", - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - } -} - diff --git a/tools/eslint/node_modules/function-bind/.npmignore b/tools/eslint/node_modules/function-bind/.npmignore deleted file mode 100644 index 8363b8e3d62c28..00000000000000 --- a/tools/eslint/node_modules/function-bind/.npmignore +++ /dev/null @@ -1,16 +0,0 @@ -.DS_Store -.monitor -.*.swp -.nodemonignore -releases -*.log -*.err -fleet.json -public/browserify -bin/*.json -.bin -build -compile -.lock-wscript -coverage -node_modules diff --git a/tools/eslint/node_modules/function-bind/.travis.yml b/tools/eslint/node_modules/function-bind/.travis.yml deleted file mode 100644 index caabb460943e53..00000000000000 --- a/tools/eslint/node_modules/function-bind/.travis.yml +++ /dev/null @@ -1,77 +0,0 @@ -language: node_js -node_js: - - "5.6" - - "5.5" - - "5.4" - - "5.3" - - "5.2" - - "5.1" - - "5.0" - - "4.3" - - "4.2" - - "4.1" - - "4.0" - - "iojs-v3.3" - - "iojs-v3.2" - - "iojs-v3.1" - - "iojs-v3.0" - - "iojs-v2.5" - - "iojs-v2.4" - - "iojs-v2.3" - - "iojs-v2.2" - - "iojs-v2.1" - - "iojs-v2.0" - - "iojs-v1.8" - - "iojs-v1.7" - - "iojs-v1.6" - - "iojs-v1.5" - - "iojs-v1.4" - - "iojs-v1.3" - - "iojs-v1.2" - - "iojs-v1.1" - - "iojs-v1.0" - - "0.12" - - "0.11" - - "0.10" - - "0.9" - - "0.8" - - "0.6" - - "0.4" -before_install: - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi' - - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then npm install -g npm; fi' -script: - - 'if [ "${TRAVIS_NODE_VERSION}" != "4.3" ]; then npm run tests-only ; else npm test ; fi' -sudo: false -matrix: - fast_finish: true - allow_failures: - - node_js: "5.5" - - node_js: "5.4" - - node_js: "5.3" - - node_js: "5.2" - - node_js: "5.1" - - node_js: "5.0" - - node_js: "4.2" - - node_js: "4.1" - - node_js: "4.0" - - node_js: "iojs-v3.2" - - node_js: "iojs-v3.1" - - node_js: "iojs-v3.0" - - node_js: "iojs-v2.4" - - node_js: "iojs-v2.3" - - node_js: "iojs-v2.2" - - node_js: "iojs-v2.1" - - node_js: "iojs-v2.0" - - node_js: "iojs-v1.7" - - node_js: "iojs-v1.6" - - node_js: "iojs-v1.5" - - node_js: "iojs-v1.4" - - node_js: "iojs-v1.3" - - node_js: "iojs-v1.2" - - node_js: "iojs-v1.1" - - node_js: "iojs-v1.0" - - node_js: "0.11" - - node_js: "0.9" - - node_js: "0.6" - - node_js: "0.4" diff --git a/tools/eslint/node_modules/function-bind/package.json b/tools/eslint/node_modules/function-bind/package.json index 4d2b664f3da432..acd8668756db7c 100644 --- a/tools/eslint/node_modules/function-bind/package.json +++ b/tools/eslint/node_modules/function-bind/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "function-bind@^1.0.2", - "scope": null, - "escapedName": "function-bind", - "name": "function-bind", - "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/has" - ] - ], - "_from": "function-bind@>=1.0.2 <2.0.0", + "_from": "function-bind@^1.0.2", "_id": "function-bind@1.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", "_location": "/function-bind", - "_nodeVersion": "5.6.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/function-bind-1.1.0.tgz_1455438520627_0.822420896962285" - }, - "_npmUser": { - "name": "ljharb", - "email": "ljharb@gmail.com" - }, - "_npmVersion": "3.6.0", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "function-bind@^1.0.2", - "scope": null, - "escapedName": "function-bind", "name": "function-bind", + "escapedName": "function-bind", "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.2" }, "_requiredBy": [ "/has" ], "_resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", "_shasum": "16176714c801798e4e8f2cf7f7529467bb4a5771", - "_shrinkwrap": null, "_spec": "function-bind@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/has", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/has", "author": { "name": "Raynos", "email": "raynos2@gmail.com" @@ -53,6 +30,7 @@ "url": "https://github.com/Raynos/function-bind/issues", "email": "raynos2@gmail.com" }, + "bundleDependencies": false, "contributors": [ { "name": "Raynos" @@ -63,6 +41,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Implementation of Function.prototype.bind", "devDependencies": { "@ljharb/eslint-config": "^2.1.0", @@ -71,12 +50,6 @@ "jscs": "^2.9.0", "tape": "^4.4.0" }, - "directories": {}, - "dist": { - "shasum": "16176714c801798e4e8f2cf7f7529467bb4a5771", - "tarball": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" - }, - "gitHead": "cb5057f2a0018ac48c812ccee86934a5af30efdb", "homepage": "https://github.com/Raynos/function-bind", "keywords": [ "function", @@ -91,19 +64,7 @@ } ], "main": "index", - "maintainers": [ - { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - { - "name": "ljharb", - "email": "ljharb@gmail.com" - } - ], "name": "function-bind", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/Raynos/function-bind.git" diff --git a/tools/eslint/node_modules/function-bind/test/index.js b/tools/eslint/node_modules/function-bind/test/index.js deleted file mode 100644 index ba1bfad257575e..00000000000000 --- a/tools/eslint/node_modules/function-bind/test/index.js +++ /dev/null @@ -1,250 +0,0 @@ -var test = require('tape'); - -var functionBind = require('../implementation'); -var getCurrentContext = function () { return this; }; - -test('functionBind is a function', function (t) { - t.equal(typeof functionBind, 'function'); - t.end(); -}); - -test('non-functions', function (t) { - var nonFunctions = [true, false, [], {}, 42, 'foo', NaN, /a/g]; - t.plan(nonFunctions.length); - for (var i = 0; i < nonFunctions.length; ++i) { - try { functionBind.call(nonFunctions[i]); } catch (ex) { - t.ok(ex instanceof TypeError, 'throws when given ' + String(nonFunctions[i])); - } - } - t.end(); -}); - -test('without a context', function (t) { - t.test('binds properly', function (st) { - var args, context; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - context = this; - }) - }; - namespace.func(1, 2, 3); - st.deepEqual(args, [1, 2, 3]); - st.equal(context, getCurrentContext.call()); - st.end(); - }); - - t.test('binds properly, and still supplies bound arguments', function (st) { - var args, context; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - context = this; - }, undefined, 1, 2, 3) - }; - namespace.func(4, 5, 6); - st.deepEqual(args, [1, 2, 3, 4, 5, 6]); - st.equal(context, getCurrentContext.call()); - st.end(); - }); - - t.test('returns properly', function (st) { - var args; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - return this; - }, null) - }; - var context = namespace.func(1, 2, 3); - st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); - st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); - st.end(); - }); - - t.test('returns properly with bound arguments', function (st) { - var args; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - return this; - }, null, 1, 2, 3) - }; - var context = namespace.func(4, 5, 6); - st.equal(context, getCurrentContext.call(), 'returned context is namespaced context'); - st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); - st.end(); - }); - - t.test('called as a constructor', function (st) { - var thunkify = function (value) { - return function () { return value; }; - }; - st.test('returns object value', function (sst) { - var expectedReturnValue = [1, 2, 3]; - var Constructor = functionBind.call(thunkify(expectedReturnValue), null); - var result = new Constructor(); - sst.equal(result, expectedReturnValue); - sst.end(); - }); - - st.test('does not return primitive value', function (sst) { - var Constructor = functionBind.call(thunkify(42), null); - var result = new Constructor(); - sst.notEqual(result, 42); - sst.end(); - }); - - st.test('object from bound constructor is instance of original and bound constructor', function (sst) { - var A = function (x) { - this.name = x || 'A'; - }; - var B = functionBind.call(A, null, 'B'); - - var result = new B(); - sst.ok(result instanceof B, 'result is instance of bound constructor'); - sst.ok(result instanceof A, 'result is instance of original constructor'); - sst.end(); - }); - - st.end(); - }); - - t.end(); -}); - -test('with a context', function (t) { - t.test('with no bound arguments', function (st) { - var args, context; - var boundContext = {}; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - context = this; - }, boundContext) - }; - namespace.func(1, 2, 3); - st.equal(context, boundContext, 'binds a context properly'); - st.deepEqual(args, [1, 2, 3], 'supplies passed arguments'); - st.end(); - }); - - t.test('with bound arguments', function (st) { - var args, context; - var boundContext = {}; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - context = this; - }, boundContext, 1, 2, 3) - }; - namespace.func(4, 5, 6); - st.equal(context, boundContext, 'binds a context properly'); - st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'supplies bound and passed arguments'); - st.end(); - }); - - t.test('returns properly', function (st) { - var boundContext = {}; - var args; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - return this; - }, boundContext) - }; - var context = namespace.func(1, 2, 3); - st.equal(context, boundContext, 'returned context is bound context'); - st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); - st.deepEqual(args, [1, 2, 3], 'passed arguments are correct'); - st.end(); - }); - - t.test('returns properly with bound arguments', function (st) { - var boundContext = {}; - var args; - var namespace = { - func: functionBind.call(function () { - args = Array.prototype.slice.call(arguments); - return this; - }, boundContext, 1, 2, 3) - }; - var context = namespace.func(4, 5, 6); - st.equal(context, boundContext, 'returned context is bound context'); - st.notEqual(context, getCurrentContext.call(), 'returned context is not lexical context'); - st.deepEqual(args, [1, 2, 3, 4, 5, 6], 'passed arguments are correct'); - st.end(); - }); - - t.test('passes the correct arguments when called as a constructor', function (st) { - var expected = { name: 'Correct' }; - var namespace = { - Func: functionBind.call(function (arg) { - return arg; - }, { name: 'Incorrect' }) - }; - var returned = new namespace.Func(expected); - st.equal(returned, expected, 'returns the right arg when called as a constructor'); - st.end(); - }); - - t.test('has the new instance\'s context when called as a constructor', function (st) { - var actualContext; - var expectedContext = { foo: 'bar' }; - var namespace = { - Func: functionBind.call(function () { - actualContext = this; - }, expectedContext) - }; - var result = new namespace.Func(); - st.equal(result instanceof namespace.Func, true); - st.notEqual(actualContext, expectedContext); - st.end(); - }); - - t.end(); -}); - -test('bound function length', function (t) { - t.test('sets a correct length without thisArg', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }); - st.equal(subject.length, 3); - st.equal(subject(1, 2, 3), 6); - st.end(); - }); - - t.test('sets a correct length with thisArg', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}); - st.equal(subject.length, 3); - st.equal(subject(1, 2, 3), 6); - st.end(); - }); - - t.test('sets a correct length without thisArg and first argument', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1); - st.equal(subject.length, 2); - st.equal(subject(2, 3), 6); - st.end(); - }); - - t.test('sets a correct length with thisArg and first argument', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1); - st.equal(subject.length, 2); - st.equal(subject(2, 3), 6); - st.end(); - }); - - t.test('sets a correct length without thisArg and too many arguments', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }, undefined, 1, 2, 3, 4); - st.equal(subject.length, 0); - st.equal(subject(), 6); - st.end(); - }); - - t.test('sets a correct length with thisArg and too many arguments', function (st) { - var subject = functionBind.call(function (a, b, c) { return a + b + c; }, {}, 1, 2, 3, 4); - st.equal(subject.length, 0); - st.equal(subject(), 6); - st.end(); - }); -}); diff --git a/tools/eslint/node_modules/generate-function/package.json b/tools/eslint/node_modules/generate-function/package.json index 912dc63bf504c7..cc950e8948c288 100644 --- a/tools/eslint/node_modules/generate-function/package.json +++ b/tools/eslint/node_modules/generate-function/package.json @@ -1,62 +1,39 @@ { - "_args": [ - [ - { - "raw": "generate-function@^2.0.0", - "scope": null, - "escapedName": "generate-function", - "name": "generate-function", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-my-json-valid" - ] - ], - "_from": "generate-function@>=2.0.0 <3.0.0", + "_from": "generate-function@^2.0.0", "_id": "generate-function@2.0.0", - "_inCache": true, - "_location": "/generate-function", - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - "_npmVersion": "1.4.23", + "_inBundle": false, + "_integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "_location": "/eslint/generate-function", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "generate-function@^2.0.0", - "scope": null, - "escapedName": "generate-function", "name": "generate-function", + "escapedName": "generate-function", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/is-my-json-valid" + "/eslint/is-my-json-valid" ], "_resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "_shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", - "_shrinkwrap": null, "_spec": "generate-function@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/is-my-json-valid", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-my-json-valid", "author": { "name": "Mathias Buus" }, "bugs": { "url": "https://github.com/mafintosh/generate-function/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Module that helps you write generated functions in Node", "devDependencies": { "tape": "^2.13.4" }, - "directories": {}, - "dist": { - "shasum": "6858fe7c0969b7d4e9093337647ac79f60dfbe74", - "tarball": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "gitHead": "3d5fc8de5859be95f58e3af9bfb5f663edd95149", "homepage": "https://github.com/mafintosh/generate-function", "keywords": [ "generate", @@ -67,15 +44,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - } - ], "name": "generate-function", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/mafintosh/generate-function.git" diff --git a/tools/eslint/node_modules/generate-object-property/package.json b/tools/eslint/node_modules/generate-object-property/package.json index 5cea5c6a07c12a..1176846d82a003 100644 --- a/tools/eslint/node_modules/generate-object-property/package.json +++ b/tools/eslint/node_modules/generate-object-property/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "generate-object-property@^1.1.0", - "scope": null, - "escapedName": "generate-object-property", - "name": "generate-object-property", - "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-my-json-valid" - ] - ], - "_from": "generate-object-property@>=1.1.0 <2.0.0", + "_from": "generate-object-property@^1.1.0", "_id": "generate-object-property@1.2.0", - "_inCache": true, - "_location": "/generate-object-property", - "_nodeVersion": "2.0.1", - "_npmUser": { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - "_npmVersion": "2.9.0", + "_inBundle": false, + "_integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "_location": "/eslint/generate-object-property", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "generate-object-property@^1.1.0", - "scope": null, - "escapedName": "generate-object-property", "name": "generate-object-property", + "escapedName": "generate-object-property", "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.1.0" }, "_requiredBy": [ - "/is-my-json-valid" + "/eslint/is-my-json-valid" ], "_resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "_shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", - "_shrinkwrap": null, "_spec": "generate-object-property@^1.1.0", - "_where": "/Users/trott/io.js/tools/node_modules/is-my-json-valid", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-my-json-valid", "author": { "name": "Mathias Buus", "url": "@mafintosh" @@ -48,31 +29,19 @@ "bugs": { "url": "https://github.com/mafintosh/generate-object-property/issues" }, + "bundleDependencies": false, "dependencies": { "is-property": "^1.0.0" }, + "deprecated": false, "description": "Generate safe JS code that can used to reference a object property", "devDependencies": { "tape": "^2.13.0" }, - "directories": {}, - "dist": { - "shasum": "9c0e1c40308ce804f4783618b937fa88f99d50d0", - "tarball": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "gitHead": "0dd7d411018de54b2eae63b424c15b3e50bd678c", "homepage": "https://github.com/mafintosh/generate-object-property", "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - } - ], "name": "generate-object-property", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/mafintosh/generate-object-property.git" diff --git a/tools/eslint/node_modules/glob/package.json b/tools/eslint/node_modules/glob/package.json index 9bb1ffff6be590..33cdc54fca9466 100644 --- a/tools/eslint/node_modules/glob/package.json +++ b/tools/eslint/node_modules/glob/package.json @@ -1,52 +1,29 @@ { - "_args": [ - [ - { - "raw": "glob@^7.1.2", - "scope": null, - "escapedName": "glob", - "name": "glob", - "rawSpec": "^7.1.2", - "spec": ">=7.1.2 <8.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "glob@>=7.1.2 <8.0.0", + "_from": "glob@^7.1.2", "_id": "glob@7.1.2", - "_inCache": true, - "_location": "/glob", - "_nodeVersion": "8.0.0-pre", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/glob-7.1.2.tgz_1495224925341_0.07115248567424715" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "5.0.0-beta.56", + "_inBundle": false, + "_integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "_location": "/eslint/glob", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "glob@^7.1.2", - "scope": null, - "escapedName": "glob", "name": "glob", + "escapedName": "glob", "rawSpec": "^7.1.2", - "spec": ">=7.1.2 <8.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^7.1.2" }, "_requiredBy": [ "/eslint", - "/globby", - "/rimraf" + "/eslint/globby", + "/eslint/rimraf" ], "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "_shasum": "c19c9df9a028702d678612384a6552404c636d15", - "_shrinkwrap": null, "_spec": "glob@^7.1.2", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -55,6 +32,7 @@ "bugs": { "url": "https://github.com/isaacs/node-glob/issues" }, + "bundleDependencies": false, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -63,6 +41,7 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, + "deprecated": false, "description": "a little globber", "devDependencies": { "mkdirp": "0", @@ -70,12 +49,6 @@ "tap": "^7.1.2", "tick": "0.0.6" }, - "directories": {}, - "dist": { - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "shasum": "c19c9df9a028702d678612384a6552404c636d15", - "tarball": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" - }, "engines": { "node": "*" }, @@ -84,19 +57,10 @@ "sync.js", "common.js" ], - "gitHead": "8fa8d561e08c9eed1d286c6a35be2cd8123b2fb7", "homepage": "https://github.com/isaacs/node-glob#readme", "license": "ISC", "main": "glob.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "glob", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/node-glob.git" diff --git a/tools/eslint/node_modules/globals/package.json b/tools/eslint/node_modules/globals/package.json index 80ef988ceab534..97b4aa730a7322 100644 --- a/tools/eslint/node_modules/globals/package.json +++ b/tools/eslint/node_modules/globals/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "globals@^9.17.0", - "scope": null, - "escapedName": "globals", - "name": "globals", - "rawSpec": "^9.17.0", - "spec": ">=9.17.0 <10.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "globals@>=9.17.0 <10.0.0", + "_from": "globals@^9.17.0", "_id": "globals@9.18.0", - "_inCache": true, - "_location": "/globals", - "_nodeVersion": "8.0.0", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/globals-9.18.0.tgz_1496827524121_0.8153965487144887" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "5.0.0", + "_inBundle": false, + "_integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "_location": "/eslint/globals", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "globals@^9.17.0", - "scope": null, - "escapedName": "globals", "name": "globals", + "escapedName": "globals", "rawSpec": "^9.17.0", - "spec": ">=9.17.0 <10.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^9.17.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "_shasum": "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a", - "_shrinkwrap": null, "_spec": "globals@^9.17.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,17 +30,12 @@ "bugs": { "url": "https://github.com/sindresorhus/globals/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Global identifiers from different JavaScript environments", "devDependencies": { "mocha": "*" }, - "directories": {}, - "dist": { - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "shasum": "aa3896b3e69b487f17e31ed2143d69a8e30c2d8a", - "tarball": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" - }, "engines": { "node": ">=0.10.0" }, @@ -71,7 +43,6 @@ "index.js", "globals.json" ], - "gitHead": "09ba8754235e5953507b8d0543d65098bc7bb78d", "homepage": "https://github.com/sindresorhus/globals#readme", "keywords": [ "globals", @@ -84,27 +55,7 @@ "environments" ], "license": "MIT", - "maintainers": [ - { - "name": "byk", - "email": "ben@byk.im" - }, - { - "name": "lo1tuma", - "email": "schreck.mathias@gmail.com" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "globals", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/globals.git" diff --git a/tools/eslint/node_modules/globby/package.json b/tools/eslint/node_modules/globby/package.json index ebb39df2a887f8..7d089f8ff255cf 100644 --- a/tools/eslint/node_modules/globby/package.json +++ b/tools/eslint/node_modules/globby/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "globby@^5.0.0", - "scope": null, - "escapedName": "globby", - "name": "globby", - "rawSpec": "^5.0.0", - "spec": ">=5.0.0 <6.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "globby@>=5.0.0 <6.0.0", + "_from": "globby@^5.0.0", "_id": "globby@5.0.0", - "_inCache": true, - "_location": "/globby", - "_nodeVersion": "5.11.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/globby-5.0.0.tgz_1465626598422_0.48254713881760836" - }, - "_npmUser": { - "name": "ult_combo", - "email": "ult_combo@hotmail.com" - }, - "_npmVersion": "3.7.5", + "_inBundle": false, + "_integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "_location": "/eslint/globby", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "globby@^5.0.0", - "scope": null, - "escapedName": "globby", "name": "globby", + "escapedName": "globby", "rawSpec": "^5.0.0", - "spec": ">=5.0.0 <6.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^5.0.0" }, "_requiredBy": [ - "/del" + "/eslint/del" ], "_resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "_shasum": "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d", - "_shrinkwrap": null, "_spec": "globby@^5.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/sindresorhus/globby/issues" }, + "bundleDependencies": false, "dependencies": { "array-union": "^1.0.1", "arrify": "^1.0.0", @@ -61,6 +39,7 @@ "pify": "^2.0.0", "pinkie-promise": "^2.0.0" }, + "deprecated": false, "description": "Extends `glob` with support for multiple patterns and exposes a Promise API", "devDependencies": { "ava": "*", @@ -70,18 +49,12 @@ "rimraf": "^2.2.8", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "ebd84667ca0dbb330b99bcfc68eac2bc54370e0d", - "tarball": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "2cb6d1f112407b3eca42ac87c810e7715189e708", "homepage": "https://github.com/sindresorhus/globby#readme", "keywords": [ "all", @@ -116,23 +89,7 @@ "promise" ], "license": "MIT", - "maintainers": [ - { - "name": "schnittstabil", - "email": "michael@schnittstabil.de" - }, - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "ult_combo", - "email": "ultcombo@gmail.com" - } - ], "name": "globby", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/globby.git" diff --git a/tools/eslint/node_modules/graceful-fs/package.json b/tools/eslint/node_modules/graceful-fs/package.json index 65b1921ea99bfa..139d3220bca756 100644 --- a/tools/eslint/node_modules/graceful-fs/package.json +++ b/tools/eslint/node_modules/graceful-fs/package.json @@ -1,54 +1,32 @@ { - "_args": [ - [ - { - "raw": "graceful-fs@^4.1.2", - "scope": null, - "escapedName": "graceful-fs", - "name": "graceful-fs", - "rawSpec": "^4.1.2", - "spec": ">=4.1.2 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/flat-cache" - ] - ], - "_from": "graceful-fs@>=4.1.2 <5.0.0", + "_from": "graceful-fs@^4.1.2", "_id": "graceful-fs@4.1.11", - "_inCache": true, - "_location": "/graceful-fs", - "_nodeVersion": "6.5.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/graceful-fs-4.1.11.tgz_1479843029430_0.2122855328489095" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.9", + "_inBundle": false, + "_integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "_location": "/eslint/graceful-fs", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "graceful-fs@^4.1.2", - "scope": null, - "escapedName": "graceful-fs", "name": "graceful-fs", + "escapedName": "graceful-fs", "rawSpec": "^4.1.2", - "spec": ">=4.1.2 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.1.2" }, "_requiredBy": [ - "/flat-cache" + "/eslint/flat-cache" ], "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", - "_shrinkwrap": null, "_spec": "graceful-fs@^4.1.2", - "_where": "/Users/trott/io.js/tools/node_modules/flat-cache", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "A drop-in replacement for fs, making various improvements.", "devDependencies": { "mkdirp": "^0.5.0", @@ -58,10 +36,6 @@ "directories": { "test": "test" }, - "dist": { - "shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658", - "tarball": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - }, "engines": { "node": ">=0.4.0" }, @@ -71,7 +45,6 @@ "legacy-streams.js", "polyfills.js" ], - "gitHead": "65cf80d1fd3413b823c16c626c1e7c326452bee5", "homepage": "https://github.com/isaacs/node-graceful-fs#readme", "keywords": [ "fs", @@ -91,15 +64,7 @@ ], "license": "ISC", "main": "graceful-fs.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "graceful-fs", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/isaacs/node-graceful-fs.git" diff --git a/tools/eslint/node_modules/has-ansi/package.json b/tools/eslint/node_modules/has-ansi/package.json index ea99179f800e54..d16ad10459b4bf 100644 --- a/tools/eslint/node_modules/has-ansi/package.json +++ b/tools/eslint/node_modules/has-ansi/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "has-ansi@^2.0.0", - "scope": null, - "escapedName": "has-ansi", - "name": "has-ansi", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/chalk" - ] - ], - "_from": "has-ansi@>=2.0.0 <3.0.0", + "_from": "has-ansi@^2.0.0", "_id": "has-ansi@2.0.0", - "_inCache": true, - "_location": "/has-ansi", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.11.2", + "_inBundle": false, + "_integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "_location": "/eslint/has-ansi", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "has-ansi@^2.0.0", - "scope": null, - "escapedName": "has-ansi", "name": "has-ansi", + "escapedName": "has-ansi", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/chalk" + "/eslint/chalk" ], "_resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "_shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "_shrinkwrap": null, "_spec": "has-ansi@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/chalk", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/chalk", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -49,26 +30,22 @@ "bugs": { "url": "https://github.com/sindresorhus/has-ansi/issues" }, + "bundleDependencies": false, "dependencies": { "ansi-regex": "^2.0.0" }, + "deprecated": false, "description": "Check if a string has ANSI escape codes", "devDependencies": { "ava": "0.0.4" }, - "directories": {}, - "dist": { - "shasum": "34f5049ce1ecdf2b0649af3ef24e45ed35416d91", - "tarball": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "0722275e1bef139fcd09137da6e5550c3cd368b9", - "homepage": "https://github.com/sindresorhus/has-ansi", + "homepage": "https://github.com/sindresorhus/has-ansi#readme", "keywords": [ "ansi", "styles", @@ -96,17 +73,17 @@ "license": "MIT", "maintainers": [ { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" }, { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" } ], "name": "has-ansi", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/has-ansi.git" diff --git a/tools/eslint/node_modules/has/.jshintrc b/tools/eslint/node_modules/has/.jshintrc deleted file mode 100644 index 6a61a73d1147ac..00000000000000 --- a/tools/eslint/node_modules/has/.jshintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "curly": true, - "eqeqeq": true, - "immed": true, - "latedef": true, - "newcap": true, - "noarg": true, - "sub": true, - "undef": true, - "boss": true, - "eqnull": true, - "node": true, - "browser": true -} \ No newline at end of file diff --git a/tools/eslint/node_modules/has/.npmignore b/tools/eslint/node_modules/has/.npmignore deleted file mode 100644 index 8419859fd3b7a0..00000000000000 --- a/tools/eslint/node_modules/has/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules/ -*.log -*~ diff --git a/tools/eslint/node_modules/has/package.json b/tools/eslint/node_modules/has/package.json index 390f6fd1a613b4..5277c626029aa2 100644 --- a/tools/eslint/node_modules/has/package.json +++ b/tools/eslint/node_modules/has/package.json @@ -1,48 +1,27 @@ { - "_args": [ - [ - { - "raw": "has@^1.0.1", - "scope": null, - "escapedName": "has", - "name": "has", - "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/parse-entities" - ] - ], - "_from": "has@>=1.0.1 <2.0.0", + "_from": "has@^1.0.1", "_id": "has@1.0.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", "_location": "/has", - "_nodeVersion": "2.2.1", - "_npmUser": { - "name": "tarruda", - "email": "tpadilha84@gmail.com" - }, - "_npmVersion": "2.11.0", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "has@^1.0.1", - "scope": null, - "escapedName": "has", "name": "has", + "escapedName": "has", "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.1" }, "_requiredBy": [ - "/parse-entities", - "/stringify-entities", "/unified" ], "_resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "_shasum": "8461733f538b0837c9361e39a9ab9e9704dc2f28", - "_shrinkwrap": null, "_spec": "has@^1.0.1", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/parse-entities", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Thiago de Arruda", "email": "tpadilha84@gmail.com" @@ -50,23 +29,19 @@ "bugs": { "url": "https://github.com/tarruda/has/issues" }, + "bundleDependencies": false, "dependencies": { "function-bind": "^1.0.2" }, + "deprecated": false, "description": "Object.prototype.hasOwnProperty.call shortcut", "devDependencies": { "chai": "~1.7.2", "mocha": "^1.21.4" }, - "directories": {}, - "dist": { - "shasum": "8461733f538b0837c9361e39a9ab9e9704dc2f28", - "tarball": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" - }, "engines": { "node": ">= 0.8.0" }, - "gitHead": "535c5c8ed1dc255c9e223829e702548dd514d2a5", "homepage": "https://github.com/tarruda/has", "licenses": [ { @@ -75,15 +50,7 @@ } ], "main": "./src/index", - "maintainers": [ - { - "name": "tarruda", - "email": "tpadilha84@gmail.com" - } - ], "name": "has", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/tarruda/has.git" diff --git a/tools/eslint/node_modules/has/test/.jshintrc b/tools/eslint/node_modules/has/test/.jshintrc deleted file mode 100644 index e1da2e42aba02b..00000000000000 --- a/tools/eslint/node_modules/has/test/.jshintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "globals": { - "expect": false, - "run": false - }, - "expr": true -} \ No newline at end of file diff --git a/tools/eslint/node_modules/has/test/index.js b/tools/eslint/node_modules/has/test/index.js deleted file mode 100644 index 38909b0a3ff2eb..00000000000000 --- a/tools/eslint/node_modules/has/test/index.js +++ /dev/null @@ -1,10 +0,0 @@ -global.expect = require('chai').expect; -var has = require('../src'); - - -describe('has', function() { - it('works!', function() { - expect(has({}, 'hasOwnProperty')).to.be.false; - expect(has(Object.prototype, 'hasOwnProperty')).to.be.true; - }); -}); diff --git a/tools/eslint/node_modules/iconv-lite/encodings/internal.js b/tools/eslint/node_modules/iconv-lite/encodings/internal.js index cea067c17d7234..4223a980fabcac 100644 --- a/tools/eslint/node_modules/iconv-lite/encodings/internal.js +++ b/tools/eslint/node_modules/iconv-lite/encodings/internal.js @@ -35,7 +35,7 @@ function InternalCodec(codecOptions, iconv) { this.encoder = InternalEncoderCesu8; // Add decoder for versions of Node not supporting CESU-8 - if (new Buffer("eda080", 'hex').toString().length == 3) { + if (new Buffer('eda0bdedb2a9', 'hex').toString() !== '💩') { this.decoder = InternalDecoderCesu8; this.defaultCharUnicode = iconv.defaultCharUnicode; } diff --git a/tools/eslint/node_modules/iconv-lite/package.json b/tools/eslint/node_modules/iconv-lite/package.json index 8c74145b762e90..83de435d197618 100644 --- a/tools/eslint/node_modules/iconv-lite/package.json +++ b/tools/eslint/node_modules/iconv-lite/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "iconv-lite@^0.4.17", - "scope": null, - "escapedName": "iconv-lite", - "name": "iconv-lite", - "rawSpec": "^0.4.17", - "spec": ">=0.4.17 <0.5.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/external-editor" - ] - ], - "_from": "iconv-lite@>=0.4.17 <0.5.0", - "_id": "iconv-lite@0.4.17", - "_inCache": true, - "_location": "/iconv-lite", - "_nodeVersion": "6.10.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/iconv-lite-0.4.17.tgz_1493615411939_0.8651245310902596" - }, - "_npmUser": { - "name": "ashtuchkin", - "email": "ashtuchkin@gmail.com" - }, - "_npmVersion": "3.10.10", + "_from": "iconv-lite@^0.4.17", + "_id": "iconv-lite@0.4.18", + "_inBundle": false, + "_integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "_location": "/eslint/iconv-lite", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "iconv-lite@^0.4.17", - "scope": null, - "escapedName": "iconv-lite", "name": "iconv-lite", + "escapedName": "iconv-lite", "rawSpec": "^0.4.17", - "spec": ">=0.4.17 <0.5.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.4.17" }, "_requiredBy": [ - "/external-editor" + "/eslint/external-editor" ], - "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz", - "_shasum": "4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "_shasum": "23d8656b16aae6742ac29732ea8f0336a4789cf2", "_spec": "iconv-lite@^0.4.17", - "_where": "/Users/trott/io.js/tools/node_modules/external-editor", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/external-editor", "author": { "name": "Alexander Shtuchkin", "email": "ashtuchkin@gmail.com" @@ -56,6 +33,7 @@ "bugs": { "url": "https://github.com/ashtuchkin/iconv-lite/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Jinwu Zhan", @@ -106,7 +84,7 @@ "url": "https://github.com/nleush" } ], - "dependencies": {}, + "deprecated": false, "description": "Convert character encodings in pure javascript.", "devDependencies": { "async": "*", @@ -118,15 +96,9 @@ "semver": "*", "unorm": "*" }, - "directories": {}, - "dist": { - "shasum": "4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d", - "tarball": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz" - }, "engines": { "node": ">=0.10.0" }, - "gitHead": "64d1e3d7403bbb5414966de83d325419e7ea14e2", "homepage": "https://github.com/ashtuchkin/iconv-lite", "keywords": [ "iconv", @@ -136,15 +108,7 @@ ], "license": "MIT", "main": "./lib/index.js", - "maintainers": [ - { - "name": "ashtuchkin", - "email": "ashtuchkin@gmail.com" - } - ], "name": "iconv-lite", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/ashtuchkin/iconv-lite.git" @@ -155,5 +119,5 @@ "test": "mocha --reporter spec --grep ." }, "typings": "./lib/index.d.ts", - "version": "0.4.17" + "version": "0.4.18" } diff --git a/tools/eslint/node_modules/ignore/package.json b/tools/eslint/node_modules/ignore/package.json index 786b9f675ab061..157f6ffde16297 100644 --- a/tools/eslint/node_modules/ignore/package.json +++ b/tools/eslint/node_modules/ignore/package.json @@ -1,57 +1,35 @@ { - "_args": [ - [ - { - "raw": "ignore@^3.3.3", - "scope": null, - "escapedName": "ignore", - "name": "ignore", - "rawSpec": "^3.3.3", - "spec": ">=3.3.3 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "ignore@>=3.3.3 <4.0.0", + "_from": "ignore@^3.3.3", "_id": "ignore@3.3.3", - "_inCache": true, - "_location": "/ignore", - "_nodeVersion": "7.10.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/ignore-3.3.3.tgz_1495192478088_0.7693700036033988" - }, - "_npmUser": { - "name": "kael", - "email": "i@kael.me" - }, - "_npmVersion": "4.2.0", + "_inBundle": false, + "_integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=", + "_location": "/eslint/ignore", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "ignore@^3.3.3", - "scope": null, - "escapedName": "ignore", "name": "ignore", + "escapedName": "ignore", "rawSpec": "^3.3.3", - "spec": ">=3.3.3 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.3.3" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", "_shasum": "432352e57accd87ab3110e82d3fea0e47812156d", - "_shrinkwrap": null, "_spec": "ignore@^3.3.3", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "kael" }, "bugs": { "url": "https://github.com/kaelzhang/node-ignore/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Ignore is a manager and filter for .gitignore rules.", "devDependencies": { "chai": "~1.7.2", @@ -59,17 +37,11 @@ "istanbul": "^0.4.5", "mocha": "~1.13.0" }, - "directories": {}, - "dist": { - "shasum": "432352e57accd87ab3110e82d3fea0e47812156d", - "tarball": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz" - }, "files": [ "ignore.js", "index.d.ts", "LICENSE-MIT" ], - "gitHead": "fc1aacc4d3a72c1f5f3fa5e9aadc12a14a382db4", "homepage": "https://github.com/kaelzhang/node-ignore#readme", "keywords": [ "ignore", @@ -88,15 +60,7 @@ ], "license": "MIT", "main": "./ignore.js", - "maintainers": [ - { - "name": "kael", - "email": "i@kael.me" - } - ], "name": "ignore", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/kaelzhang/node-ignore.git" diff --git a/tools/eslint/node_modules/imurmurhash/package.json b/tools/eslint/node_modules/imurmurhash/package.json index 729e78c5e03123..a26cadb571f623 100644 --- a/tools/eslint/node_modules/imurmurhash/package.json +++ b/tools/eslint/node_modules/imurmurhash/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "imurmurhash@^0.1.4", - "scope": null, - "escapedName": "imurmurhash", - "name": "imurmurhash", - "rawSpec": "^0.1.4", - "spec": ">=0.1.4 <0.2.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "imurmurhash@>=0.1.4 <0.2.0", + "_from": "imurmurhash@^0.1.4", "_id": "imurmurhash@0.1.4", - "_inCache": true, - "_location": "/imurmurhash", - "_npmUser": { - "name": "jensyt", - "email": "jensyt@gmail.com" - }, - "_npmVersion": "1.3.2", + "_inBundle": false, + "_integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "_location": "/eslint/imurmurhash", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "imurmurhash@^0.1.4", - "scope": null, - "escapedName": "imurmurhash", "name": "imurmurhash", + "escapedName": "imurmurhash", "rawSpec": "^0.1.4", - "spec": ">=0.1.4 <0.2.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.1.4" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "_shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "_shrinkwrap": null, "_spec": "imurmurhash@^0.1.4", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Jens Taylor", "email": "jensyt@gmail.com", @@ -48,14 +30,11 @@ "bugs": { "url": "https://github.com/jensyt/imurmurhash-js/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "An incremental implementation of MurmurHash3", "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea", - "tarball": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - }, "engines": { "node": ">=0.8.19" }, @@ -75,16 +54,7 @@ ], "license": "MIT", "main": "imurmurhash.js", - "maintainers": [ - { - "name": "jensyt", - "email": "jensyt@gmail.com" - } - ], "name": "imurmurhash", - "optionalDependencies": {}, - "readme": "iMurmurHash.js\n==============\n\nAn incremental implementation of the MurmurHash3 (32-bit) hashing algorithm for JavaScript based on [Gary Court's implementation](https://github.com/garycourt/murmurhash-js) with [kazuyukitanimura's modifications](https://github.com/kazuyukitanimura/murmurhash-js).\n\nThis version works significantly faster than the non-incremental version if you need to hash many small strings into a single hash, since string concatenation (to build the single string to pass the non-incremental version) is fairly costly. In one case tested, using the incremental version was about 50% faster than concatenating 5-10 strings and then hashing.\n\nInstallation\n------------\n\nTo use iMurmurHash in the browser, [download the latest version](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) and include it as a script on your site.\n\n```html\n\n\n```\n\n---\n\nTo use iMurmurHash in Node.js, install the module using NPM:\n\n```bash\nnpm install imurmurhash\n```\n\nThen simply include it in your scripts:\n\n```javascript\nMurmurHash3 = require('imurmurhash');\n```\n\nQuick Example\n-------------\n\n```javascript\n// Create the initial hash\nvar hashState = MurmurHash3('string');\n\n// Incrementally add text\nhashState.hash('more strings');\nhashState.hash('even more strings');\n\n// All calls can be chained if desired\nhashState.hash('and').hash('some').hash('more');\n\n// Get a result\nhashState.result();\n// returns 0xe4ccfe6b\n```\n\nFunctions\n---------\n\n### MurmurHash3 ([string], [seed])\nGet a hash state object, optionally initialized with the given _string_ and _seed_. _Seed_ must be a positive integer if provided. Calling this function without the `new` keyword will return a cached state object that has been reset. This is safe to use as long as the object is only used from a single thread and no other hashes are created while operating on this one. If this constraint cannot be met, you can use `new` to create a new state object. For example:\n\n```javascript\n// Use the cached object, calling the function again will return the same\n// object (but reset, so the current state would be lost)\nhashState = MurmurHash3();\n...\n\n// Create a new object that can be safely used however you wish. Calling the\n// function again will simply return a new state object, and no state loss\n// will occur, at the cost of creating more objects.\nhashState = new MurmurHash3();\n```\n\nBoth methods can be mixed however you like if you have different use cases.\n\n---\n\n### MurmurHash3.prototype.hash (string)\nIncrementally add _string_ to the hash. This can be called as many times as you want for the hash state object, including after a call to `result()`. Returns `this` so calls can be chained.\n\n---\n\n### MurmurHash3.prototype.result ()\nGet the result of the hash as a 32-bit positive integer. This performs the tail and finalizer portions of the algorithm, but does not store the result in the state object. This means that it is perfectly safe to get results and then continue adding strings via `hash`.\n\n```javascript\n// Do the whole string at once\nMurmurHash3('this is a test string').result();\n// 0x70529328\n\n// Do part of the string, get a result, then the other part\nvar m = MurmurHash3('this is a');\nm.result();\n// 0xbfc4f834\nm.hash(' test string').result();\n// 0x70529328 (same as above)\n```\n\n---\n\n### MurmurHash3.prototype.reset ([seed])\nReset the state object for reuse, optionally using the given _seed_ (defaults to 0 like the constructor). Returns `this` so calls can be chained.\n\n---\n\nLicense (MIT)\n-------------\nCopyright (c) 2013 Gary Court, Jens Taylor\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n", - "readmeFilename": "README.md", "repository": { "type": "git", "url": "git+https://github.com/jensyt/imurmurhash-js.git" diff --git a/tools/eslint/node_modules/inflight/package.json b/tools/eslint/node_modules/inflight/package.json index 3fecb6edd93a03..3e010604e7064b 100644 --- a/tools/eslint/node_modules/inflight/package.json +++ b/tools/eslint/node_modules/inflight/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "inflight@^1.0.4", - "scope": null, - "escapedName": "inflight", - "name": "inflight", - "rawSpec": "^1.0.4", - "spec": ">=1.0.4 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/glob" - ] - ], - "_from": "inflight@>=1.0.4 <2.0.0", + "_from": "inflight@^1.0.4", "_id": "inflight@1.0.6", - "_inCache": true, - "_location": "/inflight", - "_nodeVersion": "6.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inflight-1.0.6.tgz_1476330807696_0.10388551792129874" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.7", + "_inBundle": false, + "_integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "_location": "/eslint/inflight", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "inflight@^1.0.4", - "scope": null, - "escapedName": "inflight", "name": "inflight", + "escapedName": "inflight", "rawSpec": "^1.0.4", - "spec": ">=1.0.4 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.4" }, "_requiredBy": [ - "/glob" + "/eslint/glob" ], "_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "_shrinkwrap": null, "_spec": "inflight@^1.0.4", - "_where": "/Users/trott/io.js/tools/node_modules/glob", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -53,47 +30,23 @@ "bugs": { "url": "https://github.com/isaacs/inflight/issues" }, + "bundleDependencies": false, "dependencies": { "once": "^1.3.0", "wrappy": "1" }, + "deprecated": false, "description": "Add callbacks to requests in flight to avoid async duplication", "devDependencies": { "tap": "^7.1.2" }, - "directories": {}, - "dist": { - "shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9", - "tarball": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - }, "files": [ "inflight.js" ], - "gitHead": "a547881738c8f57b27795e584071d67cf6ac1a57", "homepage": "https://github.com/isaacs/inflight", "license": "ISC", "main": "inflight.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], "name": "inflight", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/npm/inflight.git" diff --git a/tools/eslint/node_modules/inherits/package.json b/tools/eslint/node_modules/inherits/package.json index b7271ca9ce0927..32a17b952efca7 100644 --- a/tools/eslint/node_modules/inherits/package.json +++ b/tools/eslint/node_modules/inherits/package.json @@ -1,71 +1,43 @@ { - "_args": [ - [ - { - "raw": "inherits@^2.0.3", - "scope": null, - "escapedName": "inherits", - "name": "inherits", - "rawSpec": "^2.0.3", - "spec": ">=2.0.3 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/concat-stream" - ] - ], - "_from": "inherits@>=2.0.3 <3.0.0", + "_from": "inherits@^2.0.3", "_id": "inherits@2.0.3", - "_inCache": true, - "_location": "/inherits", - "_nodeVersion": "6.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/inherits-2.0.3.tgz_1473295776489_0.08142363070510328" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.7", + "_inBundle": false, + "_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "_location": "/eslint/inherits", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "inherits@^2.0.3", - "scope": null, - "escapedName": "inherits", "name": "inherits", + "escapedName": "inherits", "rawSpec": "^2.0.3", - "spec": ">=2.0.3 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.3" }, "_requiredBy": [ - "/concat-stream", - "/glob", - "/readable-stream" + "/eslint/concat-stream", + "/eslint/glob", + "/eslint/readable-stream" ], "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "_shasum": "633c2c83e3da42a502f52466022480f4208261de", - "_shrinkwrap": null, "_spec": "inherits@^2.0.3", - "_where": "/Users/trott/io.js/tools/node_modules/concat-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/concat-stream", "browser": "./inherits_browser.js", "bugs": { "url": "https://github.com/isaacs/inherits/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", "devDependencies": { "tap": "^7.1.0" }, - "directories": {}, - "dist": { - "shasum": "633c2c83e3da42a502f52466022480f4208261de", - "tarball": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, "files": [ "inherits.js", "inherits_browser.js" ], - "gitHead": "e05d0fb27c61a3ec687214f0476386b765364d5f", "homepage": "https://github.com/isaacs/inherits#readme", "keywords": [ "inheritance", @@ -79,15 +51,7 @@ ], "license": "ISC", "main": "./inherits.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "inherits", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/inherits.git" diff --git a/tools/eslint/node_modules/inquirer/lib/prompts/password.js b/tools/eslint/node_modules/inquirer/lib/prompts/password.js index cc93d4fd637855..2a9a5e2e6a2109 100644 --- a/tools/eslint/node_modules/inquirer/lib/prompts/password.js +++ b/tools/eslint/node_modules/inquirer/lib/prompts/password.js @@ -108,13 +108,8 @@ Prompt.prototype.onEnd = function (state) { Prompt.prototype.onError = function (state) { this.render(state.isValid); - this.rl.output.unmute(); }; -/** - * When user type - */ - Prompt.prototype.onKeypress = function () { this.render(); }; diff --git a/tools/eslint/node_modules/inquirer/package.json b/tools/eslint/node_modules/inquirer/package.json index 67691b285e1aca..fb4453c7fdfeec 100644 --- a/tools/eslint/node_modules/inquirer/package.json +++ b/tools/eslint/node_modules/inquirer/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "inquirer@^3.0.6", - "scope": null, - "escapedName": "inquirer", - "name": "inquirer", - "rawSpec": "^3.0.6", - "spec": ">=3.0.6 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "inquirer@>=3.0.6 <4.0.0", - "_id": "inquirer@3.1.0", - "_inCache": true, - "_location": "/inquirer", - "_nodeVersion": "8.0.0", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/inquirer-3.1.0.tgz_1496835884412_0.5553199897985905" - }, - "_npmUser": { - "name": "sboudrias", - "email": "admin@simonboudrias.com" - }, - "_npmVersion": "5.0.1", + "_from": "inquirer@^3.0.6", + "_id": "inquirer@3.1.1", + "_inBundle": false, + "_integrity": "sha512-H50sHQwgvvaTBd3HpKMVtL/u6LoHDvYym51gd7bGQe/+9HkCE+J0/3N5FJLfd6O6oz44hHewC2Pc2LodzWVafQ==", + "_location": "/eslint/inquirer", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "inquirer@^3.0.6", - "scope": null, - "escapedName": "inquirer", "name": "inquirer", + "escapedName": "inquirer", "rawSpec": "^3.0.6", - "spec": ">=3.0.6 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.0.6" }, "_requiredBy": [ "/eslint" ], - "_resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.0.tgz", - "_shasum": "e05400d48b94937c2d3caa7038663ba9189aab01", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.1.tgz", + "_shasum": "87621c4fba4072f48a8dd71c9f9df6f100b2d534", "_spec": "inquirer@^3.0.6", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Simon Boudrias", "email": "admin@simonboudrias.com" @@ -52,6 +29,7 @@ "bugs": { "url": "https://github.com/SBoudrias/Inquirer.js/issues" }, + "bundleDependencies": false, "dependencies": { "ansi-escapes": "^2.0.0", "chalk": "^1.0.0", @@ -68,56 +46,30 @@ "strip-ansi": "^3.0.0", "through": "^2.3.6" }, + "deprecated": false, "description": "A collection of common interactive command line user interfaces.", "devDependencies": { "chai": "^4.0.1", "cmdify": "^0.0.4", - "eslint": "^3.19.0", + "eslint": "^4.0.0", "eslint-config-xo-space": "^0.16.0", "gulp": "^3.9.0", + "gulp-codacy": "^1.0.0", "gulp-coveralls": "^0.1.0", - "gulp-eslint": "^3.0.1", + "gulp-eslint": "^4.0.0", "gulp-exclude-gitignore": "^1.0.0", - "gulp-istanbul": "^1.1.1", + "gulp-istanbul": "^1.1.2", "gulp-line-ending-corrector": "^1.0.1", "gulp-mocha": "^3.0.0", "gulp-nsp": "^2.1.0", "gulp-plumber": "^1.0.0", "mocha": "^3.4.2", "mockery": "^2.0.0", - "sinon": "^2.3.2" - }, - "directories": {}, - "dist": { - "integrity": "sha512-JLl89yPOEoGohLjeGs3XCekeovADbrEw/WRJQYgPED6zeJWrpIsY9i9/rn+VltZox/9w94lVYqo94QfEmniB1w==", - "shasum": "e05400d48b94937c2d3caa7038663ba9189aab01", - "tarball": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.0.tgz" - }, - "eslintConfig": { - "extends": "xo-space", - "env": { - "mocha": true - }, - "rules": { - "quotes": [ - "error", - "single" - ], - "no-multi-assign": "off", - "capitalized-comments": "off", - "no-unused-expressions": "off", - "handle-callback-err": "off", - "no-eq-null": "off", - "eqeqeq": [ - "error", - "allow-null" - ] - } + "sinon": "^2.3.4" }, "files": [ "lib" ], - "gitHead": "e612cc5ad66dabead572cebb3b2bf6238e1112f5", "homepage": "https://github.com/SBoudrias/Inquirer.js#readme", "keywords": [ "command", @@ -129,19 +81,7 @@ ], "license": "MIT", "main": "lib/inquirer.js", - "maintainers": [ - { - "name": "mischah", - "email": "mail@michael-kuehnel.de" - }, - { - "name": "sboudrias", - "email": "admin@simonboudrias.com" - } - ], "name": "inquirer", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/SBoudrias/Inquirer.js.git" @@ -150,5 +90,5 @@ "prepublish": "gulp prepublish", "test": "gulp" }, - "version": "3.1.0" + "version": "3.1.1" } diff --git a/tools/eslint/node_modules/is-alphabetical/package.json b/tools/eslint/node_modules/is-alphabetical/package.json index bad0533cab650f..8de1e0a23ead21 100644 --- a/tools/eslint/node_modules/is-alphabetical/package.json +++ b/tools/eslint/node_modules/is-alphabetical/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-alphabetical@^1.0.0", - "scope": null, - "escapedName": "is-alphabetical", - "name": "is-alphabetical", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/is-alphanumerical" - ] - ], - "_from": "is-alphabetical@>=1.0.0 <2.0.0", + "_from": "is-alphabetical@^1.0.0", "_id": "is-alphabetical@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-4lRMEwWCVfIUTLdXBmzTNCocjEY=", "_location": "/is-alphabetical", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/is-alphabetical-1.0.0.tgz_1468271239488_0.1301835619378835" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-alphabetical@^1.0.0", - "scope": null, - "escapedName": "is-alphabetical", "name": "is-alphabetical", + "escapedName": "is-alphabetical", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/is-alphanumerical" ], "_resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.0.tgz", "_shasum": "e2544c13058255f2144cb757066cd3342a1c8c46", - "_shrinkwrap": null, "_spec": "is-alphabetical@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/is-alphanumerical", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-alphanumerical", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/is-alphabetical/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,6 +39,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Check if a character is alphabetical", "devDependencies": { "browserify": "^13.0.1", @@ -74,15 +53,9 @@ "tape": "^4.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "e2544c13058255f2144cb757066cd3342a1c8c46", - "tarball": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "b4ca77b7acee5239c6a2eaa067840bbc9e325c15", "homepage": "https://github.com/wooorm/is-alphabetical#readme", "keywords": [ "string", @@ -92,12 +65,6 @@ "alphabetical" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "is-alphabetical", "nyc": { "check-coverage": true, @@ -105,8 +72,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": [ diff --git a/tools/eslint/node_modules/is-alphanumerical/package.json b/tools/eslint/node_modules/is-alphanumerical/package.json index e4d0015790fbce..c3a48abbc8c887 100644 --- a/tools/eslint/node_modules/is-alphanumerical/package.json +++ b/tools/eslint/node_modules/is-alphanumerical/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "is-alphanumerical@^1.0.0", - "scope": null, - "escapedName": "is-alphanumerical", - "name": "is-alphanumerical", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/parse-entities" - ] - ], - "_from": "is-alphanumerical@>=1.0.0 <2.0.0", + "_from": "is-alphanumerical@^1.0.0", "_id": "is-alphanumerical@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-4GSS5xnBvxXewjnk8a9fZ7TW578=", "_location": "/is-alphanumerical", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/is-alphanumerical-1.0.0.tgz_1468317330202_0.4452017794828862" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-alphanumerical@^1.0.0", - "scope": null, - "escapedName": "is-alphanumerical", "name": "is-alphanumerical", + "escapedName": "is-alphanumerical", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/parse-entities", @@ -43,9 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.0.tgz", "_shasum": "e06492e719c1bf15dec239e4f1af5f67b4d6e7bf", - "_shrinkwrap": null, "_spec": "is-alphanumerical@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/parse-entities", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -54,6 +31,7 @@ "bugs": { "url": "https://github.com/wooorm/is-alphanumerical/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -65,6 +43,7 @@ "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" }, + "deprecated": false, "description": "Check if a character is alphanumerical", "devDependencies": { "browserify": "^13.0.1", @@ -78,15 +57,9 @@ "tape": "^4.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "e06492e719c1bf15dec239e4f1af5f67b4d6e7bf", - "tarball": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "94c7f06476ad0e5d4a6ea6ebc970ddbd4759da21", "homepage": "https://github.com/wooorm/is-alphanumerical#readme", "keywords": [ "string", @@ -98,12 +71,6 @@ "alphanumerical" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "is-alphanumerical", "nyc": { "check-coverage": true, @@ -111,8 +78,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": [ diff --git a/tools/eslint/node_modules/is-decimal/package.json b/tools/eslint/node_modules/is-decimal/package.json index ab3d518f30d2b4..80d04c1fcbe0b9 100644 --- a/tools/eslint/node_modules/is-decimal/package.json +++ b/tools/eslint/node_modules/is-decimal/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "is-decimal@^1.0.0", - "scope": null, - "escapedName": "is-decimal", - "name": "is-decimal", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/parse-entities" - ] - ], - "_from": "is-decimal@>=1.0.0 <2.0.0", + "_from": "is-decimal@^1.0.0", "_id": "is-decimal@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-lAV5tupjxigICmnmK9qIyEcLT+A=", "_location": "/is-decimal", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/is-decimal-1.0.0.tgz_1468270298791_0.2623138800263405" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-decimal@^1.0.0", - "scope": null, - "escapedName": "is-decimal", "name": "is-decimal", + "escapedName": "is-decimal", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/is-alphanumerical", @@ -43,9 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.0.tgz", "_shasum": "940579b6ea63c628080a69e62bda88c8470b4fe0", - "_shrinkwrap": null, "_spec": "is-decimal@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/parse-entities", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -54,6 +31,7 @@ "bugs": { "url": "https://github.com/wooorm/is-decimal/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -62,6 +40,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Check if a character is decimal", "devDependencies": { "browserify": "^13.0.1", @@ -75,15 +54,9 @@ "tape": "^4.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "940579b6ea63c628080a69e62bda88c8470b4fe0", - "tarball": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "6f8e012e4ff8c78ad60625a6d3d8463795318f8b", "homepage": "https://github.com/wooorm/is-decimal#readme", "keywords": [ "string", @@ -93,12 +66,6 @@ "decimal" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "is-decimal", "nyc": { "check-coverage": true, @@ -106,8 +73,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": [ diff --git a/tools/eslint/node_modules/is-fullwidth-code-point/package.json b/tools/eslint/node_modules/is-fullwidth-code-point/package.json index 32299cf945ac23..b6c462afbf54fa 100644 --- a/tools/eslint/node_modules/is-fullwidth-code-point/package.json +++ b/tools/eslint/node_modules/is-fullwidth-code-point/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-fullwidth-code-point@^2.0.0", - "scope": null, - "escapedName": "is-fullwidth-code-point", - "name": "is-fullwidth-code-point", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/string-width" - ] - ], - "_from": "is-fullwidth-code-point@>=2.0.0 <3.0.0", + "_from": "is-fullwidth-code-point@^2.0.0", "_id": "is-fullwidth-code-point@2.0.0", - "_inCache": true, - "_location": "/is-fullwidth-code-point", - "_nodeVersion": "4.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/is-fullwidth-code-point-2.0.0.tgz_1474526567505_0.299921662081033" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "3.10.7", + "_inBundle": false, + "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "_location": "/eslint/is-fullwidth-code-point", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-fullwidth-code-point@^2.0.0", - "scope": null, - "escapedName": "is-fullwidth-code-point", "name": "is-fullwidth-code-point", + "escapedName": "is-fullwidth-code-point", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/string-width" + "/eslint/string-width" ], "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f", - "_shrinkwrap": null, "_spec": "is-fullwidth-code-point@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/string-width", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/string-width", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Check if the character represented by a given Unicode code point is fullwidth", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f", - "tarball": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "e94a78056056c5546f2bf4c4cf812a2163a46dae", "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", "keywords": [ "fullwidth", @@ -90,15 +62,7 @@ "check" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "is-fullwidth-code-point", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" diff --git a/tools/eslint/node_modules/is-hexadecimal/package.json b/tools/eslint/node_modules/is-hexadecimal/package.json index 44d1639439aedb..3ff95adc60ec9e 100644 --- a/tools/eslint/node_modules/is-hexadecimal/package.json +++ b/tools/eslint/node_modules/is-hexadecimal/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "is-hexadecimal@^1.0.0", - "scope": null, - "escapedName": "is-hexadecimal", - "name": "is-hexadecimal", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/parse-entities" - ] - ], - "_from": "is-hexadecimal@>=1.0.0 <2.0.0", + "_from": "is-hexadecimal@^1.0.0", "_id": "is-hexadecimal@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-XEWXcdKvmi45Ungf1U/LG8/kETw=", "_location": "/is-hexadecimal", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/is-hexadecimal-1.0.0.tgz_1468270886225_0.06683366000652313" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-hexadecimal@^1.0.0", - "scope": null, - "escapedName": "is-hexadecimal", "name": "is-hexadecimal", + "escapedName": "is-hexadecimal", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/parse-entities", @@ -43,9 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.0.tgz", "_shasum": "5c459771d2af9a2e3952781fd54fcb1bcfe4113c", - "_shrinkwrap": null, "_spec": "is-hexadecimal@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/parse-entities", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/parse-entities", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -54,6 +31,7 @@ "bugs": { "url": "https://github.com/wooorm/is-hexadecimal/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -62,6 +40,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Check if a character is hexadecimal", "devDependencies": { "browserify": "^13.0.1", @@ -75,15 +54,9 @@ "tape": "^4.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "5c459771d2af9a2e3952781fd54fcb1bcfe4113c", - "tarball": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "52794c3658f9912104564b0851921f03a69925a3", "homepage": "https://github.com/wooorm/is-hexadecimal#readme", "keywords": [ "string", @@ -93,12 +66,6 @@ "hexadecimal" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "is-hexadecimal", "nyc": { "check-coverage": true, @@ -106,8 +73,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": [ diff --git a/tools/eslint/node_modules/is-my-json-valid/package.json b/tools/eslint/node_modules/is-my-json-valid/package.json index 77e1714681e2fb..5c9274d764a020 100644 --- a/tools/eslint/node_modules/is-my-json-valid/package.json +++ b/tools/eslint/node_modules/is-my-json-valid/package.json @@ -1,72 +1,45 @@ { - "_args": [ - [ - { - "raw": "is-my-json-valid@^2.16.0", - "scope": null, - "escapedName": "is-my-json-valid", - "name": "is-my-json-valid", - "rawSpec": "^2.16.0", - "spec": ">=2.16.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "is-my-json-valid@>=2.16.0 <3.0.0", + "_from": "is-my-json-valid@^2.16.0", "_id": "is-my-json-valid@2.16.0", - "_inCache": true, - "_location": "/is-my-json-valid", - "_nodeVersion": "7.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/is-my-json-valid-2.16.0.tgz_1488122410016_0.7586333625949919" - }, - "_npmUser": { - "name": "linusu", - "email": "linus@folkdatorn.se" - }, - "_npmVersion": "4.1.2", + "_inBundle": false, + "_integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "_location": "/eslint/is-my-json-valid", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-my-json-valid@^2.16.0", - "scope": null, - "escapedName": "is-my-json-valid", "name": "is-my-json-valid", + "escapedName": "is-my-json-valid", "rawSpec": "^2.16.0", - "spec": ">=2.16.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.16.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "_shasum": "f079dd9bfdae65ee2038aae8acbc86ab109e3693", - "_shrinkwrap": null, "_spec": "is-my-json-valid@^2.16.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Mathias Buus" }, "bugs": { "url": "https://github.com/mafintosh/is-my-json-valid/issues" }, + "bundleDependencies": false, "dependencies": { "generate-function": "^2.0.0", "generate-object-property": "^1.1.0", "jsonpointer": "^4.0.0", "xtend": "^4.0.0" }, + "deprecated": false, "description": "A JSONSchema validator that uses code generation to be extremely fast", "devDependencies": { "tape": "^2.13.4" }, - "directories": {}, - "dist": { - "shasum": "f079dd9bfdae65ee2038aae8acbc86ab109e3693", - "tarball": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz" - }, - "gitHead": "01db30a6c968bfa87f2b6e16a905e73172bc6bea", "homepage": "https://github.com/mafintosh/is-my-json-valid", "keywords": [ "json", @@ -76,39 +49,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "emilbay", - "email": "github@tixz.dk" - }, - { - "name": "emilbayes", - "email": "github@tixz.dk" - }, - { - "name": "freeall", - "email": "freeall@gmail.com" - }, - { - "name": "linusu", - "email": "linus@folkdatorn.se" - }, - { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - }, - { - "name": "watson", - "email": "w@tson.dk" - }, - { - "name": "yoshuawuyts", - "email": "i@yoshuawuyts.com" - } - ], "name": "is-my-json-valid", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/mafintosh/is-my-json-valid.git" diff --git a/tools/eslint/node_modules/is-path-cwd/package.json b/tools/eslint/node_modules/is-path-cwd/package.json index 00cb057503f380..95bceb56faeeee 100644 --- a/tools/eslint/node_modules/is-path-cwd/package.json +++ b/tools/eslint/node_modules/is-path-cwd/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-path-cwd@^1.0.0", - "scope": null, - "escapedName": "is-path-cwd", - "name": "is-path-cwd", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "is-path-cwd@>=1.0.0 <2.0.0", + "_from": "is-path-cwd@^1.0.0", "_id": "is-path-cwd@1.0.0", - "_inCache": true, - "_location": "/is-path-cwd", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "1.4.21", + "_inBundle": false, + "_integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "_location": "/eslint/is-path-cwd", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-path-cwd@^1.0.0", - "scope": null, - "escapedName": "is-path-cwd", "name": "is-path-cwd", + "escapedName": "is-path-cwd", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/del" + "/eslint/del" ], "_resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "_shasum": "d225ec23132e89edd38fda767472e62e65f1106d", - "_shrinkwrap": null, "_spec": "is-path-cwd@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -48,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/is-path-cwd/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Check if a path is CWD", "devDependencies": { "mocha": "*" }, - "directories": {}, - "dist": { - "shasum": "d225ec23132e89edd38fda767472e62e65f1106d", - "tarball": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "f71d4ecaa43bfe23c9cb35af6bf31e6b5b3f04eb", - "homepage": "https://github.com/sindresorhus/is-path-cwd", + "homepage": "https://github.com/sindresorhus/is-path-cwd#readme", "keywords": [ "path", "cwd", @@ -76,15 +53,7 @@ "folder" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "is-path-cwd", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/is-path-cwd.git" diff --git a/tools/eslint/node_modules/is-path-in-cwd/package.json b/tools/eslint/node_modules/is-path-in-cwd/package.json index ebf674ef61dfce..30d072a2ab37bf 100644 --- a/tools/eslint/node_modules/is-path-in-cwd/package.json +++ b/tools/eslint/node_modules/is-path-in-cwd/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-path-in-cwd@^1.0.0", - "scope": null, - "escapedName": "is-path-in-cwd", - "name": "is-path-in-cwd", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "is-path-in-cwd@>=1.0.0 <2.0.0", + "_from": "is-path-in-cwd@^1.0.0", "_id": "is-path-in-cwd@1.0.0", - "_inCache": true, - "_location": "/is-path-in-cwd", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "1.4.21", + "_inBundle": false, + "_integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "_location": "/eslint/is-path-in-cwd", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-path-in-cwd@^1.0.0", - "scope": null, - "escapedName": "is-path-in-cwd", "name": "is-path-in-cwd", + "escapedName": "is-path-in-cwd", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/del" + "/eslint/del" ], "_resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "_shasum": "6477582b8214d602346094567003be8a9eac04dc", - "_shrinkwrap": null, "_spec": "is-path-in-cwd@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -48,26 +30,22 @@ "bugs": { "url": "https://github.com/sindresorhus/is-path-in-cwd/issues" }, + "bundleDependencies": false, "dependencies": { "is-path-inside": "^1.0.0" }, + "deprecated": false, "description": "Check if a path is in the current working directory", "devDependencies": { "mocha": "*" }, - "directories": {}, - "dist": { - "shasum": "6477582b8214d602346094567003be8a9eac04dc", - "tarball": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "a5a2a7c967eae3f6faee9ab5e40abca6127d55de", - "homepage": "https://github.com/sindresorhus/is-path-in-cwd", + "homepage": "https://github.com/sindresorhus/is-path-in-cwd#readme", "keywords": [ "path", "cwd", @@ -80,15 +58,7 @@ "inside" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "is-path-in-cwd", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/is-path-in-cwd.git" diff --git a/tools/eslint/node_modules/is-path-inside/package.json b/tools/eslint/node_modules/is-path-inside/package.json index dea177df29c597..0b6d0786a0ff7b 100644 --- a/tools/eslint/node_modules/is-path-inside/package.json +++ b/tools/eslint/node_modules/is-path-inside/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-path-inside@^1.0.0", - "scope": null, - "escapedName": "is-path-inside", - "name": "is-path-inside", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-path-in-cwd" - ] - ], - "_from": "is-path-inside@>=1.0.0 <2.0.0", + "_from": "is-path-inside@^1.0.0", "_id": "is-path-inside@1.0.0", - "_inCache": true, - "_location": "/is-path-inside", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "1.4.21", + "_inBundle": false, + "_integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "_location": "/eslint/is-path-inside", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-path-inside@^1.0.0", - "scope": null, - "escapedName": "is-path-inside", "name": "is-path-inside", + "escapedName": "is-path-inside", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/is-path-in-cwd" + "/eslint/is-path-in-cwd" ], "_resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "_shasum": "fc06e5a1683fbda13de667aff717bbc10a48f37f", - "_shrinkwrap": null, "_spec": "is-path-inside@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/is-path-in-cwd", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-path-in-cwd", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -48,26 +30,22 @@ "bugs": { "url": "https://github.com/sindresorhus/is-path-inside/issues" }, + "bundleDependencies": false, "dependencies": { "path-is-inside": "^1.0.1" }, + "deprecated": false, "description": "Check if a path is inside another path", "devDependencies": { "mocha": "*" }, - "directories": {}, - "dist": { - "shasum": "fc06e5a1683fbda13de667aff717bbc10a48f37f", - "tarball": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "b507035b66a539b7c12ba8b6b486377aa02aef9f", - "homepage": "https://github.com/sindresorhus/is-path-inside", + "homepage": "https://github.com/sindresorhus/is-path-inside#readme", "keywords": [ "path", "inside", @@ -78,15 +56,7 @@ "resolve" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "is-path-inside", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/is-path-inside.git" diff --git a/tools/eslint/node_modules/is-promise/package.json b/tools/eslint/node_modules/is-promise/package.json index 83b30ed978ba00..f3b5559a8de558 100644 --- a/tools/eslint/node_modules/is-promise/package.json +++ b/tools/eslint/node_modules/is-promise/package.json @@ -1,76 +1,44 @@ { - "_args": [ - [ - { - "raw": "is-promise@^2.1.0", - "scope": null, - "escapedName": "is-promise", - "name": "is-promise", - "rawSpec": "^2.1.0", - "spec": ">=2.1.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/run-async" - ] - ], - "_from": "is-promise@>=2.1.0 <3.0.0", + "_from": "is-promise@^2.1.0", "_id": "is-promise@2.1.0", - "_inCache": true, - "_location": "/is-promise", - "_nodeVersion": "1.6.2", - "_npmUser": { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - }, - "_npmVersion": "2.7.1", + "_inBundle": false, + "_integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "_location": "/eslint/is-promise", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-promise@^2.1.0", - "scope": null, - "escapedName": "is-promise", "name": "is-promise", + "escapedName": "is-promise", "rawSpec": "^2.1.0", - "spec": ">=2.1.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.1.0" }, "_requiredBy": [ - "/run-async" + "/eslint/run-async" ], "_resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "_shasum": "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", - "_shrinkwrap": null, "_spec": "is-promise@^2.1.0", - "_where": "/Users/trott/io.js/tools/node_modules/run-async", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/run-async", "author": { "name": "ForbesLindesay" }, "bugs": { "url": "https://github.com/then/is-promise/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Test whether an object looks like a promises-a+ promise", "devDependencies": { "better-assert": "~0.1.0", "mocha": "~1.7.4" }, - "directories": {}, - "dist": { - "shasum": "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa", - "tarball": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - }, - "gitHead": "056f8ac12eed91886ac4f0f7d872a176f6ed698f", - "homepage": "https://github.com/then/is-promise", + "homepage": "https://github.com/then/is-promise#readme", "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "forbeslindesay", - "email": "forbes@lindesay.co.uk" - } - ], "name": "is-promise", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/then/is-promise.git" diff --git a/tools/eslint/node_modules/is-property/package.json b/tools/eslint/node_modules/is-property/package.json index b4dbd9bf51b51f..6b71ae13b69f2c 100644 --- a/tools/eslint/node_modules/is-property/package.json +++ b/tools/eslint/node_modules/is-property/package.json @@ -1,53 +1,36 @@ { - "_args": [ - [ - { - "raw": "is-property@^1.0.0", - "scope": null, - "escapedName": "is-property", - "name": "is-property", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/generate-object-property" - ] - ], - "_from": "is-property@>=1.0.0 <2.0.0", + "_from": "is-property@^1.0.0", "_id": "is-property@1.0.2", - "_inCache": true, - "_location": "/is-property", - "_nodeVersion": "0.10.26", - "_npmUser": { - "name": "mikolalysenko", - "email": "mikolalysenko@gmail.com" - }, - "_npmVersion": "2.1.4", + "_inBundle": false, + "_integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "_location": "/eslint/is-property", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-property@^1.0.0", - "scope": null, - "escapedName": "is-property", "name": "is-property", + "escapedName": "is-property", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/generate-object-property" + "/eslint/generate-object-property" ], "_resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "_shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", - "_shrinkwrap": null, "_spec": "is-property@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/generate-object-property", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/generate-object-property", "author": { "name": "Mikola Lysenko" }, "bugs": { "url": "https://github.com/mikolalysenko/is-property/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Tests if a JSON property can be accessed using . syntax", "devDependencies": { "tape": "~1.0.4" @@ -55,12 +38,8 @@ "directories": { "test": "test" }, - "dist": { - "shasum": "57fe1c4e48474edd65b09911f26b1cd4095dda84", - "tarball": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, "gitHead": "0a85ea5b6b1264ea1cdecc6e5cf186adbb3ffc50", - "homepage": "https://github.com/mikolalysenko/is-property", + "homepage": "https://github.com/mikolalysenko/is-property#readme", "keywords": [ "is", "property", @@ -72,15 +51,7 @@ ], "license": "MIT", "main": "is-property.js", - "maintainers": [ - { - "name": "mikolalysenko", - "email": "mikolalysenko@gmail.com" - } - ], "name": "is-property", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/mikolalysenko/is-property.git" diff --git a/tools/eslint/node_modules/is-resolvable/package.json b/tools/eslint/node_modules/is-resolvable/package.json index d722441b4521fb..7878ffe6797875 100644 --- a/tools/eslint/node_modules/is-resolvable/package.json +++ b/tools/eslint/node_modules/is-resolvable/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "is-resolvable@^1.0.0", - "scope": null, - "escapedName": "is-resolvable", - "name": "is-resolvable", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "is-resolvable@>=1.0.0 <2.0.0", + "_from": "is-resolvable@^1.0.0", "_id": "is-resolvable@1.0.0", - "_inCache": true, - "_location": "/is-resolvable", - "_nodeVersion": "2.4.0", - "_npmUser": { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - }, - "_npmVersion": "2.13.1", + "_inBundle": false, + "_integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "_location": "/eslint/is-resolvable", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "is-resolvable@^1.0.0", - "scope": null, - "escapedName": "is-resolvable", "name": "is-resolvable", + "escapedName": "is-resolvable", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", "_shasum": "8df57c61ea2e3c501408d100fb013cf8d6e0cc62", - "_shrinkwrap": null, "_spec": "is-resolvable@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Shinnosuke Watanabe", "url": "https://github.com/shinnn" @@ -48,9 +29,11 @@ "bugs": { "url": "https://github.com/shinnn/is-resolvable/issues" }, + "bundleDependencies": false, "dependencies": { "tryit": "^1.0.1" }, + "deprecated": false, "description": "Check if a module ID is resolvable with require()", "devDependencies": { "@shinnn/eslintrc-node": "^1.0.2", @@ -58,15 +41,9 @@ "istanbul": "^0.3.17", "tape": "^4.0.0" }, - "directories": {}, - "dist": { - "shasum": "8df57c61ea2e3c501408d100fb013cf8d6e0cc62", - "tarball": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "e68ea1b3affa382cbd31b4bae1e1421040249a73", "homepage": "https://github.com/shinnn/is-resolvable#readme", "keywords": [ "read", @@ -82,15 +59,7 @@ "metadata" ], "license": "MIT", - "maintainers": [ - { - "name": "shinnn", - "email": "snnskwtnb@gmail.com" - } - ], "name": "is-resolvable", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/shinnn/is-resolvable.git" diff --git a/tools/eslint/node_modules/isarray/package.json b/tools/eslint/node_modules/isarray/package.json index 34d0c2888519ad..69e505ac206cb5 100644 --- a/tools/eslint/node_modules/isarray/package.json +++ b/tools/eslint/node_modules/isarray/package.json @@ -1,47 +1,28 @@ { - "_args": [ - [ - { - "raw": "isarray@~1.0.0", - "scope": null, - "escapedName": "isarray", - "name": "isarray", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "isarray@>=1.0.0 <1.1.0", + "_from": "isarray@~1.0.0", "_id": "isarray@1.0.0", - "_inCache": true, - "_location": "/isarray", - "_nodeVersion": "5.1.0", - "_npmUser": { - "name": "juliangruber", - "email": "julian@juliangruber.com" - }, - "_npmVersion": "3.3.12", + "_inBundle": false, + "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "_location": "/eslint/isarray", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "isarray@~1.0.0", - "scope": null, - "escapedName": "isarray", "name": "isarray", + "escapedName": "isarray", "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.0" }, "_requiredBy": [ - "/doctrine", - "/readable-stream" + "/eslint/doctrine", + "/eslint/readable-stream" ], "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "_shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "_shrinkwrap": null, "_spec": "isarray@~1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "author": { "name": "Julian Gruber", "email": "mail@juliangruber.com", @@ -50,17 +31,13 @@ "bugs": { "url": "https://github.com/juliangruber/isarray/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Array#isArray for older browsers", "devDependencies": { "tape": "~2.13.4" }, - "directories": {}, - "dist": { - "shasum": "bb935d48582cba168c06834957a54a3e07124f11", - "tarball": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "gitHead": "2a23a281f369e9ae06394c0fb4d2381355a6ba33", "homepage": "https://github.com/juliangruber/isarray", "keywords": [ "browser", @@ -69,15 +46,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "juliangruber", - "email": "julian@juliangruber.com" - } - ], "name": "isarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/juliangruber/isarray.git" diff --git a/tools/eslint/node_modules/js-tokens/package.json b/tools/eslint/node_modules/js-tokens/package.json index 5e17a6dd0df637..87ad45ee9f388c 100644 --- a/tools/eslint/node_modules/js-tokens/package.json +++ b/tools/eslint/node_modules/js-tokens/package.json @@ -1,57 +1,35 @@ { - "_args": [ - [ - { - "raw": "js-tokens@^3.0.0", - "scope": null, - "escapedName": "js-tokens", - "name": "js-tokens", - "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/babel-code-frame" - ] - ], - "_from": "js-tokens@>=3.0.0 <4.0.0", + "_from": "js-tokens@^3.0.0", "_id": "js-tokens@3.0.1", - "_inCache": true, - "_location": "/js-tokens", - "_nodeVersion": "7.2.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/js-tokens-3.0.1.tgz_1485800902865_0.11822547880001366" - }, - "_npmUser": { - "name": "lydell", - "email": "simon.lydell@gmail.com" - }, - "_npmVersion": "3.10.9", + "_inBundle": false, + "_integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", + "_location": "/eslint/js-tokens", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "js-tokens@^3.0.0", - "scope": null, - "escapedName": "js-tokens", "name": "js-tokens", + "escapedName": "js-tokens", "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.0.0" }, "_requiredBy": [ - "/babel-code-frame" + "/eslint/babel-code-frame" ], "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", "_shasum": "08e9f132484a2c45a30907e9dc4d5567b7f114d7", - "_shrinkwrap": null, "_spec": "js-tokens@^3.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/babel-code-frame", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/babel-code-frame", "author": { "name": "Simon Lydell" }, "bugs": { "url": "https://github.com/lydell/js-tokens/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "A regex that tokenizes JavaScript.", "devDependencies": { "coffee-script": "~1.12.2", @@ -59,15 +37,9 @@ "everything.js": "^1.0.3", "mocha": "^3.2.0" }, - "directories": {}, - "dist": { - "shasum": "08e9f132484a2c45a30907e9dc4d5567b7f114d7", - "tarball": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" - }, "files": [ "index.js" ], - "gitHead": "54549dd979142c78cf629b51f9f06e8133c529f9", "homepage": "https://github.com/lydell/js-tokens#readme", "keywords": [ "JavaScript", @@ -77,15 +49,7 @@ "regex" ], "license": "MIT", - "maintainers": [ - { - "name": "lydell", - "email": "simon.lydell@gmail.com" - } - ], "name": "js-tokens", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/lydell/js-tokens.git" diff --git a/tools/eslint/node_modules/js-yaml/package.json b/tools/eslint/node_modules/js-yaml/package.json index a3ddcf4495d8e5..117fba8a52fd3f 100644 --- a/tools/eslint/node_modules/js-yaml/package.json +++ b/tools/eslint/node_modules/js-yaml/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "js-yaml@^3.8.4", - "scope": null, - "escapedName": "js-yaml", - "name": "js-yaml", - "rawSpec": "^3.8.4", - "spec": ">=3.8.4 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "js-yaml@>=3.8.4 <4.0.0", + "_from": "js-yaml@^3.8.4", "_id": "js-yaml@3.8.4", - "_inCache": true, - "_location": "/js-yaml", - "_nodeVersion": "7.8.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/js-yaml-3.8.4.tgz_1494256586834_0.47078769421204925" - }, - "_npmUser": { - "name": "vitaly", - "email": "vitaly@rcdesign.ru" - }, - "_npmVersion": "4.2.0", + "_inBundle": false, + "_integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=", + "_location": "/eslint/js-yaml", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "js-yaml@^3.8.4", - "scope": null, - "escapedName": "js-yaml", "name": "js-yaml", + "escapedName": "js-yaml", "rawSpec": "^3.8.4", - "spec": ">=3.8.4 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.8.4" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", "_shasum": "520b4564f86573ba96662af85a8cafa7b4b5a6f6", - "_shrinkwrap": null, "_spec": "js-yaml@^3.8.4", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Vladimir Zapparov", "email": "dervus.grim@gmail.com" @@ -55,6 +32,7 @@ "bugs": { "url": "https://github.com/nodeca/js-yaml/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Aleksey V Zapparov", @@ -76,6 +54,7 @@ "argparse": "^1.0.7", "esprima": "^3.1.1" }, + "deprecated": false, "description": "YAML 1.2 parser and serializer", "devDependencies": { "ansi": "^0.3.1", @@ -87,18 +66,12 @@ "mocha": "^3.3.0", "uglify-js": "^3.0.1" }, - "directories": {}, - "dist": { - "shasum": "520b4564f86573ba96662af85a8cafa7b4b5a6f6", - "tarball": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz" - }, "files": [ "index.js", "lib/", "bin/", "dist/" ], - "gitHead": "3de650d4d6fd9e24052ffa7ae53439e36eb70cbb", "homepage": "https://github.com/nodeca/js-yaml", "keywords": [ "yaml", @@ -107,15 +80,7 @@ "pyyaml" ], "license": "MIT", - "maintainers": [ - { - "name": "vitaly", - "email": "vitaly@rcdesign.ru" - } - ], "name": "js-yaml", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/nodeca/js-yaml.git" diff --git a/tools/eslint/node_modules/jschardet/package.json b/tools/eslint/node_modules/jschardet/package.json index 2bdcc6aa133fa1..52d02135115dc8 100755 --- a/tools/eslint/node_modules/jschardet/package.json +++ b/tools/eslint/node_modules/jschardet/package.json @@ -1,57 +1,36 @@ { - "_args": [ - [ - { - "raw": "jschardet@^1.4.2", - "scope": null, - "escapedName": "jschardet", - "name": "jschardet", - "rawSpec": "^1.4.2", - "spec": ">=1.4.2 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/external-editor" - ] - ], - "_from": "jschardet@>=1.4.2 <2.0.0", + "_from": "jschardet@^1.4.2", "_id": "jschardet@1.4.2", - "_inCache": true, - "_location": "/jschardet", - "_nodeVersion": "4.4.3", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/jschardet-1.4.2.tgz_1489260230200_0.36544930562376976" - }, - "_npmUser": { - "name": "aadsm", - "email": "antonio.afonso@gmail.com" - }, - "_npmVersion": "2.15.1", + "_inBundle": false, + "_integrity": "sha1-KqEH8UKvQSHRRWWdRPUIMJYeaZo=", + "_location": "/eslint/jschardet", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "jschardet@^1.4.2", - "scope": null, - "escapedName": "jschardet", "name": "jschardet", + "escapedName": "jschardet", "rawSpec": "^1.4.2", - "spec": ">=1.4.2 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.4.2" }, "_requiredBy": [ - "/external-editor" + "/eslint/external-editor" ], "_resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz", "_shasum": "2aa107f142af4121d145659d44f50830961e699a", - "_shrinkwrap": null, "_spec": "jschardet@^1.4.2", - "_where": "/Users/trott/io.js/tools/node_modules/external-editor", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/external-editor", "author": { "name": "António Afonso" }, "bugs": { "url": "https://github.com/aadsm/jschardet/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Character encoding auto-detection in JavaScript (port of python's chardet)", "devDependencies": { "browserify": "~12.0.1", @@ -61,10 +40,6 @@ "lib": "./lib", "test": "./test" }, - "dist": { - "shasum": "2aa107f142af4121d145659d44f50830961e699a", - "tarball": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz" - }, "engines": { "node": ">=0.1.90" }, @@ -75,15 +50,7 @@ ], "license": "LGPL-2.1+", "main": "src/init", - "maintainers": [ - { - "name": "aadsm", - "email": "antonio.afonso@gmail.com" - } - ], "name": "jschardet", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/aadsm/jschardet.git" diff --git a/tools/eslint/node_modules/json-stable-stringify/package.json b/tools/eslint/node_modules/json-stable-stringify/package.json index 1e46ce33972745..fd5ab9ae2455f6 100644 --- a/tools/eslint/node_modules/json-stable-stringify/package.json +++ b/tools/eslint/node_modules/json-stable-stringify/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "json-stable-stringify@^1.0.1", - "scope": null, - "escapedName": "json-stable-stringify", - "name": "json-stable-stringify", - "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "json-stable-stringify@>=1.0.1 <2.0.0", + "_from": "json-stable-stringify@^1.0.1", "_id": "json-stable-stringify@1.0.1", - "_inCache": true, - "_location": "/json-stable-stringify", - "_nodeVersion": "4.2.1", - "_npmOperationalInternal": { - "host": "packages-5-east.internal.npmjs.com", - "tmp": "tmp/json-stable-stringify-1.0.1.tgz_1454436356521_0.9410459187347442" - }, - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "_npmVersion": "3.4.1", + "_inBundle": false, + "_integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "_location": "/eslint/json-stable-stringify", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "json-stable-stringify@^1.0.1", - "scope": null, - "escapedName": "json-stable-stringify", "name": "json-stable-stringify", + "escapedName": "json-stable-stringify", "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.1" }, "_requiredBy": [ - "/ajv", - "/eslint" + "/eslint", + "/eslint/ajv" ], "_resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "_shasum": "9a759d39c5f2ff503fd5300646ed445f88c4f9af", - "_shrinkwrap": null, "_spec": "json-stable-stringify@^1.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -54,19 +31,15 @@ "bugs": { "url": "https://github.com/substack/json-stable-stringify/issues" }, + "bundleDependencies": false, "dependencies": { "jsonify": "~0.0.0" }, + "deprecated": false, "description": "deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results", "devDependencies": { "tape": "~1.0.4" }, - "directories": {}, - "dist": { - "shasum": "9a759d39c5f2ff503fd5300646ed445f88c4f9af", - "tarball": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" - }, - "gitHead": "4a3ac9cc006a91e64901f8ebe78d23bf9fc9fbd0", "homepage": "https://github.com/substack/json-stable-stringify", "keywords": [ "json", @@ -78,15 +51,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "json-stable-stringify", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/substack/json-stable-stringify.git" diff --git a/tools/eslint/node_modules/jsonify/package.json b/tools/eslint/node_modules/jsonify/package.json index 8e7821ff04cd61..f1577639def90f 100644 --- a/tools/eslint/node_modules/jsonify/package.json +++ b/tools/eslint/node_modules/jsonify/package.json @@ -1,44 +1,27 @@ { - "_args": [ - [ - { - "raw": "jsonify@~0.0.0", - "scope": null, - "escapedName": "jsonify", - "name": "jsonify", - "rawSpec": "~0.0.0", - "spec": ">=0.0.0 <0.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/json-stable-stringify" - ] - ], - "_defaultsLoaded": true, - "_engineSupported": true, - "_from": "jsonify@>=0.0.0 <0.1.0", + "_from": "jsonify@~0.0.0", "_id": "jsonify@0.0.0", - "_inCache": true, - "_location": "/jsonify", - "_nodeVersion": "v0.5.0-pre", - "_npmVersion": "1.0.10", + "_inBundle": false, + "_integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "_location": "/eslint/jsonify", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "jsonify@~0.0.0", - "scope": null, - "escapedName": "jsonify", "name": "jsonify", + "escapedName": "jsonify", "rawSpec": "~0.0.0", - "spec": ">=0.0.0 <0.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~0.0.0" }, "_requiredBy": [ - "/json-stable-stringify" + "/eslint/json-stable-stringify" ], "_resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", "_shasum": "2c74b6ee41d93ca51b7b5aaee8f503631d252a73", - "_shrinkwrap": null, "_spec": "jsonify@~0.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/json-stable-stringify", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/json-stable-stringify", "author": { "name": "Douglas Crockford", "url": "http://crockford.com/" @@ -46,7 +29,8 @@ "bugs": { "url": "https://github.com/substack/jsonify/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "JSON without touching any globals", "devDependencies": { "garbage": "0.0.x", @@ -56,10 +40,6 @@ "lib": ".", "test": "test" }, - "dist": { - "shasum": "2c74b6ee41d93ca51b7b5aaee8f503631d252a73", - "tarball": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - }, "engines": { "node": "*" }, @@ -70,18 +50,10 @@ ], "license": "Public Domain", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "jsonify", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", - "url": "git://github.com/substack/jsonify.git" + "url": "git+ssh://git@github.com/substack/jsonify.git" }, "scripts": { "test": "tap test" diff --git a/tools/eslint/node_modules/jsonpointer/package.json b/tools/eslint/node_modules/jsonpointer/package.json index 566c953a69960c..5d90d80e2b4b88 100644 --- a/tools/eslint/node_modules/jsonpointer/package.json +++ b/tools/eslint/node_modules/jsonpointer/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "jsonpointer@^4.0.0", - "scope": null, - "escapedName": "jsonpointer", - "name": "jsonpointer", - "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-my-json-valid" - ] - ], - "_from": "jsonpointer@>=4.0.0 <5.0.0", + "_from": "jsonpointer@^4.0.0", "_id": "jsonpointer@4.0.1", - "_inCache": true, - "_location": "/jsonpointer", - "_nodeVersion": "6.9.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/jsonpointer-4.0.1.tgz_1482326391770_0.6748844815883785" - }, - "_npmUser": { - "name": "marcbachmann", - "email": "marc.brookman@gmail.com" - }, - "_npmVersion": "3.10.8", + "_inBundle": false, + "_integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "_location": "/eslint/jsonpointer", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "jsonpointer@^4.0.0", - "scope": null, - "escapedName": "jsonpointer", "name": "jsonpointer", + "escapedName": "jsonpointer", "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.0" }, "_requiredBy": [ - "/is-my-json-valid" + "/eslint/is-my-json-valid" ], "_resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "_shasum": "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9", - "_shrinkwrap": null, "_spec": "jsonpointer@^4.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/is-my-json-valid", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-my-json-valid", "author": { "name": "Jan Lehnardt", "email": "jan@apache.org" @@ -52,6 +29,7 @@ "bugs": { "url": "http://github.com/janl/node-jsonpointer/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Joe Hildebrand", @@ -62,39 +40,21 @@ "email": "marc.brookman@gmail.com" } ], - "dependencies": {}, + "deprecated": false, "description": "Simple JSON Addressing.", "devDependencies": { "standard": "^5.3.1" }, - "directories": {}, - "dist": { - "shasum": "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9", - "tarball": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "jsonpointer.js" ], - "gitHead": "37c73aecd5f192a00cd79c0ebbbb2034b91bcfd0", "homepage": "https://github.com/janl/node-jsonpointer#readme", "license": "MIT", "main": "./jsonpointer", - "maintainers": [ - { - "name": "jan", - "email": "jan@apache.org" - }, - { - "name": "marcbachmann", - "email": "marc.brookman@gmail.com" - } - ], "name": "jsonpointer", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/janl/node-jsonpointer.git" diff --git a/tools/eslint/node_modules/levn/package.json b/tools/eslint/node_modules/levn/package.json index efed1c87178999..dce4672c15ddd2 100644 --- a/tools/eslint/node_modules/levn/package.json +++ b/tools/eslint/node_modules/levn/package.json @@ -1,47 +1,28 @@ { - "_args": [ - [ - { - "raw": "levn@^0.3.0", - "scope": null, - "escapedName": "levn", - "name": "levn", - "rawSpec": "^0.3.0", - "spec": ">=0.3.0 <0.4.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "levn@>=0.3.0 <0.4.0", + "_from": "levn@^0.3.0", "_id": "levn@0.3.0", - "_inCache": true, - "_location": "/levn", - "_nodeVersion": "4.2.4", - "_npmUser": { - "name": "gkz", - "email": "z@georgezahariev.com" - }, - "_npmVersion": "2.14.12", + "_inBundle": false, + "_integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "_location": "/eslint/levn", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "levn@^0.3.0", - "scope": null, - "escapedName": "levn", "name": "levn", + "escapedName": "levn", "rawSpec": "^0.3.0", - "spec": ">=0.3.0 <0.4.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.3.0" }, "_requiredBy": [ "/eslint", - "/optionator" + "/eslint/optionator" ], "_resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "_shasum": "3b09924edf9f083c0490fdd4c0bc4421e04764ee", - "_shrinkwrap": null, "_spec": "levn@^0.3.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" @@ -49,21 +30,18 @@ "bugs": { "url": "https://github.com/gkz/levn/issues" }, + "bundleDependencies": false, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" }, + "deprecated": false, "description": "Light ECMAScript (JavaScript) Value Notation - human written, concise, typed, flexible", "devDependencies": { "istanbul": "~0.4.1", "livescript": "~1.4.0", "mocha": "~2.3.4" }, - "directories": {}, - "dist": { - "shasum": "3b09924edf9f083c0490fdd4c0bc4421e04764ee", - "tarball": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - }, "engines": { "node": ">= 0.8.0" }, @@ -72,7 +50,6 @@ "README.md", "LICENSE" ], - "gitHead": "a92b9acf928282ba81134b4ae8e6a5f29e1f5e1e", "homepage": "https://github.com/gkz/levn", "keywords": [ "levn", @@ -89,15 +66,7 @@ ], "license": "MIT", "main": "./lib/", - "maintainers": [ - { - "name": "gkz", - "email": "z@georgezahariev.com" - } - ], "name": "levn", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/gkz/levn.git" diff --git a/tools/eslint/node_modules/lodash/package.json b/tools/eslint/node_modules/lodash/package.json index 837d62d764e120..fd564aa50488b7 100644 --- a/tools/eslint/node_modules/lodash/package.json +++ b/tools/eslint/node_modules/lodash/package.json @@ -1,52 +1,29 @@ { - "_args": [ - [ - { - "raw": "lodash@^4.17.4", - "scope": null, - "escapedName": "lodash", - "name": "lodash", - "rawSpec": "^4.17.4", - "spec": ">=4.17.4 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "lodash@>=4.17.4 <5.0.0", + "_from": "lodash@^4.17.4", "_id": "lodash@4.17.4", - "_inCache": true, - "_location": "/lodash", - "_nodeVersion": "7.2.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/lodash-4.17.4.tgz_1483223634314_0.5332164366263896" - }, - "_npmUser": { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" - }, - "_npmVersion": "2.15.11", + "_inBundle": false, + "_integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "_location": "/eslint/lodash", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "lodash@^4.17.4", - "scope": null, - "escapedName": "lodash", "name": "lodash", + "escapedName": "lodash", "rawSpec": "^4.17.4", - "spec": ">=4.17.4 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.17.4" }, "_requiredBy": [ "/eslint", - "/inquirer", - "/table" + "/eslint/inquirer", + "/eslint/table" ], "_resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "_shasum": "78203a4d1c328ae1d86dca6460e369b57f4055ae", - "_shrinkwrap": null, "_spec": "lodash@^4.17.4", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "John-David Dalton", "email": "john.david.dalton@gmail.com", @@ -55,6 +32,7 @@ "bugs": { "url": "https://github.com/lodash/lodash/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "John-David Dalton", @@ -67,14 +45,8 @@ "url": "https://mathiasbynens.be/" } ], - "dependencies": {}, + "deprecated": false, "description": "Lodash modular utilities.", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "78203a4d1c328ae1d86dca6460e369b57f4055ae", - "tarball": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" - }, "homepage": "https://lodash.com/", "icon": "https://lodash.com/icon.svg", "keywords": [ @@ -84,19 +56,7 @@ ], "license": "MIT", "main": "lodash.js", - "maintainers": [ - { - "name": "jdalton", - "email": "john.david.dalton@gmail.com" - }, - { - "name": "mathias", - "email": "mathias@qiwi.be" - } - ], "name": "lodash", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/lodash/lodash.git" diff --git a/tools/eslint/node_modules/longest-streak/package.json b/tools/eslint/node_modules/longest-streak/package.json index f8e18528fa6e65..e9af0ed2d72cac 100644 --- a/tools/eslint/node_modules/longest-streak/package.json +++ b/tools/eslint/node_modules/longest-streak/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "longest-streak@^1.0.0", - "scope": null, - "escapedName": "longest-streak", - "name": "longest-streak", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify" - ] - ], - "_from": "longest-streak@>=1.0.0 <2.0.0", + "_from": "longest-streak@^1.0.0", "_id": "longest-streak@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=", "_location": "/longest-streak", - "_nodeVersion": "2.3.3", - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.11.3", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "longest-streak@^1.0.0", - "scope": null, - "escapedName": "longest-streak", "name": "longest-streak", + "escapedName": "longest-streak", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/remark-stringify" ], "_resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", "_shasum": "d06597c4d4c31b52ccb1f5d8f8fe7148eafd6965", - "_shrinkwrap": null, "_spec": "longest-streak@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com" @@ -48,7 +29,8 @@ "bugs": { "url": "https://github.com/wooorm/longest-streak/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Count the longest repeating streak of a character", "devDependencies": { "browserify": "^10.0.0", @@ -63,16 +45,10 @@ "mdast-yaml-config": "^0.2.0", "mocha": "^2.0.0" }, - "directories": {}, - "dist": { - "shasum": "d06597c4d4c31b52ccb1f5d8f8fe7148eafd6965", - "tarball": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz" - }, "files": [ "index.js", "LICENSE" ], - "gitHead": "77606ef995c1825d353f1a12ef7ded403df67c52", "homepage": "https://github.com/wooorm/longest-streak#readme", "keywords": [ "count", @@ -83,15 +59,7 @@ "character" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "longest-streak", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/wooorm/longest-streak.git" diff --git a/tools/eslint/node_modules/markdown-table/History.md b/tools/eslint/node_modules/markdown-table/History.md deleted file mode 100644 index 31f82cf920115a..00000000000000 --- a/tools/eslint/node_modules/markdown-table/History.md +++ /dev/null @@ -1,63 +0,0 @@ - -0.4.0 / 2015-04-08 -================== - -* Refactor to simplify branch ([23f8bea](https://github.com/wooorm/markdown-table/commit/23f8bea)) -* Update `.travis.yml` ([e68017e](https://github.com/wooorm/markdown-table/commit/e68017e)) -* Refactor style ([d6d7f37](https://github.com/wooorm/markdown-table/commit/d6d7f37)) -* Remove left-alignment colon for neutral columns ([6061c21](https://github.com/wooorm/markdown-table/commit/6061c21)) -* Refactor style ([7022ed1](https://github.com/wooorm/markdown-table/commit/7022ed1)) -* Update chalk ([7beb551](https://github.com/wooorm/markdown-table/commit/7beb551)) -* Update eslint ([14d61ab](https://github.com/wooorm/markdown-table/commit/14d61ab)) - -0.3.2 / 2015-01-22 -================== - - * Update test reference to include line numbers in `Readme.md` - * Update copyright notice in `LICENSE` to include 2015 - * Add link to whole license in `Readme.md` - * Add Duo as an instalation method in `Readme.md` - * Add links to installation methods in `Readme.md` - * Refactor fences code blocks in `Readme.md` - * Update usage example in `Readme.md` for changes - * Update npm script targets - * Update jscs-jsdoc - * Update eslint - -0.3.1 / 2014-12-26 -================== - - * Merge branch 'bug/dont-modify-align' - * Fix mutating `options.align` - -0.3.0 / 2014-12-19 -================== - - * Add support for multi-character values in alignment - * Remove alignment when left-aligning - * Refactor to adhere to strict jsdoc style - * Add jscs-jsdoc configuration to `.jscs.json` - * Add jscs-jsdoc as a dev-dependency - * Refactor npm scripts for changes in npm - -0.2.0 / 2014-11-29 -================== - - * Add option to specify a single alignment - * Refactor npm script targets in `package.json` - * Add link to personal website in `Readme.md` - * Add shorter description to `Readme.md`, `package.json`, `component.json`, `bower.json` - * Fix incorrect executive rights on `test.js` - * Update eslint - * Fix link to test in `Readme.md` - -0.1.0 / 2014-10-30 -================== - - * Add flat badges to `Readme.md` - * Add `.eslintrc` - * Refactor to disallow space after object keys - * Move `spec/markdown-table.spec.js` to `test.js` - * Update `.gitignore`, `.npmignore`, bower ignore - * Remove incorrect data reference in `component.json` - * Update eslint, mocha diff --git a/tools/eslint/node_modules/markdown-table/package.json b/tools/eslint/node_modules/markdown-table/package.json index 429dafc62504db..49117592fc33b6 100644 --- a/tools/eslint/node_modules/markdown-table/package.json +++ b/tools/eslint/node_modules/markdown-table/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "markdown-table@^0.4.0", - "scope": null, - "escapedName": "markdown-table", - "name": "markdown-table", - "rawSpec": "^0.4.0", - "spec": ">=0.4.0 <0.5.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify" - ] - ], - "_from": "markdown-table@>=0.4.0 <0.5.0", + "_from": "markdown-table@^0.4.0", "_id": "markdown-table@0.4.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=", "_location": "/markdown-table", - "_nodeVersion": "1.6.3", - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.7.4", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "markdown-table@^0.4.0", - "scope": null, - "escapedName": "markdown-table", "name": "markdown-table", + "escapedName": "markdown-table", "rawSpec": "^0.4.0", - "spec": ">=0.4.0 <0.5.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.4.0" }, "_requiredBy": [ "/remark-stringify" ], "_resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", "_shasum": "890c2c1b3bfe83fb00e4129b8e4cfe645270f9d1", - "_shrinkwrap": null, "_spec": "markdown-table@^0.4.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com" @@ -48,7 +29,8 @@ "bugs": { "url": "https://github.com/wooorm/markdown-table/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Markdown/ASCII tables", "devDependencies": { "chalk": "^1.0.0", @@ -58,13 +40,7 @@ "jscs-jsdoc": "^0.4.0", "mocha": "^2.0.0" }, - "directories": {}, - "dist": { - "shasum": "890c2c1b3bfe83fb00e4129b8e4cfe645270f9d1", - "tarball": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz" - }, - "gitHead": "500964b100c0261c8f731bbb9c3617a624b5b255", - "homepage": "https://github.com/wooorm/markdown-table", + "homepage": "https://github.com/wooorm/markdown-table#readme", "keywords": [ "text", "markdown", @@ -75,15 +51,7 @@ "tabular" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "markdown-table", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/wooorm/markdown-table.git" diff --git a/tools/eslint/node_modules/mimic-fn/package.json b/tools/eslint/node_modules/mimic-fn/package.json index eafefa5c2c4bdd..99c66966eb98f5 100644 --- a/tools/eslint/node_modules/mimic-fn/package.json +++ b/tools/eslint/node_modules/mimic-fn/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "mimic-fn@^1.0.0", - "scope": null, - "escapedName": "mimic-fn", - "name": "mimic-fn", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/onetime" - ] - ], - "_from": "mimic-fn@>=1.0.0 <2.0.0", + "_from": "mimic-fn@^1.0.0", "_id": "mimic-fn@1.1.0", - "_inCache": true, - "_location": "/mimic-fn", - "_nodeVersion": "4.6.1", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/mimic-fn-1.1.0.tgz_1477992909009_0.6083487698342651" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.9", + "_inBundle": false, + "_integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "_location": "/eslint/mimic-fn", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "mimic-fn@^1.0.0", - "scope": null, - "escapedName": "mimic-fn", "name": "mimic-fn", + "escapedName": "mimic-fn", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/onetime" + "/eslint/onetime" ], "_resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", "_shasum": "e667783d92e89dbd342818b5230b9d62a672ad18", - "_shrinkwrap": null, "_spec": "mimic-fn@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/onetime", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/onetime", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/mimic-fn/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Make a function mimic another one", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "e667783d92e89dbd342818b5230b9d62a672ad18", - "tarball": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "3703ef8142ce6b7170297e58fee1a14799b79975", "homepage": "https://github.com/sindresorhus/mimic-fn#readme", "keywords": [ "function", @@ -88,15 +60,7 @@ "change" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "mimic-fn", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/mimic-fn.git" diff --git a/tools/eslint/node_modules/minimatch/package.json b/tools/eslint/node_modules/minimatch/package.json index 212ab718b30cb3..e871999019f0af 100644 --- a/tools/eslint/node_modules/minimatch/package.json +++ b/tools/eslint/node_modules/minimatch/package.json @@ -1,50 +1,28 @@ { - "_args": [ - [ - { - "raw": "minimatch@^3.0.4", - "scope": null, - "escapedName": "minimatch", - "name": "minimatch", - "rawSpec": "^3.0.4", - "spec": ">=3.0.4 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/glob" - ] - ], - "_from": "minimatch@>=3.0.4 <4.0.0", + "_from": "minimatch@^3.0.2", "_id": "minimatch@3.0.4", - "_inCache": true, - "_location": "/minimatch", - "_nodeVersion": "8.0.0-pre", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/minimatch-3.0.4.tgz_1494180669024_0.22628829116001725" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "5.0.0-beta.43", + "_inBundle": false, + "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "_location": "/eslint/minimatch", "_phantomChildren": {}, "_requested": { - "raw": "minimatch@^3.0.4", - "scope": null, - "escapedName": "minimatch", + "type": "range", + "registry": true, + "raw": "minimatch@^3.0.2", "name": "minimatch", - "rawSpec": "^3.0.4", - "spec": ">=3.0.4 <4.0.0", - "type": "range" + "escapedName": "minimatch", + "rawSpec": "^3.0.2", + "saveSpec": null, + "fetchSpec": "^3.0.2" }, "_requiredBy": [ - "/glob" + "/eslint", + "/eslint/glob" ], "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083", - "_shrinkwrap": null, - "_spec": "minimatch@^3.0.4", - "_where": "/Users/trott/io.js/tools/node_modules/glob", + "_spec": "minimatch@^3.0.2", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -53,38 +31,25 @@ "bugs": { "url": "https://github.com/isaacs/minimatch/issues" }, + "bundleDependencies": false, "dependencies": { "brace-expansion": "^1.1.7" }, + "deprecated": false, "description": "a glob matcher in javascript", "devDependencies": { "tap": "^10.3.2" }, - "directories": {}, - "dist": { - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "shasum": "5166e286457f03306064be5497e8dbb0c3d32083", - "tarball": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" - }, "engines": { "node": "*" }, "files": [ "minimatch.js" ], - "gitHead": "e46989a323d5f0aa4781eff5e2e6e7aafa223321", "homepage": "https://github.com/isaacs/minimatch#readme", "license": "ISC", "main": "minimatch.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "minimatch", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/minimatch.git" diff --git a/tools/eslint/node_modules/minimist/package.json b/tools/eslint/node_modules/minimist/package.json index 964da644173817..a1bf38ddc42d54 100644 --- a/tools/eslint/node_modules/minimist/package.json +++ b/tools/eslint/node_modules/minimist/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "minimist@0.0.8", - "scope": null, - "escapedName": "minimist", - "name": "minimist", - "rawSpec": "0.0.8", - "spec": "0.0.8", - "type": "version" - }, - "/Users/trott/io.js/tools/node_modules/mkdirp" - ] - ], "_from": "minimist@0.0.8", "_id": "minimist@0.0.8", - "_inCache": true, - "_location": "/minimist", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "_npmVersion": "1.4.3", + "_inBundle": false, + "_integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "_location": "/eslint/minimist", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "minimist@0.0.8", - "scope": null, - "escapedName": "minimist", "name": "minimist", + "escapedName": "minimist", "rawSpec": "0.0.8", - "spec": "0.0.8", - "type": "version" + "saveSpec": null, + "fetchSpec": "0.0.8" }, "_requiredBy": [ - "/mkdirp" + "/eslint/mkdirp" ], "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "_shrinkwrap": null, "_spec": "minimist@0.0.8", - "_where": "/Users/trott/io.js/tools/node_modules/mkdirp", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/mkdirp", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -48,17 +30,13 @@ "bugs": { "url": "https://github.com/substack/minimist/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "parse argument options", "devDependencies": { "tap": "~0.4.0", "tape": "~1.0.4" }, - "directories": {}, - "dist": { - "shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d", - "tarball": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, "homepage": "https://github.com/substack/minimist", "keywords": [ "argv", @@ -68,15 +46,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "minimist", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/substack/minimist.git" diff --git a/tools/eslint/node_modules/mkdirp/package.json b/tools/eslint/node_modules/mkdirp/package.json index dacb224baf1330..ca1192db9835e9 100644 --- a/tools/eslint/node_modules/mkdirp/package.json +++ b/tools/eslint/node_modules/mkdirp/package.json @@ -1,47 +1,28 @@ { - "_args": [ - [ - { - "raw": "mkdirp@^0.5.1", - "scope": null, - "escapedName": "mkdirp", - "name": "mkdirp", - "rawSpec": "^0.5.1", - "spec": ">=0.5.1 <0.6.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "mkdirp@>=0.5.1 <0.6.0", + "_from": "mkdirp@^0.5.1", "_id": "mkdirp@0.5.1", - "_inCache": true, - "_location": "/mkdirp", - "_nodeVersion": "2.0.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "_npmVersion": "2.9.0", + "_inBundle": false, + "_integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "_location": "/eslint/mkdirp", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "mkdirp@^0.5.1", - "scope": null, - "escapedName": "mkdirp", "name": "mkdirp", + "escapedName": "mkdirp", "rawSpec": "^0.5.1", - "spec": ">=0.5.1 <0.6.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.5.1" }, "_requiredBy": [ "/eslint", - "/write" + "/eslint/write" ], "_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", - "_shrinkwrap": null, "_spec": "mkdirp@^0.5.1", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -53,20 +34,16 @@ "bugs": { "url": "https://github.com/substack/node-mkdirp/issues" }, + "bundleDependencies": false, "dependencies": { "minimist": "0.0.8" }, + "deprecated": false, "description": "Recursively mkdir, like `mkdir -p`", "devDependencies": { "mock-fs": "2 >=2.7.0", "tap": "1" }, - "directories": {}, - "dist": { - "shasum": "30057438eac6cf7f8c4767f38648d6697d75c903", - "tarball": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, - "gitHead": "d4eff0f06093aed4f387e88e9fc301cb76beedc7", "homepage": "https://github.com/substack/node-mkdirp#readme", "keywords": [ "mkdir", @@ -74,15 +51,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "mkdirp", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/substack/node-mkdirp.git" diff --git a/tools/eslint/node_modules/ms/package.json b/tools/eslint/node_modules/ms/package.json index a4ab935302c33e..b08e241033b89d 100644 --- a/tools/eslint/node_modules/ms/package.json +++ b/tools/eslint/node_modules/ms/package.json @@ -1,54 +1,32 @@ { - "_args": [ - [ - { - "raw": "ms@2.0.0", - "scope": null, - "escapedName": "ms", - "name": "ms", - "rawSpec": "2.0.0", - "spec": "2.0.0", - "type": "version" - }, - "/Users/trott/io.js/tools/node_modules/debug" - ] - ], "_from": "ms@2.0.0", "_id": "ms@2.0.0", - "_inCache": true, - "_location": "/ms", - "_nodeVersion": "7.8.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/ms-2.0.0.tgz_1494937565215_0.34005374647676945" - }, - "_npmUser": { - "name": "leo", - "email": "leo@zeit.co" - }, - "_npmVersion": "4.2.0", + "_inBundle": false, + "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "_location": "/eslint/ms", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "ms@2.0.0", - "scope": null, - "escapedName": "ms", "name": "ms", + "escapedName": "ms", "rawSpec": "2.0.0", - "spec": "2.0.0", - "type": "version" + "saveSpec": null, + "fetchSpec": "2.0.0" }, "_requiredBy": [ - "/debug" + "/eslint/debug" ], "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", - "_shrinkwrap": null, "_spec": "ms@2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/debug", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/debug", "bugs": { "url": "https://github.com/zeit/ms/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Tiny milisecond conversion utility", "devDependencies": { "eslint": "3.19.0", @@ -57,11 +35,6 @@ "lint-staged": "3.4.1", "mocha": "3.4.1" }, - "directories": {}, - "dist": { - "shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", - "tarball": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - }, "eslintConfig": { "extends": "eslint:recommended", "env": { @@ -72,7 +45,6 @@ "files": [ "index.js" ], - "gitHead": "9b88d1568a52ec9bb67ecc8d2aa224fa38fd41f4", "homepage": "https://github.com/zeit/ms#readme", "license": "MIT", "lint-staged": { @@ -83,19 +55,7 @@ ] }, "main": "./index", - "maintainers": [ - { - "name": "leo", - "email": "leo@zeit.co" - }, - { - "name": "rauchg", - "email": "rauchg@gmail.com" - } - ], "name": "ms", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/zeit/ms.git" diff --git a/tools/eslint/node_modules/mute-stream/package.json b/tools/eslint/node_modules/mute-stream/package.json index 271b47bb2e78c9..dc348389a23f64 100644 --- a/tools/eslint/node_modules/mute-stream/package.json +++ b/tools/eslint/node_modules/mute-stream/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "mute-stream@0.0.7", - "scope": null, - "escapedName": "mute-stream", - "name": "mute-stream", - "rawSpec": "0.0.7", - "spec": "0.0.7", - "type": "version" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], "_from": "mute-stream@0.0.7", "_id": "mute-stream@0.0.7", - "_inCache": true, - "_location": "/mute-stream", - "_nodeVersion": "8.0.0-pre", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/mute-stream-0.0.7.tgz_1483483671377_0.22980716335587204" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.9", + "_inBundle": false, + "_integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "_location": "/eslint/mute-stream", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "mute-stream@0.0.7", - "scope": null, - "escapedName": "mute-stream", "name": "mute-stream", + "escapedName": "mute-stream", "rawSpec": "0.0.7", - "spec": "0.0.7", - "type": "version" + "saveSpec": null, + "fetchSpec": "0.0.7" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "_shasum": "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab", - "_shrinkwrap": null, "_spec": "mute-stream@0.0.7", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -53,7 +30,8 @@ "bugs": { "url": "https://github.com/isaacs/mute-stream/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Bytes go in, but they don't come out (when muted).", "devDependencies": { "tap": "^5.4.4" @@ -61,11 +39,6 @@ "directories": { "test": "test" }, - "dist": { - "shasum": "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab", - "tarball": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" - }, - "gitHead": "304d9f7b277175b03c5ae828c326a211e3139778", "homepage": "https://github.com/isaacs/mute-stream#readme", "keywords": [ "mute", @@ -74,27 +47,7 @@ ], "license": "ISC", "main": "mute.js", - "maintainers": [ - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], "name": "mute-stream", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/mute-stream.git" diff --git a/tools/eslint/node_modules/natural-compare/package.json b/tools/eslint/node_modules/natural-compare/package.json index 8b81500a83f054..a7e80ac1b8aee6 100644 --- a/tools/eslint/node_modules/natural-compare/package.json +++ b/tools/eslint/node_modules/natural-compare/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "natural-compare@^1.4.0", - "scope": null, - "escapedName": "natural-compare", - "name": "natural-compare", - "rawSpec": "^1.4.0", - "spec": ">=1.4.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "natural-compare@>=1.4.0 <2.0.0", + "_from": "natural-compare@^1.4.0", "_id": "natural-compare@1.4.0", - "_inCache": true, - "_location": "/natural-compare", - "_nodeVersion": "6.2.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/natural-compare-1.4.0.tgz_1469220490086_0.1379237591754645" - }, - "_npmUser": { - "name": "megawac", - "email": "megawac@gmail.com" - }, - "_npmVersion": "3.9.5", + "_inBundle": false, + "_integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "_location": "/eslint/natural-compare", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "natural-compare@^1.4.0", - "scope": null, - "escapedName": "natural-compare", "name": "natural-compare", + "escapedName": "natural-compare", "rawSpec": "^1.4.0", - "spec": ">=1.4.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.4.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "_shasum": "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7", - "_shrinkwrap": null, "_spec": "natural-compare@^1.4.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Lauri Rooden", "url": "https://github.com/litejs/natural-compare-lite" @@ -58,21 +35,16 @@ "input": "index.js" } }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Compare strings containing a mix of letters and numbers in the way a human being would in sort order.", "devDependencies": { "buildman": "*", "testman": "*" }, - "directories": {}, - "dist": { - "shasum": "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7", - "tarball": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "eec83eee67cfac84d6db30cdd65363f155673770", "homepage": "https://github.com/litejs/natural-compare-lite#readme", "keywords": [ "string", @@ -87,15 +59,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "megawac", - "email": "megawac@gmail.com" - } - ], "name": "natural-compare", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/litejs/natural-compare-lite.git" diff --git a/tools/eslint/node_modules/object-assign/package.json b/tools/eslint/node_modules/object-assign/package.json index 0887c3c7b032ec..919e18abee838d 100644 --- a/tools/eslint/node_modules/object-assign/package.json +++ b/tools/eslint/node_modules/object-assign/package.json @@ -1,53 +1,30 @@ { - "_args": [ - [ - { - "raw": "object-assign@^4.0.1", - "scope": null, - "escapedName": "object-assign", - "name": "object-assign", - "rawSpec": "^4.0.1", - "spec": ">=4.0.1 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/esrecurse" - ] - ], - "_from": "object-assign@>=4.0.1 <5.0.0", + "_from": "object-assign@^4.0.1", "_id": "object-assign@4.1.1", - "_inCache": true, - "_location": "/object-assign", - "_nodeVersion": "4.6.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/object-assign-4.1.1.tgz_1484580915042_0.07107710791751742" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.11", + "_inBundle": false, + "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "_location": "/eslint/object-assign", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "object-assign@^4.0.1", - "scope": null, - "escapedName": "object-assign", "name": "object-assign", + "escapedName": "object-assign", "rawSpec": "^4.0.1", - "spec": ">=4.0.1 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.1" }, "_requiredBy": [ - "/del", - "/esrecurse", - "/file-entry-cache", - "/globby" + "/eslint/del", + "/eslint/esrecurse", + "/eslint/file-entry-cache", + "/eslint/globby" ], "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863", - "_shrinkwrap": null, "_spec": "object-assign@^4.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/esrecurse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/esrecurse", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -56,7 +33,8 @@ "bugs": { "url": "https://github.com/sindresorhus/object-assign/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "ES2015 `Object.assign()` ponyfill", "devDependencies": { "ava": "^0.16.0", @@ -64,18 +42,12 @@ "matcha": "^0.7.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863", - "tarball": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "a89774b252c91612203876984bbd6addbe3b5a0e", "homepage": "https://github.com/sindresorhus/object-assign#readme", "keywords": [ "object", @@ -92,23 +64,7 @@ "browser" ], "license": "MIT", - "maintainers": [ - { - "name": "gaearon", - "email": "dan.abramov@gmail.com" - }, - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - { - "name": "spicyj", - "email": "ben@benalpert.com" - } - ], "name": "object-assign", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/object-assign.git" diff --git a/tools/eslint/node_modules/once/package.json b/tools/eslint/node_modules/once/package.json index 56c18c24346574..a6b79e6be72535 100644 --- a/tools/eslint/node_modules/once/package.json +++ b/tools/eslint/node_modules/once/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "once@^1.3.0", - "scope": null, - "escapedName": "once", - "name": "once", - "rawSpec": "^1.3.0", - "spec": ">=1.3.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/glob" - ] - ], - "_from": "once@>=1.3.0 <2.0.0", + "_from": "once@^1.3.0", "_id": "once@1.4.0", - "_inCache": true, - "_location": "/once", - "_nodeVersion": "6.5.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/once-1.4.0.tgz_1473196269128_0.537820661207661" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.7", + "_inBundle": false, + "_integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "_location": "/eslint/once", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "once@^1.3.0", - "scope": null, - "escapedName": "once", "name": "once", + "escapedName": "once", "rawSpec": "^1.3.0", - "spec": ">=1.3.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.3.0" }, "_requiredBy": [ - "/glob", - "/inflight" + "/eslint/glob", + "/eslint/inflight" ], "_resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "_shrinkwrap": null, "_spec": "once@^1.3.0", - "_where": "/Users/trott/io.js/tools/node_modules/glob", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -54,9 +31,11 @@ "bugs": { "url": "https://github.com/isaacs/once/issues" }, + "bundleDependencies": false, "dependencies": { "wrappy": "1" }, + "deprecated": false, "description": "Run a function exactly one time", "devDependencies": { "tap": "^7.0.1" @@ -64,14 +43,9 @@ "directories": { "test": "test" }, - "dist": { - "shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1", - "tarball": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - }, "files": [ "once.js" ], - "gitHead": "0e614d9f5a7e6f0305c625f6b581f6d80b33b8a6", "homepage": "https://github.com/isaacs/once#readme", "keywords": [ "once", @@ -81,15 +55,7 @@ ], "license": "ISC", "main": "once.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "once", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/once.git" diff --git a/tools/eslint/node_modules/onetime/package.json b/tools/eslint/node_modules/onetime/package.json index 915d55e18698cc..4a96644cd7626a 100644 --- a/tools/eslint/node_modules/onetime/package.json +++ b/tools/eslint/node_modules/onetime/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "onetime@^2.0.0", - "scope": null, - "escapedName": "onetime", - "name": "onetime", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/restore-cursor" - ] - ], - "_from": "onetime@>=2.0.0 <3.0.0", + "_from": "onetime@^2.0.0", "_id": "onetime@2.0.1", - "_inCache": true, - "_location": "/onetime", - "_nodeVersion": "4.7.3", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/onetime-2.0.1.tgz_1489980257371_0.244376125279814" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.11", + "_inBundle": false, + "_integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "_location": "/eslint/onetime", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "onetime@^2.0.0", - "scope": null, - "escapedName": "onetime", "name": "onetime", + "escapedName": "onetime", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/restore-cursor" + "/eslint/restore-cursor" ], "_resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "_shasum": "067428230fd67443b2794b22bba528b6867962d4", - "_shrinkwrap": null, "_spec": "onetime@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/restore-cursor", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/restore-cursor", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,26 +30,22 @@ "bugs": { "url": "https://github.com/sindresorhus/onetime/issues" }, + "bundleDependencies": false, "dependencies": { "mimic-fn": "^1.0.0" }, + "deprecated": false, "description": "Ensure a function is only called once", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "067428230fd67443b2794b22bba528b6867962d4", - "tarball": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "32bca382f5934c8fe7fd78bcef9ad16b3474948f", "homepage": "https://github.com/sindresorhus/onetime#readme", "keywords": [ "once", @@ -87,15 +60,7 @@ "prevent" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "onetime", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/onetime.git" diff --git a/tools/eslint/node_modules/optionator/package.json b/tools/eslint/node_modules/optionator/package.json index da848b2852ee14..cbcd2da7df94cd 100644 --- a/tools/eslint/node_modules/optionator/package.json +++ b/tools/eslint/node_modules/optionator/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "optionator@^0.8.2", - "scope": null, - "escapedName": "optionator", - "name": "optionator", - "rawSpec": "^0.8.2", - "spec": ">=0.8.2 <0.9.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "optionator@>=0.8.2 <0.9.0", + "_from": "optionator@^0.8.2", "_id": "optionator@0.8.2", - "_inCache": true, - "_location": "/optionator", - "_nodeVersion": "6.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/optionator-0.8.2.tgz_1474487142656_0.7901301246602088" - }, - "_npmUser": { - "name": "gkz", - "email": "z@georgezahariev.com" - }, - "_npmVersion": "3.9.0", + "_inBundle": false, + "_integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "_location": "/eslint/optionator", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "optionator@^0.8.2", - "scope": null, - "escapedName": "optionator", "name": "optionator", + "escapedName": "optionator", "rawSpec": "^0.8.2", - "spec": ">=0.8.2 <0.9.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.8.2" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "_shasum": "364c5e409d3f4d6301d6c0b4c05bba50180aeb64", - "_shrinkwrap": null, "_spec": "optionator@^0.8.2", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" @@ -52,6 +29,7 @@ "bugs": { "url": "https://github.com/gkz/optionator/issues" }, + "bundleDependencies": false, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.4", @@ -60,17 +38,13 @@ "type-check": "~0.3.2", "wordwrap": "~1.0.0" }, + "deprecated": false, "description": "option parsing and help generation", "devDependencies": { "istanbul": "~0.4.1", "livescript": "~1.5.0", "mocha": "~3.0.2" }, - "directories": {}, - "dist": { - "shasum": "364c5e409d3f4d6301d6c0b4c05bba50180aeb64", - "tarball": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz" - }, "engines": { "node": ">= 0.8.0" }, @@ -79,7 +53,6 @@ "README.md", "LICENSE" ], - "gitHead": "191de235d5afa47ebb655fc0efbc2b616263d81b", "homepage": "https://github.com/gkz/optionator", "keywords": [ "options", @@ -89,15 +62,7 @@ ], "license": "MIT", "main": "./lib/", - "maintainers": [ - { - "name": "gkz", - "email": "z@georgezahariev.com" - } - ], "name": "optionator", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/gkz/optionator.git" diff --git a/tools/eslint/node_modules/os-tmpdir/package.json b/tools/eslint/node_modules/os-tmpdir/package.json index bc524c47eea39f..0cdb062e47a03a 100644 --- a/tools/eslint/node_modules/os-tmpdir/package.json +++ b/tools/eslint/node_modules/os-tmpdir/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "os-tmpdir@~1.0.1", - "scope": null, - "escapedName": "os-tmpdir", - "name": "os-tmpdir", - "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/tmp" - ] - ], - "_from": "os-tmpdir@>=1.0.1 <1.1.0", + "_from": "os-tmpdir@~1.0.1", "_id": "os-tmpdir@1.0.2", - "_inCache": true, - "_location": "/os-tmpdir", - "_nodeVersion": "6.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/os-tmpdir-1.0.2.tgz_1475211274587_0.14931037812493742" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "3.10.3", + "_inBundle": false, + "_integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "_location": "/eslint/os-tmpdir", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "os-tmpdir@~1.0.1", - "scope": null, - "escapedName": "os-tmpdir", "name": "os-tmpdir", + "escapedName": "os-tmpdir", "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.1" }, "_requiredBy": [ - "/tmp" + "/eslint/tmp" ], "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "_shasum": "bbe67406c79aa85c5cfec766fe5734555dfa1274", - "_shrinkwrap": null, "_spec": "os-tmpdir@~1.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/tmp", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/tmp", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/os-tmpdir/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Node.js os.tmpdir() ponyfill", "devDependencies": { "ava": "*", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "bbe67406c79aa85c5cfec766fe5734555dfa1274", - "tarball": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "1abf9cf5611b4be7377060ea67054b45cbf6813c", "homepage": "https://github.com/sindresorhus/os-tmpdir#readme", "keywords": [ "built-in", @@ -89,15 +61,7 @@ "environment" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "os-tmpdir", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/os-tmpdir.git" diff --git a/tools/eslint/node_modules/parse-entities/history.md b/tools/eslint/node_modules/parse-entities/history.md deleted file mode 100644 index 135fe1e0969300..00000000000000 --- a/tools/eslint/node_modules/parse-entities/history.md +++ /dev/null @@ -1,23 +0,0 @@ - - - - -1.1.0 / 2016-07-31 -================== - -* Add new `nonTerminated` setting ([`eed693c`](https://github.com/wooorm/parse-entities/commit/eed693c)) - -1.0.2 / 2015-12-29 -================== - -* Fix legacy entity support ([7bf652a](https://github.com/wooorm/parse-entities/commit/7bf652a)) - -1.0.1 / 2015-12-27 -================== - -* Update mdast to remark ([8b158ad](https://github.com/wooorm/parse-entities/commit/8b158ad)) -* Fix escaping in `readme.md` ([c743fa2](https://github.com/wooorm/parse-entities/commit/c743fa2)) -* Fix missing dependencies in `component.json` ([cbdd3da](https://github.com/wooorm/parse-entities/commit/cbdd3da)) - -1.0.0 / 2015-12-23 -================== diff --git a/tools/eslint/node_modules/parse-entities/index.js b/tools/eslint/node_modules/parse-entities/index.js index 810685343348d7..f2c9e02a52d4bf 100644 --- a/tools/eslint/node_modules/parse-entities/index.js +++ b/tools/eslint/node_modules/parse-entities/index.js @@ -1,16 +1,6 @@ -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module parse-entities - * @fileoverview Parse HTML character references: fast, spec-compliant, - * positional information. - */ - 'use strict'; /* Dependencies. */ -var has = require('has'); var characterEntities = require('character-entities'); var legacy = require('character-entities-legacy'); var invalid = require('character-reference-invalid'); @@ -22,6 +12,7 @@ var alphanumerical = require('is-alphanumerical'); module.exports = wrapper; /* Methods. */ +var own = {}.hasOwnProperty; var fromCharCode = String.fromCharCode; var noop = Function.prototype; @@ -100,14 +91,10 @@ MESSAGES[NUMERIC_DISALLOWED] = NUMERIC_REFERENCE + ' cannot be disallowed'; MESSAGES[NUMERIC_PROHIBITED] = NUMERIC_REFERENCE + ' cannot be outside the ' + 'permissible Unicode range'; -/** - * Wrap to ensure clean parameters are given to `parse`. - * - * @param {string} value - Value with entities. - * @param {Object?} [options] - Configuration. - */ +/* Wrap to ensure clean parameters are given to `parse`. */ function wrapper(value, options) { var settings = {}; + var option; var key; if (!options) { @@ -115,7 +102,8 @@ function wrapper(value, options) { } for (key in defaults) { - settings[key] = options[key] == null ? defaults[key] : options[key]; + option = options[key]; + settings[key] = option === null || option === undefined ? defaults[key] : option; } if (settings.position.indent || settings.position.start) { @@ -126,12 +114,7 @@ function wrapper(value, options) { return parse(value, settings); } -/** - * Parse entities. - * - * @param {string} value - Value to tokenise. - * @param {Object?} [settings] - Configuration. - */ +/* Parse entities. */ function parse(value, settings) { var additional = settings.additional; var nonTerminated = settings.nonTerminated; @@ -227,7 +210,9 @@ function parse(value, settings) { continue; } - start = begin = end = index + 1; + start = index + 1; + begin = start; + end = start; /* Numerical entity. */ if (following !== OCTOTHORP) { @@ -249,7 +234,9 @@ function parse(value, settings) { } } - entityCharacters = entity = characters = EMPTY; + entityCharacters = EMPTY; + entity = EMPTY; + characters = EMPTY; test = TESTS[type]; end--; @@ -267,7 +254,7 @@ function parse(value, settings) { * last viable named reference. This * ensures we do not need to walk backwards * later. */ - if (type === NAMED && has(legacy, characters)) { + if (type === NAMED && own.call(legacy, characters)) { entityCharacters = characters; entity = legacy[characters]; } @@ -278,7 +265,7 @@ function parse(value, settings) { if (terminated) { end++; - if (type === NAMED && has(characterEntities, characters)) { + if (type === NAMED && own.call(characterEntities, characters)) { entityCharacters = characters; entity = characterEntities[characters]; } @@ -419,12 +406,7 @@ function parse(value, settings) { /* Return the reduced nodes, and any possible warnings. */ return result.join(EMPTY); - /** - * Get current position. - * - * @return {Object} - Positional information of a - * single point. - */ + /* Get current position. */ function now() { return { line: line, @@ -433,15 +415,7 @@ function parse(value, settings) { }; } - /** - * “Throw” a parse-error: a warning. - * - * @param {number} code - Identifier of reason for - * failing. - * @param {number} offset - Offset in characters from - * the current position point at which the - * parse-error ocurred, cannot point past newlines. - */ + /* “Throw” a parse-error: a warning. */ function parseError(code, offset) { var position = now(); @@ -451,23 +425,14 @@ function parse(value, settings) { handleWarning.call(warningContext, MESSAGES[code], position, code); } - /** - * Get character at position. - * - * @param {number} position - Indice of character in `value`. - * @return {string} - Character at `position` in - * `value`. - */ + /* Get character at position. */ function at(position) { return value.charAt(position); } - /** - * Flush `queue` (normal text). Macro invoked before + /* Flush `queue` (normal text). Macro invoked before * each entity and at the end of `value`. - * - * Does nothing when `queue` is empty. - */ + * Does nothing when `queue` is empty. */ function flush() { if (queue) { result.push(queue); @@ -484,24 +449,13 @@ function parse(value, settings) { } } -/** - * Check whether `character` is outside the permissible - * unicode range. - * - * @param {number} code - Value. - * @return {boolean} - Whether `character` is an - * outside the permissible unicode range. - */ +/* Check if `character` is outside the permissible + * unicode range. */ function isProhibited(code) { return (code >= 0xD800 && code <= 0xDFFF) || (code > 0x10FFFF); } -/** - * Check whether `character` is disallowed. - * - * @param {number} code - Value. - * @return {boolean} - Whether `character` is disallowed. - */ +/* Check if `character` is disallowed. */ function isWarning(code) { if ( (code >= 0x0001 && code <= 0x0008) || diff --git a/tools/eslint/node_modules/parse-entities/package.json b/tools/eslint/node_modules/parse-entities/package.json index 065d95a54a09f9..d37544983b1fe6 100644 --- a/tools/eslint/node_modules/parse-entities/package.json +++ b/tools/eslint/node_modules/parse-entities/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "parse-entities@^1.0.2", - "scope": null, - "escapedName": "parse-entities", - "name": "parse-entities", - "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "parse-entities@>=1.0.2 <2.0.0", - "_id": "parse-entities@1.1.0", - "_inCache": true, + "_from": "parse-entities@^1.0.2", + "_id": "parse-entities@1.1.1", + "_inBundle": false, + "_integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", "_location": "/parse-entities", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/parse-entities-1.1.0.tgz_1469964484071_0.15948437829501927" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "parse-entities@^1.0.2", - "scope": null, - "escapedName": "parse-entities", "name": "parse-entities", + "escapedName": "parse-entities", "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.2" }, "_requiredBy": [ "/remark-parse", "/remark-stringify" ], - "_resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.0.tgz", - "_shasum": "4bc58f35fdc8e65dded35a12f2e40223ca24a3f7", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", + "_shasum": "8112d88471319f27abae4d64964b122fe4e1b890", "_spec": "parse-entities@^1.0.2", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -54,6 +31,7 @@ "bugs": { "url": "https://github.com/wooorm/parse-entities/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -65,33 +43,24 @@ "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", - "has": "^1.0.1", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" }, + "deprecated": false, "description": "Parse HTML character references: fast, spec-compliant, positional information", "devDependencies": { - "browserify": "^13.0.0", + "browserify": "^14.0.0", "esmangle": "^1.0.0", - "nyc": "^7.1.0", - "remark-cli": "^1.0.0", - "remark-comment-config": "^4.0.0", - "remark-github": "^5.0.0", - "remark-lint": "^4.0.0", - "remark-validate-links": "^4.0.0", + "nyc": "^11.0.0", + "remark-cli": "^3.0.0", + "remark-preset-wooorm": "^3.0.0", "tape": "^4.2.0", - "xo": "^0.16.0" - }, - "directories": {}, - "dist": { - "shasum": "4bc58f35fdc8e65dded35a12f2e40223ca24a3f7", - "tarball": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.0.tgz" + "xo": "^0.18.0" }, "files": [ "index.js" ], - "gitHead": "5ff1136a4921a216e7baaefa23febb40d68b4712", "homepage": "https://github.com/wooorm/parse-entities#readme", "keywords": [ "parse", @@ -102,12 +71,6 @@ "entities" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "parse-entities", "nyc": { "check-coverage": true, @@ -115,23 +78,10 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { - "output": true, - "plugins": { - "lint": { - "heading-increment": false, - "list-item-spacing": false, - "no-duplicate-headings": false - }, - "github": null, - "comment-config": null, - "validate-links": null - }, - "settings": { - "bullet": "*" - } + "plugins": [ + "preset-wooorm" + ] }, "repository": { "type": "git", @@ -141,27 +91,24 @@ "build": "npm run build-md && npm run build-bundle && npm run build-mangle", "build-bundle": "browserify index.js --bare -s parseEntities > parse-entities.js", "build-mangle": "esmangle parse-entities.js > parse-entities.min.js", - "build-md": "remark . --quiet --frail", + "build-md": "remark . -qfo", "lint": "xo", "test": "npm run build && npm run lint && npm run test-coverage", "test-api": "node test.js", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.1.0", + "version": "1.1.1", "xo": { "space": true, + "esnext": false, "rules": { "guard-for-in": "off", "no-negated-condition": "off", "max-depth": "off", - "max-lines": "off", - "complexity": "off", - "no-eq-null": "off", - "eqeqeq": "off" + "complexity": "off" }, "ignores": [ - "parse-entities.js", - "parse-entities.min.js" + "parse-entities.js" ] } } diff --git a/tools/eslint/node_modules/parse-entities/readme.md b/tools/eslint/node_modules/parse-entities/readme.md index f966d75a493dac..9361031183df9b 100644 --- a/tools/eslint/node_modules/parse-entities/readme.md +++ b/tools/eslint/node_modules/parse-entities/readme.md @@ -17,13 +17,13 @@ npm install parse-entities var decode = require('parse-entities'); decode('alpha & bravo'); -// alpha & bravo +//=> alpha & bravo decode('charlie ©cat; delta'); -// charlie ©cat; delta +//=> charlie ©cat; delta decode('echo © foxtrot ≠ golf 𝌆 hotel'); -// echo © foxtrot ≠ golf 𝌆 hotel +//=> echo © foxtrot ≠ golf 𝌆 hotel ``` ## API @@ -34,28 +34,28 @@ decode('echo © foxtrot ≠ golf 𝌆 hotel'); * `additional` (`string`, optional, default: `''`) — Additional character to accept when following an ampersand (without - error); + error) * `attribute` (`boolean`, optional, default: `false`) - — Whether to parse `value` as an attribute value; + — Whether to parse `value` as an attribute value * `nonTerminated` (`boolean`, default: `true`) — Whether to allow non-terminated entities, such as `©cat` to `©cat`. This behaviour is spec-compliant but can lead to unexpected - results; + results * `warning` ([`Function`][warning], optional) - — Error handler; + — Error handler * `text` ([`Function`][text], optional) - — Text handler; + — Text handler * `reference` ([`Function`][reference], - optional) — Reference handler; + optional) — Reference handler * `warningContext` (`'*'`, optional) - — Context used when invoking `warning`; + — Context used when invoking `warning` * `textContext` (`'*'`, optional) - — Context used when invoking `text`; + — Context used when invoking `text` * `referenceContext` (`'*'`, optional) - — Context used when invoking `reference`; + — Context used when invoking `reference` * `position` (`Location` or `Position`, optional) — Starting `position` of `value`, useful when dealing with values - nested in some sort of syntax tree. The default is: + nested in some sort of syntax tree. The default is: ```json { @@ -83,11 +83,11 @@ Error handler. ###### Parameters * `reason` (`string`) - — Reason (human-readable) for triggering a parse error; + — Reason (human-readable) for triggering a parse error * `position` (`Position`) - — Place at which the parse error occurred; + — Place at which the parse error occurred * `code` (`number`) - — Identifier of reason for triggering a parse error. + — Identifier of reason for triggering a parse error The following codes are used: @@ -111,8 +111,8 @@ Text handler. ###### Parameters -* `value` (`string`) — String of content; -* `location` (`Location`) — Location at which `value` starts and ends. +* `value` (`string`) — String of content +* `location` (`Location`) — Location at which `value` starts and ends ### `function reference(value, location, source)` @@ -124,9 +124,9 @@ Character reference handler. ###### Parameters -* `value` (`string`) — Encoded character reference; -* `location` (`Location`) — Location at which `value` starts and ends; -* `source` (`Location`) — Source of character reference. +* `value` (`string`) — Encoded character reference +* `location` (`Location`) — Location at which `value` starts and ends +* `source` (`Location`) — Source of character reference ## License diff --git a/tools/eslint/node_modules/parse5/package.json b/tools/eslint/node_modules/parse5/package.json index 1bef8163f30c4f..b3929ca6d5f1e3 100644 --- a/tools/eslint/node_modules/parse5/package.json +++ b/tools/eslint/node_modules/parse5/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "parse5@^2.2.2", - "scope": null, - "escapedName": "parse5", - "name": "parse5", - "rawSpec": "^2.2.2", - "spec": ">=2.2.2 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/eslint-plugin-markdown" - ] - ], - "_from": "parse5@>=2.2.2 <3.0.0", + "_from": "parse5@^2.2.2", "_id": "parse5@2.2.3", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=", "_location": "/parse5", - "_nodeVersion": "5.4.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/parse5-2.2.3.tgz_1476879539034_0.8995897020213306" - }, - "_npmUser": { - "name": "inikulin", - "email": "ifaaan@gmail.com" - }, - "_npmVersion": "3.3.12", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "parse5@^2.2.2", - "scope": null, - "escapedName": "parse5", "name": "parse5", + "escapedName": "parse5", "rawSpec": "^2.2.2", - "spec": ">=2.2.2 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.2.2" }, "_requiredBy": [ "/eslint-plugin-markdown" ], "_resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", "_shasum": "0c4fc41c1000c5e6b93d48b03f8083837834e9f6", - "_shrinkwrap": null, "_spec": "parse5@^2.2.2", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/eslint-plugin-markdown", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-plugin-markdown", "author": { "name": "Ivan Nikulin", "email": "ifaaan@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/inikulin/parse5/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Alan Clarke", @@ -77,7 +55,7 @@ "url": "http://slang.cx" } ], - "dependencies": {}, + "deprecated": false, "description": "WHATWG HTML5 specification-compliant, fast and ready for production HTML parsing/serialization toolset for Node.js", "devDependencies": { "del": "^2.0.2", @@ -94,15 +72,9 @@ "publish-please": "^2.2.0", "through2": "^2.0.0" }, - "directories": {}, - "dist": { - "shasum": "0c4fc41c1000c5e6b93d48b03f8083837834e9f6", - "tarball": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz" - }, "files": [ "lib" ], - "gitHead": "a06ec5006ee88f55d124d195b32ba3d261791acf", "homepage": "https://github.com/inikulin/parse5", "keywords": [ "html", @@ -127,15 +99,7 @@ ], "license": "MIT", "main": "./lib/index.js", - "maintainers": [ - { - "name": "inikulin", - "email": "ifaaan@gmail.com" - } - ], "name": "parse5", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/inikulin/parse5.git" diff --git a/tools/eslint/node_modules/path-is-absolute/package.json b/tools/eslint/node_modules/path-is-absolute/package.json index 00ea0e90e92cc3..b9cd25392477c4 100644 --- a/tools/eslint/node_modules/path-is-absolute/package.json +++ b/tools/eslint/node_modules/path-is-absolute/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "path-is-absolute@^1.0.0", - "scope": null, - "escapedName": "path-is-absolute", - "name": "path-is-absolute", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/glob" - ] - ], - "_from": "path-is-absolute@>=1.0.0 <2.0.0", + "_from": "path-is-absolute@^1.0.0", "_id": "path-is-absolute@1.0.1", - "_inCache": true, - "_location": "/path-is-absolute", - "_nodeVersion": "6.6.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/path-is-absolute-1.0.1.tgz_1475210523565_0.9876507974695414" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "3.10.3", + "_inBundle": false, + "_integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "_location": "/eslint/path-is-absolute", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "path-is-absolute@^1.0.0", - "scope": null, - "escapedName": "path-is-absolute", "name": "path-is-absolute", + "escapedName": "path-is-absolute", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/glob" + "/eslint/glob" ], "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "_shrinkwrap": null, "_spec": "path-is-absolute@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/glob", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/glob", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,23 +30,18 @@ "bugs": { "url": "https://github.com/sindresorhus/path-is-absolute/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Node.js 0.12 path.isAbsolute() ponyfill", "devDependencies": { "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f", - "tarball": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "edc91d348b21dac2ab65ea2fbec2868e2eff5eb6", "homepage": "https://github.com/sindresorhus/path-is-absolute#readme", "keywords": [ "path", @@ -91,15 +63,7 @@ "check" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "path-is-absolute", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/path-is-absolute.git" diff --git a/tools/eslint/node_modules/path-is-inside/package.json b/tools/eslint/node_modules/path-is-inside/package.json index cb334dcb07e2a1..ac720df1cf518f 100644 --- a/tools/eslint/node_modules/path-is-inside/package.json +++ b/tools/eslint/node_modules/path-is-inside/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "path-is-inside@^1.0.2", - "scope": null, - "escapedName": "path-is-inside", - "name": "path-is-inside", - "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "path-is-inside@>=1.0.2 <2.0.0", + "_from": "path-is-inside@^1.0.2", "_id": "path-is-inside@1.0.2", - "_inCache": true, - "_location": "/path-is-inside", - "_nodeVersion": "6.2.2", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/path-is-inside-1.0.2.tgz_1473550509195_0.936812553787604" - }, - "_npmUser": { - "name": "domenic", - "email": "d@domenic.me" - }, - "_npmVersion": "3.9.5", + "_inBundle": false, + "_integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "_location": "/eslint/path-is-inside", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "path-is-inside@^1.0.2", - "scope": null, - "escapedName": "path-is-inside", "name": "path-is-inside", + "escapedName": "path-is-inside", "rawSpec": "^1.0.2", - "spec": ">=1.0.2 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.2" }, "_requiredBy": [ "/eslint", - "/is-path-inside" + "/eslint/is-path-inside" ], "_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "_shasum": "365417dede44430d1c11af61027facf074bdfc53", - "_shrinkwrap": null, "_spec": "path-is-inside@^1.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Domenic Denicola", "email": "d@domenic.me", @@ -54,21 +31,16 @@ "bugs": { "url": "https://github.com/domenic/path-is-inside/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Tests whether one path is inside another path", "devDependencies": { "jshint": "~2.3.0", "mocha": "~1.15.1" }, - "directories": {}, - "dist": { - "shasum": "365417dede44430d1c11af61027facf074bdfc53", - "tarball": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" - }, "files": [ "lib" ], - "gitHead": "05a9bf7c5e008505539e14e96c4d2fc8b2c6d058", "homepage": "https://github.com/domenic/path-is-inside#readme", "keywords": [ "path", @@ -79,15 +51,7 @@ ], "license": "(WTFPL OR MIT)", "main": "lib/path-is-inside.js", - "maintainers": [ - { - "name": "domenic", - "email": "domenic@domenicdenicola.com" - } - ], "name": "path-is-inside", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/domenic/path-is-inside.git" diff --git a/tools/eslint/node_modules/pify/package.json b/tools/eslint/node_modules/pify/package.json index 5efdb071613cb3..c21ccdb2513c85 100644 --- a/tools/eslint/node_modules/pify/package.json +++ b/tools/eslint/node_modules/pify/package.json @@ -1,47 +1,28 @@ { - "_args": [ - [ - { - "raw": "pify@^2.0.0", - "scope": null, - "escapedName": "pify", - "name": "pify", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "pify@>=2.0.0 <3.0.0", + "_from": "pify@^2.0.0", "_id": "pify@2.3.0", - "_inCache": true, - "_location": "/pify", - "_nodeVersion": "4.2.1", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.14.7", + "_inBundle": false, + "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "_location": "/eslint/pify", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "pify@^2.0.0", - "scope": null, - "escapedName": "pify", "name": "pify", + "escapedName": "pify", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/del", - "/globby" + "/eslint/del", + "/eslint/globby" ], "_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c", - "_shrinkwrap": null, "_spec": "pify@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -50,7 +31,8 @@ "bugs": { "url": "https://github.com/sindresorhus/pify/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Promisify a callback-style function", "devDependencies": { "ava": "*", @@ -58,19 +40,13 @@ "v8-natives": "0.0.2", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c", - "tarball": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "2dd0d8b880e4ebcc5cc33ae126b02647418e4440", - "homepage": "https://github.com/sindresorhus/pify", + "homepage": "https://github.com/sindresorhus/pify#readme", "keywords": [ "promise", "promises", @@ -92,15 +68,7 @@ "es2015" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "pify", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/pify.git" diff --git a/tools/eslint/node_modules/pinkie-promise/package.json b/tools/eslint/node_modules/pinkie-promise/package.json index f9c64dcbf0c222..155ac88d3d3b64 100644 --- a/tools/eslint/node_modules/pinkie-promise/package.json +++ b/tools/eslint/node_modules/pinkie-promise/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "pinkie-promise@^2.0.0", - "scope": null, - "escapedName": "pinkie-promise", - "name": "pinkie-promise", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "pinkie-promise@>=2.0.0 <3.0.0", + "_from": "pinkie-promise@^2.0.0", "_id": "pinkie-promise@2.0.1", - "_inCache": true, - "_location": "/pinkie-promise", - "_nodeVersion": "4.4.1", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/pinkie-promise-2.0.1.tgz_1460309839126_0.3422858319245279" - }, - "_npmUser": { - "name": "floatdrop", - "email": "floatdrop@gmail.com" - }, - "_npmVersion": "2.14.20", + "_inBundle": false, + "_integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "_location": "/eslint/pinkie-promise", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "pinkie-promise@^2.0.0", - "scope": null, - "escapedName": "pinkie-promise", "name": "pinkie-promise", + "escapedName": "pinkie-promise", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/del", - "/globby" + "/eslint/del", + "/eslint/globby" ], "_resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "_shasum": "2135d6dfa7a358c069ac9b178776288228450ffa", - "_shrinkwrap": null, "_spec": "pinkie-promise@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", @@ -54,26 +31,22 @@ "bugs": { "url": "https://github.com/floatdrop/pinkie-promise/issues" }, + "bundleDependencies": false, "dependencies": { "pinkie": "^2.0.0" }, + "deprecated": false, "description": "ES2015 Promise ponyfill", "devDependencies": { "mocha": "*" }, - "directories": {}, - "dist": { - "shasum": "2135d6dfa7a358c069ac9b178776288228450ffa", - "tarball": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "4a936c09c34ad591a25db93f1216d242de0d6184", - "homepage": "https://github.com/floatdrop/pinkie-promise", + "homepage": "https://github.com/floatdrop/pinkie-promise#readme", "keywords": [ "promise", "promises", @@ -83,15 +56,7 @@ "ponyfill" ], "license": "MIT", - "maintainers": [ - { - "name": "floatdrop", - "email": "floatdrop@gmail.com" - } - ], "name": "pinkie-promise", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/floatdrop/pinkie-promise.git" diff --git a/tools/eslint/node_modules/pinkie/package.json b/tools/eslint/node_modules/pinkie/package.json index 727839b3c74a46..86012bddd07a2e 100644 --- a/tools/eslint/node_modules/pinkie/package.json +++ b/tools/eslint/node_modules/pinkie/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "pinkie@^2.0.0", - "scope": null, - "escapedName": "pinkie", - "name": "pinkie", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/pinkie-promise" - ] - ], - "_from": "pinkie@>=2.0.0 <3.0.0", + "_from": "pinkie@^2.0.0", "_id": "pinkie@2.0.4", - "_inCache": true, - "_location": "/pinkie", - "_nodeVersion": "4.2.4", - "_npmUser": { - "name": "floatdrop", - "email": "floatdrop@gmail.com" - }, - "_npmVersion": "2.14.12", + "_inBundle": false, + "_integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "_location": "/eslint/pinkie", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "pinkie@^2.0.0", - "scope": null, - "escapedName": "pinkie", "name": "pinkie", + "escapedName": "pinkie", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/pinkie-promise" + "/eslint/pinkie-promise" ], "_resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "_shasum": "72556b80cfa0d48a974e80e77248e80ed4f7f870", - "_shrinkwrap": null, "_spec": "pinkie@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/pinkie-promise", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/pinkie-promise", "author": { "name": "Vsevolod Strukchinsky", "email": "floatdrop@gmail.com", @@ -49,7 +30,8 @@ "bugs": { "url": "https://github.com/floatdrop/pinkie/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Itty bitty little widdle twinkie pinkie ES2015 Promise implementation", "devDependencies": { "core-assert": "^0.1.1", @@ -59,19 +41,13 @@ "promises-aplus-tests": "*", "xo": "^0.10.1" }, - "directories": {}, - "dist": { - "shasum": "72556b80cfa0d48a974e80e77248e80ed4f7f870", - "tarball": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "8d4a92447a5c62bff9f89756caeb4c9c8770579b", - "homepage": "https://github.com/floatdrop/pinkie", + "homepage": "https://github.com/floatdrop/pinkie#readme", "keywords": [ "promise", "promises", @@ -79,15 +55,7 @@ "es6" ], "license": "MIT", - "maintainers": [ - { - "name": "floatdrop", - "email": "floatdrop@gmail.com" - } - ], "name": "pinkie", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/floatdrop/pinkie.git" diff --git a/tools/eslint/node_modules/pluralize/package.json b/tools/eslint/node_modules/pluralize/package.json index 4ea3d9adea0dc1..b6b977bf40a7a6 100644 --- a/tools/eslint/node_modules/pluralize/package.json +++ b/tools/eslint/node_modules/pluralize/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "pluralize@^4.0.0", - "scope": null, - "escapedName": "pluralize", - "name": "pluralize", - "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "pluralize@>=4.0.0 <5.0.0", + "_from": "pluralize@^4.0.0", "_id": "pluralize@4.0.0", - "_inCache": true, - "_location": "/pluralize", - "_nodeVersion": "7.3.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/pluralize-4.0.0.tgz_1488579510832_0.4302333474624902" - }, - "_npmUser": { - "name": "blakeembrey", - "email": "hello@blakeembrey.com" - }, - "_npmVersion": "3.10.10", + "_inBundle": false, + "_integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=", + "_location": "/eslint/pluralize", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "pluralize@^4.0.0", - "scope": null, - "escapedName": "pluralize", "name": "pluralize", + "escapedName": "pluralize", "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", "_shasum": "59b708c1c0190a2f692f1c7618c446b052fd1762", - "_shrinkwrap": null, "_spec": "pluralize@^4.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Blake Embrey", "email": "hello@blakeembrey.com", @@ -53,7 +30,8 @@ "bugs": { "url": "https://github.com/blakeembrey/pluralize/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Pluralize and singularize any word", "devDependencies": { "chai": "^3.2.0", @@ -61,15 +39,9 @@ "mocha": "^2.3.2", "semistandard": "^7.0.2" }, - "directories": {}, - "dist": { - "shasum": "59b708c1c0190a2f692f1c7618c446b052fd1762", - "tarball": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz" - }, "files": [ "pluralize.js" ], - "gitHead": "ce8fa7f7486d292195f4bd330e7376eeca0f3f1d", "homepage": "https://github.com/blakeembrey/pluralize#readme", "keywords": [ "plural", @@ -81,15 +53,7 @@ ], "license": "MIT", "main": "pluralize.js", - "maintainers": [ - { - "name": "blakeembrey", - "email": "me@blakeembrey.com" - } - ], "name": "pluralize", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/blakeembrey/pluralize.git" diff --git a/tools/eslint/node_modules/prelude-ls/package.json b/tools/eslint/node_modules/prelude-ls/package.json index 9b5e09e477d0ff..e8c9005cf60875 100644 --- a/tools/eslint/node_modules/prelude-ls/package.json +++ b/tools/eslint/node_modules/prelude-ls/package.json @@ -1,48 +1,29 @@ { - "_args": [ - [ - { - "raw": "prelude-ls@~1.1.2", - "scope": null, - "escapedName": "prelude-ls", - "name": "prelude-ls", - "rawSpec": "~1.1.2", - "spec": ">=1.1.2 <1.2.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/levn" - ] - ], - "_from": "prelude-ls@>=1.1.2 <1.2.0", + "_from": "prelude-ls@~1.1.2", "_id": "prelude-ls@1.1.2", - "_inCache": true, - "_location": "/prelude-ls", - "_nodeVersion": "0.11.15", - "_npmUser": { - "name": "gkz", - "email": "z@georgezahariev.com" - }, - "_npmVersion": "2.7.6", + "_inBundle": false, + "_integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "_location": "/eslint/prelude-ls", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "prelude-ls@~1.1.2", - "scope": null, - "escapedName": "prelude-ls", "name": "prelude-ls", + "escapedName": "prelude-ls", "rawSpec": "~1.1.2", - "spec": ">=1.1.2 <1.2.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.1.2" }, "_requiredBy": [ - "/levn", - "/optionator", - "/type-check" + "/eslint/levn", + "/eslint/optionator", + "/eslint/type-check" ], "_resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "_shasum": "21932a549f5e52ffd9a827f570e04be62a97da54", - "_shrinkwrap": null, "_spec": "prelude-ls@~1.1.2", - "_where": "/Users/trott/io.js/tools/node_modules/levn", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/levn", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" @@ -50,7 +31,8 @@ "bugs": { "url": "https://github.com/gkz/prelude-ls/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "prelude.ls is a functionally oriented utility library. It is powerful and flexible. Almost all of its functions are curried. It is written in, and is the recommended base library for, LiveScript.", "devDependencies": { "browserify": "~3.24.13", @@ -60,11 +42,6 @@ "sinon": "~1.10.2", "uglify-js": "~2.4.12" }, - "directories": {}, - "dist": { - "shasum": "21932a549f5e52ffd9a827f570e04be62a97da54", - "tarball": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - }, "engines": { "node": ">= 0.8.0" }, @@ -73,7 +50,6 @@ "README.md", "LICENSE" ], - "gitHead": "d69be8fd8a682321ba24eced17caf3a1b8ca73b8", "homepage": "http://preludels.com", "keywords": [ "prelude", @@ -96,15 +72,7 @@ } ], "main": "lib/", - "maintainers": [ - { - "name": "gkz", - "email": "z@georgezahariev.com" - } - ], "name": "prelude-ls", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/gkz/prelude-ls.git" diff --git a/tools/eslint/node_modules/process-nextick-args/package.json b/tools/eslint/node_modules/process-nextick-args/package.json index e19e61cf694eae..d72f5dd2ff5289 100644 --- a/tools/eslint/node_modules/process-nextick-args/package.json +++ b/tools/eslint/node_modules/process-nextick-args/package.json @@ -1,77 +1,41 @@ { - "_args": [ - [ - { - "raw": "process-nextick-args@~1.0.6", - "scope": null, - "escapedName": "process-nextick-args", - "name": "process-nextick-args", - "rawSpec": "~1.0.6", - "spec": ">=1.0.6 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "process-nextick-args@>=1.0.6 <1.1.0", + "_from": "process-nextick-args@~1.0.6", "_id": "process-nextick-args@1.0.7", - "_inCache": true, - "_location": "/process-nextick-args", - "_nodeVersion": "5.11.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/process-nextick-args-1.0.7.tgz_1462394251778_0.36989671061746776" - }, - "_npmUser": { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - "_npmVersion": "3.8.6", + "_inBundle": false, + "_integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "_location": "/eslint/process-nextick-args", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "process-nextick-args@~1.0.6", - "scope": null, - "escapedName": "process-nextick-args", "name": "process-nextick-args", + "escapedName": "process-nextick-args", "rawSpec": "~1.0.6", - "spec": ">=1.0.6 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.6" }, "_requiredBy": [ - "/readable-stream" + "/eslint/readable-stream" ], "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "_shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3", - "_shrinkwrap": null, "_spec": "process-nextick-args@~1.0.6", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "author": "", "bugs": { "url": "https://github.com/calvinmetcalf/process-nextick-args/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "process.nextTick but always with args", "devDependencies": { "tap": "~0.2.6" }, - "directories": {}, - "dist": { - "shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3", - "tarball": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "gitHead": "5c00899ab01dd32f93ad4b5743da33da91404f39", "homepage": "https://github.com/calvinmetcalf/process-nextick-args", "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - } - ], "name": "process-nextick-args", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git" diff --git a/tools/eslint/node_modules/progress/package.json b/tools/eslint/node_modules/progress/package.json index b54aa3eafb6ec4..0a32f98b194878 100644 --- a/tools/eslint/node_modules/progress/package.json +++ b/tools/eslint/node_modules/progress/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "progress@^2.0.0", - "scope": null, - "escapedName": "progress", - "name": "progress", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "progress@>=2.0.0 <3.0.0", + "_from": "progress@^2.0.0", "_id": "progress@2.0.0", - "_inCache": true, - "_location": "/progress", - "_nodeVersion": "6.9.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/progress-2.0.0.tgz_1491323693801_0.8384695542044938" - }, - "_npmUser": { - "name": "thebigredgeek", - "email": "rhyneandrew@gmail.com" - }, - "_npmVersion": "4.0.3", + "_inBundle": false, + "_integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "_location": "/eslint/progress", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "progress@^2.0.0", - "scope": null, - "escapedName": "progress", "name": "progress", + "escapedName": "progress", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "_shasum": "8a1be366bf8fc23db2bd23f10c6fe920b4389d1f", - "_shrinkwrap": null, "_spec": "progress@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" @@ -52,6 +29,7 @@ "bugs": { "url": "https://github.com/visionmedia/node-progress/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Christoffer Hallas", @@ -67,17 +45,11 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Flexible ascii progress bar", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "8a1be366bf8fc23db2bd23f10c6fe920b4389d1f", - "tarball": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz" - }, "engines": { "node": ">=0.4.0" }, - "gitHead": "d84326ed9ab7720592b6bbc9c108849cd2a79908", "homepage": "https://github.com/visionmedia/node-progress#readme", "keywords": [ "cli", @@ -85,35 +57,10 @@ ], "license": "MIT", "main": "./index.js", - "maintainers": [ - { - "name": "hallas", - "email": "christoffer.hallas@gmail.com" - }, - { - "name": "prezjordan", - "email": "scalesjordan@gmail.com" - }, - { - "name": "thebigredgeek", - "email": "rhyneandrew@gmail.com" - }, - { - "name": "thejameskyle", - "email": "me@thejameskyle.com" - }, - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], "name": "progress", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/visionmedia/node-progress.git" }, - "scripts": {}, "version": "2.0.0" } diff --git a/tools/eslint/node_modules/readable-stream/README.md b/tools/eslint/node_modules/readable-stream/README.md index 3024d77c69567a..b391e0c8250d52 100644 --- a/tools/eslint/node_modules/readable-stream/README.md +++ b/tools/eslint/node_modules/readable-stream/README.md @@ -1,6 +1,6 @@ # readable-stream -***Node-core v7.0.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) +***Node-core v8.1.2 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) [![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) @@ -18,7 +18,7 @@ npm install --save readable-stream This package is a mirror of the Streams2 and Streams3 implementations in Node-core. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v7.10.0/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.1.2/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_duplex.js b/tools/eslint/node_modules/readable-stream/lib/_stream_duplex.js index 736693b8400fed..c599463dd8b9a1 100644 --- a/tools/eslint/node_modules/readable-stream/lib/_stream_duplex.js +++ b/tools/eslint/node_modules/readable-stream/lib/_stream_duplex.js @@ -1,3 +1,24 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from @@ -7,6 +28,10 @@ /**/ +var processNextTick = require('process-nextick-args'); +/**/ + +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; for (var key in obj) { @@ -17,10 +42,6 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; -/**/ -var processNextTick = require('process-nextick-args'); -/**/ - /**/ var util = require('core-util-is'); util.inherits = require('inherits'); @@ -68,6 +89,34 @@ function onEndNT(self) { self.end(); } +Object.defineProperty(Duplex.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined || this._writableState === undefined) { + return false; + } + return this._readableState.destroyed && this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (this._readableState === undefined || this._writableState === undefined) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + this._writableState.destroyed = value; + } +}); + +Duplex.prototype._destroy = function (err, cb) { + this.push(null); + this.end(); + + processNextTick(cb, err); +}; + function forEach(xs, f) { for (var i = 0, l = xs.length; i < l; i++) { f(xs[i], i); diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_passthrough.js b/tools/eslint/node_modules/readable-stream/lib/_stream_passthrough.js index d06f71f1868d77..a9c835884828d8 100644 --- a/tools/eslint/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/tools/eslint/node_modules/readable-stream/lib/_stream_passthrough.js @@ -1,3 +1,24 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js b/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js index a01012e3cfbb70..2279be9f93705a 100644 --- a/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js +++ b/tools/eslint/node_modules/readable-stream/lib/_stream_readable.js @@ -1,11 +1,33 @@ -'use strict'; +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. -module.exports = Readable; +'use strict'; /**/ + var processNextTick = require('process-nextick-args'); /**/ +module.exports = Readable; + /**/ var isArray = require('isarray'); /**/ @@ -28,8 +50,16 @@ var EElistenerCount = function (emitter, type) { var Stream = require('./internal/streams/stream'); /**/ +// TODO(bmeurer): Change this back to const once hole checks are +// properly optimized away early in Ignition+TurboFan. /**/ var Buffer = require('safe-buffer').Buffer; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]' || Buffer.isBuffer(obj); +} /**/ /**/ @@ -48,6 +78,7 @@ if (debugUtil && debugUtil.debuglog) { /**/ var BufferList = require('./internal/streams/BufferList'); +var destroyImpl = require('./internal/streams/destroy'); var StringDecoder; util.inherits(Readable, Stream); @@ -86,7 +117,7 @@ function ReadableState(options, stream) { this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. - this.highWaterMark = ~~this.highWaterMark; + this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than @@ -100,10 +131,10 @@ function ReadableState(options, stream) { this.endEmitted = false; this.reading = false; - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. + // a flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. this.sync = true; // whenever we return null, then we set a flag to say @@ -113,15 +144,14 @@ function ReadableState(options, stream) { this.readableListening = false; this.resumeScheduled = false; + // has it been destroyed + this.destroyed = false; + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. this.defaultEncoding = options.defaultEncoding || 'utf8'; - // when piping, we only care about 'readable' events that happen - // after read()ing all the bytes and not getting any pushback. - this.ranOut = false; - // the number of writers that are awaiting a drain event in .pipe()s this.awaitDrain = 0; @@ -147,87 +177,129 @@ function Readable(options) { // legacy this.readable = true; - if (options && typeof options.read === 'function') this._read = options.read; + if (options) { + if (typeof options.read === 'function') this._read = options.read; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + } Stream.call(this); } +Object.defineProperty(Readable.prototype, 'destroyed', { + get: function () { + if (this._readableState === undefined) { + return false; + } + return this._readableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._readableState) { + return; + } + + // backward compatibility, the user is explicitly + // managing destroyed + this._readableState.destroyed = value; + } +}); + +Readable.prototype.destroy = destroyImpl.destroy; +Readable.prototype._undestroy = destroyImpl.undestroy; +Readable.prototype._destroy = function (err, cb) { + this.push(null); + cb(err); +}; + // Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; - - if (!state.objectMode && typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; + var skipChunkCheck; + + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding = encoding || state.defaultEncoding; + if (encoding !== state.encoding) { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + skipChunkCheck = true; } + } else { + skipChunkCheck = true; } - return readableAddChunk(this, state, chunk, encoding, false); + return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); }; // Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { - var state = this._readableState; - return readableAddChunk(this, state, chunk, '', true); + return readableAddChunk(this, chunk, null, true, false); }; -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -function readableAddChunk(stream, state, chunk, encoding, addToFront) { - var er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (chunk === null) { +function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { + var state = stream._readableState; + if (chunk === null) { state.reading = false; onEofChunk(stream, state); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (state.ended && !addToFront) { - var e = new Error('stream.push() after EOF'); - stream.emit('error', e); - } else if (state.endEmitted && addToFront) { - var _e = new Error('stream.unshift() after end event'); - stream.emit('error', _e); - } else { - var skipAdd; - if (state.decoder && !addToFront && !encoding) { - chunk = state.decoder.write(chunk); - skipAdd = !state.objectMode && chunk.length === 0; + } else { + var er; + if (!skipChunkCheck) er = chunkInvalid(state, chunk); + if (er) { + stream.emit('error', er); + } else if (state.objectMode || chunk && chunk.length > 0) { + if (typeof chunk !== 'string' && Object.getPrototypeOf(chunk) !== Buffer.prototype && !state.objectMode) { + chunk = _uint8ArrayToBuffer(chunk); } - if (!addToFront) state.reading = false; - - // Don't add to the buffer if we've decoded to an empty string chunk and - // we're not in object mode - if (!skipAdd) { - // if we want the data now, just emit it. - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); + if (addToFront) { + if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); + } else if (state.ended) { + stream.emit('error', new Error('stream.push() after EOF')); + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); + addChunk(stream, state, chunk, false); } } - - maybeReadMore(stream, state); + } else if (!addToFront) { + state.reading = false; } - } else if (!addToFront) { - state.reading = false; } return needMoreData(state); } +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync) { + stream.emit('data', chunk); + stream.read(0); + } else { + // update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); + + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +function chunkInvalid(state, chunk) { + var er; + if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { + er = new TypeError('Invalid non-string/buffer chunk'); + } + return er; +} + // if it's past the high water mark, we can push in some more. // Also, if we have no data yet, we can stand some // more bytes. This is to work around cases where hwm=0, @@ -239,6 +311,10 @@ function needMoreData(state) { return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); } +Readable.prototype.isPaused = function () { + return this._readableState.flowing === false; +}; + // backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; @@ -387,14 +463,6 @@ Readable.prototype.read = function (n) { return ret; }; -function chunkInvalid(state, chunk) { - var er = null; - if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - function onEofChunk(stream, state) { if (state.ended) return; if (state.decoder) { @@ -486,10 +554,13 @@ Readable.prototype.pipe = function (dest, pipeOpts) { if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable) { + function onunpipe(readable, unpipeInfo) { debug('onunpipe'); if (readable === src) { - cleanup(); + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } } } @@ -608,6 +679,7 @@ function pipeOnDrain(src) { Readable.prototype.unpipe = function (dest) { var state = this._readableState; + var unpipeInfo = { hasUnpiped: false }; // if we're not piping anywhere, then do nothing. if (state.pipesCount === 0) return this; @@ -623,7 +695,7 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - if (dest) dest.emit('unpipe', this); + if (dest) dest.emit('unpipe', this, unpipeInfo); return this; } @@ -638,7 +710,7 @@ Readable.prototype.unpipe = function (dest) { state.flowing = false; for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this); + dests[i].emit('unpipe', this, unpipeInfo); }return this; } @@ -650,7 +722,7 @@ Readable.prototype.unpipe = function (dest) { state.pipesCount -= 1; if (state.pipesCount === 1) state.pipes = state.pipes[0]; - dest.emit('unpipe', this); + dest.emit('unpipe', this, unpipeInfo); return this; }; @@ -671,7 +743,7 @@ Readable.prototype.on = function (ev, fn) { if (!state.reading) { processNextTick(nReadingNextTick, this); } else if (state.length) { - emitReadable(this, state); + emitReadable(this); } } } diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js b/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js index cd2583207f5b20..a0c23173daf428 100644 --- a/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js +++ b/tools/eslint/node_modules/readable-stream/lib/_stream_transform.js @@ -1,3 +1,24 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where @@ -71,7 +92,9 @@ function afterTransform(stream, er, data) { var cb = ts.writecb; - if (!cb) return stream.emit('error', new Error('no writecb in Transform class')); + if (!cb) { + return stream.emit('error', new Error('write callback called multiple times')); + } ts.writechunk = null; ts.writecb = null; @@ -164,6 +187,15 @@ Transform.prototype._read = function (n) { } }; +Transform.prototype._destroy = function (err, cb) { + var _this = this; + + Duplex.prototype._destroy.call(this, err, function (err2) { + cb(err2); + _this.emit('close'); + }); +}; + function done(stream, er, data) { if (er) return stream.emit('error', er); diff --git a/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js b/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js index e9701f500727cf..ad38c6aa8db373 100644 --- a/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js +++ b/tools/eslint/node_modules/readable-stream/lib/_stream_writable.js @@ -1,15 +1,58 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. 'use strict'; -module.exports = Writable; - /**/ + var processNextTick = require('process-nextick-args'); /**/ +module.exports = Writable; + +/* */ +function WriteReq(chunk, encoding, cb) { + this.chunk = chunk; + this.encoding = encoding; + this.callback = cb; + this.next = null; +} + +// It seems a linked list but it is not +// there will be only 2 of these for each stream +function CorkedRequest(state) { + var _this = this; + + this.next = null; + this.entry = null; + this.finish = function () { + onCorkedFinish(_this, state); + }; +} +/* */ + /**/ var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; /**/ @@ -37,19 +80,20 @@ var Stream = require('./internal/streams/stream'); /**/ var Buffer = require('safe-buffer').Buffer; +function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk); +} +function _isUint8Array(obj) { + return Object.prototype.toString.call(obj) === '[object Uint8Array]' || Buffer.isBuffer(obj); +} /**/ +var destroyImpl = require('./internal/streams/destroy'); + util.inherits(Writable, Stream); function nop() {} -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - function WritableState(options, stream) { Duplex = Duplex || require('./_stream_duplex'); @@ -69,7 +113,10 @@ function WritableState(options, stream) { this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; // cast to ints. - this.highWaterMark = ~~this.highWaterMark; + this.highWaterMark = Math.floor(this.highWaterMark); + + // if _final has been called + this.finalCalled = false; // drain event flag. this.needDrain = false; @@ -80,6 +127,9 @@ function WritableState(options, stream) { // when 'finish' is emitted this.finished = false; + // has it been destroyed + this.destroyed = false; + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. @@ -161,7 +211,7 @@ WritableState.prototype.getBuffer = function getBuffer() { Object.defineProperty(WritableState.prototype, 'buffer', { get: internalUtil.deprecate(function () { return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.') + }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} })(); @@ -207,6 +257,10 @@ function Writable(options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; + + if (typeof options.destroy === 'function') this._destroy = options.destroy; + + if (typeof options.final === 'function') this._final = options.final; } Stream.call(this); @@ -247,7 +301,11 @@ function validChunk(stream, state, chunk, cb) { Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = Buffer.isBuffer(chunk); + var isBuf = _isUint8Array(chunk) && !state.objectMode; + + if (isBuf && !Buffer.isBuffer(chunk)) { + chunk = _uint8ArrayToBuffer(chunk); + } if (typeof encoding === 'function') { cb = encoding; @@ -302,8 +360,12 @@ function decodeChunk(state, chunk, encoding) { // If we return false, then we need a drain event, so set that flag. function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { - chunk = decodeChunk(state, chunk, encoding); - if (Buffer.isBuffer(chunk)) encoding = 'buffer'; + var newChunk = decodeChunk(state, chunk, encoding); + if (chunk !== newChunk) { + isBuf = true; + encoding = 'buffer'; + chunk = newChunk; + } } var len = state.objectMode ? 1 : chunk.length; @@ -315,7 +377,13 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (state.writing || state.corked) { var last = state.lastBufferedRequest; - state.lastBufferedRequest = new WriteReq(chunk, encoding, cb); + state.lastBufferedRequest = { + chunk: chunk, + encoding: encoding, + isBuf: isBuf, + callback: cb, + next: null + }; if (last) { last.next = state.lastBufferedRequest; } else { @@ -340,10 +408,26 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) processNextTick(cb, er);else cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); + if (sync) { + // defer the callback if we are being called synchronously + // to avoid piling up things on the stack + processNextTick(cb, er); + // this can emit finish, and it will always happen + // after error + processNextTick(finishMaybe, stream, state); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + } else { + // the caller expect this to happen before if + // it is async + cb(er); + stream._writableState.errorEmitted = true; + stream.emit('error', er); + // this can emit finish, but finish must + // always follow error + finishMaybe(stream, state); + } } function onwriteStateUpdate(state) { @@ -408,11 +492,14 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; + var allBuffers = true; while (entry) { buffer[count] = entry; + if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } + buffer.allBuffers = allBuffers; doWrite(stream, state, true, state.length, buffer, '', holder.finish); @@ -486,23 +573,37 @@ Writable.prototype.end = function (chunk, encoding, cb) { function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - -function prefinish(stream, state) { - if (!state.prefinished) { +function callFinal(stream, state) { + stream._final(function (err) { + state.pendingcb--; + if (err) { + stream.emit('error', err); + } state.prefinished = true; stream.emit('prefinish'); + finishMaybe(stream, state); + }); +} +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function') { + state.pendingcb++; + state.finalCalled = true; + processNextTick(callFinal, stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } } } function finishMaybe(stream, state) { var need = needFinish(state); if (need) { + prefinish(stream, state); if (state.pendingcb === 0) { - prefinish(stream, state); state.finished = true; stream.emit('finish'); - } else { - prefinish(stream, state); } } return need; @@ -518,26 +619,45 @@ function endWritable(stream, state, cb) { stream.writable = false; } -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; +function onCorkedFinish(corkReq, state, err) { + var entry = corkReq.entry; + corkReq.entry = null; + while (entry) { + var cb = entry.callback; + state.pendingcb--; + cb(err); + entry = entry.next; + } + if (state.corkedRequestsFree) { + state.corkedRequestsFree.next = corkReq; + } else { + state.corkedRequestsFree = corkReq; + } +} - this.next = null; - this.entry = null; - this.finish = function (err) { - var entry = _this.entry; - _this.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; +Object.defineProperty(Writable.prototype, 'destroyed', { + get: function () { + if (this._writableState === undefined) { + return false; } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = _this; - } else { - state.corkedRequestsFree = _this; + return this._writableState.destroyed; + }, + set: function (value) { + // we ignore the value if the stream + // has not been initialized yet + if (!this._writableState) { + return; } - }; -} \ No newline at end of file + + // backward compatibility, the user is explicitly + // managing destroyed + this._writableState.destroyed = value; + } +}); + +Writable.prototype.destroy = destroyImpl.destroy; +Writable.prototype._undestroy = destroyImpl.undestroy; +Writable.prototype._destroy = function (err, cb) { + this.end(); + cb(err); +}; diff --git a/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js b/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js index 82598c852179cb..d467615978d2c7 100644 --- a/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js +++ b/tools/eslint/node_modules/readable-stream/lib/internal/streams/BufferList.js @@ -2,63 +2,73 @@ /**/ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var Buffer = require('safe-buffer').Buffer; /**/ -module.exports = BufferList; - -function BufferList() { - this.head = null; - this.tail = null; - this.length = 0; +function copyBuffer(src, target, offset) { + src.copy(target, offset); } -BufferList.prototype.push = function (v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; -}; +module.exports = function () { + function BufferList() { + _classCallCheck(this, BufferList); -BufferList.prototype.unshift = function (v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; -}; + this.head = null; + this.tail = null; + this.length = 0; + } -BufferList.prototype.shift = function () { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; -}; + BufferList.prototype.push = function push(v) { + var entry = { data: v, next: null }; + if (this.length > 0) this.tail.next = entry;else this.head = entry; + this.tail = entry; + ++this.length; + }; -BufferList.prototype.clear = function () { - this.head = this.tail = null; - this.length = 0; -}; + BufferList.prototype.unshift = function unshift(v) { + var entry = { data: v, next: this.head }; + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + }; -BufferList.prototype.join = function (s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; -}; + BufferList.prototype.shift = function shift() { + if (this.length === 0) return; + var ret = this.head.data; + if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; + --this.length; + return ret; + }; -BufferList.prototype.concat = function (n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - p.data.copy(ret, i); - i += p.data.length; - p = p.next; - } - return ret; -}; \ No newline at end of file + BufferList.prototype.clear = function clear() { + this.head = this.tail = null; + this.length = 0; + }; + + BufferList.prototype.join = function join(s) { + if (this.length === 0) return ''; + var p = this.head; + var ret = '' + p.data; + while (p = p.next) { + ret += s + p.data; + }return ret; + }; + + BufferList.prototype.concat = function concat(n) { + if (this.length === 0) return Buffer.alloc(0); + if (this.length === 1) return this.head.data; + var ret = Buffer.allocUnsafe(n >>> 0); + var p = this.head; + var i = 0; + while (p) { + copyBuffer(p.data, ret, i); + i += p.data.length; + p = p.next; + } + return ret; + }; + + return BufferList; +}(); \ No newline at end of file diff --git a/tools/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js b/tools/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js new file mode 100644 index 00000000000000..b3e58c33bc9804 --- /dev/null +++ b/tools/eslint/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -0,0 +1,72 @@ +'use strict'; + +/**/ + +var processNextTick = require('process-nextick-args'); +/**/ + +// undocumented cb() API, needed for core, not for public API +function destroy(err, cb) { + var _this = this; + + var readableDestroyed = this._readableState && this._readableState.destroyed; + var writableDestroyed = this._writableState && this._writableState.destroyed; + + if (readableDestroyed || writableDestroyed) { + if (cb) { + cb(err); + } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { + processNextTick(emitErrorNT, this, err); + } + return; + } + + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + + if (this._readableState) { + this._readableState.destroyed = true; + } + + // if this is a duplex stream mark the writable part as destroyed as well + if (this._writableState) { + this._writableState.destroyed = true; + } + + this._destroy(err || null, function (err) { + if (!cb && err) { + processNextTick(emitErrorNT, _this, err); + if (_this._writableState) { + _this._writableState.errorEmitted = true; + } + } else if (cb) { + cb(err); + } + }); +} + +function undestroy() { + if (this._readableState) { + this._readableState.destroyed = false; + this._readableState.reading = false; + this._readableState.ended = false; + this._readableState.endEmitted = false; + } + + if (this._writableState) { + this._writableState.destroyed = false; + this._writableState.ended = false; + this._writableState.ending = false; + this._writableState.finished = false; + this._writableState.errorEmitted = false; + } +} + +function emitErrorNT(self, err) { + self.emit('error', err); +} + +module.exports = { + destroy: destroy, + undestroy: undestroy +}; \ No newline at end of file diff --git a/tools/eslint/node_modules/readable-stream/package.json b/tools/eslint/node_modules/readable-stream/package.json index 8798599dfa8fb1..b412c3dbbe7f4c 100644 --- a/tools/eslint/node_modules/readable-stream/package.json +++ b/tools/eslint/node_modules/readable-stream/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "readable-stream@^2.2.2", - "scope": null, - "escapedName": "readable-stream", - "name": "readable-stream", - "rawSpec": "^2.2.2", - "spec": ">=2.2.2 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/concat-stream" - ] - ], - "_from": "readable-stream@>=2.2.2 <3.0.0", - "_id": "readable-stream@2.2.11", - "_inCache": true, - "_location": "/readable-stream", - "_nodeVersion": "6.10.1", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/readable-stream-2.2.11.tgz_1496759274017_0.08746534585952759" - }, - "_npmUser": { - "name": "matteo.collina", - "email": "hello@matteocollina.com" - }, - "_npmVersion": "5.0.3", + "_from": "readable-stream@^2.2.2", + "_id": "readable-stream@2.3.2", + "_inBundle": false, + "_integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=", + "_location": "/eslint/readable-stream", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "readable-stream@^2.2.2", - "scope": null, - "escapedName": "readable-stream", "name": "readable-stream", + "escapedName": "readable-stream", "rawSpec": "^2.2.2", - "spec": ">=2.2.2 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.2.2" }, "_requiredBy": [ - "/concat-stream" + "/eslint/concat-stream" ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz", - "_shasum": "0796b31f8d7688007ff0b93a8088d34aa17c0f72", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", + "_shasum": "5a04df05e4f57fe3f0dc68fdd11dc5c97c7e6f4d", "_spec": "readable-stream@^2.2.2", - "_where": "/Users/trott/io.js/tools/node_modules/concat-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/concat-stream", "browser": { "util": false, "./readable.js": "./readable-browser.js", @@ -55,15 +32,17 @@ "bugs": { "url": "https://github.com/nodejs/readable-stream/issues" }, + "bundleDependencies": false, "dependencies": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~1.0.6", - "safe-buffer": "~5.0.1", + "safe-buffer": "~5.1.0", "string_decoder": "~1.0.0", "util-deprecate": "~1.0.1" }, + "deprecated": false, "description": "Streams3, a user-land copy of the stream library from Node.js", "devDependencies": { "assert": "~1.4.0", @@ -74,13 +53,6 @@ "tape": "~4.5.1", "zuul": "~3.10.0" }, - "directories": {}, - "dist": { - "integrity": "sha512-h+8+r3MKEhkiVrwdKL8aWs1oc1VvBu33ueshOvS26RsZQ3Amhx/oO3TKe4lApSV9ueY6as8EAh7mtuFjdlhg9Q==", - "shasum": "0796b31f8d7688007ff0b93a8088d34aa17c0f72", - "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.11.tgz" - }, - "gitHead": "98b5c7625364b302e418d0412429bc8d228d356a", "homepage": "https://github.com/nodejs/readable-stream#readme", "keywords": [ "readable", @@ -89,40 +61,12 @@ ], "license": "MIT", "main": "readable.js", - "maintainers": [ - { - "name": "cwmma", - "email": "calvin.metcalf@gmail.com" - }, - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "matteo.collina", - "email": "hello@matteocollina.com" - }, - { - "name": "nodejs-foundation", - "email": "build@iojs.org" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - }, - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], "name": "readable-stream", "nyc": { "include": [ "lib/**.js" ] }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/nodejs/readable-stream.git" @@ -135,5 +79,5 @@ "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js", "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml" }, - "version": "2.2.11" + "version": "2.3.2" } diff --git a/tools/eslint/node_modules/readable-stream/writable.js b/tools/eslint/node_modules/readable-stream/writable.js index 634ddcbe18df67..3211a6f80d1abc 100644 --- a/tools/eslint/node_modules/readable-stream/writable.js +++ b/tools/eslint/node_modules/readable-stream/writable.js @@ -3,6 +3,6 @@ var Writable = require("./lib/_stream_writable.js") if (process.env.READABLE_STREAM === 'disable') { module.exports = Stream && Stream.Writable || Writable +} else { + module.exports = Writable } - -module.exports = Writable diff --git a/tools/eslint/node_modules/remark-parse/package.json b/tools/eslint/node_modules/remark-parse/package.json index dc69a3cb7636cc..a39fd06ac898de 100644 --- a/tools/eslint/node_modules/remark-parse/package.json +++ b/tools/eslint/node_modules/remark-parse/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "remark-parse@^1.1.0", - "scope": null, - "escapedName": "remark-parse", - "name": "remark-parse", - "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark" - ] - ], - "_from": "remark-parse@>=1.1.0 <2.0.0", + "_from": "remark-parse@^1.1.0", "_id": "remark-parse@1.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-w8oQ+ajaBGFcKPCapOMEUQUm7CE=", "_location": "/remark-parse", - "_nodeVersion": "5.9.1", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/remark-parse-1.1.0.tgz_1470758336888_0.29067788645625114" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.7.3", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "remark-parse@^1.1.0", - "scope": null, - "escapedName": "remark-parse", "name": "remark-parse", + "escapedName": "remark-parse", "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.1.0" }, "_requiredBy": [ "/remark" ], "_resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-1.1.0.tgz", "_shasum": "c3ca10f9a8da04615c28f09aa4e304510526ec21", - "_shrinkwrap": null, "_spec": "remark-parse@^1.1.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/remark/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -75,13 +53,8 @@ "unist-util-remove-position": "^1.0.0", "vfile-location": "^2.0.0" }, + "deprecated": false, "description": "Markdown parser for remark", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "c3ca10f9a8da04615c28f09aa4e304510526ec21", - "tarball": "https://registry.npmjs.org/remark-parse/-/remark-parse-1.1.0.tgz" - }, "engines": { "node": ">=0.11.0" }, @@ -99,19 +72,10 @@ "parse" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "remark-parse", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/wooorm/remark/tree/master/packages/remark-parse" }, - "scripts": {}, "version": "1.1.0" } diff --git a/tools/eslint/node_modules/remark-stringify/package.json b/tools/eslint/node_modules/remark-stringify/package.json index 993650074fe9a9..873b3cb61a89b0 100644 --- a/tools/eslint/node_modules/remark-stringify/package.json +++ b/tools/eslint/node_modules/remark-stringify/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "remark-stringify@^1.1.0", - "scope": null, - "escapedName": "remark-stringify", - "name": "remark-stringify", - "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark" - ] - ], - "_from": "remark-stringify@>=1.1.0 <2.0.0", + "_from": "remark-stringify@^1.1.0", "_id": "remark-stringify@1.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-pxBeJbnuK/mkm3XSxCPxGwauIJI=", "_location": "/remark-stringify", - "_nodeVersion": "5.9.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/remark-stringify-1.1.0.tgz_1470758341818_0.04028692073188722" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.7.3", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "remark-stringify@^1.1.0", - "scope": null, - "escapedName": "remark-stringify", "name": "remark-stringify", + "escapedName": "remark-stringify", "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.1.0" }, "_requiredBy": [ "/remark" ], "_resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-1.1.0.tgz", "_shasum": "a7105e25b9ee2bf9a49b75d2c423f11b06ae2092", - "_shrinkwrap": null, "_spec": "remark-stringify@^1.1.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/remark/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -74,13 +52,8 @@ "stringify-entities": "^1.0.1", "unherit": "^1.0.4" }, + "deprecated": false, "description": "Markdown compiler for remark", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "a7105e25b9ee2bf9a49b75d2c423f11b06ae2092", - "tarball": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-1.1.0.tgz" - }, "engines": { "node": ">=0.11.0" }, @@ -98,19 +71,10 @@ "stringify" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "remark-stringify", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/wooorm/remark/tree/master/packages/remark-stringify" }, - "scripts": {}, "version": "1.1.0" } diff --git a/tools/eslint/node_modules/remark/cli.js b/tools/eslint/node_modules/remark/cli.js old mode 100755 new mode 100644 diff --git a/tools/eslint/node_modules/remark/package.json b/tools/eslint/node_modules/remark/package.json index 009c5ad7a1b9e8..1794d0447332bd 100644 --- a/tools/eslint/node_modules/remark/package.json +++ b/tools/eslint/node_modules/remark/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "remark@^5.0.0", - "scope": null, - "escapedName": "remark", - "name": "remark", - "rawSpec": "^5.0.0", - "spec": ">=5.0.0 <6.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/eslint-plugin-markdown" - ] - ], - "_from": "remark@>=5.0.0 <6.0.0", + "_from": "remark@^5.0.0", "_id": "remark@5.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-y0Y709vLS5l5STXu4c9x16jjBow=", "_location": "/remark", - "_nodeVersion": "5.9.1", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/remark-5.1.0.tgz_1470758345873_0.9820503767114133" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.7.3", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "remark@^5.0.0", - "scope": null, - "escapedName": "remark", "name": "remark", + "escapedName": "remark", "rawSpec": "^5.0.0", - "spec": ">=5.0.0 <6.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^5.0.0" }, "_requiredBy": [ "/eslint-plugin-markdown" ], "_resolved": "https://registry.npmjs.org/remark/-/remark-5.1.0.tgz", "_shasum": "cb463bd3dbcb4b99794935eee1cf71d7a8e3068c", - "_shrinkwrap": null, "_spec": "remark@^5.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/eslint-plugin-markdown", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/eslint-plugin-markdown", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -56,6 +33,7 @@ "bugs": { "url": "https://github.com/wooorm/remark/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -68,13 +46,8 @@ "remark-stringify": "^1.1.0", "unified": "^4.1.1" }, + "deprecated": false, "description": "Markdown processor powered by plugins", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "cb463bd3dbcb4b99794935eee1cf71d7a8e3068c", - "tarball": "https://registry.npmjs.org/remark/-/remark-5.1.0.tgz" - }, "engines": { "node": ">=0.11.0" }, @@ -94,15 +67,7 @@ "process" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "remark", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "https://github.com/wooorm/remark/tree/master/packages/remark" diff --git a/tools/eslint/node_modules/repeat-string/package.json b/tools/eslint/node_modules/repeat-string/package.json index 000d3ebf2cca0f..4565757323e432 100644 --- a/tools/eslint/node_modules/repeat-string/package.json +++ b/tools/eslint/node_modules/repeat-string/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "repeat-string@^1.5.4", - "scope": null, - "escapedName": "repeat-string", - "name": "repeat-string", - "rawSpec": "^1.5.4", - "spec": ">=1.5.4 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "repeat-string@>=1.5.4 <2.0.0", + "_from": "repeat-string@^1.5.4", "_id": "repeat-string@1.6.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "_location": "/repeat-string", - "_nodeVersion": "6.7.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/repeat-string-1.6.1.tgz_1477241638674_0.3764322670176625" - }, - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "_npmVersion": "3.10.3", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "repeat-string@^1.5.4", - "scope": null, - "escapedName": "repeat-string", "name": "repeat-string", + "escapedName": "repeat-string", "rawSpec": "^1.5.4", - "spec": ">=1.5.4 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.5.4" }, "_requiredBy": [ "/remark-parse", @@ -43,9 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "_shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "_shrinkwrap": null, "_spec": "repeat-string@^1.5.4", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Jon Schlinkert", "url": "http://github.com/jonschlinkert" @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/jonschlinkert/repeat-string/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Brian Woodward", @@ -80,7 +58,7 @@ "url": "wooorm.com" } ], - "dependencies": {}, + "deprecated": false, "description": "Repeat the given string n times. Fastest implementation for repeating a string.", "devDependencies": { "ansi-cyan": "^0.1.1", @@ -92,18 +70,12 @@ "text-table": "^0.2.0", "yargs-parser": "^4.0.2" }, - "directories": {}, - "dist": { - "shasum": "8dcae470e1c88abc2d600fff4a776286da75e637", - "tarball": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - }, "engines": { "node": ">=0.10" }, "files": [ "index.js" ], - "gitHead": "1a95c5d99a02999ccd2cf4663959a18bd2def7b8", "homepage": "https://github.com/jonschlinkert/repeat-string", "keywords": [ "fast", @@ -124,19 +96,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - { - "name": "doowb", - "email": "brian.woodward@gmail.com" - } - ], "name": "repeat-string", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/jonschlinkert/repeat-string.git" diff --git a/tools/eslint/node_modules/require-uncached/package.json b/tools/eslint/node_modules/require-uncached/package.json index dc7649a051b7ac..d2c2ae8abca4b8 100644 --- a/tools/eslint/node_modules/require-uncached/package.json +++ b/tools/eslint/node_modules/require-uncached/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "require-uncached@^1.0.3", - "scope": null, - "escapedName": "require-uncached", - "name": "require-uncached", - "rawSpec": "^1.0.3", - "spec": ">=1.0.3 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "require-uncached@>=1.0.3 <2.0.0", + "_from": "require-uncached@^1.0.3", "_id": "require-uncached@1.0.3", - "_inCache": true, - "_location": "/require-uncached", - "_nodeVersion": "4.6.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/require-uncached-1.0.3.tgz_1478234613915_0.2802360118366778" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.9", + "_inBundle": false, + "_integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "_location": "/eslint/require-uncached", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "require-uncached@^1.0.3", - "scope": null, - "escapedName": "require-uncached", "name": "require-uncached", + "escapedName": "require-uncached", "rawSpec": "^1.0.3", - "spec": ">=1.0.3 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.3" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", "_shasum": "4e0d56d6c9662fd31e43011c4b95aa49955421d3", - "_shrinkwrap": null, "_spec": "require-uncached@^1.0.3", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,28 +30,24 @@ "bugs": { "url": "https://github.com/sindresorhus/require-uncached/issues" }, + "bundleDependencies": false, "dependencies": { "caller-path": "^0.1.0", "resolve-from": "^1.0.0" }, + "deprecated": false, "description": "Require a module bypassing the cache", "devDependencies": { "ava": "*", "heapdump": "^0.3.7", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "4e0d56d6c9662fd31e43011c4b95aa49955421d3", - "tarball": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "c56e296e0028357629ea27c61c591c67e818db5f", "homepage": "https://github.com/sindresorhus/require-uncached#readme", "keywords": [ "require", @@ -86,15 +59,7 @@ "bypass" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "require-uncached", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/require-uncached.git" diff --git a/tools/eslint/node_modules/resolve-from/package.json b/tools/eslint/node_modules/resolve-from/package.json index 430e2f3783bf7a..43ed73fc26f610 100644 --- a/tools/eslint/node_modules/resolve-from/package.json +++ b/tools/eslint/node_modules/resolve-from/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "resolve-from@^1.0.0", - "scope": null, - "escapedName": "resolve-from", - "name": "resolve-from", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/require-uncached" - ] - ], - "_from": "resolve-from@>=1.0.0 <2.0.0", + "_from": "resolve-from@^1.0.0", "_id": "resolve-from@1.0.1", - "_inCache": true, - "_location": "/resolve-from", - "_nodeVersion": "4.1.1", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.14.4", + "_inBundle": false, + "_integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "_location": "/eslint/resolve-from", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "resolve-from@^1.0.0", - "scope": null, - "escapedName": "resolve-from", "name": "resolve-from", + "escapedName": "resolve-from", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ - "/require-uncached" + "/eslint/require-uncached" ], "_resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", "_shasum": "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226", - "_shrinkwrap": null, "_spec": "resolve-from@^1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/require-uncached", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/require-uncached", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -49,25 +30,20 @@ "bugs": { "url": "https://github.com/sindresorhus/resolve-from/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Resolve the path of a module like require.resolve() but from a given path", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226", - "tarball": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "bae2cf1d66c616ad2eb27e0fe85a10ff0f2dfc92", - "homepage": "https://github.com/sindresorhus/resolve-from", + "homepage": "https://github.com/sindresorhus/resolve-from#readme", "keywords": [ "require", "resolve", @@ -78,15 +54,7 @@ "path" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "resolve-from", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/resolve-from.git" diff --git a/tools/eslint/node_modules/restore-cursor/package.json b/tools/eslint/node_modules/restore-cursor/package.json index 19b4bc77079caf..083dd1de3a7ccd 100644 --- a/tools/eslint/node_modules/restore-cursor/package.json +++ b/tools/eslint/node_modules/restore-cursor/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "restore-cursor@^2.0.0", - "scope": null, - "escapedName": "restore-cursor", - "name": "restore-cursor", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/cli-cursor" - ] - ], - "_from": "restore-cursor@>=2.0.0 <3.0.0", + "_from": "restore-cursor@^2.0.0", "_id": "restore-cursor@2.0.0", - "_inCache": true, - "_location": "/restore-cursor", - "_nodeVersion": "4.6.2", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/restore-cursor-2.0.0.tgz_1483989430842_0.5384121846873313" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.15.11", + "_inBundle": false, + "_integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "_location": "/eslint/restore-cursor", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "restore-cursor@^2.0.0", - "scope": null, - "escapedName": "restore-cursor", "name": "restore-cursor", + "escapedName": "restore-cursor", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/cli-cursor" + "/eslint/cli-cursor" ], "_resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "_shasum": "9f7ee287f82fd326d4fd162923d62129eee0dfaf", - "_shrinkwrap": null, "_spec": "restore-cursor@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/cli-cursor", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/cli-cursor", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/restore-cursor/issues" }, + "bundleDependencies": false, "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" }, + "deprecated": false, "description": "Gracefully restore the CLI cursor on exit", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "9f7ee287f82fd326d4fd162923d62129eee0dfaf", - "tarball": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "0a0d317b421cb7f89d496ad95e2936b781b8f952", "homepage": "https://github.com/sindresorhus/restore-cursor#readme", "keywords": [ "exit", @@ -95,19 +67,10 @@ "command-line" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "restore-cursor", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/restore-cursor.git" }, - "scripts": {}, "version": "2.0.0" } diff --git a/tools/eslint/node_modules/rimraf/package.json b/tools/eslint/node_modules/rimraf/package.json index 4fccfeed97f95a..c65b404699cdb0 100644 --- a/tools/eslint/node_modules/rimraf/package.json +++ b/tools/eslint/node_modules/rimraf/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "rimraf@^2.2.8", - "scope": null, - "escapedName": "rimraf", - "name": "rimraf", - "rawSpec": "^2.2.8", - "spec": ">=2.2.8 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/del" - ] - ], - "_from": "rimraf@>=2.2.8 <3.0.0", + "_from": "rimraf@^2.2.8", "_id": "rimraf@2.6.1", - "_inCache": true, - "_location": "/rimraf", - "_nodeVersion": "8.0.0-pre", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/rimraf-2.6.1.tgz_1487908074285_0.8205490333493799" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "4.3.0", + "_inBundle": false, + "_integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "_location": "/eslint/rimraf", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "rimraf@^2.2.8", - "scope": null, - "escapedName": "rimraf", "name": "rimraf", + "escapedName": "rimraf", "rawSpec": "^2.2.8", - "spec": ">=2.2.8 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.2.8" }, "_requiredBy": [ - "/del" + "/eslint/del" ], "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "_shasum": "c2338ec643df7a1b7fe5c54fa86f57428a55f33d", - "_shrinkwrap": null, "_spec": "rimraf@^2.2.8", - "_where": "/Users/trott/io.js/tools/node_modules/del", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/del", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -56,38 +33,26 @@ "bugs": { "url": "https://github.com/isaacs/rimraf/issues" }, + "bundleDependencies": false, "dependencies": { "glob": "^7.0.5" }, + "deprecated": false, "description": "A deep deletion module for node (like `rm -rf`)", "devDependencies": { "mkdirp": "^0.5.1", "tap": "^10.1.2" }, - "directories": {}, - "dist": { - "shasum": "c2338ec643df7a1b7fe5c54fa86f57428a55f33d", - "tarball": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz" - }, "files": [ "LICENSE", "README.md", "bin.js", "rimraf.js" ], - "gitHead": "d84fe2cc6646d30a401baadcee22ae105a2d4909", "homepage": "https://github.com/isaacs/rimraf#readme", "license": "ISC", "main": "rimraf.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - } - ], "name": "rimraf", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/isaacs/rimraf.git" diff --git a/tools/eslint/node_modules/run-async/package.json b/tools/eslint/node_modules/run-async/package.json index 6af21195d3abab..bcb38d8de7d780 100644 --- a/tools/eslint/node_modules/run-async/package.json +++ b/tools/eslint/node_modules/run-async/package.json @@ -1,77 +1,50 @@ { - "_args": [ - [ - { - "raw": "run-async@^2.2.0", - "scope": null, - "escapedName": "run-async", - "name": "run-async", - "rawSpec": "^2.2.0", - "spec": ">=2.2.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "run-async@>=2.2.0 <3.0.0", + "_from": "run-async@^2.2.0", "_id": "run-async@2.3.0", - "_inCache": true, - "_location": "/run-async", - "_nodeVersion": "7.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/run-async-2.3.0.tgz_1480655904296_0.6874290609266609" - }, - "_npmUser": { - "name": "sboudrias", - "email": "admin@simonboudrias.com" - }, - "_npmVersion": "3.10.8", + "_inBundle": false, + "_integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "_location": "/eslint/run-async", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "run-async@^2.2.0", - "scope": null, - "escapedName": "run-async", "name": "run-async", + "escapedName": "run-async", "rawSpec": "^2.2.0", - "spec": ">=2.2.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.2.0" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "_shasum": "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0", - "_shrinkwrap": null, "_spec": "run-async@^2.2.0", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Simon Boudrias", "email": "admin@simonboudrias.com" }, "bugs": { - "url": "https://github.com/sboudrias/run-async/issues" + "url": "https://github.com/SBoudrias/run-async/issues" }, + "bundleDependencies": false, "dependencies": { "is-promise": "^2.1.0" }, + "deprecated": false, "description": "Utility method to run function either synchronously or asynchronously using the common `this.async()` style.", "devDependencies": { "mocha": "^3.1.2" }, - "directories": {}, - "dist": { - "shasum": "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0", - "tarball": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz" - }, "engines": { "node": ">=0.12.0" }, "files": [ "index.js" ], - "gitHead": "23767c9d7eaf6a6bb1241fc9e12776685258c50e", - "homepage": "https://github.com/sboudrias/run-async#readme", + "homepage": "https://github.com/SBoudrias/run-async#readme", "keywords": [ "flow", "flow-control", @@ -79,18 +52,10 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "sboudrias", - "email": "admin@simonboudrias.com" - } - ], "name": "run-async", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", - "url": "git+https://github.com/sboudrias/run-async.git" + "url": "git+https://github.com/SBoudrias/run-async.git" }, "scripts": { "test": "mocha -R spec" diff --git a/tools/eslint/node_modules/rx-lite-aggregates/package.json b/tools/eslint/node_modules/rx-lite-aggregates/package.json index edca5c2da1a199..c9447ae588d85a 100644 --- a/tools/eslint/node_modules/rx-lite-aggregates/package.json +++ b/tools/eslint/node_modules/rx-lite-aggregates/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "rx-lite-aggregates@^4.0.8", - "scope": null, - "escapedName": "rx-lite-aggregates", - "name": "rx-lite-aggregates", - "rawSpec": "^4.0.8", - "spec": ">=4.0.8 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "rx-lite-aggregates@>=4.0.8 <5.0.0", + "_from": "rx-lite-aggregates@^4.0.8", "_id": "rx-lite-aggregates@4.0.8", - "_inCache": true, - "_location": "/rx-lite-aggregates", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/rx-lite-aggregates-4.0.8.tgz_1455670078263_0.4768166351132095" - }, - "_npmUser": { - "name": "mattpodwysocki", - "email": "matthew.podwysocki@gmail.com" - }, - "_npmVersion": "3.7.1", + "_inBundle": false, + "_integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "_location": "/eslint/rx-lite-aggregates", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "rx-lite-aggregates@^4.0.8", - "scope": null, - "escapedName": "rx-lite-aggregates", "name": "rx-lite-aggregates", + "escapedName": "rx-lite-aggregates", "rawSpec": "^4.0.8", - "spec": ">=4.0.8 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.8" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", "_shasum": "753b87a89a11c95467c4ac1626c4efc4e05c67be", - "_shrinkwrap": null, "_spec": "rx-lite-aggregates@^4.0.8", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Cloud Programmability Team", "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" @@ -55,16 +32,13 @@ "bugs": { "url": "https://github.com/Reactive-Extensions/RxJS/issues" }, + "bundleDependencies": false, "dependencies": { "rx-lite": "*" }, + "deprecated": false, "description": "Lightweight library with aggregate functions for composing asynchronous and event-based operations in JavaScript", "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "753b87a89a11c95467c4ac1626c4efc4e05c67be", - "tarball": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz" - }, "homepage": "https://github.com/Reactive-Extensions/RxJS", "jam": { "main": "rx.lite.aggregates.js" @@ -83,20 +57,11 @@ } ], "main": "rx.lite.aggregates.js", - "maintainers": [ - { - "name": "mattpodwysocki", - "email": "matthew.podwysocki@gmail.com" - } - ], "name": "rx-lite-aggregates", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/Reactive-Extensions/RxJS.git" }, - "scripts": {}, "title": "Reactive Extensions for JavaScript (RxJS) Aggregates", "version": "4.0.8" } diff --git a/tools/eslint/node_modules/rx-lite/package.json b/tools/eslint/node_modules/rx-lite/package.json index 9fd4616d3a60e3..dc9feadb00cca0 100644 --- a/tools/eslint/node_modules/rx-lite/package.json +++ b/tools/eslint/node_modules/rx-lite/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "rx-lite@^4.0.8", - "scope": null, - "escapedName": "rx-lite", - "name": "rx-lite", - "rawSpec": "^4.0.8", - "spec": ">=4.0.8 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "rx-lite@>=4.0.8 <5.0.0", + "_from": "rx-lite@^4.0.8", "_id": "rx-lite@4.0.8", - "_inCache": true, - "_location": "/rx-lite", - "_nodeVersion": "5.5.0", - "_npmOperationalInternal": { - "host": "packages-6-west.internal.npmjs.com", - "tmp": "tmp/rx-lite-4.0.8.tgz_1455670072274_0.041623756755143404" - }, - "_npmUser": { - "name": "mattpodwysocki", - "email": "matthew.podwysocki@gmail.com" - }, - "_npmVersion": "3.7.1", + "_inBundle": false, + "_integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "_location": "/eslint/rx-lite", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "rx-lite@^4.0.8", - "scope": null, - "escapedName": "rx-lite", "name": "rx-lite", + "escapedName": "rx-lite", "rawSpec": "^4.0.8", - "spec": ">=4.0.8 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.8" }, "_requiredBy": [ - "/inquirer", - "/rx-lite-aggregates" + "/eslint/inquirer", + "/eslint/rx-lite-aggregates" ], "_resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", "_shasum": "0b1e11af8bc44836f04a6407e92da42467b79444", - "_shrinkwrap": null, "_spec": "rx-lite@^4.0.8", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Cloud Programmability Team", "url": "https://github.com/Reactive-Extensions/RxJS/blob/master/authors.txt" @@ -56,14 +33,11 @@ "bugs": { "url": "https://github.com/Reactive-Extensions/RxJS/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Lightweight library for composing asynchronous and event-based operations in JavaScript", "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "0b1e11af8bc44836f04a6407e92da42467b79444", - "tarball": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz" - }, "homepage": "https://github.com/Reactive-Extensions/RxJS", "jam": { "main": "rx.lite.js" @@ -82,20 +56,11 @@ } ], "main": "rx.lite.js", - "maintainers": [ - { - "name": "mattpodwysocki", - "email": "matthew.podwysocki@gmail.com" - } - ], "name": "rx-lite", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/Reactive-Extensions/RxJS.git" }, - "scripts": {}, "title": "Reactive Extensions for JavaScript (RxJS) Lite", "version": "4.0.8" } diff --git a/tools/eslint/node_modules/safe-buffer/README.md b/tools/eslint/node_modules/safe-buffer/README.md index 96eb387aa08586..e9a81afd0406f0 100644 --- a/tools/eslint/node_modules/safe-buffer/README.md +++ b/tools/eslint/node_modules/safe-buffer/README.md @@ -1,17 +1,20 @@ -# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][npm-url] +# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] -#### Safer Node.js Buffer API - -**Use the new Node.js v6 Buffer APIs (`Buffer.from`, `Buffer.alloc`, -`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in Node.js v0.10, v0.12, v4.x, and v5.x.** - -**Uses the built-in implementations when available.** - -[travis-image]: https://img.shields.io/travis/feross/safe-buffer.svg +[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg [travis-url]: https://travis-ci.org/feross/safe-buffer [npm-image]: https://img.shields.io/npm/v/safe-buffer.svg [npm-url]: https://npmjs.org/package/safe-buffer [downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg +[downloads-url]: https://npmjs.org/package/safe-buffer +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +#### Safer Node.js Buffer API + +**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`, +`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.** + +**Uses the built-in implementation when available.** ## install diff --git a/tools/eslint/node_modules/safe-buffer/browser.js b/tools/eslint/node_modules/safe-buffer/browser.js deleted file mode 100644 index 0bd12027d30ff7..00000000000000 --- a/tools/eslint/node_modules/safe-buffer/browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('buffer') diff --git a/tools/eslint/node_modules/safe-buffer/index.js b/tools/eslint/node_modules/safe-buffer/index.js index 74a7358ee82ac5..22438dabbbceef 100644 --- a/tools/eslint/node_modules/safe-buffer/index.js +++ b/tools/eslint/node_modules/safe-buffer/index.js @@ -1,12 +1,18 @@ +/* eslint-disable node/no-deprecated-api */ var buffer = require('buffer') +var Buffer = buffer.Buffer +// alternative to using Object.keys for old browsers +function copyProps (src, dst) { + for (var key in src) { + dst[key] = src[key] + } +} if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { module.exports = buffer } else { // Copy properties from require('buffer') - Object.keys(buffer).forEach(function (prop) { - exports[prop] = buffer[prop] - }) + copyProps(buffer, exports) exports.Buffer = SafeBuffer } @@ -15,9 +21,7 @@ function SafeBuffer (arg, encodingOrOffset, length) { } // Copy static methods from Buffer -Object.keys(Buffer).forEach(function (prop) { - SafeBuffer[prop] = Buffer[prop] -}) +copyProps(Buffer, SafeBuffer) SafeBuffer.from = function (arg, encodingOrOffset, length) { if (typeof arg === 'number') { diff --git a/tools/eslint/node_modules/safe-buffer/package.json b/tools/eslint/node_modules/safe-buffer/package.json index e3c290ac29c6ee..d75a467f476922 100644 --- a/tools/eslint/node_modules/safe-buffer/package.json +++ b/tools/eslint/node_modules/safe-buffer/package.json @@ -1,73 +1,44 @@ { - "_args": [ - [ - { - "raw": "safe-buffer@~5.0.1", - "scope": null, - "escapedName": "safe-buffer", - "name": "safe-buffer", - "rawSpec": "~5.0.1", - "spec": ">=5.0.1 <5.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "safe-buffer@>=5.0.1 <5.1.0", - "_id": "safe-buffer@5.0.1", - "_inCache": true, - "_location": "/safe-buffer", - "_nodeVersion": "4.4.5", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/safe-buffer-5.0.1.tgz_1464588482081_0.8112505874596536" - }, - "_npmUser": { - "name": "feross", - "email": "feross@feross.org" - }, - "_npmVersion": "2.15.5", + "_from": "safe-buffer@~5.1.0", + "_id": "safe-buffer@5.1.1", + "_inBundle": false, + "_integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "_location": "/eslint/safe-buffer", "_phantomChildren": {}, "_requested": { - "raw": "safe-buffer@~5.0.1", - "scope": null, - "escapedName": "safe-buffer", + "type": "range", + "registry": true, + "raw": "safe-buffer@~5.1.0", "name": "safe-buffer", - "rawSpec": "~5.0.1", - "spec": ">=5.0.1 <5.1.0", - "type": "range" + "escapedName": "safe-buffer", + "rawSpec": "~5.1.0", + "saveSpec": null, + "fetchSpec": "~5.1.0" }, "_requiredBy": [ - "/readable-stream", - "/string_decoder" + "/eslint/readable-stream", + "/eslint/string_decoder" ], - "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "_shasum": "d263ca54696cd8a306b5ca6551e92de57918fbe7", - "_shrinkwrap": null, - "_spec": "safe-buffer@~5.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "_shasum": "893312af69b2123def71f57889001671eeb2c853", + "_spec": "safe-buffer@~5.1.0", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "author": { "name": "Feross Aboukhadijeh", "email": "feross@feross.org", "url": "http://feross.org" }, - "browser": "./browser.js", "bugs": { "url": "https://github.com/feross/safe-buffer/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Safer Node.js Buffer API", "devDependencies": { - "standard": "^7.0.0", + "standard": "*", "tape": "^4.0.0", "zuul": "^3.0.0" }, - "directories": {}, - "dist": { - "shasum": "d263ca54696cd8a306b5ca6551e92de57918fbe7", - "tarball": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz" - }, - "gitHead": "1e371a367da962afae2bebc527b50271c739d28c", "homepage": "https://github.com/feross/safe-buffer", "keywords": [ "buffer", @@ -80,19 +51,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "feross", - "email": "feross@feross.org" - }, - { - "name": "mafintosh", - "email": "mathiasbuus@gmail.com" - } - ], "name": "safe-buffer", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/feross/safe-buffer.git" @@ -100,5 +59,5 @@ "scripts": { "test": "standard && tape test.js" }, - "version": "5.0.1" + "version": "5.1.1" } diff --git a/tools/eslint/node_modules/signal-exit/package.json b/tools/eslint/node_modules/signal-exit/package.json index 499d0447ce272d..0ba8c2d9e5b8f3 100644 --- a/tools/eslint/node_modules/signal-exit/package.json +++ b/tools/eslint/node_modules/signal-exit/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "signal-exit@^3.0.2", - "scope": null, - "escapedName": "signal-exit", - "name": "signal-exit", - "rawSpec": "^3.0.2", - "spec": ">=3.0.2 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/restore-cursor" - ] - ], - "_from": "signal-exit@>=3.0.2 <4.0.0", + "_from": "signal-exit@^3.0.2", "_id": "signal-exit@3.0.2", - "_inCache": true, - "_location": "/signal-exit", - "_nodeVersion": "6.5.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/signal-exit-3.0.2.tgz_1480821660838_0.6809983775019646" - }, - "_npmUser": { - "name": "isaacs", - "email": "i@izs.me" - }, - "_npmVersion": "3.10.9", + "_inBundle": false, + "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "_location": "/eslint/signal-exit", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "signal-exit@^3.0.2", - "scope": null, - "escapedName": "signal-exit", "name": "signal-exit", + "escapedName": "signal-exit", "rawSpec": "^3.0.2", - "spec": ">=3.0.2 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.0.2" }, "_requiredBy": [ - "/restore-cursor" + "/eslint/restore-cursor" ], "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d", - "_shrinkwrap": null, "_spec": "signal-exit@^3.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/restore-cursor", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/restore-cursor", "author": { "name": "Ben Coe", "email": "ben@npmjs.com" @@ -52,7 +29,8 @@ "bugs": { "url": "https://github.com/tapjs/signal-exit/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "when you want to fire an event no matter how a process exits.", "devDependencies": { "chai": "^3.5.0", @@ -62,16 +40,10 @@ "standard-version": "^2.3.0", "tap": "^8.0.1" }, - "directories": {}, - "dist": { - "shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d", - "tarball": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" - }, "files": [ "index.js", "signals.js" ], - "gitHead": "9c5ad9809fe6135ef22e2623989deaffe2a4fa8a", "homepage": "https://github.com/tapjs/signal-exit", "keywords": [ "signal", @@ -79,19 +51,7 @@ ], "license": "ISC", "main": "index.js", - "maintainers": [ - { - "name": "bcoe", - "email": "ben@npmjs.com" - }, - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - } - ], "name": "signal-exit", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/tapjs/signal-exit.git" diff --git a/tools/eslint/node_modules/slice-ansi/package.json b/tools/eslint/node_modules/slice-ansi/package.json index bd6def3e788a3e..b456f25810fbbd 100644 --- a/tools/eslint/node_modules/slice-ansi/package.json +++ b/tools/eslint/node_modules/slice-ansi/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "slice-ansi@0.0.4", - "scope": null, - "escapedName": "slice-ansi", - "name": "slice-ansi", - "rawSpec": "0.0.4", - "spec": "0.0.4", - "type": "version" - }, - "/Users/trott/io.js/tools/node_modules/table" - ] - ], "_from": "slice-ansi@0.0.4", "_id": "slice-ansi@0.0.4", - "_inCache": true, - "_location": "/slice-ansi", - "_nodeVersion": "3.2.0", - "_npmUser": { - "name": "dthree", - "email": "threedeecee@gmail.com" - }, - "_npmVersion": "2.13.3", + "_inBundle": false, + "_integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "_location": "/eslint/slice-ansi", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "slice-ansi@0.0.4", - "scope": null, - "escapedName": "slice-ansi", "name": "slice-ansi", + "escapedName": "slice-ansi", "rawSpec": "0.0.4", - "spec": "0.0.4", - "type": "version" + "saveSpec": null, + "fetchSpec": "0.0.4" }, "_requiredBy": [ - "/table" + "/eslint/table" ], "_resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", "_shasum": "edbf8903f66f7ce2f8eafd6ceed65e264c831b35", - "_shrinkwrap": null, "_spec": "slice-ansi@0.0.4", - "_where": "/Users/trott/io.js/tools/node_modules/table", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/table", "author": { "name": "David Caccavella", "email": "threedeecee@gmail.com" @@ -48,7 +29,9 @@ "bugs": { "url": "https://github.com/chalk/slice-ansi/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Slice a string with ANSI escape codes", "devDependencies": { "ava": "^0.2.0", @@ -56,18 +39,12 @@ "strip-ansi": "^3.0.0", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "edbf8903f66f7ce2f8eafd6ceed65e264c831b35", - "tarball": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "8670277262281964b13f051d51b2e24bcfda8a66", "homepage": "https://github.com/chalk/slice-ansi#readme", "keywords": [ "slice", @@ -95,13 +72,27 @@ "license": "MIT", "maintainers": [ { - "name": "dthree", - "email": "threedeecee@gmail.com" + "name": "David Caccavella", + "email": "threedeecee@gmail.com", + "url": "github.com/dthree" + }, + { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" + }, + { + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" } ], "name": "slice-ansi", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/chalk/slice-ansi.git" diff --git a/tools/eslint/node_modules/sprintf-js/package.json b/tools/eslint/node_modules/sprintf-js/package.json index a190527cc000c5..fc155edf902d6f 100644 --- a/tools/eslint/node_modules/sprintf-js/package.json +++ b/tools/eslint/node_modules/sprintf-js/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "sprintf-js@~1.0.2", - "scope": null, - "escapedName": "sprintf-js", - "name": "sprintf-js", - "rawSpec": "~1.0.2", - "spec": ">=1.0.2 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/argparse" - ] - ], - "_from": "sprintf-js@>=1.0.2 <1.1.0", + "_from": "sprintf-js@~1.0.2", "_id": "sprintf-js@1.0.3", - "_inCache": true, - "_location": "/sprintf-js", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "alexei", - "email": "hello@alexei.ro" - }, - "_npmVersion": "2.10.1", + "_inBundle": false, + "_integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "_location": "/eslint/sprintf-js", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "sprintf-js@~1.0.2", - "scope": null, - "escapedName": "sprintf-js", "name": "sprintf-js", + "escapedName": "sprintf-js", "rawSpec": "~1.0.2", - "spec": ">=1.0.2 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.2" }, "_requiredBy": [ - "/argparse" + "/eslint/argparse" ], "_resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "_shasum": "04e6926f662895354f3dd015203633b857297e2c", - "_shrinkwrap": null, "_spec": "sprintf-js@~1.0.2", - "_where": "/Users/trott/io.js/tools/node_modules/argparse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/argparse", "author": { "name": "Alexandru Marasteanu", "email": "hello@alexei.ro", @@ -49,7 +30,8 @@ "bugs": { "url": "https://github.com/alexei/sprintf.js/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "JavaScript sprintf implementation", "devDependencies": { "grunt": "*", @@ -57,24 +39,10 @@ "grunt-contrib-watch": "*", "mocha": "*" }, - "directories": {}, - "dist": { - "shasum": "04e6926f662895354f3dd015203633b857297e2c", - "tarball": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - }, - "gitHead": "747b806c2dab5b64d5c9958c42884946a187c3b1", "homepage": "https://github.com/alexei/sprintf.js#readme", "license": "BSD-3-Clause", "main": "src/sprintf.js", - "maintainers": [ - { - "name": "alexei", - "email": "hello@alexei.ro" - } - ], "name": "sprintf-js", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/alexei/sprintf.js.git" diff --git a/tools/eslint/node_modules/string-width/index.js b/tools/eslint/node_modules/string-width/index.js index 25a8943c1dcad6..1f8a1f113427b0 100644 --- a/tools/eslint/node_modules/string-width/index.js +++ b/tools/eslint/node_modules/string-width/index.js @@ -14,12 +14,12 @@ module.exports = str => { for (let i = 0; i < str.length; i++) { const code = str.codePointAt(i); - // ignore control characters - if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) { + // Ignore control characters + if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { continue; } - // surrogates + // Surrogates if (code >= 0x10000) { i++; } diff --git a/tools/eslint/node_modules/string-width/license b/tools/eslint/node_modules/string-width/license index 654d0bfe943437..e7af2f77107d73 100644 --- a/tools/eslint/node_modules/string-width/license +++ b/tools/eslint/node_modules/string-width/license @@ -1,21 +1,9 @@ -The MIT License (MIT) +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: +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 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. +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/eslint/node_modules/string-width/node_modules/ansi-regex/index.js b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/index.js new file mode 100644 index 00000000000000..c4aaecf5050639 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/index.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = () => { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, 'g'); +}; diff --git a/tools/eslint/node_modules/string-width/node_modules/ansi-regex/license b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/license new file mode 100644 index 00000000000000..e7af2f77107d73 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/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/eslint/node_modules/string-width/node_modules/ansi-regex/package.json b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/package.json new file mode 100644 index 00000000000000..b086043ebc3bce --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/package.json @@ -0,0 +1,85 @@ +{ + "_from": "ansi-regex@^3.0.0", + "_id": "ansi-regex@3.0.0", + "_inBundle": false, + "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "_location": "/eslint/string-width/ansi-regex", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "ansi-regex@^3.0.0", + "name": "ansi-regex", + "escapedName": "ansi-regex", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/eslint/string-width/strip-ansi" + ], + "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "_shasum": "ed0317c322064f79466c02966bddb605ab37d998", + "_spec": "ansi-regex@^3.0.0", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/string-width/node_modules/strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/ansi-regex/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Regular expression for matching ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/ansi-regex#readme", + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "license": "MIT", + "name": "ansi-regex", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/ansi-regex.git" + }, + "scripts": { + "test": "xo && ava", + "view-supported": "node fixtures/view-codes.js" + }, + "version": "3.0.0" +} diff --git a/tools/eslint/node_modules/string-width/node_modules/ansi-regex/readme.md b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/readme.md new file mode 100644 index 00000000000000..22db1c34055556 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/ansi-regex/readme.md @@ -0,0 +1,46 @@ +# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex) + +> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + + +## Install + +``` +$ npm install ansi-regex +``` + + +## Usage + +```js +const ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] +``` + + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/tools/eslint/node_modules/string-width/node_modules/strip-ansi/index.js b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/index.js new file mode 100644 index 00000000000000..96e0292c8e2f64 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/index.js @@ -0,0 +1,4 @@ +'use strict'; +const ansiRegex = require('ansi-regex'); + +module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; diff --git a/tools/eslint/node_modules/string-width/node_modules/strip-ansi/license b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/license new file mode 100644 index 00000000000000..e7af2f77107d73 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/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/eslint/node_modules/string-width/node_modules/strip-ansi/package.json b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/package.json new file mode 100644 index 00000000000000..2d26a2cdcb53c3 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/package.json @@ -0,0 +1,84 @@ +{ + "_from": "strip-ansi@^4.0.0", + "_id": "strip-ansi@4.0.0", + "_inBundle": false, + "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "_location": "/eslint/string-width/strip-ansi", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "strip-ansi@^4.0.0", + "name": "strip-ansi", + "escapedName": "strip-ansi", + "rawSpec": "^4.0.0", + "saveSpec": null, + "fetchSpec": "^4.0.0" + }, + "_requiredBy": [ + "/eslint/string-width" + ], + "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "_shasum": "a8479022eb1ac368a871389b635262c505ee368f", + "_spec": "strip-ansi@^4.0.0", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/chalk/strip-ansi/issues" + }, + "bundleDependencies": false, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "deprecated": false, + "description": "Strip ANSI escape codes", + "devDependencies": { + "ava": "*", + "xo": "*" + }, + "engines": { + "node": ">=4" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/chalk/strip-ansi#readme", + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "license": "MIT", + "name": "strip-ansi", + "repository": { + "type": "git", + "url": "git+https://github.com/chalk/strip-ansi.git" + }, + "scripts": { + "test": "xo && ava" + }, + "version": "4.0.0" +} diff --git a/tools/eslint/node_modules/string-width/node_modules/strip-ansi/readme.md b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/readme.md new file mode 100644 index 00000000000000..dc76f0cb1a0595 --- /dev/null +++ b/tools/eslint/node_modules/string-width/node_modules/strip-ansi/readme.md @@ -0,0 +1,39 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' +``` + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +## License + +MIT diff --git a/tools/eslint/node_modules/string-width/package.json b/tools/eslint/node_modules/string-width/package.json index 5fbf72bd3e076d..3b11c3b8cf0147 100644 --- a/tools/eslint/node_modules/string-width/package.json +++ b/tools/eslint/node_modules/string-width/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "string-width@^2.0.0", - "scope": null, - "escapedName": "string-width", - "name": "string-width", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "string-width@>=2.0.0 <3.0.0", - "_id": "string-width@2.0.0", - "_inCache": true, - "_location": "/string-width", - "_nodeVersion": "4.5.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/string-width-2.0.0.tgz_1474527284011_0.7386264291126281" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "3.10.7", + "_from": "string-width@^2.0.0", + "_id": "string-width@2.1.0", + "_inBundle": false, + "_integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", + "_location": "/eslint/string-width", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "string-width@^2.0.0", - "scope": null, - "escapedName": "string-width", "name": "string-width", + "escapedName": "string-width", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/inquirer", - "/table" + "/eslint/inquirer", + "/eslint/table" ], - "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "_shasum": "635c5436cc72a6e0c387ceca278d4e2eec52687e", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "_shasum": "030664561fc146c9423ec7d978fe2457437fe6d0", "_spec": "string-width@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -54,27 +31,23 @@ "bugs": { "url": "https://github.com/sindresorhus/string-width/issues" }, + "bundleDependencies": false, "dependencies": { "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^3.0.0" + "strip-ansi": "^4.0.0" }, + "deprecated": false, "description": "Get the visual width of a string - the number of columns required to display it", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "635c5436cc72a6e0c387ceca278d4e2eec52687e", - "tarball": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz" - }, "engines": { "node": ">=4" }, "files": [ "index.js" ], - "gitHead": "523d7ba4dbb24d40cde88d2c36bb1c7124ab6f82", "homepage": "https://github.com/sindresorhus/string-width#readme", "keywords": [ "string", @@ -103,15 +76,7 @@ "fixed-width" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "string-width", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/string-width.git" @@ -119,8 +84,5 @@ "scripts": { "test": "xo && ava" }, - "version": "2.0.0", - "xo": { - "esnext": true - } + "version": "2.1.0" } diff --git a/tools/eslint/node_modules/string-width/readme.md b/tools/eslint/node_modules/string-width/readme.md index 1ab42c93580ecb..df5b7199f90913 100644 --- a/tools/eslint/node_modules/string-width/readme.md +++ b/tools/eslint/node_modules/string-width/readme.md @@ -2,7 +2,7 @@ > Get the visual width of a string - the number of columns required to display it -Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. +Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. Useful to be able to measure the actual width of command-line output. @@ -10,7 +10,7 @@ Useful to be able to measure the actual width of command-line output. ## Install ``` -$ npm install --save string-width +$ npm install string-width ``` diff --git a/tools/eslint/node_modules/string_decoder/package.json b/tools/eslint/node_modules/string_decoder/package.json index b70a235c7fb845..f4a630bd62babf 100644 --- a/tools/eslint/node_modules/string_decoder/package.json +++ b/tools/eslint/node_modules/string_decoder/package.json @@ -1,67 +1,40 @@ { - "_args": [ - [ - { - "raw": "string_decoder@~1.0.0", - "scope": null, - "escapedName": "string_decoder", - "name": "string_decoder", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "string_decoder@>=1.0.0 <1.1.0", - "_id": "string_decoder@1.0.2", - "_inCache": true, - "_location": "/string_decoder", - "_nodeVersion": "4.8.0", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/string_decoder-1.0.2.tgz_1496758759778_0.9832893849816173" - }, - "_npmUser": { - "name": "matteo.collina", - "email": "hello@matteocollina.com" - }, - "_npmVersion": "2.15.11", + "_from": "string_decoder@~1.0.0", + "_id": "string_decoder@1.0.3", + "_inBundle": false, + "_integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "_location": "/eslint/string_decoder", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "string_decoder@~1.0.0", - "scope": null, - "escapedName": "string_decoder", "name": "string_decoder", + "escapedName": "string_decoder", "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.0" }, "_requiredBy": [ - "/readable-stream" + "/eslint/readable-stream" ], - "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "_shasum": "b29e1f4e1125fa97a10382b8a533737b7491e179", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "_shasum": "0fc67d7c141825de94282dd536bec6b9bce860ab", "_spec": "string_decoder@~1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "bugs": { "url": "https://github.com/rvagg/string_decoder/issues" }, + "bundleDependencies": false, "dependencies": { - "safe-buffer": "~5.0.1" + "safe-buffer": "~5.1.0" }, + "deprecated": false, "description": "The string_decoder module from Node core", "devDependencies": { "babel-polyfill": "^6.23.0", "tap": "~0.4.8" }, - "directories": {}, - "dist": { - "shasum": "b29e1f4e1125fa97a10382b8a533737b7491e179", - "tarball": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz" - }, - "gitHead": "fb0c8bc0741f8ac25f3d354a17d9106a7714f3da", "homepage": "https://github.com/rvagg/string_decoder", "keywords": [ "string", @@ -71,23 +44,7 @@ ], "license": "MIT", "main": "lib/string_decoder.js", - "maintainers": [ - { - "name": "matteo.collina", - "email": "hello@matteocollina.com" - }, - { - "name": "substack", - "email": "substack@gmail.com" - }, - { - "name": "rvagg", - "email": "rod@vagg.org" - } - ], "name": "string_decoder", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/rvagg/string_decoder.git" @@ -95,5 +52,5 @@ "scripts": { "test": "tap test/parallel/*.js && node test/verify-dependencies" }, - "version": "1.0.2" + "version": "1.0.3" } diff --git a/tools/eslint/node_modules/stringify-entities/index.js b/tools/eslint/node_modules/stringify-entities/index.js index 93ab625d1eb43e..9ffa29eae99317 100644 --- a/tools/eslint/node_modules/stringify-entities/index.js +++ b/tools/eslint/node_modules/stringify-entities/index.js @@ -2,7 +2,6 @@ var entities = require('character-entities-html4'); var legacy = require('character-entities-legacy'); -var has = require('has'); var hexadecimal = require('is-hexadecimal'); var alphanumerical = require('is-alphanumerical'); var dangerous = require('./dangerous.json'); @@ -12,6 +11,8 @@ module.exports = encode; encode.escape = escape; +var own = {}.hasOwnProperty; + /* List of enforced escapes. */ var escapes = ['"', '\'', '<', '>', '&', '`']; @@ -75,7 +76,7 @@ function one(char, next, options) { if ( (shortest || options.useNamedReferences) && - has(characters, char) + own.call(characters, char) ) { named = toNamed(characters[char], next, omit, options.attribute); } @@ -97,7 +98,7 @@ function toNamed(name, next, omit, attribute) { if ( omit && - has(legacy, name) && + own.call(legacy, name) && dangerous.indexOf(name) === -1 && (!attribute || (next && next !== '=' && !alphanumerical(next))) ) { diff --git a/tools/eslint/node_modules/stringify-entities/package.json b/tools/eslint/node_modules/stringify-entities/package.json index d6eec55a924b29..bfeadfe2199aff 100644 --- a/tools/eslint/node_modules/stringify-entities/package.json +++ b/tools/eslint/node_modules/stringify-entities/package.json @@ -1,58 +1,36 @@ { - "_args": [ - [ - { - "raw": "stringify-entities@^1.0.1", - "scope": null, - "escapedName": "stringify-entities", - "name": "stringify-entities", - "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify" - ] - ], - "_from": "stringify-entities@>=1.0.1 <2.0.0", - "_id": "stringify-entities@1.3.0", - "_inCache": true, + "_from": "stringify-entities@^1.0.1", + "_id": "stringify-entities@1.3.1", + "_inBundle": false, + "_integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=", "_location": "/stringify-entities", - "_nodeVersion": "4.0.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/stringify-entities-1.3.0.tgz_1480008002322_0.8982367573771626" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.14.2", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "stringify-entities@^1.0.1", - "scope": null, - "escapedName": "stringify-entities", "name": "stringify-entities", + "escapedName": "stringify-entities", "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.1" }, "_requiredBy": [ "/remark-stringify" ], - "_resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.0.tgz", - "_shasum": "2244a516c4f1e8e01b73dad01023016776abd917", - "_shrinkwrap": null, + "_resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", + "_shasum": "b150ec2d72ac4c1b5f324b51fb6b28c9cdff058c", "_spec": "stringify-entities@^1.0.1", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-stringify", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", "url": "http://wooorm.com" }, "bugs": { - "url": "https://github.com/wooorm/hast-util-to-html/issues" + "url": "https://github.com/wooorm/stringify-entities/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -63,31 +41,25 @@ "dependencies": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", - "has": "^1.0.1", "is-alphanumerical": "^1.0.0", "is-hexadecimal": "^1.0.0" }, + "deprecated": false, "description": "Encode HTML character references and character entities", "devDependencies": { - "browserify": "^13.0.0", + "browserify": "^14.0.0", "character-entities": "^1.0.0", "esmangle": "^1.0.0", - "nyc": "^10.0.0", - "remark-cli": "^2.1.0", - "remark-preset-wooorm": "^1.0.0", + "nyc": "^11.0.0", + "remark-cli": "^3.0.0", + "remark-preset-wooorm": "^3.0.0", "tape": "^4.0.0", - "xo": "^0.17.1" - }, - "directories": {}, - "dist": { - "shasum": "2244a516c4f1e8e01b73dad01023016776abd917", - "tarball": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.0.tgz" + "xo": "^0.18.0" }, "files": [ "dangerous.json", "index.js" ], - "gitHead": "ae8ece85dd2f9f980bfb7eca9da77cc804350194", "homepage": "https://github.com/wooorm/stringify-entities#readme", "keywords": [ "stringify", @@ -100,12 +72,6 @@ "entities" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "stringify-entities", "nyc": { "check-coverage": true, @@ -113,10 +79,10 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { - "presets": "wooorm" + "plugins": [ + "preset-wooorm" + ] }, "repository": { "type": "git", @@ -133,16 +99,12 @@ "test-api": "node test", "test-coverage": "nyc --reporter lcov tape test.js" }, - "version": "1.3.0", + "version": "1.3.1", "xo": { "space": true, + "esnext": false, "rules": { - "guard-for-in": "off", - "eqeqeq": [ - "off", - "allow-null" - ], - "no-eq-null": "off" + "guard-for-in": "off" }, "ignores": [ "stringify-entities.js" diff --git a/tools/eslint/node_modules/stringify-entities/readme.md b/tools/eslint/node_modules/stringify-entities/readme.md index 11ce0f04bf96bf..c819969568822e 100644 --- a/tools/eslint/node_modules/stringify-entities/readme.md +++ b/tools/eslint/node_modules/stringify-entities/readme.md @@ -2,12 +2,12 @@ Encode HTML character references and character entities. -* [x] Very fast; -* [x] Just the encoding part; +* [x] Very fast +* [x] Just the encoding part * [x] Reliable: ``'`'`` characters are escaped to ensure no scripts run in IE6-8. Additionally, only named entities recognised by HTML4 are encoded, meaning the infamous `'` (which people think is a - [virus][]) won’t show up. + [virus][]) won’t show up ## Algorithm diff --git a/tools/eslint/node_modules/strip-ansi/package.json b/tools/eslint/node_modules/strip-ansi/package.json index dced2726e06f26..9433d753fd2ab4 100644 --- a/tools/eslint/node_modules/strip-ansi/package.json +++ b/tools/eslint/node_modules/strip-ansi/package.json @@ -1,52 +1,28 @@ { - "_args": [ - [ - { - "raw": "strip-ansi@^3.0.0", - "scope": null, - "escapedName": "strip-ansi", - "name": "strip-ansi", - "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/chalk" - ] - ], - "_from": "strip-ansi@>=3.0.0 <4.0.0", + "_from": "strip-ansi@^3.0.0", "_id": "strip-ansi@3.0.1", - "_inCache": true, - "_location": "/strip-ansi", - "_nodeVersion": "0.12.7", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/strip-ansi-3.0.1.tgz_1456057278183_0.28958667791448534" - }, - "_npmUser": { - "name": "jbnicolai", - "email": "jappelman@xebia.com" - }, - "_npmVersion": "2.11.3", + "_inBundle": false, + "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "_location": "/eslint/strip-ansi", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "strip-ansi@^3.0.0", - "scope": null, - "escapedName": "strip-ansi", "name": "strip-ansi", + "escapedName": "strip-ansi", "rawSpec": "^3.0.0", - "spec": ">=3.0.0 <4.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^3.0.0" }, "_requiredBy": [ - "/chalk", - "/inquirer", - "/string-width" + "/eslint/chalk", + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "_shrinkwrap": null, "_spec": "strip-ansi@^3.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/chalk", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/chalk", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -55,27 +31,23 @@ "bugs": { "url": "https://github.com/chalk/strip-ansi/issues" }, + "bundleDependencies": false, "dependencies": { "ansi-regex": "^2.0.0" }, + "deprecated": false, "description": "Strip ANSI escape codes", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf", - "tarball": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "8270705c704956da865623e564eba4875c3ea17f", - "homepage": "https://github.com/chalk/strip-ansi", + "homepage": "https://github.com/chalk/strip-ansi#readme", "keywords": [ "strip", "trim", @@ -103,17 +75,22 @@ "license": "MIT", "maintainers": [ { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + { + "name": "Joshua Boy Nicolai Appelman", + "email": "joshua@jbna.nl", + "url": "jbna.nl" }, { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "name": "JD Ballard", + "email": "i.am.qix@gmail.com", + "url": "github.com/qix-" } ], "name": "strip-ansi", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/chalk/strip-ansi.git" diff --git a/tools/eslint/node_modules/strip-json-comments/package.json b/tools/eslint/node_modules/strip-json-comments/package.json index 6bbd9d717fbf7b..4f0b564c7dd1dc 100644 --- a/tools/eslint/node_modules/strip-json-comments/package.json +++ b/tools/eslint/node_modules/strip-json-comments/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "strip-json-comments@~2.0.1", - "scope": null, - "escapedName": "strip-json-comments", - "name": "strip-json-comments", - "rawSpec": "~2.0.1", - "spec": ">=2.0.1 <2.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "strip-json-comments@>=2.0.1 <2.1.0", + "_from": "strip-json-comments@~2.0.1", "_id": "strip-json-comments@2.0.1", - "_inCache": true, - "_location": "/strip-json-comments", - "_nodeVersion": "4.2.4", - "_npmOperationalInternal": { - "host": "packages-9-west.internal.npmjs.com", - "tmp": "tmp/strip-json-comments-2.0.1.tgz_1455006605207_0.8280157081317157" - }, - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "3.7.2", + "_inBundle": false, + "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "_location": "/eslint/strip-json-comments", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "strip-json-comments@~2.0.1", - "scope": null, - "escapedName": "strip-json-comments", "name": "strip-json-comments", + "escapedName": "strip-json-comments", "rawSpec": "~2.0.1", - "spec": ">=2.0.1 <2.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~2.0.1" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a", - "_shrinkwrap": null, "_spec": "strip-json-comments@~2.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -53,24 +30,19 @@ "bugs": { "url": "https://github.com/sindresorhus/strip-json-comments/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Strip comments from JSON. Lets you use comments in your JSON files!", "devDependencies": { "ava": "*", "xo": "*" }, - "directories": {}, - "dist": { - "shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a", - "tarball": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "1aef99eaa70d07981156e8aaa722e750c3b4eaf9", "homepage": "https://github.com/sindresorhus/strip-json-comments#readme", "keywords": [ "json", @@ -90,15 +62,7 @@ "environment" ], "license": "MIT", - "maintainers": [ - { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - } - ], "name": "strip-json-comments", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/sindresorhus/strip-json-comments.git" diff --git a/tools/eslint/node_modules/supports-color/package.json b/tools/eslint/node_modules/supports-color/package.json index 640f4f7d1227b2..036c11acdffa99 100644 --- a/tools/eslint/node_modules/supports-color/package.json +++ b/tools/eslint/node_modules/supports-color/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "supports-color@^2.0.0", - "scope": null, - "escapedName": "supports-color", - "name": "supports-color", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/chalk" - ] - ], - "_from": "supports-color@>=2.0.0 <3.0.0", + "_from": "supports-color@^2.0.0", "_id": "supports-color@2.0.0", - "_inCache": true, - "_location": "/supports-color", - "_nodeVersion": "0.12.5", - "_npmUser": { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" - }, - "_npmVersion": "2.11.2", + "_inBundle": false, + "_integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "_location": "/eslint/supports-color", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "supports-color@^2.0.0", - "scope": null, - "escapedName": "supports-color", "name": "supports-color", + "escapedName": "supports-color", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ - "/chalk" + "/eslint/chalk" ], "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "_shasum": "535d045ce6b6363fa40117084629995e9df324c7", - "_shrinkwrap": null, "_spec": "supports-color@^2.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/chalk", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/chalk", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -49,25 +30,20 @@ "bugs": { "url": "https://github.com/chalk/supports-color/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Detect whether a terminal supports color", "devDependencies": { "mocha": "*", "require-uncached": "^1.0.2" }, - "directories": {}, - "dist": { - "shasum": "535d045ce6b6363fa40117084629995e9df324c7", - "tarball": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, "engines": { "node": ">=0.8.0" }, "files": [ "index.js" ], - "gitHead": "8400d98ade32b2adffd50902c06d9e725a5c6588", - "homepage": "https://github.com/chalk/supports-color", + "homepage": "https://github.com/chalk/supports-color#readme", "keywords": [ "color", "colour", @@ -91,17 +67,17 @@ "license": "MIT", "maintainers": [ { - "name": "sindresorhus", - "email": "sindresorhus@gmail.com" + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" }, { - "name": "jbnicolai", - "email": "jappelman@xebia.com" + "name": "Joshua Appelman", + "email": "jappelman@xebia.com", + "url": "jbnicolai.com" } ], "name": "supports-color", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/chalk/supports-color.git" diff --git a/tools/eslint/node_modules/table/package.json b/tools/eslint/node_modules/table/package.json index 508639b4e3190e..5f441043ab5145 100644 --- a/tools/eslint/node_modules/table/package.json +++ b/tools/eslint/node_modules/table/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "table@^4.0.1", - "scope": null, - "escapedName": "table", - "name": "table", - "rawSpec": "^4.0.1", - "spec": ">=4.0.1 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "table@>=4.0.1 <5.0.0", + "_from": "table@^4.0.1", "_id": "table@4.0.1", - "_inCache": true, - "_location": "/table", - "_nodeVersion": "7.1.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/table-4.0.1.tgz_1479830119997_0.18416268657892942" - }, - "_npmUser": { - "name": "gajus", - "email": "gajus@gajus.com" - }, - "_npmVersion": "4.0.2", + "_inBundle": false, + "_integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", + "_location": "/eslint/table", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "table@^4.0.1", - "scope": null, - "escapedName": "table", "name": "table", + "escapedName": "table", "rawSpec": "^4.0.1", - "spec": ">=4.0.1 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.1" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", "_shasum": "a8116c133fac2c61f4a420ab6cdf5c4d61f0e435", - "_shrinkwrap": null, "_spec": "table@^4.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "Gajus Kuizinas", "email": "gajus@gajus.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/gajus/table/issues" }, + "bundleDependencies": false, "dependencies": { "ajv": "^4.7.0", "ajv-keywords": "^1.0.0", @@ -61,6 +39,7 @@ "slice-ansi": "0.0.4", "string-width": "^2.0.0" }, + "deprecated": false, "description": "Formats data into a string table.", "devDependencies": { "ajv-cli": "^1.1.0", @@ -79,12 +58,6 @@ "nyc": "^8.3.1", "sinon": "^1.17.2" }, - "directories": {}, - "dist": { - "shasum": "a8116c133fac2c61f4a420ab6cdf5c4d61f0e435", - "tarball": "https://registry.npmjs.org/table/-/table-4.0.1.tgz" - }, - "gitHead": "e55ef35ac3afbe42f789f666bc98cf05a97ae941", "homepage": "https://github.com/gajus/table#readme", "keywords": [ "ascii", @@ -95,12 +68,6 @@ ], "license": "BSD-3-Clause", "main": "./dist/index.js", - "maintainers": [ - { - "name": "gajus", - "email": "gk@anuary.com" - } - ], "name": "table", "nyc": { "include": [ @@ -113,8 +80,6 @@ ], "sourceMap": false }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/gajus/table.git" diff --git a/tools/eslint/node_modules/text-table/package.json b/tools/eslint/node_modules/text-table/package.json index 8df7763bc66281..b6e1194ebfacb2 100644 --- a/tools/eslint/node_modules/text-table/package.json +++ b/tools/eslint/node_modules/text-table/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "text-table@~0.2.0", - "scope": null, - "escapedName": "text-table", - "name": "text-table", - "rawSpec": "~0.2.0", - "spec": ">=0.2.0 <0.3.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/eslint" - ] - ], - "_from": "text-table@>=0.2.0 <0.3.0", + "_from": "text-table@~0.2.0", "_id": "text-table@0.2.0", - "_inCache": true, - "_location": "/text-table", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "_npmVersion": "1.3.7", + "_inBundle": false, + "_integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "_location": "/eslint/text-table", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "text-table@~0.2.0", - "scope": null, - "escapedName": "text-table", "name": "text-table", + "escapedName": "text-table", "rawSpec": "~0.2.0", - "spec": ">=0.2.0 <0.3.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~0.2.0" }, "_requiredBy": [ "/eslint" ], "_resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "_shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "_shrinkwrap": null, "_spec": "text-table@~0.2.0", - "_where": "/Users/trott/io.js/tools/node_modules/eslint", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -48,18 +30,14 @@ "bugs": { "url": "https://github.com/substack/text-table/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "borderless text tables with alignment", "devDependencies": { "cli-color": "~0.2.3", "tap": "~0.4.0", "tape": "~1.0.2" }, - "directories": {}, - "dist": { - "shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4", - "tarball": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, "homepage": "https://github.com/substack/text-table", "keywords": [ "text", @@ -71,16 +49,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "text-table", - "optionalDependencies": {}, - "readme": "# text-table\n\ngenerate borderless text table strings suitable for printing to stdout\n\n[![build status](https://secure.travis-ci.org/substack/text-table.png)](http://travis-ci.org/substack/text-table)\n\n[![browser support](https://ci.testling.com/substack/text-table.png)](http://ci.testling.com/substack/text-table)\n\n# example\n\n## default align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'master', '0123456789abcdef' ],\n [ 'staging', 'fedcba9876543210' ]\n]);\nconsole.log(t);\n```\n\n```\nmaster 0123456789abcdef\nstaging fedcba9876543210\n```\n\n## left-right align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '33450' ],\n [ 'foo', '1006' ],\n [ 'bar', '45' ]\n], { align: [ 'l', 'r' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 33450\nfoo 1006\nbar 45\n```\n\n## dotted align\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024' ],\n [ 'boop', '334.212' ],\n [ 'foo', '1006' ],\n [ 'bar', '45.6' ],\n [ 'baz', '123.' ]\n], { align: [ 'l', '.' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024\nboop 334.212\nfoo 1006\nbar 45.6\nbaz 123.\n```\n\n## centered\n\n``` js\nvar table = require('text-table');\nvar t = table([\n [ 'beep', '1024', 'xyz' ],\n [ 'boop', '3388450', 'tuv' ],\n [ 'foo', '10106', 'qrstuv' ],\n [ 'bar', '45', 'lmno' ]\n], { align: [ 'l', 'c', 'l' ] });\nconsole.log(t);\n```\n\n```\nbeep 1024 xyz\nboop 3388450 tuv\nfoo 10106 qrstuv\nbar 45 lmno\n```\n\n# methods\n\n``` js\nvar table = require('text-table')\n```\n\n## var s = table(rows, opts={})\n\nReturn a formatted table string `s` from an array of `rows` and some options\n`opts`.\n\n`rows` should be an array of arrays containing strings, numbers, or other\nprintable values.\n\noptions can be:\n\n* `opts.hsep` - separator to use between columns, default `' '`\n* `opts.align` - array of alignment types for each column, default `['l','l',...]`\n* `opts.stringLength` - callback function to use when calculating the string length\n\nalignment types are:\n\n* `'l'` - left\n* `'r'` - right\n* `'c'` - center\n* `'.'` - decimal\n\n# install\n\nWith [npm](https://npmjs.org) do:\n\n```\nnpm install text-table\n```\n\n# Use with ANSI-colors\n\nSince the string length of ANSI color schemes does not equal the length\nJavaScript sees internally it is necessary to pass the a custom string length\ncalculator during the main function call.\n\nSee the `test/ansi-colors.js` file for an example.\n\n# license\n\nMIT\n", - "readmeFilename": "readme.markdown", "repository": { "type": "git", "url": "git://github.com/substack/text-table.git" diff --git a/tools/eslint/node_modules/through/package.json b/tools/eslint/node_modules/through/package.json index 84425436d072ca..3f2153fdbc85e8 100644 --- a/tools/eslint/node_modules/through/package.json +++ b/tools/eslint/node_modules/through/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "through@^2.3.6", - "scope": null, - "escapedName": "through", - "name": "through", - "rawSpec": "^2.3.6", - "spec": ">=2.3.6 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inquirer" - ] - ], - "_from": "through@>=2.3.6 <3.0.0", + "_from": "through@^2.3.6", "_id": "through@2.3.8", - "_inCache": true, - "_location": "/through", - "_nodeVersion": "2.3.1", - "_npmUser": { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" - }, - "_npmVersion": "2.12.0", + "_inBundle": false, + "_integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "_location": "/eslint/through", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "through@^2.3.6", - "scope": null, - "escapedName": "through", "name": "through", + "escapedName": "through", "rawSpec": "^2.3.6", - "spec": ">=2.3.6 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.3.6" }, "_requiredBy": [ - "/inquirer" + "/eslint/inquirer" ], "_resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "_shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "_shrinkwrap": null, "_spec": "through@^2.3.6", - "_where": "/Users/trott/io.js/tools/node_modules/inquirer", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inquirer", "author": { "name": "Dominic Tarr", "email": "dominic.tarr@gmail.com", @@ -49,19 +30,14 @@ "bugs": { "url": "https://github.com/dominictarr/through/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "simplified stream construction", "devDependencies": { "from": "~0.1.3", "stream-spec": "~0.3.5", "tape": "~2.3.2" }, - "directories": {}, - "dist": { - "shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5", - "tarball": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "gitHead": "2c5a6f9a0cc54da759b6e10964f2081c358e49dc", "homepage": "https://github.com/dominictarr/through", "keywords": [ "stream", @@ -71,15 +47,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "dominictarr", - "email": "dominic.tarr@gmail.com" - } - ], "name": "through", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/dominictarr/through.git" diff --git a/tools/eslint/node_modules/trim-trailing-lines/package.json b/tools/eslint/node_modules/trim-trailing-lines/package.json index c21d8d56c3f743..c103ad14364668 100644 --- a/tools/eslint/node_modules/trim-trailing-lines/package.json +++ b/tools/eslint/node_modules/trim-trailing-lines/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "trim-trailing-lines@^1.0.0", - "scope": null, - "escapedName": "trim-trailing-lines", - "name": "trim-trailing-lines", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "trim-trailing-lines@>=1.0.0 <2.0.0", + "_from": "trim-trailing-lines@^1.0.0", "_id": "trim-trailing-lines@1.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=", "_location": "/trim-trailing-lines", - "_nodeVersion": "4.0.0", - "_npmOperationalInternal": { - "host": "packages-18-east.internal.npmjs.com", - "tmp": "tmp/trim-trailing-lines-1.1.0.tgz_1479931412751_0.3457383767236024" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.14.2", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "trim-trailing-lines@^1.0.0", - "scope": null, - "escapedName": "trim-trailing-lines", "name": "trim-trailing-lines", + "escapedName": "trim-trailing-lines", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/remark-parse" ], "_resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", "_shasum": "7aefbb7808df9d669f6da2e438cac8c46ada7684", - "_shrinkwrap": null, "_spec": "trim-trailing-lines@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/trim-trailing-lines/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,6 +39,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Remove final newline characters from a string", "devDependencies": { "browserify": "^13.0.0", @@ -71,15 +50,9 @@ "tape": "^4.6.3", "xo": "^0.17.1" }, - "directories": {}, - "dist": { - "shasum": "7aefbb7808df9d669f6da2e438cac8c46ada7684", - "tarball": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "0b8259a4fc6e3308aa0baf6a0070fdd9f92bee74", "homepage": "https://github.com/wooorm/trim-trailing-lines#readme", "keywords": [ "trim", @@ -89,12 +62,6 @@ "characters" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "trim-trailing-lines", "nyc": { "check-coverage": true, @@ -102,8 +69,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "presets": "wooorm" }, diff --git a/tools/eslint/node_modules/trim/.npmignore b/tools/eslint/node_modules/trim/.npmignore deleted file mode 100644 index f1250e584c94b8..00000000000000 --- a/tools/eslint/node_modules/trim/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/tools/eslint/node_modules/trim/History.md b/tools/eslint/node_modules/trim/History.md deleted file mode 100644 index c8aa68fa88152d..00000000000000 --- a/tools/eslint/node_modules/trim/History.md +++ /dev/null @@ -1,5 +0,0 @@ - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/tools/eslint/node_modules/trim/component.json b/tools/eslint/node_modules/trim/component.json deleted file mode 100644 index 560b25891e5fb6..00000000000000 --- a/tools/eslint/node_modules/trim/component.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "trim", - "version": "0.0.1", - "description": "Trim string whitespace", - "keywords": ["string", "trim"], - "scripts": ["index.js"] -} \ No newline at end of file diff --git a/tools/eslint/node_modules/trim/package.json b/tools/eslint/node_modules/trim/package.json index 33e5a80ca8b82e..f33ad3df1b9275 100644 --- a/tools/eslint/node_modules/trim/package.json +++ b/tools/eslint/node_modules/trim/package.json @@ -1,79 +1,49 @@ { - "_args": [ - [ - { - "raw": "trim@0.0.1", - "scope": null, - "escapedName": "trim", - "name": "trim", - "rawSpec": "0.0.1", - "spec": "0.0.1", - "type": "version" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], "_from": "trim@0.0.1", "_id": "trim@0.0.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "_location": "/trim", - "_npmUser": { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - }, - "_npmVersion": "1.2.2", "_phantomChildren": {}, "_requested": { + "type": "version", + "registry": true, "raw": "trim@0.0.1", - "scope": null, - "escapedName": "trim", "name": "trim", + "escapedName": "trim", "rawSpec": "0.0.1", - "spec": "0.0.1", - "type": "version" + "saveSpec": null, + "fetchSpec": "0.0.1" }, "_requiredBy": [ "/remark-parse" ], "_resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "_shasum": "5858547f6b290757ee95cccc666fb50084c460dd", - "_shrinkwrap": null, "_spec": "trim@0.0.1", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" }, + "bundleDependencies": false, "component": { "scripts": { "trim/index.js": "index.js" } }, "dependencies": {}, + "deprecated": false, "description": "Trim string whitespace", "devDependencies": { "mocha": "*", "should": "*" }, - "directories": {}, - "dist": { - "shasum": "5858547f6b290757ee95cccc666fb50084c460dd", - "tarball": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz" - }, "keywords": [ "string", "trim" ], "main": "index", - "maintainers": [ - { - "name": "tjholowaychuk", - "email": "tj@vision-media.ca" - } - ], "name": "trim", - "optionalDependencies": {}, - "readme": "\n# trim\n\n Trims string whitespace.\n\n## Installation\n\n```\n$ npm install trim\n$ component install component/trim\n```\n\n## API\n\n - [trim(str)](#trimstr)\n - [.left(str)](#leftstr)\n - [.right(str)](#rightstr)\n\n \n\n### trim(str)\nshould trim leading / trailing whitespace.\n\n```js\ntrim(' foo bar ').should.equal('foo bar');\ntrim('\\n\\n\\nfoo bar\\n\\r\\n\\n').should.equal('foo bar');\n```\n\n\n### .left(str)\nshould trim leading whitespace.\n\n```js\ntrim.left(' foo bar ').should.equal('foo bar ');\n```\n\n\n### .right(str)\nshould trim trailing whitespace.\n\n```js\ntrim.right(' foo bar ').should.equal(' foo bar');\n```\n\n\n## License \n\n(The MIT License)\n\nCopyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", - "readmeFilename": "Readme.md", "version": "0.0.1" } diff --git a/tools/eslint/node_modules/trough/package.json b/tools/eslint/node_modules/trough/package.json index 0b70976e5f447e..4b7a8373fe882e 100644 --- a/tools/eslint/node_modules/trough/package.json +++ b/tools/eslint/node_modules/trough/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "trough@^1.0.0", - "scope": null, - "escapedName": "trough", - "name": "trough", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/unified" - ] - ], - "_from": "trough@>=1.0.0 <2.0.0", + "_from": "trough@^1.0.0", "_id": "trough@1.0.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-a97f5/KqSabzxDIldodVWVfzQv0=", "_location": "/trough", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/trough-1.0.0.tgz_1470065839549_0.26185039919801056" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "trough@^1.0.0", - "scope": null, - "escapedName": "trough", "name": "trough", + "escapedName": "trough", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/unified" ], "_resolved": "https://registry.npmjs.org/trough/-/trough-1.0.0.tgz", "_shasum": "6bdedfe7f2aa49a6f3c432257687555957f342fd", - "_shrinkwrap": null, "_spec": "trough@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/unified", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/trough/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,6 +39,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Middleware: a channel used to convey a liquid", "devDependencies": { "browserify": "^13.0.0", @@ -75,30 +54,18 @@ "tape": "^4.4.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "6bdedfe7f2aa49a6f3c432257687555957f342fd", - "tarball": "https://registry.npmjs.org/trough/-/trough-1.0.0.tgz" - }, "engines": { "node": ">=0.11.0" }, "files": [ "index.js" ], - "gitHead": "78f9debf5f756e2b18ce9ff70db4f2907896e3a8", "homepage": "https://github.com/wooorm/trough#readme", "keywords": [ "middleware", "ware" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "trough", "nyc": { "check-coverage": true, @@ -106,8 +73,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": { diff --git a/tools/eslint/node_modules/tryit/package.json b/tools/eslint/node_modules/tryit/package.json index e0b4e1b8dac03e..2556c47b3e9aac 100644 --- a/tools/eslint/node_modules/tryit/package.json +++ b/tools/eslint/node_modules/tryit/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "tryit@^1.0.1", - "scope": null, - "escapedName": "tryit", - "name": "tryit", - "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-resolvable" - ] - ], - "_from": "tryit@>=1.0.1 <2.0.0", + "_from": "tryit@^1.0.1", "_id": "tryit@1.0.3", - "_inCache": true, - "_location": "/tryit", - "_nodeVersion": "6.8.1", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/tryit-1.0.3.tgz_1477606530482_0.8131801665294915" - }, - "_npmUser": { - "name": "henrikjoreteg", - "email": "henrik@joreteg.com" - }, - "_npmVersion": "3.10.8", + "_inBundle": false, + "_integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "_location": "/eslint/tryit", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "tryit@^1.0.1", - "scope": null, - "escapedName": "tryit", "name": "tryit", + "escapedName": "tryit", "rawSpec": "^1.0.1", - "spec": ">=1.0.1 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.1" }, "_requiredBy": [ - "/is-resolvable" + "/eslint/is-resolvable" ], "_resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", "_shasum": "393be730a9446fd1ead6da59a014308f36c289cb", - "_shrinkwrap": null, "_spec": "tryit@^1.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/is-resolvable", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-resolvable", "author": { "name": "Henrik Joreteg", "email": "henrik@andyet.net" @@ -52,21 +29,16 @@ "bugs": { "url": "https://github.com/HenrikJoreteg/tryit/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Module to wrap try-catch for better performance and cleaner API.", "devDependencies": { "tap-spec": "^2.1.2", "tape": "^3.0.3" }, - "directories": {}, - "dist": { - "shasum": "393be730a9446fd1ead6da59a014308f36c289cb", - "tarball": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz" - }, "files": [ "tryit.js" ], - "gitHead": "706147151922a456988a641b08984b2d1fcf2a86", "homepage": "https://github.com/HenrikJoreteg/tryit#readme", "keywords": [ "errors", @@ -75,15 +47,7 @@ ], "license": "MIT", "main": "tryit.js", - "maintainers": [ - { - "name": "henrikjoreteg", - "email": "henrik@andyet.net" - } - ], "name": "tryit", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+ssh://git@github.com/HenrikJoreteg/tryit.git" diff --git a/tools/eslint/node_modules/type-check/package.json b/tools/eslint/node_modules/type-check/package.json index a949418853917f..58aad332482af5 100644 --- a/tools/eslint/node_modules/type-check/package.json +++ b/tools/eslint/node_modules/type-check/package.json @@ -1,47 +1,28 @@ { - "_args": [ - [ - { - "raw": "type-check@~0.3.2", - "scope": null, - "escapedName": "type-check", - "name": "type-check", - "rawSpec": "~0.3.2", - "spec": ">=0.3.2 <0.4.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/levn" - ] - ], - "_from": "type-check@>=0.3.2 <0.4.0", + "_from": "type-check@~0.3.2", "_id": "type-check@0.3.2", - "_inCache": true, - "_location": "/type-check", - "_nodeVersion": "4.2.4", - "_npmUser": { - "name": "gkz", - "email": "z@georgezahariev.com" - }, - "_npmVersion": "2.14.12", + "_inBundle": false, + "_integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "_location": "/eslint/type-check", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "type-check@~0.3.2", - "scope": null, - "escapedName": "type-check", "name": "type-check", + "escapedName": "type-check", "rawSpec": "~0.3.2", - "spec": ">=0.3.2 <0.4.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~0.3.2" }, "_requiredBy": [ - "/levn", - "/optionator" + "/eslint/levn", + "/eslint/optionator" ], "_resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "_shasum": "5884cab512cf1d355e3fb784f30804b2b520db72", - "_shrinkwrap": null, "_spec": "type-check@~0.3.2", - "_where": "/Users/trott/io.js/tools/node_modules/levn", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/levn", "author": { "name": "George Zahariev", "email": "z@georgezahariev.com" @@ -49,9 +30,11 @@ "bugs": { "url": "https://github.com/gkz/type-check/issues" }, + "bundleDependencies": false, "dependencies": { "prelude-ls": "~1.1.2" }, + "deprecated": false, "description": "type-check allows you to check the types of JavaScript values at runtime with a Haskell like type syntax.", "devDependencies": { "browserify": "~12.0.1", @@ -59,11 +42,6 @@ "livescript": "~1.4.0", "mocha": "~2.3.4" }, - "directories": {}, - "dist": { - "shasum": "5884cab512cf1d355e3fb784f30804b2b520db72", - "tarball": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - }, "engines": { "node": ">= 0.8.0" }, @@ -72,7 +50,6 @@ "README.md", "LICENSE" ], - "gitHead": "0ab04e7a660485d0cc3aa87e95f2f9a6464cf8e6", "homepage": "https://github.com/gkz/type-check", "keywords": [ "type", @@ -82,15 +59,7 @@ ], "license": "MIT", "main": "./lib/", - "maintainers": [ - { - "name": "gkz", - "email": "z@georgezahariev.com" - } - ], "name": "type-check", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/gkz/type-check.git" diff --git a/tools/eslint/node_modules/typedarray/package.json b/tools/eslint/node_modules/typedarray/package.json index 19821370412450..9c7e57f4f29491 100644 --- a/tools/eslint/node_modules/typedarray/package.json +++ b/tools/eslint/node_modules/typedarray/package.json @@ -1,45 +1,27 @@ { - "_args": [ - [ - { - "raw": "typedarray@^0.0.6", - "scope": null, - "escapedName": "typedarray", - "name": "typedarray", - "rawSpec": "^0.0.6", - "spec": ">=0.0.6 <0.0.7", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/concat-stream" - ] - ], - "_from": "typedarray@>=0.0.6 <0.0.7", + "_from": "typedarray@^0.0.6", "_id": "typedarray@0.0.6", - "_inCache": true, - "_location": "/typedarray", - "_npmUser": { - "name": "substack", - "email": "mail@substack.net" - }, - "_npmVersion": "1.4.3", + "_inBundle": false, + "_integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "_location": "/eslint/typedarray", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "typedarray@^0.0.6", - "scope": null, - "escapedName": "typedarray", "name": "typedarray", + "escapedName": "typedarray", "rawSpec": "^0.0.6", - "spec": ">=0.0.6 <0.0.7", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.0.6" }, "_requiredBy": [ - "/concat-stream" + "/eslint/concat-stream" ], "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "_shrinkwrap": null, "_spec": "typedarray@^0.0.6", - "_where": "/Users/trott/io.js/tools/node_modules/concat-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/concat-stream", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -48,16 +30,12 @@ "bugs": { "url": "https://github.com/substack/typedarray/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "TypedArray polyfill for old browsers", "devDependencies": { "tape": "~2.3.2" }, - "directories": {}, - "dist": { - "shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777", - "tarball": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, "homepage": "https://github.com/substack/typedarray", "keywords": [ "ArrayBuffer", @@ -77,15 +55,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "typedarray", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/substack/typedarray.git" diff --git a/tools/eslint/node_modules/unherit/package.json b/tools/eslint/node_modules/unherit/package.json index 2e5108678b8e45..d8ecb6740a0e36 100644 --- a/tools/eslint/node_modules/unherit/package.json +++ b/tools/eslint/node_modules/unherit/package.json @@ -1,41 +1,19 @@ { - "_args": [ - [ - { - "raw": "unherit@^1.0.4", - "scope": null, - "escapedName": "unherit", - "name": "unherit", - "rawSpec": "^1.0.4", - "spec": ">=1.0.4 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "unherit@>=1.0.4 <2.0.0", + "_from": "unherit@^1.0.4", "_id": "unherit@1.1.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=", "_location": "/unherit", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/unherit-1.1.0.tgz_1471518495151_0.7505096562672406" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "unherit@^1.0.4", - "scope": null, - "escapedName": "unherit", "name": "unherit", + "escapedName": "unherit", "rawSpec": "^1.0.4", - "spec": ">=1.0.4 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.4" }, "_requiredBy": [ "/remark-parse", @@ -43,9 +21,8 @@ ], "_resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", "_shasum": "6b9aaedfbf73df1756ad9e316dd981885840cd7d", - "_shrinkwrap": null, "_spec": "unherit@^1.0.4", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -54,6 +31,7 @@ "bugs": { "url": "https://github.com/wooorm/unherit/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -65,6 +43,7 @@ "inherits": "^2.0.1", "xtend": "^4.0.1" }, + "deprecated": false, "description": "Clone a constructor without affecting the super-class", "devDependencies": { "browserify": "^13.0.1", @@ -78,15 +57,9 @@ "tape": "^4.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "6b9aaedfbf73df1756ad9e316dd981885840cd7d", - "tarball": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "43822edbe663824109960ea8bc38c45c890d561a", "homepage": "https://github.com/wooorm/unherit#readme", "keywords": [ "clone", @@ -95,15 +68,7 @@ "constructor" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "unherit", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": { diff --git a/tools/eslint/node_modules/unified/package.json b/tools/eslint/node_modules/unified/package.json index 9d304d448146c4..c8f04f48472d19 100644 --- a/tools/eslint/node_modules/unified/package.json +++ b/tools/eslint/node_modules/unified/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "unified@^4.1.1", - "scope": null, - "escapedName": "unified", - "name": "unified", - "rawSpec": "^4.1.1", - "spec": ">=4.1.1 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark" - ] - ], - "_from": "unified@>=4.1.1 <5.0.0", + "_from": "unified@^4.1.1", "_id": "unified@4.2.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-dv9Dqo2kMPbn5KVchOusKtLPzS4=", "_location": "/unified", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/unified-4.2.1.tgz_1470121761063_0.6253260243684053" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "unified@^4.1.1", - "scope": null, - "escapedName": "unified", "name": "unified", + "escapedName": "unified", "rawSpec": "^4.1.1", - "spec": ">=4.1.1 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.1.1" }, "_requiredBy": [ "/remark" ], "_resolved": "https://registry.npmjs.org/unified/-/unified-4.2.1.tgz", "_shasum": "76ff43aa8da430f6e7e4a55c84ebac2ad2cfcd2e", - "_shrinkwrap": null, "_spec": "unified@^4.1.1", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -56,6 +33,7 @@ "bugs": { "url": "https://github.com/wooorm/unified/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -71,6 +49,7 @@ "trough": "^1.0.0", "vfile": "^1.0.0" }, + "deprecated": false, "description": "Pluggable text processing interface", "devDependencies": { "browserify": "^13.0.0", @@ -85,11 +64,6 @@ "tape": "^4.4.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "76ff43aa8da430f6e7e4a55c84ebac2ad2cfcd2e", - "tarball": "https://registry.npmjs.org/unified/-/unified-4.2.1.tgz" - }, "engines": { "node": ">=0.11.0" }, @@ -97,7 +71,6 @@ "index.js", "lib" ], - "gitHead": "75dd894ce8150dcfbd142327cac61fbdd5bf6ef8", "homepage": "https://github.com/wooorm/unified#readme", "keywords": [ "process", @@ -110,12 +83,6 @@ "remark" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "unified", "nyc": { "check-coverage": true, @@ -123,8 +90,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": { diff --git a/tools/eslint/node_modules/unist-util-remove-position/package.json b/tools/eslint/node_modules/unist-util-remove-position/package.json index 3d202cbf0aa03f..c288ac267944c0 100644 --- a/tools/eslint/node_modules/unist-util-remove-position/package.json +++ b/tools/eslint/node_modules/unist-util-remove-position/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "unist-util-remove-position@^1.0.0", - "scope": null, - "escapedName": "unist-util-remove-position", - "name": "unist-util-remove-position", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "unist-util-remove-position@>=1.0.0 <2.0.0", + "_from": "unist-util-remove-position@^1.0.0", "_id": "unist-util-remove-position@1.1.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=", "_location": "/unist-util-remove-position", - "_nodeVersion": "4.0.0", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/unist-util-remove-position-1.1.1.tgz_1497295912725_0.8693032045848668" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.14.2", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "unist-util-remove-position@^1.0.0", - "scope": null, - "escapedName": "unist-util-remove-position", "name": "unist-util-remove-position", + "escapedName": "unist-util-remove-position", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/remark-parse" ], "_resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", "_shasum": "5a85c1555fc1ba0c101b86707d15e50fa4c871bb", - "_shrinkwrap": null, "_spec": "unist-util-remove-position@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/syntax-tree/unist-util-remove-position/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -63,6 +41,7 @@ "dependencies": { "unist-util-visit": "^1.1.0" }, + "deprecated": false, "description": "Remove `position`s from a unist tree", "devDependencies": { "browserify": "^14.0.0", @@ -75,15 +54,9 @@ "unist-builder": "^1.0.2", "xo": "^0.18.2" }, - "directories": {}, - "dist": { - "shasum": "5a85c1555fc1ba0c101b86707d15e50fa4c871bb", - "tarball": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz" - }, "files": [ "index.js" ], - "gitHead": "d589a1142d6e1ead5f2e1616da6fcb315017d4ff", "homepage": "https://github.com/syntax-tree/unist-util-remove-position#readme", "keywords": [ "unist", @@ -93,12 +66,6 @@ "location" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "unist-util-remove-position", "nyc": { "check-coverage": true, @@ -106,8 +73,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "plugins": [ "preset-wooorm" diff --git a/tools/eslint/node_modules/unist-util-visit/package.json b/tools/eslint/node_modules/unist-util-visit/package.json index a62cc114452971..279227ffe10848 100644 --- a/tools/eslint/node_modules/unist-util-visit/package.json +++ b/tools/eslint/node_modules/unist-util-visit/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "unist-util-visit@^1.1.0", - "scope": null, - "escapedName": "unist-util-visit", - "name": "unist-util-visit", - "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/unist-util-remove-position" - ] - ], - "_from": "unist-util-visit@>=1.1.0 <2.0.0", + "_from": "unist-util-visit@^1.1.0", "_id": "unist-util-visit@1.1.3", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-7CaOcxudJ3p5pbWqBkOZDkBdYAs=", "_location": "/unist-util-visit", - "_nodeVersion": "4.0.0", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/unist-util-visit-1.1.3.tgz_1497284047913_0.11428822320885956" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.14.2", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "unist-util-visit@^1.1.0", - "scope": null, - "escapedName": "unist-util-visit", "name": "unist-util-visit", + "escapedName": "unist-util-visit", "rawSpec": "^1.1.0", - "spec": ">=1.1.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.1.0" }, "_requiredBy": [ "/unist-util-remove-position" ], "_resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.1.3.tgz", "_shasum": "ec268e731b9d277a79a5b5aa0643990e405d600b", - "_shrinkwrap": null, "_spec": "unist-util-visit@^1.1.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/unist-util-remove-position", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unist-util-remove-position", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/syntax-tree/unist-util-visit/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -60,7 +38,7 @@ "url": "http://wooorm.com" } ], - "dependencies": {}, + "deprecated": false, "description": "Recursively walk over unist nodes", "devDependencies": { "browserify": "^14.0.0", @@ -72,15 +50,9 @@ "tape": "^4.5.1", "xo": "^0.18.2" }, - "directories": {}, - "dist": { - "shasum": "ec268e731b9d277a79a5b5aa0643990e405d600b", - "tarball": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.1.3.tgz" - }, "files": [ "index.js" ], - "gitHead": "9dff0de34a09d200522844560880a22ca9295653", "homepage": "https://github.com/syntax-tree/unist-util-visit#readme", "keywords": [ "unist", @@ -96,12 +68,6 @@ "utility" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "unist-util-visit", "nyc": { "check-coverage": true, @@ -109,8 +75,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "plugins": [ "preset-wooorm" diff --git a/tools/eslint/node_modules/util-deprecate/package.json b/tools/eslint/node_modules/util-deprecate/package.json index bc25f812e1e24e..4b2d763c6172d1 100644 --- a/tools/eslint/node_modules/util-deprecate/package.json +++ b/tools/eslint/node_modules/util-deprecate/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "util-deprecate@~1.0.1", - "scope": null, - "escapedName": "util-deprecate", - "name": "util-deprecate", - "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/readable-stream" - ] - ], - "_from": "util-deprecate@>=1.0.1 <1.1.0", + "_from": "util-deprecate@~1.0.1", "_id": "util-deprecate@1.0.2", - "_inCache": true, - "_location": "/util-deprecate", - "_nodeVersion": "4.1.2", - "_npmUser": { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - }, - "_npmVersion": "2.14.4", + "_inBundle": false, + "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "_location": "/eslint/util-deprecate", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "util-deprecate@~1.0.1", - "scope": null, - "escapedName": "util-deprecate", "name": "util-deprecate", + "escapedName": "util-deprecate", "rawSpec": "~1.0.1", - "spec": ">=1.0.1 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.1" }, "_requiredBy": [ - "/readable-stream" + "/eslint/readable-stream" ], "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "_shrinkwrap": null, "_spec": "util-deprecate@~1.0.1", - "_where": "/Users/trott/io.js/tools/node_modules/readable-stream", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/readable-stream", "author": { "name": "Nathan Rajlich", "email": "nathan@tootallnate.net", @@ -50,15 +31,9 @@ "bugs": { "url": "https://github.com/TooTallNate/util-deprecate/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "The Node.js `util.deprecate()` function with browser support", - "devDependencies": {}, - "directories": {}, - "dist": { - "shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf", - "tarball": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "gitHead": "475fb6857cd23fafff20c1be846c1350abf8e6d4", "homepage": "https://github.com/TooTallNate/util-deprecate", "keywords": [ "util", @@ -69,15 +44,7 @@ ], "license": "MIT", "main": "node.js", - "maintainers": [ - { - "name": "tootallnate", - "email": "nathan@tootallnate.net" - } - ], "name": "util-deprecate", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/TooTallNate/util-deprecate.git" diff --git a/tools/eslint/node_modules/vfile-location/package.json b/tools/eslint/node_modules/vfile-location/package.json index 85b12120b86b08..685f4bbf2f8287 100644 --- a/tools/eslint/node_modules/vfile-location/package.json +++ b/tools/eslint/node_modules/vfile-location/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "vfile-location@^2.0.0", - "scope": null, - "escapedName": "vfile-location", - "name": "vfile-location", - "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/remark-parse" - ] - ], - "_from": "vfile-location@>=2.0.0 <3.0.0", + "_from": "vfile-location@^2.0.0", "_id": "vfile-location@2.0.1", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-C/iBb3MrD4vZAqVv2kxiyOk13FI=", "_location": "/vfile-location", - "_nodeVersion": "5.0.0", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vfile-location-2.0.1.tgz_1471790088896_0.027401822851970792" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "3.3.6", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "vfile-location@^2.0.0", - "scope": null, - "escapedName": "vfile-location", "name": "vfile-location", + "escapedName": "vfile-location", "rawSpec": "^2.0.0", - "spec": ">=2.0.0 <3.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^2.0.0" }, "_requiredBy": [ "/remark-parse" ], "_resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.1.tgz", "_shasum": "0bf8816f732b0f8bd902a56fda4c62c8e935dc52", - "_shrinkwrap": null, "_spec": "vfile-location@^2.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/remark-parse", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-parse", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/vfile-location/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,6 +39,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Convert between positions (line and column-based) and offsets (range-based) locations in a virtual file", "devDependencies": { "browserify": "^13.0.1", @@ -75,15 +54,9 @@ "vfile": "^2.0.0", "xo": "^0.16.0" }, - "directories": {}, - "dist": { - "shasum": "0bf8816f732b0f8bd902a56fda4c62c8e935dc52", - "tarball": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.1.tgz" - }, "files": [ "index.js" ], - "gitHead": "9d8a34f30c354c3e1f2599be1198e4b1e210912c", "homepage": "https://github.com/wooorm/vfile-location#readme", "keywords": [ "remark", @@ -93,12 +66,6 @@ "control" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "vfile-location", "nyc": { "check-coverage": true, @@ -106,8 +73,6 @@ "functions": 100, "branches": 100 }, - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "remarkConfig": { "output": true, "plugins": { diff --git a/tools/eslint/node_modules/vfile/package.json b/tools/eslint/node_modules/vfile/package.json index f75e8fdd520460..64820cb4232b69 100644 --- a/tools/eslint/node_modules/vfile/package.json +++ b/tools/eslint/node_modules/vfile/package.json @@ -1,50 +1,27 @@ { - "_args": [ - [ - { - "raw": "vfile@^1.0.0", - "scope": null, - "escapedName": "vfile", - "name": "vfile", - "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/eslint/node_modules/unified" - ] - ], - "_from": "vfile@>=1.0.0 <2.0.0", + "_from": "vfile@^1.0.0", "_id": "vfile@1.4.0", - "_inCache": true, + "_inBundle": false, + "_integrity": "sha1-wP1vpIT43r23cfaMMe112I2pf+c=", "_location": "/vfile", - "_nodeVersion": "0.11.16", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/vfile-1.4.0.tgz_1460997022817_0.025531638180837035" - }, - "_npmUser": { - "name": "wooorm", - "email": "tituswormer@gmail.com" - }, - "_npmVersion": "2.3.0", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "vfile@^1.0.0", - "scope": null, - "escapedName": "vfile", "name": "vfile", + "escapedName": "vfile", "rawSpec": "^1.0.0", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^1.0.0" }, "_requiredBy": [ "/unified" ], "_resolved": "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz", "_shasum": "c0fd6fa484f8debdb771f68c31ed75d88da97fe7", - "_shrinkwrap": null, "_spec": "vfile@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint/node_modules/unified", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/unified", "author": { "name": "Titus Wormer", "email": "tituswormer@gmail.com", @@ -53,6 +30,7 @@ "bugs": { "url": "https://github.com/wooorm/vfile/issues" }, + "bundleDependencies": false, "contributors": [ { "name": "Titus Wormer", @@ -61,6 +39,7 @@ } ], "dependencies": {}, + "deprecated": false, "description": "Virtual file format for text processing", "devDependencies": { "browserify": "^13.0.0", @@ -78,16 +57,10 @@ "remark-validate-links": "^3.0.0", "tape": "^4.4.0" }, - "directories": {}, - "dist": { - "shasum": "c0fd6fa484f8debdb771f68c31ed75d88da97fe7", - "tarball": "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz" - }, "files": [ "index.js" ], - "gitHead": "f3d1305fe934090b557cd6756704d9c8adb7891d", - "homepage": "https://github.com/wooorm/vfile", + "homepage": "https://github.com/wooorm/vfile#readme", "keywords": [ "virtual", "file", @@ -100,15 +73,7 @@ "retext" ], "license": "MIT", - "maintainers": [ - { - "name": "wooorm", - "email": "tituswormer@gmail.com" - } - ], "name": "vfile", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/wooorm/vfile.git" diff --git a/tools/eslint/node_modules/wordwrap/package.json b/tools/eslint/node_modules/wordwrap/package.json index cbc40f8276cd53..2aca21afbd53c5 100644 --- a/tools/eslint/node_modules/wordwrap/package.json +++ b/tools/eslint/node_modules/wordwrap/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "wordwrap@~1.0.0", - "scope": null, - "escapedName": "wordwrap", - "name": "wordwrap", - "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/optionator" - ] - ], - "_from": "wordwrap@>=1.0.0 <1.1.0", + "_from": "wordwrap@~1.0.0", "_id": "wordwrap@1.0.0", - "_inCache": true, - "_location": "/wordwrap", - "_nodeVersion": "2.0.0", - "_npmUser": { - "name": "substack", - "email": "substack@gmail.com" - }, - "_npmVersion": "2.9.0", + "_inBundle": false, + "_integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "_location": "/eslint/wordwrap", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "wordwrap@~1.0.0", - "scope": null, - "escapedName": "wordwrap", "name": "wordwrap", + "escapedName": "wordwrap", "rawSpec": "~1.0.0", - "spec": ">=1.0.0 <1.1.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "~1.0.0" }, "_requiredBy": [ - "/optionator" + "/eslint/optionator" ], "_resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "_shasum": "27584810891456a4171c8d0226441ade90cbcaeb", - "_shrinkwrap": null, "_spec": "wordwrap@~1.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/optionator", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/optionator", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -49,7 +30,8 @@ "bugs": { "url": "https://github.com/substack/node-wordwrap/issues" }, - "dependencies": {}, + "bundleDependencies": false, + "deprecated": false, "description": "Wrap those words. Show them at what columns to start and stop.", "devDependencies": { "tape": "^4.0.0" @@ -59,11 +41,6 @@ "example": "example", "test": "test" }, - "dist": { - "shasum": "27584810891456a4171c8d0226441ade90cbcaeb", - "tarball": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" - }, - "gitHead": "9f02667e901f2f10d87c33f7093fcf94788ab2f8", "homepage": "https://github.com/substack/node-wordwrap#readme", "keywords": [ "word", @@ -74,15 +51,7 @@ ], "license": "MIT", "main": "./index.js", - "maintainers": [ - { - "name": "substack", - "email": "mail@substack.net" - } - ], "name": "wordwrap", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/substack/node-wordwrap.git" diff --git a/tools/eslint/node_modules/wrappy/package.json b/tools/eslint/node_modules/wrappy/package.json index 519d5685aa2eda..bc1c1e2eac51fe 100644 --- a/tools/eslint/node_modules/wrappy/package.json +++ b/tools/eslint/node_modules/wrappy/package.json @@ -1,51 +1,28 @@ { - "_args": [ - [ - { - "raw": "wrappy@1", - "scope": null, - "escapedName": "wrappy", - "name": "wrappy", - "rawSpec": "1", - "spec": ">=1.0.0 <2.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/inflight" - ] - ], - "_from": "wrappy@>=1.0.0 <2.0.0", + "_from": "wrappy@1", "_id": "wrappy@1.0.2", - "_inCache": true, - "_location": "/wrappy", - "_nodeVersion": "5.10.1", - "_npmOperationalInternal": { - "host": "packages-16-east.internal.npmjs.com", - "tmp": "tmp/wrappy-1.0.2.tgz_1463527848281_0.037129373755306005" - }, - "_npmUser": { - "name": "zkat", - "email": "kat@sykosomatic.org" - }, - "_npmVersion": "3.9.1", + "_inBundle": false, + "_integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "_location": "/eslint/wrappy", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "wrappy@1", - "scope": null, - "escapedName": "wrappy", "name": "wrappy", + "escapedName": "wrappy", "rawSpec": "1", - "spec": ">=1.0.0 <2.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "1" }, "_requiredBy": [ - "/inflight", - "/once" + "/eslint/inflight", + "/eslint/once" ], "_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "_shrinkwrap": null, "_spec": "wrappy@1", - "_where": "/Users/trott/io.js/tools/node_modules/inflight", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/inflight", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -54,7 +31,9 @@ "bugs": { "url": "https://github.com/npm/wrappy/issues" }, + "bundleDependencies": false, "dependencies": {}, + "deprecated": false, "description": "Callback wrapping utility", "devDependencies": { "tap": "^2.3.1" @@ -62,30 +41,13 @@ "directories": { "test": "test" }, - "dist": { - "shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f", - "tarball": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - }, "files": [ "wrappy.js" ], - "gitHead": "71d91b6dc5bdeac37e218c2cf03f9ab55b60d214", "homepage": "https://github.com/npm/wrappy", "license": "ISC", "main": "wrappy.js", - "maintainers": [ - { - "name": "isaacs", - "email": "i@izs.me" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], "name": "wrappy", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/npm/wrappy.git" diff --git a/tools/eslint/node_modules/write/package.json b/tools/eslint/node_modules/write/package.json index 4e2c2499f2a6ea..9229848c715511 100644 --- a/tools/eslint/node_modules/write/package.json +++ b/tools/eslint/node_modules/write/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "write@^0.2.1", - "scope": null, - "escapedName": "write", - "name": "write", - "rawSpec": "^0.2.1", - "spec": ">=0.2.1 <0.3.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/flat-cache" - ] - ], - "_from": "write@>=0.2.1 <0.3.0", + "_from": "write@^0.2.1", "_id": "write@0.2.1", - "_inCache": true, - "_location": "/write", - "_nodeVersion": "0.12.4", - "_npmUser": { - "name": "jonschlinkert", - "email": "github@sellside.com" - }, - "_npmVersion": "2.10.1", + "_inBundle": false, + "_integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "_location": "/eslint/write", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "write@^0.2.1", - "scope": null, - "escapedName": "write", "name": "write", + "escapedName": "write", "rawSpec": "^0.2.1", - "spec": ">=0.2.1 <0.3.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^0.2.1" }, "_requiredBy": [ - "/flat-cache" + "/eslint/flat-cache" ], "_resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "_shasum": "5fc03828e264cea3fe91455476f7a3c566cb0757", - "_shrinkwrap": null, "_spec": "write@^0.2.1", - "_where": "/Users/trott/io.js/tools/node_modules/flat-cache", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/flat-cache", "author": { "name": "Jon Schlinkert", "url": "https://github.com/jonschlinkert" @@ -48,9 +29,11 @@ "bugs": { "url": "https://github.com/jonschlinkert/write/issues" }, + "bundleDependencies": false, "dependencies": { "mkdirp": "^0.5.1" }, + "deprecated": false, "description": "Write files to disk, creating intermediate directories if they don't exist.", "devDependencies": { "async": "^1.4.0", @@ -58,18 +41,12 @@ "mocha": "^2.2.5", "should": "^7.0.2" }, - "directories": {}, - "dist": { - "shasum": "5fc03828e264cea3fe91455476f7a3c566cb0757", - "tarball": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" - }, "engines": { "node": ">=0.10.0" }, "files": [ "index.js" ], - "gitHead": "4fde911228a1d244d4439292d6850175c8195730", "homepage": "https://github.com/jonschlinkert/write", "keywords": [ "file", @@ -85,15 +62,7 @@ ], "license": "MIT", "main": "index.js", - "maintainers": [ - { - "name": "jonschlinkert", - "email": "github@sellside.com" - } - ], "name": "write", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/jonschlinkert/write.git" diff --git a/tools/eslint/node_modules/xtend/package.json b/tools/eslint/node_modules/xtend/package.json index 175967a3eefad3..f1ed0de01e8f68 100644 --- a/tools/eslint/node_modules/xtend/package.json +++ b/tools/eslint/node_modules/xtend/package.json @@ -1,46 +1,27 @@ { - "_args": [ - [ - { - "raw": "xtend@^4.0.0", - "scope": null, - "escapedName": "xtend", - "name": "xtend", - "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" - }, - "/Users/trott/io.js/tools/node_modules/is-my-json-valid" - ] - ], - "_from": "xtend@>=4.0.0 <5.0.0", + "_from": "xtend@^4.0.0", "_id": "xtend@4.0.1", - "_inCache": true, - "_location": "/xtend", - "_nodeVersion": "0.10.32", - "_npmUser": { - "name": "raynos", - "email": "raynos2@gmail.com" - }, - "_npmVersion": "2.14.1", + "_inBundle": false, + "_integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "_location": "/eslint/xtend", "_phantomChildren": {}, "_requested": { + "type": "range", + "registry": true, "raw": "xtend@^4.0.0", - "scope": null, - "escapedName": "xtend", "name": "xtend", + "escapedName": "xtend", "rawSpec": "^4.0.0", - "spec": ">=4.0.0 <5.0.0", - "type": "range" + "saveSpec": null, + "fetchSpec": "^4.0.0" }, "_requiredBy": [ - "/is-my-json-valid" + "/eslint/is-my-json-valid" ], "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af", - "_shrinkwrap": null, "_spec": "xtend@^4.0.0", - "_where": "/Users/trott/io.js/tools/node_modules/is-my-json-valid", + "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/is-my-json-valid", "author": { "name": "Raynos", "email": "raynos2@gmail.com" @@ -49,6 +30,7 @@ "url": "https://github.com/Raynos/xtend/issues", "email": "raynos2@gmail.com" }, + "bundleDependencies": false, "contributors": [ { "name": "Jake Verbaten" @@ -58,19 +40,14 @@ } ], "dependencies": {}, + "deprecated": false, "description": "extend like a boss", "devDependencies": { "tape": "~1.1.0" }, - "directories": {}, - "dist": { - "shasum": "a5c6d532be656e23db820efb943a1f04998d63af", - "tarball": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - }, "engines": { "node": ">=0.4" }, - "gitHead": "23dc302a89756da89c1897bc732a752317e35390", "homepage": "https://github.com/Raynos/xtend", "keywords": [ "extend", @@ -82,15 +59,7 @@ ], "license": "MIT", "main": "immutable", - "maintainers": [ - { - "name": "raynos", - "email": "raynos2@gmail.com" - } - ], "name": "xtend", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git://github.com/Raynos/xtend.git" diff --git a/tools/eslint/package-lock.json b/tools/eslint/package-lock.json new file mode 100644 index 00000000000000..4f78e2baa58b47 --- /dev/null +++ b/tools/eslint/package-lock.json @@ -0,0 +1,801 @@ +{ + "name": "eslint", + "version": "4.1.0", + "lockfileVersion": 1, + "dependencies": { + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=" + }, + "ansi-escapes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", + "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=" + }, + "bail": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.1.tgz", + "integrity": "sha1-kSV53os5Gq3zxf30zSoPwiXfO8I=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=" + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "ccount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.1.tgz", + "integrity": "sha1-ZlaHlFFowhjsd/9hpBVa4AInqWw=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + }, + "character-entities": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.0.tgz", + "integrity": "sha1-poPiz3Xb6LFxljUxNk5Y4YobFV8=" + }, + "character-entities-html4": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.0.tgz", + "integrity": "sha1-GrCFUdPOH6HfCNAPucod77FHoGw=" + }, + "character-entities-legacy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.0.tgz", + "integrity": "sha1-sYqtmPa3vMZGweTIH58ZVjdqVho=" + }, + "character-reference-invalid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.0.tgz", + "integrity": "sha1-3smtHfufjQa0/NqircPE/ZevHmg=" + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "collapse-white-space": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", + "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=" + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint-plugin-markdown": { + "version": "1.0.0-beta.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz", + "integrity": "sha1-gqGZcTmeSxti99SsZCRofCwH7no=" + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=" + }, + "espree": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", + "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=" + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=" + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=" + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", + "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=" + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + }, + "iconv-lite": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" + }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inquirer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.1.tgz", + "integrity": "sha512-H50sHQwgvvaTBd3HpKMVtL/u6LoHDvYym51gd7bGQe/+9HkCE+J0/3N5FJLfd6O6oz44hHewC2Pc2LodzWVafQ==" + }, + "is-alphabetical": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.0.tgz", + "integrity": "sha1-4lRMEwWCVfIUTLdXBmzTNCocjEY=" + }, + "is-alphanumerical": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.0.tgz", + "integrity": "sha1-4GSS5xnBvxXewjnk8a9fZ7TW578=" + }, + "is-decimal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.0.tgz", + "integrity": "sha1-lAV5tupjxigICmnmK9qIyEcLT+A=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-hexadecimal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.0.tgz", + "integrity": "sha1-XEWXcdKvmi45Ungf1U/LG8/kETw=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=" + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "js-yaml": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", + "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=" + }, + "jschardet": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz", + "integrity": "sha1-KqEH8UKvQSHRRWWdRPUIMJYeaZo=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "longest-streak": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", + "integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=" + }, + "markdown-table": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", + "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=" + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "parse-entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", + "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=" + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + }, + "pluralize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", + "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "readable-stream": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", + "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=" + }, + "remark": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-5.1.0.tgz", + "integrity": "sha1-y0Y709vLS5l5STXu4c9x16jjBow=" + }, + "remark-parse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-1.1.0.tgz", + "integrity": "sha1-w8oQ+ajaBGFcKPCapOMEUQUm7CE=" + }, + "remark-stringify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-1.1.0.tgz", + "integrity": "sha1-pxBeJbnuK/mkm3XSxCPxGwauIJI=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=" + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "string-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.0.tgz", + "integrity": "sha1-AwZkVh/BRslCPsfZeP4kV0N/5tA=", + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + } + } + }, + "stringify-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", + "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "table": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", + "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-trailing-lines": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", + "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=" + }, + "trough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.0.tgz", + "integrity": "sha1-a97f5/KqSabzxDIldodVWVfzQv0=" + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unherit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", + "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=" + }, + "unified": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-4.2.1.tgz", + "integrity": "sha1-dv9Dqo2kMPbn5KVchOusKtLPzS4=" + }, + "unist-util-remove-position": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", + "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=" + }, + "unist-util-visit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.1.3.tgz", + "integrity": "sha1-7CaOcxudJ3p5pbWqBkOZDkBdYAs=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vfile": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz", + "integrity": "sha1-wP1vpIT43r23cfaMMe112I2pf+c=" + }, + "vfile-location": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.1.tgz", + "integrity": "sha1-C/iBb3MrD4vZAqVv2kxiyOk13FI=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } +} diff --git a/tools/eslint/package.json b/tools/eslint/package.json index e064affa2526dc..f66abf07fba861 100644 --- a/tools/eslint/package.json +++ b/tools/eslint/package.json @@ -1,50 +1,28 @@ { - "_args": [ - [ - { - "raw": "eslint", - "scope": null, - "escapedName": "eslint", - "name": "eslint", - "rawSpec": "", - "spec": "latest", - "type": "tag" - }, - "/Users/trott/io.js/tools" - ] - ], - "_from": "eslint@latest", - "_id": "eslint@4.0.0", - "_inCache": true, + "_from": "eslint@4.1.0", + "_id": "eslint@4.1.0", + "_inBundle": false, + "_integrity": "sha1-u7VaKCIO4Itp2pVU1FprLr/X2RM=", "_location": "/eslint", - "_nodeVersion": "6.10.3", - "_npmOperationalInternal": { - "host": "s3://npm-registry-packages", - "tmp": "tmp/eslint-4.0.0.tgz_1497230482786_0.8626390695571899" - }, - "_npmUser": { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" - }, - "_npmVersion": "4.5.0", "_phantomChildren": {}, "_requested": { - "raw": "eslint", - "scope": null, - "escapedName": "eslint", + "type": "version", + "registry": true, + "raw": "eslint@4.1.0", "name": "eslint", - "rawSpec": "", - "spec": "latest", - "type": "tag" + "escapedName": "eslint", + "rawSpec": "4.1.0", + "saveSpec": null, + "fetchSpec": "4.1.0" }, "_requiredBy": [ - "#USER" + "#USER", + "/" ], - "_resolved": "https://registry.npmjs.org/eslint/-/eslint-4.0.0.tgz", - "_shasum": "7277c01437fdf41dccd168d5aa0e49b75ca1f260", - "_shrinkwrap": null, - "_spec": "eslint", - "_where": "/Users/trott/io.js/tools", + "_resolved": "https://registry.npmjs.org/eslint/-/eslint-4.1.0.tgz", + "_shasum": "bbb55a28220ee08b69da9554d45a6b2ebfd7d913", + "_spec": "eslint@4.1.0", + "_where": "/Users/trott/io.js/tools/eslint-tmp", "author": { "name": "Nicholas C. Zakas", "email": "nicholas+npm@nczconsulting.com" @@ -55,12 +33,14 @@ "bugs": { "url": "https://github.com/eslint/eslint/issues/" }, + "bundleDependencies": false, "dependencies": { "babel-code-frame": "^6.22.0", "chalk": "^1.1.3", "concat-stream": "^1.6.0", "debug": "^2.6.8", "doctrine": "^2.0.0", + "eslint-plugin-markdown": "^1.0.0-beta.4", "eslint-scope": "^3.7.1", "espree": "^3.4.3", "esquery": "^1.0.0", @@ -78,6 +58,7 @@ "json-stable-stringify": "^1.0.1", "levn": "^0.3.0", "lodash": "^4.17.4", + "minimatch": "^3.0.2", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", @@ -89,6 +70,7 @@ "table": "^4.0.1", "text-table": "~0.2.0" }, + "deprecated": false, "description": "An AST-based pattern checker for JavaScript.", "devDependencies": { "babel-polyfill": "^6.23.0", @@ -129,11 +111,6 @@ "temp": "^0.8.3", "through": "^2.3.8" }, - "directories": {}, - "dist": { - "shasum": "7277c01437fdf41dccd168d5aa0e49b75ca1f260", - "tarball": "https://registry.npmjs.org/eslint/-/eslint-4.0.0.tgz" - }, "engines": { "node": ">=4" }, @@ -145,7 +122,6 @@ "lib", "messages" ], - "gitHead": "c61194f9440981d6c858525273e5c469bdd98290", "homepage": "http://eslint.org", "keywords": [ "ast", @@ -156,47 +132,7 @@ ], "license": "MIT", "main": "./lib/api.js", - "maintainers": [ - { - "name": "btmills", - "email": "mills.brandont@gmail.com" - }, - { - "name": "eslint", - "email": "nicholas+eslint@nczconsulting.com" - }, - { - "name": "gyandeeps", - "email": "gyandeeps@gmail.com" - }, - { - "name": "ivolodin", - "email": "ivolodin@gmail.com" - }, - { - "name": "kaicataldo", - "email": "kaicataldo@gmail.com" - }, - { - "name": "mysticatea", - "email": "star.ctor@gmail.com" - }, - { - "name": "not-an-aardvark", - "email": "notaardvark@gmail.com" - }, - { - "name": "nzakas", - "email": "nicholas@nczconsulting.com" - }, - { - "name": "sharpbites", - "email": "alberto.email@gmail.com" - } - ], "name": "eslint", - "optionalDependencies": {}, - "readme": "ERROR: No README data found!", "repository": { "type": "git", "url": "git+https://github.com/eslint/eslint.git" @@ -216,5 +152,5 @@ "release": "node Makefile.js release", "test": "node Makefile.js test" }, - "version": "4.0.0" + "version": "4.1.0" } diff --git a/tools/package-lock.json b/tools/package-lock.json new file mode 100644 index 00000000000000..45a4897e9c3d59 --- /dev/null +++ b/tools/package-lock.json @@ -0,0 +1,792 @@ +{ + "lockfileVersion": 1, + "dependencies": { + "acorn": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", + "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=" + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + }, + "ajv-keywords": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", + "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=" + }, + "ansi-escapes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", + "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=" + }, + "bail": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.1.tgz", + "integrity": "sha1-kSV53os5Gq3zxf30zSoPwiXfO8I=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=" + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "ccount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.1.tgz", + "integrity": "sha1-ZlaHlFFowhjsd/9hpBVa4AInqWw=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + }, + "character-entities": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.0.tgz", + "integrity": "sha1-poPiz3Xb6LFxljUxNk5Y4YobFV8=" + }, + "character-entities-html4": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.0.tgz", + "integrity": "sha1-GrCFUdPOH6HfCNAPucod77FHoGw=" + }, + "character-entities-legacy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.0.tgz", + "integrity": "sha1-sYqtmPa3vMZGweTIH58ZVjdqVho=" + }, + "character-reference-invalid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.0.tgz", + "integrity": "sha1-3smtHfufjQa0/NqircPE/ZevHmg=" + }, + "circular-json": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", + "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + }, + "cli-width": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "collapse-white-space": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.2.tgz", + "integrity": "sha1-nEY/ucbRkNLcriGjVqAbyunu720=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=" + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.1.0.tgz", + "integrity": "sha1-u7VaKCIO4Itp2pVU1FprLr/X2RM=" + }, + "eslint-plugin-markdown": { + "version": "1.0.0-beta.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz", + "integrity": "sha1-gqGZcTmeSxti99SsZCRofCwH7no=" + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=" + }, + "espree": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.4.3.tgz", + "integrity": "sha1-KRC1zNSc6JPC//+qtP2LOjG4I3Q=" + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=" + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=" + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", + "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=" + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=" + }, + "flat-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", + "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + }, + "iconv-lite": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" + }, + "ignore": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz", + "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inquirer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.1.1.tgz", + "integrity": "sha512-H50sHQwgvvaTBd3HpKMVtL/u6LoHDvYym51gd7bGQe/+9HkCE+J0/3N5FJLfd6O6oz44hHewC2Pc2LodzWVafQ==" + }, + "is-alphabetical": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.0.tgz", + "integrity": "sha1-4lRMEwWCVfIUTLdXBmzTNCocjEY=" + }, + "is-alphanumerical": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.0.tgz", + "integrity": "sha1-4GSS5xnBvxXewjnk8a9fZ7TW578=" + }, + "is-decimal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.0.tgz", + "integrity": "sha1-lAV5tupjxigICmnmK9qIyEcLT+A=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-hexadecimal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.0.tgz", + "integrity": "sha1-XEWXcdKvmi45Ungf1U/LG8/kETw=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=" + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "js-tokens": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" + }, + "js-yaml": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.4.tgz", + "integrity": "sha1-UgtFZPhlc7qWZir4Woyvp7S1pvY=" + }, + "jschardet": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.4.2.tgz", + "integrity": "sha1-KqEH8UKvQSHRRWWdRPUIMJYeaZo=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "longest-streak": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", + "integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=" + }, + "markdown-table": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", + "integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=" + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "parse-entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", + "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=" + }, + "parse5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-2.2.3.tgz", + "integrity": "sha1-DE/EHBAAxea5PUiwP4CDg3g06fY=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + }, + "pluralize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz", + "integrity": "sha1-WbcIwcAZCi9pLxx2GMRGsFL9F2I=" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "readable-stream": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.2.tgz", + "integrity": "sha1-WgTfBeT1f+Pw3Gj90R3FyXx+b00=" + }, + "remark": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-5.1.0.tgz", + "integrity": "sha1-y0Y709vLS5l5STXu4c9x16jjBow=" + }, + "remark-parse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-1.1.0.tgz", + "integrity": "sha1-w8oQ+ajaBGFcKPCapOMEUQUm7CE=" + }, + "remark-stringify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-1.1.0.tgz", + "integrity": "sha1-pxBeJbnuK/mkm3XSxCPxGwauIJI=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=" + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "string-width": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", + "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=" + }, + "stringify-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", + "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "table": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", + "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-trailing-lines": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", + "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=" + }, + "trough": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.0.tgz", + "integrity": "sha1-a97f5/KqSabzxDIldodVWVfzQv0=" + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "unherit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", + "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=" + }, + "unified": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-4.2.1.tgz", + "integrity": "sha1-dv9Dqo2kMPbn5KVchOusKtLPzS4=" + }, + "unist-util-remove-position": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", + "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=" + }, + "unist-util-visit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.1.3.tgz", + "integrity": "sha1-7CaOcxudJ3p5pbWqBkOZDkBdYAs=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vfile": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz", + "integrity": "sha1-wP1vpIT43r23cfaMMe112I2pf+c=" + }, + "vfile-location": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.1.tgz", + "integrity": "sha1-C/iBb3MrD4vZAqVv2kxiyOk13FI=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } +} From c732bf613d2f7d4ff2f950e9de29202456f3d7d4 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 23 Jun 2017 20:27:51 -0700 Subject: [PATCH 052/248] tools: add script to update ESLint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provide a bash script for updating ESLint in the project. PR-URL: https://github.com/nodejs/node/pull/13895 Reviewed-By: Colin Ihrig Reviewed-By: Roman Reiss Reviewed-By: James M Snell Reviewed-By: Refael Ackermann Reviewed-By: Michaël Zasso --- tools/update-eslint.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 tools/update-eslint.sh diff --git a/tools/update-eslint.sh b/tools/update-eslint.sh new file mode 100755 index 00000000000000..0c9d3758dca973 --- /dev/null +++ b/tools/update-eslint.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# Shell script to update ESLint in the source tree to the latest release. + +# Depends on npm and node being in $PATH. + +# This script must be be in the tools directory when it runs because it uses +# $BASH_SOURCE[0] to determine directories to work in. + +cd "$( dirname "${BASH_SOURCE[0]}" )" +rm -rf eslint +mkdir eslint-tmp +cd eslint-tmp + +npm install --global-style --no-binlinks --production eslint@latest +cd node_modules/eslint + +# eslint-plugin-markdown is pinned at 1.0.0-beta.4 until there is a release +# that fixes https://github.com/eslint/eslint-plugin-markdown/issues/69. +npm install --no-bin-links --production eslint-plugin-markdown@1.0.0-beta.4 +cd ../.. + +# Install dmn if it is not in path. +type -P dmn || npm install -g dmn + +# Use dmn to remove some unneeded files. +dmn -f clean + +cd .. +mv eslint-tmp/node_modules/eslint eslint +rm -rf eslint-tmp/ From 4ecff6cad741b7e3e5893084be4f658fba0c0d4d Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 23 Jun 2017 20:52:07 -0700 Subject: [PATCH 053/248] tools,benchmark: use stricter indentation linting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable stricter indentation rules for benchmark code. PR-URL: https://github.com/nodejs/node/pull/13895 Reviewed-By: Colin Ihrig Reviewed-By: Roman Reiss Reviewed-By: James M Snell Reviewed-By: Refael Ackermann Reviewed-By: Michaël Zasso --- benchmark/.eslintrc.yaml | 13 +++++++++++++ benchmark/_benchmark_progress.js | 15 +++++++-------- benchmark/_http-benchmarkers.js | 17 ++++++++--------- benchmark/buffers/buffer-compare-offset.js | 4 ++-- .../child_process/child-process-read-ipc.js | 2 +- benchmark/compare.js | 9 +++------ benchmark/run.js | 4 +--- benchmark/scatter.js | 4 +--- 8 files changed, 36 insertions(+), 32 deletions(-) create mode 100644 benchmark/.eslintrc.yaml diff --git a/benchmark/.eslintrc.yaml b/benchmark/.eslintrc.yaml new file mode 100644 index 00000000000000..d569a63249f0d9 --- /dev/null +++ b/benchmark/.eslintrc.yaml @@ -0,0 +1,13 @@ +## Benchmarks-specific linter rules + +rules: + # Stylistic Issues + # http://eslint.org/docs/rules/#stylistic-issues + indent: [2, 2, {ArrayExpression: first, + CallExpression: {arguments: first}, + FunctionDeclaration: {parameters: first}, + FunctionExpression: {parameters: first}, + MemberExpression: off, + ObjectExpression: first, + SwitchCase: 1}] + indent-legacy: 0 diff --git a/benchmark/_benchmark_progress.js b/benchmark/_benchmark_progress.js index 5e2ae4ab11dc75..0c5cc10bf8d536 100644 --- a/benchmark/_benchmark_progress.js +++ b/benchmark/_benchmark_progress.js @@ -87,8 +87,8 @@ class BenchmarkProgress { const runsPerFile = this.runsPerFile; const completedFiles = Math.floor(completedRuns / runsPerFile); const scheduledFiles = this.benchmarks.length; - const completedRunsForFile = finished ? runsPerFile : - completedRuns % runsPerFile; + const completedRunsForFile = + finished ? runsPerFile : completedRuns % runsPerFile; const completedConfig = this.completedConfig; const scheduledConfig = this.scheduledConfig; @@ -101,12 +101,11 @@ class BenchmarkProgress { const percent = pad(Math.floor(completedRate * 100), 3, ' '); const caption = finished ? 'Done\n' : this.currentFile; - return `[${getTime(diff)}|% ${ - percent}| ${ - fraction(completedFiles, scheduledFiles)} files | ${ - fraction(completedRunsForFile, runsPerFile)} runs | ${ - fraction(completedConfig, scheduledConfig)} configs]: ${ - caption} `; + return `[${getTime(diff)}|% ${percent}| ` + + `${fraction(completedFiles, scheduledFiles)} files | ` + + `${fraction(completedRunsForFile, runsPerFile)} runs | ` + + `${fraction(completedConfig, scheduledConfig)} configs]: ` + + `${caption} `; } updateProgress(finished) { diff --git a/benchmark/_http-benchmarkers.js b/benchmark/_http-benchmarkers.js index bdc35308a704db..3f17f05f831170 100644 --- a/benchmark/_http-benchmarkers.js +++ b/benchmark/_http-benchmarkers.js @@ -13,9 +13,8 @@ exports.PORT = process.env.PORT || 12346; class AutocannonBenchmarker { constructor() { this.name = 'autocannon'; - this.executable = process.platform === 'win32' ? - 'autocannon.cmd' : - 'autocannon'; + this.executable = + process.platform === 'win32' ? 'autocannon.cmd' : 'autocannon'; const result = child_process.spawnSync(this.executable, ['-h']); this.present = !(result.error && result.error.code === 'ENOENT'); } @@ -136,19 +135,19 @@ exports.run = function(options, callback) { benchmarker: exports.default_http_benchmarker }, options); if (!options.benchmarker) { - callback(new Error(`Could not locate required http benchmarker. See ${ - requirementsURL} for further instructions.`)); + callback(new Error('Could not locate required http benchmarker. See ' + + `${requirementsURL} for further instructions.`)); return; } const benchmarker = benchmarkers[options.benchmarker]; if (!benchmarker) { - callback(new Error(`Requested benchmarker '${ - options.benchmarker}' is not supported`)); + callback(new Error(`Requested benchmarker '${options.benchmarker}' ` + + 'is not supported')); return; } if (!benchmarker.present) { - callback(new Error(`Requested benchmarker '${ - options.benchmarker}' is not installed`)); + callback(new Error(`Requested benchmarker '${options.benchmarker}' ` + + 'is not installed')); return; } diff --git a/benchmark/buffers/buffer-compare-offset.js b/benchmark/buffers/buffer-compare-offset.js index fd8c96dbce0158..96719abfbe5618 100644 --- a/benchmark/buffers/buffer-compare-offset.js +++ b/benchmark/buffers/buffer-compare-offset.js @@ -26,8 +26,8 @@ function compareUsingOffset(b0, b1, len, iter) { function main(conf) { const iter = (conf.millions >>> 0) * 1e6; const size = (conf.size >>> 0); - const method = conf.method === 'slice' ? - compareUsingSlice : compareUsingOffset; + const method = + conf.method === 'slice' ? compareUsingSlice : compareUsingOffset; method(Buffer.alloc(size, 'a'), Buffer.alloc(size, 'b'), size >> 1, diff --git a/benchmark/child_process/child-process-read-ipc.js b/benchmark/child_process/child-process-read-ipc.js index 30dead18032f98..e6fb9b19c202dc 100644 --- a/benchmark/child_process/child-process-read-ipc.js +++ b/benchmark/child_process/child-process-read-ipc.js @@ -26,7 +26,7 @@ if (process.argv[2] === 'child') { const options = { 'stdio': ['ignore', 1, 2, 'ipc'] }; const child = spawn(process.argv[0], - [process.argv[1], 'child', len], options); + [process.argv[1], 'child', len], options); var bytes = 0; child.on('message', function(msg) { diff --git a/benchmark/compare.js b/benchmark/compare.js index aa6ddb72c0d054..6b51a70eb9a41b 100644 --- a/benchmark/compare.js +++ b/benchmark/compare.js @@ -20,10 +20,7 @@ const cli = CLI(`usage: ./node compare.js [options] [--] ... --filter pattern string to filter benchmark scripts --set variable=value set benchmark variable (can be repeated) --no-progress don't show benchmark progress indicator -`, { - arrayArgs: ['set'], - boolArgs: ['no-progress'] -}); +`, { arrayArgs: ['set'], boolArgs: ['no-progress'] }); if (!cli.optional.new || !cli.optional.old) { cli.abort(cli.usage); @@ -85,8 +82,8 @@ if (showProgress) { // Escape quotes (") for correct csv formatting conf = conf.replace(/"/g, '""'); - console.log(`"${job.binary}", "${job.filename}", "${conf}", ${ - data.rate}, ${data.time}`); + console.log(`"${job.binary}", "${job.filename}", "${conf}", ` + + `${data.rate}, ${data.time}`); if (showProgress) { // One item in the subqueue has been completed. progress.completeConfig(data); diff --git a/benchmark/run.js b/benchmark/run.js index 2b263a1a6cb573..af2bd4d5c2bcec 100644 --- a/benchmark/run.js +++ b/benchmark/run.js @@ -11,9 +11,7 @@ const cli = CLI(`usage: ./node run.js [options] [--] ... --filter pattern string to filter benchmark scripts --set variable=value set benchmark variable (can be repeated) --format [simple|csv] optional value that specifies the output format -`, { - arrayArgs: ['set'] -}); +`, { arrayArgs: ['set'] }); const benchmarks = cli.benchmarks(); if (benchmarks.length === 0) { diff --git a/benchmark/scatter.js b/benchmark/scatter.js index 306d06132f3254..70c3e25bb9f2ad 100644 --- a/benchmark/scatter.js +++ b/benchmark/scatter.js @@ -13,9 +13,7 @@ const cli = CLI(`usage: ./node scatter.js [options] [--] --runs 30 number of samples --set variable=value set benchmark variable (can be repeated) -`, { - arrayArgs: ['set'] -}); +`, { arrayArgs: ['set'] }); if (cli.items.length !== 1) { cli.abort(cli.usage); From 84b1641182f056e3c5c549062427eebc9468490b Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Fri, 23 Jun 2017 20:56:44 -0700 Subject: [PATCH 054/248] tools: disable legacy indentation linting in tools MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tools directory has newer and stricter indentation enabled, but the legacy indentation rules were not disabled. This could potentitally result in a conflict between the two rule sets. Disable legacy linting. PR-URL: https://github.com/nodejs/node/pull/13895 Reviewed-By: Colin Ihrig Reviewed-By: Roman Reiss Reviewed-By: James M Snell Reviewed-By: Refael Ackermann Reviewed-By: Michaël Zasso --- tools/.eslintrc.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/.eslintrc.yaml b/tools/.eslintrc.yaml index e1405dd718bf0f..002fe1a6a74c80 100644 --- a/tools/.eslintrc.yaml +++ b/tools/.eslintrc.yaml @@ -10,3 +10,4 @@ rules: MemberExpression: off, ObjectExpression: first, SwitchCase: 1}] + indent-legacy: 0 From 5579bc8fb6831f9875ab13997593dcf22d846ecb Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Mon, 29 May 2017 08:27:52 -0400 Subject: [PATCH 055/248] src,fs: calculate times as unsigned long PR-URL: https://github.com/nodejs/node/pull/13281 Fixes: https://github.com/nodejs/node/issues/13255 Reviewed-By: Anna Henningsen Reviewed-By: James M Snell --- src/node_file.cc | 11 ++++++---- test/parallel/test-fs-utimes.js | 36 +++++++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/node_file.cc b/src/node_file.cc index 6d07a0625944fd..beaf581afca0ff 100644 --- a/src/node_file.cc +++ b/src/node_file.cc @@ -478,10 +478,13 @@ void FillStatsArray(double* fields, const uv_stat_t* s) { #else fields[9] = -1; #endif - // Dates. -#define X(idx, name) \ - fields[idx] = (s->st_##name.tv_sec * 1e3) + \ - (s->st_##name.tv_nsec / 1e6); \ +// Dates. +// NO-LINT because the fields are 'long' and we just want to cast to `unsigned` +#define X(idx, name) \ + /* NOLINTNEXTLINE(runtime/int) */ \ + fields[idx] = ((unsigned long)(s->st_##name.tv_sec) * 1e3) + \ + /* NOLINTNEXTLINE(runtime/int) */ \ + ((unsigned long)(s->st_##name.tv_nsec) / 1e6); \ X(10, atim) X(11, mtim) diff --git a/test/parallel/test-fs-utimes.js b/test/parallel/test-fs-utimes.js index f5eaf282f59ad0..b72b294a0bd1b1 100644 --- a/test/parallel/test-fs-utimes.js +++ b/test/parallel/test-fs-utimes.js @@ -163,8 +163,40 @@ runTest(new Date('1982-09-10 13:37'), new Date('1982-09-10 13:37'), function() { }); }); - process.on('exit', function() { - console.log('Tests run / ok:', tests_run, '/', tests_ok); assert.strictEqual(tests_ok, tests_run); }); + + +// Ref: https://github.com/nodejs/node/issues/13255 +common.refreshTmpDir(); +const path = `${common.tmpDir}/test-utimes-precision`; +fs.writeFileSync(path, ''); + +// test Y2K38 for all platforms [except 'arm', and 'SunOS'] +if (!process.arch.includes('arm') && !common.isSunOS) { + // because 2 ** 31 doesn't look right + // eslint-disable-next-line space-infix-ops + const Y2K38_mtime = 2**31; + fs.utimesSync(path, Y2K38_mtime, Y2K38_mtime); + const Y2K38_stats = fs.statSync(path); + assert.strictEqual(Y2K38_mtime, Y2K38_stats.mtime.getTime() / 1000); +} + +if (common.isWindows) { + // this value would get converted to (double)1713037251359.9998 + const truncate_mtime = 1713037251360; + fs.utimesSync(path, truncate_mtime / 1000, truncate_mtime / 1000); + const truncate_stats = fs.statSync(path); + assert.strictEqual(truncate_mtime, truncate_stats.mtime.getTime()); + + // test Y2K38 for windows + // This value if treaded as a `signed long` gets converted to -2135622133469. + // POSIX systems stores timestamps in {long t_sec, long t_usec}. + // NTFS stores times in nanoseconds in a single `uint64_t`, so when libuv + // calculates (long)`uv_timespec_t.tv_sec` we get 2's complement. + const overflow_mtime = 2159345162531; + fs.utimesSync(path, overflow_mtime / 1000, overflow_mtime / 1000); + const overflow_stats = fs.statSync(path); + assert.strictEqual(overflow_mtime, overflow_stats.mtime.getTime()); +} From 6120a0de6cf5e32cbf0ea8a4c47790f0d96b059e Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Sun, 18 Jun 2017 14:15:00 +0200 Subject: [PATCH 056/248] test: skip fips tests using OpenSSL config file The motivation for this commit is that we are building Node with --shared-openssl and in our case the system OpenSSL version supports FIPS. The tests in test-crypto-fips that toggle fips mode on/off using the config file option might succeed and return 1 instead of an error being thrown from OpenSSL (which is what happens for a default build but the error is not processed/displayed in any way at the moment): openssl config failed: error:060B10A7:digital envelope routines:ALG_MODULE_INIT:fips mode not supported Note that this only concerns the test that use the configuration file option which is different from when calling the fips setter as the handling of the configuration file is handled by OpenSSL, so it is not possible for us to try to call the fips setter as that would throw an error ("Error: Cannot set FIPS mode in a non-FIPS build."). The suggestion is to skips these tests when --shared-openssl is used. PR-URL: https://github.com/nodejs/node/pull/13786 Reviewed-By: Michael Dawson Reviewed-By: James M Snell --- test/parallel/test-crypto-fips.js | 64 ++++++++++++++++++++----------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/test/parallel/test-crypto-fips.js b/test/parallel/test-crypto-fips.js index 2b87937fe705d4..a83170c49ae4b1 100644 --- a/test/parallel/test-crypto-fips.js +++ b/test/parallel/test-crypto-fips.js @@ -21,6 +21,10 @@ function compiledWithFips() { return process.config.variables.openssl_fips ? true : false; } +function sharedOpenSSL() { + return process.config.variables.node_shared_openssl; +} + function addToEnv(newVar, value) { const envCopy = {}; for (const e in process.env) { @@ -85,29 +89,43 @@ testHelper( 'require("crypto").fips', process.env); -// OpenSSL config file should be able to turn on FIPS mode -testHelper( - 'stdout', - [`--openssl-config=${CNF_FIPS_ON}`], - compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, - 'require("crypto").fips', - process.env); - -// OPENSSL_CONF should be able to turn on FIPS mode -testHelper( - 'stdout', - [], - compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, - 'require("crypto").fips', - addToEnv('OPENSSL_CONF', CNF_FIPS_ON)); - -// --openssl-config option should override OPENSSL_CONF -testHelper( - 'stdout', - [`--openssl-config=${CNF_FIPS_ON}`], - compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, - 'require("crypto").fips', - addToEnv('OPENSSL_CONF', CNF_FIPS_OFF)); +// If Node was configured using --shared-openssl fips support might be +// available depending on how OpenSSL was built. If fips support is +// available the tests that toggle the fips_mode on/off using the config +// file option will succeed and return 1 instead of 0. +// +// Note that this case is different from when calling the fips setter as the +// configuration file is handled by OpenSSL, so it is not possible for us +// to try to call the fips setter, to try to detect this situation, as +// that would throw an error: +// ("Error: Cannot set FIPS mode in a non-FIPS build."). +// Due to this uncertanty the following tests are skipped when configured +// with --shared-openssl. +if (!sharedOpenSSL()) { + // OpenSSL config file should be able to turn on FIPS mode + testHelper( + 'stdout', + [`--openssl-config=${CNF_FIPS_ON}`], + compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, + 'require("crypto").fips', + process.env); + + // OPENSSL_CONF should be able to turn on FIPS mode + testHelper( + 'stdout', + [], + compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, + 'require("crypto").fips', + addToEnv('OPENSSL_CONF', CNF_FIPS_ON)); + + // --openssl-config option should override OPENSSL_CONF + testHelper( + 'stdout', + [`--openssl-config=${CNF_FIPS_ON}`], + compiledWithFips() ? FIPS_ENABLED : FIPS_DISABLED, + 'require("crypto").fips', + addToEnv('OPENSSL_CONF', CNF_FIPS_OFF)); +} testHelper( 'stdout', From 502be7c08527d21c8ab36bc1ad67bdd7de9a9c76 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Mon, 19 Jun 2017 18:23:09 -0700 Subject: [PATCH 057/248] doc: fixed formatting issue in cli docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed some bad escape characters PR-URL: https://github.com/nodejs/node/pull/13808 Fixes: https://github.com/nodejs/node/issues/13805 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Timothy Gu Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Yuta Hiroto Reviewed-By: Michael Dawson Reviewed-By: Gibson Fahnestock --- doc/api/cli.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/cli.md b/doc/api/cli.md index bf92f67ba29dab..2e644febab2f4a 100644 --- a/doc/api/cli.md +++ b/doc/api/cli.md @@ -512,7 +512,7 @@ added: v7.7.0 Load an OpenSSL configuration file on startup. Among other uses, this can be used to enable FIPS-compliant crypto if Node.js is built with `./configure -\-\-openssl\-fips`. +--openssl-fips`. If the [`--openssl-config`][] command line option is used, the environment variable is ignored. From c4018e8a482f50ceb5a4ea3b0c744014e22deeb5 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia Date: Mon, 19 Jun 2017 20:18:12 -0300 Subject: [PATCH 058/248] test: remove unneeded HandleScope usage These methods are Javascript-accessible so they get an implicit HandleScope. The extra scope is unneeded and can be dropped. PR-URL: https://github.com/nodejs/node/pull/13859 Reviewed-By: Ben Noordhuis Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Signed-off-by: Ezequiel Garcia --- test/addons/async-hello-world/binding.cc | 1 - test/addons/hello-world-function-export/binding.cc | 1 - test/addons/hello-world/binding.cc | 1 - test/addons/repl-domain-abort/binding.cc | 2 -- 4 files changed, 5 deletions(-) diff --git a/test/addons/async-hello-world/binding.cc b/test/addons/async-hello-world/binding.cc index 70fee63aa5e648..da2bd417cd9a6f 100644 --- a/test/addons/async-hello-world/binding.cc +++ b/test/addons/async-hello-world/binding.cc @@ -55,7 +55,6 @@ void AfterAsync(uv_work_t* r) { void Method(const v8::FunctionCallbackInfo& args) { v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope scope(isolate); async_req* req = new async_req; req->req.data = req; diff --git a/test/addons/hello-world-function-export/binding.cc b/test/addons/hello-world-function-export/binding.cc index c113e0489bde0e..9a93a806e7156e 100644 --- a/test/addons/hello-world-function-export/binding.cc +++ b/test/addons/hello-world-function-export/binding.cc @@ -3,7 +3,6 @@ void Method(const v8::FunctionCallbackInfo& args) { v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope scope(isolate); args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world")); } diff --git a/test/addons/hello-world/binding.cc b/test/addons/hello-world/binding.cc index 5651dc8f50a317..83823ae8363cd9 100644 --- a/test/addons/hello-world/binding.cc +++ b/test/addons/hello-world/binding.cc @@ -3,7 +3,6 @@ void Method(const v8::FunctionCallbackInfo& args) { v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope scope(isolate); args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world")); } diff --git a/test/addons/repl-domain-abort/binding.cc b/test/addons/repl-domain-abort/binding.cc index 9363a16617382d..b2f2c74348c655 100644 --- a/test/addons/repl-domain-abort/binding.cc +++ b/test/addons/repl-domain-abort/binding.cc @@ -25,14 +25,12 @@ using v8::Function; using v8::FunctionCallbackInfo; using v8::Local; -using v8::HandleScope; using v8::Isolate; using v8::Object; using v8::Value; void Method(const FunctionCallbackInfo& args) { Isolate* isolate = args.GetIsolate(); - HandleScope scope(isolate); node::MakeCallback(isolate, isolate->GetCurrentContext()->Global(), args[0].As(), From 0fc7a5077f7e04f66cdc3d977d396c129f4d1e11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Thu, 22 Jun 2017 10:44:44 +0200 Subject: [PATCH 059/248] doc: unify ERR_FALSY_VALUE_REJECTION description PR-URL: https://github.com/nodejs/node/pull/13869 Refs: https://github.com/nodejs/node/pull/13604 Refs: https://github.com/nodejs/node/pull/13627 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig --- doc/api/errors.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/api/errors.md b/doc/api/errors.md index e0c7414564694f..81490949c8b7bf 100644 --- a/doc/api/errors.md +++ b/doc/api/errors.md @@ -573,8 +573,8 @@ but not provided to a Node.js API. ### ERR_FALSY_VALUE_REJECTION -The `ERR_FALSY_VALUE_REJECTION` error code is used by the `util.callbackify()` -API when a callbackified `Promise` is rejected with a falsy value (e.g. `null`). +Used by the `util.callbackify()` API when a callbackified `Promise` is rejected +with a falsy value (e.g. `null`). ### ERR_INVALID_ARG_TYPE From 9ff5212d5f3f2bd92209c70b8f1f45a79bcd2b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= Date: Sun, 25 Jun 2017 21:31:54 +0200 Subject: [PATCH 060/248] doc: fix mistake in path.relative The docs implied that the parameters `from` and `to` are invalid only if neither of them is a string; in fact, they are invalid as soon as one of them is not a string. PR-URL: https://github.com/nodejs/node/pull/13912 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: David Cai Reviewed-By: Michael Dawson Reviewed-By: Vse Mozhet Byt --- doc/api/path.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/path.md b/doc/api/path.md index a5c5af6d068704..f951a4ab8a5b1a 100644 --- a/doc/api/path.md +++ b/doc/api/path.md @@ -466,7 +466,7 @@ path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'); // Returns: '..\\..\\impl\\bbb' ``` -A [`TypeError`][] is thrown if neither `from` nor `to` is a string. +A [`TypeError`][] is thrown if either `from` or `to` is not a string. ## path.resolve([...paths]) -These objects are available in all modules. Some of these objects aren't -actually in the global scope but in the module scope - this will be noted. +These objects are available in all modules. The following variables may appear +to be global but are not. They exist only in the scope of modules, see the +[module system documentation][]: + +- [`__dirname`][] +- [`__filename`][] +- [`exports`][] +- [`module`][] +- [`require()`][] The objects listed here are specific to Node.js. There are a number of [built-in objects][] that are part of the JavaScript language itself, which are @@ -21,67 +28,12 @@ added: v0.1.103 Used to handle binary data. See the [buffer section][]. ## \_\_dirname - - - - -* {string} - -The directory name of the current module. This the same as the -[`path.dirname()`][] of the [`__filename`][]. - -`__dirname` is not actually a global but rather local to each module. -Example: running `node example.js` from `/Users/mjr` - -```js -console.log(__dirname); -// Prints: /Users/mjr -console.log(path.dirname(__filename)); -// Prints: /Users/mjr -``` +This variable may appear to be global but is not. See [`__dirname`]. ## \_\_filename - - - - -* {string} - -The file name of the current module. This is the resolved absolute path of the -current module file. - -For a main program this is not necessarily the same as the file name used in the -command line. -See [`__dirname`][] for the directory name of the current module. - -`__filename` is not actually a global but rather local to each module. - -Examples: - -Running `node example.js` from `/Users/mjr` - -```js -console.log(__filename); -// Prints: /Users/mjr/example.js -console.log(__dirname); -// Prints: /Users/mjr -``` - -Given two modules: `a` and `b`, where `b` is a dependency of -`a` and there is a directory structure of: - -* `/Users/mjr/app/a.js` -* `/Users/mjr/app/node_modules/b/b.js` - -References to `__filename` within `b.js` will return -`/Users/mjr/app/node_modules/b/b.js` while references to `__filename` within -`a.js` will return `/Users/mjr/app/a.js`. +This variable may appear to be global but is not. See [`__filename`]. ## clearImmediate(immediateObject) - - - -A reference to the `module.exports` that is shorter to type. -See [module system documentation][] for details on when to use `exports` and -when to use `module.exports`. - -`exports` is not actually a global but rather local to each module. -See the [module system documentation][] for more information. +This variable may appear to be global but is not. See [`exports`]. ## global - - -* {Object} - -A reference to the current module. In particular -`module.exports` is used for defining what a module exports and makes -available through `require()`. - -`module` is not actually a global but rather local to each module. - -See the [module system documentation][] for more information. +This variable may appear to be global but is not. See [`module`]. ## process - - - -* {Function} - -To require modules. See the [Modules][] section. `require` is not actually a -global but rather local to each module. - -### require.cache - - -* {Object} - -Modules are cached in this object when they are required. By deleting a key -value from this object, the next `require` will reload the module. Note that -this does not apply to [native addons][], for which reloading will result in an -Error. - -### require.extensions - - -> Stability: 0 - Deprecated - -* {Object} - -Instruct `require` on how to handle certain file extensions. - -Process files with the extension `.sjs` as `.js`: - -```js -require.extensions['.sjs'] = require.extensions['.js']; -``` - -**Deprecated** In the past, this list has been used to load -non-JavaScript modules into Node.js by compiling them on-demand. -However, in practice, there are much better ways to do this, such as -loading modules via some other Node.js program, or compiling them to -JavaScript ahead of time. - -Since the module system is locked, this feature will probably never go -away. However, it may have subtle bugs and complexities that are best -left untouched. - -Note that the number of file system operations that the module system -has to perform in order to resolve a `require(...)` statement to a -filename scales linearly with the number of registered extensions. - -In other words, adding extensions slows down the module loader and -should be discouraged. - -### require.resolve() - -Use the internal `require()` machinery to look up the location of a module, -but rather than loading the module, just return the resolved filename. +This variable may appear to be global but is not. See [`require()`]. ## setImmediate(callback[, ...args]) + + + +* {string} + +The directory name of the current module. This the same as the +[`path.dirname()`][] of the [`__filename`][]. + +Example: running `node example.js` from `/Users/mjr` + +```js +console.log(__dirname); +// Prints: /Users/mjr +console.log(path.dirname(__filename)); +// Prints: /Users/mjr +``` + +### \_\_filename + + + + +* {string} + +The file name of the current module. This is the resolved absolute path of the +current module file. + +For a main program this is not necessarily the same as the file name used in the +command line. + +See [`__dirname`][] for the directory name of the current module. + +Examples: + +Running `node example.js` from `/Users/mjr` + +```js +console.log(__filename); +// Prints: /Users/mjr/example.js +console.log(__dirname); +// Prints: /Users/mjr +``` + +Given two modules: `a` and `b`, where `b` is a dependency of +`a` and there is a directory structure of: + +* `/Users/mjr/app/a.js` +* `/Users/mjr/app/node_modules/b/b.js` + +References to `__filename` within `b.js` will return +`/Users/mjr/app/node_modules/b/b.js` while references to `__filename` within +`a.js` will return `/Users/mjr/app/a.js`. + +### exports + + + + +A reference to the `module.exports` that is shorter to type. +See the section about the [exports shortcut][] for details on when to use +`exports` and when to use `module.exports`. + +### module + + + + +* {Object} + +A reference to the current module, see the section about the +[`module` object][]. In particular, `module.exports` is used for defining what +a module exports and makes available through `require()`. + +### require() + + + + +* {Function} + +To require modules. + +#### require.cache + + +* {Object} + +Modules are cached in this object when they are required. By deleting a key +value from this object, the next `require` will reload the module. Note that +this does not apply to [native addons][], for which reloading will result in an +Error. + +#### require.extensions + + +> Stability: 0 - Deprecated + +* {Object} + +Instruct `require` on how to handle certain file extensions. + +Process files with the extension `.sjs` as `.js`: + +```js +require.extensions['.sjs'] = require.extensions['.js']; +``` + +**Deprecated** In the past, this list has been used to load +non-JavaScript modules into Node.js by compiling them on-demand. +However, in practice, there are much better ways to do this, such as +loading modules via some other Node.js program, or compiling them to +JavaScript ahead of time. + +Since the module system is locked, this feature will probably never go +away. However, it may have subtle bugs and complexities that are best +left untouched. + +Note that the number of file system operations that the module system +has to perform in order to resolve a `require(...)` statement to a +filename scales linearly with the number of registered extensions. + +In other words, adding extensions slows down the module loader and +should be discouraged. + +#### require.resolve() + + +Use the internal `require()` machinery to look up the location of a module, +but rather than loading the module, just return the resolved filename. + ## The `module` Object +```C +napi_status napi_delete_element(napi_env env, + napi_value object, + uint32_t index, + bool* result); +``` + +- `[in] env`: The environment that the N-API call is invoked under. +- `[in] object`: The object to query. +- `[in] index`: The index of the property to delete. +- `[out] result`: Whether the element deletion succeeded or not. `result` can +optionally be ignored by passing `NULL`. + +Returns `napi_ok` if the API succeeded. + +This API attempts to delete the specified `index` from `object`. + #### *napi_define_properties* +```C +napi_status napi_delete_property(napi_env env, + napi_value object, + napi_value key, + bool* result); +``` + +- `[in] env`: The environment that the N-API call is invoked under. +- `[in] object`: The object to query. +- `[in] key`: The name of the property to delete. +- `[out] result`: Whether the property deletion succeeded or not. `result` can +optionally be ignored by passing `NULL`. + +Returns `napi_ok` if the API succeeded. + +This API attempts to delete the `key` own property from `object`. + + #### *napi_set_named_property* * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `fs.constants.F_OK` * `callback` {Function} Tests a user's permissions for the file or directory specified by `path`. @@ -563,7 +563,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `fs.constants.F_OK` Synchronous version of [`fs.access()`][]. This throws if any accessibility checks fail, and does nothing otherwise. @@ -587,9 +587,9 @@ changes: * `file` {string|Buffer|number} filename or file descriptor * `data` {string|Buffer} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'a'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'a'` * `callback` {Function} Asynchronously append data to a file, creating the file if it does not yet exist. @@ -630,9 +630,9 @@ changes: * `file` {string|Buffer|number} filename or file descriptor * `data` {string|Buffer} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'a'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'a'` The synchronous version of [`fs.appendFile()`][]. Returns `undefined`. @@ -1136,7 +1136,7 @@ added: v0.1.96 Synchronous fsync(2). Returns `undefined`. -## fs.ftruncate(fd, len, callback) +## fs.ftruncate(fd[, len], callback) * `fd` {integer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` * `callback` {Function} Asynchronous ftruncate(2). No arguments other than a possible exception are @@ -1194,13 +1194,13 @@ fs.ftruncate(fd, 10, (err) => { The last three bytes are null bytes ('\0'), to compensate the over-truncation. -## fs.ftruncateSync(fd, len) +## fs.ftruncateSync(fd[, len]) * `fd` {integer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` Synchronous ftruncate(2). Returns `undefined`. @@ -1392,7 +1392,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `0o777` * `callback` {Function} Asynchronous mkdir(2). No arguments other than a possible exception are given @@ -1409,7 +1409,7 @@ changes: --> * `path` {string|Buffer|URL} -* `mode` {integer} +* `mode` {integer} **Default:** `0o777` Synchronous mkdir(2). Returns `undefined`. @@ -1428,7 +1428,7 @@ changes: * `prefix` {string} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Creates a unique temporary directory. @@ -1490,7 +1490,7 @@ added: v5.10.0 * `prefix` {string} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` The synchronous version of [`fs.mkdtemp()`][]. Returns the created folder path. @@ -1510,7 +1510,7 @@ changes: * `path` {string|Buffer|URL} * `flags` {string|number} -* `mode` {integer} +* `mode` {integer} **Default:** `0o666` * `callback` {Function} Asynchronous file open. See open(2). `flags` can be: @@ -1552,7 +1552,7 @@ The file is created if it does not exist. * `'ax+'` - Like `'a+'` but fails if `path` exists. `mode` sets the file mode (permission and sticky bits), but only if the file was -created. It defaults to `0666`, readable and writable. +created. It defaults to `0o666`, readable and writable. The callback gets two arguments `(err, fd)`. @@ -1599,7 +1599,7 @@ changes: * `path` {string|Buffer|URL} * `flags` {string|number} -* `mode` {integer} +* `mode` {integer} **Default:** `0o666` Synchronous version of [`fs.open()`][]. Returns an integer representing the file descriptor. @@ -1658,7 +1658,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous readdir(3). Reads the contents of a directory. @@ -1682,7 +1682,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous readdir(3). Returns an array of filenames excluding `'.'` and `'..'`. @@ -1715,8 +1715,8 @@ changes: * `path` {string|Buffer|URL|integer} filename or file descriptor * `options` {Object|string} - * `encoding` {string|null} default = `null` - * `flag` {string} default = `'r'` + * `encoding` {string|null} **Default:** `null` + * `flag` {string} **Default:** `'r'` * `callback` {Function} Asynchronously reads the entire contents of a file. Example: @@ -1775,8 +1775,8 @@ changes: * `path` {string|Buffer|URL|integer} filename or file descriptor * `options` {Object|string} - * `encoding` {string|null} default = `null` - * `flag` {string} default = `'r'` + * `encoding` {string|null} **Default:** `null` + * `flag` {string} **Default:** `'r'` Synchronous version of [`fs.readFile()`][]. Returns the contents of the `path`. @@ -1811,7 +1811,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous readlink(2). The callback gets two arguments `(err, @@ -1834,7 +1834,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous readlink(2). Returns the symbolic link's string value. @@ -1886,7 +1886,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` * `callback` {Function} Asynchronous realpath(3). The `callback` gets two arguments `(err, @@ -1924,7 +1924,7 @@ changes: * `path` {string|Buffer|URL} * `options` {string|Object} - * `encoding` {string} default = `'utf8'` + * `encoding` {string} **Default:** `'utf8'` Synchronous realpath(3). Returns the resolved path. @@ -2067,7 +2067,7 @@ changes: * `target` {string|Buffer|URL} * `path` {string|Buffer|URL} -* `type` {string} +* `type` {string} **Default:** `'file'` * `callback` {Function} Asynchronous symlink(2). No arguments other than a possible exception are given @@ -2098,11 +2098,11 @@ changes: * `target` {string|Buffer|URL} * `path` {string|Buffer|URL} -* `type` {string} +* `type` {string} **Default:** `'file'` Synchronous symlink(2). Returns `undefined`. -## fs.truncate(path, len, callback) +## fs.truncate(path[, len], callback) * `path` {string|Buffer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` * `callback` {Function} Asynchronous truncate(2). No arguments other than a possible exception are given to the completion callback. A file descriptor can also be passed as the first argument. In this case, `fs.ftruncate()` is called. -## fs.truncateSync(path, len) +## fs.truncateSync(path[, len]) * `path` {string|Buffer} -* `len` {integer} default = `0` +* `len` {integer} **Default:** `0` Synchronous truncate(2). Returns `undefined`. A file descriptor can also be passed as the first argument. In this case, `fs.ftruncateSync()` is called. @@ -2171,7 +2171,7 @@ added: v0.1.31 --> * `filename` {string|Buffer} -* `listener` {Function} +* `listener` {Function|undefined} **Default:** `undefined` Stop watching for changes on `filename`. If `listener` is specified, only that particular listener is removed. Otherwise, *all* listeners are removed, @@ -2254,14 +2254,14 @@ changes: * `filename` {string|Buffer|URL} * `options` {string|Object} * `persistent` {boolean} Indicates whether the process should continue to run - as long as files are being watched. default = `true` + as long as files are being watched. **Default:** `true` * `recursive` {boolean} Indicates whether all subdirectories should be watched, or only the current directory. This applies when a directory is - specified, and only on supported platforms (See [Caveats][]). default = + specified, and only on supported platforms (See [Caveats][]). **Default:** `false` * `encoding` {string} Specifies the character encoding to be used for the - filename passed to the listener. default = `'utf8'` -* `listener` {Function} + filename passed to the listener. **Default:** `'utf8'` +* `listener` {Function|undefined} **Default:** `undefined` Watch for changes on `filename`, where `filename` is either a file or a directory. The returned object is a [`fs.FSWatcher`][]. @@ -2361,8 +2361,8 @@ changes: * `filename` {string|Buffer|URL} * `options` {Object} - * `persistent` {boolean} - * `interval` {integer} + * `persistent` {boolean} **Default:** `true` + * `interval` {integer} **Default:** `5007` * `listener` {Function} Watch for changes on `filename`. The callback `listener` will be called each @@ -2510,9 +2510,9 @@ changes: * `file` {string|Buffer|integer} filename or file descriptor * `data` {string|Buffer|Uint8Array} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'w'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'w'` * `callback` {Function} Asynchronously writes data to a file, replacing the file if it already exists. @@ -2560,9 +2560,9 @@ changes: * `file` {string|Buffer|integer} filename or file descriptor * `data` {string|Buffer|Uint8Array} * `options` {Object|string} - * `encoding` {string|null} default = `'utf8'` - * `mode` {integer} default = `0o666` - * `flag` {string} default = `'w'` + * `encoding` {string|null} **Default:** `'utf8'` + * `mode` {integer} **Default:** `0o666` + * `flag` {string} **Default:** `'w'` The synchronous version of [`fs.writeFile()`][]. Returns `undefined`. From 66a6a5ea57145c05401cb882433dd981ecd75369 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Sat, 1 Jul 2017 23:40:24 -0400 Subject: [PATCH 102/248] test: mark test-npm-install flaky on arm PR-URL: https://github.com/nodejs/node/pull/14035 Refs: https://github.com/nodejs/node/issues/14015 Reviewed-By: Gibson Fahnestock Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca --- test/parallel/parallel.status | 1 + 1 file changed, 1 insertion(+) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index fb5c0bb39f203e..5a0e7735b6277d 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -14,6 +14,7 @@ prefix parallel [$arch==arm || $arch==arm64] test-fs-readdir-ucs2 : PASS,FLAKY +test-npm-install: PASS,FLAKY [$system==solaris] # Also applies to SmartOS From 759d6a8600570fdbedaeacc48ccfd3107e1d7b31 Mon Sep 17 00:00:00 2001 From: Ruslan Iusupov Date: Fri, 16 Jun 2017 11:41:11 +0200 Subject: [PATCH 103/248] doc: fix example in child_process.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/13716 Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Tobias Nießen Reviewed-By: Vse Mozhet Byt --- doc/api/child_process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 6ea104e23956c5..a834f5151e25a1 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -469,7 +469,7 @@ grep.on('close', (code) => { ``` -Example of checking for failed exec: +Example of checking for failed `spawn`: ```js const { spawn } = require('child_process'); From 7de10a2ff806bea1529e37f680ae7160ad1cfe65 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:54:56 +0200 Subject: [PATCH 104/248] tools: change var to const in ./doc/addon-verify PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/addon-verify.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/doc/addon-verify.js b/tools/doc/addon-verify.js index 86a81935892745..e480a0d1bed050 100644 --- a/tools/doc/addon-verify.js +++ b/tools/doc/addon-verify.js @@ -94,7 +94,7 @@ ${files[name].replace('Release', "' + common.buildType + '")} fs.mkdir(dir, function() { // Ignore errors - var done = once(ondone); + const done = once(ondone); var waiting = files.length; files.forEach(function(file) { fs.writeFile(file.path, file.content, function(err) { From 6dc3f982c1e8b2cbb12754b4b1579823e48dbedd Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:27 +0200 Subject: [PATCH 105/248] tools: change var to const in ./doc/json PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/json.js | 56 +++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/tools/doc/json.js b/tools/doc/json.js index 0e205ed7cbae61..aad860f840ae09 100644 --- a/tools/doc/json.js +++ b/tools/doc/json.js @@ -30,7 +30,7 @@ const common = require('./common.js'); const marked = require('marked'); // customized heading without id attribute -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.heading = function(text, level) { return '' + text + '\n'; }; @@ -39,14 +39,14 @@ marked.setOptions({ }); function doJSON(input, filename, cb) { - var root = {source: filename}; - var stack = [root]; + const root = {source: filename}; + const stack = [root]; var depth = 0; var current = root; var state = null; - var lexed = marked.lexer(input); + const lexed = marked.lexer(input); lexed.forEach(function(tok) { - var type = tok.type; + const type = tok.type; var text = tok.text; // @@ -223,14 +223,14 @@ function doJSON(input, filename, cb) { // default: 'false' } ] } ] function processList(section) { - var list = section.list; - var values = []; + const list = section.list; + const values = []; var current; - var stack = []; + const stack = []; // for now, *just* build the heirarchical list list.forEach(function(tok) { - var type = tok.type; + const type = tok.type; if (type === 'space') return; if (type === 'list_item_start' || type === 'loose_item_start') { var n = {}; @@ -329,7 +329,7 @@ function parseSignature(text, sig) { params = params[1]; params = params.split(/,/); var optionalLevel = 0; - var optionalCharDict = {'[': 1, ' ': 0, ']': -1}; + const optionalCharDict = {'[': 1, ' ': 0, ']': -1}; params.forEach(function(p, i) { p = p.trim(); if (!p) return; @@ -351,7 +351,7 @@ function parseSignature(text, sig) { } p = p.substring(0, pos + 1); - var eq = p.indexOf('='); + const eq = p.indexOf('='); if (eq !== -1) { def = p.substr(eq + 1); p = p.substr(0, eq); @@ -381,8 +381,8 @@ function parseListItem(item) { // text = text.replace(/^(Argument|Param)s?\s*:?\s*/i, ''); text = text.replace(/^, /, '').trim(); - var retExpr = /^returns?\s*:?\s*/i; - var ret = text.match(retExpr); + const retExpr = /^returns?\s*:?\s*/i; + const ret = text.match(retExpr); if (ret) { item.name = 'return'; text = text.replace(retExpr, ''); @@ -396,24 +396,24 @@ function parseListItem(item) { } text = text.trim(); - var defaultExpr = /\(default\s*[:=]?\s*['"`]?([^, '"`]*)['"`]?\)/i; - var def = text.match(defaultExpr); + const defaultExpr = /\(default\s*[:=]?\s*['"`]?([^, '"`]*)['"`]?\)/i; + const def = text.match(defaultExpr); if (def) { item.default = def[1]; text = text.replace(defaultExpr, ''); } text = text.trim(); - var typeExpr = /^\{([^}]+)\}/; - var type = text.match(typeExpr); + const typeExpr = /^\{([^}]+)\}/; + const type = text.match(typeExpr); if (type) { item.type = type[1]; text = text.replace(typeExpr, ''); } text = text.trim(); - var optExpr = /^Optional\.|(?:, )?Optional$/; - var optional = text.match(optExpr); + const optExpr = /^Optional\.|(?:, )?Optional$/; + const optional = text.match(optExpr); if (optional) { item.optional = true; text = text.replace(optExpr, ''); @@ -556,19 +556,19 @@ function deepCopy_(src) { // these parse out the contents of an H# tag -var eventExpr = /^Event(?::|\s)+['"]?([^"']+).*$/i; -var classExpr = /^Class:\s*([^ ]+).*$/i; -var propExpr = /^[^.]+\.([^ .()]+)\s*$/; -var braceExpr = /^[^.[]+(\[[^\]]+\])\s*$/; -var classMethExpr = /^class\s*method\s*:?[^.]+\.([^ .()]+)\([^)]*\)\s*$/i; -var methExpr = /^(?:[^.]+\.)?([^ .()]+)\([^)]*\)\s*$/; -var newExpr = /^new ([A-Z][a-zA-Z]+)\([^)]*\)\s*$/; +const eventExpr = /^Event(?::|\s)+['"]?([^"']+).*$/i; +const classExpr = /^Class:\s*([^ ]+).*$/i; +const propExpr = /^[^.]+\.([^ .()]+)\s*$/; +const braceExpr = /^[^.[]+(\[[^\]]+\])\s*$/; +const classMethExpr = /^class\s*method\s*:?[^.]+\.([^ .()]+)\([^)]*\)\s*$/i; +const methExpr = /^(?:[^.]+\.)?([^ .()]+)\([^)]*\)\s*$/; +const newExpr = /^new ([A-Z][a-zA-Z]+)\([^)]*\)\s*$/; var paramExpr = /\((.*)\);?$/; function newSection(tok) { - var section = {}; + const section = {}; // infer the type from the text. - var text = section.textRaw = tok.text; + const text = section.textRaw = tok.text; if (text.match(eventExpr)) { section.type = 'event'; section.name = text.replace(eventExpr, '$1'); From 5ece9c7571423bdd2b8a0b8febb4d1a8d72243e5 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:45 +0200 Subject: [PATCH 106/248] tools: change var to const in ./doc/preprocess PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/preprocess.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/doc/preprocess.js b/tools/doc/preprocess.js index 55d90996f71c13..01340d40602ba7 100644 --- a/tools/doc/preprocess.js +++ b/tools/doc/preprocess.js @@ -2,11 +2,11 @@ module.exports = preprocess; -var path = require('path'); -var fs = require('fs'); +const path = require('path'); +const fs = require('fs'); -var includeExpr = /^@include\s+([A-Za-z0-9-_]+)(?:\.)?([a-zA-Z]*)$/gmi; -var includeData = {}; +const includeExpr = /^@include\s+([A-Za-z0-9-_]+)(?:\.)?([a-zA-Z]*)$/gmi; +const includeData = {}; function preprocess(inputFile, input, cb) { input = stripComments(input); @@ -22,7 +22,7 @@ function stripComments(input) { } function processIncludes(inputFile, input, cb) { - var includes = input.match(includeExpr); + const includes = input.match(includeExpr); if (includes === null) return cb(null, input); var errState = null; console.error(includes); @@ -40,7 +40,7 @@ function processIncludes(inputFile, input, cb) { } } - var fullFname = path.resolve(path.dirname(inputFile), fname); + const fullFname = path.resolve(path.dirname(inputFile), fname); fs.readFile(fullFname, 'utf8', function(er, inc) { if (errState) return; if (er) return cb(errState = er); From e959e2fb88c384b0bfdbf6e4679c7329be0f27a9 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:56:20 +0200 Subject: [PATCH 107/248] tools: change var to const in ./license2rtf PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/license2rtf.js | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/tools/license2rtf.js b/tools/license2rtf.js index 4b3d71fe5b99e9..22b5ffd522f543 100644 --- a/tools/license2rtf.js +++ b/tools/license2rtf.js @@ -16,7 +16,7 @@ function LineSplitter() { this.writable = true; this.write = function(data) { - var lines = (buffer + data).split(/\r\n|\n\r|\n|\r/); + const lines = (buffer + data).split(/\r\n|\n\r|\n|\r/); for (var i = 0; i < lines.length - 1; i++) { self.emit('data', lines[i]); } @@ -128,18 +128,18 @@ function ParagraphParser() { } // Find out indentation level and the start of a lied or numbered list; - var result = /^(\s*)(\d+\.|\*|-)?\s*/.exec(line); + const result = /^(\s*)(\d+\.|\*|-)?\s*/.exec(line); assert.ok(result); // The number of characters that will be stripped from the beginning of // the line. - var line_strip_length = result[0].length; + const line_strip_length = result[0].length; // The indentation size that will be used to detect indentation jumps. // Fudge by 1 space. - var line_indent = Math.floor(result[0].length / 2) * 2; + const line_indent = Math.floor(line_strip_length / 2) * 2; // The indentation level that will be exported - var level = Math.floor(result[1].length / 2); + const level = Math.floor(result[1].length / 2); // The list indicator that precedes the actual content, if any. - var line_li = result[2]; + const line_li = result[2]; // Flush the paragraph when there is a li or an indentation jump if (line_li || (line_indent !== paragraph_line_indent && @@ -175,14 +175,14 @@ inherits(ParagraphParser, Stream); * replaces multiple consecutive whitespace characters by a single one. */ function Unwrapper() { - var self = this; + const self = this; Stream.call(this); this.writable = true; this.write = function(paragraph) { - var lines = paragraph.lines; - var break_after = []; + const lines = paragraph.lines; + const break_after = []; var i; for (i = 0; i < lines.length - 1; i++) { @@ -236,15 +236,14 @@ function RtfGenerator() { Stream.call(this); this.writable = true; - this.write = function(paragraph) { + this.write = function({ li, level, lines, in_license_block: lic }) { if (!did_write_anything) { emitHeader(); did_write_anything = true; } - var li = paragraph.li; - var level = paragraph.level + (li ? 1 : 0); - var lic = paragraph.in_license_block; + if (li) + level++; var rtf = '\\pard'; rtf += '\\sa150\\sl300\\slmult1'; @@ -261,7 +260,7 @@ function RtfGenerator() { if (li) rtf += ' ' + li + '\\tab'; rtf += ' '; - rtf += paragraph.lines.map(rtfEscape).join('\\line '); + rtf += lines.map(rtfEscape).join('\\line '); if (!lic) rtf += '\\b0'; rtf += '\\par\n'; From ea63d7f4442c5e1b30369d781f9b6eb62fdb23e3 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:57:02 +0200 Subject: [PATCH 108/248] test: change var to const in ./common PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- test/common/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/common/index.js b/test/common/index.js index 6e910881523e99..5c820211d72033 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -428,8 +428,7 @@ exports.allowGlobals = allowGlobals; function leakedGlobals() { const leaked = []; - // eslint-disable-next-line no-var - for (var val in global) { + for (const val in global) { if (!knownGlobals.includes(global[val])) { leaked.push(val); } From 9559c89874909c445d7030108a35c6f5d9dc361e Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:55:10 +0200 Subject: [PATCH 109/248] tools: change var to const in ./doc/html PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/doc/html.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tools/doc/html.js b/tools/doc/html.js index 8a071b2e46fc42..a48b04b379da93 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -33,7 +33,7 @@ module.exports = toHTML; const STABILITY_TEXT_REG_EXP = /(.*:)\s*(\d)([\s\S]*)/; // customized heading without id attribute -var renderer = new marked.Renderer(); +const renderer = new marked.Renderer(); renderer.heading = function(text, level) { return '' + text + '\n'; }; @@ -42,7 +42,7 @@ marked.setOptions({ }); // TODO(chrisdickinson): never stop vomitting / fix this. -var gtocPath = path.resolve(path.join( +const gtocPath = path.resolve(path.join( __dirname, '..', '..', @@ -57,8 +57,8 @@ var gtocData = null; * opts: input, filename, template, nodeVersion. */ function toHTML(opts, cb) { - var template = opts.template; - var nodeVersion = opts.nodeVersion || process.version; + const template = opts.template; + const nodeVersion = opts.nodeVersion || process.version; if (gtocData) { return onGtocLoaded(); @@ -80,7 +80,7 @@ function toHTML(opts, cb) { } function onGtocLoaded() { - var lexed = marked.lexer(opts.input); + const lexed = marked.lexer(opts.input); fs.readFile(template, 'utf8', function(er, template) { if (er) return cb(er); render({ @@ -123,10 +123,10 @@ function render(opts, cb) { var lexed = opts.lexed; var filename = opts.filename; var template = opts.template; - var nodeVersion = opts.nodeVersion || process.version; + const nodeVersion = opts.nodeVersion || process.version; // get the section - var section = getSection(lexed); + const section = getSection(lexed); filename = path.basename(filename, '.md'); @@ -138,7 +138,7 @@ function render(opts, cb) { buildToc(lexed, filename, function(er, toc) { if (er) return cb(er); - var id = toID(path.basename(filename)); + const id = toID(path.basename(filename)); template = template.replace(/__ID__/g, id); template = template.replace(/__FILENAME__/g, filename); @@ -220,9 +220,9 @@ function parseText(lexed) { // lists that come right after a heading are what we're after. function parseLists(input) { var state = null; - var savedState = []; + const savedState = []; var depth = 0; - var output = []; + const output = []; let headingIndex = -1; let heading = null; @@ -353,7 +353,7 @@ function parseYAML(text) { } // Syscalls which appear in the docs, but which only exist in BSD / OSX -var BSD_ONLY_SYSCALLS = new Set(['lchmod']); +const BSD_ONLY_SYSCALLS = new Set(['lchmod']); // Handle references to man pages, eg "open(2)" or "lchmod(2)" // Returns modified text, with such refs replace with HTML links, for example @@ -363,7 +363,7 @@ function linkManPages(text) { / ([a-z.]+)\((\d)([a-z]?)\)/gm, (match, name, number, optionalCharacter) => { // name consists of lowercase letters, number is a single digit - var displayAs = `${name}(${number}${optionalCharacter})`; + const displayAs = `${name}(${number}${optionalCharacter})`; if (BSD_ONLY_SYSCALLS.has(name)) { return ` ${displayAs}`; @@ -375,7 +375,7 @@ function linkManPages(text) { } function linkJsTypeDocs(text) { - var parts = text.split('`'); + const parts = text.split('`'); var i; var typeMatches; @@ -453,7 +453,7 @@ function buildToc(lexed, filename, cb) { cb(null, toc); } -var idCounters = {}; +const idCounters = {}; function getId(text) { text = text.toLowerCase(); text = text.replace(/[^a-z0-9]+/g, '_'); From 1aa6bcdf2eac84501be917bc481b4d7d8b885b36 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 19 Jun 2017 17:56:04 +0200 Subject: [PATCH 110/248] tools: change var to const in ./eslint-rules PR-URL: https://github.com/nodejs/node/pull/13732 Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann --- tools/eslint-rules/required-modules.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/eslint-rules/required-modules.js b/tools/eslint-rules/required-modules.js index 4a444809b7115c..47ade5cd9f9b42 100644 --- a/tools/eslint-rules/required-modules.js +++ b/tools/eslint-rules/required-modules.js @@ -4,7 +4,7 @@ */ 'use strict'; -var path = require('path'); +const path = require('path'); //------------------------------------------------------------------------------ // Rule Definition @@ -14,7 +14,7 @@ module.exports = function(context) { // trim required module names var requiredModules = context.options; - var foundModules = []; + const foundModules = []; // if no modules are required we don't need to check the CallExpressions if (requiredModules.length === 0) { From 602dd03231f42d057587dab4d35eccab73860358 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 29 Jun 2017 21:26:38 -0700 Subject: [PATCH 111/248] test: refactor test-http-invalidheaderfield * use common.mustNotCall() to confirm callback is not invoked * whitespace change per test-writing guide PR-URL: https://github.com/nodejs/node/pull/13996 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/parallel/test-http-invalidheaderfield.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/parallel/test-http-invalidheaderfield.js b/test/parallel/test-http-invalidheaderfield.js index ac080db93155ec..21be4c4d6d95e0 100644 --- a/test/parallel/test-http-invalidheaderfield.js +++ b/test/parallel/test-http-invalidheaderfield.js @@ -1,6 +1,6 @@ 'use strict'; - const common = require('../common'); + const assert = require('assert'); const EventEmitter = require('events'); const http = require('http'); @@ -29,7 +29,7 @@ server.listen(0, function() { port: server.address().port, headers: {'testing 123': 123} }; - http.get(options, common.noop); + http.get(options, common.mustNotCall()); }, function(err) { ee.emit('done'); From d174264bdfc93b5a3799244189b3ab318f28804f Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 29 May 2017 08:53:30 -0700 Subject: [PATCH 112/248] doc: add CTC members to Collaborators list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For simplicity and clarity (if not brevity), add CTC and CTC Emeriti to Collaborators list in README. This will avoid confusion about who is and isn't a Collaborator. PR-URL: https://github.com/nodejs/node/pull/13284 Reviewed-By: Anna Henningsen Reviewed-By: Daniel Bevenius Reviewed-By: Gibson Fahnestock Reviewed-By: Matteo Collina Reviewed-By: Michael Dawson Reviewed-By: Tobias Nießen --- README.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7ed0e64f62894c..26adc1817aa98b 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,8 @@ more information about the governance of the Node.js project, see * [abouthiroppy](https://github.com/abouthiroppy) - **Yuta Hiroto** <hello@about-hiroppy.com> (he/him) +* [addaleax](https://github.com/addaleax) - +**Anna Henningsen** <anna@addaleax.net> (she/her) * [ak239](https://github.com/ak239) - **Aleksei Koziatinskii** <ak239spb@gmail.com> * [andrasq](https://github.com/andrasq) - @@ -257,12 +259,20 @@ more information about the governance of the Node.js project, see **Benjamin Gruenbaum** <benjamingr@gmail.com> * [bmeck](https://github.com/bmeck) - **Bradley Farias** <bradley.meck@gmail.com> +* [bnoordhuis](https://github.com/bnoordhuis) - +**Ben Noordhuis** <info@bnoordhuis.nl> * [brendanashworth](https://github.com/brendanashworth) - **Brendan Ashworth** <brendan.ashworth@me.com> * [bzoz](https://github.com/bzoz) - **Bartosz Sosnowski** <bartosz@janeasystems.com> * [calvinmetcalf](https://github.com/calvinmetcalf) - **Calvin Metcalf** <calvin.metcalf@gmail.com> +* [ChALkeR](https://github.com/ChALkeR) - +**Сковорода Никита Андреевич** <chalkerx@gmail.com> (he/him) +* [chrisdickinson](https://github.com/chrisdickinson) - +**Chris Dickinson** <christopher.s.dickinson@gmail.com> +* [cjihrig](https://github.com/cjihrig) - +**Colin Ihrig** <cjihrig@gmail.com> * [claudiorodriguez](https://github.com/claudiorodriguez) - **Claudio Rodriguez** <cjrodr@yahoo.com> * [danbev](https://github.com/danbev) - @@ -277,8 +287,14 @@ more information about the governance of the Node.js project, see **Alexander Makarenko** <estliberitas@gmail.com> * [eugeneo](https://github.com/eugeneo) - **Eugene Ostroukhov** <eostroukhov@google.com> +* [evanlucas](https://github.com/evanlucas) - +**Evan Lucas** <evanlucas@me.com> (he/him) +* [fhinkel](https://github.com/fhinkel) - +**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> * [firedfox](https://github.com/firedfox) - **Daniel Wang** <wangyang0123@gmail.com> +* [Fishrock123](https://github.com/Fishrock123) - +**Jeremiah Senkpiel** <fishrock123@rocketmail.com> * [geek](https://github.com/geek) - **Wyatt Preul** <wpreul@gmail.com> * [gibfahn](https://github.com/gibfahn) - @@ -291,10 +307,16 @@ more information about the governance of the Node.js project, see **Imran Iqbal** <imran@imraniqbal.org> * [imyller](https://github.com/imyller) - **Ilkka Myller** <ilkka.myller@nodefield.com> +* [indutny](https://github.com/indutny) - +**Fedor Indutny** <fedor.indutny@gmail.com> +* [isaacs](https://github.com/isaacs) - +**Isaac Z. Schlueter** <i@izs.me> * [italoacasas](https://github.com/italoacasas) - **Italo A. Casas** <me@italoacasas.com> (he/him) * [JacksonTian](https://github.com/JacksonTian) - **Jackson Tian** <shyvo1987@gmail.com> +* [jasnell](https://github.com/jasnell) - +**James M Snell** <jasnell@gmail.com> (he/him) * [jasongin](https://github.com/jasongin) - **Jason Ginchereau** <jasongin@microsoft.com> * [jbergstroem](https://github.com/jbergstroem) - @@ -307,6 +329,8 @@ more information about the governance of the Node.js project, see **João Reis** <reis@janeasystems.com> * [joshgav](https://github.com/joshgav) - **Josh Gavant** <josh.gavant@outlook.com> +* [joyeecheung](https://github.com/joyeecheung) - +**Joyee Cheung** <joyeec9h3@gmail.com> (she/her) * [julianduque](https://github.com/julianduque) - **Julian Duque** <julianduquej@gmail.com> (he/him) * [JungMinu](https://github.com/JungMinu) - @@ -323,22 +347,38 @@ more information about the governance of the Node.js project, see **Aleksey Smolenchuk** <lxe@lxe.co> * [matthewloring](https://github.com/matthewloring) - **Matthew Loring** <mattloring@google.com> +* [mcollina](https://github.com/mcollina) - +**Matteo Collina** <matteo.collina@gmail.com> (he/him) +* [mhdawson](https://github.com/mhdawson) - +**Michael Dawson** <michael_dawson@ca.ibm.com> (he/him) * [micnic](https://github.com/micnic) - **Nicu Micleușanu** <micnic90@gmail.com> (he/him) * [mikeal](https://github.com/mikeal) - **Mikeal Rogers** <mikeal.rogers@gmail.com> +* [misterdjules](https://github.com/misterdjules) - +**Julien Gilli** <jgilli@nodejs.org> * [monsanto](https://github.com/monsanto) - **Christopher Monsanto** <chris@monsan.to> +* [mscdex](https://github.com/mscdex) - +**Brian White** <mscdex@mscdex.net> +* [MylesBorins](https://github.com/MylesBorins) - +**Myles Borins** <myles.borins@gmail.com> (he/him) * [not-an-aardvark](https://github.com/not-an-aardvark) - **Teddy Katz** <teddy.katz@gmail.com> +* [ofrobots](https://github.com/ofrobots) - +**Ali Ijaz Sheikh** <ofrobots@google.com> * [Olegas](https://github.com/Olegas) - **Oleg Elifantiev** <oleg@elifantiev.ru> +* [orangemocha](https://github.com/orangemocha) - +**Alexis Campailla** <orangemocha@nodejs.org> * [othiym23](https://github.com/othiym23) - **Forrest L Norvell** <ogd@aoaioxxysz.net> (he/him) * [petkaantonov](https://github.com/petkaantonov) - **Petka Antonov** <petka_antonov@hotmail.com> * [phillipj](https://github.com/phillipj) - **Phillip Johnsen** <johphi@gmail.com> +* [piscisaureus](https://github.com/piscisaureus) - +**Bert Belder** <bertbelder@gmail.com> * [pmq20](https://github.com/pmq20) - **Minqi Pan** <pmq2001@gmail.com> * [princejwesley](https://github.com/princejwesley) - @@ -361,6 +401,8 @@ more information about the governance of the Node.js project, see **Ron Korving** <ron@ronkorving.nl> * [RReverser](https://github.com/RReverser) - **Ingvar Stepanyan** <me@rreverser.com> +* [rvagg](https://github.com/rvagg) - +**Rod Vagg** <rod@vagg.org> * [saghul](https://github.com/saghul) - **Saúl Ibarra Corretgé** <saghul@gmail.com> * [sam-github](https://github.com/sam-github) - @@ -369,14 +411,20 @@ more information about the governance of the Node.js project, see **Santiago Gimeno** <santiago.gimeno@gmail.com> * [seishun](https://github.com/seishun) - **Nikolai Vavilov** <vvnicholas@gmail.com> +* [shigeki](https://github.com/shigeki) - +**Shigeki Ohtsu** <ohtsu@ohtsu.org> (he/him) * [silverwind](https://github.com/silverwind) - **Roman Reiss** <me@silverwind.io> * [srl295](https://github.com/srl295) - **Steven R Loomis** <srloomis@us.ibm.com> * [stefanmb](https://github.com/stefanmb) - **Stefan Budeanu** <stefan@budeanu.com> +* [targos](https://github.com/targos) - +**Michaël Zasso** <targos@protonmail.com> (he/him) * [tellnes](https://github.com/tellnes) - **Christian Tellnes** <christian@tellnes.no> +* [thefourtheye](https://github.com/thefourtheye) - +**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him) * [thekemkid](https://github.com/thekemkid) - **Glen Keane** <glenkeane.94@gmail.com> (he/him) * [thlorenz](https://github.com/thlorenz) - @@ -385,6 +433,10 @@ more information about the governance of the Node.js project, see **Timothy Gu** <timothygu99@gmail.com> (he/him) * [tniessen](https://github.com/tniessen) - **Tobias Nießen** <tniessen@tnie.de> +* [trevnorris](https://github.com/trevnorris) - +**Trevor Norris** <trev.norris@gmail.com> +* [Trott](https://github.com/Trott) - +**Rich Trott** <rtrott@gmail.com> (he/him) * [tunniclm](https://github.com/tunniclm) - **Mike Tunnicliffe** <m.j.tunnicliffe@gmail.com> * [vkurchatkin](https://github.com/vkurchatkin) - @@ -400,9 +452,8 @@ more information about the governance of the Node.js project, see * [yosuke-furukawa](https://github.com/yosuke-furukawa) - **Yosuke Furukawa** <yosuke.furukawa@gmail.com> -Collaborators (which includes CTC members) follow the -[COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in maintaining the Node.js -project. +Collaborators follow the [COLLABORATOR_GUIDE.md](./COLLABORATOR_GUIDE.md) in +maintaining the Node.js project. ### Release Team From 959bdfda449032df4637429c9f904d800f0992aa Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Sun, 2 Jul 2017 23:52:41 -0400 Subject: [PATCH 113/248] http: guard against failed sockets creation PR-URL: https://github.com/nodejs/node/pull/13839 Fixes: https://github.com/nodejs/node/issues/13045 Fixes: https://github.com/nodejs/node/issues/13831 Refs: https://github.com/nodejs/node/issues/13352 Refs: https://github.com/nodejs/node/issues/13548#issuecomment-307177400 Reviewed-By: Trevor Norris --- lib/_http_agent.js | 37 +++++++------- test/parallel/test-http-agent.js | 82 +++++++++++++++++++++----------- 2 files changed, 72 insertions(+), 47 deletions(-) diff --git a/lib/_http_agent.js b/lib/_http_agent.js index 9f0efe82d14313..426cf5b502702a 100644 --- a/lib/_http_agent.js +++ b/lib/_http_agent.js @@ -181,15 +181,7 @@ Agent.prototype.addRequest = function addRequest(req, options, port/*legacy*/, } else if (sockLen < this.maxSockets) { debug('call onSocket', sockLen, freeLen); // If we are under maxSockets create a new one. - this.createSocket(req, options, function(err, newSocket) { - if (err) { - nextTick(newSocket._handle.getAsyncId(), function() { - req.emit('error', err); - }); - return; - } - req.onSocket(newSocket); - }); + this.createSocket(req, options, handleSocketCreation(req, true)); } else { debug('wait for socket'); // We are over limit so we'll add it to the queue. @@ -222,6 +214,7 @@ Agent.prototype.createSocket = function createSocket(req, options, cb) { const newSocket = self.createConnection(options, oncreate); if (newSocket) oncreate(null, newSocket); + function oncreate(err, s) { if (called) return; @@ -294,15 +287,7 @@ Agent.prototype.removeSocket = function removeSocket(s, options) { debug('removeSocket, have a request, make a socket'); var req = this.requests[name][0]; // If we have pending requests and a socket gets closed make a new one - this.createSocket(req, options, function(err, newSocket) { - if (err) { - nextTick(newSocket._handle.getAsyncId(), function() { - req.emit('error', err); - }); - return; - } - newSocket.emit('free'); - }); + this.createSocket(req, options, handleSocketCreation(req, false)); } }; @@ -332,6 +317,22 @@ Agent.prototype.destroy = function destroy() { } }; +function handleSocketCreation(request, informRequest) { + return function handleSocketCreation_Inner(err, socket) { + if (err) { + const asyncId = (socket && socket._handle && socket._handle.getAsyncId) ? + socket._handle.getAsyncId() : + null; + nextTick(asyncId, () => request.emit('error', err)); + return; + } + if (informRequest) + request.onSocket(socket); + else + socket.emit('free'); + }; +} + module.exports = { Agent, globalAgent: new Agent() diff --git a/test/parallel/test-http-agent.js b/test/parallel/test-http-agent.js index 23878673aaf8dc..d7cb56fb45973a 100644 --- a/test/parallel/test-http-agent.js +++ b/test/parallel/test-http-agent.js @@ -20,41 +20,65 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const http = require('http'); -const server = http.Server(function(req, res) { - res.writeHead(200); - res.end('hello world\n'); -}); - -let responses = 0; const N = 4; const M = 4; +const server = http.Server(common.mustCall(function(req, res) { + res.writeHead(200); + res.end('hello world\n'); +}, (N * M))); // N * M = good requests (the errors will not be counted) -server.listen(0, function() { - const port = this.address().port; - for (let i = 0; i < N; i++) { - setTimeout(function() { - for (let j = 0; j < M; j++) { - http.get({ port: port, path: '/' }, function(res) { - console.log('%d %d', responses, res.statusCode); - if (++responses === N * M) { - console.error('Received all responses, closing server'); - server.close(); - } - res.resume(); - }).on('error', function(e) { - console.log('Error!', e); - process.exit(1); - }); +function makeRequests(outCount, inCount, shouldFail) { + let responseCount = outCount * inCount; + let onRequest = common.mustNotCall(); // Temporary + const p = new Promise((resolve) => { + onRequest = common.mustCall((res) => { + if (--responseCount === 0) { + server.close(); + resolve(); } - }, i); - } -}); + if (!shouldFail) + res.resume(); + }, outCount * inCount); + }); + + server.listen(0, () => { + const port = server.address().port; + for (let i = 0; i < outCount; i++) { + setTimeout(() => { + for (let j = 0; j < inCount; j++) { + const req = http.get({ port: port, path: '/' }, onRequest); + if (shouldFail) + req.on('error', common.mustCall(onRequest)); + else + req.on('error', (e) => assert.fail(e)); + } + }, i); + } + }); + return p; +} +const test1 = makeRequests(N, M); -process.on('exit', function() { - assert.strictEqual(N * M, responses); -}); +const test2 = () => { + // Should not explode if can not create sockets. + // Ref: https://github.com/nodejs/node/issues/13045 + // Ref: https://github.com/nodejs/node/issues/13831 + http.Agent.prototype.createConnection = function createConnection(_, cb) { + process.nextTick(cb, new Error('nothing')); + }; + return makeRequests(N, M, true); +}; + +test1 + .then(test2) + .catch((e) => { + // This is currently the way to fail a test with a Promise. + console.error(e); + process.exit(1); + } +); From 16a2f6865edf0b32fc8de9fed37c6e1746e92c76 Mon Sep 17 00:00:00 2001 From: Alexey Orlenko Date: Mon, 26 Jun 2017 21:41:28 +0300 Subject: [PATCH 114/248] test: refactor test-http(s)-set-timeout-server * Make changes to `test-https-set-timeout-server` to resolve inconsistencies with its http counterpart: - Apply the changes analogous to those in GH-13802 to the https test. - Add a missing `common.mustCall()` wrapper. - Make small stylistic changes (e.g., remove unnecessary line breaks in comments) to make it visually consistent with the http test. * Use arrow functions. PR-URL: https://github.com/nodejs/node/pull/13935 Fixes: https://github.com/nodejs/node/issues/13588 Refs: https://github.com/nodejs/node/pull/13802 Refs: https://github.com/nodejs/node/pull/13625 Refs: https://github.com/nodejs/node/pull/13822 Reviewed-By: Luigi Pinca Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann Reviewed-By: Yuta Hiroto Reviewed-By: James M Snell --- test/parallel/test-http-set-timeout-server.js | 44 ++++++------ .../test-https-set-timeout-server.js | 69 +++++++++---------- 2 files changed, 53 insertions(+), 60 deletions(-) diff --git a/test/parallel/test-http-set-timeout-server.js b/test/parallel/test-http-set-timeout-server.js index cd3cfa3bf11c3a..83fc7dc0462903 100644 --- a/test/parallel/test-http-set-timeout-server.js +++ b/test/parallel/test-http-set-timeout-server.js @@ -42,11 +42,11 @@ function run() { } test(function serverTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. })); - server.listen(common.mustCall(function() { - const s = server.setTimeout(50, common.mustCall(function(socket) { + server.listen(common.mustCall(() => { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); @@ -59,16 +59,16 @@ test(function serverTimeout(cb) { }); test(function serverRequestTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = req.setTimeout(50, common.mustCall(function(socket) { + const s = req.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.IncomingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const req = http.request({ port: server.address().port, method: 'POST' @@ -80,16 +80,16 @@ test(function serverRequestTimeout(cb) { }); test(function serverResponseTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = res.setTimeout(50, common.mustCall(function(socket) { + const s = res.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.OutgoingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { http.get({ port: server.address().port }).on('error', common.mustCall()); @@ -97,18 +97,18 @@ test(function serverResponseTimeout(cb) { }); test(function serverRequestNotTimeoutAfterEnd(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { // just do nothing, we should get a timeout event. const s = req.setTimeout(50, common.mustNotCall()); assert.ok(s instanceof http.IncomingMessage); res.on('timeout', common.mustCall()); })); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { http.get({ port: server.address().port }).on('error', common.mustCall()); @@ -118,31 +118,31 @@ test(function serverRequestNotTimeoutAfterEnd(cb) { test(function serverResponseTimeoutWithPipeline(cb) { let caughtTimeout = ''; let secReceived = false; - process.on('exit', function() { + process.on('exit', () => { assert.strictEqual(caughtTimeout, '/2'); }); - const server = http.createServer(function(req, res) { + const server = http.createServer((req, res) => { if (req.url === '/2') secReceived = true; - const s = res.setTimeout(50, function() { + const s = res.setTimeout(50, () => { caughtTimeout += req.url; }); assert.ok(s instanceof http.OutgoingMessage); if (req.url === '/1') res.end(); }); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { if (secReceived) { socket.destroy(); server.close(); cb(); } })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, }; - const c = net.connect(options, function() { + const c = net.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /2 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /3 HTTP/1.1\r\nHost: localhost\r\n\r\n'); @@ -151,23 +151,23 @@ test(function serverResponseTimeoutWithPipeline(cb) { }); test(function idleTimeout(cb) { - const server = http.createServer(common.mustCall(function(req, res) { + const server = http.createServer(common.mustCall((req, res) => { req.on('timeout', common.mustNotCall()); res.on('timeout', common.mustNotCall()); res.end(); })); - const s = server.setTimeout(50, common.mustCall(function(socket) { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.Server); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, }; - const c = net.connect(options, function() { + const c = net.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); // Keep-Alive }); diff --git a/test/sequential/test-https-set-timeout-server.js b/test/sequential/test-https-set-timeout-server.js index beec5109da054f..aa4eb5714ffa58 100644 --- a/test/sequential/test-https-set-timeout-server.js +++ b/test/sequential/test-https-set-timeout-server.js @@ -43,28 +43,24 @@ const serverOptions = { function test(fn) { if (!tests.length) process.nextTick(run); - tests.push(fn); + tests.push(common.mustCall(fn)); } function run() { const fn = tests.shift(); if (fn) { - console.log('# %s', fn.name); fn(run); - } else { - console.log('ok'); } } test(function serverTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { - // just do nothing, we should get a - // timeout event. + common.mustCall((req, res) => { + // just do nothing, we should get a timeout event. })); - server.listen(common.mustCall(function() { - const s = server.setTimeout(50, common.mustCall(function(socket) { + server.listen(common.mustCall(() => { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); @@ -80,19 +76,16 @@ test(function serverTimeout(cb) { test(function serverRequestTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { - // just do nothing, we should get a - // timeout event. - const s = req.setTimeout( - 50, - common.mustCall(function(socket) { - socket.destroy(); - server.close(); - cb(); - })); + common.mustCall((req, res) => { + // just do nothing, we should get a timeout event. + const s = req.setTimeout(50, common.mustCall((socket) => { + socket.destroy(); + server.close(); + cb(); + })); assert.ok(s instanceof http.IncomingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const req = https.request({ port: server.address().port, method: 'POST', @@ -107,16 +100,16 @@ test(function serverRequestTimeout(cb) { test(function serverResponseTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { // just do nothing, we should get a timeout event. - const s = res.setTimeout(50, common.mustCall(function(socket) { + const s = res.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof http.OutgoingMessage); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { https.get({ port: server.address().port, rejectUnauthorized: false @@ -127,18 +120,18 @@ test(function serverResponseTimeout(cb) { test(function serverRequestNotTimeoutAfterEnd(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { // just do nothing, we should get a timeout event. const s = req.setTimeout(50, common.mustNotCall()); assert.ok(s instanceof http.IncomingMessage); res.on('timeout', common.mustCall()); })); - server.on('timeout', common.mustCall(function(socket) { + server.on('timeout', common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { https.get({ port: server.address().port, rejectUnauthorized: false @@ -149,32 +142,32 @@ test(function serverRequestNotTimeoutAfterEnd(cb) { test(function serverResponseTimeoutWithPipeline(cb) { let caughtTimeout = ''; let secReceived = false; - process.on('exit', function() { + process.on('exit', () => { assert.strictEqual(caughtTimeout, '/2'); }); - const server = https.createServer(serverOptions, function(req, res) { + const server = https.createServer(serverOptions, (req, res) => { if (req.url === '/2') secReceived = true; - const s = res.setTimeout(50, function() { + const s = res.setTimeout(50, () => { caughtTimeout += req.url; }); assert.ok(s instanceof http.OutgoingMessage); if (req.url === '/1') res.end(); }); - server.on('timeout', function(socket) { + server.on('timeout', common.mustCall((socket) => { if (secReceived) { socket.destroy(); server.close(); cb(); } - }); - server.listen(common.mustCall(function() { + })); + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, rejectUnauthorized: false }; - const c = tls.connect(options, function() { + const c = tls.connect(options, () => { c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /2 HTTP/1.1\r\nHost: localhost\r\n\r\n'); c.write('GET /3 HTTP/1.1\r\nHost: localhost\r\n\r\n'); @@ -185,25 +178,25 @@ test(function serverResponseTimeoutWithPipeline(cb) { test(function idleTimeout(cb) { const server = https.createServer( serverOptions, - common.mustCall(function(req, res) { + common.mustCall((req, res) => { req.on('timeout', common.mustNotCall()); res.on('timeout', common.mustNotCall()); res.end(); })); - const s = server.setTimeout(50, common.mustCall(function(socket) { + const s = server.setTimeout(50, common.mustCall((socket) => { socket.destroy(); server.close(); cb(); })); assert.ok(s instanceof https.Server); - server.listen(common.mustCall(function() { + server.listen(common.mustCall(() => { const options = { port: server.address().port, allowHalfOpen: true, rejectUnauthorized: false }; - tls.connect(options, function() { - this.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); + const c = tls.connect(options, () => { + c.write('GET /1 HTTP/1.1\r\nHost: localhost\r\n\r\n'); // Keep-Alive }); })); From 105855675294a8d0f99e224ddbf86a424063c52c Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Thu, 29 Jun 2017 16:21:23 -0700 Subject: [PATCH 115/248] test: refactor test-http-hostname-typechecking * Use common.mustCall() to confirm callback is invoked. * Change spacing of require statements to conform to test-writing guide. PR-URL: https://github.com/nodejs/node/pull/13993 Reviewed-By: Colin Ihrig Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/parallel/test-http-hostname-typechecking.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-http-hostname-typechecking.js b/test/parallel/test-http-hostname-typechecking.js index c3b702896d4e39..d1a407cf28dcae 100644 --- a/test/parallel/test-http-hostname-typechecking.js +++ b/test/parallel/test-http-hostname-typechecking.js @@ -1,6 +1,6 @@ 'use strict'; - const common = require('../common'); + const assert = require('assert'); const http = require('http'); @@ -21,7 +21,7 @@ vals.forEach((v) => { // These values are OK and should not throw synchronously ['', undefined, null].forEach((v) => { assert.doesNotThrow(() => { - http.request({hostname: v}).on('error', common.noop).end(); - http.request({host: v}).on('error', common.noop).end(); + http.request({hostname: v}).on('error', common.mustCall()).end(); + http.request({host: v}).on('error', common.mustCall()).end(); }); }); From 95ed9257c99d72919bd665d4ac947d51313feaa0 Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Fri, 30 Jun 2017 19:35:52 +0100 Subject: [PATCH 116/248] test,fs: delay unlink in test-regress-GH-4027.js The sequential/test-regress-GH-4027 test is flaky with an increased system load, failing when the watched file is unlinked before the first state of the watched file is retrieved. After increasing the delay before unlinking and calling setTimeout after watchFile, the flakiness stopped reproducing. PR-URL: https://github.com/nodejs/node/pull/14010 Fixes: https://github.com/nodejs/node/issues/13800 Reviewed-By: Rich Trott Reviewed-By: Refael Ackermann --- test/sequential/test-regress-GH-4027.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/sequential/test-regress-GH-4027.js b/test/sequential/test-regress-GH-4027.js index e3e9e5a4de4ef6..6ab6afcfd6bc2e 100644 --- a/test/sequential/test-regress-GH-4027.js +++ b/test/sequential/test-regress-GH-4027.js @@ -29,10 +29,11 @@ common.refreshTmpDir(); const filename = path.join(common.tmpDir, 'watched'); fs.writeFileSync(filename, 'quis custodiet ipsos custodes'); -setTimeout(fs.unlinkSync, 100, filename); fs.watchFile(filename, { interval: 50 }, common.mustCall(function(curr, prev) { assert.strictEqual(prev.nlink, 1); assert.strictEqual(curr.nlink, 0); fs.unwatchFile(filename); })); + +setTimeout(fs.unlinkSync, common.platformTimeout(300), filename); From 898fe6135b49585013f35e2a3e1aa68834d8e8b6 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Fri, 30 Jun 2017 20:52:53 +0300 Subject: [PATCH 117/248] test: fix require nits in some test-tls-* tests * Do not require if test is skipped. * Do not re-require without need. * Sort requiring by module names. PR-URL: https://github.com/nodejs/node/pull/14008 Reviewed-By: Refael Ackermann Reviewed-By: Colin Ihrig --- test/internet/test-tls-add-ca-cert.js | 3 +- test/parallel/test-tls-alert-handling.js | 7 +++-- test/parallel/test-tls-alert.js | 9 +++--- test/parallel/test-tls-alpn-server-client.js | 3 +- test/parallel/test-tls-client-verify.js | 7 +++-- test/parallel/test-tls-cnnic-whitelist.js | 2 +- test/parallel/test-tls-npn-server-client.js | 10 +++---- test/parallel/test-tls-server-verify.js | 28 +++++++++---------- test/parallel/test-tls-sni-option.js | 9 +++--- test/parallel/test-tls-sni-server-client.js | 9 +++--- .../test-tls-startcom-wosign-whitelist.js | 5 ++-- 11 files changed, 50 insertions(+), 42 deletions(-) diff --git a/test/internet/test-tls-add-ca-cert.js b/test/internet/test-tls-add-ca-cert.js index 457dfdac7f1f32..1283230e911b4d 100644 --- a/test/internet/test-tls-add-ca-cert.js +++ b/test/internet/test-tls-add-ca-cert.js @@ -10,10 +10,11 @@ if (!common.hasCrypto) { const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alert-handling.js b/test/parallel/test-tls-alert-handling.js index 5268f520f13958..d089ad223b1fd8 100644 --- a/test/parallel/test-tls-alert-handling.js +++ b/test/parallel/test-tls-alert-handling.js @@ -11,12 +11,13 @@ if (!common.hasCrypto) { return; } -const tls = require('tls'); -const net = require('net'); const fs = require('fs'); +const net = require('net'); +const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alert.js b/test/parallel/test-tls-alert.js index d12d45f529cfd4..ef79856108ea3f 100644 --- a/test/parallel/test-tls-alert.js +++ b/test/parallel/test-tls-alert.js @@ -21,7 +21,6 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.opensslCli) { common.skip('node compiled without OpenSSL CLI.'); @@ -32,15 +31,17 @@ if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); +const { spawn } = require('child_process'); const fs = require('fs'); -const spawn = require('child_process').spawn; +const path = require('path'); +const tls = require('tls'); let success = false; function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-alpn-server-client.js b/test/parallel/test-tls-alpn-server-client.js index a397550d96863a..3d3453d32fdb82 100644 --- a/test/parallel/test-tls-alpn-server-client.js +++ b/test/parallel/test-tls-alpn-server-client.js @@ -14,10 +14,11 @@ if (!process.features.tls_alpn || !process.features.tls_npn) { const assert = require('assert'); const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index 93fa99f773566f..d713be3b0cf17d 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -21,15 +21,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); const hosterr = /Hostname\/IP doesn't match certificate's altnames/; const testCases = @@ -65,7 +66,7 @@ const testCases = ]; function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } diff --git a/test/parallel/test-tls-cnnic-whitelist.js b/test/parallel/test-tls-cnnic-whitelist.js index a33e631ddf7437..084531748656e2 100644 --- a/test/parallel/test-tls-cnnic-whitelist.js +++ b/test/parallel/test-tls-cnnic-whitelist.js @@ -8,9 +8,9 @@ if (!common.hasCrypto) { } const assert = require('assert'); -const tls = require('tls'); const fs = require('fs'); const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { return path.join(common.fixturesDir, 'keys', `${n}.pem`); diff --git a/test/parallel/test-tls-npn-server-client.js b/test/parallel/test-tls-npn-server-client.js index ac617072f3a000..ffaf61b633bc1d 100644 --- a/test/parallel/test-tls-npn-server-client.js +++ b/test/parallel/test-tls-npn-server-client.js @@ -26,18 +26,18 @@ if (!process.features.tls_npn) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index 65ddaa5e2dc3d0..86a735f64c98a4 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -27,6 +27,11 @@ if (!common.opensslCli) { return; } +if (!common.hasCrypto) { + common.skip('missing crypto'); + return; +} + // This is a rather complex test which sets up various TLS servers with node // and connects to them using the 'openssl s_client' command line utility // with various keys. Depending on the certificate authority and other @@ -35,6 +40,14 @@ if (!common.opensslCli) { // - accepted and "unauthorized", or // - accepted and "authorized". +const assert = require('assert'); +const { spawn } = require('child_process'); +const { SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION } = + require('crypto').constants; +const fs = require('fs'); +const path = require('path'); +const tls = require('tls'); + const testCases = [{ title: 'Do not request certs. Everyone is unauthorized.', requestCert: false, @@ -119,22 +132,9 @@ const testCases = } ]; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const tls = require('tls'); - -const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION = - require('crypto').constants.SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION; - -const assert = require('assert'); -const fs = require('fs'); -const spawn = require('child_process').spawn; - function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } diff --git a/test/parallel/test-tls-sni-option.js b/test/parallel/test-tls-sni-option.js index 52fb90ec9314c5..ad7410b1631106 100644 --- a/test/parallel/test-tls-sni-option.js +++ b/test/parallel/test-tls-sni-option.js @@ -26,17 +26,18 @@ if (!process.features.tls_sni) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-sni-server-client.js b/test/parallel/test-tls-sni-server-client.js index 0ee382ad38b5fc..300010cfa13cda 100644 --- a/test/parallel/test-tls-sni-server-client.js +++ b/test/parallel/test-tls-sni-server-client.js @@ -26,17 +26,18 @@ if (!process.features.tls_sni) { return; } -const assert = require('assert'); -const fs = require('fs'); - if (!common.hasCrypto) { common.skip('missing crypto'); return; } + +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const tls = require('tls'); function filenamePEM(n) { - return require('path').join(common.fixturesDir, 'keys', `${n}.pem`); + return path.join(common.fixturesDir, 'keys', `${n}.pem`); } function loadPEM(n) { diff --git a/test/parallel/test-tls-startcom-wosign-whitelist.js b/test/parallel/test-tls-startcom-wosign-whitelist.js index 21dbb55c156e8e..601c0e4393c2eb 100644 --- a/test/parallel/test-tls-startcom-wosign-whitelist.js +++ b/test/parallel/test-tls-startcom-wosign-whitelist.js @@ -1,15 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); if (!common.hasCrypto) { common.skip('missing crypto'); return; } -const tls = require('tls'); +const assert = require('assert'); const fs = require('fs'); const path = require('path'); +const tls = require('tls'); + let finished = 0; function filenamePEM(n) { From bc99efc9739d252d5307c78fd40fc80307cd6d98 Mon Sep 17 00:00:00 2001 From: Vse Mozhet Byt Date: Sat, 1 Jul 2017 02:29:09 +0300 Subject: [PATCH 118/248] test: simplify test skipping * Make common.skip() exit. Also add common.printSkipMessage() for partial skips. * Don't make needless things before skip PR-URL: https://github.com/nodejs/node/pull/14021 Fixes: https://github.com/nodejs/node/issues/14016 Reviewed-By: Refael Ackermann --- test/abort/test-abort-backtrace.js | 8 +++----- test/addons/load-long-path/test.js | 8 +++----- test/addons/openssl-binding/test.js | 5 ++--- .../test-stringbytes-external-at-max.js | 15 +++++---------- ...ingbytes-external-exceed-max-by-1-ascii.js | 15 +++++---------- ...ngbytes-external-exceed-max-by-1-base64.js | 15 +++++---------- ...ngbytes-external-exceed-max-by-1-binary.js | 15 +++++---------- ...tringbytes-external-exceed-max-by-1-hex.js | 15 +++++---------- ...ringbytes-external-exceed-max-by-1-utf8.js | 15 +++++---------- ...st-stringbytes-external-exceed-max-by-2.js | 15 +++++---------- .../test-stringbytes-external-exceed-max.js | 15 +++++---------- test/addons/symlinked-module/test.js | 1 - test/async-hooks/test-connection.ssl.js | 10 ++++------ test/async-hooks/test-crypto-pbkdf2.js | 5 ++--- test/async-hooks/test-crypto-randomBytes.js | 5 ++--- test/async-hooks/test-graph.connection.js | 10 ++++------ test/async-hooks/test-graph.shutdown.js | 9 +++------ test/async-hooks/test-graph.tcp.js | 9 +++------ test/async-hooks/test-graph.tls-write.js | 16 ++++++---------- test/async-hooks/test-tcpwrap.js | 9 +++------ test/async-hooks/test-tlswrap.js | 10 ++++------ test/async-hooks/test-ttywrap.writestream.js | 10 ++++++---- test/async-hooks/test-writewrap.js | 10 ++++------ test/common/README.md | 7 ++++++- test/common/index.js | 8 ++++++-- test/doctool/test-doctool-html.js | 9 ++++----- test/doctool/test-doctool-json.js | 9 ++++----- test/fixtures/tls-connect.js | 9 ++++----- test/inspector/test-inspector-ip-detection.js | 6 ++---- .../test-dgram-broadcast-multi-process.js | 8 +++----- .../test-dgram-multicast-multi-process.js | 10 ++++------ test/internet/test-dns-ipv6.js | 8 +++----- .../internet/test-http-https-default-ports.js | 5 ++--- test/internet/test-tls-add-ca-cert.js | 4 +--- .../internet/test-tls-connnect-melissadata.js | 4 +--- .../test-tls-reuse-host-from-socket.js | 5 ++--- test/known_issues/test-cwd-enoent-file.js | 1 - test/parallel/test-async-wrap-GH13045.js | 4 +--- .../test-async-wrap-uncaughtexception.js | 5 ++--- test/parallel/test-benchmark-crypto.js | 8 ++------ test/parallel/test-buffer-alloc.js | 2 +- .../parallel/test-child-process-fork-dgram.js | 8 +++----- test/parallel/test-cli-node-options.js | 2 +- .../test-cluster-bind-privileged-port.js | 16 ++++++---------- test/parallel/test-cluster-dgram-1.js | 9 +++------ test/parallel/test-cluster-dgram-2.js | 9 +++------ test/parallel/test-cluster-dgram-reuse.js | 8 +++----- test/parallel/test-cluster-disconnect-race.js | 8 +++----- .../test-cluster-disconnect-unshared-udp.js | 4 +--- test/parallel/test-cluster-http-pipe.js | 9 ++++----- ...ster-shared-handle-bind-privileged-port.js | 16 ++++++---------- test/parallel/test-crypto-authenticated.js | 12 +++++------- test/parallel/test-crypto-binary-default.js | 4 +--- test/parallel/test-crypto-certificate.js | 8 +++----- test/parallel/test-crypto-cipher-decipher.js | 10 ++++------ .../test-crypto-cipheriv-decipheriv.js | 8 +++----- test/parallel/test-crypto-deprecated.js | 8 +++----- test/parallel/test-crypto-dh-odd-key.js | 8 +++----- test/parallel/test-crypto-dh.js | 9 ++++----- test/parallel/test-crypto-domain.js | 8 +++----- test/parallel/test-crypto-domains.js | 11 +++++------ test/parallel/test-crypto-ecb.js | 13 +++++-------- test/parallel/test-crypto-engine.js | 4 +--- test/parallel/test-crypto-fips.js | 8 +++----- test/parallel/test-crypto-from-binary.js | 8 +++----- test/parallel/test-crypto-hash-stream-pipe.js | 4 +--- test/parallel/test-crypto-hash.js | 8 +++----- test/parallel/test-crypto-hmac.js | 8 +++----- .../test-crypto-lazy-transform-writable.js | 5 ++--- test/parallel/test-crypto-padding-aes256.js | 8 +++----- test/parallel/test-crypto-padding.js | 8 +++----- test/parallel/test-crypto-pbkdf2.js | 5 +---- test/parallel/test-crypto-random.js | 5 ++--- test/parallel/test-crypto-rsa-dsa.js | 10 ++++------ test/parallel/test-crypto-sign-verify.js | 12 ++++-------- test/parallel/test-crypto-stream.js | 8 +++----- test/parallel/test-crypto-verify-failure.js | 5 ++--- test/parallel/test-crypto.js | 4 +--- test/parallel/test-cwd-enoent-preload.js | 10 ++++------ test/parallel/test-cwd-enoent-repl.js | 10 ++++------ test/parallel/test-cwd-enoent.js | 10 ++++------ test/parallel/test-debug-usage.js | 8 +++----- .../test-dgram-bind-default-address.js | 12 +++++------- .../test-dgram-cluster-close-during-bind.js | 8 +++----- test/parallel/test-dgram-send-empty-array.js | 4 +--- test/parallel/test-dgram-send-empty-buffer.js | 7 ++----- test/parallel/test-dgram-send-empty-packet.js | 7 ++----- .../test-dgram-udp6-send-default-host.js | 8 +++----- test/parallel/test-dh-padding.js | 4 +--- test/parallel/test-domain-crypto.js | 4 +--- test/parallel/test-dsa-fips-invalid-key.js | 7 ++----- test/parallel/test-fs-long-path.js | 8 +++----- .../test-fs-read-file-sync-hostname.js | 8 +++----- test/parallel/test-fs-readdir-ucs2.js | 8 +++----- test/parallel/test-fs-readfile-error.js | 12 +++++------- test/parallel/test-fs-readfile-pipe-large.js | 8 +++----- test/parallel/test-fs-readfile-pipe.js | 6 ++---- .../test-fs-readfilesync-pipe-large.js | 8 +++----- .../test-fs-realpath-on-substed-drive.js | 11 ++++------- test/parallel/test-fs-realpath-pipe.js | 4 +--- test/parallel/test-fs-realpath.js | 16 ++++++++-------- test/parallel/test-fs-symlink.js | 8 +++----- test/parallel/test-fs-watch-encoding.js | 9 ++++----- test/parallel/test-fs-watch-recursive.js | 4 +--- test/parallel/test-http-chunk-problem.js | 7 +++---- test/parallel/test-http-default-port.js | 4 +--- test/parallel/test-http-dns-error.js | 6 ++---- test/parallel/test-http-full-response.js | 2 +- test/parallel/test-http-invalid-urls.js | 4 +--- test/parallel/test-http-localaddress.js | 8 +++----- .../test-http-url.parse-https.request.js | 9 +++------ test/parallel/test-https-agent-constructor.js | 5 ++--- .../test-https-agent-create-connection.js | 4 +--- .../test-https-agent-disable-session-reuse.js | 12 ++++-------- test/parallel/test-https-agent-getname.js | 4 +--- .../test-https-agent-secure-protocol.js | 7 ++----- test/parallel/test-https-agent-servername.js | 4 +--- .../test-https-agent-session-eviction.js | 4 +--- .../test-https-agent-session-reuse.js | 4 +--- test/parallel/test-https-agent-sni.js | 9 +++------ .../parallel/test-https-agent-sockets-leak.js | 4 +--- test/parallel/test-https-agent.js | 9 +++------ .../test-https-argument-of-creating.js | 4 +--- test/parallel/test-https-byteswritten.js | 8 +++----- .../test-https-client-checkServerIdentity.js | 9 +++------ test/parallel/test-https-client-get-url.js | 10 ++++------ test/parallel/test-https-client-reject.js | 9 +++------ test/parallel/test-https-client-resume.js | 9 +++------ test/parallel/test-https-close.js | 8 +++----- .../test-https-connect-address-family.js | 13 ++++--------- .../parallel/test-https-connecting-to-http.js | 9 +++------ test/parallel/test-https-drain.js | 9 +++------ test/parallel/test-https-eof-for-eom.js | 9 +++------ test/parallel/test-https-foafssl.js | 12 +++--------- test/parallel/test-https-host-headers.js | 10 ++++------ .../test-https-localaddress-bind-error.js | 8 +++----- test/parallel/test-https-localaddress.js | 16 ++++++---------- test/parallel/test-https-pfx.js | 8 +++----- test/parallel/test-https-req-split.js | 7 +++---- .../parallel/test-https-resume-after-renew.js | 4 +--- .../test-https-server-keep-alive-timeout.js | 5 ++--- test/parallel/test-https-simple.js | 4 +--- test/parallel/test-https-socket-options.js | 7 ++----- test/parallel/test-https-strict.js | 9 +++------ test/parallel/test-https-timeout-server-2.js | 9 +++------ test/parallel/test-https-timeout-server.js | 5 ++--- test/parallel/test-https-timeout.js | 5 ++--- test/parallel/test-https-truncate.js | 4 +--- .../test-https-unix-socket-self-signed.js | 4 +--- test/parallel/test-icu-data-dir.js | 5 ++--- test/parallel/test-icu-punycode.js | 4 +--- test/parallel/test-icu-stringwidth.js | 4 +--- test/parallel/test-icu-transcode.js | 4 +--- test/parallel/test-inspector-open.js | 3 +-- test/parallel/test-intl-v8BreakIterator.js | 5 ++--- test/parallel/test-intl.js | 3 +-- test/parallel/test-listen-fd-cluster.js | 8 +++----- .../test-listen-fd-detached-inherit.js | 8 +++----- test/parallel/test-listen-fd-detached.js | 8 +++----- test/parallel/test-listen-fd-server.js | 8 +++----- .../parallel/test-module-circular-symlinks.js | 1 - .../test-module-symlinked-peer-modules.js | 1 - test/parallel/test-net-access-byteswritten.js | 5 ++--- test/parallel/test-net-connect-options-fd.js | 8 +++----- .../parallel/test-net-connect-options-ipv6.js | 10 ++++------ .../parallel/test-net-socket-local-address.js | 10 ++++------ test/parallel/test-npm-install.js | 4 +--- test/parallel/test-openssl-ca-options.js | 5 ++--- test/parallel/test-pipe-writev.js | 8 +++----- test/parallel/test-preload.js | 10 ++++------ test/parallel/test-process-execpath.js | 8 +++----- test/parallel/test-process-getgroups.js | 5 ++--- ...est-process-remove-all-signal-listeners.js | 9 +++------ test/parallel/test-regress-GH-1531.js | 5 ++--- test/parallel/test-regress-GH-3542.js | 10 ++++------ test/parallel/test-regress-GH-9819.js | 8 +++----- test/parallel/test-repl-history-perm.js | 1 - test/parallel/test-repl-sigint-nested-eval.js | 8 +++----- test/parallel/test-repl-sigint.js | 8 +++----- test/parallel/test-require-long-path.js | 8 +++----- test/parallel/test-require-symlink.js | 4 +--- test/parallel/test-setproctitle.js | 10 ++++------ test/parallel/test-signal-handler.js | 4 +--- test/parallel/test-spawn-cmd-named-pipe.js | 8 +++----- test/parallel/test-tls-0-dns-altname.js | 9 +++------ test/parallel/test-tls-alert-handling.js | 12 ++++-------- test/parallel/test-tls-alert.js | 11 +++-------- test/parallel/test-tls-alpn-server-client.js | 5 +---- .../test-tls-async-cb-after-socket-end.js | 4 +--- test/parallel/test-tls-basic-validations.js | 4 +--- test/parallel/test-tls-cert-regression.js | 5 ++--- .../test-tls-check-server-identity.js | 4 +--- test/parallel/test-tls-cipher-list.js | 4 +--- test/parallel/test-tls-client-abort.js | 9 +++------ test/parallel/test-tls-client-abort2.js | 8 +++----- .../test-tls-client-default-ciphers.js | 8 +++----- test/parallel/test-tls-client-destroy-soon.js | 9 +++------ .../test-tls-client-getephemeralkeyinfo.js | 10 ++++------ test/parallel/test-tls-client-mindhsize.js | 10 ++++------ test/parallel/test-tls-client-reject.js | 9 +++------ test/parallel/test-tls-client-resume.js | 9 +++------ test/parallel/test-tls-client-verify.js | 5 +---- test/parallel/test-tls-close-error.js | 9 +++------ test/parallel/test-tls-close-notify.js | 6 ++---- test/parallel/test-tls-cnnic-whitelist.js | 4 +--- .../test-tls-connect-address-family.js | 13 ++++--------- .../parallel/test-tls-connect-given-socket.js | 10 ++++------ test/parallel/test-tls-connect-no-host.js | 5 ++--- test/parallel/test-tls-connect-pipe.js | 5 ++--- test/parallel/test-tls-connect-simple.js | 5 ++--- .../test-tls-connect-stream-writes.js | 4 +--- test/parallel/test-tls-connect.js | 6 ++---- .../parallel/test-tls-delayed-attach-error.js | 5 ++--- test/parallel/test-tls-delayed-attach.js | 9 +++------ .../parallel/test-tls-destroy-whilst-write.js | 5 ++--- test/parallel/test-tls-dhe.js | 13 ++++--------- test/parallel/test-tls-ecdh-disable.js | 12 +++--------- test/parallel/test-tls-ecdh.js | 8 ++------ test/parallel/test-tls-econnreset.js | 8 +++----- test/parallel/test-tls-empty-sni-context.js | 11 +++-------- test/parallel/test-tls-env-bad-extra-ca.js | 4 +--- test/parallel/test-tls-env-extra-ca.js | 4 +--- test/parallel/test-tls-external-accessor.js | 10 ++++------ test/parallel/test-tls-fast-writing.js | 9 +++------ .../test-tls-friendly-error-message.js | 9 +++------ test/parallel/test-tls-getcipher.js | 5 ++--- test/parallel/test-tls-getprotocol.js | 7 ++----- test/parallel/test-tls-handshake-error.js | 9 +++------ test/parallel/test-tls-handshake-nohang.js | 5 ++--- .../parallel/test-tls-hello-parser-failure.js | 4 +--- test/parallel/test-tls-honorcipherorder.js | 10 ++++------ test/parallel/test-tls-inception.js | 4 +--- test/parallel/test-tls-interleave.js | 5 ++--- test/parallel/test-tls-invoke-queued.js | 4 +--- test/parallel/test-tls-js-stream.js | 9 +++------ test/parallel/test-tls-junk-closes-server.js | 4 +--- test/parallel/test-tls-junk-server.js | 4 +--- test/parallel/test-tls-key-mismatch.js | 5 ++--- test/parallel/test-tls-legacy-deprecated.js | 5 ++--- test/parallel/test-tls-legacy-onselect.js | 5 ++--- test/parallel/test-tls-lookup.js | 5 ++--- test/parallel/test-tls-max-send-fragment.js | 9 +++------ test/parallel/test-tls-multi-key.js | 8 +++----- test/parallel/test-tls-no-cert-required.js | 8 +++----- test/parallel/test-tls-no-rsa-key.js | 9 +++------ test/parallel/test-tls-no-sslv23.js | 8 +++----- test/parallel/test-tls-no-sslv3.js | 19 +++++++------------ test/parallel/test-tls-npn-server-client.js | 12 ++++-------- test/parallel/test-tls-ocsp-callback.js | 14 +++++--------- test/parallel/test-tls-on-empty-socket.js | 5 ++--- test/parallel/test-tls-over-http-tunnel.js | 9 +++------ test/parallel/test-tls-parse-cert-string.js | 4 +--- test/parallel/test-tls-passphrase.js | 9 +++------ test/parallel/test-tls-pause.js | 9 +++------ .../test-tls-peer-certificate-encoding.js | 9 +++------ .../test-tls-peer-certificate-multi-keys.js | 9 +++------ test/parallel/test-tls-pfx-gh-5100-regr.js | 4 +--- test/parallel/test-tls-regr-gh-5108.js | 4 +--- test/parallel/test-tls-request-timeout.js | 9 +++------ .../test-tls-retain-handle-no-abort.js | 8 +++----- test/parallel/test-tls-securepair-fiftharg.js | 4 +--- test/parallel/test-tls-securepair-leak.js | 7 ++----- test/parallel/test-tls-securepair-server.js | 12 +++--------- .../test-tls-server-connection-server.js | 4 +--- ...rver-failed-handshake-emits-clienterror.js | 5 ++--- test/parallel/test-tls-server-verify.js | 12 ++++-------- test/parallel/test-tls-session-cache.js | 8 ++------ test/parallel/test-tls-set-ciphers.js | 8 ++------ test/parallel/test-tls-set-encoding.js | 10 +++------- test/parallel/test-tls-sni-option.js | 12 ++++-------- test/parallel/test-tls-sni-server-client.js | 12 ++++-------- test/parallel/test-tls-socket-close.js | 6 ++---- test/parallel/test-tls-socket-destroy.js | 4 +--- ...tls-socket-failed-handshake-emits-error.js | 5 ++--- .../test-tls-startcom-wosign-whitelist.js | 5 +---- test/parallel/test-tls-starttls-server.js | 4 +--- test/parallel/test-tls-ticket-cluster.js | 9 +++------ test/parallel/test-tls-ticket.js | 9 +++------ test/parallel/test-tls-timeout-server-2.js | 9 +++------ test/parallel/test-tls-timeout-server.js | 6 ++---- test/parallel/test-tls-two-cas-one-string.js | 4 +--- .../test-tls-wrap-econnreset-localaddress.js | 5 ++--- .../parallel/test-tls-wrap-econnreset-pipe.js | 5 ++--- .../test-tls-wrap-econnreset-socket.js | 5 ++--- test/parallel/test-tls-wrap-econnreset.js | 5 ++--- test/parallel/test-tls-wrap-event-emmiter.js | 5 ++--- test/parallel/test-tls-wrap-no-abort.js | 4 +--- test/parallel/test-tls-wrap-timeout.js | 5 ++--- test/parallel/test-tls-writewrap-leak.js | 4 +--- test/parallel/test-tls-zero-clear-in.js | 5 ++--- .../parallel/test-url-domain-ascii-unicode.js | 5 ++--- test/parallel/test-url-format-whatwg.js | 5 ++--- test/parallel/test-util-sigint-watchdog.js | 7 +++---- .../test-vm-sigint-existing-handler.js | 12 +++++------- test/parallel/test-vm-sigint.js | 11 ++++------- test/parallel/test-warn-sigprof.js | 4 +--- test/parallel/test-whatwg-url-constructor.js | 11 +++++------ test/parallel/test-whatwg-url-domainto.js | 4 +--- test/parallel/test-whatwg-url-historical.js | 7 +++---- test/parallel/test-whatwg-url-inspect.js | 9 ++++----- test/parallel/test-whatwg-url-origin.js | 9 ++++----- test/parallel/test-whatwg-url-parsing.js | 9 ++++----- test/parallel/test-whatwg-url-setters.js | 11 +++++------ test/parallel/test-whatwg-url-toascii.js | 9 ++++----- test/parallel/test-windows-abort-exitcode.js | 9 ++++----- test/parallel/test-zlib-random-byte-pipes.js | 11 ++++------- test/pummel/test-abort-fatal-error.js | 7 ++----- test/pummel/test-crypto-dh.js | 8 +++----- ...est-crypto-timing-safe-equal-benchmarks.js | 11 +++-------- test/pummel/test-dh-regr.js | 8 +++----- test/pummel/test-dtrace-jsstack.js | 8 +++----- test/pummel/test-https-ci-reneg-attack.js | 17 ++++++----------- test/pummel/test-https-large-response.js | 9 +++------ test/pummel/test-https-no-reader.js | 9 +++------ test/pummel/test-keep-alive.js | 8 +++----- test/pummel/test-regress-GH-892.js | 9 +++------ test/pummel/test-tls-ci-reneg-attack.js | 17 ++++++----------- test/pummel/test-tls-connect-memleak.js | 9 +++------ test/pummel/test-tls-securepair-client.js | 9 ++------- test/pummel/test-tls-server-large-request.js | 9 +++------ test/pummel/test-tls-session-timeout.js | 8 ++------ test/pummel/test-tls-throttle.js | 8 +++----- test/sequential/test-benchmark-http.js | 4 +--- .../test-buffer-creation-regression.js | 3 ++- test/sequential/test-child-process-emfile.js | 8 +++----- test/sequential/test-child-process-pass-fd.js | 10 ++++------ .../test-crypto-timing-safe-equal.js | 7 ++----- .../test-fs-readfile-tostring-fail.js | 7 ++----- .../test-https-set-timeout-server.js | 4 +--- test/sequential/test-net-server-address.js | 2 +- .../test-tick-processor-builtin.js | 12 ++++-------- .../test-tick-processor-cpp-core.js | 12 ++++-------- .../test-tick-processor-unknown.js | 8 ++------ 333 files changed, 896 insertions(+), 1633 deletions(-) diff --git a/test/abort/test-abort-backtrace.js b/test/abort/test-abort-backtrace.js index 7f72ee8e71c6a5..dd108171684018 100644 --- a/test/abort/test-abort-backtrace.js +++ b/test/abort/test-abort-backtrace.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Backtraces unimplemented on Windows.'); + const assert = require('assert'); const cp = require('child_process'); -if (common.isWindows) { - common.skip('Backtraces unimplemented on Windows.'); - return; -} - if (process.argv[2] === 'child') { process.abort(); } else { diff --git a/test/addons/load-long-path/test.js b/test/addons/load-long-path/test.js index 73d85a75a097a2..accb90d2638274 100644 --- a/test/addons/load-long-path/test.js +++ b/test/addons/load-long-path/test.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); +if (common.isWOW64) + common.skip('doesn\'t work on WOW64'); + const fs = require('fs'); const path = require('path'); const assert = require('assert'); -if (common.isWOW64) { - common.skip('doesn\'t work on WOW64'); - return; -} - common.refreshTmpDir(); // make a path that is more than 260 chars long. diff --git a/test/addons/openssl-binding/test.js b/test/addons/openssl-binding/test.js index 452f59f752f5e5..1e6c57ffd1e081 100644 --- a/test/addons/openssl-binding/test.js +++ b/test/addons/openssl-binding/test.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(0); -} + const assert = require('assert'); const binding = require(`./build/${common.buildType}/binding`); const bytes = new Uint8Array(1024); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js index 5dd727f8ffddd3..4c074773a21fc2 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-at-max.js @@ -1,6 +1,10 @@ 'use strict'; const common = require('../../common'); +const skipMessage = 'intensive toString tests due to memory confinements'; +if (!common.enoughTestMem) + common.skip(skipMessage); + const binding = require(`./build/${common.buildType}/binding`); const assert = require('assert'); @@ -8,12 +12,6 @@ const assert = require('assert'); // v8::String::kMaxLength defined in v8.h const kStringMaxLength = process.binding('buffer').kStringMaxLength; -const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { - common.skip(skipMessage); - return; -} - let buf; try { buf = Buffer.allocUnsafe(kStringMaxLength); @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} const maxString = buf.toString('latin1'); assert.strictEqual(maxString.length, kStringMaxLength); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js index 2466c8ec42ed57..43b8c63f1e466e 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-ascii.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('ascii'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js index 16f0f5392e5206..a94a57e18037fd 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-base64.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('base64'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js index 1028706b1d1aa9..996c01752da7c6 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-binary.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('latin1'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js index caf6112011e2a8..17d9ae5d68f033 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-hex.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('hex'); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js index 4d3199a033e6d5..d3368ca7b2ea6b 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-1-utf8.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString(); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js index 786d0b679895e1..db007a53a44f3b 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max-by-2.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} const maxString = buf.toString('utf16le'); assert.strictEqual(maxString.length, (kStringMaxLength + 2) / 2); diff --git a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js index 36b0d4174a030b..319a8a93558c45 100644 --- a/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js +++ b/test/addons/stringbytes-external-exceed-max/test-stringbytes-external-exceed-max.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../../common'); -const binding = require(`./build/${common.buildType}/binding`); -const assert = require('assert'); - const skipMessage = 'intensive toString tests due to memory confinements'; -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip(skipMessage); - return; -} + +const binding = require(`./build/${common.buildType}/binding`); +const assert = require('assert'); // v8 fails silently if string length > v8::String::kMaxLength // v8::String::kMaxLength defined in v8.h @@ -21,14 +19,11 @@ try { // If the exception is not due to memory confinement then rethrow it. if (e.message !== 'Array buffer allocation failed') throw (e); common.skip(skipMessage); - return; } // Ensure we have enough memory available for future allocations to succeed. -if (!binding.ensureAllocation(2 * kStringMaxLength)) { +if (!binding.ensureAllocation(2 * kStringMaxLength)) common.skip(skipMessage); - return; -} assert.throws(function() { buf.toString('utf16le'); diff --git a/test/addons/symlinked-module/test.js b/test/addons/symlinked-module/test.js index d2025c54e4360b..d9455c027bd36b 100644 --- a/test/addons/symlinked-module/test.js +++ b/test/addons/symlinked-module/test.js @@ -22,7 +22,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('module identity test (no privs for symlinks)'); - return; } const sub = require('./submodule'); diff --git a/test/async-hooks/test-connection.ssl.js b/test/async-hooks/test-connection.ssl.js index ac3e069fb8a21d..faee0fdf080e42 100644 --- a/test/async-hooks/test-connection.ssl.js +++ b/test/async-hooks/test-connection.ssl.js @@ -1,16 +1,14 @@ 'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const initHooks = require('./init-hooks'); const tick = require('./tick'); -const common = require('../common'); const assert = require('assert'); const { checkInvocations } = require('./hook-checks'); -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); const Connection = process.binding('crypto').Connection; const hooks = initHooks(); diff --git a/test/async-hooks/test-crypto-pbkdf2.js b/test/async-hooks/test-crypto-pbkdf2.js index 3023101f0b6640..2a0b44db8ce7a8 100644 --- a/test/async-hooks/test-crypto-pbkdf2.js +++ b/test/async-hooks/test-crypto-pbkdf2.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); diff --git a/test/async-hooks/test-crypto-randomBytes.js b/test/async-hooks/test-crypto-randomBytes.js index 49ffc6fdb612ea..76f8f7759503c4 100644 --- a/test/async-hooks/test-crypto-randomBytes.js +++ b/test/async-hooks/test-crypto-randomBytes.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); diff --git a/test/async-hooks/test-graph.connection.js b/test/async-hooks/test-graph.connection.js index 37ecc79bb06956..fcc764b5ccf218 100644 --- a/test/async-hooks/test-graph.connection.js +++ b/test/async-hooks/test-graph.connection.js @@ -1,13 +1,11 @@ 'use strict'; -const initHooks = require('./init-hooks'); const common = require('../common'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const tls = require('tls'); const Connection = process.binding('crypto').Connection; diff --git a/test/async-hooks/test-graph.shutdown.js b/test/async-hooks/test-graph.shutdown.js index 029a9c86b66763..136f01821217c1 100644 --- a/test/async-hooks/test-graph.shutdown.js +++ b/test/async-hooks/test-graph.shutdown.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const net = require('net'); const hooks = initHooks(); diff --git a/test/async-hooks/test-graph.tcp.js b/test/async-hooks/test-graph.tcp.js index f9703769b831b9..872615990733cc 100644 --- a/test/async-hooks/test-graph.tcp.js +++ b/test/async-hooks/test-graph.tcp.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); - -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); const net = require('net'); const hooks = initHooks(); diff --git a/test/async-hooks/test-graph.tls-write.js b/test/async-hooks/test-graph.tls-write.js index 77a97bedbc5438..338a714c322314 100644 --- a/test/async-hooks/test-graph.tls-write.js +++ b/test/async-hooks/test-graph.tls-write.js @@ -1,21 +1,17 @@ 'use strict'; const common = require('../common'); -const initHooks = require('./init-hooks'); -const verifyGraph = require('./verify-graph'); -const fs = require('fs'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('IPv6 support required'); - return; -} +const initHooks = require('./init-hooks'); +const verifyGraph = require('./verify-graph'); +const fs = require('fs'); const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-tcpwrap.js b/test/async-hooks/test-tcpwrap.js index 0dce8c7d9f0bde..b4021753a072ed 100644 --- a/test/async-hooks/test-tcpwrap.js +++ b/test/async-hooks/test-tcpwrap.js @@ -2,16 +2,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('IPv6 support required'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasIPv6) { - common.skip('IPv6 support required'); - return; -} - const net = require('net'); let tcp1, tcp2, tcp3; diff --git a/test/async-hooks/test-tlswrap.js b/test/async-hooks/test-tlswrap.js index 47cca62c182af9..878afac06311a9 100644 --- a/test/async-hooks/test-tlswrap.js +++ b/test/async-hooks/test-tlswrap.js @@ -1,18 +1,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const fs = require('fs'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-ttywrap.writestream.js b/test/async-hooks/test-ttywrap.writestream.js index b1cc768877d925..990460b53760fe 100644 --- a/test/async-hooks/test-ttywrap.writestream.js +++ b/test/async-hooks/test-ttywrap.writestream.js @@ -1,14 +1,16 @@ 'use strict'; const common = require('../common'); + +const tty_fd = common.getTTYfd(); +if (tty_fd < 0) + common.skip('no valid TTY fd available'); + const assert = require('assert'); const tick = require('./tick'); const initHooks = require('./init-hooks'); const { checkInvocations } = require('./hook-checks'); -const tty_fd = common.getTTYfd(); -if (tty_fd < 0) - return common.skip('no valid TTY fd available'); const ttyStream = (() => { try { return new (require('tty').WriteStream)(tty_fd); @@ -17,7 +19,7 @@ const ttyStream = (() => { } })(); if (ttyStream === null) - return common.skip('no valid TTY fd available'); + common.skip('no valid TTY fd available'); const hooks = initHooks(); hooks.enable(); diff --git a/test/async-hooks/test-writewrap.js b/test/async-hooks/test-writewrap.js index 6253b09d4adccc..eca0d08f10f402 100644 --- a/test/async-hooks/test-writewrap.js +++ b/test/async-hooks/test-writewrap.js @@ -1,17 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const initHooks = require('./init-hooks'); const fs = require('fs'); const { checkInvocations } = require('./hook-checks'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const tls = require('tls'); + const hooks = initHooks(); hooks.enable(); diff --git a/test/common/README.md b/test/common/README.md index f418115ce31805..78145b412fd6be 100644 --- a/test/common/README.md +++ b/test/common/README.md @@ -277,6 +277,11 @@ Path to the test sock. Port tests are running on. +### printSkipMessage(msg) +* `msg` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) + +Logs '1..0 # Skipped: ' + `msg` + ### refreshTmpDir * return [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) @@ -298,7 +303,7 @@ Path to the 'root' directory. either `/` or `c:\\` (windows) ### skip(msg) * `msg` [<String>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) -Logs '1..0 # Skipped: ' + `msg` +Logs '1..0 # Skipped: ' + `msg` and exits with exit code `0`. ### spawnPwd(options) * `options` [<Object>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) diff --git a/test/common/index.js b/test/common/index.js index 5c820211d72033..f92b535efc524f 100644 --- a/test/common/index.js +++ b/test/common/index.js @@ -571,10 +571,15 @@ exports.mustNotCall = function(msg) { }; }; -exports.skip = function(msg) { +exports.printSkipMessage = function(msg) { console.log(`1..0 # Skipped: ${msg}`); }; +exports.skip = function(msg) { + exports.printSkipMessage(msg); + process.exit(0); +}; + // A stream to push an array into a REPL function ArrayStream() { this.run = function(data) { @@ -718,7 +723,6 @@ exports.expectsError = function expectsError({code, type, message}) { exports.skipIfInspectorDisabled = function skipIfInspectorDisabled() { if (process.config.variables.v8_enable_inspector === 0) { exports.skip('V8 inspector is disabled'); - process.exit(0); } }; diff --git a/test/doctool/test-doctool-html.js b/test/doctool/test-doctool-html.js index 3af5a5409db103..64f1d7f8b142f5 100644 --- a/test/doctool/test-doctool-html.js +++ b/test/doctool/test-doctool-html.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); - // The doctool currently uses js-yaml from the tool/eslint/ tree. try { require('../../tools/eslint/node_modules/js-yaml'); } catch (e) { - return common.skip('missing js-yaml (eslint not present)'); + common.skip('missing js-yaml (eslint not present)'); } +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const processIncludes = require('../../tools/doc/preprocess.js'); const html = require('../../tools/doc/html.js'); diff --git a/test/doctool/test-doctool-json.js b/test/doctool/test-doctool-json.js index 346a7f331e9d7f..4a4d3a895c3f20 100644 --- a/test/doctool/test-doctool-json.js +++ b/test/doctool/test-doctool-json.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const fs = require('fs'); -const path = require('path'); - // The doctool currently uses js-yaml from the tool/eslint/ tree. try { require('../../tools/eslint/node_modules/js-yaml'); } catch (e) { - return common.skip('missing js-yaml (eslint not present)'); + common.skip('missing js-yaml (eslint not present)'); } +const assert = require('assert'); +const fs = require('fs'); +const path = require('path'); const json = require('../../tools/doc/json.js'); // Outputs valid json with the expected fields when given simple markdown diff --git a/test/fixtures/tls-connect.js b/test/fixtures/tls-connect.js index a434a0316d6fb5..2ce75a53767724 100644 --- a/test/fixtures/tls-connect.js +++ b/test/fixtures/tls-connect.js @@ -4,14 +4,13 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); -const join = require('path').join; // Check if Node was compiled --without-ssl and if so exit early // as the require of tls will otherwise throw an Error. -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(0); -} + +const fs = require('fs'); +const join = require('path').join; const tls = require('tls'); const util = require('util'); diff --git a/test/inspector/test-inspector-ip-detection.js b/test/inspector/test-inspector-ip-detection.js index ad51c631645e4a..be5e34a977eb84 100644 --- a/test/inspector/test-inspector-ip-detection.js +++ b/test/inspector/test-inspector-ip-detection.js @@ -9,10 +9,8 @@ const os = require('os'); const ip = pickIPv4Address(); -if (!ip) { +if (!ip) common.skip('No IP address found'); - return; -} function checkListResponse(instance, err, response) { assert.ifError(err); @@ -29,7 +27,7 @@ function checkListResponse(instance, err, response) { function checkError(instance, error) { // Some OSes will not allow us to connect if (error.code === 'EHOSTUNREACH') { - common.skip('Unable to connect to self'); + common.printSkipMessage('Unable to connect to self'); } else { throw error; } diff --git a/test/internet/test-dgram-broadcast-multi-process.js b/test/internet/test-dgram-broadcast-multi-process.js index 79e139248454d5..0ec4bbd9ce5aa7 100644 --- a/test/internet/test-dgram-broadcast-multi-process.js +++ b/test/internet/test-dgram-broadcast-multi-process.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.inFreeBSDJail) + common.skip('in a FreeBSD jail'); + const assert = require('assert'); const dgram = require('dgram'); const util = require('util'); @@ -35,11 +38,6 @@ const messages = [ Buffer.from('Fourth message to send') ]; -if (common.inFreeBSDJail) { - common.skip('in a FreeBSD jail'); - return; -} - let bindAddress = null; // Take the first non-internal interface as the address for binding. diff --git a/test/internet/test-dgram-multicast-multi-process.js b/test/internet/test-dgram-multicast-multi-process.js index dac8abd6a7a436..a7854652eab49f 100644 --- a/test/internet/test-dgram-multicast-multi-process.js +++ b/test/internet/test-dgram-multicast-multi-process.js @@ -21,6 +21,10 @@ 'use strict'; const common = require('../common'); +// Skip test in FreeBSD jails. +if (common.inFreeBSDJail) + common.skip('In a FreeBSD jail'); + const assert = require('assert'); const dgram = require('dgram'); const fork = require('child_process').fork; @@ -37,12 +41,6 @@ const listeners = 3; let listening, sendSocket, done, timer, dead; -// Skip test in FreeBSD jails. -if (common.inFreeBSDJail) { - common.skip('In a FreeBSD jail'); - return; -} - function launchChildProcess() { const worker = fork(__filename, ['child']); workers[worker.pid] = worker; diff --git a/test/internet/test-dns-ipv6.js b/test/internet/test-dns-ipv6.js index 31f9df5eab8a51..9b9360c2a1628c 100644 --- a/test/internet/test-dns-ipv6.js +++ b/test/internet/test-dns-ipv6.js @@ -1,5 +1,8 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('this test, no IPv6 support'); + const assert = require('assert'); const dns = require('dns'); const net = require('net'); @@ -8,11 +11,6 @@ const isIPv6 = net.isIPv6; let running = false; const queue = []; -if (!common.hasIPv6) { - common.skip('this test, no IPv6 support'); - return; -} - function TEST(f) { function next() { const f = queue.shift(); diff --git a/test/internet/test-http-https-default-ports.js b/test/internet/test-http-https-default-ports.js index b0eb682519bae6..567b045dc6eacf 100644 --- a/test/internet/test-http-https-default-ports.js +++ b/test/internet/test-http-https-default-ports.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const http = require('http'); diff --git a/test/internet/test-tls-add-ca-cert.js b/test/internet/test-tls-add-ca-cert.js index 1283230e911b4d..299e01405d7dbd 100644 --- a/test/internet/test-tls-add-ca-cert.js +++ b/test/internet/test-tls-add-ca-cert.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} // Test interaction of compiled-in CAs with user-provided CAs. diff --git a/test/internet/test-tls-connnect-melissadata.js b/test/internet/test-tls-connnect-melissadata.js index f57b897099fc2d..ab5aa3950938b3 100644 --- a/test/internet/test-tls-connnect-melissadata.js +++ b/test/internet/test-tls-connnect-melissadata.js @@ -3,10 +3,8 @@ // certification between Starfield Class 2 and ValiCert Class 2 const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const tls = require('tls'); const socket = tls.connect(443, 'address.melissadata.net', function() { diff --git a/test/internet/test-tls-reuse-host-from-socket.js b/test/internet/test-tls-reuse-host-from-socket.js index fda9712156cb11..73ee91d3b2ea0d 100644 --- a/test/internet/test-tls-reuse-host-from-socket.js +++ b/test/internet/test-tls-reuse-host-from-socket.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); diff --git a/test/known_issues/test-cwd-enoent-file.js b/test/known_issues/test-cwd-enoent-file.js index 9431919804af4e..b2f59cbca7d48a 100644 --- a/test/known_issues/test-cwd-enoent-file.js +++ b/test/known_issues/test-cwd-enoent-file.js @@ -9,7 +9,6 @@ if (common.isSunOS || common.isWindows || common.isAix) { // The current working directory cannot be removed on these platforms. // Change this to common.skip() when this is no longer a known issue test. assert.fail('cannot rmdir current working directory'); - return; } const cp = require('child_process'); diff --git a/test/parallel/test-async-wrap-GH13045.js b/test/parallel/test-async-wrap-GH13045.js index 41c6f0cd19eb35..1382de8060813a 100644 --- a/test/parallel/test-async-wrap-GH13045.js +++ b/test/parallel/test-async-wrap-GH13045.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} // Refs: https://github.com/nodejs/node/issues/13045 // An HTTP Agent reuses a TLSSocket, and makes a failed call to `asyncReset`. diff --git a/test/parallel/test-async-wrap-uncaughtexception.js b/test/parallel/test-async-wrap-uncaughtexception.js index f5f81f10052966..9427e2fb787a9b 100644 --- a/test/parallel/test-async-wrap-uncaughtexception.js +++ b/test/parallel/test-async-wrap-uncaughtexception.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const async_hooks = require('async_hooks'); const call_log = [0, 0, 0, 0]; // [before, callback, exception, after]; diff --git a/test/parallel/test-benchmark-crypto.js b/test/parallel/test-benchmark-crypto.js index 55ab98ee2199df..e7f99ad29c0586 100644 --- a/test/parallel/test-benchmark-crypto.js +++ b/test/parallel/test-benchmark-crypto.js @@ -2,15 +2,11 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { +if (common.hasFipsCrypto) common.skip('some benchmarks are FIPS-incompatible'); - return; -} // Minimal test for crypto benchmarks. This makes sure the benchmarks aren't // horribly broken but nothing more than that. diff --git a/test/parallel/test-buffer-alloc.js b/test/parallel/test-buffer-alloc.js index b5318110fa7182..8bc4ebc9f534ff 100644 --- a/test/parallel/test-buffer-alloc.js +++ b/test/parallel/test-buffer-alloc.js @@ -917,7 +917,7 @@ if (common.hasCrypto) { crypto.createHash('sha1').update(b2).digest('hex') ); } else { - common.skip('missing crypto'); + common.printSkipMessage('missing crypto'); } const ps = Buffer.poolSize; diff --git a/test/parallel/test-child-process-fork-dgram.js b/test/parallel/test-child-process-fork-dgram.js index be351cced04f0c..4aa36261dbb24b 100644 --- a/test/parallel/test-child-process-fork-dgram.js +++ b/test/parallel/test-child-process-fork-dgram.js @@ -28,15 +28,13 @@ */ const common = require('../common'); +if (common.isWindows) + common.skip('Sending dgram sockets to child processes is not supported'); + const dgram = require('dgram'); const fork = require('child_process').fork; const assert = require('assert'); -if (common.isWindows) { - common.skip('Sending dgram sockets to child processes is not supported'); - return; -} - if (process.argv[2] === 'child') { let childServer; diff --git a/test/parallel/test-cli-node-options.js b/test/parallel/test-cli-node-options.js index 0c39813cf62ccd..8622dafbe10af3 100644 --- a/test/parallel/test-cli-node-options.js +++ b/test/parallel/test-cli-node-options.js @@ -1,7 +1,7 @@ 'use strict'; const common = require('../common'); if (process.config.variables.node_without_node_options) - return common.skip('missing NODE_OPTIONS support'); + common.skip('missing NODE_OPTIONS support'); // Test options specified by env variable. diff --git a/test/parallel/test-cluster-bind-privileged-port.js b/test/parallel/test-cluster-bind-privileged-port.js index e726618ffbd31c..99f7a20c4946be 100644 --- a/test/parallel/test-cluster-bind-privileged-port.js +++ b/test/parallel/test-cluster-bind-privileged-port.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const net = require('net'); - -if (common.isWindows) { +if (common.isWindows) common.skip('not reliable on Windows.'); - return; -} -if (process.getuid() === 0) { +if (process.getuid() === 0) common.skip('Test is not supposed to be run as root.'); - return; -} + +const assert = require('assert'); +const cluster = require('cluster'); +const net = require('net'); if (cluster.isMaster) { cluster.fork().on('exit', common.mustCall((exitCode) => { diff --git a/test/parallel/test-cluster-dgram-1.js b/test/parallel/test-cluster-dgram-1.js index 9e0ed3dfb9c7b8..3688c67f6c68c8 100644 --- a/test/parallel/test-cluster-dgram-1.js +++ b/test/parallel/test-cluster-dgram-1.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on Windows.'); + const NUM_WORKERS = 4; const PACKETS_PER_WORKER = 10; @@ -28,12 +31,6 @@ const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); - -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on Windows.'); - return; -} - if (cluster.isMaster) master(); else diff --git a/test/parallel/test-cluster-dgram-2.js b/test/parallel/test-cluster-dgram-2.js index 9ae903b6eaf22b..7c1dae65600fc0 100644 --- a/test/parallel/test-cluster-dgram-2.js +++ b/test/parallel/test-cluster-dgram-2.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on Windows.'); + const NUM_WORKERS = 4; const PACKETS_PER_WORKER = 10; @@ -28,12 +31,6 @@ const cluster = require('cluster'); const dgram = require('dgram'); const assert = require('assert'); - -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on Windows.'); - return; -} - if (cluster.isMaster) master(); else diff --git a/test/parallel/test-cluster-dgram-reuse.js b/test/parallel/test-cluster-dgram-reuse.js index 1472dcc5238a63..51a4944e554856 100644 --- a/test/parallel/test-cluster-dgram-reuse.js +++ b/test/parallel/test-cluster-dgram-reuse.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on windows.'); + const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on windows.'); - return; -} - if (cluster.isMaster) { cluster.fork().on('exit', common.mustCall((code) => { assert.strictEqual(code, 0); diff --git a/test/parallel/test-cluster-disconnect-race.js b/test/parallel/test-cluster-disconnect-race.js index 7bb66ced3663ef..60d8697b671b84 100644 --- a/test/parallel/test-cluster-disconnect-race.js +++ b/test/parallel/test-cluster-disconnect-race.js @@ -4,15 +4,13 @@ // Ref: https://github.com/nodejs/node/issues/4205 const common = require('../common'); +if (common.isWindows) + common.skip('This test does not apply to Windows.'); + const assert = require('assert'); const net = require('net'); const cluster = require('cluster'); -if (common.isWindows) { - common.skip('This test does not apply to Windows.'); - return; -} - cluster.schedulingPolicy = cluster.SCHED_NONE; if (cluster.isMaster) { diff --git a/test/parallel/test-cluster-disconnect-unshared-udp.js b/test/parallel/test-cluster-disconnect-unshared-udp.js index 653ab6cc9c3be8..d34ce11b0285ab 100644 --- a/test/parallel/test-cluster-disconnect-unshared-udp.js +++ b/test/parallel/test-cluster-disconnect-unshared-udp.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (common.isWindows) { +if (common.isWindows) common.skip('on windows, because clustered dgram is ENOTSUP'); - return; -} const cluster = require('cluster'); const dgram = require('dgram'); diff --git a/test/parallel/test-cluster-http-pipe.js b/test/parallel/test-cluster-http-pipe.js index 93b457fd808013..96f741e80443b7 100644 --- a/test/parallel/test-cluster-http-pipe.js +++ b/test/parallel/test-cluster-http-pipe.js @@ -22,16 +22,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const http = require('http'); - if (common.isWindows) { common.skip( 'It is not possible to send pipe handles over the IPC pipe on Windows'); - return; } +const assert = require('assert'); +const cluster = require('cluster'); +const http = require('http'); + if (cluster.isMaster) { common.refreshTmpDir(); const worker = cluster.fork(); diff --git a/test/parallel/test-cluster-shared-handle-bind-privileged-port.js b/test/parallel/test-cluster-shared-handle-bind-privileged-port.js index 419307d52ccf8a..8f05b28fed3308 100644 --- a/test/parallel/test-cluster-shared-handle-bind-privileged-port.js +++ b/test/parallel/test-cluster-shared-handle-bind-privileged-port.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const cluster = require('cluster'); -const net = require('net'); - -if (common.isWindows) { +if (common.isWindows) common.skip('not reliable on Windows'); - return; -} -if (process.getuid() === 0) { +if (process.getuid() === 0) common.skip('as this test should not be run as `root`'); - return; -} + +const assert = require('assert'); +const cluster = require('cluster'); +const net = require('net'); if (cluster.isMaster) { // Master opens and binds the socket and shares it with the worker. diff --git a/test/parallel/test-crypto-authenticated.js b/test/parallel/test-crypto-authenticated.js index 2d5370ba3eac2b..c03aa0efce54e0 100644 --- a/test/parallel/test-crypto-authenticated.js +++ b/test/parallel/test-crypto-authenticated.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; @@ -341,12 +339,12 @@ for (const i in TEST_CASES) { const test = TEST_CASES[i]; if (!ciphers.includes(test.algo)) { - common.skip(`unsupported ${test.algo} test`); + common.printSkipMessage(`unsupported ${test.algo} test`); continue; } if (common.hasFipsCrypto && test.iv.length < 24) { - common.skip('IV len < 12 bytes unsupported in FIPS mode'); + common.printSkipMessage('IV len < 12 bytes unsupported in FIPS mode'); continue; } diff --git a/test/parallel/test-crypto-binary-default.js b/test/parallel/test-crypto-binary-default.js index e92f70035bde78..5bb254057b5a7a 100644 --- a/test/parallel/test-crypto-binary-default.js +++ b/test/parallel/test-crypto-binary-default.js @@ -26,10 +26,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-certificate.js b/test/parallel/test-crypto-certificate.js index 831fed0f14e921..61d8ea8193d5bc 100644 --- a/test/parallel/test-crypto-certificate.js +++ b/test/parallel/test-crypto-certificate.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-cipher-decipher.js b/test/parallel/test-crypto-cipher-decipher.js index dfb68a7f920844..0104341653f7f5 100644 --- a/test/parallel/test-crypto-cipher-decipher.js +++ b/test/parallel/test-crypto-cipher-decipher.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { + +if (common.hasFipsCrypto) common.skip('not supported in FIPS mode'); - return; -} + const crypto = require('crypto'); const assert = require('assert'); diff --git a/test/parallel/test-crypto-cipheriv-decipheriv.js b/test/parallel/test-crypto-cipheriv-decipheriv.js index 31a79d8bf175b8..96ca44fec82856 100644 --- a/test/parallel/test-crypto-cipheriv-decipheriv.js +++ b/test/parallel/test-crypto-cipheriv-decipheriv.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); function testCipher1(key, iv) { diff --git a/test/parallel/test-crypto-deprecated.js b/test/parallel/test-crypto-deprecated.js index 903862d6c8ed27..84f25316d49b61 100644 --- a/test/parallel/test-crypto-deprecated.js +++ b/test/parallel/test-crypto-deprecated.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const tls = require('tls'); diff --git a/test/parallel/test-crypto-dh-odd-key.js b/test/parallel/test-crypto-dh-odd-key.js index 94f3d382655ae6..449c482d351c56 100644 --- a/test/parallel/test-crypto-dh-odd-key.js +++ b/test/parallel/test-crypto-dh-odd-key.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); function test() { diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js index 91a066d1bd22b1..3b51dc559063d6 100644 --- a/test/parallel/test-crypto-dh.js +++ b/test/parallel/test-crypto-dh.js @@ -1,12 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); + const DH_NOT_SUITABLE_GENERATOR = crypto.constants.DH_NOT_SUITABLE_GENERATOR; // Test Diffie-Hellman with two parties sharing a secret, diff --git a/test/parallel/test-crypto-domain.js b/test/parallel/test-crypto-domain.js index b41b57e3a258b5..d579331287c485 100644 --- a/test/parallel/test-crypto-domain.js +++ b/test/parallel/test-crypto-domain.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const domain = require('domain'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); function test(fn) { diff --git a/test/parallel/test-crypto-domains.js b/test/parallel/test-crypto-domains.js index 23ca991500d799..be87cad6ff6ff7 100644 --- a/test/parallel/test-crypto-domains.js +++ b/test/parallel/test-crypto-domains.js @@ -21,17 +21,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const domain = require('domain'); const assert = require('assert'); +const crypto = require('crypto'); + const d = domain.create(); const expect = ['pbkdf2', 'randomBytes', 'pseudoRandomBytes']; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const crypto = require('crypto'); - d.on('error', common.mustCall(function(e) { assert.strictEqual(e.message, expect.shift()); }, 3)); diff --git a/test/parallel/test-crypto-ecb.js b/test/parallel/test-crypto-ecb.js index d69cb9ea0d2754..4faf4af2c576fd 100644 --- a/test/parallel/test-crypto-ecb.js +++ b/test/parallel/test-crypto-ecb.js @@ -21,16 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (common.hasFipsCrypto) { + +if (common.hasFipsCrypto) common.skip('BF-ECB is not FIPS 140-2 compatible'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-engine.js b/test/parallel/test-crypto-engine.js index 8452087cc50c93..b2fe154d3c228f 100644 --- a/test/parallel/test-crypto-engine.js +++ b/test/parallel/test-crypto-engine.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-fips.js b/test/parallel/test-crypto-fips.js index a83170c49ae4b1..f1d81f078bd51f 100644 --- a/test/parallel/test-crypto-fips.js +++ b/test/parallel/test-crypto-fips.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawnSync = require('child_process').spawnSync; const path = require('path'); -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const FIPS_ENABLED = 1; const FIPS_DISABLED = 0; const FIPS_ERROR_STRING = 'Error: Cannot set FIPS mode'; diff --git a/test/parallel/test-crypto-from-binary.js b/test/parallel/test-crypto-from-binary.js index 785fff4388b43b..ed1be9b3157229 100644 --- a/test/parallel/test-crypto-from-binary.js +++ b/test/parallel/test-crypto-from-binary.js @@ -25,12 +25,10 @@ const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const EXTERN_APEX = 0xFBEE9; diff --git a/test/parallel/test-crypto-hash-stream-pipe.js b/test/parallel/test-crypto-hash-stream-pipe.js index ee152dc028e2a4..0a240a2abbc7ef 100644 --- a/test/parallel/test-crypto-hash-stream-pipe.js +++ b/test/parallel/test-crypto-hash-stream-pipe.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-hash.js b/test/parallel/test-crypto-hash.js index 28f0f2f30349ba..f76e4f98c851bb 100644 --- a/test/parallel/test-crypto-hash.js +++ b/test/parallel/test-crypto-hash.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Test hashing diff --git a/test/parallel/test-crypto-hmac.js b/test/parallel/test-crypto-hmac.js index 94c5cefa058d02..a10e8a731be023 100644 --- a/test/parallel/test-crypto-hmac.js +++ b/test/parallel/test-crypto-hmac.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); // Test for binding layer robustness diff --git a/test/parallel/test-crypto-lazy-transform-writable.js b/test/parallel/test-crypto-lazy-transform-writable.js index 9008ebc5f910a6..f12243b9f4d17c 100644 --- a/test/parallel/test-crypto-lazy-transform-writable.js +++ b/test/parallel/test-crypto-lazy-transform-writable.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const crypto = require('crypto'); const Stream = require('stream'); diff --git a/test/parallel/test-crypto-padding-aes256.js b/test/parallel/test-crypto-padding-aes256.js index 3e17a3fc3e5fc5..9fb80f3eed7856 100644 --- a/test/parallel/test-crypto-padding-aes256.js +++ b/test/parallel/test-crypto-padding-aes256.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-padding.js b/test/parallel/test-crypto-padding.js index 095f1ba407caff..6ad504d12c2ced 100644 --- a/test/parallel/test-crypto-padding.js +++ b/test/parallel/test-crypto-padding.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); crypto.DEFAULT_ENCODING = 'buffer'; diff --git a/test/parallel/test-crypto-pbkdf2.js b/test/parallel/test-crypto-pbkdf2.js index 9ed719c1f68358..f8f428652506fe 100644 --- a/test/parallel/test-crypto-pbkdf2.js +++ b/test/parallel/test-crypto-pbkdf2.js @@ -1,10 +1,7 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-random.js b/test/parallel/test-crypto-random.js index c60e3b2681e118..eec6f00b5426e0 100644 --- a/test/parallel/test-crypto-random.js +++ b/test/parallel/test-crypto-random.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-crypto-rsa-dsa.js b/test/parallel/test-crypto-rsa-dsa.js index daa818705b8488..813df587325ba5 100644 --- a/test/parallel/test-crypto-rsa-dsa.js +++ b/test/parallel/test-crypto-rsa-dsa.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} -const constants = require('crypto').constants; const crypto = require('crypto'); +const constants = crypto.constants; const fixtDir = common.fixturesDir; // Test certificates diff --git a/test/parallel/test-crypto-sign-verify.js b/test/parallel/test-crypto-sign-verify.js index 2a64b6d072485b..5d19917c488f80 100644 --- a/test/parallel/test-crypto-sign-verify.js +++ b/test/parallel/test-crypto-sign-verify.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); const exec = require('child_process').exec; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Test certificates @@ -245,10 +243,8 @@ const modSize = 1024; // RSA-PSS Sign test by verifying with 'openssl dgst -verify' { - if (!common.opensslCli) { + if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; - } const pubfile = path.join(common.fixturesDir, 'keys/rsa_public_2048.pem'); const privfile = path.join(common.fixturesDir, 'keys/rsa_private_2048.pem'); diff --git a/test/parallel/test-crypto-stream.js b/test/parallel/test-crypto-stream.js index e40b36847b5602..1c3b8bbcbb1c41 100644 --- a/test/parallel/test-crypto-stream.js +++ b/test/parallel/test-crypto-stream.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const stream = require('stream'); const util = require('util'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const crypto = require('crypto'); // Small stream to buffer converter diff --git a/test/parallel/test-crypto-verify-failure.js b/test/parallel/test-crypto-verify-failure.js index 1b3622fe01eea8..4bd70f388d878f 100644 --- a/test/parallel/test-crypto-verify-failure.js +++ b/test/parallel/test-crypto-verify-failure.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const crypto = require('crypto'); const tls = require('tls'); diff --git a/test/parallel/test-crypto.js b/test/parallel/test-crypto.js index a7638d3cd899a1..d45de9979b96ec 100644 --- a/test/parallel/test-crypto.js +++ b/test/parallel/test-crypto.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-cwd-enoent-preload.js b/test/parallel/test-cwd-enoent-preload.js index 5d44814d2fe430..8979547c0dea94 100644 --- a/test/parallel/test-cwd-enoent-preload.js +++ b/test/parallel/test-cwd-enoent-preload.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; const abspathFile = require('path').join(common.fixturesDir, 'a.js'); common.refreshTmpDir(); diff --git a/test/parallel/test-cwd-enoent-repl.js b/test/parallel/test-cwd-enoent-repl.js index c82083668aab43..bb41b1fccd8bf6 100644 --- a/test/parallel/test-cwd-enoent-repl.js +++ b/test/parallel/test-cwd-enoent-repl.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; common.refreshTmpDir(); fs.mkdirSync(dirname); diff --git a/test/parallel/test-cwd-enoent.js b/test/parallel/test-cwd-enoent.js index dac23e4084aaf5..27df46acf89ea4 100644 --- a/test/parallel/test-cwd-enoent.js +++ b/test/parallel/test-cwd-enoent.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. +if (common.isSunOS || common.isWindows || common.isAix) + common.skip('cannot rmdir current working directory'); + const assert = require('assert'); const fs = require('fs'); const spawn = require('child_process').spawn; -// Fails with EINVAL on SmartOS, EBUSY on Windows, EBUSY on AIX. -if (common.isSunOS || common.isWindows || common.isAix) { - common.skip('cannot rmdir current working directory'); - return; -} - const dirname = `${common.tmpDir}/cwd-does-not-exist-${process.pid}`; common.refreshTmpDir(); fs.mkdirSync(dirname); diff --git a/test/parallel/test-debug-usage.js b/test/parallel/test-debug-usage.js index e01ac8e15b8993..a264029f434a5a 100644 --- a/test/parallel/test-debug-usage.js +++ b/test/parallel/test-debug-usage.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawn = require('child_process').spawn; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const child = spawn(process.execPath, ['debug']); child.stderr.setEncoding('utf8'); diff --git a/test/parallel/test-dgram-bind-default-address.js b/test/parallel/test-dgram-bind-default-address.js index d0b5b6023445ca..762ead7c869e8d 100755 --- a/test/parallel/test-dgram-bind-default-address.js +++ b/test/parallel/test-dgram-bind-default-address.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const dgram = require('dgram'); - // skip test in FreeBSD jails since 0.0.0.0 will resolve to default interface -if (common.inFreeBSDJail) { +if (common.inFreeBSDJail) common.skip('In a FreeBSD jail'); - return; -} + +const assert = require('assert'); +const dgram = require('dgram'); dgram.createSocket('udp4').bind(0, common.mustCall(function() { assert.strictEqual(typeof this.address().port, 'number'); @@ -39,7 +37,7 @@ dgram.createSocket('udp4').bind(0, common.mustCall(function() { })); if (!common.hasIPv6) { - common.skip('udp6 part of test, because no IPv6 support'); + common.printSkipMessage('udp6 part of test, because no IPv6 support'); return; } diff --git a/test/parallel/test-dgram-cluster-close-during-bind.js b/test/parallel/test-dgram-cluster-close-during-bind.js index ec62693abfb645..4e8cdbf9d35cbb 100644 --- a/test/parallel/test-dgram-cluster-close-during-bind.js +++ b/test/parallel/test-dgram-cluster-close-during-bind.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('dgram clustering is currently not supported on windows.'); + const assert = require('assert'); const cluster = require('cluster'); const dgram = require('dgram'); -if (common.isWindows) { - common.skip('dgram clustering is currently not supported on windows.'); - return; -} - if (cluster.isMaster) { cluster.fork(); } else { diff --git a/test/parallel/test-dgram-send-empty-array.js b/test/parallel/test-dgram-send-empty-array.js index 1bfcacd9a40497..e6a391de945d07 100644 --- a/test/parallel/test-dgram-send-empty-array.js +++ b/test/parallel/test-dgram-send-empty-array.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} const assert = require('assert'); const dgram = require('dgram'); diff --git a/test/parallel/test-dgram-send-empty-buffer.js b/test/parallel/test-dgram-send-empty-buffer.js index 16c14909f62dff..554a3c9185c852 100644 --- a/test/parallel/test-dgram-send-empty-buffer.js +++ b/test/parallel/test-dgram-send-empty-buffer.js @@ -21,13 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} +const assert = require('assert'); const dgram = require('dgram'); const client = dgram.createSocket('udp4'); diff --git a/test/parallel/test-dgram-send-empty-packet.js b/test/parallel/test-dgram-send-empty-packet.js index 131e808aec0b72..b425e9eb1582cb 100644 --- a/test/parallel/test-dgram-send-empty-packet.js +++ b/test/parallel/test-dgram-send-empty-packet.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isOSX) { +if (common.isOSX) common.skip('because of 17894467 Apple bug'); - return; -} +const assert = require('assert'); const dgram = require('dgram'); const client = dgram.createSocket('udp4'); diff --git a/test/parallel/test-dgram-udp6-send-default-host.js b/test/parallel/test-dgram-udp6-send-default-host.js index e893f248ecd87b..d801ca7e8dcd08 100644 --- a/test/parallel/test-dgram-udp6-send-default-host.js +++ b/test/parallel/test-dgram-udp6-send-default-host.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('no IPv6 support'); + const assert = require('assert'); const dgram = require('dgram'); -if (!common.hasIPv6) { - common.skip('no IPv6 support'); - return; -} - const client = dgram.createSocket('udp6'); const toSend = [Buffer.alloc(256, 'x'), diff --git a/test/parallel/test-dh-padding.js b/test/parallel/test-dh-padding.js index 6853533ee4e4a3..311b9d156ff174 100644 --- a/test/parallel/test-dh-padding.js +++ b/test/parallel/test-dh-padding.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without OpenSSL.'); - return; -} const assert = require('assert'); const crypto = require('crypto'); diff --git a/test/parallel/test-domain-crypto.js b/test/parallel/test-domain-crypto.js index d0bdbf4720b913..3890a7b4641ade 100644 --- a/test/parallel/test-domain-crypto.js +++ b/test/parallel/test-domain-crypto.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without OpenSSL.'); - return; -} const crypto = require('crypto'); diff --git a/test/parallel/test-dsa-fips-invalid-key.js b/test/parallel/test-dsa-fips-invalid-key.js index b22be9d077922b..b88c05a87cbf85 100644 --- a/test/parallel/test-dsa-fips-invalid-key.js +++ b/test/parallel/test-dsa-fips-invalid-key.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasFipsCrypto) { +if (!common.hasFipsCrypto) common.skip('node compiled without FIPS OpenSSL.'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); const fs = require('fs'); diff --git a/test/parallel/test-fs-long-path.js b/test/parallel/test-fs-long-path.js index b8aa6a2ac871a1..ae60b16f1a3f97 100644 --- a/test/parallel/test-fs-long-path.js +++ b/test/parallel/test-fs-long-path.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('this test is Windows-specific.'); + const fs = require('fs'); const path = require('path'); const assert = require('assert'); -if (!common.isWindows) { - common.skip('this test is Windows-specific.'); - return; -} - // make a path that will be at least 260 chars long. const fileNameLen = Math.max(260 - common.tmpDir.length - 1, 1); const fileName = path.join(common.tmpDir, 'x'.repeat(fileNameLen)); diff --git a/test/parallel/test-fs-read-file-sync-hostname.js b/test/parallel/test-fs-read-file-sync-hostname.js index f7a03e552478a4..599f48b6ccfcfe 100644 --- a/test/parallel/test-fs-read-file-sync-hostname.js +++ b/test/parallel/test-fs-read-file-sync-hostname.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.isLinux) + common.skip('Test is linux specific.'); + const assert = require('assert'); const fs = require('fs'); -if (!common.isLinux) { - common.skip('Test is linux specific.'); - return; -} - // Test to make sure reading a file under the /proc directory works. See: // https://groups.google.com/forum/#!topic/nodejs-dev/rxZ_RoH1Gn0 const hostname = fs.readFileSync('/proc/sys/kernel/hostname'); diff --git a/test/parallel/test-fs-readdir-ucs2.js b/test/parallel/test-fs-readdir-ucs2.js index 4d5f53abd8ead9..e8e69d6ee2fcc7 100644 --- a/test/parallel/test-fs-readdir-ucs2.js +++ b/test/parallel/test-fs-readdir-ucs2.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.isLinux) + common.skip('Test is linux specific.'); + const path = require('path'); const fs = require('fs'); const assert = require('assert'); -if (!common.isLinux) { - common.skip('Test is linux specific.'); - return; -} - common.refreshTmpDir(); const filename = '\uD83D\uDC04'; const root = Buffer.from(`${common.tmpDir}${path.sep}`); diff --git a/test/parallel/test-fs-readfile-error.js b/test/parallel/test-fs-readfile-error.js index 208b478c12abee..d9ad834afcdc29 100644 --- a/test/parallel/test-fs-readfile-error.js +++ b/test/parallel/test-fs-readfile-error.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const exec = require('child_process').exec; -const path = require('path'); - // `fs.readFile('/')` does not fail on FreeBSD, because you can open and read // the directory there. -if (common.isFreeBSD) { +if (common.isFreeBSD) common.skip('platform not supported.'); - return; -} + +const assert = require('assert'); +const exec = require('child_process').exec; +const path = require('path'); function test(env, cb) { const filename = path.join(common.fixturesDir, 'test-fs-readfile-error.js'); diff --git a/test/parallel/test-fs-readfile-pipe-large.js b/test/parallel/test-fs-readfile-pipe-large.js index f0d1dd9c408610..46603b14fa0a56 100644 --- a/test/parallel/test-fs-readfile-pipe-large.js +++ b/test/parallel/test-fs-readfile-pipe-large.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const path = require('path'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); +const path = require('path'); const fs = require('fs'); if (process.argv[2] === 'child') { diff --git a/test/parallel/test-fs-readfile-pipe.js b/test/parallel/test-fs-readfile-pipe.js index 10fc6a925af47a..e15c2c10476c66 100644 --- a/test/parallel/test-fs-readfile-pipe.js +++ b/test/parallel/test-fs-readfile-pipe.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); const fs = require('fs'); const dataExpected = fs.readFileSync(__filename, 'utf8'); diff --git a/test/parallel/test-fs-readfilesync-pipe-large.js b/test/parallel/test-fs-readfilesync-pipe-large.js index 01e41047774c9b..daa53bf3de0cc3 100644 --- a/test/parallel/test-fs-readfilesync-pipe-large.js +++ b/test/parallel/test-fs-readfilesync-pipe-large.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const path = require('path'); // simulate `cat readfile.js | node readfile.js` -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} +const assert = require('assert'); +const path = require('path'); const fs = require('fs'); if (process.argv[2] === 'child') { diff --git a/test/parallel/test-fs-realpath-on-substed-drive.js b/test/parallel/test-fs-realpath-on-substed-drive.js index f8d9e86de5e618..a3d38d9f279707 100644 --- a/test/parallel/test-fs-realpath-on-substed-drive.js +++ b/test/parallel/test-fs-realpath-on-substed-drive.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('Test for Windows only'); + const assert = require('assert'); const fs = require('fs'); const spawnSync = require('child_process').spawnSync; -if (!common.isWindows) { - common.skip('Test for Windows only'); - return; -} let result; // create a subst drive @@ -21,10 +20,8 @@ for (i = 0; i < driveLetters.length; ++i) { if (result.status === 0) break; } -if (i === driveLetters.length) { +if (i === driveLetters.length) common.skip('Cannot create subst drive'); - return; -} // schedule cleanup (and check if all callbacks where called) process.on('exit', function() { diff --git a/test/parallel/test-fs-realpath-pipe.js b/test/parallel/test-fs-realpath-pipe.js index 89bdc08229a9c3..0f30b07f0a9bf1 100644 --- a/test/parallel/test-fs-realpath-pipe.js +++ b/test/parallel/test-fs-realpath-pipe.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (common.isWindows || common.isAix) { +if (common.isWindows || common.isAix) common.skip(`No /dev/stdin on ${process.platform}.`); - return; -} const assert = require('assert'); diff --git a/test/parallel/test-fs-realpath.js b/test/parallel/test-fs-realpath.js index 1c9f7a7d90e2c0..a9ec65168d0cce 100644 --- a/test/parallel/test-fs-realpath.js +++ b/test/parallel/test-fs-realpath.js @@ -103,7 +103,7 @@ function test_simple_error_callback(cb) { function test_simple_relative_symlink(callback) { console.log('test_simple_relative_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const entry = `${tmpDir}/symlink`; @@ -152,7 +152,7 @@ function test_simple_absolute_symlink(callback) { function test_deep_relative_file_symlink(callback) { console.log('test_deep_relative_file_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -182,7 +182,7 @@ function test_deep_relative_file_symlink(callback) { function test_deep_relative_dir_symlink(callback) { console.log('test_deep_relative_dir_symlink'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const expected = path.join(common.fixturesDir, 'cycles', 'folder'); @@ -210,7 +210,7 @@ function test_deep_relative_dir_symlink(callback) { function test_cyclic_link_protection(callback) { console.log('test_cyclic_link_protection'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const entry = path.join(tmpDir, '/cycles/realpath-3a'); @@ -237,7 +237,7 @@ function test_cyclic_link_protection(callback) { function test_cyclic_link_overprotection(callback) { console.log('test_cyclic_link_overprotection'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } const cycles = `${tmpDir}/cycles`; @@ -258,7 +258,7 @@ function test_cyclic_link_overprotection(callback) { function test_relative_input_cwd(callback) { console.log('test_relative_input_cwd'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -297,7 +297,7 @@ function test_deep_symlink_mix(callback) { if (common.isWindows) { // This one is a mix of files and directories, and it's quite tricky // to get the file/dir links sorted out correctly. - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } @@ -384,7 +384,7 @@ assertEqualPath( function test_up_multiple(cb) { console.error('test_up_multiple'); if (skipSymlinks) { - common.skip('symlink test (no privs)'); + common.printSkipMessage('symlink test (no privs)'); return runNextTest(); } function cleanup() { diff --git a/test/parallel/test-fs-symlink.js b/test/parallel/test-fs-symlink.js index 2ceb4d10936a3f..9e19958b628749 100644 --- a/test/parallel/test-fs-symlink.js +++ b/test/parallel/test-fs-symlink.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (!common.canCreateSymLink()) + common.skip('insufficient privileges'); + const assert = require('assert'); const path = require('path'); const fs = require('fs'); @@ -28,11 +31,6 @@ const fs = require('fs'); let linkTime; let fileTime; -if (!common.canCreateSymLink()) { - common.skip('insufficient privileges'); - return; -} - common.refreshTmpDir(); // test creating and reading symbolic link diff --git a/test/parallel/test-fs-watch-encoding.js b/test/parallel/test-fs-watch-encoding.js index 04f5ffaad97a97..b9488f7a7f8421 100644 --- a/test/parallel/test-fs-watch-encoding.js +++ b/test/parallel/test-fs-watch-encoding.js @@ -11,17 +11,16 @@ // On SmartOS, the watch events fire but the filename is null. const common = require('../common'); -const fs = require('fs'); -const path = require('path'); // fs-watch on folders have limited capability in AIX. // The testcase makes use of folder watching, and causes // hang. This behavior is documented. Skip this for AIX. -if (common.isAix) { +if (common.isAix) common.skip('folder watch capability is limited in AIX.'); - return; -} + +const fs = require('fs'); +const path = require('path'); common.refreshTmpDir(); diff --git a/test/parallel/test-fs-watch-recursive.js b/test/parallel/test-fs-watch-recursive.js index 5fb13623dff543..8e27abb2517692 100644 --- a/test/parallel/test-fs-watch-recursive.js +++ b/test/parallel/test-fs-watch-recursive.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!(common.isOSX || common.isWindows)) { +if (!(common.isOSX || common.isWindows)) common.skip('recursive option is darwin/windows specific'); - return; -} const assert = require('assert'); const path = require('path'); diff --git a/test/parallel/test-http-chunk-problem.js b/test/parallel/test-http-chunk-problem.js index 822aab804f036d..46a7406e74595a 100644 --- a/test/parallel/test-http-chunk-problem.js +++ b/test/parallel/test-http-chunk-problem.js @@ -1,11 +1,10 @@ 'use strict'; // http://groups.google.com/group/nodejs/browse_thread/thread/f66cd3c960406919 const common = require('../common'); -const assert = require('assert'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); if (process.argv[2] === 'request') { const http = require('http'); diff --git a/test/parallel/test-http-default-port.js b/test/parallel/test-http-default-port.js index d53c69c1b0d607..beae62d3998e50 100644 --- a/test/parallel/test-http-default-port.js +++ b/test/parallel/test-http-default-port.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const http = require('http'); const https = require('https'); diff --git a/test/parallel/test-http-dns-error.js b/test/parallel/test-http-dns-error.js index 4a724b0b41a056..76634c5a830a72 100644 --- a/test/parallel/test-http-dns-error.js +++ b/test/parallel/test-http-dns-error.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const http = require('http'); @@ -57,7 +55,7 @@ function test(mod) { if (common.hasCrypto) { test(https); } else { - common.skip('missing crypto'); + common.printSkipMessage('missing crypto'); } test(http); diff --git a/test/parallel/test-http-full-response.js b/test/parallel/test-http-full-response.js index dc52a5bc2f1b6d..42213432090355 100644 --- a/test/parallel/test-http-full-response.js +++ b/test/parallel/test-http-full-response.js @@ -43,7 +43,7 @@ function runAb(opts, callback) { exec(command, function(err, stdout, stderr) { if (err) { if (/ab|apr/i.test(stderr)) { - common.skip(`problem spawning \`ab\`.\n${stderr}`); + common.printSkipMessage(`problem spawning \`ab\`.\n${stderr}`); process.reallyExit(0); } process.exit(); diff --git a/test/parallel/test-http-invalid-urls.js b/test/parallel/test-http-invalid-urls.js index 65cca822f9b2a5..039270fe430108 100644 --- a/test/parallel/test-http-invalid-urls.js +++ b/test/parallel/test-http-invalid-urls.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const http = require('http'); diff --git a/test/parallel/test-http-localaddress.js b/test/parallel/test-http-localaddress.js index 35f2c15f8d9138..0ed048688eefae 100644 --- a/test/parallel/test-http-localaddress.js +++ b/test/parallel/test-http-localaddress.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasMultiLocalhost()) + common.skip('platform-specific test.'); + const http = require('http'); const assert = require('assert'); -if (!common.hasMultiLocalhost()) { - common.skip('platform-specific test.'); - return; -} - const server = http.createServer(function(req, res) { console.log(`Connect from: ${req.connection.remoteAddress}`); assert.strictEqual('127.0.0.2', req.connection.remoteAddress); diff --git a/test/parallel/test-http-url.parse-https.request.js b/test/parallel/test-http-url.parse-https.request.js index 5c625cf4475fe0..b644e7530ff828 100644 --- a/test/parallel/test-http-url.parse-https.request.js +++ b/test/parallel/test-http-url.parse-https.request.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const url = require('url'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-constructor.js b/test/parallel/test-https-agent-constructor.js index fe77381c858c8e..29bb9eaa98067d 100644 --- a/test/parallel/test-https-agent-constructor.js +++ b/test/parallel/test-https-agent-constructor.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-create-connection.js b/test/parallel/test-https-agent-create-connection.js index a1f0c4ace4cab6..267030232dcf9b 100644 --- a/test/parallel/test-https-agent-create-connection.js +++ b/test/parallel/test-https-agent-create-connection.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-disable-session-reuse.js b/test/parallel/test-https-agent-disable-session-reuse.js index 0331cd4e283c17..4f92547e999ac2 100644 --- a/test/parallel/test-https-agent-disable-session-reuse.js +++ b/test/parallel/test-https-agent-disable-session-reuse.js @@ -1,18 +1,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} - -const TOTAL_REQS = 2; +const assert = require('assert'); const https = require('https'); - const fs = require('fs'); +const TOTAL_REQS = 2; + const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent1-cert.pem`) diff --git a/test/parallel/test-https-agent-getname.js b/test/parallel/test-https-agent-getname.js index 9b4f29602b79c6..0986f8472de871 100644 --- a/test/parallel/test-https-agent-getname.js +++ b/test/parallel/test-https-agent-getname.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-secure-protocol.js b/test/parallel/test-https-agent-secure-protocol.js index c11d9f8ca870e7..4839dd7c460d6a 100644 --- a/test/parallel/test-https-agent-secure-protocol.js +++ b/test/parallel/test-https-agent-secure-protocol.js @@ -1,12 +1,9 @@ 'use strict'; -const assert = require('assert'); const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-servername.js b/test/parallel/test-https-agent-servername.js index 8562d021c997ad..625fa45c7c1d67 100644 --- a/test/parallel/test-https-agent-servername.js +++ b/test/parallel/test-https-agent-servername.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-agent-session-eviction.js b/test/parallel/test-https-agent-session-eviction.js index acead806ed066e..567ed809e646c3 100644 --- a/test/parallel/test-https-agent-session-eviction.js +++ b/test/parallel/test-https-agent-session-eviction.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-agent-session-reuse.js b/test/parallel/test-https-agent-session-reuse.js index a9977d8ce9a915..f850144eaab169 100644 --- a/test/parallel/test-https-agent-session-reuse.js +++ b/test/parallel/test-https-agent-session-reuse.js @@ -2,10 +2,8 @@ const common = require('../common'); const assert = require('assert'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const https = require('https'); const crypto = require('crypto'); diff --git a/test/parallel/test-https-agent-sni.js b/test/parallel/test-https-agent-sni.js index fb7bee16ec004a..a06ce439fa43d9 100644 --- a/test/parallel/test-https-agent-sni.js +++ b/test/parallel/test-https-agent-sni.js @@ -1,13 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-agent-sockets-leak.js b/test/parallel/test-https-agent-sockets-leak.js index bc86b9c24128b3..2fc477c0b33c7b 100644 --- a/test/parallel/test-https-agent-sockets-leak.js +++ b/test/parallel/test-https-agent-sockets-leak.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const https = require('https'); diff --git a/test/parallel/test-https-agent.js b/test/parallel/test-https-agent.js index add9913358fe43..e2e71cd31a769c 100644 --- a/test/parallel/test-https-agent.js +++ b/test/parallel/test-https-agent.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-argument-of-creating.js b/test/parallel/test-https-argument-of-creating.js index 87d934316f887c..5a4150eb1cca6d 100644 --- a/test/parallel/test-https-argument-of-creating.js +++ b/test/parallel/test-https-argument-of-creating.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-byteswritten.js b/test/parallel/test-https-byteswritten.js index cad824c5fed5f7..8f4d761c02b7d4 100644 --- a/test/parallel/test-https-byteswritten.js +++ b/test/parallel/test-https-byteswritten.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-client-checkServerIdentity.js b/test/parallel/test-https-client-checkServerIdentity.js index a70af2c42946b6..9842fc1f357eb0 100644 --- a/test/parallel/test-https-client-checkServerIdentity.js +++ b/test/parallel/test-https-client-checkServerIdentity.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-client-get-url.js b/test/parallel/test-https-client-get-url.js index 05a3824637a3e1..f0e919ca648b05 100644 --- a/test/parallel/test-https-client-get-url.js +++ b/test/parallel/test-https-client-get-url.js @@ -21,19 +21,17 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const assert = require('assert'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const url = require('url'); + const URL = url.URL; const options = { diff --git a/test/parallel/test-https-client-reject.js b/test/parallel/test-https-client-reject.js index 95c3ca1a3b8ac6..82a7851e4e11a6 100644 --- a/test/parallel/test-https-client-reject.js +++ b/test/parallel/test-https-client-reject.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-client-resume.js b/test/parallel/test-https-client-resume.js index 95e1da56d0c46a..d61d91964b0eec 100644 --- a/test/parallel/test-https-client-resume.js +++ b/test/parallel/test-https-client-resume.js @@ -24,14 +24,11 @@ // Cache session and close connection. Use session on second connection. // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-https-close.js b/test/parallel/test-https-close.js index e32e25314746cb..6b22192e99a5b7 100644 --- a/test/parallel/test-https-close.js +++ b/test/parallel/test-https-close.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const fs = require('fs'); const https = require('https'); const options = { diff --git a/test/parallel/test-https-connect-address-family.js b/test/parallel/test-https-connect-address-family.js index e7f41ce861cb27..76a12ef5d5dc0e 100644 --- a/test/parallel/test-https-connect-address-family.js +++ b/test/parallel/test-https-connect-address-family.js @@ -1,14 +1,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('no IPv6 support'); - return; -} const assert = require('assert'); const https = require('https'); @@ -37,10 +33,9 @@ function runTest() { dns.lookup('localhost', {family: 6, all: true}, (err, addresses) => { if (err) { - if (err.code === 'ENOTFOUND') { + if (err.code === 'ENOTFOUND') common.skip('localhost does not resolve to ::1'); - return; - } + throw err; } diff --git a/test/parallel/test-https-connecting-to-http.js b/test/parallel/test-https-connecting-to-http.js index 168be7c2d984e8..195ad38ed44a31 100644 --- a/test/parallel/test-https-connecting-to-http.js +++ b/test/parallel/test-https-connecting-to-http.js @@ -23,14 +23,11 @@ // This tests the situation where you try to connect a https client // to an http server. You should get an error and exit. const common = require('../common'); -const http = require('http'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const http = require('http'); +const https = require('https'); const server = http.createServer(common.mustNotCall()); server.listen(0, common.mustCall(function() { diff --git a/test/parallel/test-https-drain.js b/test/parallel/test-https-drain.js index ed0a11ae832a43..f9316a261b9877 100644 --- a/test/parallel/test-https-drain.js +++ b/test/parallel/test-https-drain.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-eof-for-eom.js b/test/parallel/test-https-eof-for-eom.js index 3300dabb54aa7b..3c724fe6342dfc 100644 --- a/test/parallel/test-https-eof-for-eom.js +++ b/test/parallel/test-https-eof-for-eom.js @@ -29,15 +29,12 @@ // correctly. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const https = require('https'); const tls = require('tls'); - const fs = require('fs'); const options = { diff --git a/test/parallel/test-https-foafssl.js b/test/parallel/test-https-foafssl.js index 9900cf7a643c10..d8beefc22b252f 100644 --- a/test/parallel/test-https-foafssl.js +++ b/test/parallel/test-https-foafssl.js @@ -21,22 +21,16 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} const assert = require('assert'); const join = require('path').join; - const fs = require('fs'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-host-headers.js b/test/parallel/test-https-host-headers.js index adb8952871ca54..1181d300bf29b8 100644 --- a/test/parallel/test-https-host-headers.js +++ b/test/parallel/test-https-host-headers.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); + const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent1-cert.pem`) diff --git a/test/parallel/test-https-localaddress-bind-error.js b/test/parallel/test-https-localaddress-bind-error.js index 0b046cfa85c52b..a22db1e9e61594 100644 --- a/test/parallel/test-https-localaddress-bind-error.js +++ b/test/parallel/test-https-localaddress-bind-error.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/parallel/test-https-localaddress.js b/test/parallel/test-https-localaddress.js index bcd1d6fdbd71e6..1c5669be30c1fa 100644 --- a/test/parallel/test-https-localaddress.js +++ b/test/parallel/test-https-localaddress.js @@ -21,19 +21,15 @@ 'use strict'; const common = require('../common'); -const fs = require('fs'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); -if (!common.hasMultiLocalhost()) { +if (!common.hasMultiLocalhost()) common.skip('platform-specific test.'); - return; -} + +const fs = require('fs'); +const assert = require('assert'); +const https = require('https'); const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`), diff --git a/test/parallel/test-https-pfx.js b/test/parallel/test-https-pfx.js index 9d7a1d888cef10..d7561f74246286 100644 --- a/test/parallel/test-https-pfx.js +++ b/test/parallel/test-https-pfx.js @@ -21,13 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const pfx = fs.readFileSync(`${common.fixturesDir}/test_cert.pfx`); diff --git a/test/parallel/test-https-req-split.js b/test/parallel/test-https-req-split.js index 0abd74be61720e..d0306cb714fb71 100644 --- a/test/parallel/test-https-req-split.js +++ b/test/parallel/test-https-req-split.js @@ -21,13 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const tls = require('tls'); diff --git a/test/parallel/test-https-resume-after-renew.js b/test/parallel/test-https-resume-after-renew.js index c9e208ab97141f..eb319230371342 100644 --- a/test/parallel/test-https-resume-after-renew.js +++ b/test/parallel/test-https-resume-after-renew.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const https = require('https'); diff --git a/test/parallel/test-https-server-keep-alive-timeout.js b/test/parallel/test-https-server-keep-alive-timeout.js index d1e9ed67889ac6..01d0fa6078b021 100644 --- a/test/parallel/test-https-server-keep-alive-timeout.js +++ b/test/parallel/test-https-server-keep-alive-timeout.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); const tls = require('tls'); diff --git a/test/parallel/test-https-simple.js b/test/parallel/test-https-simple.js index 3ad2806f6afa59..b79d1b943f355b 100644 --- a/test/parallel/test-https-simple.js +++ b/test/parallel/test-https-simple.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-socket-options.js b/test/parallel/test-https-socket-options.js index 3718d3809cc9b9..75c5f51bb0c80a 100644 --- a/test/parallel/test-https-socket-options.js +++ b/test/parallel/test-https-socket-options.js @@ -22,14 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const https = require('https'); const fs = require('fs'); - const http = require('http'); const options = { diff --git a/test/parallel/test-https-strict.js b/test/parallel/test-https-strict.js index f28164a322a88a..060151332d2768 100644 --- a/test/parallel/test-https-strict.js +++ b/test/parallel/test-https-strict.js @@ -21,17 +21,14 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + // disable strict server certificate validation by the client process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const assert = require('assert'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-https-timeout-server-2.js b/test/parallel/test-https-timeout-server-2.js index 08144f108b2a99..269c06569f6ba7 100644 --- a/test/parallel/test-https-timeout-server-2.js +++ b/test/parallel/test-https-timeout-server-2.js @@ -22,14 +22,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-https-timeout-server.js b/test/parallel/test-https-timeout-server.js index 7d33e552115c2a..17218ba8055f99 100644 --- a/test/parallel/test-https-timeout-server.js +++ b/test/parallel/test-https-timeout-server.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-timeout.js b/test/parallel/test-https-timeout.js index e75a8566e429df..ad1fcb3ed232e4 100644 --- a/test/parallel/test-https-timeout.js +++ b/test/parallel/test-https-timeout.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-https-truncate.js b/test/parallel/test-https-truncate.js index d15efc9abce3a3..dcefcca104ef36 100644 --- a/test/parallel/test-https-truncate.js +++ b/test/parallel/test-https-truncate.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-https-unix-socket-self-signed.js b/test/parallel/test-https-unix-socket-self-signed.js index f503b84591cad7..df6773f8390675 100644 --- a/test/parallel/test-https-unix-socket-self-signed.js +++ b/test/parallel/test-https-unix-socket-self-signed.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} common.refreshTmpDir(); diff --git a/test/parallel/test-icu-data-dir.js b/test/parallel/test-icu-data-dir.js index 5619d934020ace..eb9b07e3a49275 100644 --- a/test/parallel/test-icu-data-dir.js +++ b/test/parallel/test-icu-data-dir.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!(common.hasIntl && common.hasSmallICU)) { +if (!(common.hasIntl && common.hasSmallICU)) common.skip('missing Intl'); - return; -} + const assert = require('assert'); const { spawnSync } = require('child_process'); diff --git a/test/parallel/test-icu-punycode.js b/test/parallel/test-icu-punycode.js index 9488568267a140..7abcae461774c0 100644 --- a/test/parallel/test-icu-punycode.js +++ b/test/parallel/test-icu-punycode.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const icu = process.binding('icu'); const assert = require('assert'); diff --git a/test/parallel/test-icu-stringwidth.js b/test/parallel/test-icu-stringwidth.js index 7c8c2e948e0eba..3c8021049c3413 100644 --- a/test/parallel/test-icu-stringwidth.js +++ b/test/parallel/test-icu-stringwidth.js @@ -2,10 +2,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const assert = require('assert'); const readline = require('internal/readline'); diff --git a/test/parallel/test-icu-transcode.js b/test/parallel/test-icu-transcode.js index 1c77427b1545bc..d7794c30b7ac25 100644 --- a/test/parallel/test-icu-transcode.js +++ b/test/parallel/test-icu-transcode.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const buffer = require('buffer'); const assert = require('assert'); diff --git a/test/parallel/test-inspector-open.js b/test/parallel/test-inspector-open.js index bc7d15a554aa06..346393d6fac646 100644 --- a/test/parallel/test-inspector-open.js +++ b/test/parallel/test-inspector-open.js @@ -1,5 +1,6 @@ 'use strict'; const common = require('../common'); +common.skipIfInspectorDisabled(); // Test inspector open()/close()/url() API. It uses ephemeral ports so can be // run safely in parallel. @@ -9,8 +10,6 @@ const fork = require('child_process').fork; const net = require('net'); const url = require('url'); -common.skipIfInspectorDisabled(); - if (process.env.BE_CHILD) return beChild(); diff --git a/test/parallel/test-intl-v8BreakIterator.js b/test/parallel/test-intl-v8BreakIterator.js index 70f0f782bbc7e7..6e9c9dbe3a1bcb 100644 --- a/test/parallel/test-intl-v8BreakIterator.js +++ b/test/parallel/test-intl-v8BreakIterator.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl || Intl.v8BreakIterator === undefined) { - return common.skip('missing Intl'); -} +if (!common.hasIntl || Intl.v8BreakIterator === undefined) + common.skip('missing Intl'); const assert = require('assert'); const warning = 'Intl.v8BreakIterator is deprecated and will be removed soon.'; diff --git a/test/parallel/test-intl.js b/test/parallel/test-intl.js index 1e061d8f51dea5..ff9569774d0db4 100644 --- a/test/parallel/test-intl.js +++ b/test/parallel/test-intl.js @@ -52,7 +52,6 @@ if (!common.hasIntl) { `"Intl" object is NOT present but v8_enable_i18n_support is ${enablei18n}`; assert.strictEqual(enablei18n, 0, erMsg); common.skip('Intl tests because Intl object not present.'); - } else { const erMsg = `"Intl" object is present but v8_enable_i18n_support is ${ @@ -72,7 +71,7 @@ if (!common.hasIntl) { // If list is specified and doesn't contain 'en' then return. if (process.config.variables.icu_locales && !haveLocale('en')) { - common.skip( + common.printSkipMessage( 'detailed Intl tests because English is not listed as supported.'); // Smoke test. Does it format anything, or fail? console.log(`Date(0) formatted to: ${dtf.format(date0)}`); diff --git a/test/parallel/test-listen-fd-cluster.js b/test/parallel/test-listen-fd-cluster.js index 688083f2a893cc..4f74a5b22d6eb8 100644 --- a/test/parallel/test-listen-fd-cluster.js +++ b/test/parallel/test-listen-fd-cluster.js @@ -21,6 +21,9 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); @@ -28,11 +31,6 @@ const cluster = require('cluster'); console.error('Cluster listen fd test', process.argv[2] || 'runner'); -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - // Process relationship is: // // parent: the test main script diff --git a/test/parallel/test-listen-fd-detached-inherit.js b/test/parallel/test-listen-fd-detached-inherit.js index f3f33055ac7d7a..aad8d663c915c8 100644 --- a/test/parallel/test-listen-fd-detached-inherit.js +++ b/test/parallel/test-listen-fd-detached-inherit.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); case 'parent': return parent(); diff --git a/test/parallel/test-listen-fd-detached.js b/test/parallel/test-listen-fd-detached.js index 8a40cce56bced8..cc9cb6471e408b 100644 --- a/test/parallel/test-listen-fd-detached.js +++ b/test/parallel/test-listen-fd-detached.js @@ -21,16 +21,14 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); case 'parent': return parent(); diff --git a/test/parallel/test-listen-fd-server.js b/test/parallel/test-listen-fd-server.js index 3d238a8019a0d9..b21b5ee55d2e31 100644 --- a/test/parallel/test-listen-fd-server.js +++ b/test/parallel/test-listen-fd-server.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('This test is disabled on windows.'); + const assert = require('assert'); const http = require('http'); const net = require('net'); -if (common.isWindows) { - common.skip('This test is disabled on windows.'); - return; -} - switch (process.argv[2]) { case 'child': return child(); } diff --git a/test/parallel/test-module-circular-symlinks.js b/test/parallel/test-module-circular-symlinks.js index a04022c6564bbd..b5e04a9c622da8 100644 --- a/test/parallel/test-module-circular-symlinks.js +++ b/test/parallel/test-module-circular-symlinks.js @@ -50,7 +50,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('insufficient privileges for symlinks'); - return; } fs.writeFileSync(path.join(tmpDir, 'index.js'), diff --git a/test/parallel/test-module-symlinked-peer-modules.js b/test/parallel/test-module-symlinked-peer-modules.js index 83aca75ed197a8..5fe3169ee87382 100644 --- a/test/parallel/test-module-symlinked-peer-modules.js +++ b/test/parallel/test-module-symlinked-peer-modules.js @@ -46,7 +46,6 @@ try { } catch (err) { if (err.code !== 'EPERM') throw err; common.skip('insufficient privileges for symlinks'); - return; } fs.writeFileSync(path.join(moduleA, 'package.json'), diff --git a/test/parallel/test-net-access-byteswritten.js b/test/parallel/test-net-access-byteswritten.js index 5b734e7c6dc853..c928ab27c6d146 100644 --- a/test/parallel/test-net-access-byteswritten.js +++ b/test/parallel/test-net-access-byteswritten.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-net-connect-options-fd.js b/test/parallel/test-net-connect-options-fd.js index 9e3859f84314b8..68e63f0ba4cbc9 100644 --- a/test/parallel/test-net-connect-options-fd.js +++ b/test/parallel/test-net-connect-options-fd.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Does not support wrapping sockets with fd on Windows'); + const assert = require('assert'); const net = require('net'); const path = require('path'); const Pipe = process.binding('pipe_wrap').Pipe; -if (common.isWindows) { - common.skip('Does not support wrapping sockets with fd on Windows'); - return; -} - common.refreshTmpDir(); function testClients(getSocketOpt, getConnectOpt, getConnectCb) { diff --git a/test/parallel/test-net-connect-options-ipv6.js b/test/parallel/test-net-connect-options-ipv6.js index 6ac6c29e10fd08..29b07645c452d3 100644 --- a/test/parallel/test-net-connect-options-ipv6.js +++ b/test/parallel/test-net-connect-options-ipv6.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasIPv6) + common.skip('no IPv6 support'); + const assert = require('assert'); const net = require('net'); -if (!common.hasIPv6) { - common.skip('no IPv6 support'); - return; -} - const hosts = common.localIPv6Hosts; let hostIdx = 0; let host = hosts[hostIdx]; @@ -81,8 +79,8 @@ function tryConnect() { if (host) tryConnect(); else { - common.skip('no IPv6 localhost support'); server.close(); + common.skip('no IPv6 localhost support'); } return; } diff --git a/test/parallel/test-net-socket-local-address.js b/test/parallel/test-net-socket-local-address.js index 19749bde9552b6..c4f11db76bc4f2 100644 --- a/test/parallel/test-net-socket-local-address.js +++ b/test/parallel/test-net-socket-local-address.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const net = require('net'); - // skip test in FreeBSD jails -if (common.inFreeBSDJail) { +if (common.inFreeBSDJail) common.skip('In a FreeBSD jail'); - return; -} + +const assert = require('assert'); +const net = require('net'); let conns = 0; const clientLocalPorts = []; diff --git a/test/parallel/test-npm-install.js b/test/parallel/test-npm-install.js index 75e2c92d5a7937..1faa698b15fc22 100644 --- a/test/parallel/test-npm-install.js +++ b/test/parallel/test-npm-install.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const path = require('path'); const spawn = require('child_process').spawn; diff --git a/test/parallel/test-openssl-ca-options.js b/test/parallel/test-openssl-ca-options.js index 144a7dfe3d00e8..f8f777e2682584 100644 --- a/test/parallel/test-openssl-ca-options.js +++ b/test/parallel/test-openssl-ca-options.js @@ -2,10 +2,9 @@ // This test checks the usage of --use-bundled-ca and --use-openssl-ca arguments // to verify that both are not used at the same time. const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const os = require('os'); const childProcess = require('child_process'); diff --git a/test/parallel/test-pipe-writev.js b/test/parallel/test-pipe-writev.js index 6440b5f623761d..db95a4b181849f 100644 --- a/test/parallel/test-pipe-writev.js +++ b/test/parallel/test-pipe-writev.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Unix-specific test'); + const assert = require('assert'); const net = require('net'); -if (common.isWindows) { - common.skip('Unix-specific test'); - return; -} - common.refreshTmpDir(); const server = net.createServer((connection) => { diff --git a/test/parallel/test-preload.js b/test/parallel/test-preload.js index 9d24fbb3652fa6..a5f8a0c2765046 100644 --- a/test/parallel/test-preload.js +++ b/test/parallel/test-preload.js @@ -1,16 +1,14 @@ 'use strict'; const common = require('../common'); +// Refs: https://github.com/nodejs/node/pull/2253 +if (common.isSunOS) + common.skip('unreliable on SunOS'); + const assert = require('assert'); const path = require('path'); const childProcess = require('child_process'); -// Refs: https://github.com/nodejs/node/pull/2253 -if (common.isSunOS) { - common.skip('unreliable on SunOS'); - return; -} - const nodeBinary = process.argv[0]; const preloadOption = (preloads) => { diff --git a/test/parallel/test-process-execpath.js b/test/parallel/test-process-execpath.js index 5ac8a3f2238a7c..d70d1dfd389875 100644 --- a/test/parallel/test-process-execpath.js +++ b/test/parallel/test-process-execpath.js @@ -1,5 +1,8 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('symlinks are weird on windows'); + const assert = require('assert'); const child_process = require('child_process'); const path = require('path'); @@ -7,11 +10,6 @@ const fs = require('fs'); assert.strictEqual(process.execPath, fs.realpathSync(process.execPath)); -if (common.isWindows) { - common.skip('symlinks are weird on windows'); - return; -} - if (process.argv[2] === 'child') { // The console.log() output is part of the test here. console.log(process.execPath); diff --git a/test/parallel/test-process-getgroups.js b/test/parallel/test-process-getgroups.js index 952e0d95ef9d95..3479cf7028b28b 100644 --- a/test/parallel/test-process-getgroups.js +++ b/test/parallel/test-process-getgroups.js @@ -24,10 +24,9 @@ const common = require('../common'); // Check `id -G` and `process.getgroups()` return same groups. -if (common.isOSX) { +if (common.isOSX) common.skip('Output of `id -G` is unreliable on Darwin.'); - return; -} + const assert = require('assert'); const exec = require('child_process').exec; diff --git a/test/parallel/test-process-remove-all-signal-listeners.js b/test/parallel/test-process-remove-all-signal-listeners.js index 85db45ff88c7c8..759820c2dc56d4 100644 --- a/test/parallel/test-process-remove-all-signal-listeners.js +++ b/test/parallel/test-process-remove-all-signal-listeners.js @@ -1,15 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('Win32 does not support signals.'); + const assert = require('assert'); const spawn = require('child_process').spawn; -if (common.isWindows) { - common.skip('Win32 doesn\'t have signals, just a kind of ' + - 'emulation, insufficient for this test to apply.'); - return; -} - if (process.argv[2] !== '--do-test') { // We are the master, fork a child so we can verify it exits with correct // status. diff --git a/test/parallel/test-regress-GH-1531.js b/test/parallel/test-regress-GH-1531.js index 3cf342b869d418..7d1f4a0dbec4c1 100644 --- a/test/parallel/test-regress-GH-1531.js +++ b/test/parallel/test-regress-GH-1531.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const https = require('https'); const fs = require('fs'); diff --git a/test/parallel/test-regress-GH-3542.js b/test/parallel/test-regress-GH-3542.js index cc0285f7475697..b652c95c9ac881 100644 --- a/test/parallel/test-regress-GH-3542.js +++ b/test/parallel/test-regress-GH-3542.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +// This test is only relevant on Windows. +if (!common.isWindows) + common.skip('Windows specific test.'); + const assert = require('assert'); const fs = require('fs'); const path = require('path'); -// This test is only relevant on Windows. -if (!common.isWindows) { - common.skip('Windows specific test.'); - return; -} - function test(p) { const result = fs.realpathSync(p); assert.strictEqual(result.toLowerCase(), path.resolve(p).toLowerCase()); diff --git a/test/parallel/test-regress-GH-9819.js b/test/parallel/test-regress-GH-9819.js index fb9bb489a081cf..7eed1c512f7942 100644 --- a/test/parallel/test-regress-GH-9819.js +++ b/test/parallel/test-regress-GH-9819.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const execFile = require('child_process').execFile; -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} - const setup = 'const enc = { toString: () => { throw new Error("xyz"); } };'; const scripts = [ diff --git a/test/parallel/test-repl-history-perm.js b/test/parallel/test-repl-history-perm.js index ebca7c9725652f..3b58986dc08efc 100644 --- a/test/parallel/test-repl-history-perm.js +++ b/test/parallel/test-repl-history-perm.js @@ -7,7 +7,6 @@ if (common.isWindows) { common.skip('Win32 uses ACLs for file permissions, ' + 'modes are always 0666 and says nothing about group/other ' + 'read access.'); - return; } const assert = require('assert'); diff --git a/test/parallel/test-repl-sigint-nested-eval.js b/test/parallel/test-repl-sigint-nested-eval.js index 030c86be8e8dd4..7f15b7dfeb8b9d 100644 --- a/test/parallel/test-repl-sigint-nested-eval.js +++ b/test/parallel/test-repl-sigint-nested-eval.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const spawn = require('child_process').spawn; + process.env.REPL_TEST_PPID = process.pid; const child = spawn(process.execPath, [ '-i' ], { stdio: [null, null, 2] diff --git a/test/parallel/test-repl-sigint.js b/test/parallel/test-repl-sigint.js index 61bc75cc6ffe67..818111c39bf578 100644 --- a/test/parallel/test-repl-sigint.js +++ b/test/parallel/test-repl-sigint.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const spawn = require('child_process').spawn; + process.env.REPL_TEST_PPID = process.pid; const child = spawn(process.execPath, [ '-i' ], { stdio: [null, null, 2] diff --git a/test/parallel/test-require-long-path.js b/test/parallel/test-require-long-path.js index 1a8ce1b7dfd2c3..aaaf07d48ae897 100644 --- a/test/parallel/test-require-long-path.js +++ b/test/parallel/test-require-long-path.js @@ -1,13 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('this test is Windows-specific.'); + const fs = require('fs'); const path = require('path'); -if (!common.isWindows) { - common.skip('this test is Windows-specific.'); - return; -} - // make a path that is more than 260 chars long. const dirNameLen = Math.max(260 - common.tmpDir.length, 1); const dirName = path.join(common.tmpDir, 'x'.repeat(dirNameLen)); diff --git a/test/parallel/test-require-symlink.js b/test/parallel/test-require-symlink.js index 964f856829ac35..d5dc03e49dfc37 100644 --- a/test/parallel/test-require-symlink.js +++ b/test/parallel/test-require-symlink.js @@ -27,10 +27,8 @@ if (common.isWindows) { // On Windows, creating symlinks requires admin privileges. // We'll only try to run symlink test if we have enough privileges. exec('whoami /priv', function(err, o) { - if (err || !o.includes('SeCreateSymbolicLinkPrivilege')) { + if (err || !o.includes('SeCreateSymbolicLinkPrivilege')) common.skip('insufficient privileges'); - return; - } test(); }); diff --git a/test/parallel/test-setproctitle.js b/test/parallel/test-setproctitle.js index 672b6f037d8a61..f4e25a6e8ce71b 100644 --- a/test/parallel/test-setproctitle.js +++ b/test/parallel/test-setproctitle.js @@ -3,9 +3,8 @@ const common = require('../common'); // FIXME add sunos support -if (common.isSunOS) { - return common.skip(`Unsupported platform [${process.platform}]`); -} +if (common.isSunOS) + common.skip(`Unsupported platform [${process.platform}]`); const assert = require('assert'); const exec = require('child_process').exec; @@ -21,9 +20,8 @@ process.title = title; assert.strictEqual(process.title, title); // Test setting the title but do not try to run `ps` on Windows. -if (common.isWindows) { - return common.skip('Windows does not have "ps" utility'); -} +if (common.isWindows) + common.skip('Windows does not have "ps" utility'); // To pass this test on alpine, since Busybox `ps` does not // support `-p` switch, use `ps -o` and `grep` instead. diff --git a/test/parallel/test-signal-handler.js b/test/parallel/test-signal-handler.js index db34a036e45660..a5c900695a54cb 100644 --- a/test/parallel/test-signal-handler.js +++ b/test/parallel/test-signal-handler.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (common.isWindows) { +if (common.isWindows) common.skip('SIGUSR1 and SIGHUP signals are not supported'); - return; -} console.log(`process.pid: ${process.pid}`); diff --git a/test/parallel/test-spawn-cmd-named-pipe.js b/test/parallel/test-spawn-cmd-named-pipe.js index 94a34b640d1e3c..30d0ec2c263fcb 100644 --- a/test/parallel/test-spawn-cmd-named-pipe.js +++ b/test/parallel/test-spawn-cmd-named-pipe.js @@ -1,12 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - // This test is intended for Windows only -if (!common.isWindows) { +if (!common.isWindows) common.skip('this test is Windows-specific.'); - return; -} + +const assert = require('assert'); if (!process.argv[2]) { // parent diff --git a/test/parallel/test-tls-0-dns-altname.js b/test/parallel/test-tls-0-dns-altname.js index 7ac40eeda162b6..0b1c7f6496ce39 100644 --- a/test/parallel/test-tls-0-dns-altname.js +++ b/test/parallel/test-tls-0-dns-altname.js @@ -21,16 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); +if (!common.hasCrypto) + common.skip('missing crypto'); // Check getPeerCertificate can properly handle '\0' for fix CVE-2009-2408. -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-alert-handling.js b/test/parallel/test-tls-alert-handling.js index d089ad223b1fd8..0b3447243db7f3 100644 --- a/test/parallel/test-tls-alert-handling.js +++ b/test/parallel/test-tls-alert-handling.js @@ -1,15 +1,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-alert.js b/test/parallel/test-tls-alert.js index ef79856108ea3f..8aa56eaf755ab6 100644 --- a/test/parallel/test-tls-alert.js +++ b/test/parallel/test-tls-alert.js @@ -21,16 +21,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const assert = require('assert'); const { spawn } = require('child_process'); diff --git a/test/parallel/test-tls-alpn-server-client.js b/test/parallel/test-tls-alpn-server-client.js index 3d3453d32fdb82..56f925b8a97945 100644 --- a/test/parallel/test-tls-alpn-server-client.js +++ b/test/parallel/test-tls-alpn-server-client.js @@ -1,15 +1,12 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} if (!process.features.tls_alpn || !process.features.tls_npn) { common.skip( 'Skipping because node compiled without NPN or ALPN feature of OpenSSL.'); - return; } const assert = require('assert'); diff --git a/test/parallel/test-tls-async-cb-after-socket-end.js b/test/parallel/test-tls-async-cb-after-socket-end.js index be499b84503472..6b4d2bd9f58c9c 100644 --- a/test/parallel/test-tls-async-cb-after-socket-end.js +++ b/test/parallel/test-tls-async-cb-after-socket-end.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const path = require('path'); const fs = require('fs'); diff --git a/test/parallel/test-tls-basic-validations.js b/test/parallel/test-tls-basic-validations.js index a6775c06033a2c..1d494b4ed3b76f 100644 --- a/test/parallel/test-tls-basic-validations.js +++ b/test/parallel/test-tls-basic-validations.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-cert-regression.js b/test/parallel/test-tls-cert-regression.js index 0a128275c3874d..ab967bb2c6e11c 100644 --- a/test/parallel/test-tls-cert-regression.js +++ b/test/parallel/test-tls-cert-regression.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); diff --git a/test/parallel/test-tls-check-server-identity.js b/test/parallel/test-tls-check-server-identity.js index e608df5a5a1ae1..1623e70a2af2ec 100644 --- a/test/parallel/test-tls-check-server-identity.js +++ b/test/parallel/test-tls-check-server-identity.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const util = require('util'); diff --git a/test/parallel/test-tls-cipher-list.js b/test/parallel/test-tls-cipher-list.js index 912fb6412859bf..4a39ee9391a7c1 100644 --- a/test/parallel/test-tls-cipher-list.js +++ b/test/parallel/test-tls-cipher-list.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const spawn = require('child_process').spawn; diff --git a/test/parallel/test-tls-client-abort.js b/test/parallel/test-tls-client-abort.js index 15928a04f67876..14f96104e16aef 100644 --- a/test/parallel/test-tls-client-abort.js +++ b/test/parallel/test-tls-client-abort.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-client-abort2.js b/test/parallel/test-tls-client-abort2.js index a652edfa8fe389..59b592d2556699 100644 --- a/test/parallel/test-tls-client-abort2.js +++ b/test/parallel/test-tls-client-abort2.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const conn = tls.connect(0, common.mustNotCall()); diff --git a/test/parallel/test-tls-client-default-ciphers.js b/test/parallel/test-tls-client-default-ciphers.js index 9eefe21e95732e..0630fe947e7f50 100644 --- a/test/parallel/test-tls-client-default-ciphers.js +++ b/test/parallel/test-tls-client-default-ciphers.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); function Done() {} diff --git a/test/parallel/test-tls-client-destroy-soon.js b/test/parallel/test-tls-client-destroy-soon.js index 8d1f3e90234d43..a94e8fbdb98afd 100644 --- a/test/parallel/test-tls-client-destroy-soon.js +++ b/test/parallel/test-tls-client-destroy-soon.js @@ -25,14 +25,11 @@ // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-client-getephemeralkeyinfo.js b/test/parallel/test-tls-client-getephemeralkeyinfo.js index f3da64ed376607..53e0144ac73d97 100644 --- a/test/parallel/test-tls-client-getephemeralkeyinfo.js +++ b/test/parallel/test-tls-client-getephemeralkeyinfo.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(); -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); diff --git a/test/parallel/test-tls-client-mindhsize.js b/test/parallel/test-tls-client-mindhsize.js index 10fe196b539647..230c6e08458cb1 100644 --- a/test/parallel/test-tls-client-mindhsize.js +++ b/test/parallel/test-tls-client-mindhsize.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - process.exit(); -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); diff --git a/test/parallel/test-tls-client-reject.js b/test/parallel/test-tls-client-reject.js index 43cf337e672627..a11e0fe28028ca 100644 --- a/test/parallel/test-tls-client-reject.js +++ b/test/parallel/test-tls-client-reject.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-client-resume.js b/test/parallel/test-tls-client-resume.js index aa23f3331b596c..fccdf6d930c09c 100644 --- a/test/parallel/test-tls-client-resume.js +++ b/test/parallel/test-tls-client-resume.js @@ -25,14 +25,11 @@ // ASSERT resumption. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-client-verify.js b/test/parallel/test-tls-client-verify.js index d713be3b0cf17d..217185166584a4 100644 --- a/test/parallel/test-tls-client-verify.js +++ b/test/parallel/test-tls-client-verify.js @@ -21,11 +21,8 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-close-error.js b/test/parallel/test-tls-close-error.js index 978f7659508999..9973adde122024 100644 --- a/test/parallel/test-tls-close-error.js +++ b/test/parallel/test-tls-close-error.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-close-notify.js b/test/parallel/test-tls-close-notify.js index 625909c9c5edab..500aec26c8d200 100644 --- a/test/parallel/test-tls-close-notify.js +++ b/test/parallel/test-tls-close-notify.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-cnnic-whitelist.js b/test/parallel/test-tls-cnnic-whitelist.js index 084531748656e2..84b71c7e64b1be 100644 --- a/test/parallel/test-tls-cnnic-whitelist.js +++ b/test/parallel/test-tls-cnnic-whitelist.js @@ -2,10 +2,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-address-family.js b/test/parallel/test-tls-connect-address-family.js index f22831f395a8dd..afacd5a39027a0 100644 --- a/test/parallel/test-tls-connect-address-family.js +++ b/test/parallel/test-tls-connect-address-family.js @@ -1,14 +1,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.hasIPv6) { +if (!common.hasIPv6) common.skip('no IPv6 support'); - return; -} const assert = require('assert'); const tls = require('tls'); @@ -36,10 +32,9 @@ function runTest() { dns.lookup('localhost', {family: 6, all: true}, (err, addresses) => { if (err) { - if (err.code === 'ENOTFOUND') { + if (err.code === 'ENOTFOUND') common.skip('localhost does not resolve to ::1'); - return; - } + throw err; } diff --git a/test/parallel/test-tls-connect-given-socket.js b/test/parallel/test-tls-connect-given-socket.js index 08553916194116..d922d7d4d53223 100644 --- a/test/parallel/test-tls-connect-given-socket.js +++ b/test/parallel/test-tls-connect-given-socket.js @@ -21,17 +21,15 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const net = require('net'); const fs = require('fs'); const path = require('path'); + const options = { key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')), cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem')) diff --git a/test/parallel/test-tls-connect-no-host.js b/test/parallel/test-tls-connect-no-host.js index 2e4bcfbc6d4787..f63c821a7f6a35 100644 --- a/test/parallel/test-tls-connect-no-host.js +++ b/test/parallel/test-tls-connect-no-host.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const assert = require('assert'); diff --git a/test/parallel/test-tls-connect-pipe.js b/test/parallel/test-tls-connect-pipe.js index 836471a0c50fb4..8a3abe3312ec2d 100644 --- a/test/parallel/test-tls-connect-pipe.js +++ b/test/parallel/test-tls-connect-pipe.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-simple.js b/test/parallel/test-tls-connect-simple.js index 7e0d1b462bff7d..d6211d05c8cab1 100644 --- a/test/parallel/test-tls-connect-simple.js +++ b/test/parallel/test-tls-connect-simple.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect-stream-writes.js b/test/parallel/test-tls-connect-stream-writes.js index 637e54f535dada..4a8b53b4de185b 100644 --- a/test/parallel/test-tls-connect-stream-writes.js +++ b/test/parallel/test-tls-connect-stream-writes.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-connect.js b/test/parallel/test-tls-connect.js index 1908dba6574124..5e73196bc1f8a2 100644 --- a/test/parallel/test-tls-connect.js +++ b/test/parallel/test-tls-connect.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-delayed-attach-error.js b/test/parallel/test-tls-delayed-attach-error.js index 35da6d0e42efed..9d37f15efe4846 100644 --- a/test/parallel/test-tls-delayed-attach-error.js +++ b/test/parallel/test-tls-delayed-attach-error.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-delayed-attach.js b/test/parallel/test-tls-delayed-attach.js index fa8baa81f85fa0..9ab611566583b4 100644 --- a/test/parallel/test-tls-delayed-attach.js +++ b/test/parallel/test-tls-delayed-attach.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-destroy-whilst-write.js b/test/parallel/test-tls-destroy-whilst-write.js index b4f9766d998630..d157c7bf3f82b5 100644 --- a/test/parallel/test-tls-destroy-whilst-write.js +++ b/test/parallel/test-tls-destroy-whilst-write.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const stream = require('stream'); diff --git a/test/parallel/test-tls-dhe.js b/test/parallel/test-tls-dhe.js index 2f86e82be7fc96..fe17206fdcdc14 100644 --- a/test/parallel/test-tls-dhe.js +++ b/test/parallel/test-tls-dhe.js @@ -22,22 +22,17 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const spawn = require('child_process').spawn; const fs = require('fs'); + const key = fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`); const cert = fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`); let nsuccess = 0; diff --git a/test/parallel/test-tls-ecdh-disable.js b/test/parallel/test-tls-ecdh-disable.js index 732ebe4d1bdafc..65ee8fd69198c7 100644 --- a/test/parallel/test-tls-ecdh-disable.js +++ b/test/parallel/test-tls-ecdh-disable.js @@ -21,20 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const exec = require('child_process').exec; const fs = require('fs'); diff --git a/test/parallel/test-tls-ecdh.js b/test/parallel/test-tls-ecdh.js index 32e77456bdc045..856c1a96fb8048 100644 --- a/test/parallel/test-tls-ecdh.js +++ b/test/parallel/test-tls-ecdh.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-econnreset.js b/test/parallel/test-tls-econnreset.js index 798c10ca4c141c..8a6536890e8636 100644 --- a/test/parallel/test-tls-econnreset.js +++ b/test/parallel/test-tls-econnreset.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const cacert = diff --git a/test/parallel/test-tls-empty-sni-context.js b/test/parallel/test-tls-empty-sni-context.js index 4974e6323e8726..9a8e3449f0cbea 100644 --- a/test/parallel/test-tls-empty-sni-context.js +++ b/test/parallel/test-tls-empty-sni-context.js @@ -1,18 +1,13 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); -if (!process.features.tls_sni) { +if (!process.features.tls_sni) common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} const assert = require('assert'); - -if (!common.hasCrypto) { - return common.skip('missing crypto'); -} - const tls = require('tls'); const options = { diff --git a/test/parallel/test-tls-env-bad-extra-ca.js b/test/parallel/test-tls-env-bad-extra-ca.js index 57e4c1cfaf3af6..ece93f33539d71 100644 --- a/test/parallel/test-tls-env-bad-extra-ca.js +++ b/test/parallel/test-tls-env-bad-extra-ca.js @@ -3,10 +3,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-env-extra-ca.js b/test/parallel/test-tls-env-extra-ca.js index e2de272184e5f4..be7c826b85cc1f 100644 --- a/test/parallel/test-tls-env-extra-ca.js +++ b/test/parallel/test-tls-env-extra-ca.js @@ -3,10 +3,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-external-accessor.js b/test/parallel/test-tls-external-accessor.js index 08a4ad16e8b4d4..2d7b1f62b98977 100644 --- a/test/parallel/test-tls-external-accessor.js +++ b/test/parallel/test-tls-external-accessor.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -// Ensure accessing ._external doesn't hit an assert in the accessor method. +const assert = require('assert'); const tls = require('tls'); + +// Ensure accessing ._external doesn't hit an assert in the accessor method. { const pctx = tls.createSecureContext().context; const cctx = Object.create(pctx); diff --git a/test/parallel/test-tls-fast-writing.js b/test/parallel/test-tls-fast-writing.js index 05722d895943bb..b846f732d2fb0e 100644 --- a/test/parallel/test-tls-fast-writing.js +++ b/test/parallel/test-tls-fast-writing.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const dir = common.fixturesDir; diff --git a/test/parallel/test-tls-friendly-error-message.js b/test/parallel/test-tls-friendly-error-message.js index c476fb20fe47f0..644b298fb9a40c 100644 --- a/test/parallel/test-tls-friendly-error-message.js +++ b/test/parallel/test-tls-friendly-error-message.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const key = fs.readFileSync(`${common.fixturesDir}/keys/agent1-key.pem`); diff --git a/test/parallel/test-tls-getcipher.js b/test/parallel/test-tls-getcipher.js index d2c5b9eab4d170..acf07ef0a03320 100644 --- a/test/parallel/test-tls-getcipher.js +++ b/test/parallel/test-tls-getcipher.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-getprotocol.js b/test/parallel/test-tls-getprotocol.js index 393b8fb3fe028a..dd96aa6f7494a6 100644 --- a/test/parallel/test-tls-getprotocol.js +++ b/test/parallel/test-tls-getprotocol.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-handshake-error.js b/test/parallel/test-tls-handshake-error.js index 3bd74baa9772b9..e4a4addd37be1d 100644 --- a/test/parallel/test-tls-handshake-error.js +++ b/test/parallel/test-tls-handshake-error.js @@ -1,14 +1,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const server = tls.createServer({ diff --git a/test/parallel/test-tls-handshake-nohang.js b/test/parallel/test-tls-handshake-nohang.js index 791ba8df84b3a0..e724fcd3422b00 100644 --- a/test/parallel/test-tls-handshake-nohang.js +++ b/test/parallel/test-tls-handshake-nohang.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); // neither should hang diff --git a/test/parallel/test-tls-hello-parser-failure.js b/test/parallel/test-tls-hello-parser-failure.js index a6e272aa2aab99..ed4c4f7b991f47 100644 --- a/test/parallel/test-tls-hello-parser-failure.js +++ b/test/parallel/test-tls-hello-parser-failure.js @@ -23,10 +23,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-honorcipherorder.js b/test/parallel/test-tls-honorcipherorder.js index a6d51d5dfeea6d..a9d35a01baca51 100644 --- a/test/parallel/test-tls-honorcipherorder.js +++ b/test/parallel/test-tls-honorcipherorder.js @@ -1,14 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); + let nconns = 0; // We explicitly set TLS version to 1.2 so as to be safe when the diff --git a/test/parallel/test-tls-inception.js b/test/parallel/test-tls-inception.js index 38f922107b0b9a..267fa391a73e20 100644 --- a/test/parallel/test-tls-inception.js +++ b/test/parallel/test-tls-inception.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-interleave.js b/test/parallel/test-tls-interleave.js index 131915911fbe9c..d704a35e6881df 100644 --- a/test/parallel/test-tls-interleave.js +++ b/test/parallel/test-tls-interleave.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-invoke-queued.js b/test/parallel/test-tls-invoke-queued.js index 4437507516b921..b1027dd943386c 100644 --- a/test/parallel/test-tls-invoke-queued.js +++ b/test/parallel/test-tls-invoke-queued.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-js-stream.js b/test/parallel/test-tls-js-stream.js index 6553d6862dd4e9..f535a46cce593b 100644 --- a/test/parallel/test-tls-js-stream.js +++ b/test/parallel/test-tls-js-stream.js @@ -1,13 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const stream = require('stream'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-junk-closes-server.js b/test/parallel/test-tls-junk-closes-server.js index a1ffb32c2408f4..b0e29ec9f8cffc 100644 --- a/test/parallel/test-tls-junk-closes-server.js +++ b/test/parallel/test-tls-junk-closes-server.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-junk-server.js b/test/parallel/test-tls-junk-server.js index 9b5ab6fdcc649d..3270dec745c1ba 100644 --- a/test/parallel/test-tls-junk-server.js +++ b/test/parallel/test-tls-junk-server.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const https = require('https'); diff --git a/test/parallel/test-tls-key-mismatch.js b/test/parallel/test-tls-key-mismatch.js index ac261122ea6bbf..ed5a15c258ae75 100644 --- a/test/parallel/test-tls-key-mismatch.js +++ b/test/parallel/test-tls-key-mismatch.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-legacy-deprecated.js b/test/parallel/test-tls-legacy-deprecated.js index b50c63e7763dfd..4a6120c71b1f77 100644 --- a/test/parallel/test-tls-legacy-deprecated.js +++ b/test/parallel/test-tls-legacy-deprecated.js @@ -1,10 +1,9 @@ // Flags: --no-warnings 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-legacy-onselect.js b/test/parallel/test-tls-legacy-onselect.js index 9af65c43a0661c..efcc5c2c92b889 100644 --- a/test/parallel/test-tls-legacy-onselect.js +++ b/test/parallel/test-tls-legacy-onselect.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); diff --git a/test/parallel/test-tls-lookup.js b/test/parallel/test-tls-lookup.js index cebb85c4b2a60f..4656d3e5cc6a1e 100644 --- a/test/parallel/test-tls-lookup.js +++ b/test/parallel/test-tls-lookup.js @@ -1,9 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-max-send-fragment.js b/test/parallel/test-tls-max-send-fragment.js index 86ee1a4f14a7ba..1cbcb8e272d6c8 100644 --- a/test/parallel/test-tls-max-send-fragment.js +++ b/test/parallel/test-tls-max-send-fragment.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const buf = Buffer.allocUnsafe(10000); diff --git a/test/parallel/test-tls-multi-key.js b/test/parallel/test-tls-multi-key.js index 6158f7d4057657..6e1a3c8777eeba 100644 --- a/test/parallel/test-tls-multi-key.js +++ b/test/parallel/test-tls-multi-key.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-tls-no-cert-required.js b/test/parallel/test-tls-no-cert-required.js index 06139307c43ce6..11c86efa08e1b4 100644 --- a/test/parallel/test-tls-no-cert-required.js +++ b/test/parallel/test-tls-no-cert-required.js @@ -20,13 +20,11 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -const assert = require('assert'); const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); // Omitting the cert or pfx option to tls.createServer() should not throw. diff --git a/test/parallel/test-tls-no-rsa-key.js b/test/parallel/test-tls-no-rsa-key.js index 60ac0ab148b1ac..4551928acdcf38 100644 --- a/test/parallel/test-tls-no-rsa-key.js +++ b/test/parallel/test-tls-no-rsa-key.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-no-sslv23.js b/test/parallel/test-tls-no-sslv23.js index 564efab26da22c..737f42b530d93a 100644 --- a/test/parallel/test-tls-no-sslv23.js +++ b/test/parallel/test-tls-no-sslv23.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); assert.throws(function() { diff --git a/test/parallel/test-tls-no-sslv3.js b/test/parallel/test-tls-no-sslv3.js index 2c2c51eb9be5fd..0a118dbe7e9d49 100644 --- a/test/parallel/test-tls-no-sslv3.js +++ b/test/parallel/test-tls-no-sslv3.js @@ -1,21 +1,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +if (common.opensslCli === false) + common.skip('node compiled without OpenSSL CLI.'); + +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const spawn = require('child_process').spawn; -if (common.opensslCli === false) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - const cert = fs.readFileSync(`${common.fixturesDir}/test_cert.pem`); const key = fs.readFileSync(`${common.fixturesDir}/test_key.pem`); const server = tls.createServer({ cert: cert, key: key }, common.mustNotCall()); @@ -48,7 +43,7 @@ server.on('tlsClientError', (err) => errors.push(err)); process.on('exit', function() { if (/unknown option -ssl3/.test(stderr)) { - common.skip('`openssl s_client -ssl3` not supported.'); + common.printSkipMessage('`openssl s_client -ssl3` not supported.'); } else { assert.strictEqual(errors.length, 1); assert(/:wrong version number/.test(errors[0].message)); diff --git a/test/parallel/test-tls-npn-server-client.js b/test/parallel/test-tls-npn-server-client.js index ffaf61b633bc1d..6a528732a3202a 100644 --- a/test/parallel/test-tls-npn-server-client.js +++ b/test/parallel/test-tls-npn-server-client.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_npn) { - common.skip('Skipping because node compiled without NPN feature of OpenSSL.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_npn) + common.skip('Skipping because node compiled without NPN feature of OpenSSL.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-ocsp-callback.js b/test/parallel/test-tls-ocsp-callback.js index a839384925c0a2..b4437c6a9b35f5 100644 --- a/test/parallel/test-tls-ocsp-callback.js +++ b/test/parallel/test-tls-ocsp-callback.js @@ -22,19 +22,15 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_ocsp) { +if (!process.features.tls_ocsp) common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} -if (!common.opensslCli) { + +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const assert = require('assert'); diff --git a/test/parallel/test-tls-on-empty-socket.js b/test/parallel/test-tls-on-empty-socket.js index 38537fd640c71a..5b66edd0c2076a 100644 --- a/test/parallel/test-tls-on-empty-socket.js +++ b/test/parallel/test-tls-on-empty-socket.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-over-http-tunnel.js b/test/parallel/test-tls-over-http-tunnel.js index 638886e92e92c9..5ff05b8504fdf8 100644 --- a/test/parallel/test-tls-over-http-tunnel.js +++ b/test/parallel/test-tls-over-http-tunnel.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const net = require('net'); const http = require('http'); diff --git a/test/parallel/test-tls-parse-cert-string.js b/test/parallel/test-tls-parse-cert-string.js index c6cdbf2e36e677..2e940805c0b958 100644 --- a/test/parallel/test-tls-parse-cert-string.js +++ b/test/parallel/test-tls-parse-cert-string.js @@ -1,9 +1,7 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-passphrase.js b/test/parallel/test-tls-passphrase.js index 20b5961fb47f66..c8cc06d35e4cd9 100644 --- a/test/parallel/test-tls-passphrase.js +++ b/test/parallel/test-tls-passphrase.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-pause.js b/test/parallel/test-tls-pause.js index a08b435f678508..647b13c62a298c 100644 --- a/test/parallel/test-tls-pause.js +++ b/test/parallel/test-tls-pause.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const path = require('path'); diff --git a/test/parallel/test-tls-peer-certificate-encoding.js b/test/parallel/test-tls-peer-certificate-encoding.js index 95f14c7b8ee12a..76781e0953470e 100644 --- a/test/parallel/test-tls-peer-certificate-encoding.js +++ b/test/parallel/test-tls-peer-certificate-encoding.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const util = require('util'); const join = require('path').join; diff --git a/test/parallel/test-tls-peer-certificate-multi-keys.js b/test/parallel/test-tls-peer-certificate-multi-keys.js index a58c747bd41ea1..226772386253f4 100644 --- a/test/parallel/test-tls-peer-certificate-multi-keys.js +++ b/test/parallel/test-tls-peer-certificate-multi-keys.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const util = require('util'); const join = require('path').join; diff --git a/test/parallel/test-tls-pfx-gh-5100-regr.js b/test/parallel/test-tls-pfx-gh-5100-regr.js index 142a7de10b841a..c47ad5f89d4721 100644 --- a/test/parallel/test-tls-pfx-gh-5100-regr.js +++ b/test/parallel/test-tls-pfx-gh-5100-regr.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('node compiled without crypto.'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-regr-gh-5108.js b/test/parallel/test-tls-regr-gh-5108.js index 6f4392007bc856..9bb07fe7ca3b3e 100644 --- a/test/parallel/test-tls-regr-gh-5108.js +++ b/test/parallel/test-tls-regr-gh-5108.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-request-timeout.js b/test/parallel/test-tls-request-timeout.js index c529d972d2185e..216b69bb21269c 100644 --- a/test/parallel/test-tls-request-timeout.js +++ b/test/parallel/test-tls-request-timeout.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-retain-handle-no-abort.js b/test/parallel/test-tls-retain-handle-no-abort.js index a3a2aebcd6ab2c..4be64c15969f22 100644 --- a/test/parallel/test-tls-retain-handle-no-abort.js +++ b/test/parallel/test-tls-retain-handle-no-abort.js @@ -1,12 +1,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); const util = require('util'); diff --git a/test/parallel/test-tls-securepair-fiftharg.js b/test/parallel/test-tls-securepair-fiftharg.js index 2b69ce88f4f9aa..236f719157f11e 100644 --- a/test/parallel/test-tls-securepair-fiftharg.js +++ b/test/parallel/test-tls-securepair-fiftharg.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-securepair-leak.js b/test/parallel/test-tls-securepair-leak.js index b513bcd4c7c73a..cbc7c7daddd74b 100644 --- a/test/parallel/test-tls-securepair-leak.js +++ b/test/parallel/test-tls-securepair-leak.js @@ -2,13 +2,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const { createSecureContext } = require('tls'); const { createSecurePair } = require('_tls_legacy'); diff --git a/test/parallel/test-tls-securepair-server.js b/test/parallel/test-tls-securepair-server.js index 00e8cd591ff2c9..6aebc80722120f 100644 --- a/test/parallel/test-tls-securepair-server.js +++ b/test/parallel/test-tls-securepair-server.js @@ -21,20 +21,14 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('missing openssl-cli'); - return; -} +const assert = require('assert'); const tls = require('tls'); - const join = require('path').join; const net = require('net'); const fs = require('fs'); diff --git a/test/parallel/test-tls-server-connection-server.js b/test/parallel/test-tls-server-connection-server.js index 1c54eb635ad449..7eef14d23b5371 100644 --- a/test/parallel/test-tls-server-connection-server.js +++ b/test/parallel/test-tls-server-connection-server.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js b/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js index 0290bcc629a3e3..8efb4ec53866d5 100644 --- a/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js +++ b/test/parallel/test-tls-server-failed-handshake-emits-clienterror.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); const assert = require('assert'); diff --git a/test/parallel/test-tls-server-verify.js b/test/parallel/test-tls-server-verify.js index 86a735f64c98a4..dcae05eb968565 100644 --- a/test/parallel/test-tls-server-verify.js +++ b/test/parallel/test-tls-server-verify.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); // This is a rather complex test which sets up various TLS servers with node // and connects to them using the 'openssl s_client' command line utility diff --git a/test/parallel/test-tls-session-cache.js b/test/parallel/test-tls-session-cache.js index e87c62d3ed9416..805c21b3ade248 100644 --- a/test/parallel/test-tls-session-cache.js +++ b/test/parallel/test-tls-session-cache.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} doTest({ tickets: false }, function() { doTest({ tickets: true }, function() { diff --git a/test/parallel/test-tls-set-ciphers.js b/test/parallel/test-tls-set-ciphers.js index 4b7923891bd5b4..2c7177389b125d 100644 --- a/test/parallel/test-tls-set-ciphers.js +++ b/test/parallel/test-tls-set-ciphers.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const exec = require('child_process').exec; diff --git a/test/parallel/test-tls-set-encoding.js b/test/parallel/test-tls-set-encoding.js index 7023132d7373e3..c9ff52b9b2fc05 100644 --- a/test/parallel/test-tls-set-encoding.js +++ b/test/parallel/test-tls-set-encoding.js @@ -21,17 +21,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); - const options = { key: fs.readFileSync(`${common.fixturesDir}/keys/agent2-key.pem`), cert: fs.readFileSync(`${common.fixturesDir}/keys/agent2-cert.pem`) diff --git a/test/parallel/test-tls-sni-option.js b/test/parallel/test-tls-sni-option.js index ad7410b1631106..f744b6db54c9ce 100644 --- a/test/parallel/test-tls-sni-option.js +++ b/test/parallel/test-tls-sni-option.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_sni) { - common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_sni) + common.skip('node compiled without OpenSSL or with old OpenSSL version.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-sni-server-client.js b/test/parallel/test-tls-sni-server-client.js index 300010cfa13cda..83fd50c06603d1 100644 --- a/test/parallel/test-tls-sni-server-client.js +++ b/test/parallel/test-tls-sni-server-client.js @@ -21,15 +21,11 @@ 'use strict'; const common = require('../common'); -if (!process.features.tls_sni) { - common.skip('node compiled without OpenSSL or with old OpenSSL version.'); - return; -} - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +if (!process.features.tls_sni) + common.skip('node compiled without OpenSSL or with old OpenSSL version.'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-socket-close.js b/test/parallel/test-tls-socket-close.js index 25282ada9ed31a..f9a77bf4648b46 100644 --- a/test/parallel/test-tls-socket-close.js +++ b/test/parallel/test-tls-socket-close.js @@ -1,11 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const assert = require('assert'); +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-socket-destroy.js b/test/parallel/test-tls-socket-destroy.js index 0a72ac6232e865..b101a872c23422 100644 --- a/test/parallel/test-tls-socket-destroy.js +++ b/test/parallel/test-tls-socket-destroy.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const net = require('net'); diff --git a/test/parallel/test-tls-socket-failed-handshake-emits-error.js b/test/parallel/test-tls-socket-failed-handshake-emits-error.js index 106a14a7df8ec6..16175b8898115e 100644 --- a/test/parallel/test-tls-socket-failed-handshake-emits-error.js +++ b/test/parallel/test-tls-socket-failed-handshake-emits-error.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const net = require('net'); const assert = require('assert'); diff --git a/test/parallel/test-tls-startcom-wosign-whitelist.js b/test/parallel/test-tls-startcom-wosign-whitelist.js index 601c0e4393c2eb..92d595e80cfae6 100644 --- a/test/parallel/test-tls-startcom-wosign-whitelist.js +++ b/test/parallel/test-tls-startcom-wosign-whitelist.js @@ -1,10 +1,7 @@ 'use strict'; const common = require('../common'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-starttls-server.js b/test/parallel/test-tls-starttls-server.js index d588fee34d5feb..28d1db88598cfd 100644 --- a/test/parallel/test-tls-starttls-server.js +++ b/test/parallel/test-tls-starttls-server.js @@ -5,10 +5,8 @@ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/parallel/test-tls-ticket-cluster.js b/test/parallel/test-tls-ticket-cluster.js index 8654dd9ceb32f1..486aef8358715c 100644 --- a/test/parallel/test-tls-ticket-cluster.js +++ b/test/parallel/test-tls-ticket-cluster.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const cluster = require('cluster'); const fs = require('fs'); const join = require('path').join; diff --git a/test/parallel/test-tls-ticket.js b/test/parallel/test-tls-ticket.js index b2541e06ab8872..bf1ce0d5eb421b 100644 --- a/test/parallel/test-tls-ticket.js +++ b/test/parallel/test-tls-ticket.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const net = require('net'); const crypto = require('crypto'); diff --git a/test/parallel/test-tls-timeout-server-2.js b/test/parallel/test-tls-timeout-server-2.js index bf6dcc385bc2b5..8513b29f2e94cd 100644 --- a/test/parallel/test-tls-timeout-server-2.js +++ b/test/parallel/test-tls-timeout-server-2.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const options = { diff --git a/test/parallel/test-tls-timeout-server.js b/test/parallel/test-tls-timeout-server.js index b43bb169f34388..a3d9a8164707aa 100644 --- a/test/parallel/test-tls-timeout-server.js +++ b/test/parallel/test-tls-timeout-server.js @@ -22,12 +22,10 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const tls = require('tls'); const net = require('net'); const fs = require('fs'); diff --git a/test/parallel/test-tls-two-cas-one-string.js b/test/parallel/test-tls-two-cas-one-string.js index 3f948b86a585e8..897635d7b18c02 100644 --- a/test/parallel/test-tls-two-cas-one-string.js +++ b/test/parallel/test-tls-two-cas-one-string.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const fs = require('fs'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset-localaddress.js b/test/parallel/test-tls-wrap-econnreset-localaddress.js index 5052d4377a446d..9df145ac374ab7 100644 --- a/test/parallel/test-tls-wrap-econnreset-localaddress.js +++ b/test/parallel/test-tls-wrap-econnreset-localaddress.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset-pipe.js b/test/parallel/test-tls-wrap-econnreset-pipe.js index f31e058e6aaeed..ef6efaedc34aa7 100644 --- a/test/parallel/test-tls-wrap-econnreset-pipe.js +++ b/test/parallel/test-tls-wrap-econnreset-pipe.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); const net = require('net'); diff --git a/test/parallel/test-tls-wrap-econnreset-socket.js b/test/parallel/test-tls-wrap-econnreset-socket.js index 479d7524aa3611..672da9876fd005 100644 --- a/test/parallel/test-tls-wrap-econnreset-socket.js +++ b/test/parallel/test-tls-wrap-econnreset-socket.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-econnreset.js b/test/parallel/test-tls-wrap-econnreset.js index ed0fe9b1a31b29..5c6db86b75e06a 100644 --- a/test/parallel/test-tls-wrap-econnreset.js +++ b/test/parallel/test-tls-wrap-econnreset.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const net = require('net'); const tls = require('tls'); diff --git a/test/parallel/test-tls-wrap-event-emmiter.js b/test/parallel/test-tls-wrap-event-emmiter.js index 417b21804a4075..82953f1333e5da 100644 --- a/test/parallel/test-tls-wrap-event-emmiter.js +++ b/test/parallel/test-tls-wrap-event-emmiter.js @@ -6,10 +6,9 @@ */ const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const TlsSocket = require('tls').TLSSocket; diff --git a/test/parallel/test-tls-wrap-no-abort.js b/test/parallel/test-tls-wrap-no-abort.js index c18b17a6406321..21a472ee3bc7a7 100644 --- a/test/parallel/test-tls-wrap-no-abort.js +++ b/test/parallel/test-tls-wrap-no-abort.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const util = require('util'); const TLSWrap = process.binding('tls_wrap').TLSWrap; diff --git a/test/parallel/test-tls-wrap-timeout.js b/test/parallel/test-tls-wrap-timeout.js index 64fbcc7fc7f270..b4cff368182fa3 100644 --- a/test/parallel/test-tls-wrap-timeout.js +++ b/test/parallel/test-tls-wrap-timeout.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const assert = require('assert'); const tls = require('tls'); diff --git a/test/parallel/test-tls-writewrap-leak.js b/test/parallel/test-tls-writewrap-leak.js index 0d61f279312dcf..7035764cba5394 100644 --- a/test/parallel/test-tls-writewrap-leak.js +++ b/test/parallel/test-tls-writewrap-leak.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const net = require('net'); diff --git a/test/parallel/test-tls-zero-clear-in.js b/test/parallel/test-tls-zero-clear-in.js index 10d0efaf0b470b..84c03d292c1dbe 100644 --- a/test/parallel/test-tls-zero-clear-in.js +++ b/test/parallel/test-tls-zero-clear-in.js @@ -22,10 +22,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + const tls = require('tls'); const fs = require('fs'); diff --git a/test/parallel/test-url-domain-ascii-unicode.js b/test/parallel/test-url-domain-ascii-unicode.js index 2be8ac7f5fec8b..49259a7ab0f4c4 100644 --- a/test/parallel/test-url-domain-ascii-unicode.js +++ b/test/parallel/test-url-domain-ascii-unicode.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} + const strictEqual = require('assert').strictEqual; const url = require('url'); diff --git a/test/parallel/test-url-format-whatwg.js b/test/parallel/test-url-format-whatwg.js index f7363fdbb998b0..d484760c808584 100644 --- a/test/parallel/test-url-format-whatwg.js +++ b/test/parallel/test-url-format-whatwg.js @@ -1,10 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} + const assert = require('assert'); const url = require('url'); const URL = url.URL; diff --git a/test/parallel/test-util-sigint-watchdog.js b/test/parallel/test-util-sigint-watchdog.js index 207f44b011c3a2..6debd18d0500ff 100644 --- a/test/parallel/test-util-sigint-watchdog.js +++ b/test/parallel/test-util-sigint-watchdog.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); -const binding = process.binding('util'); - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const binding = process.binding('util'); + [(next) => { // Test with no signal observed. binding.startSigintWatchdog(); diff --git a/test/parallel/test-vm-sigint-existing-handler.js b/test/parallel/test-vm-sigint-existing-handler.js index 9bd5d338797a35..217d56dd972421 100644 --- a/test/parallel/test-vm-sigint-existing-handler.js +++ b/test/parallel/test-vm-sigint-existing-handler.js @@ -1,8 +1,12 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) { + // No way to send CTRL_C_EVENT to processes from JS right now. + common.skip('platform not supported'); +} + const assert = require('assert'); const vm = require('vm'); - const spawn = require('child_process').spawn; const methods = [ @@ -10,12 +14,6 @@ const methods = [ 'runInContext' ]; -if (common.isWindows) { - // No way to send CTRL_C_EVENT to processes from JS right now. - common.skip('platform not supported'); - return; -} - if (process.argv[2] === 'child') { const method = process.argv[3]; assert.ok(method); diff --git a/test/parallel/test-vm-sigint.js b/test/parallel/test-vm-sigint.js index b1ad616405453d..ae205edb3d0abd 100644 --- a/test/parallel/test-vm-sigint.js +++ b/test/parallel/test-vm-sigint.js @@ -1,17 +1,14 @@ 'use strict'; const common = require('../common'); - -const assert = require('assert'); -const vm = require('vm'); - -const spawn = require('child_process').spawn; - if (common.isWindows) { // No way to send CTRL_C_EVENT to processes from JS right now. common.skip('platform not supported'); - return; } +const assert = require('assert'); +const vm = require('vm'); +const spawn = require('child_process').spawn; + if (process.argv[2] === 'child') { const method = process.argv[3]; const listeners = +process.argv[4]; diff --git a/test/parallel/test-warn-sigprof.js b/test/parallel/test-warn-sigprof.js index eedbe33d84ff2a..3404490c2a179d 100644 --- a/test/parallel/test-warn-sigprof.js +++ b/test/parallel/test-warn-sigprof.js @@ -6,10 +6,8 @@ const common = require('../common'); common.skipIfInspectorDisabled(); -if (common.isWindows) { +if (common.isWindows) common.skip('test does not apply to Windows'); - return; -} common.expectWarning('Warning', 'process.on(SIGPROF) is reserved while debugging'); diff --git a/test/parallel/test-whatwg-url-constructor.js b/test/parallel/test-whatwg-url-constructor.js index b67f63baf139b7..290f9266b54f41 100644 --- a/test/parallel/test-whatwg-url-constructor.js +++ b/test/parallel/test-whatwg-url-constructor.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const { URL, URLSearchParams } = require('url'); -const { test, assert_equals, assert_true, assert_throws } = - require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const { URL, URLSearchParams } = require('url'); +const { test, assert_equals, assert_true, assert_throws } = + require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-tests')) }; diff --git a/test/parallel/test-whatwg-url-domainto.js b/test/parallel/test-whatwg-url-domainto.js index b399f24136e14b..bfd5e94d2e5dd8 100644 --- a/test/parallel/test-whatwg-url-domainto.js +++ b/test/parallel/test-whatwg-url-domainto.js @@ -1,10 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasIntl) { +if (!common.hasIntl) common.skip('missing Intl'); - return; -} const assert = require('assert'); const { domainToASCII, domainToUnicode } = require('url'); diff --git a/test/parallel/test-whatwg-url-historical.js b/test/parallel/test-whatwg-url-historical.js index 0f7c0e70cd6392..7848b1c1873a70 100644 --- a/test/parallel/test-whatwg-url-historical.js +++ b/test/parallel/test-whatwg-url-historical.js @@ -1,14 +1,13 @@ 'use strict'; const common = require('../common'); -const URL = require('url').URL; -const { test, assert_equals, assert_throws } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const URL = require('url').URL; +const { test, assert_equals, assert_throws } = require('../common/wpt'); + /* eslint-disable */ /* WPT Refs: https://github.com/w3c/web-platform-tests/blob/8791bed/url/historical.html diff --git a/test/parallel/test-whatwg-url-inspect.js b/test/parallel/test-whatwg-url-inspect.js index 8db1a20e5be152..5758b39b8af83d 100644 --- a/test/parallel/test-whatwg-url-inspect.js +++ b/test/parallel/test-whatwg-url-inspect.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const util = require('util'); -const URL = require('url').URL; -const assert = require('assert'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const util = require('util'); +const URL = require('url').URL; +const assert = require('assert'); + // Tests below are not from WPT. const url = new URL('https://username:password@host.name:8080/path/name/?que=ry#hash'); diff --git a/test/parallel/test-whatwg-url-origin.js b/test/parallel/test-whatwg-url-origin.js index b5b54f887f09eb..732100e142a509 100644 --- a/test/parallel/test-whatwg-url-origin.js +++ b/test/parallel/test-whatwg-url-origin.js @@ -1,15 +1,14 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const URL = require('url').URL; -const { test, assert_equals } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const URL = require('url').URL; +const { test, assert_equals } = require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-tests')) }; diff --git a/test/parallel/test-whatwg-url-parsing.js b/test/parallel/test-whatwg-url-parsing.js index 0e8f3b6d77cb56..35658d94a912bc 100644 --- a/test/parallel/test-whatwg-url-parsing.js +++ b/test/parallel/test-whatwg-url-parsing.js @@ -1,16 +1,15 @@ 'use strict'; const common = require('../common'); -const URL = require('url').URL; -const path = require('path'); -const assert = require('assert'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const URL = require('url').URL; +const path = require('path'); +const assert = require('assert'); + // Tests below are not from WPT. const tests = require(path.join(common.fixturesDir, 'url-tests')); const failureTests = tests.filter((test) => test.failure).concat([ diff --git a/test/parallel/test-whatwg-url-setters.js b/test/parallel/test-whatwg-url-setters.js index 60a482decc32f3..938c2aa2538765 100644 --- a/test/parallel/test-whatwg-url-setters.js +++ b/test/parallel/test-whatwg-url-setters.js @@ -1,6 +1,11 @@ 'use strict'; const common = require('../common'); +if (!common.hasIntl) { + // A handful of the tests fail when ICU is not included. + common.skip('missing Intl'); +} + const assert = require('assert'); const path = require('path'); const URL = require('url').URL; @@ -8,12 +13,6 @@ const { test, assert_equals } = require('../common/wpt'); const additionalTestCases = require( path.join(common.fixturesDir, 'url-setter-tests-additional.js')); -if (!common.hasIntl) { - // A handful of the tests fail when ICU is not included. - common.skip('missing Intl'); - return; -} - const request = { response: require(path.join(common.fixturesDir, 'url-setter-tests')) }; diff --git a/test/parallel/test-whatwg-url-toascii.js b/test/parallel/test-whatwg-url-toascii.js index bd986c96a47a84..851240ce650a70 100644 --- a/test/parallel/test-whatwg-url-toascii.js +++ b/test/parallel/test-whatwg-url-toascii.js @@ -1,15 +1,14 @@ 'use strict'; const common = require('../common'); -const path = require('path'); -const { URL } = require('url'); -const { test, assert_equals, assert_throws } = require('../common/wpt'); - if (!common.hasIntl) { // A handful of the tests fail when ICU is not included. common.skip('missing Intl'); - return; } +const path = require('path'); +const { URL } = require('url'); +const { test, assert_equals, assert_throws } = require('../common/wpt'); + const request = { response: require(path.join(common.fixturesDir, 'url-toascii')) }; diff --git a/test/parallel/test-windows-abort-exitcode.js b/test/parallel/test-windows-abort-exitcode.js index c5c5fa6f3a5e78..d61a91315bb679 100644 --- a/test/parallel/test-windows-abort-exitcode.js +++ b/test/parallel/test-windows-abort-exitcode.js @@ -1,17 +1,16 @@ 'use strict'; const common = require('../common'); +if (!common.isWindows) + common.skip('test is windows specific'); + const assert = require('assert'); +const spawn = require('child_process').spawn; // This test makes sure that an aborted node process // exits with code 3 on Windows. // Spawn a child, force an abort, and then check the // exit code in the parent. -const spawn = require('child_process').spawn; -if (!common.isWindows) { - common.skip('test is windows specific'); - return; -} if (process.argv[2] === 'child') { process.abort(); } else { diff --git a/test/parallel/test-zlib-random-byte-pipes.js b/test/parallel/test-zlib-random-byte-pipes.js index 4ccfd2dc228255..f15b31c2f42c96 100644 --- a/test/parallel/test-zlib-random-byte-pipes.js +++ b/test/parallel/test-zlib-random-byte-pipes.js @@ -21,19 +21,16 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const crypto = require('crypto'); +const assert = require('assert'); +const crypto = require('crypto'); const stream = require('stream'); -const Stream = stream.Stream; const util = require('util'); const zlib = require('zlib'); +const Stream = stream.Stream; // emit random bytes, and keep a shasum function RandomReadStream(opt) { diff --git a/test/pummel/test-abort-fatal-error.js b/test/pummel/test-abort-fatal-error.js index 6208a13261bdfa..176a16c9eac8de 100644 --- a/test/pummel/test-abort-fatal-error.js +++ b/test/pummel/test-abort-fatal-error.js @@ -21,13 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (common.isWindows) { +if (common.isWindows) common.skip('no RLIMIT_NOFILE on Windows'); - return; -} +const assert = require('assert'); const exec = require('child_process').exec; let cmdline = `ulimit -c 0; ${process.execPath}`; diff --git a/test/pummel/test-crypto-dh.js b/test/pummel/test-crypto-dh.js index 2268994b4d2f16..f64f982c0e1100 100644 --- a/test/pummel/test-crypto-dh.js +++ b/test/pummel/test-crypto-dh.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('node compiled without OpenSSL.'); + const assert = require('assert'); const crypto = require('crypto'); -if (!common.hasCrypto) { - common.skip('node compiled without OpenSSL.'); - return; -} - assert.throws( function() { crypto.getDiffieHellman('unknown-group'); diff --git a/test/pummel/test-crypto-timing-safe-equal-benchmarks.js b/test/pummel/test-crypto-timing-safe-equal-benchmarks.js index 5560a4a256b5fe..4aad5ed20cbe39 100644 --- a/test/pummel/test-crypto-timing-safe-equal-benchmarks.js +++ b/test/pummel/test-crypto-timing-safe-equal-benchmarks.js @@ -1,17 +1,12 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip('memory-intensive test'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); const BENCHMARK_FUNC_PATH = diff --git a/test/pummel/test-dh-regr.js b/test/pummel/test-dh-regr.js index 092d91428eb4e7..b8e0ca3f1f88cc 100644 --- a/test/pummel/test-dh-regr.js +++ b/test/pummel/test-dh-regr.js @@ -21,12 +21,10 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const crypto = require('crypto'); const p = crypto.createDiffieHellman(1024).getPrime(); diff --git a/test/pummel/test-dtrace-jsstack.js b/test/pummel/test-dtrace-jsstack.js index d69e96b2511711..41d10bf1d84e05 100644 --- a/test/pummel/test-dtrace-jsstack.js +++ b/test/pummel/test-dtrace-jsstack.js @@ -21,14 +21,12 @@ 'use strict'; const common = require('../common'); +if (!common.isSunOS) + common.skip('no DTRACE support'); + const assert = require('assert'); const os = require('os'); -if (!common.isSunOS) { - common.skip('no DTRACE support'); - return; -} - /* * Some functions to create a recognizable stack. */ diff --git a/test/pummel/test-https-ci-reneg-attack.js b/test/pummel/test-https-ci-reneg-attack.js index 6cc8c51fe21114..fbe0e37873c79a 100644 --- a/test/pummel/test-https-ci-reneg-attack.js +++ b/test/pummel/test-https-ci-reneg-attack.js @@ -21,23 +21,18 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const tls = require('tls'); const https = require('https'); - const fs = require('fs'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - // renegotiation limits to test const LIMITS = [0, 1, 2, 3, 5, 10, 16]; diff --git a/test/pummel/test-https-large-response.js b/test/pummel/test-https-large-response.js index 17038bf7bde563..7775ccca63e1c3 100644 --- a/test/pummel/test-https-large-response.js +++ b/test/pummel/test-https-large-response.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); const fs = require('fs'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); const options = { diff --git a/test/pummel/test-https-no-reader.js b/test/pummel/test-https-no-reader.js index cc77993a7312f6..b8071b9ba97819 100644 --- a/test/pummel/test-https-no-reader.js +++ b/test/pummel/test-https-no-reader.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const https = require('https'); +const assert = require('assert'); +const https = require('https'); const fs = require('fs'); const path = require('path'); diff --git a/test/pummel/test-keep-alive.js b/test/pummel/test-keep-alive.js index 26e19786913f22..d2387495c1c288 100644 --- a/test/pummel/test-keep-alive.js +++ b/test/pummel/test-keep-alive.js @@ -23,16 +23,14 @@ // This test requires the program 'wrk' const common = require('../common'); +if (common.isWindows) + common.skip('no `wrk` on windows'); + const assert = require('assert'); const spawn = require('child_process').spawn; const http = require('http'); const url = require('url'); -if (common.isWindows) { - common.skip('no `wrk` on windows'); - return; -} - const body = 'hello world\n'; const server = http.createServer(function(req, res) { res.writeHead(200, { diff --git a/test/pummel/test-regress-GH-892.js b/test/pummel/test-regress-GH-892.js index 1a7e3ad1cb0377..b1d46adbabb362 100644 --- a/test/pummel/test-regress-GH-892.js +++ b/test/pummel/test-regress-GH-892.js @@ -27,15 +27,12 @@ // TLS server causes the child process to exit cleanly before having sent // the entire buffer. const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const https = require('https'); - const fs = require('fs'); const bytesExpected = 1024 * 1024 * 32; diff --git a/test/pummel/test-tls-ci-reneg-attack.js b/test/pummel/test-tls-ci-reneg-attack.js index 4bbaacebf4b6e8..905d922db3a7b5 100644 --- a/test/pummel/test-tls-ci-reneg-attack.js +++ b/test/pummel/test-tls-ci-reneg-attack.js @@ -21,22 +21,17 @@ 'use strict'; const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +if (!common.opensslCli) + common.skip('node compiled without OpenSSL CLI.'); + const assert = require('assert'); const spawn = require('child_process').spawn; - -if (!common.hasCrypto) { - common.skip('missing crypto'); - return; -} const tls = require('tls'); - const fs = require('fs'); -if (!common.opensslCli) { - common.skip('node compiled without OpenSSL CLI.'); - return; -} - // renegotiation limits to test const LIMITS = [0, 1, 2, 3, 5, 10, 16]; diff --git a/test/pummel/test-tls-connect-memleak.js b/test/pummel/test-tls-connect-memleak.js index d4797e194026f9..c086933a3e0474 100644 --- a/test/pummel/test-tls-connect-memleak.js +++ b/test/pummel/test-tls-connect-memleak.js @@ -23,14 +23,11 @@ // Flags: --expose-gc const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); assert.strictEqual( diff --git a/test/pummel/test-tls-securepair-client.js b/test/pummel/test-tls-securepair-client.js index f147d019c9388f..e9bae682d7290a 100644 --- a/test/pummel/test-tls-securepair-client.js +++ b/test/pummel/test-tls-securepair-client.js @@ -20,19 +20,14 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. 'use strict'; -// const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const join = require('path').join; const net = require('net'); diff --git a/test/pummel/test-tls-server-large-request.js b/test/pummel/test-tls-server-large-request.js index 021fb7913b586b..3255633ec7c41f 100644 --- a/test/pummel/test-tls-server-large-request.js +++ b/test/pummel/test-tls-server-large-request.js @@ -21,14 +21,11 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} -const tls = require('tls'); +const assert = require('assert'); +const tls = require('tls'); const fs = require('fs'); const stream = require('stream'); const util = require('util'); diff --git a/test/pummel/test-tls-session-timeout.js b/test/pummel/test-tls-session-timeout.js index 1bb3592042275f..9b175da77e62a7 100644 --- a/test/pummel/test-tls-session-timeout.js +++ b/test/pummel/test-tls-session-timeout.js @@ -22,15 +22,11 @@ 'use strict'; const common = require('../common'); -if (!common.opensslCli) { +if (!common.opensslCli) common.skip('node compiled without OpenSSL CLI.'); - return; -} -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} doTest(); diff --git a/test/pummel/test-tls-throttle.js b/test/pummel/test-tls-throttle.js index a9e2442ef2bcfa..2d0ea1c673a70c 100644 --- a/test/pummel/test-tls-throttle.js +++ b/test/pummel/test-tls-throttle.js @@ -24,12 +24,10 @@ // seconds. Makes sure that pause and resume work properly. const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} + +const assert = require('assert'); const tls = require('tls'); const fs = require('fs'); diff --git a/test/sequential/test-benchmark-http.js b/test/sequential/test-benchmark-http.js index ce3d58e5d8d4b8..34fbc3732b20b9 100644 --- a/test/sequential/test-benchmark-http.js +++ b/test/sequential/test-benchmark-http.js @@ -2,10 +2,8 @@ const common = require('../common'); -if (!common.enoughTestMem) { +if (!common.enoughTestMem) common.skip('Insufficient memory for HTTP benchmark test'); - return; -} // Minimal test for http benchmarks. This makes sure the benchmarks aren't // horribly broken but nothing more than that. diff --git a/test/sequential/test-buffer-creation-regression.js b/test/sequential/test-buffer-creation-regression.js index 8137e4830a9cb0..8c3a09848c9fa9 100644 --- a/test/sequential/test-buffer-creation-regression.js +++ b/test/sequential/test-buffer-creation-regression.js @@ -29,7 +29,8 @@ try { arrayBuffer = new ArrayBuffer(size); } catch (e) { if (e instanceof RangeError && acceptableOOMErrors.includes(e.message)) - return common.skip(`Unable to allocate ${size} bytes for ArrayBuffer`); + common.skip(`Unable to allocate ${size} bytes for ArrayBuffer`); + throw e; } diff --git a/test/sequential/test-child-process-emfile.js b/test/sequential/test-child-process-emfile.js index 59756e4c7b2e7c..e81b3a0ffec9cb 100644 --- a/test/sequential/test-child-process-emfile.js +++ b/test/sequential/test-child-process-emfile.js @@ -21,15 +21,13 @@ 'use strict'; const common = require('../common'); +if (common.isWindows) + common.skip('no RLIMIT_NOFILE on Windows'); + const assert = require('assert'); const child_process = require('child_process'); const fs = require('fs'); -if (common.isWindows) { - common.skip('no RLIMIT_NOFILE on Windows'); - return; -} - const ulimit = Number(child_process.execSync('ulimit -Hn')); if (ulimit > 64 || Number.isNaN(ulimit)) { // Sorry about this nonsense. It can be replaced if diff --git a/test/sequential/test-child-process-pass-fd.js b/test/sequential/test-child-process-pass-fd.js index b2481270faf065..8cc11f6c11f5b4 100644 --- a/test/sequential/test-child-process-pass-fd.js +++ b/test/sequential/test-child-process-pass-fd.js @@ -1,15 +1,13 @@ 'use strict'; const common = require('../common'); +if ((process.config.variables.arm_version === '6') || + (process.config.variables.arm_version === '7')) + common.skip('Too slow for armv6 and armv7 bots'); + const assert = require('assert'); const fork = require('child_process').fork; const net = require('net'); -if ((process.config.variables.arm_version === '6') || - (process.config.variables.arm_version === '7')) { - common.skip('Too slow for armv6 and armv7 bots'); - return; -} - const N = 80; if (process.argv[2] !== 'child') { diff --git a/test/sequential/test-crypto-timing-safe-equal.js b/test/sequential/test-crypto-timing-safe-equal.js index 7a1f8d2993669b..2847af9ef8bdb5 100644 --- a/test/sequential/test-crypto-timing-safe-equal.js +++ b/test/sequential/test-crypto-timing-safe-equal.js @@ -1,12 +1,9 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); - -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} +const assert = require('assert'); const crypto = require('crypto'); assert.strictEqual( diff --git a/test/sequential/test-fs-readfile-tostring-fail.js b/test/sequential/test-fs-readfile-tostring-fail.js index ee962652fc14b5..2eb6ce0732dd70 100644 --- a/test/sequential/test-fs-readfile-tostring-fail.js +++ b/test/sequential/test-fs-readfile-tostring-fail.js @@ -2,11 +2,8 @@ const common = require('../common'); -if (!common.enoughTestMem) { - const skipMessage = 'intensive toString tests due to memory confinements'; - common.skip(skipMessage); - return; -} +if (!common.enoughTestMem) + common.skip('intensive toString tests due to memory confinements'); const assert = require('assert'); const fs = require('fs'); diff --git a/test/sequential/test-https-set-timeout-server.js b/test/sequential/test-https-set-timeout-server.js index aa4eb5714ffa58..e1b9430583ff39 100644 --- a/test/sequential/test-https-set-timeout-server.js +++ b/test/sequential/test-https-set-timeout-server.js @@ -22,10 +22,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) { +if (!common.hasCrypto) common.skip('missing crypto'); - return; -} const assert = require('assert'); const fs = require('fs'); diff --git a/test/sequential/test-net-server-address.js b/test/sequential/test-net-server-address.js index a6e09a86532dbc..52a8c1ac820e24 100644 --- a/test/sequential/test-net-server-address.js +++ b/test/sequential/test-net-server-address.js @@ -40,7 +40,7 @@ server_ipv4 })); if (!common.hasIPv6) { - common.skip('ipv6 part of test, no IPv6 support'); + common.printSkipMessage('ipv6 part of test, no IPv6 support'); return; } diff --git a/test/tick-processor/test-tick-processor-builtin.js b/test/tick-processor/test-tick-processor-builtin.js index afe08bdb0b672b..0fb839f8d1321c 100644 --- a/test/tick-processor/test-tick-processor-builtin.js +++ b/test/tick-processor/test-tick-processor-builtin.js @@ -1,19 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.enoughTestCpu) + common.skip('test is CPU-intensive'); + if (common.isWindows || common.isSunOS || common.isAix || common.isLinuxPPCBE || - common.isFreeBSD) { + common.isFreeBSD) common.skip('C++ symbols are not mapped for this os.'); - return; -} - -if (!common.enoughTestCpu) { - common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); diff --git a/test/tick-processor/test-tick-processor-cpp-core.js b/test/tick-processor/test-tick-processor-cpp-core.js index 72eb25e91c394a..dc1aed41a79ea6 100644 --- a/test/tick-processor/test-tick-processor-cpp-core.js +++ b/test/tick-processor/test-tick-processor-cpp-core.js @@ -1,19 +1,15 @@ 'use strict'; const common = require('../common'); +if (!common.enoughTestCpu) + common.skip('test is CPU-intensive'); + if (common.isWindows || common.isSunOS || common.isAix || common.isLinuxPPCBE || - common.isFreeBSD) { + common.isFreeBSD) common.skip('C++ symbols are not mapped for this os.'); - return; -} - -if (!common.enoughTestCpu) { - common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); diff --git a/test/tick-processor/test-tick-processor-unknown.js b/test/tick-processor/test-tick-processor-unknown.js index ab3d110ccff012..c0f5f332b260fe 100644 --- a/test/tick-processor/test-tick-processor-unknown.js +++ b/test/tick-processor/test-tick-processor-unknown.js @@ -6,15 +6,11 @@ const common = require('../common'); // the full 64 bits and the result is that it does not process the // addresses correctly and runs out of memory // Disabling until we get a fix upstreamed into V8 -if (common.isAix) { +if (common.isAix) common.skip('AIX address range too big for scripts.'); - return; -} -if (!common.enoughTestCpu) { +if (!common.enoughTestCpu) common.skip('test is CPU-intensive'); - return; -} const base = require('./tick-processor-base.js'); From e583e3b0b60e24443430689d206ed97a1a8da24d Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 1 Jul 2017 08:14:28 -0700 Subject: [PATCH 119/248] test: skip test-fs-readdir-ucs2 if no support If the filesystem does not support UCS2, do not run the test. PR-URL: https://github.com/nodejs/node/pull/14029 Fixes: https://github.com/nodejs/node/issues/14028 Reviewed-By: Colin Ihrig Reviewed-By: Luigi Pinca Reviewed-By: Refael Ackermann Reviewed-By: Richard Lau --- test/parallel/parallel.status | 1 - test/parallel/test-fs-readdir-ucs2.js | 16 +++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index 5a0e7735b6277d..fda5e01e500078 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -13,7 +13,6 @@ prefix parallel [$system==macos] [$arch==arm || $arch==arm64] -test-fs-readdir-ucs2 : PASS,FLAKY test-npm-install: PASS,FLAKY [$system==solaris] # Also applies to SmartOS diff --git a/test/parallel/test-fs-readdir-ucs2.js b/test/parallel/test-fs-readdir-ucs2.js index e8e69d6ee2fcc7..debcfb7750becd 100644 --- a/test/parallel/test-fs-readdir-ucs2.js +++ b/test/parallel/test-fs-readdir-ucs2.js @@ -14,16 +14,18 @@ const root = Buffer.from(`${common.tmpDir}${path.sep}`); const filebuff = Buffer.from(filename, 'ucs2'); const fullpath = Buffer.concat([root, filebuff]); -fs.closeSync(fs.openSync(fullpath, 'w+')); +try { + fs.closeSync(fs.openSync(fullpath, 'w+')); +} catch (e) { + if (e.code === 'EINVAL') + common.skip('test requires filesystem that supports UCS2'); + throw e; +} -fs.readdir(common.tmpDir, 'ucs2', (err, list) => { +fs.readdir(common.tmpDir, 'ucs2', common.mustCall((err, list) => { assert.ifError(err); assert.strictEqual(1, list.length); const fn = list[0]; assert.deepStrictEqual(filebuff, Buffer.from(fn, 'ucs2')); assert.strictEqual(fn, filename); -}); - -process.on('exit', () => { - fs.unlinkSync(fullpath); -}); +})); From 5abe8c06937ea398ecbc5d785eaa4ef8e56f95ec Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Mon, 3 Jul 2017 14:00:41 -0700 Subject: [PATCH 120/248] test: restore no-op function in test Remove common.mustCall() in test that might connect to a server already running on the local host. PR-URL: https://github.com/nodejs/node/pull/14065 Reviewed-By: Anna Henningsen Reviewed-By: Refael Ackermann Reviewed-By: Yuta Hiroto Reviewed-By: Luigi Pinca --- test/parallel/test-http-hostname-typechecking.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/parallel/test-http-hostname-typechecking.js b/test/parallel/test-http-hostname-typechecking.js index d1a407cf28dcae..74813e0582d853 100644 --- a/test/parallel/test-http-hostname-typechecking.js +++ b/test/parallel/test-http-hostname-typechecking.js @@ -1,5 +1,5 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const http = require('http'); @@ -21,7 +21,7 @@ vals.forEach((v) => { // These values are OK and should not throw synchronously ['', undefined, null].forEach((v) => { assert.doesNotThrow(() => { - http.request({hostname: v}).on('error', common.mustCall()).end(); - http.request({host: v}).on('error', common.mustCall()).end(); + http.request({hostname: v}).on('error', () => {}).end(); + http.request({host: v}).on('error', () => {}).end(); }); }); From 1ff5aea960b2586a8e46b8df871ef888dc21f649 Mon Sep 17 00:00:00 2001 From: Natanael Log Date: Sat, 1 Jul 2017 15:10:36 +0200 Subject: [PATCH 121/248] doc, util, console: clarify ambiguous docs Add clarification to the documentation on util.format() and console.log() regarding how excessive arguments are treated when the first argument is a non-format string compared to when it is not a string at all. PR-URL: https://github.com/nodejs/node/pull/14027 Fixes: https://github.com/nodejs/node/issues/13908 Reviewed-By: Vse Mozhet Byt Reviewed-By: Luigi Pinca Reviewed-By: Franziska Hinkelmann Reviewed-By: Colin Ihrig --- doc/api/console.md | 4 +--- doc/api/util.md | 11 ++++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/doc/api/console.md b/doc/api/console.md index 3411d3ce0afba2..4939ed77bef1b8 100644 --- a/doc/api/console.md +++ b/doc/api/console.md @@ -246,9 +246,7 @@ console.log('count:', count); // Prints: count: 5, to stdout ``` -If formatting elements (e.g. `%d`) are not found in the first string then -[`util.inspect()`][] is called on each argument and the resulting string -values are concatenated. See [`util.format()`][] for more information. +See [`util.format()`][] for more information. ### console.time(label) + ```js [ '4.4.4.4', @@ -314,7 +314,7 @@ function will contain an array of objects with the following properties: For example: - + ```js { flags: 's', @@ -374,7 +374,7 @@ be an object with the following properties: * `expire` * `minttl` - + ```js { nsname: 'ns.example.com', @@ -405,7 +405,7 @@ be an array of objects with the following properties: * `port` * `name` - + ```js { priority: 10, @@ -459,12 +459,12 @@ will be present on the object: Here is a example of the `ret` object passed to the callback: - + ```js [ { type: 'A', address: '127.0.0.1', ttl: 299 }, { type: 'CNAME', value: 'example.com' }, { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, - { type: 'NS', value: 'ns1.example.com', type: 'NS' }, + { type: 'NS', value: 'ns1.example.com' }, { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, { type: 'SOA', nsname: 'ns1.example.com', diff --git a/doc/api/http.md b/doc/api/http.md index 85e877f7a411f9..e71b22649ea59c 100644 --- a/doc/api/http.md +++ b/doc/api/http.md @@ -12,7 +12,7 @@ user is able to stream data. HTTP message headers are represented by an object like this: - + ```js { 'content-length': '123', 'content-type': 'text/plain', diff --git a/doc/api/os.md b/doc/api/os.md index 6afa69d39edb1d..3b4b9526cb48cc 100644 --- a/doc/api/os.md +++ b/doc/api/os.md @@ -254,7 +254,7 @@ The properties available on the assigned network address object include: * `scopeid` {number} The numeric IPv6 scope ID (only specified when `family` is `IPv6`) - + ```js { lo: [ diff --git a/doc/api/process.md b/doc/api/process.md index 9a8323de1741cf..82d854109973c2 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -528,7 +528,7 @@ running the `./configure` script. An example of the possible output looks like: - + ```js { target_defaults: @@ -792,7 +792,7 @@ See environ(7). An example of this object looks like: - + ```js { TERM: 'xterm-256color', @@ -1224,7 +1224,7 @@ console.log(process.memoryUsage()); Will generate: - + ```js { rss: 4935680, @@ -1396,7 +1396,7 @@ tarball. For example: - + ```js { name: 'node', @@ -1758,7 +1758,7 @@ console.log(process.versions); Will generate an object similar to: - + ```js { http_parser: '2.3.0', diff --git a/doc/api/querystring.md b/doc/api/querystring.md index 9216414f8a194e..c6b89235c14d43 100644 --- a/doc/api/querystring.md +++ b/doc/api/querystring.md @@ -59,7 +59,7 @@ collection of key and value pairs. For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: - + ```js { foo: 'bar', diff --git a/doc/api/repl.md b/doc/api/repl.md index 9d6bdfb112d6cf..d18b34a5eab724 100644 --- a/doc/api/repl.md +++ b/doc/api/repl.md @@ -40,7 +40,7 @@ The following special commands are supported by all REPL instances: `> .load ./file/to/load.js` * `.editor` - Enter editor mode (`-D` to finish, `-C` to cancel) - + ```js > .editor // Entering editor mode (^D to finish, ^C to cancel) @@ -76,7 +76,7 @@ evaluation function when the `repl.REPLServer` instance is created. The default evaluator supports direct evaluation of JavaScript expressions: - + ```js > 1 + 1 2 @@ -105,7 +105,7 @@ repl.start('> ').context.m = msg; Properties in the `context` object appear as local within the REPL: - + ```js $ node repl_test.js > m @@ -135,7 +135,7 @@ REPL environment when used. For instance, unless otherwise declared as a global or scoped variable, the input `fs` will be evaluated on-demand as `global.fs = require('fs')`. - + ```js > fs.createReadStream('./some/file'); ``` @@ -146,7 +146,7 @@ The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable `_` (underscore). Explicitly setting `_` to a value will disable this behavior. - + ```js > [ 'a', 'b', 'c' ] [ 'a', 'b', 'c' ] @@ -293,7 +293,7 @@ r.on('reset', initializeContext); When this code is executed, the global `'m'` variable can be modified but then reset to its initial value using the `.clear` command: - + ```js $ ./node example.js > m @@ -443,7 +443,7 @@ Node.js itself uses the `repl` module to provide its own interactive interface for executing JavaScript. This can be used by executing the Node.js binary without passing any arguments (or by passing the `-i` argument): - + ```js $ node > const a = [1, 2, 3]; diff --git a/doc/api/v8.md b/doc/api/v8.md index 32b0fe71eec55e..e9ee98a4844cf6 100644 --- a/doc/api/v8.md +++ b/doc/api/v8.md @@ -116,7 +116,7 @@ swapped out by the operating system. For example: - + ```js { total_heap_size: 7326976, diff --git a/tools/eslint/node_modules/ccount/history.md b/tools/eslint/node_modules/ccount/history.md deleted file mode 100644 index 908b6f7578944e..00000000000000 --- a/tools/eslint/node_modules/ccount/history.md +++ /dev/null @@ -1,11 +0,0 @@ - - - - -1.0.1 / 2016-07-23 -================== - -* Rewrite module ([`c3cd494`](https://github.com/wooorm/ccount/commit/c3cd494)) - -1.0.0 / 2015-07-12 -================== diff --git a/tools/eslint/node_modules/ccount/index.js b/tools/eslint/node_modules/ccount/index.js deleted file mode 100644 index 0d72d6e52763cc..00000000000000 --- a/tools/eslint/node_modules/ccount/index.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module ccount - * @fileoverview Count characters. - */ - -'use strict'; - -/* Expose. */ -module.exports = ccount; - -/** - * Count how many characters `character` occur in `value`. - * - * @example - * ccount('foo(bar(baz)', '(') // 2 - * ccount('foo(bar(baz)', ')') // 1 - * - * @param {string} value - Content, coerced to string. - * @param {string} character - Single character to look - * for. - * @return {number} - Count. - * @throws {Error} - when `character` is not a single - * character. - */ -function ccount(value, character) { - var count = 0; - var index; - - value = String(value); - - if (typeof character !== 'string' || character.length !== 1) { - throw new Error('Expected character'); - } - - index = value.indexOf(character); - - while (index !== -1) { - count++; - index = value.indexOf(character, index + 1); - } - - return count; -} diff --git a/tools/eslint/node_modules/ccount/readme.md b/tools/eslint/node_modules/ccount/readme.md deleted file mode 100644 index d773d12c8c59e5..00000000000000 --- a/tools/eslint/node_modules/ccount/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# ccount [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] - - - -Count characters. - -## Installation - -[npm][npm-install]: - -```bash -npm install ccount -``` - -## Usage - -```javascript -var ccount = require('ccount'); - -ccount('foo(bar(baz)', '(') // 2 -ccount('foo(bar(baz)', ')') // 1 -``` - -## API - -### `ccount(value, character)` - -Get the total count of `character` in `value`. - -###### Parameters - -* `value` (`string`) — Content, coerced to string. -* `character` (`string`) — Single character to look for. - -###### Returns - -`number` — Number of times `character` occurred in `value`. - -## License - -[MIT][license] © [Titus Wormer][author] - - - -[travis-badge]: https://img.shields.io/travis/wooorm/ccount.svg - -[travis]: https://travis-ci.org/wooorm/ccount - -[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/ccount.svg - -[codecov]: https://codecov.io/github/wooorm/ccount - -[npm-install]: https://docs.npmjs.com/cli/install - -[license]: LICENSE - -[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/character-entities-html4/index.json b/tools/eslint/node_modules/character-entities-html4/index.json deleted file mode 100644 index fa0d7bc7c770c8..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/index.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "nbsp": " ", - "iexcl": "¡", - "cent": "¢", - "pound": "£", - "curren": "¤", - "yen": "¥", - "brvbar": "¦", - "sect": "§", - "uml": "¨", - "copy": "©", - "ordf": "ª", - "laquo": "«", - "not": "¬", - "shy": "­", - "reg": "®", - "macr": "¯", - "deg": "°", - "plusmn": "±", - "sup2": "²", - "sup3": "³", - "acute": "´", - "micro": "µ", - "para": "¶", - "middot": "·", - "cedil": "¸", - "sup1": "¹", - "ordm": "º", - "raquo": "»", - "frac14": "¼", - "frac12": "½", - "frac34": "¾", - "iquest": "¿", - "Agrave": "À", - "Aacute": "Á", - "Acirc": "Â", - "Atilde": "Ã", - "Auml": "Ä", - "Aring": "Å", - "AElig": "Æ", - "Ccedil": "Ç", - "Egrave": "È", - "Eacute": "É", - "Ecirc": "Ê", - "Euml": "Ë", - "Igrave": "Ì", - "Iacute": "Í", - "Icirc": "Î", - "Iuml": "Ï", - "ETH": "Ð", - "Ntilde": "Ñ", - "Ograve": "Ò", - "Oacute": "Ó", - "Ocirc": "Ô", - "Otilde": "Õ", - "Ouml": "Ö", - "times": "×", - "Oslash": "Ø", - "Ugrave": "Ù", - "Uacute": "Ú", - "Ucirc": "Û", - "Uuml": "Ü", - "Yacute": "Ý", - "THORN": "Þ", - "szlig": "ß", - "agrave": "à", - "aacute": "á", - "acirc": "â", - "atilde": "ã", - "auml": "ä", - "aring": "å", - "aelig": "æ", - "ccedil": "ç", - "egrave": "è", - "eacute": "é", - "ecirc": "ê", - "euml": "ë", - "igrave": "ì", - "iacute": "í", - "icirc": "î", - "iuml": "ï", - "eth": "ð", - "ntilde": "ñ", - "ograve": "ò", - "oacute": "ó", - "ocirc": "ô", - "otilde": "õ", - "ouml": "ö", - "divide": "÷", - "oslash": "ø", - "ugrave": "ù", - "uacute": "ú", - "ucirc": "û", - "uuml": "ü", - "yacute": "ý", - "thorn": "þ", - "yuml": "ÿ", - "fnof": "ƒ", - "Alpha": "Α", - "Beta": "Β", - "Gamma": "Γ", - "Delta": "Δ", - "Epsilon": "Ε", - "Zeta": "Ζ", - "Eta": "Η", - "Theta": "Θ", - "Iota": "Ι", - "Kappa": "Κ", - "Lambda": "Λ", - "Mu": "Μ", - "Nu": "Ν", - "Xi": "Ξ", - "Omicron": "Ο", - "Pi": "Π", - "Rho": "Ρ", - "Sigma": "Σ", - "Tau": "Τ", - "Upsilon": "Υ", - "Phi": "Φ", - "Chi": "Χ", - "Psi": "Ψ", - "Omega": "Ω", - "alpha": "α", - "beta": "β", - "gamma": "γ", - "delta": "δ", - "epsilon": "ε", - "zeta": "ζ", - "eta": "η", - "theta": "θ", - "iota": "ι", - "kappa": "κ", - "lambda": "λ", - "mu": "μ", - "nu": "ν", - "xi": "ξ", - "omicron": "ο", - "pi": "π", - "rho": "ρ", - "sigmaf": "ς", - "sigma": "σ", - "tau": "τ", - "upsilon": "υ", - "phi": "φ", - "chi": "χ", - "psi": "ψ", - "omega": "ω", - "thetasym": "ϑ", - "upsih": "ϒ", - "piv": "ϖ", - "bull": "•", - "hellip": "…", - "prime": "′", - "Prime": "″", - "oline": "‾", - "frasl": "⁄", - "weierp": "℘", - "image": "ℑ", - "real": "ℜ", - "trade": "™", - "alefsym": "ℵ", - "larr": "←", - "uarr": "↑", - "rarr": "→", - "darr": "↓", - "harr": "↔", - "crarr": "↵", - "lArr": "⇐", - "uArr": "⇑", - "rArr": "⇒", - "dArr": "⇓", - "hArr": "⇔", - "forall": "∀", - "part": "∂", - "exist": "∃", - "empty": "∅", - "nabla": "∇", - "isin": "∈", - "notin": "∉", - "ni": "∋", - "prod": "∏", - "sum": "∑", - "minus": "−", - "lowast": "∗", - "radic": "√", - "prop": "∝", - "infin": "∞", - "ang": "∠", - "and": "∧", - "or": "∨", - "cap": "∩", - "cup": "∪", - "int": "∫", - "there4": "∴", - "sim": "∼", - "cong": "≅", - "asymp": "≈", - "ne": "≠", - "equiv": "≡", - "le": "≤", - "ge": "≥", - "sub": "⊂", - "sup": "⊃", - "nsub": "⊄", - "sube": "⊆", - "supe": "⊇", - "oplus": "⊕", - "otimes": "⊗", - "perp": "⊥", - "sdot": "⋅", - "lceil": "⌈", - "rceil": "⌉", - "lfloor": "⌊", - "rfloor": "⌋", - "lang": "〈", - "rang": "〉", - "loz": "◊", - "spades": "♠", - "clubs": "♣", - "hearts": "♥", - "diams": "♦", - "quot": "\"", - "amp": "&", - "lt": "<", - "gt": ">", - "OElig": "Œ", - "oelig": "œ", - "Scaron": "Š", - "scaron": "š", - "Yuml": "Ÿ", - "circ": "ˆ", - "tilde": "˜", - "ensp": " ", - "emsp": " ", - "thinsp": " ", - "zwnj": "‌", - "zwj": "‍", - "lrm": "‎", - "rlm": "‏", - "ndash": "–", - "mdash": "—", - "lsquo": "‘", - "rsquo": "’", - "sbquo": "‚", - "ldquo": "“", - "rdquo": "”", - "bdquo": "„", - "dagger": "†", - "Dagger": "‡", - "permil": "‰", - "lsaquo": "‹", - "rsaquo": "›", - "euro": "€" -} diff --git a/tools/eslint/node_modules/character-entities-html4/package.json b/tools/eslint/node_modules/character-entities-html4/package.json deleted file mode 100644 index 9540ae4f9514bf..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_from": "character-entities-html4@^1.0.0", - "_id": "character-entities-html4@1.1.0", - "_inBundle": false, - "_integrity": "sha1-GrCFUdPOH6HfCNAPucod77FHoGw=", - "_location": "/character-entities-html4", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "character-entities-html4@^1.0.0", - "name": "character-entities-html4", - "escapedName": "character-entities-html4", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/stringify-entities" - ], - "_resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.0.tgz", - "_shasum": "1ab08551d3ce1fa1df08d00fb9ca1defb147a06c", - "_spec": "character-entities-html4@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/stringify-entities", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com", - "url": "http://wooorm.com" - }, - "bugs": { - "url": "https://github.com/wooorm/character-entities-html4/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com", - "url": "http://wooorm.com" - } - ], - "dependencies": {}, - "deprecated": false, - "description": "HTML4 character entity information", - "devDependencies": { - "bail": "^1.0.1", - "browserify": "^13.0.1", - "concat-stream": "^1.5.2", - "esmangle": "^1.0.1", - "nyc": "^8.0.0", - "remark-cli": "^2.0.0", - "remark-preset-wooorm": "^1.0.0", - "tape": "^4.0.0", - "xo": "^0.17.0" - }, - "files": [ - "index.json" - ], - "homepage": "https://github.com/wooorm/character-entities-html4#readme", - "keywords": [ - "html", - "html4", - "entity", - "entities", - "character", - "reference", - "name", - "replacement" - ], - "license": "MIT", - "main": "index.json", - "name": "character-entities-html4", - "remarkConfig": { - "output": true, - "presets": "wooorm" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/character-entities-html4.git" - }, - "scripts": { - "build": "npm run build-md && npm run build-generate && npm run build-bundle && npm run build-mangle", - "build-bundle": "browserify index.json --bare -s characterEntitiesHTML4 > character-entities-html4.js", - "build-generate": "node build", - "build-mangle": "esmangle character-entities-html4.js > character-entities-html4.min.js", - "build-md": "remark . --quiet --frail", - "lint": "xo", - "test": "npm run build && npm run lint && npm run test-coverage", - "test-api": "node test", - "test-coverage": "nyc --reporter lcov tape test.js" - }, - "version": "1.1.0", - "xo": { - "space": true, - "ignores": [ - "character-entities-html4.js" - ] - } -} diff --git a/tools/eslint/node_modules/character-entities-html4/readme.md b/tools/eslint/node_modules/character-entities-html4/readme.md deleted file mode 100644 index d607a6483e2d8f..00000000000000 --- a/tools/eslint/node_modules/character-entities-html4/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# character-entities-html4 [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] - -HTML4 character entity information. - -## Installation - -[npm][npm-install]: - -```bash -npm install character-entities-html4 -``` - -## Usage - -```js -console.log(characterEntities.AElig); // Æ -console.log(characterEntities.aelig); // æ -console.log(characterEntities.amp); // & -console.log(characterEntities.apos); // undefined -``` - -## API - -### `characterEntitiesHTML4` - -Mapping between (case-sensitive) character entity names to replacements. - -## Support - -See [w3.org][html]. - -## License - -[MIT][license] © [Titus Wormer][author] - - - -[travis-badge]: https://img.shields.io/travis/wooorm/character-entities-html4.svg - -[travis]: https://travis-ci.org/wooorm/character-entities-html4 - -[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/character-entities-html4.svg - -[codecov]: https://codecov.io/github/wooorm/character-entities-html4 - -[npm-install]: https://docs.npmjs.com/cli/install - -[license]: LICENSE - -[author]: http://wooorm.com - -[html]: http://www.w3.org/TR/html4/sgml/entities.html diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/README.md b/tools/eslint/node_modules/eslint-plugin-markdown/README.md index 4f212022c81355..749c18832358a1 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/README.md +++ b/tools/eslint/node_modules/eslint-plugin-markdown/README.md @@ -102,6 +102,26 @@ Each code block in a file is linted separately, so configuration comments apply alert("Hello, world!"); ``` +## Skipping Blocks + +Sometimes it can be useful to have code blocks marked with `js` even though they don't contain valid JavaScript syntax, such as commented JSON blobs that need `js` syntax highlighting. Standard `eslint-disable` comments only silence rule reporting, but ESLint still reports any syntax errors it finds. In cases where a code block should not even be parsed, insert a non-standard `` comment before the block, and this plugin will hide the following block from ESLint. Neither rule nor syntax errors will be reported. + + There are comments in this JSON, so we use `js` syntax for better + highlighting. Skip the block to prevent warnings about invalid syntax. + + + + ```js + { + // This code block is hidden from ESLint. + "hello": "world" + } + ``` + + ```js + console.log("This code block is linted normally."); + ``` + ## Unsatisfiable Rules Since code blocks are not files themselves but embedded inside a Markdown document, some rules do not apply to Markdown code blocks, and messages from these rules are automatically suppressed: @@ -113,8 +133,7 @@ Since code blocks are not files themselves but embedded inside a Markdown docume ```sh $ git clone https://github.com/eslint/eslint-plugin-markdown.git $ cd eslint-plugin-markdown -$ npm link -$ npm link eslint-plugin-markdown +$ npm install $ npm test ``` diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js b/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js index 7d0fa62f795914..8df09ef614d2da 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js +++ b/tools/eslint/node_modules/eslint-plugin-markdown/lib/processor.js @@ -6,14 +6,16 @@ "use strict"; var assign = require("object-assign"); -var parse5 = require("parse5"); -var remark = require("remark"); +var unified = require("unified"); +var remarkParse = require("remark-parse"); var SUPPORTED_SYNTAXES = ["js", "javascript", "node", "jsx"]; var UNSATISFIABLE_RULES = [ "eol-last" // The Markdown parser strips trailing newlines in code fences ]; +var markdown = unified().use(remarkParse); + var blocks = []; /** @@ -42,26 +44,25 @@ function traverse(node, callbacks, parent) { * @param {string} html The text content of an HTML AST node. * @returns {string[]} An array of JS block comments. */ -function getComments(html) { - var ast = parse5.parse(html, { locationInfo: true }); - var nodes = ast.childNodes.filter(function(node) { - return node.__location; // eslint-disable-line no-underscore-dangle - }); - var comments = []; - var index; - - for (index = nodes.length - 1; index >= 0; index--) { - if ( - nodes[index].nodeName === "#comment" - && nodes[index].data.trim().slice(0, "eslint".length) === "eslint" - ) { - comments.unshift("/*" + nodes[index].data + "*/"); - } else { - break; - } +function getComment(html) { + var commentStart = ""; + var prefix = "eslint"; + + if ( + html.slice(0, commentStart.length) !== commentStart || + html.slice(-commentEnd.length) !== commentEnd + ) { + return ""; + } + + html = html.slice(commentStart.length, -commentEnd.length); + + if (html.trim().slice(0, prefix.length) !== prefix) { + return ""; } - return comments; + return html; } /** @@ -70,19 +71,31 @@ function getComments(html) { * @returns {string[]} Source code strings to lint. */ function preprocess(text) { - var ast = remark().parse(text); + var ast = markdown.parse(text); blocks = []; traverse(ast, { "code": function(node, parent) { var comments = []; - var index, previousNode; + var index, previousNode, comment; if (node.lang && SUPPORTED_SYNTAXES.indexOf(node.lang.toLowerCase()) >= 0) { - index = parent.children.indexOf(node); - previousNode = parent.children[index - 1]; - if (previousNode && previousNode.type === "html") { - comments = getComments(previousNode.value) || []; + index = parent.children.indexOf(node) - 1; + previousNode = parent.children[index]; + while (previousNode && previousNode.type === "html") { + comment = getComment(previousNode.value); + + if (!comment) { + break; + } + + if (comment.trim() === "eslint-skip") { + return; + } + + comments.unshift("/*" + comment + "*/"); + index--; + previousNode = parent.children[index]; } blocks.push(assign({}, node, { comments: comments })); diff --git a/tools/eslint/node_modules/eslint-plugin-markdown/package.json b/tools/eslint/node_modules/eslint-plugin-markdown/package.json index bf0bf1ca703e8c..54d03e7a41309a 100644 --- a/tools/eslint/node_modules/eslint-plugin-markdown/package.json +++ b/tools/eslint/node_modules/eslint-plugin-markdown/package.json @@ -1,28 +1,28 @@ { - "_from": "eslint-plugin-markdown@1.0.0-beta.4", - "_id": "eslint-plugin-markdown@1.0.0-beta.4", + "_from": "eslint-plugin-markdown@1.0.0-beta.7", + "_id": "eslint-plugin-markdown@1.0.0-beta.7", "_inBundle": false, - "_integrity": "sha1-gqGZcTmeSxti99SsZCRofCwH7no=", + "_integrity": "sha1-Euc6QSfEpLedlm+fR1hR3Q949+c=", "_location": "/eslint-plugin-markdown", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "eslint-plugin-markdown@1.0.0-beta.4", + "raw": "eslint-plugin-markdown@1.0.0-beta.7", "name": "eslint-plugin-markdown", "escapedName": "eslint-plugin-markdown", - "rawSpec": "1.0.0-beta.4", + "rawSpec": "1.0.0-beta.7", "saveSpec": null, - "fetchSpec": "1.0.0-beta.4" + "fetchSpec": "1.0.0-beta.7" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.4.tgz", - "_shasum": "82a19971399e4b1b62f7d4ac6424687c2c07ee7a", - "_spec": "eslint-plugin-markdown@1.0.0-beta.4", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint", + "_resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-1.0.0-beta.7.tgz", + "_shasum": "12e73a4127c4a4b79d966f9f475851dd0f78f7e7", + "_spec": "eslint-plugin-markdown@1.0.0-beta.7", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint", "author": { "name": "Brandon Mills", "url": "https://github.com/btmills" @@ -33,8 +33,8 @@ "bundleDependencies": false, "dependencies": { "object-assign": "^4.0.1", - "parse5": "^2.2.2", - "remark": "^5.0.0" + "remark-parse": "^3.0.0", + "unified": "^6.1.2" }, "deprecated": false, "description": "An ESLint plugin to lint JavaScript in Markdown code fences.", @@ -42,13 +42,14 @@ "chai": "^3.0.0", "eslint": "^2.2.0", "eslint-config-eslint": "^3.0.0", + "eslint-release": "^0.10.2", + "istanbul": "^0.4.5", "mocha": "^2.2.5" }, "files": [ - "lib/*.js", "index.js", - "LICENSE", - "README.md" + "lib/index.js", + "lib/processor.js" ], "homepage": "https://github.com/eslint/eslint-plugin-markdown#readme", "keywords": [ @@ -66,7 +67,14 @@ "url": "git+https://github.com/eslint/eslint-plugin-markdown.git" }, "scripts": { - "test": "eslint --ext .js --ext .md . && mocha tests" + "alpharelease": "eslint-prerelease alpha", + "betarelease": "eslint-prerelease beta", + "ci-release": "eslint-ci-release", + "gh-release": "eslint-gh-release", + "lint": "eslint Makefile.js lib/**/*.js tests/lib/plugin.js", + "release": "eslint-release", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover _mocha -- -c tests/lib/**/*.js" }, - "version": "1.0.0-beta.4" + "version": "1.0.0-beta.7" } diff --git a/tools/eslint/node_modules/parse5/LICENSE b/tools/eslint/node_modules/is-buffer/LICENSE similarity index 92% rename from tools/eslint/node_modules/parse5/LICENSE rename to tools/eslint/node_modules/is-buffer/LICENSE index 120d532f4af34e..0c068ceecbd48f 100644 --- a/tools/eslint/node_modules/parse5/LICENSE +++ b/tools/eslint/node_modules/is-buffer/LICENSE @@ -1,4 +1,6 @@ -Copyright (c) 2013-2016 Ivan Nikulin (ifaaan@gmail.com, https://github.com/inikulin) +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/tools/eslint/node_modules/is-buffer/README.md b/tools/eslint/node_modules/is-buffer/README.md new file mode 100644 index 00000000000000..cb6f356d5a95a0 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/README.md @@ -0,0 +1,49 @@ +# is-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][npm-url] + +#### Determine if an object is a [`Buffer`](http://nodejs.org/api/buffer.html) (including the [browserify Buffer](https://github.com/feross/buffer)) + +[![saucelabs][saucelabs-image]][saucelabs-url] + +[travis-image]: https://img.shields.io/travis/feross/is-buffer/master.svg +[travis-url]: https://travis-ci.org/feross/is-buffer +[npm-image]: https://img.shields.io/npm/v/is-buffer.svg +[npm-url]: https://npmjs.org/package/is-buffer +[downloads-image]: https://img.shields.io/npm/dm/is-buffer.svg +[saucelabs-image]: https://saucelabs.com/browser-matrix/is-buffer.svg +[saucelabs-url]: https://saucelabs.com/u/is-buffer + +## Why not use `Buffer.isBuffer`? + +This module lets you check if an object is a `Buffer` without using `Buffer.isBuffer` (which includes the whole [buffer](https://github.com/feross/buffer) module in [browserify](http://browserify.org/)). + +It's future-proof and works in node too! + +## install + +```bash +npm install is-buffer +``` + +## usage + +```js +var isBuffer = require('is-buffer') + +isBuffer(new Buffer(4)) // true + +isBuffer(undefined) // false +isBuffer(null) // false +isBuffer('') // false +isBuffer(true) // false +isBuffer(false) // false +isBuffer(0) // false +isBuffer(1) // false +isBuffer(1.0) // false +isBuffer('string') // false +isBuffer({}) // false +isBuffer(function foo () {}) // false +``` + +## license + +MIT. Copyright (C) [Feross Aboukhadijeh](http://feross.org). diff --git a/tools/eslint/node_modules/is-buffer/index.js b/tools/eslint/node_modules/is-buffer/index.js new file mode 100644 index 00000000000000..36c808ea7579c2 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/index.js @@ -0,0 +1,21 @@ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +// The _isBuffer check is for Safari 5-7 support, because it's missing +// Object.prototype.constructor. Remove this eventually +module.exports = function (obj) { + return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) +} + +function isBuffer (obj) { + return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + +// For Node v0.10 support. Remove this eventually. +function isSlowBuffer (obj) { + return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) +} diff --git a/tools/eslint/node_modules/is-buffer/package.json b/tools/eslint/node_modules/is-buffer/package.json new file mode 100644 index 00000000000000..f9440208bc0262 --- /dev/null +++ b/tools/eslint/node_modules/is-buffer/package.json @@ -0,0 +1,77 @@ +{ + "_from": "is-buffer@^1.1.4", + "_id": "is-buffer@1.1.5", + "_inBundle": false, + "_integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "_location": "/is-buffer", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-buffer@^1.1.4", + "name": "is-buffer", + "escapedName": "is-buffer", + "rawSpec": "^1.1.4", + "saveSpec": null, + "fetchSpec": "^1.1.4" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/vfile" + ], + "_resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "_shasum": "1f3b26ef613b214b88cbca23cc6c01d87961eecc", + "_spec": "is-buffer@^1.1.4", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\vfile", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "http://feross.org/" + }, + "bugs": { + "url": "https://github.com/feross/is-buffer/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Determine if an object is a Buffer", + "devDependencies": { + "standard": "*", + "tape": "^4.0.0", + "zuul": "^3.0.0" + }, + "homepage": "https://github.com/feross/is-buffer#readme", + "keywords": [ + "buffer", + "buffers", + "type", + "core buffer", + "browser buffer", + "browserify", + "typed array", + "uint32array", + "int16array", + "int32array", + "float32array", + "float64array", + "browser", + "arraybuffer", + "dataview" + ], + "license": "MIT", + "main": "index.js", + "name": "is-buffer", + "repository": { + "type": "git", + "url": "git://github.com/feross/is-buffer.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "zuul -- test/*.js", + "test-browser-local": "zuul --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "testling": { + "files": "test/*.js" + }, + "version": "1.1.5" +} diff --git a/tools/eslint/node_modules/is-plain-obj/index.js b/tools/eslint/node_modules/is-plain-obj/index.js new file mode 100644 index 00000000000000..0d1ba9eeb89723 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/index.js @@ -0,0 +1,7 @@ +'use strict'; +var toString = Object.prototype.toString; + +module.exports = function (x) { + var prototype; + return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({})); +}; diff --git a/tools/eslint/node_modules/is-plain-obj/license b/tools/eslint/node_modules/is-plain-obj/license new file mode 100644 index 00000000000000..654d0bfe943437 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +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/eslint/node_modules/is-plain-obj/package.json b/tools/eslint/node_modules/is-plain-obj/package.json new file mode 100644 index 00000000000000..697b7e70c9032a --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/package.json @@ -0,0 +1,68 @@ +{ + "_from": "is-plain-obj@^1.1.0", + "_id": "is-plain-obj@1.1.0", + "_inBundle": false, + "_integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "_location": "/is-plain-obj", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-plain-obj@^1.1.0", + "name": "is-plain-obj", + "escapedName": "is-plain-obj", + "rawSpec": "^1.1.0", + "saveSpec": null, + "fetchSpec": "^1.1.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/unified" + ], + "_resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "_shasum": "71a50c8429dfca773c92a390a4a03b39fcd51d3e", + "_spec": "is-plain-obj@^1.1.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\unified", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/is-plain-obj/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Check if a value is a plain object", + "devDependencies": { + "ava": "0.0.4" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/is-plain-obj#readme", + "keywords": [ + "obj", + "object", + "is", + "check", + "test", + "type", + "plain", + "vanilla", + "pure", + "simple" + ], + "license": "MIT", + "name": "is-plain-obj", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/is-plain-obj.git" + }, + "scripts": { + "test": "node test.js" + }, + "version": "1.1.0" +} diff --git a/tools/eslint/node_modules/is-plain-obj/readme.md b/tools/eslint/node_modules/is-plain-obj/readme.md new file mode 100644 index 00000000000000..269e56aeff0646 --- /dev/null +++ b/tools/eslint/node_modules/is-plain-obj/readme.md @@ -0,0 +1,35 @@ +# is-plain-obj [![Build Status](https://travis-ci.org/sindresorhus/is-plain-obj.svg?branch=master)](https://travis-ci.org/sindresorhus/is-plain-obj) + +> Check if a value is a plain object + +An object is plain if it's created by either `{}`, `new Object()` or `Object.create(null)`. + + +## Install + +``` +$ npm install --save is-plain-obj +``` + + +## Usage + +```js +var isPlainObj = require('is-plain-obj'); + +isPlainObj({foo: 'bar'}); +//=> true + +isPlainObj([1, 2, 3]); +//=> false +``` + + +## Related + +- [is-obj](https://github.com/sindresorhus/is-obj) - Check if a value is an object + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/tools/eslint/node_modules/ccount/LICENSE b/tools/eslint/node_modules/is-whitespace-character/LICENSE similarity index 94% rename from tools/eslint/node_modules/ccount/LICENSE rename to tools/eslint/node_modules/is-whitespace-character/LICENSE index 32e7a3d93ca5a2..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/ccount/LICENSE +++ b/tools/eslint/node_modules/is-whitespace-character/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/longest-streak/history.md b/tools/eslint/node_modules/is-whitespace-character/history.md similarity index 59% rename from tools/eslint/node_modules/longest-streak/history.md rename to tools/eslint/node_modules/is-whitespace-character/history.md index 654a34d89a391f..674e111c479ebb 100644 --- a/tools/eslint/node_modules/longest-streak/history.md +++ b/tools/eslint/node_modules/is-whitespace-character/history.md @@ -1,9 +1,6 @@ ---- -mdast: - setext: true ---- + -1.0.0 / 2015-07-12 +1.0.0 / 2016-07-12 ================== diff --git a/tools/eslint/node_modules/is-whitespace-character/index.js b/tools/eslint/node_modules/is-whitespace-character/index.js new file mode 100644 index 00000000000000..f9e23df3f72b0b --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/index.js @@ -0,0 +1,33 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module is-whitespace-character + * @fileoverview Check if a character is a whitespace character. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = whitespace; + +/* Methods. */ +var fromCode = String.fromCharCode; + +/* Constants. */ +var re = /\s/; + +/** + * Check whether the given character code, or the character + * code at the first character, is a whitespace character. + * + * @param {string|number} character + * @return {boolean} - Whether `character` is a whitespaces character. + */ +function whitespace(character) { + return re.test( + typeof character === 'number' ? fromCode(character) : character.charAt(0) + ); +} diff --git a/tools/eslint/node_modules/is-whitespace-character/package.json b/tools/eslint/node_modules/is-whitespace-character/package.json new file mode 100644 index 00000000000000..d70f094f556af5 --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/package.json @@ -0,0 +1,111 @@ +{ + "_from": "is-whitespace-character@^1.0.0", + "_id": "is-whitespace-character@1.0.0", + "_inBundle": false, + "_integrity": "sha1-u/SoN2Tq0NRRvsKlUhjpGWGtwnU=", + "_location": "/is-whitespace-character", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-whitespace-character@^1.0.0", + "name": "is-whitespace-character", + "escapedName": "is-whitespace-character", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.0.tgz", + "_shasum": "bbf4a83764ead0d451bec2a55218e91961adc275", + "_spec": "is-whitespace-character@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/is-whitespace-character/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Check if a character is a whitespace character", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/is-whitespace-character#readme", + "keywords": [ + "string", + "character", + "char", + "code", + "whitespace", + "white", + "space" + ], + "license": "MIT", + "name": "is-whitespace-character", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/is-whitespace-character.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s isWhitespaceCharacter > is-whitespace-character.js", + "build-mangle": "esmangle < is-whitespace-character.js > is-whitespace-character.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "is-whitespace-character.js", + "is-whitespace-character.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/is-whitespace-character/readme.md b/tools/eslint/node_modules/is-whitespace-character/readme.md new file mode 100644 index 00000000000000..c2ac49c21300e8 --- /dev/null +++ b/tools/eslint/node_modules/is-whitespace-character/readme.md @@ -0,0 +1,63 @@ +# is-whitespace-character [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +Check if a character is a whitespace character: `\s`, which equals +all Unicode Space Separators (including `[ \t\v\f]`), the BOM +(`\uFEFF`), and line terminator (`[\n\r\u2028\u2029]`). + +## Installation + +[npm][npm-install]: + +```bash +npm install is-whitespace-character +``` + +## Usage + +```javascript +var whitespace = require('is-whitespace-character'); + +whitespace(' '); // true +whitespace('\n'); // true +whitespace('\ufeff'); // true +whitespace('_'); // false +whitespace('a'); // true +whitespace('💩'); // false +``` + +## API + +### `whitespaceCharacter(character)` + +Check whether the given character code (`number`), or the character +code at the first position (`string`), is a whitespace character. + +## Related + +* [`is-alphabetical`](https://github.com/wooorm/is-alphabetical) +* [`is-alphanumerical`](https://github.com/wooorm/is-alphanumerical) +* [`is-decimal`](https://github.com/wooorm/is-decimal) +* [`is-hexadecimal`](https://github.com/wooorm/is-hexadecimal) +* [`is-word-character`](https://github.com/wooorm/is-word-character) + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/is-whitespace-character.svg + +[travis]: https://travis-ci.org/wooorm/is-whitespace-character + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/is-whitespace-character.svg + +[codecov]: https://codecov.io/github/wooorm/is-whitespace-character + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/character-entities-html4/LICENSE b/tools/eslint/node_modules/is-word-character/LICENSE similarity index 94% rename from tools/eslint/node_modules/character-entities-html4/LICENSE rename to tools/eslint/node_modules/is-word-character/LICENSE index 32e7a3d93ca5a2..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/character-entities-html4/LICENSE +++ b/tools/eslint/node_modules/is-word-character/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/is-word-character/history.md b/tools/eslint/node_modules/is-word-character/history.md new file mode 100644 index 00000000000000..674e111c479ebb --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/history.md @@ -0,0 +1,6 @@ + + + + +1.0.0 / 2016-07-12 +================== diff --git a/tools/eslint/node_modules/is-word-character/index.js b/tools/eslint/node_modules/is-word-character/index.js new file mode 100644 index 00000000000000..c2f9c3fd05992c --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/index.js @@ -0,0 +1,33 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module is-word-character + * @fileoverview Check if a character is a word character. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = wordCharacter; + +/* Methods. */ +var fromCode = String.fromCharCode; + +/* Constants. */ +var re = /\w/; + +/** + * Check whether the given character code, or the character + * code at the first character, is a word character. + * + * @param {string|number} character + * @return {boolean} - Whether `character` is a word character. + */ +function wordCharacter(character) { + return re.test( + typeof character === 'number' ? fromCode(character) : character.charAt(0) + ); +} diff --git a/tools/eslint/node_modules/is-word-character/package.json b/tools/eslint/node_modules/is-word-character/package.json new file mode 100644 index 00000000000000..61aee67a54ebb3 --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/package.json @@ -0,0 +1,109 @@ +{ + "_from": "is-word-character@^1.0.0", + "_id": "is-word-character@1.0.0", + "_inBundle": false, + "_integrity": "sha1-o6nl3a1wxcLuNvSpz8mlP0RTUkc=", + "_location": "/is-word-character", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "is-word-character@^1.0.0", + "name": "is-word-character", + "escapedName": "is-word-character", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.0.tgz", + "_shasum": "a3a9e5ddad70c5c2ee36f4a9cfc9a53f44535247", + "_spec": "is-word-character@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/is-word-character/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "Check if a character is a word character", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/is-word-character#readme", + "keywords": [ + "string", + "character", + "char", + "code", + "word" + ], + "license": "MIT", + "name": "is-word-character", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/is-word-character.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s isWordCharacter > is-word-character.js", + "build-mangle": "esmangle < is-word-character.js > is-word-character.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "is-word-character.js", + "is-word-character.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/is-word-character/readme.md b/tools/eslint/node_modules/is-word-character/readme.md new file mode 100644 index 00000000000000..4a0a25fd299d77 --- /dev/null +++ b/tools/eslint/node_modules/is-word-character/readme.md @@ -0,0 +1,62 @@ +# is-word-character [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +Check if a character is a word character (`\w`, which equals +`[a-zA-Z0-9_]`). + +## Installation + +[npm][npm-install]: + +```bash +npm install is-word-character +``` + +## Usage + +```javascript +var wordCharacter = require('is-word-character'); + +wordCharacter('a'); // true +wordCharacter('Z'); // true +wordCharacter('0'); // true +wordCharacter('_'); // true +wordCharacter(' '); // false +wordCharacter('💩'); // false +``` + +## API + +### `wordCharacter(character)` + +Check whether the given character code (`number`), or the character +code at the first position (`string`), is a word character. + +## Related + +* [`is-alphabetical`](https://github.com/wooorm/is-alphabetical) +* [`is-alphanumerical`](https://github.com/wooorm/is-alphanumerical) +* [`is-decimal`](https://github.com/wooorm/is-decimal) +* [`is-hexadecimal`](https://github.com/wooorm/is-hexadecimal) +* [`is-whitespace-character`](https://github.com/wooorm/is-whitespace-character) + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/is-word-character.svg + +[travis]: https://travis-ci.org/wooorm/is-word-character + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/is-word-character.svg + +[codecov]: https://codecov.io/github/wooorm/is-word-character + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/longest-streak/index.js b/tools/eslint/node_modules/longest-streak/index.js deleted file mode 100644 index 719d5168603e4f..00000000000000 --- a/tools/eslint/node_modules/longest-streak/index.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -/** - * Get the count of the longest repeating streak of - * `character` in `value`. - * - * @example - * longestStreak('` foo `` bar `', '`') // 2 - * - * @param {string} value - Content, coerced to string. - * @param {string} character - Single character to look - * for. - * @return {number} - Number of characters at the place - * where `character` occurs in its longest streak in - * `value`. - * @throws {Error} - when `character` is not a single - * character. - */ -function longestStreak(value, character) { - var count = 0; - var maximum = 0; - var index = -1; - var length; - - value = String(value); - length = value.length; - - if (typeof character !== 'string' || character.length !== 1) { - throw new Error('Expected character'); - } - - while (++index < length) { - if (value.charAt(index) === character) { - count++; - - if (count > maximum) { - maximum = count; - } - } else { - count = 0; - } - } - - return maximum; -} - -/* - * Expose. - */ - -module.exports = longestStreak; diff --git a/tools/eslint/node_modules/longest-streak/package.json b/tools/eslint/node_modules/longest-streak/package.json deleted file mode 100644 index e9af0ed2d72cac..00000000000000 --- a/tools/eslint/node_modules/longest-streak/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_from": "longest-streak@^1.0.0", - "_id": "longest-streak@1.0.0", - "_inBundle": false, - "_integrity": "sha1-0GWXxNTDG1LMsfXY+P5xSOr9aWU=", - "_location": "/longest-streak", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "longest-streak@^1.0.0", - "name": "longest-streak", - "escapedName": "longest-streak", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/remark-stringify" - ], - "_resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-1.0.0.tgz", - "_shasum": "d06597c4d4c31b52ccb1f5d8f8fe7148eafd6965", - "_spec": "longest-streak@^1.0.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com" - }, - "bugs": { - "url": "https://github.com/wooorm/longest-streak/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Count the longest repeating streak of a character", - "devDependencies": { - "browserify": "^10.0.0", - "eslint": "^0.24.0", - "esmangle": "^1.0.0", - "istanbul": "^0.3.0", - "jscs": "^1.0.0", - "jscs-jsdoc": "^1.0.0", - "mdast": "^0.26.0", - "mdast-github": "^0.3.1", - "mdast-lint": "^0.4.1", - "mdast-yaml-config": "^0.2.0", - "mocha": "^2.0.0" - }, - "files": [ - "index.js", - "LICENSE" - ], - "homepage": "https://github.com/wooorm/longest-streak#readme", - "keywords": [ - "count", - "length", - "longest", - "repeating", - "streak", - "character" - ], - "license": "MIT", - "name": "longest-streak", - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/longest-streak.git" - }, - "scripts": { - "build": "npm run build-md && npm run build-bundle", - "build-bundle": "browserify index.js --bare -s longestStreak > longest-streak.js", - "build-md": "mdast . LICENSE --output --quiet", - "lint": "npm run lint-api && npm run lint-style", - "lint-api": "eslint .", - "lint-style": "jscs --reporter inline .", - "make": "npm run lint && npm run test-coverage", - "postbuild-bundle": "esmangle longest-streak.js > longest-streak.min.js", - "test": "npm run test-api", - "test-api": "mocha --check-leaks test.js", - "test-coverage": "istanbul cover _mocha -- --check-leaks test.js", - "test-coveralls": "istanbul cover _mocha --report lcovonly -- --check-leaks test.js", - "test-travis": "npm run test-coveralls" - }, - "version": "1.0.0" -} diff --git a/tools/eslint/node_modules/longest-streak/readme.md b/tools/eslint/node_modules/longest-streak/readme.md deleted file mode 100644 index 780c53cf7b1eda..00000000000000 --- a/tools/eslint/node_modules/longest-streak/readme.md +++ /dev/null @@ -1,52 +0,0 @@ -# longest-streak [![Build Status](https://img.shields.io/travis/wooorm/longest-streak.svg?style=flat)](https://travis-ci.org/wooorm/longest-streak) [![Coverage Status](https://img.shields.io/coveralls/wooorm/longest-streak.svg?style=flat)](https://coveralls.io/r/wooorm/longest-streak?branch=master) - -Count the longest repeating streak of a character. - -## Installation - -[npm](https://docs.npmjs.com/cli/install): - -```bash -npm install longest-streak -``` - -**longest-streak** is also available for [bower](http://bower.io/#install-packages), -[component](https://github.com/componentjs/component), [duo](http://duojs.org/#getting-started), -and for AMD, CommonJS, and globals ([uncompressed](longest-streak.js) and -[compressed](longest-streak.min.js)). - -## Usage - -Dependencies. - -```javascript -var longestStreak = require('longest-streak'); -``` - -Process: - -```javascript -longestStreak('` foo `` bar `', '`') // 2 -``` - -## API - -### longestStreak(value, character) - -Get the count of the longest repeating streak of `character` in `value`. - -Parameters: - -* `value` (`string`) — Content, coerced to string. -* `character` (`string`) — Single character to look for. - -Returns: `number` — Number of characters at the place where `character` -occurs in its longest streak in `value`. - -Throws: - -* `Error` — when `character` is not a single character string. - -## License - -[MIT](LICENSE) @ [Titus Wormer](http://wooorm.com) diff --git a/tools/eslint/node_modules/markdown-table/LICENSE b/tools/eslint/node_modules/markdown-escapes/LICENSE similarity index 94% rename from tools/eslint/node_modules/markdown-table/LICENSE rename to tools/eslint/node_modules/markdown-escapes/LICENSE index ce731a9cb02e09..8d8660d36ef2ec 100644 --- a/tools/eslint/node_modules/markdown-table/LICENSE +++ b/tools/eslint/node_modules/markdown-escapes/LICENSE @@ -1,6 +1,6 @@ (The MIT License) -Copyright (c) 2014-2015 Titus Wormer +Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/tools/eslint/node_modules/markdown-escapes/history.md b/tools/eslint/node_modules/markdown-escapes/history.md new file mode 100644 index 00000000000000..f20d5035693db5 --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/history.md @@ -0,0 +1,6 @@ + + + + +1.0.0 / 2016-07-16 +================== diff --git a/tools/eslint/node_modules/markdown-escapes/index.js b/tools/eslint/node_modules/markdown-escapes/index.js new file mode 100644 index 00000000000000..38f81193e81238 --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/index.js @@ -0,0 +1,75 @@ +/** + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT + * @module markdown-escapes + * @fileoverview List of escapable characters in markdown. + */ + +'use strict'; + +/* eslint-env commonjs */ + +/* Expose. */ +module.exports = escapes; + +/* Characters. */ +var defaults = [ + '\\', + '`', + '*', + '{', + '}', + '[', + ']', + '(', + ')', + '#', + '+', + '-', + '.', + '!', + '_', + '>' +]; + +var gfm = defaults.concat(['~', '|']); + +var commonmark = gfm.concat([ + '\n', + '"', + '$', + '%', + '&', + '\'', + ',', + '/', + ':', + ';', + '<', + '=', + '?', + '@', + '^' +]); + +/* Expose characters. */ +escapes.default = defaults; +escapes.gfm = gfm; +escapes.commonmark = commonmark; + +/** + * Get markdown escapes. + * + * @param {Object?} [options] - Configuration. + * @return {Array.} - Escapes. + */ +function escapes(options) { + var settings = options || {}; + + if (settings.commonmark) { + return commonmark; + } + + return settings.gfm ? gfm : defaults; +} diff --git a/tools/eslint/node_modules/markdown-escapes/package.json b/tools/eslint/node_modules/markdown-escapes/package.json new file mode 100644 index 00000000000000..2ed7bc0ffdbafb --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/package.json @@ -0,0 +1,109 @@ +{ + "_from": "markdown-escapes@^1.0.0", + "_id": "markdown-escapes@1.0.0", + "_inBundle": false, + "_integrity": "sha1-yMoZ8dlNaCRZ4Kk8htsnp+9xayM=", + "_location": "/markdown-escapes", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "markdown-escapes@^1.0.0", + "name": "markdown-escapes", + "escapedName": "markdown-escapes", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/eslint-plugin-markdown/remark-parse" + ], + "_resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.0.tgz", + "_shasum": "c8ca19f1d94d682459e0a93c86db27a7ef716b23", + "_spec": "markdown-escapes@^1.0.0", + "_where": "j:\\temp\\_git\\node-fork\\tools\\eslint\\node_modules\\eslint-plugin-markdown\\node_modules\\remark-parse", + "author": { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + }, + "bugs": { + "url": "https://github.com/wooorm/markdown-escapes/issues" + }, + "bundleDependencies": false, + "contributors": [ + { + "name": "Titus Wormer", + "email": "tituswormer@gmail.com", + "url": "http://wooorm.com" + } + ], + "dependencies": {}, + "deprecated": false, + "description": "List of escapable characters in markdown", + "devDependencies": { + "browserify": "^13.0.1", + "esmangle": "^1.0.1", + "nyc": "^7.0.0", + "remark-cli": "^1.0.0", + "remark-comment-config": "^4.0.0", + "remark-github": "^5.0.0", + "remark-lint": "^4.0.0", + "remark-validate-links": "^4.0.0", + "tape": "^4.0.0", + "xo": "^0.16.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/wooorm/markdown-escapes#readme", + "keywords": [ + "markdown", + "escape", + "pedantic", + "gfm", + "commonmark" + ], + "license": "MIT", + "name": "markdown-escapes", + "nyc": { + "check-coverage": true, + "lines": 100, + "functions": 100, + "branches": 100 + }, + "remarkConfig": { + "output": true, + "plugins": [ + "comment-config", + "github", + "lint", + "validate-links" + ], + "settings": { + "bullet": "*" + } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wooorm/markdown-escapes.git" + }, + "scripts": { + "build": "npm run build-md && npm run build-bundle && npm run build-mangle", + "build-bundle": "browserify index.js --bare -s markdownEscapes > markdown-escapes.js", + "build-mangle": "esmangle < markdown-escapes.js > markdown-escapes.min.js", + "build-md": "remark . --quiet --frail", + "lint": "xo", + "test": "npm run build && npm run lint && npm run test-coverage", + "test-api": "node test", + "test-coverage": "nyc --reporter lcov tape test.js" + }, + "version": "1.0.0", + "xo": { + "space": true, + "ignores": [ + "markdown-escapes.js", + "markdown-escapes.min.js" + ] + } +} diff --git a/tools/eslint/node_modules/markdown-escapes/readme.md b/tools/eslint/node_modules/markdown-escapes/readme.md new file mode 100644 index 00000000000000..8ab33f397d289d --- /dev/null +++ b/tools/eslint/node_modules/markdown-escapes/readme.md @@ -0,0 +1,71 @@ +# markdown-escapes [![Build Status][travis-badge]][travis] [![Coverage Status][codecov-badge]][codecov] + + + +List of escapable characters in markdown. + +## Installation + +[npm][npm-install]: + +```bash +npm install markdown-escapes +``` + +## Usage + +```javascript +var escapes = require('markdown-escapes'); + +// Access by property: +escapes.commonmark; +// ['\\', '`', ..., '@', '^'] + +// Access by options object: +escapes({gfm: true}); +// ['\\', '`', ..., '~', '|'] +``` + +## API + +### `escapes([options])` + +Get escapes. Supports `options.commonmark` and `options.gfm`, which +when `true` returns the extra escape characters supported by those +flavours. + +###### Returns + +`Array.`. + +### `escapes.default` + +List of default escapable characters. + +### `escapes.gfm` + +List of escapable characters in GFM (which includes all `default`s). + +### `escapes.commonmark` + +List of escapable characters in CommonMark (which includes all `gfm`s). + +## License + +[MIT][license] © [Titus Wormer][author] + + + +[travis-badge]: https://img.shields.io/travis/wooorm/markdown-escapes.svg + +[travis]: https://travis-ci.org/wooorm/markdown-escapes + +[codecov-badge]: https://img.shields.io/codecov/c/github/wooorm/markdown-escapes.svg + +[codecov]: https://codecov.io/github/wooorm/markdown-escapes + +[npm-install]: https://docs.npmjs.com/cli/install + +[license]: LICENSE + +[author]: http://wooorm.com diff --git a/tools/eslint/node_modules/markdown-table/Readme.md b/tools/eslint/node_modules/markdown-table/Readme.md deleted file mode 100644 index 9931cc11d2fa4b..00000000000000 --- a/tools/eslint/node_modules/markdown-table/Readme.md +++ /dev/null @@ -1,132 +0,0 @@ -# markdown-table [![Build Status](https://img.shields.io/travis/wooorm/markdown-table.svg?style=flat)](https://travis-ci.org/wooorm/markdown-table) [![Coverage Status](https://img.shields.io/coveralls/wooorm/markdown-table.svg?style=flat)](https://coveralls.io/r/wooorm/markdown-table?branch=master) - -Generate fancy [Markdown](https://help.github.com/articles/github-flavored-markdown/#tables)/ASCII tables. - -## Installation - -[npm](https://docs.npmjs.com/cli/install): - -```bash -$ npm install markdown-table -``` - -[Component.js](https://github.com/componentjs/component): - -```bash -$ component install wooorm/markdown-table -``` - -[Bower](http://bower.io/#install-packages): - -```bash -$ bower install markdown-table -``` - -[Duo](http://duojs.org/#getting-started): - -```javascript -var table = require('wooorm/markdown-table'); -``` - -## Usage - -```javascript -var table = require('markdown-table'); - -/** - * Normal usage (defaults to left-alignment): - */ - -table([ - ['Branch', 'Commit'], - ['master', '0123456789abcdef'], - ['staging', 'fedcba9876543210'] -]); -/* - * | Branch | Commit | - * | ------- | ---------------- | - * | master | 0123456789abcdef | - * | staging | fedcba9876543210 | - */ - -/** - * With alignment: - */ - -table([ - ['Beep', 'No.', 'Boop'], - ['beep', '1024', 'xyz'], - ['boop', '3388450', 'tuv'], - ['foo', '10106', 'qrstuv'], - ['bar', '45', 'lmno'] -], { - 'align': ['l', 'c', 'r'] -}); -/* - * | Beep | No. | Boop | - * | :--- | :-----: | -----: | - * | beep | 1024 | xyz | - * | boop | 3388450 | tuv | - * | foo | 10106 | qrstuv | - * | bar | 45 | lmno | - */ - -/** - * Alignment on dots: - */ - -table([ - ['No.'], - ['0.1.2'], - ['11.22.33'], - ['5.6.'], - ['1.22222'], -], { - 'align': '.' -}); -/* - * | No. | - * | :---------: | - * | 0.1.2 | - * | 11.22.33 | - * | 5.6. | - * | 1.22222 | - */ -``` - -## API - -### markdownTable(table, options?) - -Turns a given matrix of strings (an array of arrays of strings) into a table. - -The following options are available: - -- `options.align` — String or array of strings, the strings being either `"l"` (left), `"r"` (right), `c` (center), or `.` (dot). Other values are treated as `""`, which doesn’t place the colon but does left align. _Only the lowercased first character is used, so `Right` is fine_; -- `options.delimiter` — Value to insert between cells. Carefull, non-pipe values will break GitHub Flavored Markdown; -- `options.start` — Value to insert at the beginning of every row. -- `options.end` — Value to insert at the end of every row. -- `options.rule` — Whether to display a rule between the header and the body of the table. Carefull, will break GitHub Flavored Markdown when `false`; -- `options.stringLength` — The method to detect the length of a cell (see below). - -### options.stringLength(cell) - -ANSI-sequences mess up tables on terminals. To fix this, you have to pass in a `stringLength` option to detect the “visible” length of a cell. - -```javascript -var chalk = require('chalk'); - -function stringLength(cell) { - return chalk.stripColor(cell).length; -} -``` - -See the [tests for an example](test.js#L368-L375). - -## Inspiration - -The original idea and basic implementation was inspired by James Halliday's [text-table](https://github.com/substack/text-table) library. - -## License - -[MIT](LICENSE) © [Titus Wormer](http://wooorm.com) diff --git a/tools/eslint/node_modules/markdown-table/index.js b/tools/eslint/node_modules/markdown-table/index.js deleted file mode 100644 index 8b64246a2d4cce..00000000000000 --- a/tools/eslint/node_modules/markdown-table/index.js +++ /dev/null @@ -1,284 +0,0 @@ -'use strict'; - -/* - * Useful expressions. - */ - -var EXPRESSION_DOT = /\./; -var EXPRESSION_LAST_DOT = /\.[^.]*$/; - -/* - * Allowed alignment values. - */ - -var LEFT = 'l'; -var RIGHT = 'r'; -var CENTER = 'c'; -var DOT = '.'; -var NULL = ''; - -var ALLIGNMENT = [LEFT, RIGHT, CENTER, DOT, NULL]; - -/* - * Characters. - */ - -var COLON = ':'; -var DASH = '-'; -var PIPE = '|'; -var SPACE = ' '; -var NEW_LINE = '\n'; - -/** - * Get the length of `value`. - * - * @param {string} value - * @return {number} - */ -function lengthNoop(value) { - return String(value).length; -} - -/** - * Get a string consisting of `length` `character`s. - * - * @param {number} length - * @param {string} [character=' '] - * @return {string} - */ -function pad(length, character) { - return Array(length + 1).join(character || SPACE); -} - -/** - * Get the position of the last dot in `value`. - * - * @param {string} value - * @return {number} - */ -function dotindex(value) { - var match = EXPRESSION_LAST_DOT.exec(value); - - return match ? match.index + 1 : value.length; -} - -/** - * Create a table from a matrix of strings. - * - * @param {Array.>} table - * @param {Object?} options - * @param {boolean?} [options.rule=true] - * @param {string?} [options.delimiter=" | "] - * @param {string?} [options.start="| "] - * @param {string?} [options.end=" |"] - * @param {Array.?} options.align - * @param {function(string)?} options.stringLength - * @return {string} Pretty table - */ -function markdownTable(table, options) { - var settings = options || {}; - var delimiter = settings.delimiter; - var start = settings.start; - var end = settings.end; - var alignment = settings.align; - var calculateStringLength = settings.stringLength || lengthNoop; - var cellCount = 0; - var rowIndex = -1; - var rowLength = table.length; - var sizes = []; - var align; - var rule; - var rows; - var row; - var cells; - var index; - var position; - var size; - var value; - var spacing; - var before; - var after; - - alignment = alignment ? alignment.concat() : []; - - if (delimiter === null || delimiter === undefined) { - delimiter = SPACE + PIPE + SPACE; - } - - if (start === null || start === undefined) { - start = PIPE + SPACE; - } - - if (end === null || end === undefined) { - end = SPACE + PIPE; - } - - while (++rowIndex < rowLength) { - row = table[rowIndex]; - - index = -1; - - if (row.length > cellCount) { - cellCount = row.length; - } - - while (++index < cellCount) { - position = row[index] ? dotindex(row[index]) : null; - - if (!sizes[index]) { - sizes[index] = 3; - } - - if (position > sizes[index]) { - sizes[index] = position; - } - } - } - - if (typeof alignment === 'string') { - alignment = pad(cellCount, alignment).split(''); - } - - /* - * Make sure only valid alignments are used. - */ - - index = -1; - - while (++index < cellCount) { - align = alignment[index]; - - if (typeof align === 'string') { - align = align.charAt(0).toLowerCase(); - } - - if (ALLIGNMENT.indexOf(align) === -1) { - align = NULL; - } - - alignment[index] = align; - } - - rowIndex = -1; - rows = []; - - while (++rowIndex < rowLength) { - row = table[rowIndex]; - - index = -1; - cells = []; - - while (++index < cellCount) { - value = row[index]; - - if (value === null || value === undefined) { - value = ''; - } else { - value = String(value); - } - - if (alignment[index] !== DOT) { - cells[index] = value; - } else { - position = dotindex(value); - - size = sizes[index] + - (EXPRESSION_DOT.test(value) ? 0 : 1) - - (calculateStringLength(value) - position); - - cells[index] = value + pad(size - 1); - } - } - - rows[rowIndex] = cells; - } - - sizes = []; - rowIndex = -1; - - while (++rowIndex < rowLength) { - cells = rows[rowIndex]; - - index = -1; - - while (++index < cellCount) { - value = cells[index]; - - if (!sizes[index]) { - sizes[index] = 3; - } - - size = calculateStringLength(value); - - if (size > sizes[index]) { - sizes[index] = size; - } - } - } - - rowIndex = -1; - - while (++rowIndex < rowLength) { - cells = rows[rowIndex]; - - index = -1; - - while (++index < cellCount) { - value = cells[index]; - - position = sizes[index] - (calculateStringLength(value) || 0); - spacing = pad(position); - - if (alignment[index] === RIGHT || alignment[index] === DOT) { - value = spacing + value; - } else if (alignment[index] !== CENTER) { - value = value + spacing; - } else { - position = position / 2; - - if (position % 1 === 0) { - before = position; - after = position; - } else { - before = position + 0.5; - after = position - 0.5; - } - - value = pad(before) + value + pad(after); - } - - cells[index] = value; - } - - rows[rowIndex] = cells.join(delimiter); - } - - if (settings.rule !== false) { - index = -1; - rule = []; - - while (++index < cellCount) { - align = alignment[index]; - - /* - * When `align` is left, don't add colons. - */ - - value = align === RIGHT || align === NULL ? DASH : COLON; - value += pad(sizes[index] - 2, DASH); - value += align !== LEFT && align !== NULL ? COLON : DASH; - - rule[index] = value; - } - - rows.splice(1, 0, rule.join(delimiter)); - } - - return start + rows.join(end + NEW_LINE + start) + end; -} - -/* - * Expose `markdownTable`. - */ - -module.exports = markdownTable; diff --git a/tools/eslint/node_modules/markdown-table/package.json b/tools/eslint/node_modules/markdown-table/package.json deleted file mode 100644 index 49117592fc33b6..00000000000000 --- a/tools/eslint/node_modules/markdown-table/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_from": "markdown-table@^0.4.0", - "_id": "markdown-table@0.4.0", - "_inBundle": false, - "_integrity": "sha1-iQwsGzv+g/sA5BKbjkz+ZFJw+dE=", - "_location": "/markdown-table", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "markdown-table@^0.4.0", - "name": "markdown-table", - "escapedName": "markdown-table", - "rawSpec": "^0.4.0", - "saveSpec": null, - "fetchSpec": "^0.4.0" - }, - "_requiredBy": [ - "/remark-stringify" - ], - "_resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-0.4.0.tgz", - "_shasum": "890c2c1b3bfe83fb00e4129b8e4cfe645270f9d1", - "_spec": "markdown-table@^0.4.0", - "_where": "/Users/trott/io.js/tools/eslint-tmp/node_modules/eslint/node_modules/remark-stringify", - "author": { - "name": "Titus Wormer", - "email": "tituswormer@gmail.com" - }, - "bugs": { - "url": "https://github.com/wooorm/markdown-table/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Markdown/ASCII tables", - "devDependencies": { - "chalk": "^1.0.0", - "eslint": "^0.18.0", - "istanbul": "^0.3.0", - "jscs": "^1.0.0", - "jscs-jsdoc": "^0.4.0", - "mocha": "^2.0.0" - }, - "homepage": "https://github.com/wooorm/markdown-table#readme", - "keywords": [ - "text", - "markdown", - "table", - "align", - "ascii", - "rows", - "tabular" - ], - "license": "MIT", - "name": "markdown-table", - "repository": { - "type": "git", - "url": "git+https://github.com/wooorm/markdown-table.git" - }, - "scripts": { - "lint": "npm run lint-api && npm run lint-test && npm run lint-style", - "lint-api": "eslint index.js", - "lint-style": "jscs --reporter inline index.js test.js", - "lint-test": "eslint --env mocha test.js", - "make": "npm run lint && npm run test-coverage", - "test": "npm run test-api", - "test-api": "_mocha --check-leaks test.js", - "test-coverage": "istanbul cover _mocha -- -- test.js", - "test-coveralls": "istanbul cover _mocha --report lcovonly -- --check-leaks test.js", - "test-travis": "npm run test-coveralls" - }, - "version": "0.4.0" -} diff --git a/tools/eslint/node_modules/parse5/README.md b/tools/eslint/node_modules/parse5/README.md deleted file mode 100644 index 7b36f893369992..00000000000000 --- a/tools/eslint/node_modules/parse5/README.md +++ /dev/null @@ -1,40 +0,0 @@ -

- - parse5 - -

- -

-WHATWG HTML5 specification-compliant, fast and ready for production HTML parsing/serialization toolset for Node.js -

- -

- Build Status - NPM Version - Downloads - Downloads total -

- -

-parse5 provides nearly everything you may need when dealing with HTML. It's the fastest spec-compliant HTML parser -for Node to date. It parses HTML the way the latest version of your browser does. It has proven itself reliable in such projects -as jsdom, Angular2, Polymer and many more. -

- ----- - -

- Documentation -

- -

- Version history -

- -

- Online playground -

- -

- Issue tracker -

diff --git a/tools/eslint/node_modules/parse5/lib/common/doctype.js b/tools/eslint/node_modules/parse5/lib/common/doctype.js deleted file mode 100644 index 2c6927a873a719..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/doctype.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; - -//Const -var VALID_DOCTYPE_NAME = 'html', - QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd', - QUIRKS_MODE_PUBLIC_ID_PREFIXES = [ - '+//silmaril//dtd html pro v0r11 19970101//en', - '-//advasoft ltd//dtd html 3.0 aswedit + extensions//en', - '-//as//dtd html 3.0 aswedit + extensions//en', - '-//ietf//dtd html 2.0 level 1//en', - '-//ietf//dtd html 2.0 level 2//en', - '-//ietf//dtd html 2.0 strict level 1//en', - '-//ietf//dtd html 2.0 strict level 2//en', - '-//ietf//dtd html 2.0 strict//en', - '-//ietf//dtd html 2.0//en', - '-//ietf//dtd html 2.1e//en', - '-//ietf//dtd html 3.0//en', - '-//ietf//dtd html 3.0//en//', - '-//ietf//dtd html 3.2 final//en', - '-//ietf//dtd html 3.2//en', - '-//ietf//dtd html 3//en', - '-//ietf//dtd html level 0//en', - '-//ietf//dtd html level 0//en//2.0', - '-//ietf//dtd html level 1//en', - '-//ietf//dtd html level 1//en//2.0', - '-//ietf//dtd html level 2//en', - '-//ietf//dtd html level 2//en//2.0', - '-//ietf//dtd html level 3//en', - '-//ietf//dtd html level 3//en//3.0', - '-//ietf//dtd html strict level 0//en', - '-//ietf//dtd html strict level 0//en//2.0', - '-//ietf//dtd html strict level 1//en', - '-//ietf//dtd html strict level 1//en//2.0', - '-//ietf//dtd html strict level 2//en', - '-//ietf//dtd html strict level 2//en//2.0', - '-//ietf//dtd html strict level 3//en', - '-//ietf//dtd html strict level 3//en//3.0', - '-//ietf//dtd html strict//en', - '-//ietf//dtd html strict//en//2.0', - '-//ietf//dtd html strict//en//3.0', - '-//ietf//dtd html//en', - '-//ietf//dtd html//en//2.0', - '-//ietf//dtd html//en//3.0', - '-//metrius//dtd metrius presentational//en', - '-//microsoft//dtd internet explorer 2.0 html strict//en', - '-//microsoft//dtd internet explorer 2.0 html//en', - '-//microsoft//dtd internet explorer 2.0 tables//en', - '-//microsoft//dtd internet explorer 3.0 html strict//en', - '-//microsoft//dtd internet explorer 3.0 html//en', - '-//microsoft//dtd internet explorer 3.0 tables//en', - '-//netscape comm. corp.//dtd html//en', - '-//netscape comm. corp.//dtd strict html//en', - '-//o\'reilly and associates//dtd html 2.0//en', - '-//o\'reilly and associates//dtd html extended 1.0//en', - '-//spyglass//dtd html 2.0 extended//en', - '-//sq//dtd html 2.0 hotmetal + extensions//en', - '-//sun microsystems corp.//dtd hotjava html//en', - '-//sun microsystems corp.//dtd hotjava strict html//en', - '-//w3c//dtd html 3 1995-03-24//en', - '-//w3c//dtd html 3.2 draft//en', - '-//w3c//dtd html 3.2 final//en', - '-//w3c//dtd html 3.2//en', - '-//w3c//dtd html 3.2s draft//en', - '-//w3c//dtd html 4.0 frameset//en', - '-//w3c//dtd html 4.0 transitional//en', - '-//w3c//dtd html experimental 19960712//en', - '-//w3c//dtd html experimental 970421//en', - '-//w3c//dtd w3 html//en', - '-//w3o//dtd w3 html 3.0//en', - '-//w3o//dtd w3 html 3.0//en//', - '-//webtechs//dtd mozilla html 2.0//en', - '-//webtechs//dtd mozilla html//en' - ], - QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = [ - '-//w3c//dtd html 4.01 frameset//', - '-//w3c//dtd html 4.01 transitional//' - ], - QUIRKS_MODE_PUBLIC_IDS = [ - '-//w3o//dtd w3 html strict 3.0//en//', - '-/w3c/dtd html 4.0 transitional/en', - 'html' - ]; - - -//Utils -function enquoteDoctypeId(id) { - var quote = id.indexOf('"') !== -1 ? '\'' : '"'; - - return quote + id + quote; -} - - -//API -exports.isQuirks = function (name, publicId, systemId) { - if (name !== VALID_DOCTYPE_NAME) - return true; - - if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) - return true; - - if (publicId !== null) { - publicId = publicId.toLowerCase(); - - if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) - return true; - - var prefixes = QUIRKS_MODE_PUBLIC_ID_PREFIXES; - - if (systemId === null) - prefixes = prefixes.concat(QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES); - - for (var i = 0; i < prefixes.length; i++) { - if (publicId.indexOf(prefixes[i]) === 0) - return true; - } - } - - return false; -}; - -exports.serializeContent = function (name, publicId, systemId) { - var str = '!DOCTYPE '; - - if (name) - str += name; - - if (publicId !== null) - str += ' PUBLIC ' + enquoteDoctypeId(publicId); - - else if (systemId !== null) - str += ' SYSTEM'; - - if (systemId !== null) - str += ' ' + enquoteDoctypeId(systemId); - - return str; -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/foreign_content.js b/tools/eslint/node_modules/parse5/lib/common/foreign_content.js deleted file mode 100644 index 4dedbbffce6f04..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/foreign_content.js +++ /dev/null @@ -1,260 +0,0 @@ -'use strict'; - -var Tokenizer = require('../tokenizer'), - HTML = require('./html'); - -//Aliases -var $ = HTML.TAG_NAMES, - NS = HTML.NAMESPACES, - ATTRS = HTML.ATTRS; - - -//MIME types -var MIME_TYPES = { - TEXT_HTML: 'text/html', - APPLICATION_XML: 'application/xhtml+xml' -}; - -//Attributes -var DEFINITION_URL_ATTR = 'definitionurl', - ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL', - SVG_ATTRS_ADJUSTMENT_MAP = { - 'attributename': 'attributeName', - 'attributetype': 'attributeType', - 'basefrequency': 'baseFrequency', - 'baseprofile': 'baseProfile', - 'calcmode': 'calcMode', - 'clippathunits': 'clipPathUnits', - 'diffuseconstant': 'diffuseConstant', - 'edgemode': 'edgeMode', - 'filterunits': 'filterUnits', - 'glyphref': 'glyphRef', - 'gradienttransform': 'gradientTransform', - 'gradientunits': 'gradientUnits', - 'kernelmatrix': 'kernelMatrix', - 'kernelunitlength': 'kernelUnitLength', - 'keypoints': 'keyPoints', - 'keysplines': 'keySplines', - 'keytimes': 'keyTimes', - 'lengthadjust': 'lengthAdjust', - 'limitingconeangle': 'limitingConeAngle', - 'markerheight': 'markerHeight', - 'markerunits': 'markerUnits', - 'markerwidth': 'markerWidth', - 'maskcontentunits': 'maskContentUnits', - 'maskunits': 'maskUnits', - 'numoctaves': 'numOctaves', - 'pathlength': 'pathLength', - 'patterncontentunits': 'patternContentUnits', - 'patterntransform': 'patternTransform', - 'patternunits': 'patternUnits', - 'pointsatx': 'pointsAtX', - 'pointsaty': 'pointsAtY', - 'pointsatz': 'pointsAtZ', - 'preservealpha': 'preserveAlpha', - 'preserveaspectratio': 'preserveAspectRatio', - 'primitiveunits': 'primitiveUnits', - 'refx': 'refX', - 'refy': 'refY', - 'repeatcount': 'repeatCount', - 'repeatdur': 'repeatDur', - 'requiredextensions': 'requiredExtensions', - 'requiredfeatures': 'requiredFeatures', - 'specularconstant': 'specularConstant', - 'specularexponent': 'specularExponent', - 'spreadmethod': 'spreadMethod', - 'startoffset': 'startOffset', - 'stddeviation': 'stdDeviation', - 'stitchtiles': 'stitchTiles', - 'surfacescale': 'surfaceScale', - 'systemlanguage': 'systemLanguage', - 'tablevalues': 'tableValues', - 'targetx': 'targetX', - 'targety': 'targetY', - 'textlength': 'textLength', - 'viewbox': 'viewBox', - 'viewtarget': 'viewTarget', - 'xchannelselector': 'xChannelSelector', - 'ychannelselector': 'yChannelSelector', - 'zoomandpan': 'zoomAndPan' - }, - XML_ATTRS_ADJUSTMENT_MAP = { - 'xlink:actuate': {prefix: 'xlink', name: 'actuate', namespace: NS.XLINK}, - 'xlink:arcrole': {prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK}, - 'xlink:href': {prefix: 'xlink', name: 'href', namespace: NS.XLINK}, - 'xlink:role': {prefix: 'xlink', name: 'role', namespace: NS.XLINK}, - 'xlink:show': {prefix: 'xlink', name: 'show', namespace: NS.XLINK}, - 'xlink:title': {prefix: 'xlink', name: 'title', namespace: NS.XLINK}, - 'xlink:type': {prefix: 'xlink', name: 'type', namespace: NS.XLINK}, - 'xml:base': {prefix: 'xml', name: 'base', namespace: NS.XML}, - 'xml:lang': {prefix: 'xml', name: 'lang', namespace: NS.XML}, - 'xml:space': {prefix: 'xml', name: 'space', namespace: NS.XML}, - 'xmlns': {prefix: '', name: 'xmlns', namespace: NS.XMLNS}, - 'xmlns:xlink': {prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS} - - }; - -//SVG tag names adjustment map -var SVG_TAG_NAMES_ADJUSTMENT_MAP = exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = { - 'altglyph': 'altGlyph', - 'altglyphdef': 'altGlyphDef', - 'altglyphitem': 'altGlyphItem', - 'animatecolor': 'animateColor', - 'animatemotion': 'animateMotion', - 'animatetransform': 'animateTransform', - 'clippath': 'clipPath', - 'feblend': 'feBlend', - 'fecolormatrix': 'feColorMatrix', - 'fecomponenttransfer': 'feComponentTransfer', - 'fecomposite': 'feComposite', - 'feconvolvematrix': 'feConvolveMatrix', - 'fediffuselighting': 'feDiffuseLighting', - 'fedisplacementmap': 'feDisplacementMap', - 'fedistantlight': 'feDistantLight', - 'feflood': 'feFlood', - 'fefunca': 'feFuncA', - 'fefuncb': 'feFuncB', - 'fefuncg': 'feFuncG', - 'fefuncr': 'feFuncR', - 'fegaussianblur': 'feGaussianBlur', - 'feimage': 'feImage', - 'femerge': 'feMerge', - 'femergenode': 'feMergeNode', - 'femorphology': 'feMorphology', - 'feoffset': 'feOffset', - 'fepointlight': 'fePointLight', - 'fespecularlighting': 'feSpecularLighting', - 'fespotlight': 'feSpotLight', - 'fetile': 'feTile', - 'feturbulence': 'feTurbulence', - 'foreignobject': 'foreignObject', - 'glyphref': 'glyphRef', - 'lineargradient': 'linearGradient', - 'radialgradient': 'radialGradient', - 'textpath': 'textPath' -}; - -//Tags that causes exit from foreign content -var EXITS_FOREIGN_CONTENT = {}; - -EXITS_FOREIGN_CONTENT[$.B] = true; -EXITS_FOREIGN_CONTENT[$.BIG] = true; -EXITS_FOREIGN_CONTENT[$.BLOCKQUOTE] = true; -EXITS_FOREIGN_CONTENT[$.BODY] = true; -EXITS_FOREIGN_CONTENT[$.BR] = true; -EXITS_FOREIGN_CONTENT[$.CENTER] = true; -EXITS_FOREIGN_CONTENT[$.CODE] = true; -EXITS_FOREIGN_CONTENT[$.DD] = true; -EXITS_FOREIGN_CONTENT[$.DIV] = true; -EXITS_FOREIGN_CONTENT[$.DL] = true; -EXITS_FOREIGN_CONTENT[$.DT] = true; -EXITS_FOREIGN_CONTENT[$.EM] = true; -EXITS_FOREIGN_CONTENT[$.EMBED] = true; -EXITS_FOREIGN_CONTENT[$.H1] = true; -EXITS_FOREIGN_CONTENT[$.H2] = true; -EXITS_FOREIGN_CONTENT[$.H3] = true; -EXITS_FOREIGN_CONTENT[$.H4] = true; -EXITS_FOREIGN_CONTENT[$.H5] = true; -EXITS_FOREIGN_CONTENT[$.H6] = true; -EXITS_FOREIGN_CONTENT[$.HEAD] = true; -EXITS_FOREIGN_CONTENT[$.HR] = true; -EXITS_FOREIGN_CONTENT[$.I] = true; -EXITS_FOREIGN_CONTENT[$.IMG] = true; -EXITS_FOREIGN_CONTENT[$.LI] = true; -EXITS_FOREIGN_CONTENT[$.LISTING] = true; -EXITS_FOREIGN_CONTENT[$.MENU] = true; -EXITS_FOREIGN_CONTENT[$.META] = true; -EXITS_FOREIGN_CONTENT[$.NOBR] = true; -EXITS_FOREIGN_CONTENT[$.OL] = true; -EXITS_FOREIGN_CONTENT[$.P] = true; -EXITS_FOREIGN_CONTENT[$.PRE] = true; -EXITS_FOREIGN_CONTENT[$.RUBY] = true; -EXITS_FOREIGN_CONTENT[$.S] = true; -EXITS_FOREIGN_CONTENT[$.SMALL] = true; -EXITS_FOREIGN_CONTENT[$.SPAN] = true; -EXITS_FOREIGN_CONTENT[$.STRONG] = true; -EXITS_FOREIGN_CONTENT[$.STRIKE] = true; -EXITS_FOREIGN_CONTENT[$.SUB] = true; -EXITS_FOREIGN_CONTENT[$.SUP] = true; -EXITS_FOREIGN_CONTENT[$.TABLE] = true; -EXITS_FOREIGN_CONTENT[$.TT] = true; -EXITS_FOREIGN_CONTENT[$.U] = true; -EXITS_FOREIGN_CONTENT[$.UL] = true; -EXITS_FOREIGN_CONTENT[$.VAR] = true; - -//Check exit from foreign content -exports.causesExit = function (startTagToken) { - var tn = startTagToken.tagName; - var isFontWithAttrs = tn === $.FONT && (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null || - Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null || - Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null); - - return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn]; -}; - -//Token adjustments -exports.adjustTokenMathMLAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - if (token.attrs[i].name === DEFINITION_URL_ATTR) { - token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR; - break; - } - } -}; - -exports.adjustTokenSVGAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - var adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name]; - - if (adjustedAttrName) - token.attrs[i].name = adjustedAttrName; - } -}; - -exports.adjustTokenXMLAttrs = function (token) { - for (var i = 0; i < token.attrs.length; i++) { - var adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name]; - - if (adjustedAttrEntry) { - token.attrs[i].prefix = adjustedAttrEntry.prefix; - token.attrs[i].name = adjustedAttrEntry.name; - token.attrs[i].namespace = adjustedAttrEntry.namespace; - } - } -}; - -exports.adjustTokenSVGTagName = function (token) { - var adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName]; - - if (adjustedTagName) - token.tagName = adjustedTagName; -}; - -//Integration points -function isMathMLTextIntegrationPoint(tn, ns) { - return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT); -} - -function isHtmlIntegrationPoint(tn, ns, attrs) { - if (ns === NS.MATHML && tn === $.ANNOTATION_XML) { - for (var i = 0; i < attrs.length; i++) { - if (attrs[i].name === ATTRS.ENCODING) { - var value = attrs[i].value.toLowerCase(); - - return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML; - } - } - } - - return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE); -} - -exports.isIntegrationPoint = function (tn, ns, attrs, foreignNS) { - if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) - return true; - - if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) - return true; - - return false; -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/html.js b/tools/eslint/node_modules/parse5/lib/common/html.js deleted file mode 100644 index d826eaa36da1ac..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/html.js +++ /dev/null @@ -1,266 +0,0 @@ -'use strict'; - -var NS = exports.NAMESPACES = { - HTML: 'http://www.w3.org/1999/xhtml', - MATHML: 'http://www.w3.org/1998/Math/MathML', - SVG: 'http://www.w3.org/2000/svg', - XLINK: 'http://www.w3.org/1999/xlink', - XML: 'http://www.w3.org/XML/1998/namespace', - XMLNS: 'http://www.w3.org/2000/xmlns/' -}; - -exports.ATTRS = { - TYPE: 'type', - ACTION: 'action', - ENCODING: 'encoding', - PROMPT: 'prompt', - NAME: 'name', - COLOR: 'color', - FACE: 'face', - SIZE: 'size' -}; - -var $ = exports.TAG_NAMES = { - A: 'a', - ADDRESS: 'address', - ANNOTATION_XML: 'annotation-xml', - APPLET: 'applet', - AREA: 'area', - ARTICLE: 'article', - ASIDE: 'aside', - - B: 'b', - BASE: 'base', - BASEFONT: 'basefont', - BGSOUND: 'bgsound', - BIG: 'big', - BLOCKQUOTE: 'blockquote', - BODY: 'body', - BR: 'br', - BUTTON: 'button', - - CAPTION: 'caption', - CENTER: 'center', - CODE: 'code', - COL: 'col', - COLGROUP: 'colgroup', - - DD: 'dd', - DESC: 'desc', - DETAILS: 'details', - DIALOG: 'dialog', - DIR: 'dir', - DIV: 'div', - DL: 'dl', - DT: 'dt', - - EM: 'em', - EMBED: 'embed', - - FIELDSET: 'fieldset', - FIGCAPTION: 'figcaption', - FIGURE: 'figure', - FONT: 'font', - FOOTER: 'footer', - FOREIGN_OBJECT: 'foreignObject', - FORM: 'form', - FRAME: 'frame', - FRAMESET: 'frameset', - - H1: 'h1', - H2: 'h2', - H3: 'h3', - H4: 'h4', - H5: 'h5', - H6: 'h6', - HEAD: 'head', - HEADER: 'header', - HGROUP: 'hgroup', - HR: 'hr', - HTML: 'html', - - I: 'i', - IMG: 'img', - IMAGE: 'image', - INPUT: 'input', - IFRAME: 'iframe', - - KEYGEN: 'keygen', - - LABEL: 'label', - LI: 'li', - LINK: 'link', - LISTING: 'listing', - - MAIN: 'main', - MALIGNMARK: 'malignmark', - MARQUEE: 'marquee', - MATH: 'math', - MENU: 'menu', - MENUITEM: 'menuitem', - META: 'meta', - MGLYPH: 'mglyph', - MI: 'mi', - MO: 'mo', - MN: 'mn', - MS: 'ms', - MTEXT: 'mtext', - - NAV: 'nav', - NOBR: 'nobr', - NOFRAMES: 'noframes', - NOEMBED: 'noembed', - NOSCRIPT: 'noscript', - - OBJECT: 'object', - OL: 'ol', - OPTGROUP: 'optgroup', - OPTION: 'option', - - P: 'p', - PARAM: 'param', - PLAINTEXT: 'plaintext', - PRE: 'pre', - - RB: 'rb', - RP: 'rp', - RT: 'rt', - RTC: 'rtc', - RUBY: 'ruby', - - S: 's', - SCRIPT: 'script', - SECTION: 'section', - SELECT: 'select', - SOURCE: 'source', - SMALL: 'small', - SPAN: 'span', - STRIKE: 'strike', - STRONG: 'strong', - STYLE: 'style', - SUB: 'sub', - SUMMARY: 'summary', - SUP: 'sup', - - TABLE: 'table', - TBODY: 'tbody', - TEMPLATE: 'template', - TEXTAREA: 'textarea', - TFOOT: 'tfoot', - TD: 'td', - TH: 'th', - THEAD: 'thead', - TITLE: 'title', - TR: 'tr', - TRACK: 'track', - TT: 'tt', - - U: 'u', - UL: 'ul', - - SVG: 'svg', - - VAR: 'var', - - WBR: 'wbr', - - XMP: 'xmp' -}; - -var SPECIAL_ELEMENTS = exports.SPECIAL_ELEMENTS = {}; - -SPECIAL_ELEMENTS[NS.HTML] = {}; -SPECIAL_ELEMENTS[NS.HTML][$.ADDRESS] = true; -SPECIAL_ELEMENTS[NS.HTML][$.APPLET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.AREA] = true; -SPECIAL_ELEMENTS[NS.HTML][$.ARTICLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.ASIDE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BASE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BASEFONT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BGSOUND] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BLOCKQUOTE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BODY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.BUTTON] = true; -SPECIAL_ELEMENTS[NS.HTML][$.CAPTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.CENTER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.COL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.COLGROUP] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DETAILS] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DIR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DIV] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.DT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.EMBED] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIELDSET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIGCAPTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FIGURE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FOOTER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FORM] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FRAME] = true; -SPECIAL_ELEMENTS[NS.HTML][$.FRAMESET] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H1] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H2] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H3] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H4] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H5] = true; -SPECIAL_ELEMENTS[NS.HTML][$.H6] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HEAD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HEADER] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HGROUP] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.HTML] = true; -SPECIAL_ELEMENTS[NS.HTML][$.IFRAME] = true; -SPECIAL_ELEMENTS[NS.HTML][$.IMG] = true; -SPECIAL_ELEMENTS[NS.HTML][$.INPUT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LI] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LINK] = true; -SPECIAL_ELEMENTS[NS.HTML][$.LISTING] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MAIN] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MARQUEE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.MENU] = true; -SPECIAL_ELEMENTS[NS.HTML][$.META] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NAV] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOEMBED] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOFRAMES] = true; -SPECIAL_ELEMENTS[NS.HTML][$.NOSCRIPT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.OBJECT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.OL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.P] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PARAM] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PLAINTEXT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.PRE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SCRIPT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SECTION] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SELECT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SOURCE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.STYLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.SUMMARY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TABLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TBODY] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TEMPLATE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TEXTAREA] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TFOOT] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TH] = true; -SPECIAL_ELEMENTS[NS.HTML][$.THEAD] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TITLE] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.TRACK] = true; -SPECIAL_ELEMENTS[NS.HTML][$.UL] = true; -SPECIAL_ELEMENTS[NS.HTML][$.WBR] = true; -SPECIAL_ELEMENTS[NS.HTML][$.XMP] = true; - -SPECIAL_ELEMENTS[NS.MATHML] = {}; -SPECIAL_ELEMENTS[NS.MATHML][$.MI] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MO] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MN] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MS] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.MTEXT] = true; -SPECIAL_ELEMENTS[NS.MATHML][$.ANNOTATION_XML] = true; - -SPECIAL_ELEMENTS[NS.SVG] = {}; -SPECIAL_ELEMENTS[NS.SVG][$.TITLE] = true; -SPECIAL_ELEMENTS[NS.SVG][$.FOREIGN_OBJECT] = true; -SPECIAL_ELEMENTS[NS.SVG][$.DESC] = true; diff --git a/tools/eslint/node_modules/parse5/lib/common/merge_options.js b/tools/eslint/node_modules/parse5/lib/common/merge_options.js deleted file mode 100644 index c35934a96a7c3d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/merge_options.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -module.exports = function mergeOptions(defaults, options) { - options = options || {}; - - return [defaults, options].reduce(function (merged, optObj) { - Object.keys(optObj).forEach(function (key) { - merged[key] = optObj[key]; - }); - - return merged; - }, {}); -}; diff --git a/tools/eslint/node_modules/parse5/lib/common/unicode.js b/tools/eslint/node_modules/parse5/lib/common/unicode.js deleted file mode 100644 index 8777e97ab79d1a..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/common/unicode.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -exports.REPLACEMENT_CHARACTER = '\uFFFD'; - -exports.CODE_POINTS = { - EOF: -1, - NULL: 0x00, - TABULATION: 0x09, - CARRIAGE_RETURN: 0x0D, - LINE_FEED: 0x0A, - FORM_FEED: 0x0C, - SPACE: 0x20, - EXCLAMATION_MARK: 0x21, - QUOTATION_MARK: 0x22, - NUMBER_SIGN: 0x23, - AMPERSAND: 0x26, - APOSTROPHE: 0x27, - HYPHEN_MINUS: 0x2D, - SOLIDUS: 0x2F, - DIGIT_0: 0x30, - DIGIT_9: 0x39, - SEMICOLON: 0x3B, - LESS_THAN_SIGN: 0x3C, - EQUALS_SIGN: 0x3D, - GREATER_THAN_SIGN: 0x3E, - QUESTION_MARK: 0x3F, - LATIN_CAPITAL_A: 0x41, - LATIN_CAPITAL_F: 0x46, - LATIN_CAPITAL_X: 0x58, - LATIN_CAPITAL_Z: 0x5A, - GRAVE_ACCENT: 0x60, - LATIN_SMALL_A: 0x61, - LATIN_SMALL_F: 0x66, - LATIN_SMALL_X: 0x78, - LATIN_SMALL_Z: 0x7A, - REPLACEMENT_CHARACTER: 0xFFFD -}; - -exports.CODE_POINT_SEQUENCES = { - DASH_DASH_STRING: [0x2D, 0x2D], //-- - DOCTYPE_STRING: [0x44, 0x4F, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE - CDATA_START_STRING: [0x5B, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5B], //[CDATA[ - CDATA_END_STRING: [0x5D, 0x5D, 0x3E], //]]> - SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script - PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4C, 0x49, 0x43], //PUBLIC - SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4D] //SYSTEM -}; diff --git a/tools/eslint/node_modules/parse5/lib/index.js b/tools/eslint/node_modules/parse5/lib/index.js deleted file mode 100644 index 28663c2193ea42..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/index.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; - -var Parser = require('./parser'), - Serializer = require('./serializer'); - -/** @namespace parse5 */ - -/** - * Parses an HTML string. - * @function parse - * @memberof parse5 - * @instance - * @param {string} html - Input HTML string. - * @param {ParserOptions} [options] - Parsing options. - * @returns {ASTNode} document - * @example - * var parse5 = require('parse5'); - * - * var document = parse5.parse('Hi there!'); - */ -exports.parse = function parse(html, options) { - var parser = new Parser(options); - - return parser.parse(html); -}; - -/** - * Parses an HTML fragment. - * @function parseFragment - * @memberof parse5 - * @instance - * @param {ASTNode} [fragmentContext] - Parsing context element. If specified, given fragment - * will be parsed as if it was set to the context element's `innerHTML` property. - * @param {string} html - Input HTML fragment string. - * @param {ParserOptions} [options] - Parsing options. - * @returns {ASTNode} documentFragment - * @example - * var parse5 = require('parse5'); - * - * var documentFragment = parse5.parseFragment('
'); - * - * // Parses the html fragment in the context of the parsed element. - * var trFragment = parser.parseFragment(documentFragment.childNodes[0], ''); - */ -exports.parseFragment = function parseFragment(fragmentContext, html, options) { - if (typeof fragmentContext === 'string') { - options = html; - html = fragmentContext; - fragmentContext = null; - } - - var parser = new Parser(options); - - return parser.parseFragment(html, fragmentContext); -}; - -/** - * Serializes an AST node to an HTML string. - * @function serialize - * @memberof parse5 - * @instance - * @param {ASTNode} node - Node to serialize. - * @param {SerializerOptions} [options] - Serialization options. - * @returns {String} html - * @example - * var parse5 = require('parse5'); - * - * var document = parse5.parse('Hi there!'); - * - * // Serializes a document. - * var html = parse5.serialize(document); - * - * // Serializes the element content. - * var bodyInnerHtml = parse5.serialize(document.childNodes[0].childNodes[1]); - */ -exports.serialize = function (node, options) { - var serializer = new Serializer(node, options); - - return serializer.serialize(); -}; - -/** - * Provides built-in tree adapters that can be used for parsing and serialization. - * @var treeAdapters - * @memberof parse5 - * @instance - * @property {TreeAdapter} default - Default tree format for parse5. - * @property {TreeAdapter} htmlparser2 - Quite popular [htmlparser2](https://github.com/fb55/htmlparser2) tree format - * (e.g. used by [cheerio](https://github.com/MatthewMueller/cheerio) and [jsdom](https://github.com/tmpvar/jsdom)). - * @example - * var parse5 = require('parse5'); - * - * // Uses the default tree adapter for parsing. - * var document = parse5.parse('
', { treeAdapter: parse5.treeAdapters.default }); - * - * // Uses the htmlparser2 tree adapter with the SerializerStream. - * var serializer = new parse5.SerializerStream(node, { treeAdapter: parse5.treeAdapters.htmlparser2 }); - */ -exports.treeAdapters = { - default: require('./tree_adapters/default'), - htmlparser2: require('./tree_adapters/htmlparser2') -}; - - -// Streaming -exports.ParserStream = require('./parser/stream'); -exports.SerializerStream = require('./serializer/stream'); -exports.SAXParser = require('./sax'); diff --git a/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js b/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js deleted file mode 100644 index c92baf5606ec7d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/location_info/parser_mixin.js +++ /dev/null @@ -1,217 +0,0 @@ -'use strict'; - -var OpenElementStack = require('../parser/open_element_stack'), - Tokenizer = require('../tokenizer'), - HTML = require('../common/html'); - - -//Aliases -var $ = HTML.TAG_NAMES; - - -function setEndLocation(element, closingToken, treeAdapter) { - var loc = element.__location; - - if (!loc) - return; - - /** - * @typedef {Object} ElementLocationInfo - * @extends StartTagLocationInfo - * - * @property {StartTagLocationInfo} startTag - Element's start tag location info. - * @property {LocationInfo} endTag - Element's end tag location info. - */ - if (!loc.startTag) { - loc.startTag = { - line: loc.line, - col: loc.col, - startOffset: loc.startOffset, - endOffset: loc.endOffset - }; - if (loc.attrs) - loc.startTag.attrs = loc.attrs; - } - - if (closingToken.location) { - var ctLocation = closingToken.location, - tn = treeAdapter.getTagName(element), - // NOTE: For cases like

- First 'p' closes without a closing tag and - // for cases like - 'p' closes without a closing tag - isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && - tn === closingToken.tagName; - - if (isClosingEndTag) { - loc.endTag = { - line: ctLocation.line, - col: ctLocation.col, - startOffset: ctLocation.startOffset, - endOffset: ctLocation.endOffset - }; - } - - if (isClosingEndTag) - loc.endOffset = ctLocation.endOffset; - else - loc.endOffset = ctLocation.startOffset; - } -} - - -exports.assign = function (parser) { - //NOTE: obtain Parser proto this way to avoid module circular references - var parserProto = Object.getPrototypeOf(parser), - treeAdapter = parser.treeAdapter, - attachableElementLocation = null, - lastFosterParentingLocation = null, - currentToken = null; - - - //NOTE: patch _bootstrap method - parser._bootstrap = function (document, fragmentContext) { - parserProto._bootstrap.call(this, document, fragmentContext); - - attachableElementLocation = null; - lastFosterParentingLocation = null; - currentToken = null; - - //OpenElementStack - parser.openElements.pop = function () { - setEndLocation(this.current, currentToken, treeAdapter); - OpenElementStack.prototype.pop.call(this); - }; - - parser.openElements.popAllUpToHtmlElement = function () { - for (var i = this.stackTop; i > 0; i--) - setEndLocation(this.items[i], currentToken, treeAdapter); - - OpenElementStack.prototype.popAllUpToHtmlElement.call(this); - }; - - parser.openElements.remove = function (element) { - setEndLocation(element, currentToken, treeAdapter); - OpenElementStack.prototype.remove.call(this, element); - }; - }; - - - //Token processing - parser._processTokenInForeignContent = function (token) { - currentToken = token; - parserProto._processTokenInForeignContent.call(this, token); - }; - - parser._processToken = function (token) { - currentToken = token; - parserProto._processToken.call(this, token); - - //NOTE: and are never popped from the stack, so we need to updated - //their end location explicitly. - if (token.type === Tokenizer.END_TAG_TOKEN && - (token.tagName === $.HTML || - token.tagName === $.BODY && this.openElements.hasInScope($.BODY))) { - for (var i = this.openElements.stackTop; i >= 0; i--) { - var element = this.openElements.items[i]; - - if (this.treeAdapter.getTagName(element) === token.tagName) { - setEndLocation(element, token, treeAdapter); - break; - } - } - } - }; - - - //Doctype - parser._setDocumentType = function (token) { - parserProto._setDocumentType.call(this, token); - - var documentChildren = this.treeAdapter.getChildNodes(this.document), - cnLength = documentChildren.length; - - for (var i = 0; i < cnLength; i++) { - var node = documentChildren[i]; - - if (this.treeAdapter.isDocumentTypeNode(node)) { - node.__location = token.location; - break; - } - } - }; - - - //Elements - parser._attachElementToTree = function (element) { - //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods. - //So we will use token location stored in this methods for the element. - element.__location = attachableElementLocation || null; - attachableElementLocation = null; - parserProto._attachElementToTree.call(this, element); - }; - - parser._appendElement = function (token, namespaceURI) { - attachableElementLocation = token.location; - parserProto._appendElement.call(this, token, namespaceURI); - }; - - parser._insertElement = function (token, namespaceURI) { - attachableElementLocation = token.location; - parserProto._insertElement.call(this, token, namespaceURI); - }; - - parser._insertTemplate = function (token) { - attachableElementLocation = token.location; - parserProto._insertTemplate.call(this, token); - - var tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current); - - tmplContent.__location = null; - }; - - parser._insertFakeRootElement = function () { - parserProto._insertFakeRootElement.call(this); - this.openElements.current.__location = null; - }; - - - //Comments - parser._appendCommentNode = function (token, parent) { - parserProto._appendCommentNode.call(this, token, parent); - - var children = this.treeAdapter.getChildNodes(parent), - commentNode = children[children.length - 1]; - - commentNode.__location = token.location; - }; - - - //Text - parser._findFosterParentingLocation = function () { - //NOTE: store last foster parenting location, so we will be able to find inserted text - //in case of foster parenting - lastFosterParentingLocation = parserProto._findFosterParentingLocation.call(this); - return lastFosterParentingLocation; - }; - - parser._insertCharacters = function (token) { - parserProto._insertCharacters.call(this, token); - - var hasFosterParent = this._shouldFosterParentOnInsertion(), - parent = hasFosterParent && lastFosterParentingLocation.parent || - this.openElements.currentTmplContent || - this.openElements.current, - siblings = this.treeAdapter.getChildNodes(parent), - textNodeIdx = hasFosterParent && lastFosterParentingLocation.beforeElement ? - siblings.indexOf(lastFosterParentingLocation.beforeElement) - 1 : - siblings.length - 1, - textNode = siblings[textNodeIdx]; - - //NOTE: if we have location assigned by another token, then just update end position - if (textNode.__location) - textNode.__location.endOffset = token.location.endOffset; - - else - textNode.__location = token.location; - }; -}; - diff --git a/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js b/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js deleted file mode 100644 index bbdebd7cfc5a94..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/location_info/tokenizer_mixin.js +++ /dev/null @@ -1,169 +0,0 @@ -'use strict'; - -var UNICODE = require('../common/unicode'); - -//Aliases -var $ = UNICODE.CODE_POINTS; - - -exports.assign = function (tokenizer) { - //NOTE: obtain Tokenizer proto this way to avoid module circular references - var tokenizerProto = Object.getPrototypeOf(tokenizer), - tokenStartOffset = -1, - tokenCol = -1, - tokenLine = 1, - isEol = false, - lineStartPosStack = [0], - lineStartPos = 0, - col = -1, - line = 1; - - function attachLocationInfo(token) { - /** - * @typedef {Object} LocationInfo - * - * @property {Number} line - One-based line index - * @property {Number} col - One-based column index - * @property {Number} startOffset - Zero-based first character index - * @property {Number} endOffset - Zero-based last character index - */ - token.location = { - line: tokenLine, - col: tokenCol, - startOffset: tokenStartOffset, - endOffset: -1 - }; - } - - //NOTE: patch consumption method to track line/col information - tokenizer._consume = function () { - var cp = tokenizerProto._consume.call(this); - - //NOTE: LF should be in the last column of the line - if (isEol) { - isEol = false; - line++; - lineStartPosStack.push(this.preprocessor.sourcePos); - lineStartPos = this.preprocessor.sourcePos; - } - - if (cp === $.LINE_FEED) - isEol = true; - - col = this.preprocessor.sourcePos - lineStartPos + 1; - - return cp; - }; - - tokenizer._unconsume = function () { - tokenizerProto._unconsume.call(this); - isEol = false; - - while (lineStartPos > this.preprocessor.sourcePos && lineStartPosStack.length > 1) { - lineStartPos = lineStartPosStack.pop(); - line--; - } - - col = this.preprocessor.sourcePos - lineStartPos + 1; - }; - - //NOTE: patch token creation methods and attach location objects - tokenizer._createStartTagToken = function () { - tokenizerProto._createStartTagToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createEndTagToken = function () { - tokenizerProto._createEndTagToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createCommentToken = function () { - tokenizerProto._createCommentToken.call(this); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createDoctypeToken = function (initialName) { - tokenizerProto._createDoctypeToken.call(this, initialName); - attachLocationInfo(this.currentToken); - }; - - tokenizer._createCharacterToken = function (type, ch) { - tokenizerProto._createCharacterToken.call(this, type, ch); - attachLocationInfo(this.currentCharacterToken); - }; - - tokenizer._createAttr = function (attrNameFirstCh) { - tokenizerProto._createAttr.call(this, attrNameFirstCh); - this.currentAttrLocation = { - line: line, - col: col, - startOffset: this.preprocessor.sourcePos, - endOffset: -1 - }; - }; - - tokenizer._leaveAttrName = function (toState) { - tokenizerProto._leaveAttrName.call(this, toState); - this._attachCurrentAttrLocationInfo(); - }; - - tokenizer._leaveAttrValue = function (toState) { - tokenizerProto._leaveAttrValue.call(this, toState); - this._attachCurrentAttrLocationInfo(); - }; - - tokenizer._attachCurrentAttrLocationInfo = function () { - this.currentAttrLocation.endOffset = this.preprocessor.sourcePos; - - if (!this.currentToken.location.attrs) - this.currentToken.location.attrs = {}; - - /** - * @typedef {Object} StartTagLocationInfo - * @extends LocationInfo - * - * @property {Dictionary} attrs - Start tag attributes' location info. - */ - this.currentToken.location.attrs[this.currentAttr.name] = this.currentAttrLocation; - }; - - //NOTE: patch token emission methods to determine end location - tokenizer._emitCurrentToken = function () { - //NOTE: if we have pending character token make it's end location equal to the - //current token's start location. - if (this.currentCharacterToken) - this.currentCharacterToken.location.endOffset = this.currentToken.location.startOffset; - - this.currentToken.location.endOffset = this.preprocessor.sourcePos + 1; - tokenizerProto._emitCurrentToken.call(this); - }; - - tokenizer._emitCurrentCharacterToken = function () { - //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(), - //then set it's location at the current preprocessor position. - //We don't need to increment preprocessor position, since character token - //emission is always forced by the start of the next character token here. - //So, we already have advanced position. - if (this.currentCharacterToken && this.currentCharacterToken.location.endOffset === -1) - this.currentCharacterToken.location.endOffset = this.preprocessor.sourcePos; - - tokenizerProto._emitCurrentCharacterToken.call(this); - }; - - //NOTE: patch initial states for each mode to obtain token start position - Object.keys(tokenizerProto.MODE) - - .map(function (modeName) { - return tokenizerProto.MODE[modeName]; - }) - - .forEach(function (state) { - tokenizer[state] = function (cp) { - tokenStartOffset = this.preprocessor.sourcePos; - tokenLine = line; - tokenCol = col; - tokenizerProto[state].call(this, cp); - }; - }); -}; diff --git a/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js b/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js deleted file mode 100644 index e1711910e3971d..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/parser/formatting_element_list.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict'; - -//Const -var NOAH_ARK_CAPACITY = 3; - -//List of formatting elements -var FormattingElementList = module.exports = function (treeAdapter) { - this.length = 0; - this.entries = []; - this.treeAdapter = treeAdapter; - this.bookmark = null; -}; - -//Entry types -FormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY'; -FormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY'; - -//Noah Ark's condition -//OPTIMIZATION: at first we try to find possible candidates for exclusion using -//lightweight heuristics without thorough attributes check. -FormattingElementList.prototype._getNoahArkConditionCandidates = function (newElement) { - var candidates = []; - - if (this.length >= NOAH_ARK_CAPACITY) { - var neAttrsLength = this.treeAdapter.getAttrList(newElement).length, - neTagName = this.treeAdapter.getTagName(newElement), - neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement); - - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - break; - - var element = entry.element, - elementAttrs = this.treeAdapter.getAttrList(element), - isCandidate = this.treeAdapter.getTagName(element) === neTagName && - this.treeAdapter.getNamespaceURI(element) === neNamespaceURI && - elementAttrs.length === neAttrsLength; - - if (isCandidate) - candidates.push({idx: i, attrs: elementAttrs}); - } - } - - return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates; -}; - -FormattingElementList.prototype._ensureNoahArkCondition = function (newElement) { - var candidates = this._getNoahArkConditionCandidates(newElement), - cLength = candidates.length; - - if (cLength) { - var neAttrs = this.treeAdapter.getAttrList(newElement), - neAttrsLength = neAttrs.length, - neAttrsMap = {}; - - //NOTE: build attrs map for the new element so we can perform fast lookups - for (var i = 0; i < neAttrsLength; i++) { - var neAttr = neAttrs[i]; - - neAttrsMap[neAttr.name] = neAttr.value; - } - - for (i = 0; i < neAttrsLength; i++) { - for (var j = 0; j < cLength; j++) { - var cAttr = candidates[j].attrs[i]; - - if (neAttrsMap[cAttr.name] !== cAttr.value) { - candidates.splice(j, 1); - cLength--; - } - - if (candidates.length < NOAH_ARK_CAPACITY) - return; - } - } - - //NOTE: remove bottommost candidates until Noah's Ark condition will not be met - for (i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) { - this.entries.splice(candidates[i].idx, 1); - this.length--; - } - } -}; - -//Mutations -FormattingElementList.prototype.insertMarker = function () { - this.entries.push({type: FormattingElementList.MARKER_ENTRY}); - this.length++; -}; - -FormattingElementList.prototype.pushElement = function (element, token) { - this._ensureNoahArkCondition(element); - - this.entries.push({ - type: FormattingElementList.ELEMENT_ENTRY, - element: element, - token: token - }); - - this.length++; -}; - -FormattingElementList.prototype.insertElementAfterBookmark = function (element, token) { - var bookmarkIdx = this.length - 1; - - for (; bookmarkIdx >= 0; bookmarkIdx--) { - if (this.entries[bookmarkIdx] === this.bookmark) - break; - } - - this.entries.splice(bookmarkIdx + 1, 0, { - type: FormattingElementList.ELEMENT_ENTRY, - element: element, - token: token - }); - - this.length++; -}; - -FormattingElementList.prototype.removeEntry = function (entry) { - for (var i = this.length - 1; i >= 0; i--) { - if (this.entries[i] === entry) { - this.entries.splice(i, 1); - this.length--; - break; - } - } -}; - -FormattingElementList.prototype.clearToLastMarker = function () { - while (this.length) { - var entry = this.entries.pop(); - - this.length--; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - break; - } -}; - -//Search -FormattingElementList.prototype.getElementEntryInScopeWithTagName = function (tagName) { - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.MARKER_ENTRY) - return null; - - if (this.treeAdapter.getTagName(entry.element) === tagName) - return entry; - } - - return null; -}; - -FormattingElementList.prototype.getElementEntry = function (element) { - for (var i = this.length - 1; i >= 0; i--) { - var entry = this.entries[i]; - - if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) - return entry; - } - - return null; -}; diff --git a/tools/eslint/node_modules/parse5/lib/parser/index.js b/tools/eslint/node_modules/parse5/lib/parser/index.js deleted file mode 100644 index bdf192050d43bf..00000000000000 --- a/tools/eslint/node_modules/parse5/lib/parser/index.js +++ /dev/null @@ -1,2817 +0,0 @@ -'use strict'; - -var Tokenizer = require('../tokenizer'), - OpenElementStack = require('./open_element_stack'), - FormattingElementList = require('./formatting_element_list'), - locationInfoMixin = require('../location_info/parser_mixin'), - defaultTreeAdapter = require('../tree_adapters/default'), - doctype = require('../common/doctype'), - foreignContent = require('../common/foreign_content'), - mergeOptions = require('../common/merge_options'), - UNICODE = require('../common/unicode'), - HTML = require('../common/html'); - -//Aliases -var $ = HTML.TAG_NAMES, - NS = HTML.NAMESPACES, - ATTRS = HTML.ATTRS; - -/** - * @typedef {Object} ParserOptions - * - * @property {Boolean} [locationInfo=false] - Enables source code location information for the nodes. - * When enabled, each node (except root node) has the `__location` property. In case the node is not an empty element, - * `__location` will be {@link ElementLocationInfo} object, otherwise it's {@link LocationInfo}. - * If the element was implicitly created by the parser it's `__location` property will be `null`. - * - * @property {TreeAdapter} [treeAdapter=parse5.treeAdapters.default] - Specifies the resulting tree format. - */ -var DEFAULT_OPTIONS = { - locationInfo: false, - treeAdapter: defaultTreeAdapter -}; - -//Misc constants -var HIDDEN_INPUT_TYPE = 'hidden'; - -//Adoption agency loops iteration count -var AA_OUTER_LOOP_ITER = 8, - AA_INNER_LOOP_ITER = 3; - -//Insertion modes -var INITIAL_MODE = 'INITIAL_MODE', - BEFORE_HTML_MODE = 'BEFORE_HTML_MODE', - BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE', - IN_HEAD_MODE = 'IN_HEAD_MODE', - AFTER_HEAD_MODE = 'AFTER_HEAD_MODE', - IN_BODY_MODE = 'IN_BODY_MODE', - TEXT_MODE = 'TEXT_MODE', - IN_TABLE_MODE = 'IN_TABLE_MODE', - IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE', - IN_CAPTION_MODE = 'IN_CAPTION_MODE', - IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE', - IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE', - IN_ROW_MODE = 'IN_ROW_MODE', - IN_CELL_MODE = 'IN_CELL_MODE', - IN_SELECT_MODE = 'IN_SELECT_MODE', - IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE', - IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE', - AFTER_BODY_MODE = 'AFTER_BODY_MODE', - IN_FRAMESET_MODE = 'IN_FRAMESET_MODE', - AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE', - AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE', - AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE'; - -//Insertion mode reset map -var INSERTION_MODE_RESET_MAP = {}; - -INSERTION_MODE_RESET_MAP[$.TR] = IN_ROW_MODE; -INSERTION_MODE_RESET_MAP[$.TBODY] = -INSERTION_MODE_RESET_MAP[$.THEAD] = -INSERTION_MODE_RESET_MAP[$.TFOOT] = IN_TABLE_BODY_MODE; -INSERTION_MODE_RESET_MAP[$.CAPTION] = IN_CAPTION_MODE; -INSERTION_MODE_RESET_MAP[$.COLGROUP] = IN_COLUMN_GROUP_MODE; -INSERTION_MODE_RESET_MAP[$.TABLE] = IN_TABLE_MODE; -INSERTION_MODE_RESET_MAP[$.BODY] = IN_BODY_MODE; -INSERTION_MODE_RESET_MAP[$.FRAMESET] = IN_FRAMESET_MODE; - -//Template insertion mode switch map -var TEMPLATE_INSERTION_MODE_SWITCH_MAP = {}; - -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.CAPTION] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COLGROUP] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TBODY] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TFOOT] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.THEAD] = IN_TABLE_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.COL] = IN_COLUMN_GROUP_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TR] = IN_TABLE_BODY_MODE; -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TD] = -TEMPLATE_INSERTION_MODE_SWITCH_MAP[$.TH] = IN_ROW_MODE; - -//Token handlers map for insertion modes -var _ = {}; - -_[INITIAL_MODE] = {}; -_[INITIAL_MODE][Tokenizer.CHARACTER_TOKEN] = -_[INITIAL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInInitialMode; -_[INITIAL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[INITIAL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[INITIAL_MODE][Tokenizer.DOCTYPE_TOKEN] = doctypeInInitialMode; -_[INITIAL_MODE][Tokenizer.START_TAG_TOKEN] = -_[INITIAL_MODE][Tokenizer.END_TAG_TOKEN] = -_[INITIAL_MODE][Tokenizer.EOF_TOKEN] = tokenInInitialMode; - -_[BEFORE_HTML_MODE] = {}; -_[BEFORE_HTML_MODE][Tokenizer.CHARACTER_TOKEN] = -_[BEFORE_HTML_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[BEFORE_HTML_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[BEFORE_HTML_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[BEFORE_HTML_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHtml; -_[BEFORE_HTML_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHtml; - -_[BEFORE_HEAD_MODE] = {}; -_[BEFORE_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[BEFORE_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = ignoreToken; -_[BEFORE_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[BEFORE_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[BEFORE_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagBeforeHead; -_[BEFORE_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenBeforeHead; - -_[IN_HEAD_MODE] = {}; -_[IN_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInHead; -_[IN_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagInHead; -_[IN_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagInHead; -_[IN_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenInHead; - -_[AFTER_HEAD_MODE] = {}; -_[AFTER_HEAD_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_HEAD_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[AFTER_HEAD_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[AFTER_HEAD_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_HEAD_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterHead; -_[AFTER_HEAD_MODE][Tokenizer.EOF_TOKEN] = tokenAfterHead; - -_[IN_BODY_MODE] = {}; -_[IN_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInBody; -_[IN_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInBody; -_[IN_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[TEXT_MODE] = {}; -_[TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = -_[TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[TEXT_MODE][Tokenizer.COMMENT_TOKEN] = -_[TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = -_[TEXT_MODE][Tokenizer.START_TAG_TOKEN] = ignoreToken; -_[TEXT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInText; -_[TEXT_MODE][Tokenizer.EOF_TOKEN] = eofInText; - -_[IN_TABLE_MODE] = {}; -_[IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTable; -_[IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTable; -_[IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TABLE_TEXT_MODE] = {}; -_[IN_TABLE_TEXT_MODE][Tokenizer.CHARACTER_TOKEN] = characterInTableText; -_[IN_TABLE_TEXT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_TABLE_TEXT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInTableText; -_[IN_TABLE_TEXT_MODE][Tokenizer.COMMENT_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.DOCTYPE_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.START_TAG_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.END_TAG_TOKEN] = -_[IN_TABLE_TEXT_MODE][Tokenizer.EOF_TOKEN] = tokenInTableText; - -_[IN_CAPTION_MODE] = {}; -_[IN_CAPTION_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_CAPTION_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_CAPTION_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_CAPTION_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_CAPTION_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_CAPTION_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCaption; -_[IN_CAPTION_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCaption; -_[IN_CAPTION_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_COLUMN_GROUP_MODE] = {}; -_[IN_COLUMN_GROUP_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_COLUMN_GROUP_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_COLUMN_GROUP_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_COLUMN_GROUP_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_COLUMN_GROUP_MODE][Tokenizer.START_TAG_TOKEN] = startTagInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.END_TAG_TOKEN] = endTagInColumnGroup; -_[IN_COLUMN_GROUP_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TABLE_BODY_MODE] = {}; -_[IN_TABLE_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_TABLE_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_TABLE_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_TABLE_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TABLE_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TABLE_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTableBody; -_[IN_TABLE_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTableBody; -_[IN_TABLE_BODY_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_ROW_MODE] = {}; -_[IN_ROW_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_ROW_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = -_[IN_ROW_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = characterInTable; -_[IN_ROW_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_ROW_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_ROW_MODE][Tokenizer.START_TAG_TOKEN] = startTagInRow; -_[IN_ROW_MODE][Tokenizer.END_TAG_TOKEN] = endTagInRow; -_[IN_ROW_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_CELL_MODE] = {}; -_[IN_CELL_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_CELL_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_CELL_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_CELL_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_CELL_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_CELL_MODE][Tokenizer.START_TAG_TOKEN] = startTagInCell; -_[IN_CELL_MODE][Tokenizer.END_TAG_TOKEN] = endTagInCell; -_[IN_CELL_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_SELECT_MODE] = {}; -_[IN_SELECT_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_SELECT_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_SELECT_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_SELECT_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelect; -_[IN_SELECT_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelect; -_[IN_SELECT_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_SELECT_IN_TABLE_MODE] = {}; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInSelectInTable; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInSelectInTable; -_[IN_SELECT_IN_TABLE_MODE][Tokenizer.EOF_TOKEN] = eofInBody; - -_[IN_TEMPLATE_MODE] = {}; -_[IN_TEMPLATE_MODE][Tokenizer.CHARACTER_TOKEN] = characterInBody; -_[IN_TEMPLATE_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_TEMPLATE_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[IN_TEMPLATE_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_TEMPLATE_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_TEMPLATE_MODE][Tokenizer.START_TAG_TOKEN] = startTagInTemplate; -_[IN_TEMPLATE_MODE][Tokenizer.END_TAG_TOKEN] = endTagInTemplate; -_[IN_TEMPLATE_MODE][Tokenizer.EOF_TOKEN] = eofInTemplate; - -_[AFTER_BODY_MODE] = {}; -_[AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterBody; -_[AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToRootHtmlElement; -_[AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterBody; -_[AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterBody; -_[AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[IN_FRAMESET_MODE] = {}; -_[IN_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[IN_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[IN_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[IN_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[IN_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[IN_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagInFrameset; -_[IN_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagInFrameset; -_[IN_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_FRAMESET_MODE] = {}; -_[AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = insertCharacters; -_[AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendComment; -_[AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterFrameset; -_[AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = endTagAfterFrameset; -_[AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_AFTER_BODY_MODE] = {}; -_[AFTER_AFTER_BODY_MODE][Tokenizer.CHARACTER_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument; -_[AFTER_AFTER_BODY_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_AFTER_BODY_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.END_TAG_TOKEN] = tokenAfterAfterBody; -_[AFTER_AFTER_BODY_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - -_[AFTER_AFTER_FRAMESET_MODE] = {}; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.CHARACTER_TOKEN] = -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.NULL_CHARACTER_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.WHITESPACE_CHARACTER_TOKEN] = whitespaceCharacterInBody; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.COMMENT_TOKEN] = appendCommentToDocument; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.DOCTYPE_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.START_TAG_TOKEN] = startTagAfterAfterFrameset; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.END_TAG_TOKEN] = ignoreToken; -_[AFTER_AFTER_FRAMESET_MODE][Tokenizer.EOF_TOKEN] = stopParsing; - - -//Parser -var Parser = module.exports = function (options) { - this.options = mergeOptions(DEFAULT_OPTIONS, options); - - this.treeAdapter = this.options.treeAdapter; - this.pendingScript = null; - - if (this.options.locationInfo) - locationInfoMixin.assign(this); -}; - -// API -Parser.prototype.parse = function (html) { - var document = this.treeAdapter.createDocument(); - - this._bootstrap(document, null); - this.tokenizer.write(html, true); - this._runParsingLoop(null, null); - - return document; -}; - -Parser.prototype.parseFragment = function (html, fragmentContext) { - //NOTE: use
Shake it, baby