From a767712e37fd8453269f521c100512fd54c8678f Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Fri, 1 Nov 2019 16:50:22 -0400 Subject: [PATCH 01/23] Remove min task duration from page graph in lantern --- lighthouse-core/computed/page-dependency-graph.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index fe6a4482af8d..9e528f161e6f 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -16,8 +16,6 @@ const NetworkRecords = require('./network-records.js'); /** @typedef {import('../lib/dependency-graph/base-node.js').Node} Node */ -// Tasks smaller than 10 ms have minimal impact on simulation -const MINIMUM_TASK_DURATION_OF_INTEREST = 10; // TODO: video files tend to be enormous and throw off all graph traversals, move this ignore // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; @@ -111,24 +109,18 @@ class PageDependencyGraph { TracingProcessor.assertHasToplevelEvents(traceOfTab.mainThreadEvents); - const minimumEvtDur = MINIMUM_TASK_DURATION_OF_INTEREST * 1000; while (i < traceOfTab.mainThreadEvents.length) { const evt = traceOfTab.mainThreadEvents[i]; + i++; // Skip all trace events that aren't schedulable tasks with sizable duration - if ( - !TracingProcessor.isScheduleableTask(evt) || - !evt.dur || - evt.dur < minimumEvtDur - ) { - i++; + if (!TracingProcessor.isScheduleableTask(evt) || !evt.dur) { continue; } // Capture all events that occurred within the task /** @type {Array} */ const children = []; - i++; // Start examining events after this one for ( const endTime = evt.ts + evt.dur; i < traceOfTab.mainThreadEvents.length && traceOfTab.mainThreadEvents[i].ts < endTime; From e15ffd7d8e6ac61df449a068f807ea24a04685b9 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 15:36:41 -0500 Subject: [PATCH 02/23] Prune children events in lantern graphs --- lighthouse-core/audits/uses-rel-preload.js | 2 ++ .../computed/page-dependency-graph.js | 24 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/lighthouse-core/audits/uses-rel-preload.js b/lighthouse-core/audits/uses-rel-preload.js index e70bcccfaf07..046a45903158 100644 --- a/lighthouse-core/audits/uses-rel-preload.js +++ b/lighthouse-core/audits/uses-rel-preload.js @@ -192,6 +192,7 @@ class UsesRelPreloadAudit extends Audit { * @return {Promise} */ static async audit(artifacts, context) { + try { const trace = artifacts.traces[UsesRelPreloadAudit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[UsesRelPreloadAudit.DEFAULT_PASS]; const URL = artifacts.URL; @@ -235,6 +236,7 @@ class UsesRelPreloadAudit extends Audit { details, warnings, }; + } catch(e) { console.log(e) } } } diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 9e528f161e6f..2108ad6a30c2 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -20,6 +20,21 @@ const NetworkRecords = require('./network-records.js'); // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; +/** @type {Set} */ const children = []; for ( @@ -126,7 +141,10 @@ class PageDependencyGraph { i < traceOfTab.mainThreadEvents.length && traceOfTab.mainThreadEvents[i].ts < endTime; i++ ) { - children.push(traceOfTab.mainThreadEvents[i]); + const childEvt = traceOfTab.mainThreadEvents[i]; + if (childEvt.args.data && RELEVANT_EVENTS.has(childEvt.name)) { + children.push(childEvt); + } } nodes.push(new CPUNode(evt, children)); @@ -237,6 +255,8 @@ class PageDependencyGraph { const argsUrl = evt.args.data.url; const stackTraceUrls = (evt.args.data.stackTrace || []).map(l => l.url).filter(Boolean); + // Note that only relevant events are included in children. Update getCPUNodes if you need + // to process additional event types. switch (evt.name) { case 'TimerInstall': // @ts-ignore - 'TimerInstall' event means timerId exists. From acde65b205639cb50b1764384f63fe6429499d87 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 15:48:57 -0500 Subject: [PATCH 03/23] Only include CPU nodes with children in the graph --- lighthouse-core/computed/page-dependency-graph.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 2108ad6a30c2..108bda7bac03 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -147,7 +147,9 @@ class PageDependencyGraph { } } - nodes.push(new CPUNode(evt, children)); + if (children.length) { + nodes.push(new CPUNode(evt, children)); + } } return nodes; From bb58576fd8adf332b27803a85edbd2c165b8d221 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 16:01:33 -0500 Subject: [PATCH 04/23] Remove args.data filter on children --- lighthouse-core/computed/page-dependency-graph.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 108bda7bac03..913686db0fe2 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -142,7 +142,7 @@ class PageDependencyGraph { i++ ) { const childEvt = traceOfTab.mainThreadEvents[i]; - if (childEvt.args.data && RELEVANT_EVENTS.has(childEvt.name)) { + if (RELEVANT_EVENTS.has(childEvt.name)) { children.push(childEvt); } } From 3bc6ebdc018c83564b8e21be16dbe5440ee61234 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 16:07:24 -0500 Subject: [PATCH 05/23] Ensure long events are included --- lighthouse-core/computed/page-dependency-graph.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 913686db0fe2..b5d72e7449f1 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -35,6 +35,8 @@ const RELEVANT_EVENTS = new Set([ 'v8.compile', ]); +const SIGNIFICANT_DUR_THRESHOLD_MS = 10; + class PageDependencyGraph { /** * @param {LH.Artifacts.NetworkRequest} record @@ -147,7 +149,9 @@ class PageDependencyGraph { } } - if (children.length) { + // Include tasks with significant child events or that are long enough to impact + // simulation results. + if (children.length || evt.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { nodes.push(new CPUNode(evt, children)); } } From b7245bca713fad221438078a9bedc682fe2816ea Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 16:07:44 -0500 Subject: [PATCH 06/23] Revert print statement --- lighthouse-core/audits/uses-rel-preload.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/lighthouse-core/audits/uses-rel-preload.js b/lighthouse-core/audits/uses-rel-preload.js index 046a45903158..e70bcccfaf07 100644 --- a/lighthouse-core/audits/uses-rel-preload.js +++ b/lighthouse-core/audits/uses-rel-preload.js @@ -192,7 +192,6 @@ class UsesRelPreloadAudit extends Audit { * @return {Promise} */ static async audit(artifacts, context) { - try { const trace = artifacts.traces[UsesRelPreloadAudit.DEFAULT_PASS]; const devtoolsLog = artifacts.devtoolsLogs[UsesRelPreloadAudit.DEFAULT_PASS]; const URL = artifacts.URL; @@ -236,7 +235,6 @@ class UsesRelPreloadAudit extends Audit { details, warnings, }; - } catch(e) { console.log(e) } } } From 3b859a7c6be9cb128f796ac58ba08a40f5ffca6a Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 4 Nov 2019 16:10:52 -0500 Subject: [PATCH 07/23] Update comments --- lighthouse-core/computed/page-dependency-graph.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index b5d72e7449f1..43a5705987aa 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -35,6 +35,7 @@ const RELEVANT_EVENTS = new Set([ 'v8.compile', ]); +// Shorter tasks have negligible impact on simulation results. const SIGNIFICANT_DUR_THRESHOLD_MS = 10; class PageDependencyGraph { @@ -135,7 +136,8 @@ class PageDependencyGraph { continue; } - // Capture relevant events that occurred within the task + // Capture relevant events that occurred within the task to be able to compute all + // necessary edges in the graph. /** @type {Array} */ const children = []; for ( From 059288568d9fb2fdf69796479654ef03d514f5a9 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 14:14:37 -0500 Subject: [PATCH 08/23] Improve type checking --- .../computed/page-dependency-graph.js | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 43a5705987aa..8e7385a48684 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -20,20 +20,21 @@ const NetworkRecords = require('./network-records.js'); // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; -/** @type {Set} Events that are relevant for building simulation graphs. */ +const RELEVANT_EVENT_SET = { + 'EvaluateScript': true, + 'FunctionCall': true, + 'InvalidateLayout': true, + 'Layout': true, + 'ParseAuthorStyleSheet': true, + 'ResourceSendRequest': true, + 'ScheduleStyleRecalculation': true, + 'TimerFire': true, + 'TimerInstall': true, + 'XHRReadyStateChange': true, + 'v8.compile': true, +}; + // Shorter tasks have negligible impact on simulation results. const SIGNIFICANT_DUR_THRESHOLD_MS = 10; @@ -146,16 +147,12 @@ class PageDependencyGraph { i++ ) { const childEvt = traceOfTab.mainThreadEvents[i]; - if (RELEVANT_EVENTS.has(childEvt.name)) { + if (RELEVANT_EVENT_SET[childEvt.name]) { children.push(childEvt); } } - // Include tasks with significant child events or that are long enough to impact - // simulation results. - if (children.length || evt.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { - nodes.push(new CPUNode(evt, children)); - } + nodes.push(new CPUNode(evt, children)); } return nodes; @@ -265,7 +262,10 @@ class PageDependencyGraph { // Note that only relevant events are included in children. Update getCPUNodes if you need // to process additional event types. - switch (evt.name) { + // @ts-ignore RELEVANT_EVENT_SET is a value being used as a type. That's ok here as we only + // need to catch new case statements that aren't a member of this set. + const name = /** @type {keyof RELEVANT_EVENT_SET} */ (evt.name); + switch (name) { case 'TimerInstall': // @ts-ignore - 'TimerInstall' event means timerId exists. timers.set(evt.args.data.timerId, node); @@ -324,7 +324,10 @@ class PageDependencyGraph { } } - if (node.getNumberOfDependencies() === 0) { + // If the node had no dependencies, we still include it in the graph if + // it's long enough to have an impact on simulation results. + if (node.getNumberOfDependencies() === 0 && + node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { node.addDependency(rootNode); } } From 91b7ec1298c19997699b13b9c0eef941aa13959b Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 14:39:12 -0500 Subject: [PATCH 09/23] Optimization: Use sets to track dependents and dependencies --- .../computed/page-dependency-graph.js | 2 + .../lib/dependency-graph/base-node.js | 39 ++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 8e7385a48684..8319e4458610 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -20,6 +20,8 @@ const NetworkRecords = require('./network-records.js'); // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; +// Note that we use an Object here instead of a Set since Objects are indexable in typescript--which +// allows us to build a union type of the relevant events statically. /** @type {Object} Events that are relevant for building simulation graphs. */ const RELEVANT_EVENT_SET = { 'EvaluateScript': true, diff --git a/lighthouse-core/lib/dependency-graph/base-node.js b/lighthouse-core/lib/dependency-graph/base-node.js index c3638e60c37a..ebb36ec0cfe6 100644 --- a/lighthouse-core/lib/dependency-graph/base-node.js +++ b/lighthouse-core/lib/dependency-graph/base-node.js @@ -30,10 +30,10 @@ class BaseNode { constructor(id) { this._id = id; this._isMainDocument = false; - /** @type {Node[]} */ - this._dependents = []; - /** @type {Node[]} */ - this._dependencies = []; + /** @type {Set} */ + this._dependents = new Set(); + /** @type {Set} */ + this._dependencies = new Set(); } /** @@ -82,21 +82,21 @@ class BaseNode { * @return {Node[]} */ getDependents() { - return this._dependents.slice(); + return Array.from(this._dependents); } /** * @return {Node[]} */ getDependencies() { - return this._dependencies.slice(); + return Array.from(this._dependencies); } /** * @return {number} */ getNumberOfDependencies() { - return this._dependencies.length; + return this._dependencies.size; } /** @@ -104,10 +104,12 @@ class BaseNode { */ getRootNode() { let rootNode = /** @type {Node} */ (/** @type {BaseNode} */ (this)); - while (rootNode._dependencies.length) { - rootNode = rootNode._dependencies[0]; + while (rootNode._dependencies.size) { + for (const d of rootNode._dependencies) { + rootNode = d; // First dependency + break; + } } - return rootNode; } @@ -122,12 +124,12 @@ class BaseNode { * @param {Node} node */ addDependency(node) { - if (this._dependencies.includes(node)) { + if (this._dependencies.has(node)) { return; } - node._dependents.push(/** @type {Node} */ (/** @type {BaseNode} */ (this))); - this._dependencies.push(node); + node._dependents.add(/** @type {Node} */ (/** @type {BaseNode} */ (this))); + this._dependencies.add(node); } /** @@ -141,17 +143,16 @@ class BaseNode { * @param {Node} node */ removeDependency(node) { - if (!this._dependencies.includes(node)) { + if (!this._dependencies.has(node)) { return; } - const thisIndex = node._dependents.indexOf(/** @type {Node} */ (/** @type {BaseNode} */(this))); - node._dependents.splice(thisIndex, 1); - this._dependencies.splice(this._dependencies.indexOf(node), 1); + node._dependents.delete(/** @type {Node} */ (/** @type {BaseNode} */(this))); + this._dependencies.delete(node); } removeAllDependencies() { - for (const node of this._dependencies.slice()) { + for (const node of this.getDependencies()) { this.removeDependency(node); } } @@ -194,7 +195,7 @@ class BaseNode { node.traverse( node => idsToIncludedClones.set(node.id, node.cloneWithoutRelationships()), // Dependencies already cloned have already cloned ancestors, so no need to visit again. - node => node._dependencies.filter(parent => !idsToIncludedClones.has(parent.id)) + node => node.getDependencies().filter(parent => !idsToIncludedClones.has(parent.id)) ); } }); From ddf83c762ee99392406700d47614c8ad6f8239c8 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 14:54:50 -0500 Subject: [PATCH 10/23] Prune the simulation graph of some short CPU events --- .../computed/page-dependency-graph.js | 22 +++++++++++++++---- .../lib/dependency-graph/base-node.js | 7 ++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 8319e4458610..30346a792feb 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -326,12 +326,26 @@ class PageDependencyGraph { } } - // If the node had no dependencies, we still include it in the graph if - // it's long enough to have an impact on simulation results. - if (node.getNumberOfDependencies() === 0 && - node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + // We skip some short tasks if they aren't multiple edges connected. + const isShort = node.event.dur < SIGNIFICANT_DUR_THRESHOLD_MS * 1000; + + if (isShort && node.getNumberOfDependents() === 0) { + // Omit the node from the graph since it won't impact simulation. + continue; + } + + if (node.getNumberOfDependencies() === 0) { node.addDependency(rootNode); } + + if (isShort && node.getNumberOfDependents() === 1 && node.getNumberOfDependencies() === 1) { + // Omit the node, but keep the path between dependents. + const [dependent] = node.getDependents(); + const [dependency] = node.getDependencies(); + node.removeDependent(dependent); + node.removeDependency(dependency); + dependency.addDependent(dependent); + } } } diff --git a/lighthouse-core/lib/dependency-graph/base-node.js b/lighthouse-core/lib/dependency-graph/base-node.js index ebb36ec0cfe6..918f792b0386 100644 --- a/lighthouse-core/lib/dependency-graph/base-node.js +++ b/lighthouse-core/lib/dependency-graph/base-node.js @@ -85,6 +85,13 @@ class BaseNode { return Array.from(this._dependents); } + /** + * @return {number} + */ + getNumberOfDependents() { + return this._dependents.size; + } + /** * @return {Node[]} */ From 7ad5563a8436d8f1d9e0fe1bee6ca86f625b50bb Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 16:00:48 -0500 Subject: [PATCH 11/23] Move pruning to a separate pass for safety --- .../computed/page-dependency-graph.js | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 30346a792feb..a9b86d77d3b3 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -325,27 +325,28 @@ class PageDependencyGraph { break; } } - - // We skip some short tasks if they aren't multiple edges connected. - const isShort = node.event.dur < SIGNIFICANT_DUR_THRESHOLD_MS * 1000; - - if (isShort && node.getNumberOfDependents() === 0) { - // Omit the node from the graph since it won't impact simulation. - continue; - } - if (node.getNumberOfDependencies() === 0) { node.addDependency(rootNode); } + } - if (isShort && node.getNumberOfDependents() === 1 && node.getNumberOfDependencies() === 1) { - // Omit the node, but keep the path between dependents. - const [dependent] = node.getDependents(); - const [dependency] = node.getDependencies(); - node.removeDependent(dependent); - node.removeDependency(dependency); - dependency.addDependent(dependent); + // Second pass to prune the graph + for (const node of cpuNodes) { + if (node.event.dur < SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + // Don't prune this node. The task is long so it will impact simulation. + continue; } + if (node.getNumberOfDependents() > 1 || node.getNumberOfDependencies() > 1) { + // Don't prune this node because several other nodes depend on this for simulation. + continue; + } + // Omit the node, but keep the path between dependents. + const [dependent] = node.getDependents(); + const [dependency] = node.getDependencies(); + if (dependent) node.removeDependent(dependent); + if (dependency) node.removeDependency(dependency); + if (dependent && dependency) dependency.addDependent(dependent); + } } From cae36f9555a66ee9c7a6840d8779419bd9ff1082 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 16:24:53 -0500 Subject: [PATCH 12/23] Fix inequality --- lighthouse-core/computed/page-dependency-graph.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index a9b86d77d3b3..25a68a176a8b 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -332,7 +332,7 @@ class PageDependencyGraph { // Second pass to prune the graph for (const node of cpuNodes) { - if (node.event.dur < SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + if (node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { // Don't prune this node. The task is long so it will impact simulation. continue; } From 86f8ffac201538cfe9d23c847be31258039e22e5 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Wed, 6 Nov 2019 16:31:23 -0500 Subject: [PATCH 13/23] Update unit test --- lighthouse-core/computed/page-dependency-graph.js | 4 ++-- lighthouse-core/test/computed/page-dependency-graph-test.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 25a68a176a8b..a0010b22beb2 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -332,7 +332,7 @@ class PageDependencyGraph { // Second pass to prune the graph for (const node of cpuNodes) { - if (node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + if (node.event.dur >= SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { // Don't prune this node. The task is long so it will impact simulation. continue; } @@ -340,7 +340,7 @@ class PageDependencyGraph { // Don't prune this node because several other nodes depend on this for simulation. continue; } - // Omit the node, but keep the path between dependents. + // Prune the node, but keep the path between dependents. const [dependent] = node.getDependents(); const [dependency] = node.getDependencies(); if (dependent) node.removeDependent(dependent); diff --git a/lighthouse-core/test/computed/page-dependency-graph-test.js b/lighthouse-core/test/computed/page-dependency-graph-test.js index eced59907b4e..35ee1e5a104e 100644 --- a/lighthouse-core/test/computed/page-dependency-graph-test.js +++ b/lighthouse-core/test/computed/page-dependency-graph-test.js @@ -134,6 +134,8 @@ describe('PageDependencyGraph computed artifact:', () => { addTaskEvents(0, 100, [ {name: 'MyCustomEvent'}, {name: 'OtherEvent'}, + {name: 'FunctionCall'}, + {name: 'InvalidateLayout'}, {name: 'OutsideTheWindow', ts: 200}, {name: 'OrphanedEvent'}, // should be ignored since we stopped at OutsideTheWindow ]); @@ -151,14 +153,14 @@ describe('PageDependencyGraph computed artifact:', () => { assert.equal(node1.type, 'cpu'); assert.equal(node1.event, traceOfTab.mainThreadEvents[0]); assert.equal(node1.childEvents.length, 2); - assert.equal(node1.childEvents[1].name, 'OtherEvent'); + assert.equal(node1.childEvents[1].name, 'FunctionCall'); const node2 = nodes[1]; assert.equal(node2.id, '1.250000'); assert.equal(node2.type, 'cpu'); assert.equal(node2.event, traceOfTab.mainThreadEvents[5]); assert.equal(node2.childEvents.length, 1); - assert.equal(node2.childEvents[0].name, 'LaterEvent'); + assert.equal(node2.childEvents[0].name, 'InvalidateLayout'); }); }); From e2bb19d2be2bbc81d359ce7a1798861f3d5995db Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Thu, 7 Nov 2019 10:09:39 -0500 Subject: [PATCH 14/23] Update graph pruning --- .../computed/page-dependency-graph.js | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index a0010b22beb2..cdde0b043d30 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -330,23 +330,28 @@ class PageDependencyGraph { } } - // Second pass to prune the graph + // Second pass to prune the graph of short nodes. for (const node of cpuNodes) { - if (node.event.dur >= SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + if (node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { // Don't prune this node. The task is long so it will impact simulation. continue; } - if (node.getNumberOfDependents() > 1 || node.getNumberOfDependencies() > 1) { - // Don't prune this node because several other nodes depend on this for simulation. - continue; + // Prune the node if it isn't highly connected to minimize graph size. Rewiring the graph + // here replaces O(M + N) edges with (M * N) edges, which is fine if either M or N is at + // most 1. + // Note that there is at least one dependency (a path must exist to the root node). We prune + // the node from the graph if we can replace the edges without increasing the number of edges. + if (node.getNumberOfDependencies() === 1 || node.getNumberOfDependents() <= 1) { + const dependencies = node.getDependencies(); + const dependents = node.getDependents(); + for (const dependency of dependencies) { + node.removeDependency(dependency); + for (const dependent of dependents) { + node.removeDependent(dependent); + dependency.addDependent(dependent); + } + } } - // Prune the node, but keep the path between dependents. - const [dependent] = node.getDependents(); - const [dependency] = node.getDependencies(); - if (dependent) node.removeDependent(dependent); - if (dependency) node.removeDependency(dependency); - if (dependent && dependency) dependency.addDependent(dependent); - } } From e2e7e109e0e7af16631939c98512c7934397d1ab Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Thu, 7 Nov 2019 11:07:15 -0500 Subject: [PATCH 15/23] Stop pruning child events --- .../computed/page-dependency-graph.js | 29 ++----------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index cdde0b043d30..bae628c4cca0 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -20,24 +20,6 @@ const NetworkRecords = require('./network-records.js'); // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; -// Note that we use an Object here instead of a Set since Objects are indexable in typescript--which -// allows us to build a union type of the relevant events statically. -/** @type {Object} Events that are relevant for building simulation graphs. */ -const RELEVANT_EVENT_SET = { - 'EvaluateScript': true, - 'FunctionCall': true, - 'InvalidateLayout': true, - 'Layout': true, - 'ParseAuthorStyleSheet': true, - 'ResourceSendRequest': true, - 'ScheduleStyleRecalculation': true, - 'TimerFire': true, - 'TimerInstall': true, - 'XHRReadyStateChange': true, - 'v8.compile': true, -}; - - // Shorter tasks have negligible impact on simulation results. const SIGNIFICANT_DUR_THRESHOLD_MS = 10; @@ -149,9 +131,7 @@ class PageDependencyGraph { i++ ) { const childEvt = traceOfTab.mainThreadEvents[i]; - if (RELEVANT_EVENT_SET[childEvt.name]) { - children.push(childEvt); - } + children.push(childEvt); } nodes.push(new CPUNode(evt, children)); @@ -262,12 +242,7 @@ class PageDependencyGraph { const argsUrl = evt.args.data.url; const stackTraceUrls = (evt.args.data.stackTrace || []).map(l => l.url).filter(Boolean); - // Note that only relevant events are included in children. Update getCPUNodes if you need - // to process additional event types. - // @ts-ignore RELEVANT_EVENT_SET is a value being used as a type. That's ok here as we only - // need to catch new case statements that aren't a member of this set. - const name = /** @type {keyof RELEVANT_EVENT_SET} */ (evt.name); - switch (name) { + switch (evt.name) { case 'TimerInstall': // @ts-ignore - 'TimerInstall' event means timerId exists. timers.set(evt.args.data.timerId, node); From 12e265325fd7b76c84faa7d5194a9d86fd70ff08 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Thu, 7 Nov 2019 15:14:15 -0500 Subject: [PATCH 16/23] Revert minor diff --- lighthouse-core/computed/page-dependency-graph.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index bae628c4cca0..9521dd7611e3 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -130,8 +130,7 @@ class PageDependencyGraph { i < traceOfTab.mainThreadEvents.length && traceOfTab.mainThreadEvents[i].ts < endTime; i++ ) { - const childEvt = traceOfTab.mainThreadEvents[i]; - children.push(childEvt); + children.push(traceOfTab.mainThreadEvents[i]); } nodes.push(new CPUNode(evt, children)); From 5fdea7b22b0976d599cd12cd5840060ccbdc2ccd Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Thu, 7 Nov 2019 15:23:07 -0500 Subject: [PATCH 17/23] Clean up changes --- .../computed/page-dependency-graph.js | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 9521dd7611e3..377e32b76e3f 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -16,13 +16,13 @@ const NetworkRecords = require('./network-records.js'); /** @typedef {import('../lib/dependency-graph/base-node.js').Node} Node */ +// Shorter tasks have negligible impact on simulation results. +const SIGNIFICANT_DUR_THRESHOLD_MS = 10; + // TODO: video files tend to be enormous and throw off all graph traversals, move this ignore // into estimation logic when we use the dependency graph for other purposes. const IGNORED_MIME_TYPES_REGEX = /^video/; -// Shorter tasks have negligible impact on simulation results. -const SIGNIFICANT_DUR_THRESHOLD_MS = 10; - class PageDependencyGraph { /** * @param {LH.Artifacts.NetworkRequest} record @@ -121,8 +121,7 @@ class PageDependencyGraph { continue; } - // Capture relevant events that occurred within the task to be able to compute all - // necessary edges in the graph. + // Capture all events that occurred within the task /** @type {Array} */ const children = []; for ( @@ -299,12 +298,13 @@ class PageDependencyGraph { break; } } + if (node.getNumberOfDependencies() === 0) { node.addDependency(rootNode); } } - // Second pass to prune the graph of short nodes. + // Second pass to prune the graph of short tasks. for (const node of cpuNodes) { if (node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { // Don't prune this node. The task is long so it will impact simulation. @@ -313,20 +313,29 @@ class PageDependencyGraph { // Prune the node if it isn't highly connected to minimize graph size. Rewiring the graph // here replaces O(M + N) edges with (M * N) edges, which is fine if either M or N is at // most 1. - // Note that there is at least one dependency (a path must exist to the root node). We prune - // the node from the graph if we can replace the edges without increasing the number of edges. if (node.getNumberOfDependencies() === 1 || node.getNumberOfDependents() <= 1) { - const dependencies = node.getDependencies(); - const dependents = node.getDependents(); - for (const dependency of dependencies) { - node.removeDependency(dependency); - for (const dependent of dependents) { - node.removeDependent(dependent); - dependency.addDependent(dependent); - } - } + PageDependencyGraph._pruneNode(node); + } + } + } + + /** + * Removes the given node from the graph, but retains all paths between its dependencies and + * dependents. + * @param {Node} node + */ + static _pruneNode(node) { + const dependencies = node.getDependencies(); + const dependents = node.getDependents(); + for (const dependency of dependencies) { + node.removeDependency(dependency); + for (const dependent of dependents) { + dependency.addDependent(dependent); } } + for (const dependent of dependents) { + node.removeDependent(dependent); + } } /** From 0ffed0c093600b1d37516b56a120a85e83975c30 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Fri, 8 Nov 2019 09:41:42 -0500 Subject: [PATCH 18/23] Revert Set changes in base-node --- .../lib/dependency-graph/base-node.js | 42 +++++++++---------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/lighthouse-core/lib/dependency-graph/base-node.js b/lighthouse-core/lib/dependency-graph/base-node.js index 918f792b0386..ab9281b60524 100644 --- a/lighthouse-core/lib/dependency-graph/base-node.js +++ b/lighthouse-core/lib/dependency-graph/base-node.js @@ -30,10 +30,10 @@ class BaseNode { constructor(id) { this._id = id; this._isMainDocument = false; - /** @type {Set} */ - this._dependents = new Set(); - /** @type {Set} */ - this._dependencies = new Set(); + /** @type {Node[]} */ + this._dependents = []; + /** @type {Node[]} */ + this._dependencies = []; } /** @@ -82,28 +82,27 @@ class BaseNode { * @return {Node[]} */ getDependents() { - return Array.from(this._dependents); + return this._dependents.slice(); } /** * @return {number} */ getNumberOfDependents() { - return this._dependents.size; + return this._dependents.length; } - /** * @return {Node[]} */ getDependencies() { - return Array.from(this._dependencies); + return this._dependencies.slice(); } /** * @return {number} */ getNumberOfDependencies() { - return this._dependencies.size; + return this._dependencies.length; } /** @@ -111,12 +110,10 @@ class BaseNode { */ getRootNode() { let rootNode = /** @type {Node} */ (/** @type {BaseNode} */ (this)); - while (rootNode._dependencies.size) { - for (const d of rootNode._dependencies) { - rootNode = d; // First dependency - break; - } + while (rootNode._dependencies.length) { + rootNode = rootNode._dependencies[0]; } + return rootNode; } @@ -131,12 +128,12 @@ class BaseNode { * @param {Node} node */ addDependency(node) { - if (this._dependencies.has(node)) { + if (this._dependencies.includes(node)) { return; } - node._dependents.add(/** @type {Node} */ (/** @type {BaseNode} */ (this))); - this._dependencies.add(node); + node._dependents.push(/** @type {Node} */ (/** @type {BaseNode} */ (this))); + this._dependencies.push(node); } /** @@ -150,16 +147,17 @@ class BaseNode { * @param {Node} node */ removeDependency(node) { - if (!this._dependencies.has(node)) { + if (!this._dependencies.includes(node)) { return; } - node._dependents.delete(/** @type {Node} */ (/** @type {BaseNode} */(this))); - this._dependencies.delete(node); + const thisIndex = node._dependents.indexOf(/** @type {Node} */ (/** @type {BaseNode} */(this))); + node._dependents.splice(thisIndex, 1); + this._dependencies.splice(this._dependencies.indexOf(node), 1); } removeAllDependencies() { - for (const node of this.getDependencies()) { + for (const node of this._dependencies.slice()) { this.removeDependency(node); } } @@ -202,7 +200,7 @@ class BaseNode { node.traverse( node => idsToIncludedClones.set(node.id, node.cloneWithoutRelationships()), // Dependencies already cloned have already cloned ancestors, so no need to visit again. - node => node.getDependencies().filter(parent => !idsToIncludedClones.has(parent.id)) + node => node._dependencies.filter(parent => !idsToIncludedClones.has(parent.id)) ); } }); From 5c8a9278127cdefd1effed88ebe4137edd58b955 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 18 Nov 2019 13:23:33 -0500 Subject: [PATCH 19/23] Fix existing tests --- lighthouse-core/computed/page-dependency-graph.js | 2 +- lighthouse-core/test/computed/page-dependency-graph-test.js | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lighthouse-core/computed/page-dependency-graph.js b/lighthouse-core/computed/page-dependency-graph.js index 377e32b76e3f..4a4692dba64a 100644 --- a/lighthouse-core/computed/page-dependency-graph.js +++ b/lighthouse-core/computed/page-dependency-graph.js @@ -306,7 +306,7 @@ class PageDependencyGraph { // Second pass to prune the graph of short tasks. for (const node of cpuNodes) { - if (node.event.dur > SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { + if (node.event.dur >= SIGNIFICANT_DUR_THRESHOLD_MS * 1000) { // Don't prune this node. The task is long so it will impact simulation. continue; } diff --git a/lighthouse-core/test/computed/page-dependency-graph-test.js b/lighthouse-core/test/computed/page-dependency-graph-test.js index 35ee1e5a104e..eced59907b4e 100644 --- a/lighthouse-core/test/computed/page-dependency-graph-test.js +++ b/lighthouse-core/test/computed/page-dependency-graph-test.js @@ -134,8 +134,6 @@ describe('PageDependencyGraph computed artifact:', () => { addTaskEvents(0, 100, [ {name: 'MyCustomEvent'}, {name: 'OtherEvent'}, - {name: 'FunctionCall'}, - {name: 'InvalidateLayout'}, {name: 'OutsideTheWindow', ts: 200}, {name: 'OrphanedEvent'}, // should be ignored since we stopped at OutsideTheWindow ]); @@ -153,14 +151,14 @@ describe('PageDependencyGraph computed artifact:', () => { assert.equal(node1.type, 'cpu'); assert.equal(node1.event, traceOfTab.mainThreadEvents[0]); assert.equal(node1.childEvents.length, 2); - assert.equal(node1.childEvents[1].name, 'FunctionCall'); + assert.equal(node1.childEvents[1].name, 'OtherEvent'); const node2 = nodes[1]; assert.equal(node2.id, '1.250000'); assert.equal(node2.type, 'cpu'); assert.equal(node2.event, traceOfTab.mainThreadEvents[5]); assert.equal(node2.childEvents.length, 1); - assert.equal(node2.childEvents[0].name, 'InvalidateLayout'); + assert.equal(node2.childEvents[0].name, 'LaterEvent'); }); }); From c58b22af45d6b491193a53eb9c12fc083dcfcf47 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 18 Nov 2019 14:26:09 -0500 Subject: [PATCH 20/23] Add tests for pruning --- .../computed/page-dependency-graph-test.js | 86 ++ package.json | 3 +- yarn.lock | 1085 +++++++++++------ 3 files changed, 768 insertions(+), 406 deletions(-) diff --git a/lighthouse-core/test/computed/page-dependency-graph-test.js b/lighthouse-core/test/computed/page-dependency-graph-test.js index eced59907b4e..2b778fd4bab1 100644 --- a/lighthouse-core/test/computed/page-dependency-graph-test.js +++ b/lighthouse-core/test/computed/page-dependency-graph-test.js @@ -272,6 +272,7 @@ describe('PageDependencyGraph computed artifact:', () => { const getDependencyIds = node => node.getDependencies().map(node => node.id); + assert.equal(nodes.length, 7); assert.deepEqual(getDependencyIds(nodes[0]), []); assert.deepEqual(getDependencyIds(nodes[1]), [1, '1.200000']); assert.deepEqual(getDependencyIds(nodes[2]), [1]); @@ -281,6 +282,91 @@ describe('PageDependencyGraph computed artifact:', () => { assert.deepEqual(getDependencyIds(nodes[6]), [4]); }); + it('should prune short tasks', () => { + const request0 = createRequest(0, '0', 0); + const request1 = createRequest(1, '1', 100, null, NetworkRequest.TYPES.Script); + const request2 = createRequest(2, '2', 200, null, NetworkRequest.TYPES.XHR); + const request3 = createRequest(3, '3', 300, null, NetworkRequest.TYPES.Script); + const request4 = createRequest(4, '4', 400, null, NetworkRequest.TYPES.XHR); + const networkRecords = [request0, request1, request2, request3, request4]; + + // Long task, should be kept in the output. + addTaskEvents(120, 50, [ + {name: 'EvaluateScript', data: {url: '1'}}, + {name: 'ResourceSendRequest', data: {requestId: 2}}, + {name: 'XHRReadyStateChange', data: {readyState: 4, url: '2'}}, + ]); + + // Short task, should be pruned, but the 4->5 relationship should be retained + addTaskEvents(350, 5, [ + {name: 'EvaluateScript', data: {url: '3'}}, + {name: 'ResourceSendRequest', data: {requestId: 4}}, + {name: 'XHRReadyStateChange', data: {readyState: 4, url: '4'}}, + ]); + + const graph = PageDependencyGraph.createGraph(traceOfTab, networkRecords); + const nodes = []; + graph.traverse(node => nodes.push(node)); + + const getDependencyIds = node => node.getDependencies().map(node => node.id); + + assert.equal(nodes.length, 6); + + assert.deepEqual(getDependencyIds(nodes[0]), []); + assert.deepEqual(getDependencyIds(nodes[1]), [0]); + assert.deepEqual(getDependencyIds(nodes[2]), [0, '1.120000']); + assert.deepEqual(getDependencyIds(nodes[3]), [0]); + assert.deepEqual(getDependencyIds(nodes[4]), [0, 3]); + + assert.equal('1.120000', nodes[5].id); + assert.deepEqual(getDependencyIds(nodes[5]), [1]); + }); + + it('should not prune highly-connected short tasks', () => { + const request0 = createRequest(0, '0', 0); + const request1 = { + ...createRequest(1, '1', 100, null, NetworkRequest.TYPES.Document), + documentURL: '1', + frameId: 'frame1', + }; + const request2 = { + ...createRequest(1, '2', 200, null, NetworkRequest.TYPES.Script), + documentURL: '1', + frameId: 'frame1', + }; + const request3 = createRequest(3, '3', 300, null, NetworkRequest.TYPES.XHR); + const request4 = createRequest(4, '4', 400, null, NetworkRequest.TYPES.XHR); + const networkRecords = [request0, request1, request2, request3, request4]; + + // Short task, evaluates script (2) and sends two XHRs. + addTaskEvents(220, 5, [ + {name: 'EvaluateScript', data: {url: '2', frame: 'frame1'}}, + + {name: 'ResourceSendRequest', data: {requestId: 3}}, + {name: 'XHRReadyStateChange', data: {readyState: 4, url: '3'}}, + + {name: 'ResourceSendRequest', data: {requestId: 4}}, + {name: 'XHRReadyStateChange', data: {readyState: 4, url: '4'}}, + ]); + + const graph = PageDependencyGraph.createGraph(traceOfTab, networkRecords); + const nodes = []; + graph.traverse(node => nodes.push(node)); + + const getDependencyIds = node => node.getDependencies().map(node => node.id); + + assert.equal(nodes.length, 6); + + assert.deepEqual(getDependencyIds(nodes[0]), []); + assert.deepEqual(getDependencyIds(nodes[1]), [0]); + assert.deepEqual(getDependencyIds(nodes[2]), [0]); + assert.deepEqual(getDependencyIds(nodes[3]), [0, '1.220000']); + assert.deepEqual(getDependencyIds(nodes[4]), [0, '1.220000']); + + assert.equal('1.220000', nodes[5].id); + assert.deepEqual(getDependencyIds(nodes[5]), [1, '1:duplicate']); + }); + it('should set isMainDocument on first document request', () => { const request1 = createRequest(1, '1', 0, null, NetworkRequest.TYPES.Other); const request2 = createRequest(2, '2', 5, null, NetworkRequest.TYPES.Document); diff --git a/package.json b/package.json index 8f9dffbe5fcf..56b8388decf9 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "idb-keyval": "2.2.0", "intl-messageformat-parser": "^1.8.1", "isomorphic-fetch": "^2.2.1", - "jest": "^24.3.0", + "jest": "^24.9.0", "jsdom": "^12.2.0", "npm-run-posix-or-windows": "^2.0.2", "nyc": "^13.3.0", @@ -134,6 +134,7 @@ "configstore": "^3.1.1", "cssstyle": "1.2.1", "details-element-polyfill": "^2.4.0", + "global": "^4.4.0", "http-link-header": "^0.8.0", "inquirer": "^3.3.0", "intl": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 6603af34f883..321064ea4e4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -156,92 +156,91 @@ dependencies: tslib "1.9.0" -"@jest/console@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" - integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== +"@jest/console@^24.7.1", "@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== dependencies: - "@jest/source-map" "^24.3.0" - "@types/node" "*" + "@jest/source-map" "^24.9.0" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.3.0.tgz#ae5732af96567205d79ed97dc0b9b9033acea298" - integrity sha512-kGnyXAEjFPK4SfikxyrugXZ/SpWYmA09jMOvZRxeRfarVy+yIE6NkilRA85MRqR2qOcQhWgZ48T3KXEVPZC1zw== - dependencies: - "@jest/console" "^24.3.0" - "@jest/reporters" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/transform" "^24.3.0" - "@jest/types" "^24.3.0" +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== + dependencies: + "@jest/console" "^24.7.1" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.3.0" - jest-config "^24.3.0" - jest-haste-map "^24.3.0" - jest-message-util "^24.3.0" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.3.0" - jest-runner "^24.3.0" - jest-runtime "^24.3.0" - jest-snapshot "^24.3.0" - jest-util "^24.3.0" - jest-validate "^24.3.0" - jest-watcher "^24.3.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" micromatch "^3.1.10" p-each-series "^1.0.0" - pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" + slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.3.0.tgz#45e7c5cc996cb8f2287a30f8de08b152fa226fe2" - integrity sha512-rPrnhX3cBvGqODfd6aUsCruUijVp2tmBC0YfeXIku0MciQSR9ek5tjdEk31iBvxE9WlGQus+E/slRLqJmCRZTw== - dependencies: - "@jest/fake-timers" "^24.3.0" - "@jest/transform" "^24.3.0" - "@jest/types" "^24.3.0" - "@types/node" "*" - jest-mock "^24.3.0" - -"@jest/fake-timers@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.3.0.tgz#0a7f8b877b78780c3fa5c3f8683cc0aaf9488331" - integrity sha512-rHwVI17dGMHxHzfAhnZ04+wFznjFfZ246QugeBnbiYr7/bDosPD2P1qeNjWnJUUcfl0HpS6kkr+OB/mqSJxQFg== - dependencies: - "@jest/types" "^24.3.0" - "@types/node" "*" - jest-message-util "^24.3.0" - jest-mock "^24.3.0" - -"@jest/reporters@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.3.0.tgz#beaa8b7d0148db8438a12102daf4d36268a150f5" - integrity sha512-/Gwdcej9x4QuhFIWTKyiiMLAMzfCtIIvuk2AnreqmuxLRAyUbkR5BoUoPvwowKVyZn20ZdCG5Qf7/KaoHhCG8Q== - dependencies: - "@jest/environment" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/transform" "^24.3.0" - "@jest/types" "^24.3.0" +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== + dependencies: + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== + dependencies: + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" - istanbul-api "^2.1.1" istanbul-lib-coverage "^2.0.2" istanbul-lib-instrument "^3.0.1" + istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - jest-haste-map "^24.3.0" - jest-resolve "^24.3.0" - jest-runtime "^24.3.0" - jest-util "^24.3.0" - jest-worker "^24.3.0" - node-notifier "^5.2.1" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" + node-notifier "^5.4.2" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" @@ -255,43 +254,64 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/test-result@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.3.0.tgz#4c0b1c9716212111920f7cf8c4329c69bc81924a" - integrity sha512-j7UZ49T8C4CVipEY99nLttnczVTtLyVzFfN20OiBVn7awOs0U3endXSTq7ouPrLR5y4YjI5GDcbcvDUjgeamzg== +"@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== dependencies: - "@jest/console" "^24.3.0" - "@jest/types" "^24.3.0" - "@types/istanbul-lib-coverage" "^1.1.0" + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/transform@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.3.0.tgz#a18bfd18f25ca28566f5bc398551c047199f4c75" - integrity sha512-qrOIa34c+C5kqABGslBz7Lcwi9qbksO9/XcoCcYWD6AnrOmVUBRZSFHzo7Enk5iHUXRGnVnXvb8AyBXKlwpdGQ== +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.3.0" - jest-regex-util "^24.3.0" - jest-util "^24.3.0" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" micromatch "^3.1.10" + pirates "^4.0.1" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.3.0": - version "24.3.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.3.0.tgz#3f6e117e47248a9a6b5f1357ec645bd364f7ad23" - integrity sha512-VoO1F5tU2n/93QN/zaZ7Q8SeV/Rj+9JJOgbvKbBwy4lenvmdj1iDaQEPXGTKrO6OSvDeb2drTFipZJYxgo6kIQ== +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== dependencies: - "@types/istanbul-lib-coverage" "^1.1.0" - "@types/yargs" "^12.0.9" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -493,10 +513,25 @@ dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" - integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" + integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" "@types/jest-diff@*": version "20.0.1" @@ -703,10 +738,17 @@ "@types/events" "*" "@types/node" "*" -"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": - version "12.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" - integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== +"@types/yargs-parser@*": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + +"@types/yargs@^13.0.0": + version "13.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" + integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== + dependencies: + "@types/yargs-parser" "*" "@types/yargs@^8.0.2": version "8.0.2" @@ -746,6 +788,11 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + acorn-dynamic-import@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" @@ -860,6 +907,11 @@ ansi-regex@^4.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1170,16 +1222,16 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.3.0.tgz#4f484d1a13e1be1b349e715cc41ad34fbe770ad7" - integrity sha512-YH62Flana1vImnB3Q59R9t7PzMUbFTlhI4KR/Ri/5hshm+WgxCTuFS8N2uSvEhQXcvzkhrvjBBciJWzOb+4rOA== +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== dependencies: - "@jest/transform" "^24.3.0" - "@jest/types" "^24.3.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.3.0" + babel-preset-jest "^24.9.0" chalk "^2.4.2" slash "^2.0.0" @@ -1199,10 +1251,10 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.0.0" test-exclude "^5.0.0" -babel-plugin-jest-hoist@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" - integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== dependencies: "@types/babel__traverse" "^7.0.6" @@ -1216,13 +1268,13 @@ babel-plugin-syntax-object-rest-spread@^6.13.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= -babel-preset-jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" - integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.3.0" + babel-plugin-jest-hoist "^24.9.0" babel-register@^6.26.0: version "6.26.0" @@ -1677,6 +1729,11 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" @@ -1728,6 +1785,11 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== +chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + chrome-launcher@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.11.2.tgz#c9a248dbccd3a08565553acf61adff879bcc982c" @@ -1819,6 +1881,15 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1907,11 +1978,6 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -compare-versions@^3.2.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" - integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== - component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -2408,6 +2474,13 @@ debug@=3.1.0, debug@^3.1.0: dependencies: ms "2.0.0" +debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -2537,7 +2610,7 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" -detect-libc@^1.0.3: +detect-libc@^1.0.2, detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -2561,10 +2634,10 @@ devtools-protocol@0.0.588129: resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.588129.tgz#b93d05b01679471639f2882077f77d4e96eecc18" integrity sha512-5ID10jYNewQpBFo1IhKtYkH1b+EF9DmrnWidSdAnBq8hdJyZKxHvjHPbwTlWeqhzVzUKHSdn5EUj9BZq31U+QQ== -diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diffie-hellman@^5.0.0: version "5.0.3" @@ -2590,6 +2663,11 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= + domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -2663,6 +2741,11 @@ email-addresses@^3.0.1: resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.2.tgz#a31280d19baf86669840a0aa45be1d7f6e7df315" integrity sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g== +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -2999,17 +3082,17 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.3.0.tgz#84c2bff9d3eaf4ffe088ec13e84a7d7a8d014945" - integrity sha512-maPswEFJ1mJaa3Hx0aeyiqlf/FhJnvTyCzeksmqHGgWyM8m+cIhf1t5Gz8qIRdJPm0m4XPiin/0wxdru2l+hCw== +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" ansi-styles "^3.2.0" - jest-get-type "^24.3.0" - jest-matcher-utils "^24.3.0" - jest-message-util "^24.3.0" - jest-regex-util "^24.3.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" extend-shallow@^2.0.1: version "2.0.1" @@ -3169,14 +3252,6 @@ filenamify@^1.0.0: strip-outer "^1.0.0" trim-repeated "^1.0.0" -fileset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3300,11 +3375,26 @@ fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -3339,6 +3429,11 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" integrity sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U= +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -3471,6 +3566,14 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" +global@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + globals@^11.0.1, globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3568,6 +3671,17 @@ handlebars@^4.0.2, handlebars@^4.1.0: optionalDependencies: uglify-js "^3.1.4" +handlebars@^4.1.2: + version "4.5.3" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" + integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -3733,7 +3847,7 @@ humanize-url@^1.0.0: normalize-url "^1.0.0" strip-url-auth "^1.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4259,25 +4373,6 @@ isstream@0.1.x, isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -istanbul-api@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" - integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== - dependencies: - async "^2.6.1" - compare-versions "^3.2.1" - fileset "^2.0.3" - istanbul-lib-coverage "^2.0.3" - istanbul-lib-hook "^2.0.3" - istanbul-lib-instrument "^3.1.0" - istanbul-lib-report "^2.0.4" - istanbul-lib-source-maps "^3.0.2" - istanbul-reports "^2.1.1" - js-yaml "^3.12.0" - make-dir "^1.3.0" - minimatch "^3.0.4" - once "^1.4.0" - istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" @@ -4330,65 +4425,73 @@ istanbul-reports@^2.1.1: dependencies: handlebars "^4.1.0" -jest-changed-files@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.3.0.tgz#7050ae29aaf1d59437c80f21d5b3cd354e88a499" - integrity sha512-fTq0YAUR6644fgsqLC7Zi2gXA/bAplMRvfXQdutmkwgrCKK6upkj+sgXqsUfUZRm15CVr3YSojr/GRNn71IMvg== +istanbul-reports@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== + dependencies: + handlebars "^4.1.2" + +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.3.0.tgz#b180ac1d3d0188d38d528268d99413e21baa8f64" - integrity sha512-FNGfJItAiXuJJBSZIQzaLCb63/BIAUEyucGf892Vg2n/dyk1M7O+o6YPFtwWOHMwVXX873MLsINBUbFNt1ugLQ== +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: - "@jest/core" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.3.0" - jest-util "^24.3.0" - jest-validate "^24.3.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-config@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.3.0.tgz#d12296b5a8f700b13fb31eaea7c30f5473aab1a5" - integrity sha512-GrPEBZ1nIQ6KnHHNiQYN30ekJG+w7l2IWRctCQUDKbmV5IE5bnirz8tHpMzkTHyClZH2g1NcvW2tUX0Glqgp4A== +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.3.0" - babel-jest "^24.3.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.3.0" - jest-environment-node "^24.3.0" - jest-get-type "^24.3.0" - jest-jasmine2 "^24.3.0" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.3.0" - jest-util "^24.3.0" - jest-validate "^24.3.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" micromatch "^3.1.10" - pretty-format "^24.3.0" + pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.3.0.tgz#38a76ccc52130e6d273ef952e4bac358924be8a6" - integrity sha512-B3FHbTaQObcew5H639Ok6Yv8MMkU4BZqwyt1TQgJXlOiR9TdSfjoViYmb0iWucOPMT3xvz3lN6n2phymdQRyEQ== +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.3.0" - pretty-format "^24.3.0" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-docblock@^24.3.0: version "24.3.0" @@ -4397,232 +4500,248 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.3.0.tgz#83ae8c6368791bf6ad6c5bf3f67ace0724e9d13e" - integrity sha512-FuAhGgS1k6MpOG9vHsEVYH7mwiHheRIH9vFf8xKxmM5vnuCMhoZqExojmw5vAglkEPJPVH9rjZakOD5kqWV0UA== +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - jest-get-type "^24.3.0" - jest-util "^24.3.0" - pretty-format "^24.3.0" - -jest-environment-jsdom@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.3.0.tgz#974d4293bd9d714eeeb1376c7235a8ab9d736db7" - integrity sha512-Cor5RiE8WMoDErKZSXDfh6KAEOP8lrz04PgNLczEV7IkB2++0U4NC+gTyrO0PenfIlKbCZ6g0sRubEJOgjiXUA== - dependencies: - "@jest/environment" "^24.3.0" - "@jest/fake-timers" "^24.3.0" - "@jest/types" "^24.3.0" - jest-mock "^24.3.0" - jest-util "^24.3.0" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" + +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.3.0.tgz#127e214e4ebad9639f81d3c82ac5fb3d482024ad" - integrity sha512-VKJ1qE0Xn2IYNXusxce2M7IhHz4uARYDXO3JxkyQnFhLPE33e5UUx2MQHVpst2Qy98IFpO06WZtrHb5H06GGfQ== +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: - "@jest/environment" "^24.3.0" - "@jest/fake-timers" "^24.3.0" - "@jest/types" "^24.3.0" - jest-mock "^24.3.0" - jest-util "^24.3.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" -jest-get-type@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" - integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== -jest-haste-map@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.3.0.tgz#8fc0530c25b0705e9e908d9da8f1904cbec39058" - integrity sha512-LJCFLYZ9zgaZluzgyaum7HzApSYt2fFv39DoGwcLlWSDbjeI1tZuNOIWp5qHCHe7WXc99EgqLidpzsauA3HBBg== +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" + anymatch "^2.0.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.3.0" - jest-util "^24.3.0" - jest-worker "^24.3.0" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" micromatch "^3.1.10" sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" -jest-jasmine2@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.3.0.tgz#60814a23992891b955cbfe453947320e2e66076b" - integrity sha512-X0bseienL6wLdgHIrTyBbn3+llmEiXkMTJKFmJvQf4yP84bYdy1HaQYfchOWw5H9JllROM0kEBhRz8OS3p6FEA== +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.3.0" + expect "^24.9.0" is-generator-fn "^2.0.0" - jest-each "^24.3.0" - jest-matcher-utils "^24.3.0" - jest-message-util "^24.3.0" - jest-runtime "^24.3.0" - jest-snapshot "^24.3.0" - jest-util "^24.3.0" - pretty-format "^24.3.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" throat "^4.0.0" -jest-leak-detector@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.3.0.tgz#20216c2fb94a67d90b19c34e18880974bcd901f2" - integrity sha512-NUwLCYPVMnSo7mHaXY8ahKbzmPNBlRTPvmvoHK70Y2K17COFNfVz30wKhsa3Dpv3rmcnk2XaPq77DKjUAsyVGQ== +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: - pretty-format "^24.3.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-matcher-utils@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.3.0.tgz#c3277ee6d93583293f270e8d0ea864cfe17d2d1c" - integrity sha512-9imAV7r7dD1KGbGln2331RHAYfNQsZGYx1uLc45Fn+KuffFAqv5NS+8t9KaFZIo4rjBu/KNM3hBlu6l2/mRdqw== +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" - jest-diff "^24.3.0" - jest-get-type "^24.3.0" - pretty-format "^24.3.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-message-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.3.0.tgz#e8f64b63ebc75b1a9c67ee35553752596e70d4a9" - integrity sha512-lXM0YgKYGqN5/eH1NGw4Ix+Pk2I9Y77beyRas7xM24n+XTTK3TbT0VkT3L/qiyS7WkW0YwyxoXnnAaGw4hsEDA== +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.3.0.tgz#95a86b6ad474e3e33227e6dd7c4ff6b07e18d3cb" - integrity sha512-AhAo0qjbVWWGvcbW5nChFjR0ObQImvGtU6DodprNziDOt+pP0CBdht/sYcNIOXeim8083QUi9bC8QdKB8PTK4Q== +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== jest-regex-util@^24.3.0: version "24.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.3.0.tgz#fd364c149fcd9d330f1f3adce1ba2d6937eb9ed7" - integrity sha512-z4s8t+EM67sbsRG5j0VzW0a4cv3Fj4+oQWisUOJXOtPHaBVP5OySsQq9E+BSSwaS8YgNC1m0+PdfUZEp3DkDOw== +jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== + +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.3.0" + jest-snapshot "^24.9.0" -jest-resolve@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.3.0.tgz#484268892ceb25cc90694adc78aa99026907322b" - integrity sha512-lgU2nE475eZrB/KwrEdVwNhFKvHqgSB3G+yaJ6bpK3cOYt35uInteNu1BL5008F5AQsJKdmg3mIWwwizdgb/uA== +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" browser-resolve "^1.11.3" chalk "^2.0.1" + jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.3.0.tgz#5bdc0378992b60f7b14f9d198c9cc1481883a27e" - integrity sha512-oAWdXY74DwXViSrczs6q8FSi2RdFEejM2q9KasgjI+b8+usOnxXpEpo6FEMUvSXzkjpPz4XND7jusUNhShu9jQ== +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.3.0" + jest-config "^24.9.0" jest-docblock "^24.3.0" - jest-haste-map "^24.3.0" - jest-jasmine2 "^24.3.0" - jest-leak-detector "^24.3.0" - jest-message-util "^24.3.0" - jest-resolve "^24.3.0" - jest-runtime "^24.3.0" - jest-util "^24.3.0" - jest-worker "^24.3.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.3.0.tgz#6ed1ba1260ad90c906a55fb4989021cfc7c967c4" - integrity sha512-ARqHo8nPQ0/QlTN9ZuE8ebIjleBVqJhdEcuoy7mEWNyOqEpuEMAVIp3asO+giAmwh5ih9NlbhWsx97DIt5N6KA== +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: - "@jest/console" "^24.3.0" - "@jest/environment" "^24.3.0" + "@jest/console" "^24.7.1" + "@jest/environment" "^24.9.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.3.0" - "@jest/types" "^24.3.0" - "@types/yargs" "^12.0.2" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.3.0" - jest-haste-map "^24.3.0" - jest-message-util "^24.3.0" - jest-mock "^24.3.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.3.0" - jest-snapshot "^24.3.0" - jest-util "^24.3.0" - jest-validate "^24.3.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-serializer@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.3.0.tgz#074e307300d1451617cf2630d11543ee4f74a1c8" - integrity sha512-RiSpqo2OFbVLJN/PgAOwQIUeHDfss6NBUDTLhjiJM8Bb5rMrwRqHfkaqahIsOf9cXXB5UjcqDCzbQ7AIoMqWkg== +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== -jest-snapshot@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.3.0.tgz#00baac770e25df9a6217108dc8a4df59d80aa4aa" - integrity sha512-0zxK7KBX35vwbnQbxdO0tVzIyliWfU5WoE4nU2tMajLH0lSg8+5mgr/6TKHzDB5fWVggXgOI/iMTgsaChEq9tQ== +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - expect "^24.3.0" - jest-diff "^24.3.0" - jest-matcher-utils "^24.3.0" - jest-message-util "^24.3.0" - jest-resolve "^24.3.0" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.3.0" - semver "^5.5.0" - -jest-util@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.3.0.tgz#a549ae9910fedbd4c5912b204bb1bcc122ea0057" - integrity sha512-eKIAC+MTKWZthUUVOwZ3Tc5a0cKMnxalQHr6qZ4kPzKn6k09sKvsmjCygqZ1SxVVfUKoa8Sfn6XDv9uTJ1iXTg== - dependencies: - "@jest/console" "^24.3.0" - "@jest/fake-timers" "^24.3.0" - "@jest/source-map" "^24.3.0" - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" - "@types/node" "*" + pretty-format "^24.9.0" + semver "^6.2.0" + +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== + dependencies: + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -4631,48 +4750,46 @@ jest-util@^24.3.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.3.0.tgz#1701990cba3ca8193ec987fea768811e9448cd9f" - integrity sha512-K4p5QrCA6MYacPupnWHrrYiMkeBWD+tXjiO9zoR4+/H1ApjQzYrhdsTzGltlTE0KKdKbpZhxnIJkPVJQ4Z3CkA== +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: - "@jest/types" "^24.3.0" - camelcase "^5.0.0" + "@jest/types" "^24.9.0" + camelcase "^5.3.1" chalk "^2.0.1" - jest-get-type "^24.3.0" - leven "^2.1.0" - pretty-format "^24.3.0" - -jest-watcher@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.3.0.tgz#ee51c6afbe4b35a12fcf1107556db6756d7b9290" - integrity sha512-EpJS/aUG8D3DMuy9XNA4fnkKWy3DQdoWhY92ZUdlETIeEn1xya4Np/96MBSh4II5YvxwKe6JKwbu3Bnzfwa7vA== - dependencies: - "@jest/test-result" "^24.3.0" - "@jest/types" "^24.3.0" - "@types/node" "*" - "@types/yargs" "^12.0.9" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.3.0" + jest-util "^24.9.0" string-length "^2.0.0" -jest-worker@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.3.0.tgz#2e02eea58f8e43d32e5d82e42aa411dee127dc2d" - integrity sha512-gJ5eGnHt73cCpwKGbx0drrVCypgUVINZ5nUAvzD57EUCFc1kzqA0wpPmn4LVWi7mkNeOE36daBbAyWPEmEf+CQ== +jest-worker@^24.6.0, jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== dependencies: - "@types/node" "*" - merge-stream "^1.0.1" + merge-stream "^2.0.0" supports-color "^6.1.0" -jest@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.3.0.tgz#e16620880d9ce36b3f9341cd4d2808f85b8f16fd" - integrity sha512-c1EFvnRkTClSj9qcAF3r0UHCf5bpxdGs4+cKJwp53tct6S/ZhSk3NGjjMGBHxm41+6wnJSBl48u6nzIFxoNs9g== +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== dependencies: import-local "^2.0.0" - jest-cli "^24.3.0" + jest-cli "^24.9.0" jpeg-js@0.1.2, jpeg-js@^0.1.2: version "0.1.2" @@ -4955,10 +5072,10 @@ left-pad@^1.2.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -5254,12 +5371,10 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.2.1: version "1.2.3" @@ -5325,6 +5440,13 @@ mimic-response@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5335,7 +5457,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5352,6 +5474,21 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -5413,7 +5550,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@^2.13.2: +nan@^2.12.1, nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -5446,6 +5583,15 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -5501,21 +5647,46 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" - integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg== +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" - semver "^5.4.1" + is-wsl "^1.1.0" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -5548,6 +5719,19 @@ normalize-url@^1.0.0: query-string "^4.1.0" sort-keys "^1.0.0" +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" + integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5560,7 +5744,7 @@ npm-run-posix-or-windows@^2.0.2: resolved "https://registry.yarnpkg.com/npm-run-posix-or-windows/-/npm-run-posix-or-windows-2.0.2.tgz#74e894702ae34ea338502d04b500c1dec836736e" integrity sha1-dOiUcCrjTqM4UC0EtQDB3sg2c24= -npmlog@^4.0.1, npmlog@^4.1.2: +npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -5743,6 +5927,14 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -6074,14 +6266,15 @@ prettier@^1.14.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== -pretty-format@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.3.0.tgz#e7eaefecd28d714fc6425dc2d5f9ed30e1188b26" - integrity sha512-oz+EQc2uda3ql4JluWTWEQgegTo9cMkVcqXxBieSV1opZ4SE1TKuFBDoSk7jGOb08UgwQVHMkVSINB8jQyUFQg== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: - "@jest/types" "^24.3.0" + "@jest/types" "^24.9.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" + react-is "^16.8.4" pretty-json-stringify@^0.0.2: version "0.0.2" @@ -6105,7 +6298,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== -process@~0.11.0: +process@^0.11.10, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -6284,6 +6477,11 @@ rdf-canonize@^1.0.1: node-forge "^0.7.6" semver "^5.6.0" +react-is@^16.8.4: + version "16.12.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" + integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== + read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -6333,7 +6531,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -6475,6 +6673,11 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -6665,6 +6868,11 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== +semver@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -7054,6 +7262,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -7089,6 +7306,13 @@ strip-ansi@^5.0.0: dependencies: ansi-regex "^4.0.0" +strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" @@ -7218,6 +7442,19 @@ tar-stream@^1.1.2, tar-stream@^1.5.0: to-buffer "^1.1.1" xtend "^4.0.0" +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + teeny-request@^3.7.0: version "3.11.3" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" @@ -7677,7 +7914,7 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -walker@~1.0.5: +walker@^1.0.7, walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -7795,6 +8032,15 @@ wrap-ansi@^2.0.0: dependencies: string-width "^1.0.1" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -7879,7 +8125,7 @@ y18n@^3.2.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0": +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -7889,6 +8135,11 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yargs-parser@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -7904,6 +8155,14 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs@3.32.0: version "3.32.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" @@ -7917,7 +8176,7 @@ yargs@3.32.0: window-size "^0.1.4" y18n "^3.2.0" -yargs@^12.0.2, yargs@^12.0.5: +yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -7935,6 +8194,22 @@ yargs@^12.0.2, yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" +yargs@^13.3.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" From 04b9e7e3a3cd34d8dadfb0f388393b4b129ea606 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Mon, 18 Nov 2019 15:22:05 -0500 Subject: [PATCH 21/23] Address review comments --- .../computed/page-dependency-graph-test.js | 6 +- package.json | 3 +- yarn.lock | 1085 ++++++----------- 3 files changed, 409 insertions(+), 685 deletions(-) diff --git a/lighthouse-core/test/computed/page-dependency-graph-test.js b/lighthouse-core/test/computed/page-dependency-graph-test.js index 2b778fd4bab1..fdf640f55ef9 100644 --- a/lighthouse-core/test/computed/page-dependency-graph-test.js +++ b/lighthouse-core/test/computed/page-dependency-graph-test.js @@ -297,7 +297,7 @@ describe('PageDependencyGraph computed artifact:', () => { {name: 'XHRReadyStateChange', data: {readyState: 4, url: '2'}}, ]); - // Short task, should be pruned, but the 4->5 relationship should be retained + // Short task, should be pruned, but the 3->4 relationship should be retained addTaskEvents(350, 5, [ {name: 'EvaluateScript', data: {url: '3'}}, {name: 'ResourceSendRequest', data: {requestId: 4}}, @@ -330,7 +330,7 @@ describe('PageDependencyGraph computed artifact:', () => { frameId: 'frame1', }; const request2 = { - ...createRequest(1, '2', 200, null, NetworkRequest.TYPES.Script), + ...createRequest(2, '2', 200, null, NetworkRequest.TYPES.Script), documentURL: '1', frameId: 'frame1', }; @@ -364,7 +364,7 @@ describe('PageDependencyGraph computed artifact:', () => { assert.deepEqual(getDependencyIds(nodes[4]), [0, '1.220000']); assert.equal('1.220000', nodes[5].id); - assert.deepEqual(getDependencyIds(nodes[5]), [1, '1:duplicate']); + assert.deepEqual(getDependencyIds(nodes[5]), [1, 2]); }); it('should set isMainDocument on first document request', () => { diff --git a/package.json b/package.json index 56b8388decf9..8f9dffbe5fcf 100644 --- a/package.json +++ b/package.json @@ -117,7 +117,7 @@ "idb-keyval": "2.2.0", "intl-messageformat-parser": "^1.8.1", "isomorphic-fetch": "^2.2.1", - "jest": "^24.9.0", + "jest": "^24.3.0", "jsdom": "^12.2.0", "npm-run-posix-or-windows": "^2.0.2", "nyc": "^13.3.0", @@ -134,7 +134,6 @@ "configstore": "^3.1.1", "cssstyle": "1.2.1", "details-element-polyfill": "^2.4.0", - "global": "^4.4.0", "http-link-header": "^0.8.0", "inquirer": "^3.3.0", "intl": "^1.2.5", diff --git a/yarn.lock b/yarn.lock index 321064ea4e4b..6603af34f883 100644 --- a/yarn.lock +++ b/yarn.lock @@ -156,91 +156,92 @@ dependencies: tslib "1.9.0" -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== +"@jest/console@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.3.0.tgz#7bd920d250988ba0bf1352c4493a48e1cb97671e" + integrity sha512-NaCty/OOei6rSDcbPdMiCbYCI0KGFGPgGO6B09lwWt5QTxnkuhKYET9El5u5z1GAcSxkQmSMtM63e24YabCWqA== dependencies: - "@jest/source-map" "^24.9.0" + "@jest/source-map" "^24.3.0" + "@types/node" "*" chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" - integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== - dependencies: - "@jest/console" "^24.7.1" - "@jest/reporters" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" +"@jest/core@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.3.0.tgz#ae5732af96567205d79ed97dc0b9b9033acea298" + integrity sha512-kGnyXAEjFPK4SfikxyrugXZ/SpWYmA09jMOvZRxeRfarVy+yIE6NkilRA85MRqR2qOcQhWgZ48T3KXEVPZC1zw== + dependencies: + "@jest/console" "^24.3.0" + "@jest/reporters" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/transform" "^24.3.0" + "@jest/types" "^24.3.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.9.0" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" + jest-changed-files "^24.3.0" + jest-config "^24.3.0" + jest-haste-map "^24.3.0" + jest-message-util "^24.3.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-resolve-dependencies "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - jest-watcher "^24.9.0" + jest-resolve-dependencies "^24.3.0" + jest-runner "^24.3.0" + jest-runtime "^24.3.0" + jest-snapshot "^24.3.0" + jest-util "^24.3.0" + jest-validate "^24.3.0" + jest-watcher "^24.3.0" micromatch "^3.1.10" p-each-series "^1.0.0" + pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" - slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/reporters@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" - integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" +"@jest/environment@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.3.0.tgz#45e7c5cc996cb8f2287a30f8de08b152fa226fe2" + integrity sha512-rPrnhX3cBvGqODfd6aUsCruUijVp2tmBC0YfeXIku0MciQSR9ek5tjdEk31iBvxE9WlGQus+E/slRLqJmCRZTw== + dependencies: + "@jest/fake-timers" "^24.3.0" + "@jest/transform" "^24.3.0" + "@jest/types" "^24.3.0" + "@types/node" "*" + jest-mock "^24.3.0" + +"@jest/fake-timers@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.3.0.tgz#0a7f8b877b78780c3fa5c3f8683cc0aaf9488331" + integrity sha512-rHwVI17dGMHxHzfAhnZ04+wFznjFfZ246QugeBnbiYr7/bDosPD2P1qeNjWnJUUcfl0HpS6kkr+OB/mqSJxQFg== + dependencies: + "@jest/types" "^24.3.0" + "@types/node" "*" + jest-message-util "^24.3.0" + jest-mock "^24.3.0" + +"@jest/reporters@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.3.0.tgz#beaa8b7d0148db8438a12102daf4d36268a150f5" + integrity sha512-/Gwdcej9x4QuhFIWTKyiiMLAMzfCtIIvuk2AnreqmuxLRAyUbkR5BoUoPvwowKVyZn20ZdCG5Qf7/KaoHhCG8Q== + dependencies: + "@jest/environment" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/transform" "^24.3.0" + "@jest/types" "^24.3.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" + istanbul-api "^2.1.1" istanbul-lib-coverage "^2.0.2" istanbul-lib-instrument "^3.0.1" - istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.2.6" - jest-haste-map "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - node-notifier "^5.4.2" + jest-haste-map "^24.3.0" + jest-resolve "^24.3.0" + jest-runtime "^24.3.0" + jest-util "^24.3.0" + jest-worker "^24.3.0" + node-notifier "^5.2.1" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" @@ -254,64 +255,43 @@ graceful-fs "^4.1.15" source-map "^0.6.0" -"@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== +"@jest/test-result@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.3.0.tgz#4c0b1c9716212111920f7cf8c4329c69bc81924a" + integrity sha512-j7UZ49T8C4CVipEY99nLttnczVTtLyVzFfN20OiBVn7awOs0U3endXSTq7ouPrLR5y4YjI5GDcbcvDUjgeamzg== dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" + "@jest/console" "^24.3.0" + "@jest/types" "^24.3.0" + "@types/istanbul-lib-coverage" "^1.1.0" -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== +"@jest/transform@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.3.0.tgz#a18bfd18f25ca28566f5bc398551c047199f4c75" + integrity sha512-qrOIa34c+C5kqABGslBz7Lcwi9qbksO9/XcoCcYWD6AnrOmVUBRZSFHzo7Enk5iHUXRGnVnXvb8AyBXKlwpdGQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" babel-plugin-istanbul "^5.1.0" chalk "^2.0.1" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" + jest-haste-map "^24.3.0" + jest-regex-util "^24.3.0" + jest-util "^24.3.0" micromatch "^3.1.10" - pirates "^4.0.1" realpath-native "^1.1.0" slash "^2.0.0" source-map "^0.6.1" write-file-atomic "2.4.1" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== +"@jest/types@^24.3.0": + version "24.3.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.3.0.tgz#3f6e117e47248a9a6b5f1357ec645bd364f7ad23" + integrity sha512-VoO1F5tU2n/93QN/zaZ7Q8SeV/Rj+9JJOgbvKbBwy4lenvmdj1iDaQEPXGTKrO6OSvDeb2drTFipZJYxgo6kIQ== dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" + "@types/istanbul-lib-coverage" "^1.1.0" + "@types/yargs" "^12.0.9" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -513,25 +493,10 @@ dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== - -"@types/istanbul-lib-report@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c" - integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" +"@types/istanbul-lib-coverage@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#2cc2ca41051498382b43157c8227fea60363f94a" + integrity sha512-ohkhb9LehJy+PA40rDtGAji61NCgdtKLAlFoYp4cnuuQEswwdK3vz9SOIkkyc3wrk8dzjphQApNs56yyXLStaQ== "@types/jest-diff@*": version "20.0.1" @@ -738,17 +703,10 @@ "@types/events" "*" "@types/node" "*" -"@types/yargs-parser@*": - version "13.1.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" - integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== - -"@types/yargs@^13.0.0": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz#76482af3981d4412d65371a318f992d33464a380" - integrity sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ== - dependencies: - "@types/yargs-parser" "*" +"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": + version "12.0.9" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" + integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== "@types/yargs@^8.0.2": version "8.0.2" @@ -788,11 +746,6 @@ abab@^2.0.0: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - acorn-dynamic-import@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" @@ -907,11 +860,6 @@ ansi-regex@^4.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1222,16 +1170,16 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== +babel-jest@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.3.0.tgz#4f484d1a13e1be1b349e715cc41ad34fbe770ad7" + integrity sha512-YH62Flana1vImnB3Q59R9t7PzMUbFTlhI4KR/Ri/5hshm+WgxCTuFS8N2uSvEhQXcvzkhrvjBBciJWzOb+4rOA== dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/transform" "^24.3.0" + "@jest/types" "^24.3.0" "@types/babel__core" "^7.1.0" babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" + babel-preset-jest "^24.3.0" chalk "^2.4.2" slash "^2.0.0" @@ -1251,10 +1199,10 @@ babel-plugin-istanbul@^5.1.0: istanbul-lib-instrument "^3.0.0" test-exclude "^5.0.0" -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== +babel-plugin-jest-hoist@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.3.0.tgz#f2e82952946f6e40bb0a75d266a3790d854c8b5b" + integrity sha512-nWh4N1mVH55Tzhx2isvUN5ebM5CDUvIpXPZYMRazQughie/EqGnbR+czzoQlhUmJG9pPJmYDRhvocotb2THl1w== dependencies: "@types/babel__traverse" "^7.0.6" @@ -1268,13 +1216,13 @@ babel-plugin-syntax-object-rest-spread@^6.13.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== +babel-preset-jest@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.3.0.tgz#db88497e18869f15b24d9c0e547d8e0ab950796d" + integrity sha512-VGTV2QYBa/Kn3WCOKdfS31j9qomaXSgJqi65B6o05/1GsJyj9LVhSljM9ro4S+IBGj/ENhNBuH9bpqzztKAQSw== dependencies: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" + babel-plugin-jest-hoist "^24.3.0" babel-register@^6.26.0: version "6.26.0" @@ -1729,11 +1677,6 @@ camelcase@^5.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" @@ -1785,11 +1728,6 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== -chownr@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== - chrome-launcher@^0.11.2: version "0.11.2" resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.11.2.tgz#c9a248dbccd3a08565553acf61adff879bcc982c" @@ -1881,15 +1819,6 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1978,6 +1907,11 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" +compare-versions@^3.2.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.4.0.tgz#e0747df5c9cb7f054d6d3dc3e1dbc444f9e92b26" + integrity sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg== + component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -2474,13 +2408,6 @@ debug@=3.1.0, debug@^3.1.0: dependencies: ms "2.0.0" -debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -2610,7 +2537,7 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -2634,10 +2561,10 @@ devtools-protocol@0.0.588129: resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.588129.tgz#b93d05b01679471639f2882077f77d4e96eecc18" integrity sha512-5ID10jYNewQpBFo1IhKtYkH1b+EF9DmrnWidSdAnBq8hdJyZKxHvjHPbwTlWeqhzVzUKHSdn5EUj9BZq31U+QQ== -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" + integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== diffie-hellman@^5.0.0: version "5.0.3" @@ -2663,11 +2590,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg= - domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -2741,11 +2663,6 @@ email-addresses@^3.0.1: resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.2.tgz#a31280d19baf86669840a0aa45be1d7f6e7df315" integrity sha512-IMn9dnwLMsgZjdUHswB/UZ0S8LQ/u+2/qjnHJ9tCtp3QHZsIYwJCiJOo2FT0i3CwwK/dtSODYtxuvzV4D9MY5g== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -3082,17 +2999,17 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== +expect@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.3.0.tgz#84c2bff9d3eaf4ffe088ec13e84a7d7a8d014945" + integrity sha512-maPswEFJ1mJaa3Hx0aeyiqlf/FhJnvTyCzeksmqHGgWyM8m+cIhf1t5Gz8qIRdJPm0m4XPiin/0wxdru2l+hCw== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" + jest-get-type "^24.3.0" + jest-matcher-utils "^24.3.0" + jest-message-util "^24.3.0" + jest-regex-util "^24.3.0" extend-shallow@^2.0.1: version "2.0.1" @@ -3252,6 +3169,14 @@ filenamify@^1.0.0: strip-outer "^1.0.0" trim-repeated "^1.0.0" +fileset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3375,26 +3300,11 @@ fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -3429,11 +3339,6 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" integrity sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U= -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - get-pkg-repo@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" @@ -3566,14 +3471,6 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" -global@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - globals@^11.0.1, globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3671,17 +3568,6 @@ handlebars@^4.0.2, handlebars@^4.1.0: optionalDependencies: uglify-js "^3.1.4" -handlebars@^4.1.2: - version "4.5.3" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482" - integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -3847,7 +3733,7 @@ humanize-url@^1.0.0: normalize-url "^1.0.0" strip-url-auth "^1.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -4373,6 +4259,25 @@ isstream@0.1.x, isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +istanbul-api@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-2.1.1.tgz#194b773f6d9cbc99a9258446848b0f988951c4d0" + integrity sha512-kVmYrehiwyeBAk/wE71tW6emzLiHGjYIiDrc8sfyty4F8M02/lrgXSm+R1kXysmF20zArvmZXjlE/mg24TVPJw== + dependencies: + async "^2.6.1" + compare-versions "^3.2.1" + fileset "^2.0.3" + istanbul-lib-coverage "^2.0.3" + istanbul-lib-hook "^2.0.3" + istanbul-lib-instrument "^3.1.0" + istanbul-lib-report "^2.0.4" + istanbul-lib-source-maps "^3.0.2" + istanbul-reports "^2.1.1" + js-yaml "^3.12.0" + make-dir "^1.3.0" + minimatch "^3.0.4" + once "^1.4.0" + istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba" @@ -4425,73 +4330,65 @@ istanbul-reports@^2.1.1: dependencies: handlebars "^4.1.0" -istanbul-reports@^2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" - integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== - dependencies: - handlebars "^4.1.2" - -jest-changed-files@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" - integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== +jest-changed-files@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.3.0.tgz#7050ae29aaf1d59437c80f21d5b3cd354e88a499" + integrity sha512-fTq0YAUR6644fgsqLC7Zi2gXA/bAplMRvfXQdutmkwgrCKK6upkj+sgXqsUfUZRm15CVr3YSojr/GRNn71IMvg== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" - integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== +jest-cli@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.3.0.tgz#b180ac1d3d0188d38d528268d99413e21baa8f64" + integrity sha512-FNGfJItAiXuJJBSZIQzaLCb63/BIAUEyucGf892Vg2n/dyk1M7O+o6YPFtwWOHMwVXX873MLsINBUbFNt1ugLQ== dependencies: - "@jest/core" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/core" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-config "^24.3.0" + jest-util "^24.3.0" + jest-validate "^24.3.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^13.3.0" + yargs "^12.0.2" -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== +jest-config@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.3.0.tgz#d12296b5a8f700b13fb31eaea7c30f5473aab1a5" + integrity sha512-GrPEBZ1nIQ6KnHHNiQYN30ekJG+w7l2IWRctCQUDKbmV5IE5bnirz8tHpMzkTHyClZH2g1NcvW2tUX0Glqgp4A== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" + "@jest/types" "^24.3.0" + babel-jest "^24.3.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" + jest-environment-jsdom "^24.3.0" + jest-environment-node "^24.3.0" + jest-get-type "^24.3.0" + jest-jasmine2 "^24.3.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-resolve "^24.3.0" + jest-util "^24.3.0" + jest-validate "^24.3.0" micromatch "^3.1.10" - pretty-format "^24.9.0" + pretty-format "^24.3.0" realpath-native "^1.1.0" -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== +jest-diff@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.3.0.tgz#38a76ccc52130e6d273ef952e4bac358924be8a6" + integrity sha512-B3FHbTaQObcew5H639Ok6Yv8MMkU4BZqwyt1TQgJXlOiR9TdSfjoViYmb0iWucOPMT3xvz3lN6n2phymdQRyEQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + diff-sequences "^24.3.0" + jest-get-type "^24.3.0" + pretty-format "^24.3.0" jest-docblock@^24.3.0: version "24.3.0" @@ -4500,248 +4397,232 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== +jest-each@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.3.0.tgz#83ae8c6368791bf6ad6c5bf3f67ace0724e9d13e" + integrity sha512-FuAhGgS1k6MpOG9vHsEVYH7mwiHheRIH9vFf8xKxmM5vnuCMhoZqExojmw5vAglkEPJPVH9rjZakOD5kqWV0UA== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + jest-get-type "^24.3.0" + jest-util "^24.3.0" + pretty-format "^24.3.0" + +jest-environment-jsdom@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.3.0.tgz#974d4293bd9d714eeeb1376c7235a8ab9d736db7" + integrity sha512-Cor5RiE8WMoDErKZSXDfh6KAEOP8lrz04PgNLczEV7IkB2++0U4NC+gTyrO0PenfIlKbCZ6g0sRubEJOgjiXUA== + dependencies: + "@jest/environment" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/types" "^24.3.0" + jest-mock "^24.3.0" + jest-util "^24.3.0" jsdom "^11.5.1" -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== +jest-environment-node@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.3.0.tgz#127e214e4ebad9639f81d3c82ac5fb3d482024ad" + integrity sha512-VKJ1qE0Xn2IYNXusxce2M7IhHz4uARYDXO3JxkyQnFhLPE33e5UUx2MQHVpst2Qy98IFpO06WZtrHb5H06GGfQ== dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" + "@jest/environment" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/types" "^24.3.0" + jest-mock "^24.3.0" + jest-util "^24.3.0" -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.3.0.tgz#582cfd1a4f91b5cdad1d43d2932f816d543c65da" + integrity sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow== -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-haste-map@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.3.0.tgz#8fc0530c25b0705e9e908d9da8f1904cbec39058" + integrity sha512-LJCFLYZ9zgaZluzgyaum7HzApSYt2fFv39DoGwcLlWSDbjeI1tZuNOIWp5qHCHe7WXc99EgqLidpzsauA3HBBg== dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" + "@jest/types" "^24.3.0" fb-watchman "^2.0.0" graceful-fs "^4.1.15" invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" + jest-serializer "^24.3.0" + jest-util "^24.3.0" + jest-worker "^24.3.0" micromatch "^3.1.10" sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^1.2.7" -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== +jest-jasmine2@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.3.0.tgz#60814a23992891b955cbfe453947320e2e66076b" + integrity sha512-X0bseienL6wLdgHIrTyBbn3+llmEiXkMTJKFmJvQf4yP84bYdy1HaQYfchOWw5H9JllROM0kEBhRz8OS3p6FEA== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/environment" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.9.0" + expect "^24.3.0" is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" + jest-each "^24.3.0" + jest-matcher-utils "^24.3.0" + jest-message-util "^24.3.0" + jest-runtime "^24.3.0" + jest-snapshot "^24.3.0" + jest-util "^24.3.0" + pretty-format "^24.3.0" throat "^4.0.0" -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== +jest-leak-detector@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.3.0.tgz#20216c2fb94a67d90b19c34e18880974bcd901f2" + integrity sha512-NUwLCYPVMnSo7mHaXY8ahKbzmPNBlRTPvmvoHK70Y2K17COFNfVz30wKhsa3Dpv3rmcnk2XaPq77DKjUAsyVGQ== dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + pretty-format "^24.3.0" -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== +jest-matcher-utils@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.3.0.tgz#c3277ee6d93583293f270e8d0ea864cfe17d2d1c" + integrity sha512-9imAV7r7dD1KGbGln2331RHAYfNQsZGYx1uLc45Fn+KuffFAqv5NS+8t9KaFZIo4rjBu/KNM3hBlu6l2/mRdqw== dependencies: chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" + jest-diff "^24.3.0" + jest-get-type "^24.3.0" + pretty-format "^24.3.0" -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== +jest-message-util@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.3.0.tgz#e8f64b63ebc75b1a9c67ee35553752596e70d4a9" + integrity sha512-lXM0YgKYGqN5/eH1NGw4Ix+Pk2I9Y77beyRas7xM24n+XTTK3TbT0VkT3L/qiyS7WkW0YwyxoXnnAaGw4hsEDA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" "@types/stack-utils" "^1.0.1" chalk "^2.0.1" micromatch "^3.1.10" slash "^2.0.0" stack-utils "^1.0.1" -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== +jest-mock@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.3.0.tgz#95a86b6ad474e3e33227e6dd7c4ff6b07e18d3cb" + integrity sha512-AhAo0qjbVWWGvcbW5nChFjR0ObQImvGtU6DodprNziDOt+pP0CBdht/sYcNIOXeim8083QUi9bC8QdKB8PTK4Q== dependencies: - "@jest/types" "^24.9.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + "@jest/types" "^24.3.0" jest-regex-util@^24.3.0: version "24.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== - -jest-resolve-dependencies@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" - integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== +jest-resolve-dependencies@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.3.0.tgz#fd364c149fcd9d330f1f3adce1ba2d6937eb9ed7" + integrity sha512-z4s8t+EM67sbsRG5j0VzW0a4cv3Fj4+oQWisUOJXOtPHaBVP5OySsQq9E+BSSwaS8YgNC1m0+PdfUZEp3DkDOw== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" jest-regex-util "^24.3.0" - jest-snapshot "^24.9.0" + jest-snapshot "^24.3.0" -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== +jest-resolve@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.3.0.tgz#484268892ceb25cc90694adc78aa99026907322b" + integrity sha512-lgU2nE475eZrB/KwrEdVwNhFKvHqgSB3G+yaJ6bpK3cOYt35uInteNu1BL5008F5AQsJKdmg3mIWwwizdgb/uA== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" browser-resolve "^1.11.3" chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== +jest-runner@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.3.0.tgz#5bdc0378992b60f7b14f9d198c9cc1481883a27e" + integrity sha512-oAWdXY74DwXViSrczs6q8FSi2RdFEejM2q9KasgjI+b8+usOnxXpEpo6FEMUvSXzkjpPz4XND7jusUNhShu9jQ== dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + "@jest/console" "^24.3.0" + "@jest/environment" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.9.0" + jest-config "^24.3.0" jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" + jest-haste-map "^24.3.0" + jest-jasmine2 "^24.3.0" + jest-leak-detector "^24.3.0" + jest-message-util "^24.3.0" + jest-resolve "^24.3.0" + jest-runtime "^24.3.0" + jest-util "^24.3.0" + jest-worker "^24.3.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== +jest-runtime@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.3.0.tgz#6ed1ba1260ad90c906a55fb4989021cfc7c967c4" + integrity sha512-ARqHo8nPQ0/QlTN9ZuE8ebIjleBVqJhdEcuoy7mEWNyOqEpuEMAVIp3asO+giAmwh5ih9NlbhWsx97DIt5N6KA== dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" + "@jest/console" "^24.3.0" + "@jest/environment" "^24.3.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" + "@jest/transform" "^24.3.0" + "@jest/types" "^24.3.0" + "@types/yargs" "^12.0.2" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" + jest-config "^24.3.0" + jest-haste-map "^24.3.0" + jest-message-util "^24.3.0" + jest-mock "^24.3.0" jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" + jest-resolve "^24.3.0" + jest-snapshot "^24.3.0" + jest-util "^24.3.0" + jest-validate "^24.3.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^13.3.0" + yargs "^12.0.2" -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== +jest-serializer@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.3.0.tgz#074e307300d1451617cf2630d11543ee4f74a1c8" + integrity sha512-RiSpqo2OFbVLJN/PgAOwQIUeHDfss6NBUDTLhjiJM8Bb5rMrwRqHfkaqahIsOf9cXXB5UjcqDCzbQ7AIoMqWkg== -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +jest-snapshot@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.3.0.tgz#00baac770e25df9a6217108dc8a4df59d80aa4aa" + integrity sha512-0zxK7KBX35vwbnQbxdO0tVzIyliWfU5WoE4nU2tMajLH0lSg8+5mgr/6TKHzDB5fWVggXgOI/iMTgsaChEq9tQ== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" + expect "^24.3.0" + jest-diff "^24.3.0" + jest-matcher-utils "^24.3.0" + jest-message-util "^24.3.0" + jest-resolve "^24.3.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" - -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" + pretty-format "^24.3.0" + semver "^5.5.0" + +jest-util@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.3.0.tgz#a549ae9910fedbd4c5912b204bb1bcc122ea0057" + integrity sha512-eKIAC+MTKWZthUUVOwZ3Tc5a0cKMnxalQHr6qZ4kPzKn6k09sKvsmjCygqZ1SxVVfUKoa8Sfn6XDv9uTJ1iXTg== + dependencies: + "@jest/console" "^24.3.0" + "@jest/fake-timers" "^24.3.0" + "@jest/source-map" "^24.3.0" + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" + "@types/node" "*" callsites "^3.0.0" chalk "^2.0.1" graceful-fs "^4.1.15" @@ -4750,46 +4631,48 @@ jest-util@^24.9.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-validate@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.3.0.tgz#1701990cba3ca8193ec987fea768811e9448cd9f" + integrity sha512-K4p5QrCA6MYacPupnWHrrYiMkeBWD+tXjiO9zoR4+/H1ApjQzYrhdsTzGltlTE0KKdKbpZhxnIJkPVJQ4Z3CkA== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" + "@jest/types" "^24.3.0" + camelcase "^5.0.0" chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" - -jest-watcher@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" - integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== - dependencies: - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" + jest-get-type "^24.3.0" + leven "^2.1.0" + pretty-format "^24.3.0" + +jest-watcher@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.3.0.tgz#ee51c6afbe4b35a12fcf1107556db6756d7b9290" + integrity sha512-EpJS/aUG8D3DMuy9XNA4fnkKWy3DQdoWhY92ZUdlETIeEn1xya4Np/96MBSh4II5YvxwKe6JKwbu3Bnzfwa7vA== + dependencies: + "@jest/test-result" "^24.3.0" + "@jest/types" "^24.3.0" + "@types/node" "*" + "@types/yargs" "^12.0.9" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.9.0" + jest-util "^24.3.0" string-length "^2.0.0" -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.3.0.tgz#2e02eea58f8e43d32e5d82e42aa411dee127dc2d" + integrity sha512-gJ5eGnHt73cCpwKGbx0drrVCypgUVINZ5nUAvzD57EUCFc1kzqA0wpPmn4LVWi7mkNeOE36daBbAyWPEmEf+CQ== dependencies: - merge-stream "^2.0.0" + "@types/node" "*" + merge-stream "^1.0.1" supports-color "^6.1.0" -jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" - integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== +jest@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.3.0.tgz#e16620880d9ce36b3f9341cd4d2808f85b8f16fd" + integrity sha512-c1EFvnRkTClSj9qcAF3r0UHCf5bpxdGs4+cKJwp53tct6S/ZhSk3NGjjMGBHxm41+6wnJSBl48u6nzIFxoNs9g== dependencies: import-local "^2.0.0" - jest-cli "^24.9.0" + jest-cli "^24.3.0" jpeg-js@0.1.2, jpeg-js@^0.1.2: version "0.1.2" @@ -5072,10 +4955,10 @@ left-pad@^1.2.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -5371,10 +5254,12 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" merge2@^1.2.1: version "1.2.3" @@ -5440,13 +5325,6 @@ mimic-response@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= - dependencies: - dom-walk "^0.1.0" - minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5457,7 +5335,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5474,21 +5352,6 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mixin-deep@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" @@ -5550,7 +5413,7 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@^2.12.1, nan@^2.13.2: +nan@^2.13.2: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -5583,15 +5446,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - neo-async@^2.6.0: version "2.6.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" @@ -5647,46 +5501,21 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.4.2: - version "5.4.3" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" - integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== +node-notifier@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg== dependencies: growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" + semver "^5.4.1" shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -5719,19 +5548,6 @@ normalize-url@^1.0.0: query-string "^4.1.0" sort-keys "^1.0.0" -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" - integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5744,7 +5560,7 @@ npm-run-posix-or-windows@^2.0.2: resolved "https://registry.yarnpkg.com/npm-run-posix-or-windows/-/npm-run-posix-or-windows-2.0.2.tgz#74e894702ae34ea338502d04b500c1dec836736e" integrity sha1-dOiUcCrjTqM4UC0EtQDB3sg2c24= -npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -5927,14 +5743,6 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-defer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" @@ -6266,15 +6074,14 @@ prettier@^1.14.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== +pretty-format@^24.3.0: + version "24.3.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.3.0.tgz#e7eaefecd28d714fc6425dc2d5f9ed30e1188b26" + integrity sha512-oz+EQc2uda3ql4JluWTWEQgegTo9cMkVcqXxBieSV1opZ4SE1TKuFBDoSk7jGOb08UgwQVHMkVSINB8jQyUFQg== dependencies: - "@jest/types" "^24.9.0" + "@jest/types" "^24.3.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" - react-is "^16.8.4" pretty-json-stringify@^0.0.2: version "0.0.2" @@ -6298,7 +6105,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== -process@^0.11.10, process@~0.11.0: +process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= @@ -6477,11 +6284,6 @@ rdf-canonize@^1.0.1: node-forge "^0.7.6" semver "^5.6.0" -react-is@^16.8.4: - version "16.12.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c" - integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q== - read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" @@ -6531,7 +6333,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -6673,11 +6475,6 @@ require-main-filename@^1.0.1: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -6868,11 +6665,6 @@ semver-diff@^2.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== -semver@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -7262,15 +7054,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string_decoder@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" @@ -7306,13 +7089,6 @@ strip-ansi@^5.0.0: dependencies: ansi-regex "^4.0.0" -strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-bom@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" @@ -7442,19 +7218,6 @@ tar-stream@^1.1.2, tar-stream@^1.5.0: to-buffer "^1.1.1" xtend "^4.0.0" -tar@^4: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - teeny-request@^3.7.0: version "3.11.3" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" @@ -7914,7 +7677,7 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -walker@^1.0.7, walker@~1.0.5: +walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= @@ -8032,15 +7795,6 @@ wrap-ansi@^2.0.0: dependencies: string-width "^1.0.1" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -8125,7 +7879,7 @@ y18n@^3.2.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +"y18n@^3.2.1 || ^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -8135,11 +7889,6 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yargs-parser@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" @@ -8155,14 +7904,6 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs@3.32.0: version "3.32.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" @@ -8176,7 +7917,7 @@ yargs@3.32.0: window-size "^0.1.4" y18n "^3.2.0" -yargs@^12.0.5: +yargs@^12.0.2, yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -8194,22 +7935,6 @@ yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" -yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.1" - yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" From d12772e9a3032d03b28e4b77a0ef1dac3c42b6f4 Mon Sep 17 00:00:00 2001 From: Warren Maresca Date: Mon, 18 Nov 2019 15:22:29 -0500 Subject: [PATCH 22/23] Update lighthouse-core/lib/dependency-graph/base-node.js Co-Authored-By: Patrick Hulce --- lighthouse-core/lib/dependency-graph/base-node.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lighthouse-core/lib/dependency-graph/base-node.js b/lighthouse-core/lib/dependency-graph/base-node.js index ab9281b60524..af0dcb1fc3a8 100644 --- a/lighthouse-core/lib/dependency-graph/base-node.js +++ b/lighthouse-core/lib/dependency-graph/base-node.js @@ -91,6 +91,7 @@ class BaseNode { getNumberOfDependents() { return this._dependents.length; } + /** * @return {Node[]} */ From 0ff9818aa2e16432924f77bb43103f6d01550306 Mon Sep 17 00:00:00 2001 From: Warren Godone Maresca Date: Thu, 21 Nov 2019 11:28:16 -0500 Subject: [PATCH 23/23] Update lantern expecatations --- .../lantern-master-computed-values.json | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/lighthouse-core/test/fixtures/lantern-master-computed-values.json b/lighthouse-core/test/fixtures/lantern-master-computed-values.json index ec6b63803c8e..870f2e7e1ed2 100644 --- a/lighthouse-core/test/fixtures/lantern-master-computed-values.json +++ b/lighthouse-core/test/fixtures/lantern-master-computed-values.json @@ -1,8 +1,8 @@ { "sites": [ {"url": "https://flipkart.com", "roughEstimateOfFCP": 2661, "optimisticFCP": 2661, "pessimisticFCP": 2661, "roughEstimateOfFMP": 5860, "optimisticFMP": 5860, "pessimisticFMP": 5860, "roughEstimateOfTTI": 11388, "optimisticTTI": 10263, "pessimisticTTI": 12513, "roughEstimateOfTTFCPUI": 10263, "optimisticTTFCPUI": 10263, "pessimisticTTFCPUI": 12513, "roughEstimateOfSI": 6642, "optimisticSI": 3687, "pessimisticSI": 2661, "roughEstimateOfEIL": 766, "optimisticEIL": 957, "pessimisticEIL": 957}, - {"url": "https://vine.co/", "roughEstimateOfFCP": 1851, "optimisticFCP": 1851, "pessimisticFCP": 1851, "roughEstimateOfFMP": 4962, "optimisticFMP": 4962, "pessimisticFMP": 4962, "roughEstimateOfTTI": 7846, "optimisticTTI": 6822, "pessimisticTTI": 8869, "roughEstimateOfTTFCPUI": 6822, "optimisticTTFCPUI": 6822, "pessimisticTTFCPUI": 8869, "roughEstimateOfSI": 4097, "optimisticSI": 2246, "pessimisticSI": 1851, "roughEstimateOfEIL": 961, "optimisticEIL": 1202, "pessimisticEIL": 1202}, - {"url": "https://weather.com/", "roughEstimateOfFCP": 2461, "optimisticFCP": 2461, "pessimisticFCP": 2461, "roughEstimateOfFMP": 2461, "optimisticFMP": 2461, "pessimisticFMP": 2461, "roughEstimateOfTTI": 25680, "optimisticTTI": 23104, "pessimisticTTI": 28255, "roughEstimateOfTTFCPUI": 23104, "optimisticTTFCPUI": 23104, "pessimisticTTFCPUI": 28255, "roughEstimateOfSI": 4936, "optimisticSI": 2561, "pessimisticSI": 2461, "roughEstimateOfEIL": 2146, "optimisticEIL": 2683, "pessimisticEIL": 2683}, + {"url": "https://vine.co/", "roughEstimateOfFCP": 1851, "optimisticFCP": 1851, "pessimisticFCP": 1851, "roughEstimateOfFMP": 4962, "optimisticFMP": 4962, "pessimisticFMP": 4962, "roughEstimateOfTTI": 8572, "optimisticTTI": 8276, "pessimisticTTI": 8869, "roughEstimateOfTTFCPUI": 8276, "optimisticTTFCPUI": 8276, "pessimisticTTFCPUI": 8869, "roughEstimateOfSI": 4097, "optimisticSI": 2246, "pessimisticSI": 1851, "roughEstimateOfEIL": 961, "optimisticEIL": 1202, "pessimisticEIL": 1202}, + {"url": "https://weather.com/", "roughEstimateOfFCP": 2461, "optimisticFCP": 2461, "pessimisticFCP": 2461, "roughEstimateOfFMP": 2461, "optimisticFMP": 2461, "pessimisticFMP": 2461, "roughEstimateOfTTI": 25617, "optimisticTTI": 22804, "pessimisticTTI": 28429, "roughEstimateOfTTFCPUI": 22804, "optimisticTTFCPUI": 22804, "pessimisticTTFCPUI": 28429, "roughEstimateOfSI": 4936, "optimisticSI": 2561, "pessimisticSI": 2461, "roughEstimateOfEIL": 2146, "optimisticEIL": 2683, "pessimisticEIL": 2683}, {"url": "http://www.4399.com/", "roughEstimateOfFCP": 3254, "optimisticFCP": 3254, "pessimisticFCP": 3254, "roughEstimateOfFMP": 3585, "optimisticFMP": 3585, "pessimisticFMP": 3585, "roughEstimateOfTTI": 4875, "optimisticTTI": 3585, "pessimisticTTI": 6165, "roughEstimateOfTTFCPUI": 3585, "optimisticTTFCPUI": 3296, "pessimisticTTFCPUI": 6165, "roughEstimateOfSI": 3254, "optimisticSI": 350, "pessimisticSI": 3254, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.4shared.com/", "roughEstimateOfFCP": 4037, "optimisticFCP": 4037, "pessimisticFCP": 4037, "roughEstimateOfFMP": 4037, "optimisticFMP": 4037, "pessimisticFMP": 4037, "roughEstimateOfTTI": 5217, "optimisticTTI": 4973, "pessimisticTTI": 5460, "roughEstimateOfTTFCPUI": 4973, "optimisticTTFCPUI": 4973, "pessimisticTTFCPUI": 5460, "roughEstimateOfSI": 4427, "optimisticSI": 1467, "pessimisticSI": 4037, "roughEstimateOfEIL": 51, "optimisticEIL": 63, "pessimisticEIL": 63}, {"url": "http://www.56.com/", "roughEstimateOfFCP": 3894, "optimisticFCP": 3894, "pessimisticFCP": 3894, "roughEstimateOfFMP": 3894, "optimisticFMP": 3894, "pessimisticFMP": 3894, "roughEstimateOfTTI": 10587, "optimisticTTI": 4248, "pessimisticTTI": 16926, "roughEstimateOfTTFCPUI": 4248, "optimisticTTFCPUI": 4248, "pessimisticTTFCPUI": 2226, "roughEstimateOfSI": 10565, "optimisticSI": 5917, "pessimisticSI": 3894, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, @@ -11,36 +11,36 @@ {"url": "http://www.addthis.com/", "roughEstimateOfFCP": 2843, "optimisticFCP": 2843, "pessimisticFCP": 2843, "roughEstimateOfFMP": 2843, "optimisticFMP": 2843, "pessimisticFMP": 2843, "roughEstimateOfTTI": 9096, "optimisticTTI": 8167, "pessimisticTTI": 10026, "roughEstimateOfTTFCPUI": 8167, "optimisticTTFCPUI": 8167, "pessimisticTTFCPUI": 10026, "roughEstimateOfSI": 3731, "optimisticSI": 1524, "pessimisticSI": 2843, "roughEstimateOfEIL": 167, "optimisticEIL": 209, "pessimisticEIL": 209}, {"url": "http://www.alexa.com/", "roughEstimateOfFCP": 6525, "optimisticFCP": 6525, "pessimisticFCP": 6525, "roughEstimateOfFMP": 6847, "optimisticFMP": 6847, "pessimisticFMP": 6847, "roughEstimateOfTTI": 14402, "optimisticTTI": 13274, "pessimisticTTI": 15530, "roughEstimateOfTTFCPUI": 13274, "optimisticTTFCPUI": 13274, "pessimisticTTFCPUI": 15530, "roughEstimateOfSI": 7060, "optimisticSI": 2192, "pessimisticSI": 6525, "roughEstimateOfEIL": 416, "optimisticEIL": 520, "pessimisticEIL": 520}, {"url": "http://www.amazon.co.jp/", "roughEstimateOfFCP": 3059, "optimisticFCP": 3059, "pessimisticFCP": 3059, "roughEstimateOfFMP": 3163, "optimisticFMP": 3059, "pessimisticFMP": 3268, "roughEstimateOfTTI": 7491, "optimisticTTI": 6221, "pessimisticTTI": 8761, "roughEstimateOfTTFCPUI": 6221, "optimisticTTFCPUI": 6221, "pessimisticTTFCPUI": 8761, "roughEstimateOfSI": 4791, "optimisticSI": 2181, "pessimisticSI": 3059, "roughEstimateOfEIL": 262, "optimisticEIL": 328, "pessimisticEIL": 328}, - {"url": "http://www.att.com/", "roughEstimateOfFCP": 4945, "optimisticFCP": 4133, "pessimisticFCP": 5758, "roughEstimateOfFMP": 6114, "optimisticFMP": 4917, "pessimisticFMP": 7311, "roughEstimateOfTTI": 28951, "optimisticTTI": 24396, "pessimisticTTI": 33505, "roughEstimateOfTTFCPUI": 24396, "optimisticTTFCPUI": 24396, "pessimisticTTFCPUI": 33505, "roughEstimateOfSI": 16106, "optimisticSI": 9009, "pessimisticSI": 5758, "roughEstimateOfEIL": 1542, "optimisticEIL": 1928, "pessimisticEIL": 1928}, + {"url": "http://www.att.com/", "roughEstimateOfFCP": 4945, "optimisticFCP": 4133, "pessimisticFCP": 5758, "roughEstimateOfFMP": 6114, "optimisticFMP": 4917, "pessimisticFMP": 7311, "roughEstimateOfTTI": 28976, "optimisticTTI": 24646, "pessimisticTTI": 33306, "roughEstimateOfTTFCPUI": 24646, "optimisticTTFCPUI": 24646, "pessimisticTTFCPUI": 33306, "roughEstimateOfSI": 16106, "optimisticSI": 9009, "pessimisticSI": 5758, "roughEstimateOfEIL": 1542, "optimisticEIL": 1928, "pessimisticEIL": 1928}, {"url": "http://www.bing.com/", "roughEstimateOfFCP": 826, "optimisticFCP": 826, "pessimisticFCP": 826, "roughEstimateOfFMP": 1281, "optimisticFMP": 903, "pessimisticFMP": 1658, "roughEstimateOfTTI": 4849, "optimisticTTI": 4187, "pessimisticTTI": 5512, "roughEstimateOfTTFCPUI": 4187, "optimisticTTFCPUI": 4187, "pessimisticTTFCPUI": 5512, "roughEstimateOfSI": 2263, "optimisticSI": 1412, "pessimisticSI": 826, "roughEstimateOfEIL": 558, "optimisticEIL": 698, "pessimisticEIL": 698}, {"url": "http://www.blogspot.com/", "roughEstimateOfFCP": 3398, "optimisticFCP": 3398, "pessimisticFCP": 3398, "roughEstimateOfFMP": 3398, "optimisticFMP": 3398, "pessimisticFMP": 3398, "roughEstimateOfTTI": 3852, "optimisticTTI": 3794, "pessimisticTTI": 3910, "roughEstimateOfTTFCPUI": 3794, "optimisticTTFCPUI": 3794, "pessimisticTTFCPUI": 3910, "roughEstimateOfSI": 12140, "optimisticSI": 7272, "pessimisticSI": 3398, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.brothersoft.com/", "roughEstimateOfFCP": 1860, "optimisticFCP": 1764, "pessimisticFCP": 1956, "roughEstimateOfFMP": 2626, "optimisticFMP": 2626, "pessimisticFMP": 2626, "roughEstimateOfTTI": 15168, "optimisticTTI": 13200, "pessimisticTTI": 17136, "roughEstimateOfTTFCPUI": 13200, "optimisticTTFCPUI": 13200, "pessimisticTTFCPUI": 17136, "roughEstimateOfSI": 4244, "optimisticSI": 2302, "pessimisticSI": 1956, "roughEstimateOfEIL": 636, "optimisticEIL": 795, "pessimisticEIL": 795}, - {"url": "http://www.china.com.cn/", "roughEstimateOfFCP": 4814, "optimisticFCP": 4166, "pessimisticFCP": 5462, "roughEstimateOfFMP": 4814, "optimisticFMP": 4166, "pessimisticFMP": 5462, "roughEstimateOfTTI": 6893, "optimisticTTI": 4773, "pessimisticTTI": 9012, "roughEstimateOfTTFCPUI": 4814, "optimisticTTFCPUI": 4773, "pessimisticTTFCPUI": 2707, "roughEstimateOfSI": 8687, "optimisticSI": 3848, "pessimisticSI": 5462, "roughEstimateOfEIL": 20, "optimisticEIL": 25, "pessimisticEIL": 25}, - {"url": "http://www.cnet.com/", "roughEstimateOfFCP": 2162, "optimisticFCP": 1980, "pessimisticFCP": 2343, "roughEstimateOfFMP": 2512, "optimisticFMP": 1980, "pessimisticFMP": 3044, "roughEstimateOfTTI": 24972, "optimisticTTI": 20714, "pessimisticTTI": 29229, "roughEstimateOfTTFCPUI": 20714, "optimisticTTFCPUI": 20714, "pessimisticTTFCPUI": 29229, "roughEstimateOfSI": 4616, "optimisticSI": 2388, "pessimisticSI": 2343, "roughEstimateOfEIL": 1061, "optimisticEIL": 1326, "pessimisticEIL": 1326}, + {"url": "http://www.china.com.cn/", "roughEstimateOfFCP": 4814, "optimisticFCP": 4166, "pessimisticFCP": 5462, "roughEstimateOfFMP": 4814, "optimisticFMP": 4166, "pessimisticFMP": 5462, "roughEstimateOfTTI": 6899, "optimisticTTI": 4786, "pessimisticTTI": 9012, "roughEstimateOfTTFCPUI": 4814, "optimisticTTFCPUI": 4786, "pessimisticTTFCPUI": 2707, "roughEstimateOfSI": 8687, "optimisticSI": 3848, "pessimisticSI": 5462, "roughEstimateOfEIL": 21, "optimisticEIL": 26, "pessimisticEIL": 26}, + {"url": "http://www.cnet.com/", "roughEstimateOfFCP": 2162, "optimisticFCP": 1980, "pessimisticFCP": 2343, "roughEstimateOfFMP": 2512, "optimisticFMP": 1980, "pessimisticFMP": 3044, "roughEstimateOfTTI": 24713, "optimisticTTI": 20436, "pessimisticTTI": 28990, "roughEstimateOfTTFCPUI": 20436, "optimisticTTFCPUI": 20436, "pessimisticTTFCPUI": 12829, "roughEstimateOfSI": 4616, "optimisticSI": 2388, "pessimisticSI": 2343, "roughEstimateOfEIL": 1061, "optimisticEIL": 1326, "pessimisticEIL": 1326}, {"url": "http://www.cntv.cn/", "roughEstimateOfFCP": 3597, "optimisticFCP": 3597, "pessimisticFCP": 3597, "roughEstimateOfFMP": 3597, "optimisticFMP": 3597, "pessimisticFMP": 3597, "roughEstimateOfTTI": 3747, "optimisticTTI": 3597, "pessimisticTTI": 3897, "roughEstimateOfTTFCPUI": 3597, "optimisticTTFCPUI": 3597, "pessimisticTTFCPUI": 3897, "roughEstimateOfSI": 4475, "optimisticSI": 1705, "pessimisticSI": 3597, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.conduit.com/", "roughEstimateOfFCP": 2107, "optimisticFCP": 2107, "pessimisticFCP": 2107, "roughEstimateOfFMP": 2107, "optimisticFMP": 2107, "pessimisticFMP": 2107, "roughEstimateOfTTI": 2811, "optimisticTTI": 2409, "pessimisticTTI": 3212, "roughEstimateOfTTFCPUI": 2409, "optimisticTTFCPUI": 2409, "pessimisticTTFCPUI": 3212, "roughEstimateOfSI": 2929, "optimisticSI": 1292, "pessimisticSI": 2107, "roughEstimateOfEIL": 20, "optimisticEIL": 25, "pessimisticEIL": 25}, {"url": "http://www.craigslist.org/", "roughEstimateOfFCP": 3541, "optimisticFCP": 3534, "pessimisticFCP": 3548, "roughEstimateOfFMP": 5222, "optimisticFMP": 5101, "pessimisticFMP": 5343, "roughEstimateOfTTI": 5222, "optimisticTTI": 5101, "pessimisticTTI": 5343, "roughEstimateOfTTFCPUI": 5222, "optimisticTTFCPUI": 4801, "pessimisticTTFCPUI": 5343, "roughEstimateOfSI": 3925, "optimisticSI": 1334, "pessimisticSI": 3548, "roughEstimateOfEIL": 97, "optimisticEIL": 16, "pessimisticEIL": 227}, - {"url": "http://www.dawn.com/", "roughEstimateOfFCP": 3514, "optimisticFCP": 3295, "pessimisticFCP": 3733, "roughEstimateOfFMP": 3514, "optimisticFMP": 3295, "pessimisticFMP": 3733, "roughEstimateOfTTI": 16175, "optimisticTTI": 13751, "pessimisticTTI": 18599, "roughEstimateOfTTFCPUI": 13751, "optimisticTTFCPUI": 13751, "pessimisticTTFCPUI": 18599, "roughEstimateOfSI": 5317, "optimisticSI": 2243, "pessimisticSI": 3733, "roughEstimateOfEIL": 298, "optimisticEIL": 373, "pessimisticEIL": 373}, + {"url": "http://www.dawn.com/", "roughEstimateOfFCP": 3514, "optimisticFCP": 3295, "pessimisticFCP": 3733, "roughEstimateOfFMP": 3514, "optimisticFMP": 3295, "pessimisticFMP": 3733, "roughEstimateOfTTI": 16330, "optimisticTTI": 13859, "pessimisticTTI": 18801, "roughEstimateOfTTFCPUI": 13859, "optimisticTTFCPUI": 13859, "pessimisticTTFCPUI": 18801, "roughEstimateOfSI": 5317, "optimisticSI": 2243, "pessimisticSI": 3733, "roughEstimateOfEIL": 298, "optimisticEIL": 373, "pessimisticEIL": 373}, {"url": "http://www.depositfiles.com/", "roughEstimateOfFCP": 8437, "optimisticFCP": 8437, "pessimisticFCP": 8437, "roughEstimateOfFMP": 8437, "optimisticFMP": 8437, "pessimisticFMP": 8437, "roughEstimateOfTTI": 9701, "optimisticTTI": 9551, "pessimisticTTI": 9851, "roughEstimateOfTTFCPUI": 8437, "optimisticTTFCPUI": 1075, "pessimisticTTFCPUI": 1173, "roughEstimateOfSI": 13239, "optimisticSI": 5718, "pessimisticSI": 8437, "roughEstimateOfEIL": 273, "optimisticEIL": 341, "pessimisticEIL": 341}, - {"url": "http://www.deviantart.com/", "roughEstimateOfFCP": 4321, "optimisticFCP": 4321, "pessimisticFCP": 4321, "roughEstimateOfFMP": 5712, "optimisticFMP": 5712, "pessimisticFMP": 5712, "roughEstimateOfTTI": 32691, "optimisticTTI": 21101, "pessimisticTTI": 44282, "roughEstimateOfTTFCPUI": 9961, "optimisticTTFCPUI": 9961, "pessimisticTTFCPUI": 9961, "roughEstimateOfSI": 6071, "optimisticSI": 2509, "pessimisticSI": 4321, "roughEstimateOfEIL": 624, "optimisticEIL": 780, "pessimisticEIL": 780}, - {"url": "http://www.dion.ne.jp/", "roughEstimateOfFCP": 8384, "optimisticFCP": 5734, "pessimisticFCP": 11033, "roughEstimateOfFMP": 8384, "optimisticFMP": 5734, "pessimisticFMP": 11033, "roughEstimateOfTTI": 26723, "optimisticTTI": 14518, "pessimisticTTI": 38929, "roughEstimateOfTTFCPUI": 14518, "optimisticTTFCPUI": 14518, "pessimisticTTFCPUI": 26881, "roughEstimateOfSI": 18212, "optimisticSI": 8065, "pessimisticSI": 11033, "roughEstimateOfEIL": 1028, "optimisticEIL": 1285, "pessimisticEIL": 1285}, + {"url": "http://www.deviantart.com/", "roughEstimateOfFCP": 4321, "optimisticFCP": 4321, "pessimisticFCP": 4321, "roughEstimateOfFMP": 5712, "optimisticFMP": 5712, "pessimisticFMP": 5712, "roughEstimateOfTTI": 32702, "optimisticTTI": 21101, "pessimisticTTI": 44304, "roughEstimateOfTTFCPUI": 9961, "optimisticTTFCPUI": 9961, "pessimisticTTFCPUI": 9961, "roughEstimateOfSI": 6071, "optimisticSI": 2509, "pessimisticSI": 4321, "roughEstimateOfEIL": 624, "optimisticEIL": 780, "pessimisticEIL": 780}, + {"url": "http://www.dion.ne.jp/", "roughEstimateOfFCP": 8384, "optimisticFCP": 5734, "pessimisticFCP": 11033, "roughEstimateOfFMP": 8384, "optimisticFMP": 5734, "pessimisticFMP": 11033, "roughEstimateOfTTI": 26762, "optimisticTTI": 14595, "pessimisticTTI": 38929, "roughEstimateOfTTFCPUI": 14595, "optimisticTTFCPUI": 14595, "pessimisticTTFCPUI": 26881, "roughEstimateOfSI": 18212, "optimisticSI": 8065, "pessimisticSI": 11033, "roughEstimateOfEIL": 1028, "optimisticEIL": 1285, "pessimisticEIL": 1285}, {"url": "http://www.domaintools.com/", "roughEstimateOfFCP": 1599, "optimisticFCP": 1599, "pessimisticFCP": 1599, "roughEstimateOfFMP": 2750, "optimisticFMP": 2469, "pessimisticFMP": 3031, "roughEstimateOfTTI": 8329, "optimisticTTI": 8077, "pessimisticTTI": 8581, "roughEstimateOfTTFCPUI": 8077, "optimisticTTFCPUI": 8077, "pessimisticTTFCPUI": 8581, "roughEstimateOfSI": 9504, "optimisticSI": 6225, "pessimisticSI": 1599, "roughEstimateOfEIL": 920, "optimisticEIL": 617, "pessimisticEIL": 1682}, {"url": "http://www.douban.com/", "roughEstimateOfFCP": 6832, "optimisticFCP": 6832, "pessimisticFCP": 6832, "roughEstimateOfFMP": 6832, "optimisticFMP": 6832, "pessimisticFMP": 6832, "roughEstimateOfTTI": 7997, "optimisticTTI": 7676, "pessimisticTTI": 8318, "roughEstimateOfTTFCPUI": 7676, "optimisticTTFCPUI": 7676, "pessimisticTTFCPUI": 8318, "roughEstimateOfSI": 10560, "optimisticSI": 4549, "pessimisticSI": 6832, "roughEstimateOfEIL": 558, "optimisticEIL": 697, "pessimisticEIL": 697}, {"url": "http://www.ebay.com/", "roughEstimateOfFCP": 2985, "optimisticFCP": 2985, "pessimisticFCP": 2985, "roughEstimateOfFMP": 2985, "optimisticFMP": 2985, "pessimisticFMP": 2985, "roughEstimateOfTTI": 8555, "optimisticTTI": 7746, "pessimisticTTI": 9364, "roughEstimateOfTTFCPUI": 7746, "optimisticTTFCPUI": 7746, "pessimisticTTFCPUI": 9364, "roughEstimateOfSI": 4313, "optimisticSI": 1873, "pessimisticSI": 2985, "roughEstimateOfEIL": 187, "optimisticEIL": 233, "pessimisticEIL": 233}, {"url": "https://www.ebs.in/IPS/", "roughEstimateOfFCP": 6055, "optimisticFCP": 4233, "pessimisticFCP": 7876, "roughEstimateOfFMP": 6547, "optimisticFMP": 4461, "pessimisticFMP": 8633, "roughEstimateOfTTI": 14549, "optimisticTTI": 7912, "pessimisticTTI": 21185, "roughEstimateOfTTFCPUI": 7912, "optimisticTTFCPUI": 7912, "pessimisticTTFCPUI": 4400, "roughEstimateOfSI": 10318, "optimisticSI": 3892, "pessimisticSI": 7876, "roughEstimateOfEIL": 258, "optimisticEIL": 322, "pessimisticEIL": 322}, - {"url": "http://www.espn.com/", "roughEstimateOfFCP": 2706, "optimisticFCP": 2706, "pessimisticFCP": 2706, "roughEstimateOfFMP": 3653, "optimisticFMP": 2706, "pessimisticFMP": 4600, "roughEstimateOfTTI": 24654, "optimisticTTI": 21544, "pessimisticTTI": 27764, "roughEstimateOfTTFCPUI": 21544, "optimisticTTFCPUI": 21544, "pessimisticTTFCPUI": 26146, "roughEstimateOfSI": 4175, "optimisticSI": 1904, "pessimisticSI": 2706, "roughEstimateOfEIL": 1316, "optimisticEIL": 1645, "pessimisticEIL": 1645}, + {"url": "http://www.espn.com/", "roughEstimateOfFCP": 2706, "optimisticFCP": 2706, "pessimisticFCP": 2706, "roughEstimateOfFMP": 3653, "optimisticFMP": 2706, "pessimisticFMP": 4600, "roughEstimateOfTTI": 24664, "optimisticTTI": 21745, "pessimisticTTI": 27582, "roughEstimateOfTTFCPUI": 21745, "optimisticTTFCPUI": 21745, "pessimisticTTFCPUI": 25964, "roughEstimateOfSI": 4175, "optimisticSI": 1904, "pessimisticSI": 2706, "roughEstimateOfEIL": 1316, "optimisticEIL": 1645, "pessimisticEIL": 1645}, {"url": "http://www.facebook.com/", "roughEstimateOfFCP": 3485, "optimisticFCP": 3485, "pessimisticFCP": 3485, "roughEstimateOfFMP": 3485, "optimisticFMP": 3485, "pessimisticFMP": 3485, "roughEstimateOfTTI": 5230, "optimisticTTI": 4621, "pessimisticTTI": 5838, "roughEstimateOfTTFCPUI": 4621, "optimisticTTFCPUI": 4621, "pessimisticTTFCPUI": 5838, "roughEstimateOfSI": 4254, "optimisticSI": 1599, "pessimisticSI": 3485, "roughEstimateOfEIL": 65, "optimisticEIL": 82, "pessimisticEIL": 82}, {"url": "http://www.fc2.com/", "roughEstimateOfFCP": 3142, "optimisticFCP": 3142, "pessimisticFCP": 3142, "roughEstimateOfFMP": 3142, "optimisticFMP": 3142, "pessimisticFMP": 3142, "roughEstimateOfTTI": 3439, "optimisticTTI": 3340, "pessimisticTTI": 3538, "roughEstimateOfTTFCPUI": 3340, "optimisticTTFCPUI": 3340, "pessimisticTTFCPUI": 3538, "roughEstimateOfSI": 3816, "optimisticSI": 1446, "pessimisticSI": 3142, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, - {"url": "http://www.filestube.com/", "roughEstimateOfFCP": 9178, "optimisticFCP": 8943, "pessimisticFCP": 9414, "roughEstimateOfFMP": 10863, "optimisticFMP": 10463, "pessimisticFMP": 11262, "roughEstimateOfTTI": 24350, "optimisticTTI": 17388, "pessimisticTTI": 31311, "roughEstimateOfTTFCPUI": 17388, "optimisticTTFCPUI": 17388, "pessimisticTTFCPUI": 12474, "roughEstimateOfSI": 12986, "optimisticSI": 5083, "pessimisticSI": 9414, "roughEstimateOfEIL": 1198, "optimisticEIL": 1497, "pessimisticEIL": 1497}, - {"url": "http://www.foxnews.com/", "roughEstimateOfFCP": 3188, "optimisticFCP": 3188, "pessimisticFCP": 3188, "roughEstimateOfFMP": 3188, "optimisticFMP": 3188, "pessimisticFMP": 3188, "roughEstimateOfTTI": 30683, "optimisticTTI": 22636, "pessimisticTTI": 38731, "roughEstimateOfTTFCPUI": 22636, "optimisticTTFCPUI": 22636, "pessimisticTTFCPUI": 29570, "roughEstimateOfSI": 11505, "optimisticSI": 6916, "pessimisticSI": 3188, "roughEstimateOfEIL": 731, "optimisticEIL": 914, "pessimisticEIL": 914}, + {"url": "http://www.filestube.com/", "roughEstimateOfFCP": 9178, "optimisticFCP": 8943, "pessimisticFCP": 9414, "roughEstimateOfFMP": 10863, "optimisticFMP": 10463, "pessimisticFMP": 11262, "roughEstimateOfTTI": 24460, "optimisticTTI": 17529, "pessimisticTTI": 31390, "roughEstimateOfTTFCPUI": 17529, "optimisticTTFCPUI": 17529, "pessimisticTTFCPUI": 12401, "roughEstimateOfSI": 12986, "optimisticSI": 5083, "pessimisticSI": 9414, "roughEstimateOfEIL": 1198, "optimisticEIL": 1497, "pessimisticEIL": 1497}, + {"url": "http://www.foxnews.com/", "roughEstimateOfFCP": 3188, "optimisticFCP": 3188, "pessimisticFCP": 3188, "roughEstimateOfFMP": 3188, "optimisticFMP": 3188, "pessimisticFMP": 3188, "roughEstimateOfTTI": 30730, "optimisticTTI": 22745, "pessimisticTTI": 38715, "roughEstimateOfTTFCPUI": 22745, "optimisticTTFCPUI": 22745, "pessimisticTTFCPUI": 29689, "roughEstimateOfSI": 11505, "optimisticSI": 6916, "pessimisticSI": 3188, "roughEstimateOfEIL": 731, "optimisticEIL": 914, "pessimisticEIL": 914}, {"url": "http://www.getpersonas.com/", "roughEstimateOfFCP": 4232, "optimisticFCP": 4221, "pessimisticFCP": 4244, "roughEstimateOfFMP": 6497, "optimisticFMP": 6497, "pessimisticFMP": 6497, "roughEstimateOfTTI": 11146, "optimisticTTI": 9569, "pessimisticTTI": 12722, "roughEstimateOfTTFCPUI": 9569, "optimisticTTFCPUI": 9569, "pessimisticTTFCPUI": 12722, "roughEstimateOfSI": 4621, "optimisticSI": 1509, "pessimisticSI": 4244, "roughEstimateOfEIL": 1510, "optimisticEIL": 1888, "pessimisticEIL": 1888}, - {"url": "http://www.globo.com/", "roughEstimateOfFCP": 3289, "optimisticFCP": 3289, "pessimisticFCP": 3289, "roughEstimateOfFMP": 3733, "optimisticFMP": 3557, "pessimisticFMP": 3910, "roughEstimateOfTTI": 20256, "optimisticTTI": 17348, "pessimisticTTI": 23164, "roughEstimateOfTTFCPUI": 17348, "optimisticTTFCPUI": 17348, "pessimisticTTFCPUI": 23164, "roughEstimateOfSI": 4859, "optimisticSI": 2122, "pessimisticSI": 3289, "roughEstimateOfEIL": 2070, "optimisticEIL": 2588, "pessimisticEIL": 2588}, + {"url": "http://www.globo.com/", "roughEstimateOfFCP": 3289, "optimisticFCP": 3289, "pessimisticFCP": 3289, "roughEstimateOfFMP": 3733, "optimisticFMP": 3557, "pessimisticFMP": 3910, "roughEstimateOfTTI": 20082, "optimisticTTI": 17000, "pessimisticTTI": 23164, "roughEstimateOfTTFCPUI": 17000, "optimisticTTFCPUI": 17000, "pessimisticTTFCPUI": 23164, "roughEstimateOfSI": 4859, "optimisticSI": 2122, "pessimisticSI": 3289, "roughEstimateOfEIL": 2070, "optimisticEIL": 2588, "pessimisticEIL": 2588}, {"url": "http://www.gmx.net/", "roughEstimateOfFCP": 2029, "optimisticFCP": 2029, "pessimisticFCP": 2029, "roughEstimateOfFMP": 2029, "optimisticFMP": 2029, "pessimisticFMP": 2029, "roughEstimateOfTTI": 8828, "optimisticTTI": 7677, "pessimisticTTI": 9980, "roughEstimateOfTTFCPUI": 7677, "optimisticTTFCPUI": 7677, "pessimisticTTFCPUI": 9980, "roughEstimateOfSI": 5290, "optimisticSI": 3015, "pessimisticSI": 2029, "roughEstimateOfEIL": 453, "optimisticEIL": 566, "pessimisticEIL": 566}, {"url": "http://www.hatena.ne.jp/", "roughEstimateOfFCP": 1451, "optimisticFCP": 1325, "pessimisticFCP": 1576, "roughEstimateOfFMP": 1788, "optimisticFMP": 1788, "pessimisticFMP": 1788, "roughEstimateOfTTI": 24920, "optimisticTTI": 13420, "pessimisticTTI": 36420, "roughEstimateOfTTFCPUI": 13420, "optimisticTTFCPUI": 13420, "pessimisticTTFCPUI": 4439, "roughEstimateOfSI": 4725, "optimisticSI": 2821, "pessimisticSI": 1576, "roughEstimateOfEIL": 211, "optimisticEIL": 264, "pessimisticEIL": 264}, {"url": "http://www.hexun.com/", "roughEstimateOfFCP": 4178, "optimisticFCP": 4178, "pessimisticFCP": 4178, "roughEstimateOfFMP": 5394, "optimisticFMP": 4178, "pessimisticFMP": 6609, "roughEstimateOfTTI": 6974, "optimisticTTI": 6840, "pessimisticTTI": 7107, "roughEstimateOfTTFCPUI": 6840, "optimisticTTFCPUI": 6840, "pessimisticTTFCPUI": 7107, "roughEstimateOfSI": 13345, "optimisticSI": 7771, "pessimisticSI": 4178, "roughEstimateOfEIL": 42, "optimisticEIL": 16, "pessimisticEIL": 88}, {"url": "http://www.hotfile.com/", "roughEstimateOfFCP": 5063, "optimisticFCP": 4434, "pessimisticFCP": 5692, "roughEstimateOfFMP": 5063, "optimisticFMP": 4434, "pessimisticFMP": 5692, "roughEstimateOfTTI": 7976, "optimisticTTI": 6213, "pessimisticTTI": 9740, "roughEstimateOfTTFCPUI": 6213, "optimisticTTFCPUI": 6213, "pessimisticTTFCPUI": 9740, "roughEstimateOfSI": 10180, "optimisticSI": 4807, "pessimisticSI": 5692, "roughEstimateOfEIL": 104, "optimisticEIL": 126, "pessimisticEIL": 134}, {"url": "http://www.hp.com/", "roughEstimateOfFCP": 8465, "optimisticFCP": 6953, "pessimisticFCP": 9978, "roughEstimateOfFMP": 9844, "optimisticFMP": 8298, "pessimisticFMP": 11390, "roughEstimateOfTTI": 17358, "optimisticTTI": 15882, "pessimisticTTI": 18834, "roughEstimateOfTTFCPUI": 15882, "optimisticTTFCPUI": 15882, "pessimisticTTFCPUI": 18834, "roughEstimateOfSI": 9592, "optimisticSI": 2398, "pessimisticSI": 9978, "roughEstimateOfEIL": 333, "optimisticEIL": 315, "pessimisticEIL": 517}, - {"url": "http://www.huffingtonpost.com/", "roughEstimateOfFCP": 3346, "optimisticFCP": 3346, "pessimisticFCP": 3346, "roughEstimateOfFMP": 3346, "optimisticFMP": 3346, "pessimisticFMP": 3346, "roughEstimateOfTTI": 20925, "optimisticTTI": 17455, "pessimisticTTI": 24396, "roughEstimateOfTTFCPUI": 17455, "optimisticTTFCPUI": 17455, "pessimisticTTFCPUI": 16115, "roughEstimateOfSI": 4689, "optimisticSI": 1974, "pessimisticSI": 3346, "roughEstimateOfEIL": 337, "optimisticEIL": 421, "pessimisticEIL": 421}, + {"url": "http://www.huffingtonpost.com/", "roughEstimateOfFCP": 3346, "optimisticFCP": 3346, "pessimisticFCP": 3346, "roughEstimateOfFMP": 3346, "optimisticFMP": 3346, "pessimisticFMP": 3346, "roughEstimateOfTTI": 20925, "optimisticTTI": 17455, "pessimisticTTI": 24396, "roughEstimateOfTTFCPUI": 17455, "optimisticTTFCPUI": 17455, "pessimisticTTFCPUI": 16843, "roughEstimateOfSI": 4689, "optimisticSI": 1974, "pessimisticSI": 3346, "roughEstimateOfEIL": 337, "optimisticEIL": 421, "pessimisticEIL": 421}, {"url": "http://www.hulu.com/", "roughEstimateOfFCP": 12256, "optimisticFCP": 9521, "pessimisticFCP": 14992, "roughEstimateOfFMP": 14218, "optimisticFMP": 10495, "pessimisticFMP": 17940, "roughEstimateOfTTI": 23027, "optimisticTTI": 20599, "pessimisticTTI": 25456, "roughEstimateOfTTFCPUI": 20599, "optimisticTTFCPUI": 20599, "pessimisticTTFCPUI": 25456, "roughEstimateOfSI": 15256, "optimisticSI": 4115, "pessimisticSI": 14992, "roughEstimateOfEIL": 1254, "optimisticEIL": 1300, "pessimisticEIL": 1835}, {"url": "http://www.iciba.com/", "roughEstimateOfFCP": 1445, "optimisticFCP": 1445, "pessimisticFCP": 1445, "roughEstimateOfFMP": 1445, "optimisticFMP": 1445, "pessimisticFMP": 1445, "roughEstimateOfTTI": 3517, "optimisticTTI": 3030, "pessimisticTTI": 4004, "roughEstimateOfTTFCPUI": 3030, "optimisticTTFCPUI": 3030, "pessimisticTTFCPUI": 4004, "roughEstimateOfSI": 5012, "optimisticSI": 3088, "pessimisticSI": 1445, "roughEstimateOfEIL": 394, "optimisticEIL": 492, "pessimisticEIL": 492}, {"url": "http://www.ifeng.com/", "roughEstimateOfFCP": 3576, "optimisticFCP": 3534, "pessimisticFCP": 3619, "roughEstimateOfFMP": 3576, "optimisticFMP": 3534, "pessimisticFMP": 3619, "roughEstimateOfTTI": 5355, "optimisticTTI": 3534, "pessimisticTTI": 7177, "roughEstimateOfTTFCPUI": 3576, "optimisticTTFCPUI": 3494, "pessimisticTTFCPUI": 7177, "roughEstimateOfSI": 3576, "optimisticSI": 879, "pessimisticSI": 3619, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, @@ -49,54 +49,54 @@ {"url": "http://www.java.com/", "roughEstimateOfFCP": 1268, "optimisticFCP": 1268, "pessimisticFCP": 1268, "roughEstimateOfFMP": 1268, "optimisticFMP": 1268, "pessimisticFMP": 1268, "roughEstimateOfTTI": 3189, "optimisticTTI": 2510, "pessimisticTTI": 3868, "roughEstimateOfTTFCPUI": 2510, "optimisticTTFCPUI": 2510, "pessimisticTTFCPUI": 3868, "roughEstimateOfSI": 2372, "optimisticSI": 1284, "pessimisticSI": 1268, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.linkedin.com/", "roughEstimateOfFCP": 4621, "optimisticFCP": 4621, "pessimisticFCP": 4621, "roughEstimateOfFMP": 4621, "optimisticFMP": 4621, "pessimisticFMP": 4621, "roughEstimateOfTTI": 5034, "optimisticTTI": 4875, "pessimisticTTI": 5193, "roughEstimateOfTTFCPUI": 4875, "optimisticTTFCPUI": 4875, "pessimisticTTFCPUI": 5193, "roughEstimateOfSI": 4621, "optimisticSI": 1074, "pessimisticSI": 4621, "roughEstimateOfEIL": 1598, "optimisticEIL": 1998, "pessimisticEIL": 1998}, {"url": "http://www.livedoor.jp/", "roughEstimateOfFCP": 3084, "optimisticFCP": 3084, "pessimisticFCP": 3084, "roughEstimateOfFMP": 3084, "optimisticFMP": 3084, "pessimisticFMP": 3084, "roughEstimateOfTTI": 15652, "optimisticTTI": 12720, "pessimisticTTI": 18583, "roughEstimateOfTTFCPUI": 12720, "optimisticTTFCPUI": 12720, "pessimisticTTFCPUI": 18583, "roughEstimateOfSI": 7718, "optimisticSI": 4260, "pessimisticSI": 3084, "roughEstimateOfEIL": 246, "optimisticEIL": 307, "pessimisticEIL": 307}, - {"url": "http://www.liveperson.net/", "roughEstimateOfFCP": 11037, "optimisticFCP": 10841, "pessimisticFCP": 11234, "roughEstimateOfFMP": 11724, "optimisticFMP": 11626, "pessimisticFMP": 11822, "roughEstimateOfTTI": 25782, "optimisticTTI": 19603, "pessimisticTTI": 31961, "roughEstimateOfTTFCPUI": 11724, "optimisticTTFCPUI": 10882, "pessimisticTTFCPUI": 14138, "roughEstimateOfSI": 11037, "optimisticSI": 2248, "pessimisticSI": 11234, "roughEstimateOfEIL": 370, "optimisticEIL": 463, "pessimisticEIL": 463}, + {"url": "http://www.liveperson.net/", "roughEstimateOfFCP": 11037, "optimisticFCP": 10841, "pessimisticFCP": 11234, "roughEstimateOfFMP": 11724, "optimisticFMP": 11626, "pessimisticFMP": 11822, "roughEstimateOfTTI": 25684, "optimisticTTI": 19407, "pessimisticTTI": 31961, "roughEstimateOfTTFCPUI": 11724, "optimisticTTFCPUI": 10882, "pessimisticTTFCPUI": 14211, "roughEstimateOfSI": 11037, "optimisticSI": 2248, "pessimisticSI": 11234, "roughEstimateOfEIL": 370, "optimisticEIL": 463, "pessimisticEIL": 463}, {"url": "http://www.mail.ru/", "roughEstimateOfFCP": 5150, "optimisticFCP": 5150, "pessimisticFCP": 5150, "roughEstimateOfFMP": 5150, "optimisticFMP": 5150, "pessimisticFMP": 5150, "roughEstimateOfTTI": 10964, "optimisticTTI": 9846, "pessimisticTTI": 12082, "roughEstimateOfTTFCPUI": 9846, "optimisticTTFCPUI": 9846, "pessimisticTTFCPUI": 12082, "roughEstimateOfSI": 8487, "optimisticSI": 3849, "pessimisticSI": 5150, "roughEstimateOfEIL": 38, "optimisticEIL": 48, "pessimisticEIL": 48}, {"url": "http://www.maktoob.com/", "roughEstimateOfFCP": 4278, "optimisticFCP": 4278, "pessimisticFCP": 4278, "roughEstimateOfFMP": 4278, "optimisticFMP": 4278, "pessimisticFMP": 4278, "roughEstimateOfTTI": 11438, "optimisticTTI": 10732, "pessimisticTTI": 12145, "roughEstimateOfTTFCPUI": 10732, "optimisticTTFCPUI": 10732, "pessimisticTTFCPUI": 12145, "roughEstimateOfSI": 5496, "optimisticSI": 2118, "pessimisticSI": 4278, "roughEstimateOfEIL": 265, "optimisticEIL": 332, "pessimisticEIL": 332}, {"url": "http://www.marketgid.com/", "roughEstimateOfFCP": 3552, "optimisticFCP": 3552, "pessimisticFCP": 3552, "roughEstimateOfFMP": 6083, "optimisticFMP": 6083, "pessimisticFMP": 6083, "roughEstimateOfTTI": 8648, "optimisticTTI": 7823, "pessimisticTTI": 9473, "roughEstimateOfTTFCPUI": 7823, "optimisticTTFCPUI": 7823, "pessimisticTTFCPUI": 9473, "roughEstimateOfSI": 5185, "optimisticSI": 2233, "pessimisticSI": 3552, "roughEstimateOfEIL": 226, "optimisticEIL": 283, "pessimisticEIL": 283}, - {"url": "http://www.metacafe.com/", "roughEstimateOfFCP": 1848, "optimisticFCP": 1848, "pessimisticFCP": 1848, "roughEstimateOfFMP": 2048, "optimisticFMP": 2047, "pessimisticFMP": 2049, "roughEstimateOfTTI": 15342, "optimisticTTI": 13549, "pessimisticTTI": 17134, "roughEstimateOfTTFCPUI": 13549, "optimisticTTFCPUI": 13549, "pessimisticTTFCPUI": 17134, "roughEstimateOfSI": 2902, "optimisticSI": 1393, "pessimisticSI": 1848, "roughEstimateOfEIL": 361, "optimisticEIL": 451, "pessimisticEIL": 451}, - {"url": "http://www.metrolyrics.com/", "roughEstimateOfFCP": 3155, "optimisticFCP": 3056, "pessimisticFCP": 3254, "roughEstimateOfFMP": 3155, "optimisticFMP": 3056, "pessimisticFMP": 3254, "roughEstimateOfTTI": 57192, "optimisticTTI": 39593, "pessimisticTTI": 74790, "roughEstimateOfTTFCPUI": 39593, "optimisticTTFCPUI": 39593, "pessimisticTTFCPUI": 15704, "roughEstimateOfSI": 15355, "optimisticSI": 9636, "pessimisticSI": 3254, "roughEstimateOfEIL": 1134, "optimisticEIL": 1417, "pessimisticEIL": 1417}, - {"url": "http://www.mlb.com/", "roughEstimateOfFCP": 3023, "optimisticFCP": 2724, "pessimisticFCP": 3322, "roughEstimateOfFMP": 3023, "optimisticFMP": 2724, "pessimisticFMP": 3322, "roughEstimateOfTTI": 30460, "optimisticTTI": 26219, "pessimisticTTI": 34700, "roughEstimateOfTTFCPUI": 8141, "optimisticTTFCPUI": 8141, "pessimisticTTFCPUI": 8792, "roughEstimateOfSI": 7632, "optimisticSI": 4088, "pessimisticSI": 3322, "roughEstimateOfEIL": 689, "optimisticEIL": 861, "pessimisticEIL": 861}, + {"url": "http://www.metacafe.com/", "roughEstimateOfFCP": 1848, "optimisticFCP": 1848, "pessimisticFCP": 1848, "roughEstimateOfFMP": 2048, "optimisticFMP": 2047, "pessimisticFMP": 2049, "roughEstimateOfTTI": 15374, "optimisticTTI": 13549, "pessimisticTTI": 17199, "roughEstimateOfTTFCPUI": 13549, "optimisticTTFCPUI": 13549, "pessimisticTTFCPUI": 17199, "roughEstimateOfSI": 2902, "optimisticSI": 1393, "pessimisticSI": 1848, "roughEstimateOfEIL": 361, "optimisticEIL": 451, "pessimisticEIL": 451}, + {"url": "http://www.metrolyrics.com/", "roughEstimateOfFCP": 3155, "optimisticFCP": 3056, "pessimisticFCP": 3254, "roughEstimateOfFMP": 3155, "optimisticFMP": 3056, "pessimisticFMP": 3254, "roughEstimateOfTTI": 57137, "optimisticTTI": 39364, "pessimisticTTI": 74910, "roughEstimateOfTTFCPUI": 39364, "optimisticTTFCPUI": 39364, "pessimisticTTFCPUI": 15688, "roughEstimateOfSI": 15355, "optimisticSI": 9636, "pessimisticSI": 3254, "roughEstimateOfEIL": 1134, "optimisticEIL": 1417, "pessimisticEIL": 1417}, + {"url": "http://www.mlb.com/", "roughEstimateOfFCP": 3023, "optimisticFCP": 2724, "pessimisticFCP": 3322, "roughEstimateOfFMP": 3023, "optimisticFMP": 2724, "pessimisticFMP": 3322, "roughEstimateOfTTI": 30506, "optimisticTTI": 26178, "pessimisticTTI": 34834, "roughEstimateOfTTFCPUI": 26178, "optimisticTTFCPUI": 26178, "pessimisticTTFCPUI": 8739, "roughEstimateOfSI": 7632, "optimisticSI": 4088, "pessimisticSI": 3322, "roughEstimateOfEIL": 689, "optimisticEIL": 861, "pessimisticEIL": 861}, {"url": "http://www.mop.com/", "roughEstimateOfFCP": 6918, "optimisticFCP": 6380, "pessimisticFCP": 7456, "roughEstimateOfFMP": 6918, "optimisticFMP": 6380, "pessimisticFMP": 7456, "roughEstimateOfTTI": 21136, "optimisticTTI": 10735, "pessimisticTTI": 31536, "roughEstimateOfTTFCPUI": 10735, "optimisticTTFCPUI": 10735, "pessimisticTTFCPUI": 3194, "roughEstimateOfSI": 10204, "optimisticSI": 4006, "pessimisticSI": 7456, "roughEstimateOfEIL": 828, "optimisticEIL": 1035, "pessimisticEIL": 1035}, {"url": "http://www.mozilla.org/", "roughEstimateOfFCP": 2111, "optimisticFCP": 1755, "pessimisticFCP": 2466, "roughEstimateOfFMP": 2487, "optimisticFMP": 1755, "pessimisticFMP": 3219, "roughEstimateOfTTI": 4300, "optimisticTTI": 4150, "pessimisticTTI": 4449, "roughEstimateOfTTFCPUI": 4150, "optimisticTTFCPUI": 4150, "pessimisticTTFCPUI": 4449, "roughEstimateOfSI": 2993, "optimisticSI": 1172, "pessimisticSI": 2466, "roughEstimateOfEIL": 842, "optimisticEIL": 1053, "pessimisticEIL": 1053}, - {"url": "http://www.msn.com/", "roughEstimateOfFCP": 2465, "optimisticFCP": 2465, "pessimisticFCP": 2465, "roughEstimateOfFMP": 2563, "optimisticFMP": 2465, "pessimisticFMP": 2661, "roughEstimateOfTTI": 11341, "optimisticTTI": 9536, "pessimisticTTI": 13147, "roughEstimateOfTTFCPUI": 9536, "optimisticTTFCPUI": 9536, "pessimisticTTFCPUI": 13147, "roughEstimateOfSI": 4081, "optimisticSI": 1949, "pessimisticSI": 2465, "roughEstimateOfEIL": 283, "optimisticEIL": 353, "pessimisticEIL": 353}, + {"url": "http://www.msn.com/", "roughEstimateOfFCP": 2465, "optimisticFCP": 2465, "pessimisticFCP": 2465, "roughEstimateOfFMP": 2563, "optimisticFMP": 2465, "pessimisticFMP": 2661, "roughEstimateOfTTI": 11474, "optimisticTTI": 9673, "pessimisticTTI": 13274, "roughEstimateOfTTFCPUI": 9673, "optimisticTTFCPUI": 9673, "pessimisticTTFCPUI": 13274, "roughEstimateOfSI": 4081, "optimisticSI": 1949, "pessimisticSI": 2465, "roughEstimateOfEIL": 283, "optimisticEIL": 353, "pessimisticEIL": 353}, {"url": "http://www.netflix.com/", "roughEstimateOfFCP": 2909, "optimisticFCP": 2909, "pessimisticFCP": 2909, "roughEstimateOfFMP": 2909, "optimisticFMP": 2909, "pessimisticFMP": 2909, "roughEstimateOfTTI": 6172, "optimisticTTI": 5613, "pessimisticTTI": 6731, "roughEstimateOfTTFCPUI": 5613, "optimisticTTFCPUI": 5613, "pessimisticTTFCPUI": 6731, "roughEstimateOfSI": 3620, "optimisticSI": 1413, "pessimisticSI": 2909, "roughEstimateOfEIL": 98, "optimisticEIL": 123, "pessimisticEIL": 123}, {"url": "http://www.nih.gov/", "roughEstimateOfFCP": 4440, "optimisticFCP": 3999, "pessimisticFCP": 4882, "roughEstimateOfFMP": 4440, "optimisticFMP": 3999, "pessimisticFMP": 4882, "roughEstimateOfTTI": 6450, "optimisticTTI": 5884, "pessimisticTTI": 7016, "roughEstimateOfTTFCPUI": 5884, "optimisticTTFCPUI": 5884, "pessimisticTTFCPUI": 7016, "roughEstimateOfSI": 6852, "optimisticSI": 2807, "pessimisticSI": 4882, "roughEstimateOfEIL": 129, "optimisticEIL": 162, "pessimisticEIL": 162}, {"url": "http://www.ning.com/", "roughEstimateOfFCP": 2711, "optimisticFCP": 2711, "pessimisticFCP": 2711, "roughEstimateOfFMP": 3004, "optimisticFMP": 3004, "pessimisticFMP": 3004, "roughEstimateOfTTI": 13436, "optimisticTTI": 11659, "pessimisticTTI": 15214, "roughEstimateOfTTFCPUI": 11659, "optimisticTTFCPUI": 11659, "pessimisticTTFCPUI": 15214, "roughEstimateOfSI": 3793, "optimisticSI": 1629, "pessimisticSI": 2711, "roughEstimateOfEIL": 274, "optimisticEIL": 343, "pessimisticEIL": 343}, {"url": "http://www.nokia.com/", "roughEstimateOfFCP": 5687, "optimisticFCP": 5687, "pessimisticFCP": 5687, "roughEstimateOfFMP": 5888, "optimisticFMP": 5888, "pessimisticFMP": 5888, "roughEstimateOfTTI": 12469, "optimisticTTI": 11132, "pessimisticTTI": 13806, "roughEstimateOfTTFCPUI": 11132, "optimisticTTFCPUI": 11132, "pessimisticTTFCPUI": 13806, "roughEstimateOfSI": 6343, "optimisticSI": 2069, "pessimisticSI": 5687, "roughEstimateOfEIL": 211, "optimisticEIL": 264, "pessimisticEIL": 264}, {"url": "http://www.ocn.ne.jp/", "roughEstimateOfFCP": 3343, "optimisticFCP": 3343, "pessimisticFCP": 3343, "roughEstimateOfFMP": 3343, "optimisticFMP": 3343, "pessimisticFMP": 3343, "roughEstimateOfTTI": 7955, "optimisticTTI": 6702, "pessimisticTTI": 9208, "roughEstimateOfTTFCPUI": 6702, "optimisticTTFCPUI": 6702, "pessimisticTTFCPUI": 9208, "roughEstimateOfSI": 5896, "optimisticSI": 2838, "pessimisticSI": 3343, "roughEstimateOfEIL": 75, "optimisticEIL": 94, "pessimisticEIL": 94}, - {"url": "http://www.onet.pl/", "roughEstimateOfFCP": 4214, "optimisticFCP": 4062, "pessimisticFCP": 4365, "roughEstimateOfFMP": 5121, "optimisticFMP": 4970, "pessimisticFMP": 5273, "roughEstimateOfTTI": 20422, "optimisticTTI": 14282, "pessimisticTTI": 26561, "roughEstimateOfTTFCPUI": 14282, "optimisticTTFCPUI": 14282, "pessimisticTTFCPUI": 14275, "roughEstimateOfSI": 15188, "optimisticSI": 9001, "pessimisticSI": 4365, "roughEstimateOfEIL": 1150, "optimisticEIL": 1437, "pessimisticEIL": 1437}, + {"url": "http://www.onet.pl/", "roughEstimateOfFCP": 4214, "optimisticFCP": 4062, "pessimisticFCP": 4365, "roughEstimateOfFMP": 5121, "optimisticFMP": 4970, "pessimisticFMP": 5273, "roughEstimateOfTTI": 20498, "optimisticTTI": 14434, "pessimisticTTI": 26561, "roughEstimateOfTTFCPUI": 14434, "optimisticTTFCPUI": 14434, "pessimisticTTFCPUI": 14142, "roughEstimateOfSI": 15188, "optimisticSI": 9001, "pessimisticSI": 4365, "roughEstimateOfEIL": 1150, "optimisticEIL": 1437, "pessimisticEIL": 1437}, {"url": "http://www.optmd.com/", "roughEstimateOfFCP": 1065, "optimisticFCP": 960, "pessimisticFCP": 1170, "roughEstimateOfFMP": 1065, "optimisticFMP": 960, "pessimisticFMP": 1170, "roughEstimateOfTTI": 1072, "optimisticTTI": 974, "pessimisticTTI": 1170, "roughEstimateOfTTFCPUI": 1065, "optimisticTTFCPUI": 974, "pessimisticTTFCPUI": 1018, "roughEstimateOfSI": 1269, "optimisticSI": 542, "pessimisticSI": 1170, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, - {"url": "http://www.orange.fr/", "roughEstimateOfFCP": 3776, "optimisticFCP": 3219, "pessimisticFCP": 4333, "roughEstimateOfFMP": 3892, "optimisticFMP": 3219, "pessimisticFMP": 4565, "roughEstimateOfTTI": 15250, "optimisticTTI": 12350, "pessimisticTTI": 18150, "roughEstimateOfTTFCPUI": 12350, "optimisticTTFCPUI": 12350, "pessimisticTTFCPUI": 18150, "roughEstimateOfSI": 9160, "optimisticSI": 4710, "pessimisticSI": 4333, "roughEstimateOfEIL": 433, "optimisticEIL": 541, "pessimisticEIL": 541}, + {"url": "http://www.orange.fr/", "roughEstimateOfFCP": 3776, "optimisticFCP": 3219, "pessimisticFCP": 4333, "roughEstimateOfFMP": 3892, "optimisticFMP": 3219, "pessimisticFMP": 4565, "roughEstimateOfTTI": 15495, "optimisticTTI": 12655, "pessimisticTTI": 18336, "roughEstimateOfTTFCPUI": 12655, "optimisticTTFCPUI": 12655, "pessimisticTTFCPUI": 18336, "roughEstimateOfSI": 9160, "optimisticSI": 4710, "pessimisticSI": 4333, "roughEstimateOfEIL": 433, "optimisticEIL": 541, "pessimisticEIL": 541}, {"url": "http://www.orkut.com/", "roughEstimateOfFCP": 1463, "optimisticFCP": 1420, "pessimisticFCP": 1506, "roughEstimateOfFMP": 1463, "optimisticFMP": 1420, "pessimisticFMP": 1506, "roughEstimateOfTTI": 2036, "optimisticTTI": 2036, "pessimisticTTI": 2036, "roughEstimateOfTTFCPUI": 2036, "optimisticTTFCPUI": 2036, "pessimisticTTFCPUI": 2036, "roughEstimateOfSI": 1952, "optimisticSI": 873, "pessimisticSI": 1506, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.partypoker.com/", "roughEstimateOfFCP": 5630, "optimisticFCP": 5484, "pessimisticFCP": 5776, "roughEstimateOfFMP": 5630, "optimisticFMP": 5484, "pessimisticFMP": 5776, "roughEstimateOfTTI": 17073, "optimisticTTI": 13145, "pessimisticTTI": 21001, "roughEstimateOfTTFCPUI": 13145, "optimisticTTFCPUI": 13145, "pessimisticTTFCPUI": 12013, "roughEstimateOfSI": 10885, "optimisticSI": 5272, "pessimisticSI": 5776, "roughEstimateOfEIL": 220, "optimisticEIL": 275, "pessimisticEIL": 275}, {"url": "http://www.pcpop.com/", "roughEstimateOfFCP": 2710, "optimisticFCP": 2710, "pessimisticFCP": 2711, "roughEstimateOfFMP": 2710, "optimisticFMP": 2710, "pessimisticFMP": 2711, "roughEstimateOfTTI": 7595, "optimisticTTI": 4791, "pessimisticTTI": 10400, "roughEstimateOfTTFCPUI": 4791, "optimisticTTFCPUI": 4791, "pessimisticTTFCPUI": 10400, "roughEstimateOfSI": 5771, "optimisticSI": 3042, "pessimisticSI": 2711, "roughEstimateOfEIL": 80, "optimisticEIL": 100, "pessimisticEIL": 100}, {"url": "http://www.pdfqueen.com/", "roughEstimateOfFCP": 2549, "optimisticFCP": 2271, "pessimisticFCP": 2828, "roughEstimateOfFMP": 2549, "optimisticFMP": 2271, "pessimisticFMP": 2828, "roughEstimateOfTTI": 3953, "optimisticTTI": 3803, "pessimisticTTI": 4103, "roughEstimateOfTTFCPUI": 3803, "optimisticTTFCPUI": 3803, "pessimisticTTFCPUI": 4103, "roughEstimateOfSI": 2730, "optimisticSI": 816, "pessimisticSI": 2828, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.pptv.com/", "roughEstimateOfFCP": 2925, "optimisticFCP": 2925, "pessimisticFCP": 2925, "roughEstimateOfFMP": 2925, "optimisticFMP": 2925, "pessimisticFMP": 2925, "roughEstimateOfTTI": 8687, "optimisticTTI": 6979, "pessimisticTTI": 10394, "roughEstimateOfTTFCPUI": 6979, "optimisticTTFCPUI": 6979, "pessimisticTTFCPUI": 10394, "roughEstimateOfSI": 11800, "optimisticSI": 7249, "pessimisticSI": 2925, "roughEstimateOfEIL": 623, "optimisticEIL": 779, "pessimisticEIL": 779}, {"url": "http://www.rakuten.co.jp/", "roughEstimateOfFCP": 3655, "optimisticFCP": 3655, "pessimisticFCP": 3655, "roughEstimateOfFMP": 3655, "optimisticFMP": 3655, "pessimisticFMP": 3655, "roughEstimateOfTTI": 22747, "optimisticTTI": 13628, "pessimisticTTI": 31866, "roughEstimateOfTTFCPUI": 13628, "optimisticTTFCPUI": 13628, "pessimisticTTFCPUI": 20858, "roughEstimateOfSI": 5651, "optimisticSI": 2518, "pessimisticSI": 3655, "roughEstimateOfEIL": 1283, "optimisticEIL": 1604, "pessimisticEIL": 1604}, - {"url": "http://www.rakuten.ne.jp/", "roughEstimateOfFCP": 2750, "optimisticFCP": 2686, "pessimisticFCP": 2813, "roughEstimateOfFMP": 2750, "optimisticFMP": 2686, "pessimisticFMP": 2813, "roughEstimateOfTTI": 23108, "optimisticTTI": 13257, "pessimisticTTI": 32958, "roughEstimateOfTTFCPUI": 13257, "optimisticTTFCPUI": 13257, "pessimisticTTFCPUI": 18764, "roughEstimateOfSI": 4733, "optimisticSI": 2253, "pessimisticSI": 2813, "roughEstimateOfEIL": 1719, "optimisticEIL": 2149, "pessimisticEIL": 2149}, - {"url": "http://www.scribd.com/", "roughEstimateOfFCP": 2622, "optimisticFCP": 2622, "pessimisticFCP": 2622, "roughEstimateOfFMP": 3810, "optimisticFMP": 3810, "pessimisticFMP": 3810, "roughEstimateOfTTI": 12577, "optimisticTTI": 11222, "pessimisticTTI": 13931, "roughEstimateOfTTFCPUI": 11222, "optimisticTTFCPUI": 11222, "pessimisticTTFCPUI": 13931, "roughEstimateOfSI": 3776, "optimisticSI": 1658, "pessimisticSI": 2622, "roughEstimateOfEIL": 833, "optimisticEIL": 1041, "pessimisticEIL": 1041}, + {"url": "http://www.rakuten.ne.jp/", "roughEstimateOfFCP": 2750, "optimisticFCP": 2686, "pessimisticFCP": 2813, "roughEstimateOfFMP": 2750, "optimisticFMP": 2686, "pessimisticFMP": 2813, "roughEstimateOfTTI": 23769, "optimisticTTI": 14376, "pessimisticTTI": 33161, "roughEstimateOfTTFCPUI": 14376, "optimisticTTFCPUI": 14376, "pessimisticTTFCPUI": 18994, "roughEstimateOfSI": 4733, "optimisticSI": 2253, "pessimisticSI": 2813, "roughEstimateOfEIL": 1719, "optimisticEIL": 2149, "pessimisticEIL": 2149}, + {"url": "http://www.scribd.com/", "roughEstimateOfFCP": 2622, "optimisticFCP": 2622, "pessimisticFCP": 2622, "roughEstimateOfFMP": 3810, "optimisticFMP": 3810, "pessimisticFMP": 3810, "roughEstimateOfTTI": 12589, "optimisticTTI": 11222, "pessimisticTTI": 13956, "roughEstimateOfTTFCPUI": 11222, "optimisticTTFCPUI": 11222, "pessimisticTTFCPUI": 13956, "roughEstimateOfSI": 3776, "optimisticSI": 1658, "pessimisticSI": 2622, "roughEstimateOfEIL": 833, "optimisticEIL": 1041, "pessimisticEIL": 1041}, {"url": "http://www.shopping.com/", "roughEstimateOfFCP": 2287, "optimisticFCP": 2287, "pessimisticFCP": 2287, "roughEstimateOfFMP": 2287, "optimisticFMP": 2287, "pessimisticFMP": 2287, "roughEstimateOfTTI": 2595, "optimisticTTI": 2432, "pessimisticTTI": 2758, "roughEstimateOfTTFCPUI": 2432, "optimisticTTFCPUI": 2432, "pessimisticTTFCPUI": 2758, "roughEstimateOfSI": 2499, "optimisticSI": 902, "pessimisticSI": 2287, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, - {"url": "http://www.skype.com/", "roughEstimateOfFCP": 4362, "optimisticFCP": 4362, "pessimisticFCP": 4362, "roughEstimateOfFMP": 4362, "optimisticFMP": 4362, "pessimisticFMP": 4362, "roughEstimateOfTTI": 7554, "optimisticTTI": 6470, "pessimisticTTI": 8638, "roughEstimateOfTTFCPUI": 6470, "optimisticTTFCPUI": 6470, "pessimisticTTFCPUI": 8638, "roughEstimateOfSI": 5568, "optimisticSI": 2131, "pessimisticSI": 4362, "roughEstimateOfEIL": 111, "optimisticEIL": 139, "pessimisticEIL": 139}, + {"url": "http://www.skype.com/", "roughEstimateOfFCP": 4362, "optimisticFCP": 4362, "pessimisticFCP": 4362, "roughEstimateOfFMP": 4362, "optimisticFMP": 4362, "pessimisticFMP": 4362, "roughEstimateOfTTI": 7691, "optimisticTTI": 6544, "pessimisticTTI": 8838, "roughEstimateOfTTFCPUI": 6544, "optimisticTTFCPUI": 6544, "pessimisticTTFCPUI": 8838, "roughEstimateOfSI": 5568, "optimisticSI": 2131, "pessimisticSI": 4362, "roughEstimateOfEIL": 111, "optimisticEIL": 139, "pessimisticEIL": 139}, {"url": "http://www.so-net.ne.jp/", "roughEstimateOfFCP": 4713, "optimisticFCP": 3769, "pessimisticFCP": 5658, "roughEstimateOfFMP": 4713, "optimisticFMP": 3769, "pessimisticFMP": 5658, "roughEstimateOfTTI": 12178, "optimisticTTI": 10944, "pessimisticTTI": 13411, "roughEstimateOfTTFCPUI": 10944, "optimisticTTFCPUI": 10944, "pessimisticTTFCPUI": 13411, "roughEstimateOfSI": 8667, "optimisticSI": 3742, "pessimisticSI": 5658, "roughEstimateOfEIL": 1798, "optimisticEIL": 2248, "pessimisticEIL": 2248}, - {"url": "http://www.softonic.com/", "roughEstimateOfFCP": 3900, "optimisticFCP": 3900, "pessimisticFCP": 3900, "roughEstimateOfFMP": 3900, "optimisticFMP": 3900, "pessimisticFMP": 3900, "roughEstimateOfTTI": 18165, "optimisticTTI": 16989, "pessimisticTTI": 19341, "roughEstimateOfTTFCPUI": 16989, "optimisticTTFCPUI": 16989, "pessimisticTTFCPUI": 19341, "roughEstimateOfSI": 14579, "optimisticSI": 8782, "pessimisticSI": 3900, "roughEstimateOfEIL": 329, "optimisticEIL": 411, "pessimisticEIL": 411}, + {"url": "http://www.softonic.com/", "roughEstimateOfFCP": 3900, "optimisticFCP": 3900, "pessimisticFCP": 3900, "roughEstimateOfFMP": 3900, "optimisticFMP": 3900, "pessimisticFMP": 3900, "roughEstimateOfTTI": 18063, "optimisticTTI": 16989, "pessimisticTTI": 19137, "roughEstimateOfTTFCPUI": 16989, "optimisticTTFCPUI": 16989, "pessimisticTTFCPUI": 19137, "roughEstimateOfSI": 14579, "optimisticSI": 8782, "pessimisticSI": 3900, "roughEstimateOfEIL": 351, "optimisticEIL": 439, "pessimisticEIL": 439}, {"url": "http://www.sogou.com/", "roughEstimateOfFCP": 2804, "optimisticFCP": 2804, "pessimisticFCP": 2804, "roughEstimateOfFMP": 2804, "optimisticFMP": 2804, "pessimisticFMP": 2804, "roughEstimateOfTTI": 5086, "optimisticTTI": 4122, "pessimisticTTI": 6050, "roughEstimateOfTTFCPUI": 4122, "optimisticTTFCPUI": 4122, "pessimisticTTFCPUI": 6050, "roughEstimateOfSI": 6731, "optimisticSI": 3684, "pessimisticSI": 2804, "roughEstimateOfEIL": 261, "optimisticEIL": 326, "pessimisticEIL": 326}, - {"url": "http://www.soso.com/", "roughEstimateOfFCP": 2211, "optimisticFCP": 2090, "pessimisticFCP": 2333, "roughEstimateOfFMP": 2211, "optimisticFMP": 2090, "pessimisticFMP": 2333, "roughEstimateOfTTI": 6223, "optimisticTTI": 4540, "pessimisticTTI": 7906, "roughEstimateOfTTFCPUI": 4540, "optimisticTTFCPUI": 4540, "pessimisticTTFCPUI": 5672, "roughEstimateOfSI": 4821, "optimisticSI": 2539, "pessimisticSI": 2333, "roughEstimateOfEIL": 434, "optimisticEIL": 543, "pessimisticEIL": 543}, + {"url": "http://www.soso.com/", "roughEstimateOfFCP": 2211, "optimisticFCP": 2090, "pessimisticFCP": 2333, "roughEstimateOfFMP": 2211, "optimisticFMP": 2090, "pessimisticFMP": 2333, "roughEstimateOfTTI": 6131, "optimisticTTI": 4540, "pessimisticTTI": 7723, "roughEstimateOfTTFCPUI": 4540, "optimisticTTFCPUI": 4540, "pessimisticTTFCPUI": 5672, "roughEstimateOfSI": 4821, "optimisticSI": 2539, "pessimisticSI": 2333, "roughEstimateOfEIL": 434, "optimisticEIL": 543, "pessimisticEIL": 543}, {"url": "http://www.symantec.com/", "roughEstimateOfFCP": 4183, "optimisticFCP": 4183, "pessimisticFCP": 4183, "roughEstimateOfFMP": 4183, "optimisticFMP": 4183, "pessimisticFMP": 4183, "roughEstimateOfTTI": 17098, "optimisticTTI": 13508, "pessimisticTTI": 20688, "roughEstimateOfTTFCPUI": 13508, "optimisticTTFCPUI": 13508, "pessimisticTTFCPUI": 20688, "roughEstimateOfSI": 7229, "optimisticSI": 3400, "pessimisticSI": 4183, "roughEstimateOfEIL": 2678, "optimisticEIL": 3348, "pessimisticEIL": 3348}, - {"url": "http://www.t-online.de/", "roughEstimateOfFCP": 4728, "optimisticFCP": 4365, "pessimisticFCP": 5091, "roughEstimateOfFMP": 5759, "optimisticFMP": 4365, "pessimisticFMP": 7153, "roughEstimateOfTTI": 25870, "optimisticTTI": 23649, "pessimisticTTI": 28090, "roughEstimateOfTTFCPUI": 23649, "optimisticTTFCPUI": 23649, "pessimisticTTFCPUI": 28090, "roughEstimateOfSI": 9735, "optimisticSI": 4768, "pessimisticSI": 5091, "roughEstimateOfEIL": 397, "optimisticEIL": 497, "pessimisticEIL": 497}, + {"url": "http://www.t-online.de/", "roughEstimateOfFCP": 4728, "optimisticFCP": 4365, "pessimisticFCP": 5091, "roughEstimateOfFMP": 5759, "optimisticFMP": 4365, "pessimisticFMP": 7153, "roughEstimateOfTTI": 25768, "optimisticTTI": 23178, "pessimisticTTI": 28359, "roughEstimateOfTTFCPUI": 23178, "optimisticTTFCPUI": 23178, "pessimisticTTFCPUI": 28359, "roughEstimateOfSI": 9735, "optimisticSI": 4768, "pessimisticSI": 5091, "roughEstimateOfEIL": 397, "optimisticEIL": 497, "pessimisticEIL": 497}, {"url": "http://www.tabelog.com/", "roughEstimateOfFCP": 4037, "optimisticFCP": 3223, "pessimisticFCP": 4851, "roughEstimateOfFMP": 4037, "optimisticFMP": 3223, "pessimisticFMP": 4851, "roughEstimateOfTTI": 13232, "optimisticTTI": 10615, "pessimisticTTI": 15849, "roughEstimateOfTTFCPUI": 10615, "optimisticTTFCPUI": 10615, "pessimisticTTFCPUI": 15849, "roughEstimateOfSI": 11052, "optimisticSI": 5820, "pessimisticSI": 4851, "roughEstimateOfEIL": 418, "optimisticEIL": 522, "pessimisticEIL": 522}, - {"url": "http://www.thefreedictionary.com/", "roughEstimateOfFCP": 1696, "optimisticFCP": 1696, "pessimisticFCP": 1696, "roughEstimateOfFMP": 1696, "optimisticFMP": 1696, "pessimisticFMP": 1696, "roughEstimateOfTTI": 21979, "optimisticTTI": 17974, "pessimisticTTI": 25983, "roughEstimateOfTTFCPUI": 17974, "optimisticTTFCPUI": 17974, "pessimisticTTFCPUI": 18220, "roughEstimateOfSI": 3323, "optimisticSI": 1765, "pessimisticSI": 1696, "roughEstimateOfEIL": 523, "optimisticEIL": 654, "pessimisticEIL": 654}, + {"url": "http://www.thefreedictionary.com/", "roughEstimateOfFCP": 1696, "optimisticFCP": 1696, "pessimisticFCP": 1696, "roughEstimateOfFMP": 1696, "optimisticFMP": 1696, "pessimisticFMP": 1696, "roughEstimateOfTTI": 21835, "optimisticTTI": 17924, "pessimisticTTI": 25746, "roughEstimateOfTTFCPUI": 17924, "optimisticTTFCPUI": 17924, "pessimisticTTFCPUI": 18218, "roughEstimateOfSI": 3323, "optimisticSI": 1765, "pessimisticSI": 1696, "roughEstimateOfEIL": 523, "optimisticEIL": 654, "pessimisticEIL": 654}, {"url": "http://www.thepiratebay.org/", "roughEstimateOfFCP": 3239, "optimisticFCP": 3239, "pessimisticFCP": 3239, "roughEstimateOfFMP": 3239, "optimisticFMP": 3239, "pessimisticFMP": 3239, "roughEstimateOfTTI": 5377, "optimisticTTI": 5002, "pessimisticTTI": 5752, "roughEstimateOfTTFCPUI": 5002, "optimisticTTFCPUI": 5002, "pessimisticTTFCPUI": 5752, "roughEstimateOfSI": 11137, "optimisticSI": 6630, "pessimisticSI": 3239, "roughEstimateOfEIL": 85, "optimisticEIL": 106, "pessimisticEIL": 106}, - {"url": "http://www.thestar.com.my", "roughEstimateOfFCP": 5944, "optimisticFCP": 5774, "pessimisticFCP": 6114, "roughEstimateOfFMP": 6531, "optimisticFMP": 5960, "pessimisticFMP": 7101, "roughEstimateOfTTI": 14839, "optimisticTTI": 11719, "pessimisticTTI": 17959, "roughEstimateOfTTFCPUI": 11719, "optimisticTTFCPUI": 11719, "pessimisticTTFCPUI": 17959, "roughEstimateOfSI": 11724, "optimisticSI": 5714, "pessimisticSI": 6114, "roughEstimateOfEIL": 275, "optimisticEIL": 344, "pessimisticEIL": 344}, + {"url": "http://www.thestar.com.my", "roughEstimateOfFCP": 5944, "optimisticFCP": 5774, "pessimisticFCP": 6114, "roughEstimateOfFMP": 6531, "optimisticFMP": 5960, "pessimisticFMP": 7101, "roughEstimateOfTTI": 15305, "optimisticTTI": 11818, "pessimisticTTI": 18793, "roughEstimateOfTTFCPUI": 11818, "optimisticTTFCPUI": 11818, "pessimisticTTFCPUI": 18793, "roughEstimateOfSI": 11724, "optimisticSI": 5714, "pessimisticSI": 6114, "roughEstimateOfEIL": 275, "optimisticEIL": 344, "pessimisticEIL": 344}, {"url": "http://www.tianya.cn/", "roughEstimateOfFCP": 2328, "optimisticFCP": 2326, "pessimisticFCP": 2331, "roughEstimateOfFMP": 2328, "optimisticFMP": 2326, "pessimisticFMP": 2331, "roughEstimateOfTTI": 6999, "optimisticTTI": 6062, "pessimisticTTI": 7936, "roughEstimateOfTTFCPUI": 6062, "optimisticTTFCPUI": 6062, "pessimisticTTFCPUI": 7936, "roughEstimateOfSI": 9571, "optimisticSI": 5933, "pessimisticSI": 2331, "roughEstimateOfEIL": 2076, "optimisticEIL": 2595, "pessimisticEIL": 2595}, {"url": "http://www.torrentz.com/", "roughEstimateOfFCP": 605, "optimisticFCP": 605, "pessimisticFCP": 605, "roughEstimateOfFMP": 605, "optimisticFMP": 605, "pessimisticFMP": 605, "roughEstimateOfTTI": 995, "optimisticTTI": 972, "pessimisticTTI": 1017, "roughEstimateOfTTFCPUI": 972, "optimisticTTFCPUI": 972, "pessimisticTTFCPUI": 1067, "roughEstimateOfSI": 1225, "optimisticSI": 773, "pessimisticSI": 605, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.tumblr.com/", "roughEstimateOfFCP": 3569, "optimisticFCP": 3569, "pessimisticFCP": 3569, "roughEstimateOfFMP": 3569, "optimisticFMP": 3569, "pessimisticFMP": 3569, "roughEstimateOfTTI": 11811, "optimisticTTI": 11516, "pessimisticTTI": 12106, "roughEstimateOfTTFCPUI": 11516, "optimisticTTFCPUI": 11516, "pessimisticTTFCPUI": 12106, "roughEstimateOfSI": 3861, "optimisticSI": 1280, "pessimisticSI": 3569, "roughEstimateOfEIL": 2035, "optimisticEIL": 2544, "pessimisticEIL": 2544}, {"url": "http://www.twitpic.com/", "roughEstimateOfFCP": 2177, "optimisticFCP": 2177, "pessimisticFCP": 2177, "roughEstimateOfFMP": 6139, "optimisticFMP": 6139, "pessimisticFMP": 6139, "roughEstimateOfTTI": 7864, "optimisticTTI": 7789, "pessimisticTTI": 7939, "roughEstimateOfTTFCPUI": 7789, "optimisticTTFCPUI": 7789, "pessimisticTTFCPUI": 7939, "roughEstimateOfSI": 3168, "optimisticSI": 1431, "pessimisticSI": 2177, "roughEstimateOfEIL": 981, "optimisticEIL": 1226, "pessimisticEIL": 1226}, {"url": "http://www.typepad.com/", "roughEstimateOfFCP": 3182, "optimisticFCP": 2126, "pessimisticFCP": 4238, "roughEstimateOfFMP": 3343, "optimisticFMP": 2447, "pessimisticFMP": 4238, "roughEstimateOfTTI": 4421, "optimisticTTI": 3726, "pessimisticTTI": 5117, "roughEstimateOfTTFCPUI": 3726, "optimisticTTFCPUI": 3726, "pessimisticTTFCPUI": 5117, "roughEstimateOfSI": 3852, "optimisticSI": 962, "pessimisticSI": 4238, "roughEstimateOfEIL": 108, "optimisticEIL": 16, "pessimisticEIL": 253}, - {"url": "http://www.verizonwireless.com/", "roughEstimateOfFCP": 2901, "optimisticFCP": 2901, "pessimisticFCP": 2901, "roughEstimateOfFMP": 3654, "optimisticFMP": 3654, "pessimisticFMP": 3654, "roughEstimateOfTTI": 16050, "optimisticTTI": 13945, "pessimisticTTI": 18155, "roughEstimateOfTTFCPUI": 13945, "optimisticTTFCPUI": 13945, "pessimisticTTFCPUI": 18155, "roughEstimateOfSI": 3827, "optimisticSI": 1565, "pessimisticSI": 2901, "roughEstimateOfEIL": 931, "optimisticEIL": 1164, "pessimisticEIL": 1164}, - {"url": "http://www.vevo.com/", "roughEstimateOfFCP": 2261, "optimisticFCP": 2261, "pessimisticFCP": 2261, "roughEstimateOfFMP": 3118, "optimisticFMP": 3118, "pessimisticFMP": 3118, "roughEstimateOfTTI": 24456, "optimisticTTI": 19423, "pessimisticTTI": 29489, "roughEstimateOfTTFCPUI": 19423, "optimisticTTFCPUI": 19423, "pessimisticTTFCPUI": 20335, "roughEstimateOfSI": 4464, "optimisticSI": 2318, "pessimisticSI": 2261, "roughEstimateOfEIL": 2218, "optimisticEIL": 2772, "pessimisticEIL": 2772}, - {"url": "http://www.weather.com/", "roughEstimateOfFCP": 3726, "optimisticFCP": 3726, "pessimisticFCP": 3726, "roughEstimateOfFMP": 3726, "optimisticFMP": 3726, "pessimisticFMP": 3726, "roughEstimateOfTTI": 28454, "optimisticTTI": 25240, "pessimisticTTI": 31668, "roughEstimateOfTTFCPUI": 25240, "optimisticTTFCPUI": 25240, "pessimisticTTFCPUI": 17090, "roughEstimateOfSI": 6665, "optimisticSI": 3209, "pessimisticSI": 3726, "roughEstimateOfEIL": 2102, "optimisticEIL": 2627, "pessimisticEIL": 2627}, + {"url": "http://www.verizonwireless.com/", "roughEstimateOfFCP": 2901, "optimisticFCP": 2901, "pessimisticFCP": 2901, "roughEstimateOfFMP": 3654, "optimisticFMP": 3654, "pessimisticFMP": 3654, "roughEstimateOfTTI": 16275, "optimisticTTI": 14246, "pessimisticTTI": 18305, "roughEstimateOfTTFCPUI": 14246, "optimisticTTFCPUI": 14246, "pessimisticTTFCPUI": 18305, "roughEstimateOfSI": 3827, "optimisticSI": 1565, "pessimisticSI": 2901, "roughEstimateOfEIL": 931, "optimisticEIL": 1164, "pessimisticEIL": 1164}, + {"url": "http://www.vevo.com/", "roughEstimateOfFCP": 2261, "optimisticFCP": 2261, "pessimisticFCP": 2261, "roughEstimateOfFMP": 3118, "optimisticFMP": 3118, "pessimisticFMP": 3118, "roughEstimateOfTTI": 24606, "optimisticTTI": 19573, "pessimisticTTI": 29639, "roughEstimateOfTTFCPUI": 19573, "optimisticTTFCPUI": 19573, "pessimisticTTFCPUI": 20485, "roughEstimateOfSI": 4464, "optimisticSI": 2318, "pessimisticSI": 2261, "roughEstimateOfEIL": 2218, "optimisticEIL": 2772, "pessimisticEIL": 2772}, + {"url": "http://www.weather.com/", "roughEstimateOfFCP": 3726, "optimisticFCP": 3726, "pessimisticFCP": 3726, "roughEstimateOfFMP": 3726, "optimisticFMP": 3726, "pessimisticFMP": 3726, "roughEstimateOfTTI": 28473, "optimisticTTI": 25240, "pessimisticTTI": 31706, "roughEstimateOfTTFCPUI": 25240, "optimisticTTFCPUI": 25240, "pessimisticTTFCPUI": 17090, "roughEstimateOfSI": 6665, "optimisticSI": 3209, "pessimisticSI": 3726, "roughEstimateOfEIL": 2102, "optimisticEIL": 2627, "pessimisticEIL": 2627}, {"url": "http://www.wikipedia.org/", "roughEstimateOfFCP": 1234, "optimisticFCP": 1234, "pessimisticFCP": 1234, "roughEstimateOfFMP": 1234, "optimisticFMP": 1234, "pessimisticFMP": 1234, "roughEstimateOfTTI": 4416, "optimisticTTI": 4370, "pessimisticTTI": 4461, "roughEstimateOfTTFCPUI": 4370, "optimisticTTFCPUI": 4370, "pessimisticTTFCPUI": 4461, "roughEstimateOfSI": 2494, "optimisticSI": 1387, "pessimisticSI": 1234, "roughEstimateOfEIL": 1682, "optimisticEIL": 2102, "pessimisticEIL": 2102}, - {"url": "http://www.ynet.com/", "roughEstimateOfFCP": 2344, "optimisticFCP": 2344, "pessimisticFCP": 2344, "roughEstimateOfFMP": 2344, "optimisticFMP": 2344, "pessimisticFMP": 2344, "roughEstimateOfTTI": 8096, "optimisticTTI": 4413, "pessimisticTTI": 11780, "roughEstimateOfTTFCPUI": 4413, "optimisticTTFCPUI": 4413, "pessimisticTTFCPUI": 7713, "roughEstimateOfSI": 5079, "optimisticSI": 2718, "pessimisticSI": 2344, "roughEstimateOfEIL": 152, "optimisticEIL": 190, "pessimisticEIL": 190}, + {"url": "http://www.ynet.com/", "roughEstimateOfFCP": 2344, "optimisticFCP": 2344, "pessimisticFCP": 2344, "roughEstimateOfFMP": 2344, "optimisticFMP": 2344, "pessimisticFMP": 2344, "roughEstimateOfTTI": 8153, "optimisticTTI": 4413, "pessimisticTTI": 11893, "roughEstimateOfTTFCPUI": 4413, "optimisticTTFCPUI": 4413, "pessimisticTTFCPUI": 7713, "roughEstimateOfSI": 5079, "optimisticSI": 2718, "pessimisticSI": 2344, "roughEstimateOfEIL": 152, "optimisticEIL": 190, "pessimisticEIL": 190}, {"url": "http://www.youdao.com/", "roughEstimateOfFCP": 3063, "optimisticFCP": 3063, "pessimisticFCP": 3063, "roughEstimateOfFMP": 3063, "optimisticFMP": 3063, "pessimisticFMP": 3063, "roughEstimateOfTTI": 3063, "optimisticTTI": 3063, "pessimisticTTI": 3063, "roughEstimateOfTTFCPUI": 3063, "optimisticTTFCPUI": 1531, "pessimisticTTFCPUI": 1577, "roughEstimateOfSI": 6467, "optimisticSI": 3376, "pessimisticSI": 3063, "roughEstimateOfEIL": 13, "optimisticEIL": 16, "pessimisticEIL": 16}, {"url": "http://www.zol.com.cn/", "roughEstimateOfFCP": 3008, "optimisticFCP": 2109, "pessimisticFCP": 3907, "roughEstimateOfFMP": 3008, "optimisticFMP": 2109, "pessimisticFMP": 3907, "roughEstimateOfTTI": 10341, "optimisticTTI": 6545, "pessimisticTTI": 14136, "roughEstimateOfTTFCPUI": 6545, "optimisticTTFCPUI": 6545, "pessimisticTTFCPUI": 8740, "roughEstimateOfSI": 14233, "optimisticSI": 8531, "pessimisticSI": 3907, "roughEstimateOfEIL": 249, "optimisticEIL": 83, "pessimisticEIL": 539} ]