ACF Content Analysis for Yoast SEO - Version 2.0.1

Version Description

Released October 19th, 2017

Bugfixes: * Fixes the mismatch in textdomain according to the plugin slug. * Fixes using an incorrect path when loading plugin data. * Fixes a bug with flexible content and repeaters, in combination with ACF 5, causing JavaScript errors. * Fixes a bug with short array notation which is a problem on sites running on PHP 5.3 or lower. * Fixes a bug where assets are loaded without checking for required dependencies.

Download this release

Release Info

Developer jipmoors
Plugin Icon 128x128 ACF Content Analysis for Yoast SEO
Version 2.0.1
Comparing to
See all releases

Code changes from version 2.0.0 to 2.0.1

inc/class-ac-yoast-acf-content-analysis.php CHANGED
@@ -200,6 +200,7 @@ class AC_Yoast_SEO_ACF_Content_Analysis {
200
  'tab',
201
  'repeater',
202
  'flexible_content',
 
203
  );
204
 
205
  foreach ( $default_blacklist as $type ) {
200
  'tab',
201
  'repeater',
202
  'flexible_content',
203
+ 'group',
204
  );
205
 
206
  foreach ( $default_blacklist as $type ) {
inc/class-yoast-acf-analysis-assets.php CHANGED
@@ -13,9 +13,9 @@ class Yoast_ACF_Analysis_Assets {
13
  * Initialize.
14
  */
15
  public function init() {
16
- $this->plugin_data = get_plugin_data( dirname( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ) );
17
 
18
- add_filter( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
19
  }
20
 
21
  /**
@@ -28,27 +28,30 @@ class Yoast_ACF_Analysis_Assets {
28
  $config = Yoast_ACF_Analysis_Facade::get_registry()->get( 'config' );
29
 
30
  // Post page enqueue.
31
- if ( 'post.php' === $pagenow || 'post-new.php' === $pagenow ) {
32
  wp_enqueue_script(
33
  'yoast-acf-analysis-post',
34
  plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
35
- array( 'jquery', 'yoast-seo-post-scraper', 'underscore' ),
36
- $this->plugin_data['Version']
 
37
  );
38
 
39
  wp_localize_script( 'yoast-acf-analysis-post', 'YoastACFAnalysisConfig', $config->to_array() );
40
  }
41
 
42
  // Term page enqueue.
43
- if ( 'term.php' === $pagenow ) {
44
  wp_enqueue_script(
45
  'yoast-acf-analysis-term',
46
  plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
47
- array( 'jquery', 'yoast-seo-term-scraper' ),
48
- $this->plugin_data['Version']
 
49
  );
50
 
51
  wp_localize_script( 'yoast-acf-analysis-term', 'YoastACFAnalysisConfig', $config->to_array() );
52
  }
53
  }
 
54
  }
13
  * Initialize.
14
  */
15
  public function init() {
16
+ $this->plugin_data = get_plugin_data( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE );
17
 
18
+ add_filter( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
19
  }
20
 
21
  /**
28
  $config = Yoast_ACF_Analysis_Facade::get_registry()->get( 'config' );
29
 
30
  // Post page enqueue.
31
+ if ( wp_script_is( WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper' ) ) {
32
  wp_enqueue_script(
33
  'yoast-acf-analysis-post',
34
  plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
35
+ array( 'jquery', WPSEO_Admin_Asset_Manager::PREFIX . 'post-scraper', 'underscore' ),
36
+ $this->plugin_data['Version'],
37
+ true
38
  );
39
 
40
  wp_localize_script( 'yoast-acf-analysis-post', 'YoastACFAnalysisConfig', $config->to_array() );
41
  }
42
 
43
  // Term page enqueue.
44
+ if ( wp_script_is( WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper' ) ) {
45
  wp_enqueue_script(
46
  'yoast-acf-analysis-term',
47
  plugins_url( '/js/yoast-acf-analysis.js', AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ),
48
+ array( 'jquery', WPSEO_Admin_Asset_Manager::PREFIX . 'term-scraper' ),
49
+ $this->plugin_data['Version'],
50
+ true
51
  );
52
 
53
  wp_localize_script( 'yoast-acf-analysis-term', 'YoastACFAnalysisConfig', $config->to_array() );
54
  }
55
  }
56
+
57
  }
inc/configuration/class-yoast-acf-analysis-string-store.php CHANGED
@@ -47,7 +47,7 @@ class Yoast_ACF_Analysis_String_Store {
47
  }
48
  $this->items = array_values(
49
  array_diff(
50
- $this->items, [ $item ]
51
  )
52
  );
53
  sort( $this->items );
47
  }
48
  $this->items = array_values(
49
  array_diff(
50
+ $this->items, array( $item )
51
  )
52
  );
53
  sort( $this->items );
inc/dependencies/class-yoast-acf-analysis-dependency-afc.php CHANGED
@@ -27,9 +27,9 @@ final class Yoast_ACF_Analysis_Dependency_ACF implements Yoast_ACF_Analysis_Depe
27
  */
28
  public function message_plugin_not_activated() {
29
  $message = sprintf(
30
- /* translators: %1$s resolves to Yoast SEO: ACF Analysis, %2$s resolves to Advanced Custom Fields */
31
- __( '%1$s requires %2$s (free or pro) to be installed and activated.', 'yoast-acf-analysis' ),
32
- 'Yoast SEO: ACF Analysis',
33
  'Advanced Custom Fields'
34
  );
35
 
27
  */
28
  public function message_plugin_not_activated() {
29
  $message = sprintf(
30
+ /* translators: %1$s resolves to ACF Content Analysis for Yoast SEO, %2$s resolves to Advanced Custom Fields */
31
+ __( '%1$s requires %2$s (free or pro) to be installed and activated.', 'acf-content-analysis-for-yoast-seo' ),
32
+ 'ACF Content Analysis for Yoast SEO',
33
  'Advanced Custom Fields'
34
  );
35
 
inc/dependencies/class-yoast-acf-analysis-dependency-yoast-seo.php CHANGED
@@ -40,9 +40,9 @@ final class Yoast_ACF_Analysis_Dependency_Yoast_SEO implements Yoast_ACF_Analysi
40
  */
41
  public function message_plugin_not_activated() {
42
  $message = sprintf(
43
- /* translators: %1$s resolves to Yoast SEO: ACF Analysis, %2$s resolves to Yoast SEO for WordPress, %3$s resolves to the minimal plugin version */
44
- __( '%1$s requires %2$s %3$s (or higher) to be installed and activated.', 'yoast-acf-analysis' ),
45
- 'Yoast SEO: ACF Analysis',
46
  'Yoast SEO for WordPress',
47
  self::MINIMAL_REQUIRED_VERSION
48
  );
@@ -55,9 +55,9 @@ final class Yoast_ACF_Analysis_Dependency_Yoast_SEO implements Yoast_ACF_Analysi
55
  */
56
  public function message_minimum_version() {
57
  $message = sprintf(
58
- /* translators: %1$s resolves to Yoast SEO: ACF Analysis, %2$s resolves to Yoast SEO for WordPress, %3$s resolves to the minimal plugin version */
59
- __( '%1$s requires %2$s %3$s or higher, please update the plugin.', 'yoast-acf-analysis' ),
60
- 'Yoast SEO: ACF Analysis',
61
  'Yoast SEO for WordPress',
62
  self::MINIMAL_REQUIRED_VERSION
63
  );
40
  */
41
  public function message_plugin_not_activated() {
42
  $message = sprintf(
43
+ /* translators: %1$s resolves to ACF Content Analysis for Yoast SEO, %2$s resolves to Yoast SEO for WordPress, %3$s resolves to the minimal plugin version */
44
+ __( '%1$s requires %2$s %3$s (or higher) to be installed and activated.', 'acf-content-analysis-for-yoast-seo' ),
45
+ 'ACF Content Analysis for Yoast SEO',
46
  'Yoast SEO for WordPress',
47
  self::MINIMAL_REQUIRED_VERSION
48
  );
55
  */
56
  public function message_minimum_version() {
57
  $message = sprintf(
58
+ /* translators: %1$s resolves to ACF Content Analysis for Yoast SEO, %2$s resolves to Yoast SEO for WordPress, %3$s resolves to the minimal plugin version */
59
+ __( '%1$s requires %2$s %3$s or higher, please update the plugin.', 'acf-content-analysis-for-yoast-seo' ),
60
+ 'ACF Content Analysis for Yoast SEO',
61
  'Yoast SEO for WordPress',
62
  self::MINIMAL_REQUIRED_VERSION
63
  );
js/src/app.js CHANGED
@@ -13,49 +13,58 @@ var App = function(){
13
  YoastSEO.app.registerModification('content', collect.append.bind(collect), config.pluginName);
14
 
15
  this.bindListeners();
 
16
  };
17
 
18
  App.prototype.bindListeners = function(){
19
 
 
 
20
  if(helper.acf_version >= 5){
21
- var _self = this;
22
- acf.add_action('ready', function () {
23
- _self.replaceVars = replaceVars.createReplaceVars(collect);
 
 
24
  acf.add_action('change remove append sortstop', _self.maybeRefresh);
25
- acf.add_action('change remove append sortstop', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
 
26
  });
 
27
  }else{
 
28
  var fieldSelectors = config.fieldSelectors.slice(0);
 
29
 
30
  // Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
31
- fieldSelectors = _.without(fieldSelectors, 'textarea[id^=wysiwyg-acf]');
32
-
33
- var _self = this;
34
 
35
  jQuery(document).on('acf/setup_fields', function(){
36
- this.replaceVars = replaceVars.createReplaceVars(collect);
 
 
 
37
  var fields = jQuery('#post-body, #edittag').find(fieldSelectors.join(','));
38
- //This would cause faster updates while typing
39
- //fields.on('change input', _self.maybeRefresh.bind(_self) );
40
- fields.on('change', _self.maybeRefresh.bind(_self) );
41
- fields.on('change', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
42
 
 
43
  // Do not ignore Wysiwyg fields for the purpose of Replace Vars.
44
- jQuery('textarea[id^=wysiwyg-acf]').on('change', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
 
45
  if (YoastSEO.wp._tinyMCEHelper) {
46
- jQuery('textarea[id^=wysiwyg-acf]').each( function () {
 
47
  YoastSEO.wp._tinyMCEHelper.addEventHandler(this.id, [ 'input', 'change', 'cut', 'paste' ],
48
- replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
49
  });
50
- }
51
 
 
52
 
53
  //Also refresh on media close as attachment data might have changed
54
  wp.media.frame.on('close', _self.maybeRefresh.bind(_self) );
55
  });
56
- }
57
 
58
- }
 
59
 
60
  App.prototype.maybeRefresh = function(){
61
 
13
  YoastSEO.app.registerModification('content', collect.append.bind(collect), config.pluginName);
14
 
15
  this.bindListeners();
16
+
17
  };
18
 
19
  App.prototype.bindListeners = function(){
20
 
21
+ var _self = this;
22
+
23
  if(helper.acf_version >= 5){
24
+
25
+ jQuery(function(){
26
+
27
+ replaceVars.updateReplaceVars(collect);
28
+
29
  acf.add_action('change remove append sortstop', _self.maybeRefresh);
30
+ acf.add_action('change remove append sortstop', replaceVars.updateReplaceVars.bind(_self, collect));
31
+
32
  });
33
+
34
  }else{
35
+
36
  var fieldSelectors = config.fieldSelectors.slice(0);
37
+ var wysiwygSelector = 'textarea[id^=wysiwyg-acf]';
38
 
39
  // Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
40
+ fieldSelectorsWithoutWysiwyg = _.without(fieldSelectors, wysiwygSelector);
 
 
41
 
42
  jQuery(document).on('acf/setup_fields', function(){
43
+
44
+ replaceVars.updateReplaceVars(collect);
45
+
46
+ var fieldsWithoutWysiwyg = jQuery('#post-body, #edittag').find(fieldSelectorsWithoutWysiwyg.join(','));
47
  var fields = jQuery('#post-body, #edittag').find(fieldSelectors.join(','));
 
 
 
 
48
 
49
+ fieldsWithoutWysiwyg.on('change', _self.maybeRefresh.bind(_self) );
50
  // Do not ignore Wysiwyg fields for the purpose of Replace Vars.
51
+ fields.on('change', replaceVars.updateReplaceVars.bind(_self, collect));
52
+
53
  if (YoastSEO.wp._tinyMCEHelper) {
54
+
55
+ jQuery(wysiwygSelector).each( function () {
56
  YoastSEO.wp._tinyMCEHelper.addEventHandler(this.id, [ 'input', 'change', 'cut', 'paste' ],
57
+ replaceVars.updateReplaceVars.bind(_self, collect));
58
  });
 
59
 
60
+ }
61
 
62
  //Also refresh on media close as attachment data might have changed
63
  wp.media.frame.on('close', _self.maybeRefresh.bind(_self) );
64
  });
 
65
 
66
+ }
67
+ };
68
 
69
  App.prototype.maybeRefresh = function(){
70
 
js/src/collect/collect-v4.js CHANGED
@@ -10,10 +10,11 @@ fields.each(function() {
10
  var $el = jQuery(this).parents('.field').last();
11
 
12
  field_data.push({
13
- $el : $el,
14
- key : $el.data('field_key'),
15
- name : $el.data('field_name'),
16
- type : $el.data('field_type')
 
17
  });
18
 
19
  });
10
  var $el = jQuery(this).parents('.field').last();
11
 
12
  field_data.push({
13
+ $el : $el,
14
+ key : $el.data('field_key'),
15
+ name : $el.data('field_name'),
16
+ type : $el.data('field_type'),
17
+ post_meta_key : $el.data('field_name')
18
  });
19
 
20
  });
js/src/collect/collect-v5.js CHANGED
@@ -1,9 +1,67 @@
1
  module.exports = function(){
2
- return _.map(acf.get_fields(), function(field){
 
 
 
 
 
 
 
 
 
 
3
 
4
  var field_data = jQuery.extend( true, {}, acf.get_data(jQuery(field)) );
5
  field_data.$el = jQuery(field);
 
 
 
 
 
 
 
 
 
6
  return field_data;
7
 
8
  });
9
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  module.exports = function(){
2
+
3
+ var outerFieldsName = [
4
+ 'flexible_content',
5
+ 'repeater',
6
+ 'group'
7
+ ];
8
+
9
+ var innerFields = [];
10
+ var outerFields = [];
11
+
12
+ var fields = _.map(acf.get_fields(), function(field){
13
 
14
  var field_data = jQuery.extend( true, {}, acf.get_data(jQuery(field)) );
15
  field_data.$el = jQuery(field);
16
+ field_data.post_meta_key = field_data.name;
17
+
18
+ // Collect nested and parent
19
+ if( outerFieldsName.indexOf(field_data.type) === -1 ) {
20
+ innerFields.push(field_data);
21
+ }else{
22
+ outerFields.push(field_data);
23
+ }
24
+
25
  return field_data;
26
 
27
  });
28
+
29
+ if( outerFields.length === 0){
30
+ return fields;
31
+ }
32
+
33
+ // Transform field names for nested fields.
34
+ _.each(innerFields, function(inner){
35
+
36
+ _.each(outerFields, function(outer){
37
+
38
+ if (jQuery.contains(outer.$el[0], inner.$el[0])) {
39
+
40
+ // Types that hold multiple children.
41
+ if (outer.type === 'flexible_content' || outer.type === 'repeater'){
42
+
43
+ outer.children = outer.children || [];
44
+ outer.children.push(inner);
45
+ inner.parent = outer;
46
+ inner.post_meta_key = outer.name + '_' + (outer.children.length - 1) + '_' + inner.name;
47
+
48
+ }
49
+
50
+ // Types that hold single children.
51
+ if (outer.type === 'group') {
52
+
53
+ outer.children = [inner];
54
+ inner.parent = outer;
55
+ inner.post_meta_key = outer.name + '_' + inner.name;
56
+
57
+ }
58
+
59
+ }
60
+
61
+ });
62
+
63
+ });
64
+
65
+ return fields;
66
+
67
+ };
js/src/collect/collect.js CHANGED
@@ -15,7 +15,7 @@ Collect.prototype.getFieldData = function () {
15
 
16
  if(config.debug) {
17
 
18
- console.log('Used types:')
19
  console.log(used_types);
20
 
21
  }
@@ -44,10 +44,10 @@ Collect.prototype.append = function(data){
44
  });
45
 
46
  if(config.debug){
47
- console.log('Field data:')
48
  console.table(field_data);
49
 
50
- console.log('Data:')
51
  console.log(data);
52
  }
53
 
15
 
16
  if(config.debug) {
17
 
18
+ console.log('Used types:');
19
  console.log(used_types);
20
 
21
  }
44
  });
45
 
46
  if(config.debug){
47
+ console.log('Field data:');
48
  console.table(field_data);
49
 
50
+ console.log('Data:');
51
  console.log(data);
52
  }
53
 
js/src/replacevars.js CHANGED
@@ -6,52 +6,51 @@ var ReplaceVar = YoastReplaceVarPlugin.ReplaceVar;
6
 
7
  var supportedTypes = ['email', 'text', 'textarea', 'url', 'wysiwyg'];
8
 
9
- var createReplaceVars = function (collect) {
 
 
10
  if (ReplaceVar === undefined) {
11
  if (config.debug) {
12
- console.log('Replacing ACF variables in the Snippet Window requires the latest version of wordpress-seo.');
13
  }
 
 
 
 
 
 
 
14
  return;
15
  }
16
 
17
- fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
18
- replaceVars = {}
19
 
20
  _.each(fieldData, function(field) {
21
  // Remove HTML tags using jQuery in case of a wysiwyg field.
22
- var content = (field.type === 'wysiwyg') ? jQuery( jQuery.parseHTML( field.content) ).text() : field.content;
23
 
24
- replaceVars[field.name] = new ReplaceVar( '%%cf_'+field.name+'%%', content, { source: 'direct' } );
25
- YoastSEO.wp.replaceVarsPlugin.addReplacement( replaceVars[field.name] );
26
- if (config.debug) {
27
- console.log("Created ReplaceVar for: ", field.name, " with: ", content, replaceVars[field.name]);
28
- }
29
- });
30
 
31
- return replaceVars;
32
- };
33
 
34
- var updateReplaceVars = function (collect, replace_vars) {
35
- if (ReplaceVar === undefined) {
36
- if (config.debug) {
37
- console.log('Replacing ACF variables in the Snippet Window requires the latest version of wordpress-seo.');
38
- }
39
- return;
40
- }
41
 
42
- fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
43
- _.each(fieldData, function(field) {
44
- // Remove HTML tags using jQuery in case of a wysiwyg field.
45
- var content = (field.type === 'wysiwyg') ? jQuery(jQuery.parseHTML(field.content)).text() : field.content;
 
 
 
46
 
47
- replaceVars[field.name].replacement = content;
48
- if (config.debug) {
49
- console.log("Updated ReplaceVar for: ", field.name, " with: ", content, replaceVars[field.name]);
50
  }
 
51
  });
52
  };
53
 
54
  module.exports = {
55
- createReplaceVars: createReplaceVars,
56
  updateReplaceVars: updateReplaceVars
57
  };
6
 
7
  var supportedTypes = ['email', 'text', 'textarea', 'url', 'wysiwyg'];
8
 
9
+ var replaceVars = {};
10
+
11
+ var replaceVarPluginAvailable = function(){
12
  if (ReplaceVar === undefined) {
13
  if (config.debug) {
14
+ console.log('Replacing ACF variables in the Snippet Window requires Yoast SEO >= 5.3.');
15
  }
16
+ return false;
17
+ }
18
+ return true;
19
+ };
20
+
21
+ var updateReplaceVars = function (collect) {
22
+ if (!replaceVarPluginAvailable()) {
23
  return;
24
  }
25
 
26
+ var fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
 
27
 
28
  _.each(fieldData, function(field) {
29
  // Remove HTML tags using jQuery in case of a wysiwyg field.
30
+ var content = (field.type === 'wysiwyg') ? jQuery(jQuery.parseHTML(field.content)).text() : field.content;
31
 
32
+ if(replaceVars[field.post_meta_key]===undefined){
 
 
 
 
 
33
 
34
+ replaceVars[field.post_meta_key] = new ReplaceVar( '%%cf_'+field.post_meta_key+'%%', content, { source: 'direct' } );
35
+ YoastSEO.wp.replaceVarsPlugin.addReplacement( replaceVars[field.post_meta_key] );
36
 
37
+ if (config.debug) {
38
+ console.log("Created ReplaceVar for: ", field.post_meta_key, " with: ", content, replaceVars[field.post_meta_key]);
39
+ }
 
 
 
 
40
 
41
+ }else{
42
+
43
+ replaceVars[field.post_meta_key].replacement = content;
44
+
45
+ if (config.debug) {
46
+ console.log("Updated ReplaceVar for: ", field.post_meta_key, " with: ", content, replaceVars[field.post_meta_key]);
47
+ }
48
 
 
 
 
49
  }
50
+
51
  });
52
  };
53
 
54
  module.exports = {
 
55
  updateReplaceVars: updateReplaceVars
56
  };
js/yoast-acf-analysis.js CHANGED
@@ -14,49 +14,58 @@ var App = function(){
14
  YoastSEO.app.registerModification('content', collect.append.bind(collect), config.pluginName);
15
 
16
  this.bindListeners();
 
17
  };
18
 
19
  App.prototype.bindListeners = function(){
20
 
 
 
21
  if(helper.acf_version >= 5){
22
- var _self = this;
23
- acf.add_action('ready', function () {
24
- _self.replaceVars = replaceVars.createReplaceVars(collect);
 
 
25
  acf.add_action('change remove append sortstop', _self.maybeRefresh);
26
- acf.add_action('change remove append sortstop', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
 
27
  });
 
28
  }else{
 
29
  var fieldSelectors = config.fieldSelectors.slice(0);
 
30
 
31
  // Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
32
- fieldSelectors = _.without(fieldSelectors, 'textarea[id^=wysiwyg-acf]');
33
-
34
- var _self = this;
35
 
36
  jQuery(document).on('acf/setup_fields', function(){
37
- this.replaceVars = replaceVars.createReplaceVars(collect);
 
 
 
38
  var fields = jQuery('#post-body, #edittag').find(fieldSelectors.join(','));
39
- //This would cause faster updates while typing
40
- //fields.on('change input', _self.maybeRefresh.bind(_self) );
41
- fields.on('change', _self.maybeRefresh.bind(_self) );
42
- fields.on('change', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
43
 
 
44
  // Do not ignore Wysiwyg fields for the purpose of Replace Vars.
45
- jQuery('textarea[id^=wysiwyg-acf]').on('change', replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
 
46
  if (YoastSEO.wp._tinyMCEHelper) {
47
- jQuery('textarea[id^=wysiwyg-acf]').each( function () {
 
48
  YoastSEO.wp._tinyMCEHelper.addEventHandler(this.id, [ 'input', 'change', 'cut', 'paste' ],
49
- replaceVars.updateReplaceVars.bind(_self, collect, _self.replaceVars));
50
  });
51
- }
52
 
 
53
 
54
  //Also refresh on media close as attachment data might have changed
55
  wp.media.frame.on('close', _self.maybeRefresh.bind(_self) );
56
  });
57
- }
58
 
59
- }
 
60
 
61
  App.prototype.maybeRefresh = function(){
62
 
@@ -199,10 +208,11 @@ fields.each(function() {
199
  var $el = jQuery(this).parents('.field').last();
200
 
201
  field_data.push({
202
- $el : $el,
203
- key : $el.data('field_key'),
204
- name : $el.data('field_name'),
205
- type : $el.data('field_type')
 
206
  });
207
 
208
  });
@@ -210,14 +220,73 @@ fields.each(function() {
210
  module.exports = field_data;
211
  },{"./../config/config.js":7}],5:[function(require,module,exports){
212
  module.exports = function(){
213
- return _.map(acf.get_fields(), function(field){
 
 
 
 
 
 
 
 
 
 
214
 
215
  var field_data = jQuery.extend( true, {}, acf.get_data(jQuery(field)) );
216
  field_data.$el = jQuery(field);
 
 
 
 
 
 
 
 
 
217
  return field_data;
218
 
219
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  };
 
221
  },{}],6:[function(require,module,exports){
222
  /* global acf, _ */
223
 
@@ -235,8 +304,10 @@ Collect.prototype.getFieldData = function () {
235
  var used_types = _.uniq(_.pluck(field_data, 'type'));
236
 
237
  if(config.debug) {
238
- console.log('Used types:')
 
239
  console.log(used_types);
 
240
  }
241
 
242
  _.each(used_types, function(type){
@@ -263,10 +334,10 @@ Collect.prototype.append = function(data){
263
  });
264
 
265
  if(config.debug){
266
- console.log('Field data:')
267
  console.table(field_data);
268
 
269
- console.log('Data:')
270
  console.log(data);
271
  }
272
 
@@ -339,53 +410,52 @@ var ReplaceVar = YoastReplaceVarPlugin.ReplaceVar;
339
 
340
  var supportedTypes = ['email', 'text', 'textarea', 'url', 'wysiwyg'];
341
 
342
- var createReplaceVars = function (collect) {
 
 
343
  if (ReplaceVar === undefined) {
344
  if (config.debug) {
345
- console.log('Replacing ACF variables in the Snippet Window requires the latest version of wordpress-seo.');
346
  }
 
 
 
 
 
 
 
347
  return;
348
  }
349
 
350
- fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
351
- replaceVars = {}
352
 
353
  _.each(fieldData, function(field) {
354
  // Remove HTML tags using jQuery in case of a wysiwyg field.
355
- var content = (field.type === 'wysiwyg') ? jQuery( jQuery.parseHTML( field.content) ).text() : field.content;
356
 
357
- replaceVars[field.name] = new ReplaceVar( '%%cf_'+field.name+'%%', content, { source: 'direct' } );
358
- YoastSEO.wp.replaceVarsPlugin.addReplacement( replaceVars[field.name] );
359
- if (config.debug) {
360
- console.log("Created ReplaceVar for: ", field.name, " with: ", content, replaceVars[field.name]);
361
- }
362
- });
363
 
364
- return replaceVars;
365
- };
366
 
367
- var updateReplaceVars = function (collect, replace_vars) {
368
- if (ReplaceVar === undefined) {
369
- if (config.debug) {
370
- console.log('Replacing ACF variables in the Snippet Window requires the latest version of wordpress-seo.');
371
- }
372
- return;
373
- }
374
 
375
- fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
376
- _.each(fieldData, function(field) {
377
- // Remove HTML tags using jQuery in case of a wysiwyg field.
378
- var content = (field.type === 'wysiwyg') ? jQuery(jQuery.parseHTML(field.content)).text() : field.content;
 
 
 
379
 
380
- replaceVars[field.name].replacement = content;
381
- if (config.debug) {
382
- console.log("Updated ReplaceVar for: ", field.name, " with: ", content, replaceVars[field.name]);
383
  }
 
384
  });
385
  };
386
 
387
  module.exports = {
388
- createReplaceVars: createReplaceVars,
389
  updateReplaceVars: updateReplaceVars
390
  };
391
 
@@ -838,5 +908,4 @@ var isTinyMCEAvailable = function(editorID) {
838
  };
839
 
840
  module.exports = Scraper;
841
- },{"./../scraper-store.js":11}]},{},[9])
842
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJqcy9zcmMvYXBwLmpzIiwianMvc3JjL2NhY2hlL2NhY2hlLmF0dGFjaG1lbnRzLmpzIiwianMvc3JjL2NhY2hlL2NhY2hlLmpzIiwianMvc3JjL2NvbGxlY3QvY29sbGVjdC12NC5qcyIsImpzL3NyYy9jb2xsZWN0L2NvbGxlY3QtdjUuanMiLCJqcy9zcmMvY29sbGVjdC9jb2xsZWN0LmpzIiwianMvc3JjL2NvbmZpZy9jb25maWcuanMiLCJqcy9zcmMvaGVscGVyLmpzIiwianMvc3JjL21haW4uanMiLCJqcy9zcmMvcmVwbGFjZXZhcnMuanMiLCJqcy9zcmMvc2NyYXBlci1zdG9yZS5qcyIsImpzL3NyYy9zY3JhcGVyL3NjcmFwZXIuZW1haWwuanMiLCJqcy9zcmMvc2NyYXBlci9zY3JhcGVyLmdhbGxlcnkuanMiLCJqcy9zcmMvc2NyYXBlci9zY3JhcGVyLmltYWdlLmpzIiwianMvc3JjL3NjcmFwZXIvc2NyYXBlci50YXhvbm9teS5qcyIsImpzL3NyYy9zY3JhcGVyL3NjcmFwZXIudGV4dC5qcyIsImpzL3NyYy9zY3JhcGVyL3NjcmFwZXIudGV4dGFyZWEuanMiLCJqcy9zcmMvc2NyYXBlci9zY3JhcGVyLnVybC5qcyIsImpzL3NyYy9zY3JhcGVyL3NjcmFwZXIud3lzaXd5Zy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEZBOztBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDOURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qIGdsb2JhbCBZb2FzdFNFTyAqL1xudmFyIGNvbmZpZyA9IHJlcXVpcmUoIFwiLi9jb25maWcvY29uZmlnLmpzXCIgKTtcbnZhciBoZWxwZXIgPSByZXF1aXJlKCBcIi4vaGVscGVyLmpzXCIgKTtcbnZhciBjb2xsZWN0ID0gcmVxdWlyZSggXCIuL2NvbGxlY3QvY29sbGVjdC5qc1wiICk7XG52YXIgcmVwbGFjZVZhcnMgPSByZXF1aXJlKCBcIi4vcmVwbGFjZXZhcnMuanNcIiApO1xuXG52YXIgYW5hbHlzaXNUaW1lb3V0ID0gMDtcblxudmFyIEFwcCA9IGZ1bmN0aW9uKCl7XG5cbiAgICBZb2FzdFNFTy5hcHAucmVnaXN0ZXJQbHVnaW4oY29uZmlnLnBsdWdpbk5hbWUsIHtzdGF0dXM6ICdyZWFkeSd9KTtcblxuICAgIFlvYXN0U0VPLmFwcC5yZWdpc3Rlck1vZGlmaWNhdGlvbignY29udGVudCcsIGNvbGxlY3QuYXBwZW5kLmJpbmQoY29sbGVjdCksIGNvbmZpZy5wbHVnaW5OYW1lKTtcblxuICAgIHRoaXMuYmluZExpc3RlbmVycygpO1xufTtcblxuQXBwLnByb3RvdHlwZS5iaW5kTGlzdGVuZXJzID0gZnVuY3Rpb24oKXtcblxuICAgIGlmKGhlbHBlci5hY2ZfdmVyc2lvbiA+PSA1KXtcbiAgICAgICAgdGhpcy5yZXBsYWNlVmFycyA9IHJlcGxhY2VWYXJzLmNyZWF0ZVJlcGxhY2VWYXJzKGNvbGxlY3QpO1xuICAgICAgICBhY2YuYWRkX2FjdGlvbignY2hhbmdlIHJlbW92ZSBhcHBlbmQgc29ydHN0b3AnLCB0aGlzLm1heWJlUmVmcmVzaCk7XG4gICAgICAgIGFjZi5hZGRfYWN0aW9uKCdjaGFuZ2UgcmVtb3ZlIGFwcGVuZCBzb3J0c3RvcCcsIHJlcGxhY2VWYXJzLnVwZGF0ZVJlcGxhY2VWYXJzLmJpbmQodGhpcywgY29sbGVjdCwgdGhpcy5yZXBsYWNlVmFycykpO1xuICAgIH1lbHNle1xuICAgICAgICB2YXIgZmllbGRTZWxlY3RvcnMgPSBjb25maWcuZmllbGRTZWxlY3RvcnMuc2xpY2UoMCk7XG5cbiAgICAgICAgLy8gSWdub3JlIFd5c2l3eWcgZmllbGRzIGJlY2F1c2UgdGhleSB0cmlnZ2VyIGEgcmVmcmVzaCBpbiBZb2FzdCBTRU8gaXRzZWxmXG4gICAgICAgIGZpZWxkU2VsZWN0b3JzID0gXy53aXRob3V0KGZpZWxkU2VsZWN0b3JzLCAndGV4dGFyZWFbaWRePXd5c2l3eWctYWNmXScpO1xuXG4gICAgICAgIHZhciBfc2VsZiA9IHRoaXM7XG5cbiAgICAgICAgalF1ZXJ5KGRvY3VtZW50KS5vbignYWNmL3NldHVwX2ZpZWxkcycsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICB0aGlzLnJlcGxhY2VWYXJzID0gcmVwbGFjZVZhcnMuY3JlYXRlUmVwbGFjZVZhcnMoY29sbGVjdCk7XG4gICAgICAgICAgICB2YXIgZmllbGRzID0galF1ZXJ5KCcjcG9zdC1ib2R5LCAjZWRpdHRhZycpLmZpbmQoZmllbGRTZWxlY3RvcnMuam9pbignLCcpKTtcbiAgICAgICAgICAgIC8vVGhpcyB3b3VsZCBjYXVzZSBmYXN0ZXIgdXBkYXRlcyB3aGlsZSB0eXBpbmdcbiAgICAgICAgICAgIC8vZmllbGRzLm9uKCdjaGFuZ2UgaW5wdXQnLCBfc2VsZi5tYXliZVJlZnJlc2guYmluZChfc2VsZikgKTtcbiAgICAgICAgICAgIGZpZWxkcy5vbignY2hhbmdlJywgX3NlbGYubWF5YmVSZWZyZXNoLmJpbmQoX3NlbGYpICk7XG4gICAgICAgICAgICBmaWVsZHMub24oJ2NoYW5nZScsIHJlcGxhY2VWYXJzLnVwZGF0ZVJlcGxhY2VWYXJzLmJpbmQoX3NlbGYsIGNvbGxlY3QsIF9zZWxmLnJlcGxhY2VWYXJzKSk7XG5cbiAgICAgICAgICAgIC8vIERvIG5vdCBpZ25vcmUgV3lzaXd5ZyBmaWVsZHMgZm9yIHRoZSBwdXJwb3NlIG9mIFJlcGxhY2UgVmFycy5cbiAgICAgICAgICAgIGpRdWVyeSgndGV4dGFyZWFbaWRePXd5c2l3eWctYWNmXScpLm9uKCdjaGFuZ2UnLCByZXBsYWNlVmFycy51cGRhdGVSZXBsYWNlVmFycy5iaW5kKF9zZWxmLCBjb2xsZWN0LCBfc2VsZi5yZXBsYWNlVmFycykpO1xuICAgICAgICAgICAgaWYgKFlvYXN0U0VPLndwLl90aW55TUNFSGVscGVyKSB7XG4gICAgICAgICAgICAgICAgalF1ZXJ5KCd0ZXh0YXJlYVtpZF49d3lzaXd5Zy1hY2ZdJykuZWFjaCggZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBZb2FzdFNFTy53cC5fdGlueU1DRUhlbHBlci5hZGRFdmVudEhhbmRsZXIodGhpcy5pZCwgWyAnaW5wdXQnLCAnY2hhbmdlJywgJ2N1dCcsICdwYXN0ZScgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VWYXJzLnVwZGF0ZVJlcGxhY2VWYXJzLmJpbmQoX3NlbGYsIGNvbGxlY3QsIF9zZWxmLnJlcGxhY2VWYXJzKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLy9BbHNvIHJlZnJlc2ggb24gbWVkaWEgY2xvc2UgYXMgYXR0YWNobWVudCBkYXRhIG1pZ2h0IGhhdmUgY2hhbmdlZFxuICAgICAgICAgICAgd3AubWVkaWEuZnJhbWUub24oJ2Nsb3NlJywgX3NlbGYubWF5YmVSZWZyZXNoLmJpbmQoX3NlbGYpICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuXG5BcHAucHJvdG90eXBlLm1heWJlUmVmcmVzaCA9IGZ1bmN0aW9uKCl7XG5cbiAgICBpZiAoIGFuYWx5c2lzVGltZW91dCApIHtcbiAgICAgICAgd2luZG93LmNsZWFyVGltZW91dChhbmFseXNpc1RpbWVvdXQpO1xuICAgIH1cblxuICAgIGFuYWx5c2lzVGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblxuICAgICAgICBpZihjb25maWcuZGVidWcpe1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1JlY2FsY3VsYXRlLi4uJyArIG5ldyBEYXRlKCkgKyAnKEludGVybmFsKScpO1xuICAgICAgICB9XG5cbiAgICAgICAgWW9hc3RTRU8uYXBwLnBsdWdpblJlbG9hZGVkKGNvbmZpZy5wbHVnaW5OYW1lKTtcbiAgICB9LCBjb25maWcucmVmcmVzaFJhdGUgKTtcblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBBcHA7XG4iLCIvKiBnbG9iYWwgXyAqL1xudmFyIGNhY2hlID0gcmVxdWlyZSggXCIuL2NhY2hlLmpzXCIgKTtcblxudmFyIHJlZnJlc2ggPSBmdW5jdGlvbihhdHRhY2htZW50X2lkcyl7XG5cbiAgICB2YXIgdW5jYWNoZWQgPSBjYWNoZS5nZXRVbmNhY2hlZChhdHRhY2htZW50X2lkcywgJ2F0dGFjaG1lbnQnKTtcblxuICAgIGlmICh1bmNhY2hlZC5sZW5ndGggPT09IDApe1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgd2luZG93LndwLmFqYXgucG9zdCgncXVlcnktYXR0YWNobWVudHMnLCB7XG4gICAgICAgICdxdWVyeSc6IHtcbiAgICAgICAgICAgICdwb3N0X19pbic6IHVuY2FjaGVkXG4gICAgICAgIH1cbiAgICB9KS5kb25lKGZ1bmN0aW9uIChhdHRhY2htZW50cykge1xuXG4gICAgICAgIF8uZWFjaChhdHRhY2htZW50cywgZnVuY3Rpb24gKGF0dGFjaG1lbnQpIHtcbiAgICAgICAgICAgIGNhY2hlLnNldChhdHRhY2htZW50LmlkLCBhdHRhY2htZW50LCAnYXR0YWNobWVudCcpO1xuICAgICAgICAgICAgWW9hc3RBQ0ZBbmFseXNpcy5tYXliZVJlZnJlc2goKTtcbiAgICAgICAgfSk7XG5cbiAgICB9KTtcblxufTtcblxudmFyIGdldCA9IGZ1bmN0aW9uKCBpZCApe1xuXG4gICAgdmFyIGF0dGFjaG1lbnQgPSBjYWNoZS5nZXQoaWQsICdhdHRhY2htZW50Jyk7XG5cbiAgICBpZighYXR0YWNobWVudCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgdmFyIGNoYW5nZWRBdHRhY2htZW50ID0gd3AubWVkaWEuYXR0YWNobWVudCggaWQgKTtcblxuICAgIGlmKCBjaGFuZ2VkQXR0YWNobWVudC5oYXMoJ2FsdCcpICl7XG4gICAgICAgIGF0dGFjaG1lbnQuYWx0ID0gY2hhbmdlZEF0dGFjaG1lbnQuZ2V0KCdhbHQnKTtcbiAgICB9XG5cbiAgICBpZiggY2hhbmdlZEF0dGFjaG1lbnQuaGFzKCd0aXRsZScpICl7XG4gICAgICAgIGF0dGFjaG1lbnQudGl0bGUgPSBjaGFuZ2VkQXR0YWNobWVudC5nZXQoJ3RpdGxlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF0dGFjaG1lbnQ7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgICByZWZyZXNoOiByZWZyZXNoLFxuICAgIGdldDogZ2V0XG59OyIsIi8qIGdsb2JhbCBfICovXG52YXIgQ2FjaGUgPSBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmNsZWFyKCdhbGwnKTtcbn07XG5cbnZhciBfY2FjaGU7XG5cbkNhY2hlLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiggaWQsIHZhbHVlLCBzdG9yZSApIHtcblxuICAgIHN0b3JlID0gdHlwZW9mIHN0b3JlICE9PSAndW5kZWZpbmVkJyA/IHN0b3JlIDogJ2RlZmF1bHQnO1xuXG4gICAgaWYoICEoc3RvcmUgaW4gX2NhY2hlKSApe1xuICAgICAgICBfY2FjaGVbc3RvcmVdID0ge307XG4gICAgfVxuXG4gICAgX2NhY2hlWyBzdG9yZSBdWyBpZCBdID0gdmFsdWU7XG59O1xuXG5DYWNoZS5wcm90b3R5cGUuZ2V0ID0gIGZ1bmN0aW9uKCBpZCwgc3RvcmUgKXtcblxuICAgIHN0b3JlID0gdHlwZW9mIHN0b3JlICE9PSAndW5kZWZpbmVkJyA/IHN0b3JlIDogJ2RlZmF1bHQnO1xuXG4gICAgaWYgKCBzdG9yZSBpbiBfY2FjaGUgJiYgaWQgaW4gX2NhY2hlWyBzdG9yZSBdICkge1xuICAgICAgICByZXR1cm4gX2NhY2hlWyBzdG9yZSBdWyBpZCBdO1xuICAgIH1lbHNle1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG59O1xuXG5DYWNoZS5wcm90b3R5cGUuZ2V0VW5jYWNoZWQgPSAgZnVuY3Rpb24oaWRzLCBzdG9yZSl7XG5cbiAgICBzdG9yZSA9IHR5cGVvZiBzdG9yZSAhPT0gJ3VuZGVmaW5lZCcgPyBzdG9yZSA6ICdkZWZhdWx0JztcblxuICAgIHZhciB0aGF0ID0gdGhpcztcblxuICAgIGlkcyA9IF8udW5pcShpZHMpO1xuXG4gICAgcmV0dXJuIGlkcy5maWx0ZXIoZnVuY3Rpb24oaWQpe1xuICAgICAgICB2YXIgdmFsdWUgPSB0aGF0LmdldChpZCwgc3RvcmUpO1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IGZhbHNlO1xuICAgIH0pO1xuXG59O1xuXG5DYWNoZS5wcm90b3R5cGUuY2xlYXIgPSAgZnVuY3Rpb24oc3RvcmUpe1xuXG4gICAgc3RvcmUgPSB0eXBlb2Ygc3RvcmUgIT09ICd1bmRlZmluZWQnID8gc3RvcmUgOiAnZGVmYXVsdCc7XG5cbiAgICBpZihzdG9yZSA9PT0gJ2FsbCcpe1xuICAgICAgICBfY2FjaGUgPSB7fTtcbiAgICB9ZWxzZXtcbiAgICAgICAgX2NhY2hlW3N0b3JlXSA9IHt9O1xuICAgIH1cblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgQ2FjaGUoKTsiLCJ2YXIgY29uZmlnID0gcmVxdWlyZSggXCIuLy4uL2NvbmZpZy9jb25maWcuanNcIiApO1xudmFyIGZpZWxkU2VsZWN0b3JzID0gY29uZmlnLmZpZWxkU2VsZWN0b3JzO1xuXG52YXIgZmllbGRfZGF0YSA9IFtdO1xuXG52YXIgZmllbGRzID0galF1ZXJ5KCcjcG9zdC1ib2R5LCAjZWRpdHRhZycpLmZpbmQoZmllbGRTZWxlY3RvcnMuam9pbignLCcpKTtcblxuZmllbGRzLmVhY2goZnVuY3Rpb24oKSB7XG5cbiAgICB2YXIgJGVsID0galF1ZXJ5KHRoaXMpLnBhcmVudHMoJy5maWVsZCcpLmxhc3QoKTtcblxuICAgIGZpZWxkX2RhdGEucHVzaCh7XG4gICAgICAgICRlbCAgICAgOiAkZWwsXG4gICAgICAgIGtleSAgICAgOiAkZWwuZGF0YSgnZmllbGRfa2V5JyksXG4gICAgICAgIG5hbWUgICAgOiAkZWwuZGF0YSgnZmllbGRfbmFtZScpLFxuICAgICAgICB0eXBlICAgIDogJGVsLmRhdGEoJ2ZpZWxkX3R5cGUnKVxuICAgIH0pO1xuXG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBmaWVsZF9kYXRhOyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKXtcbiAgICByZXR1cm4gXy5tYXAoYWNmLmdldF9maWVsZHMoKSwgZnVuY3Rpb24oZmllbGQpe1xuXG4gICAgICAgIHZhciBmaWVsZF9kYXRhID0galF1ZXJ5LmV4dGVuZCggdHJ1ZSwge30sIGFjZi5nZXRfZGF0YShqUXVlcnkoZmllbGQpKSApO1xuICAgICAgICBmaWVsZF9kYXRhLiRlbCA9IGpRdWVyeShmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZF9kYXRhO1xuXG4gICAgfSk7XG59OyIsIi8qIGdsb2JhbCBhY2YsIF8gKi9cblxudmFyIGNvbmZpZyA9IHJlcXVpcmUoIFwiLi8uLi9jb25maWcvY29uZmlnLmpzXCIgKTtcbnZhciBoZWxwZXIgPSByZXF1aXJlKCBcIi4vLi4vaGVscGVyLmpzXCIgKTtcbnZhciBzY3JhcGVyX3N0b3JlID0gcmVxdWlyZSggXCIuLy4uL3NjcmFwZXItc3RvcmUuanNcIiApO1xuXG52YXIgQ29sbGVjdCA9IGZ1bmN0aW9uKCl7XG5cbn07XG5cbkNvbGxlY3QucHJvdG90eXBlLmdldEZpZWxkRGF0YSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZmllbGRfZGF0YSA9IHRoaXMuZmlsdGVyQnJva2VuKHRoaXMuZmlsdGVyQmxhY2tsaXN0TmFtZSh0aGlzLmZpbHRlckJsYWNrbGlzdFR5cGUodGhpcy5nZXREYXRhKCkpKSk7XG5cbiAgICB2YXIgdXNlZF90eXBlcyA9IF8udW5pcShfLnBsdWNrKGZpZWxkX2RhdGEsICd0eXBlJykpO1xuXG4gICAgaWYoY29uZmlnLmRlYnVnKSB7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ1VzZWQgdHlwZXM6JylcbiAgICAgICAgY29uc29sZS5sb2codXNlZF90eXBlcyk7XG5cbiAgICB9XG5cbiAgICBfLmVhY2godXNlZF90eXBlcywgZnVuY3Rpb24odHlwZSl7XG4gICAgICAgIGZpZWxkX2RhdGEgPSBzY3JhcGVyX3N0b3JlLmdldFNjcmFwZXIodHlwZSkuc2NyYXBlKGZpZWxkX2RhdGEpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkX2RhdGE7XG59O1xuXG5Db2xsZWN0LnByb3RvdHlwZS5hcHBlbmQgPSBmdW5jdGlvbihkYXRhKXtcblxuICAgIGlmKGNvbmZpZy5kZWJ1Zyl7XG4gICAgICAgIGNvbnNvbGUubG9nKCdSZWNhbGN1bGF0ZS4uLicgKyBuZXcgRGF0ZSgpKTtcbiAgICB9XG5cbiAgICB2YXIgZmllbGRfZGF0YSA9IHRoaXMuZ2V0RmllbGREYXRhKCk7XG5cbiAgICBfLmVhY2goZmllbGRfZGF0YSwgZnVuY3Rpb24oZmllbGQpe1xuXG4gICAgICAgIGlmKHR5cGVvZiBmaWVsZC5jb250ZW50ICE9PSAndW5kZWZpbmVkJyAmJiBmaWVsZC5jb250ZW50ICE9PSAnJyl7XG4gICAgICAgICAgICBkYXRhICs9ICdcXG4nICsgZmllbGQuY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICBpZihjb25maWcuZGVidWcpe1xuICAgICAgICBjb25zb2xlLmxvZygnRmllbGQgZGF0YTonKVxuICAgICAgICBjb25zb2xlLnRhYmxlKGZpZWxkX2RhdGEpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdEYXRhOicpXG4gICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuXG59O1xuXG5Db2xsZWN0LnByb3RvdHlwZS5nZXREYXRhID0gZnVuY3Rpb24oKXtcblxuICAgIGlmKGhlbHBlci5hY2ZfdmVyc2lvbiA+PSA1KXtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoIFwiLi9jb2xsZWN0LXY1LmpzXCIgKSgpO1xuICAgIH1lbHNle1xuICAgICAgICByZXR1cm4gcmVxdWlyZSggXCIuL2NvbGxlY3QtdjQuanNcIiApO1xuICAgIH1cblxufTtcblxuQ29sbGVjdC5wcm90b3R5cGUuZmlsdGVyQmxhY2tsaXN0VHlwZSA9IGZ1bmN0aW9uKGZpZWxkX2RhdGEpe1xuICAgIHJldHVybiBfLmZpbHRlcihmaWVsZF9kYXRhLCBmdW5jdGlvbihmaWVsZCl7XG4gICAgICAgIHJldHVybiAhXy5jb250YWlucyhjb25maWcuYmxhY2tsaXN0VHlwZSwgZmllbGQudHlwZSk7XG4gICAgfSk7XG59O1xuXG5Db2xsZWN0LnByb3RvdHlwZS5maWx0ZXJCbGFja2xpc3ROYW1lID0gZnVuY3Rpb24oZmllbGRfZGF0YSl7XG4gICAgcmV0dXJuIF8uZmlsdGVyKGZpZWxkX2RhdGEsIGZ1bmN0aW9uKGZpZWxkKXtcbiAgICAgICAgcmV0dXJuICFfLmNvbnRhaW5zKGNvbmZpZy5ibGFja2xpc3ROYW1lLCBmaWVsZC5uYW1lKTtcbiAgICB9KTtcbn07XG5cbkNvbGxlY3QucHJvdG90eXBlLmZpbHRlckJyb2tlbiA9IGZ1bmN0aW9uKGZpZWxkX2RhdGEpe1xuICAgIHJldHVybiBfLmZpbHRlcihmaWVsZF9kYXRhLCBmdW5jdGlvbihmaWVsZCl7XG4gICAgICAgIHJldHVybiAoJ2tleScgaW4gZmllbGQpO1xuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgQ29sbGVjdCgpO1xuIiwibW9kdWxlLmV4cG9ydHMgPSBZb2FzdEFDRkFuYWx5c2lzQ29uZmlnOyIsInZhciBjb25maWcgPSByZXF1aXJlKCBcIi4vY29uZmlnL2NvbmZpZy5qc1wiICk7XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIGFjZl92ZXJzaW9uOiBwYXJzZUludChjb25maWcuYWNmVmVyc2lvbiwgMTApXG59OyIsIi8qIGdsb2JhbCBqUXVlcnksIFlvYXN0QUNGQW5hbHlzaXM6IHRydWUgKi9cblxudmFyIEFwcCA9IHJlcXVpcmUoIFwiLi9hcHAuanNcIiApO1xuXG4oZnVuY3Rpb24oJCkge1xuXG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgaWYoIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBZb2FzdFNFTyl7XG5cbiAgICAgICAgICAgIFlvYXN0QUNGQW5hbHlzaXMgPSBuZXcgQXBwKCk7XG5cbiAgICAgICAgfVxuXG4gICAgfSk7XG5cbn0oalF1ZXJ5KSk7IiwiLyogZ2xvYmFsIF8sIGpRdWVyeSwgWW9hc3RTRU8sIFlvYXN0UmVwbGFjZVZhclBsdWdpbiAqL1xuXG52YXIgY29uZmlnID0gcmVxdWlyZSggXCIuL2NvbmZpZy9jb25maWcuanNcIiApO1xuXG52YXIgUmVwbGFjZVZhciA9IFlvYXN0UmVwbGFjZVZhclBsdWdpbi5SZXBsYWNlVmFyO1xuXG52YXIgc3VwcG9ydGVkVHlwZXMgPSBbJ2VtYWlsJywgJ3RleHQnLCAndGV4dGFyZWEnLCAndXJsJywgJ3d5c2l3eWcnXTtcblxudmFyIGNyZWF0ZVJlcGxhY2VWYXJzID0gZnVuY3Rpb24gKGNvbGxlY3QpIHtcbiAgICBpZiAoUmVwbGFjZVZhciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChjb25maWcuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXBsYWNpbmcgQUNGIHZhcmlhYmxlcyBpbiB0aGUgU25pcHBldCBXaW5kb3cgcmVxdWlyZXMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHdvcmRwcmVzcy1zZW8uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZpZWxkRGF0YSAgID0gXy5maWx0ZXIoY29sbGVjdC5nZXRGaWVsZERhdGEoKSwgZnVuY3Rpb24gKGZpZWxkKSB7IHJldHVybiBfLmNvbnRhaW5zKHN1cHBvcnRlZFR5cGVzLCBmaWVsZC50eXBlKSB9KTtcbiAgICByZXBsYWNlVmFycyA9IHt9XG5cbiAgICBfLmVhY2goZmllbGREYXRhLCBmdW5jdGlvbihmaWVsZCkge1xuICAgICAgICAvLyBSZW1vdmUgSFRNTCB0YWdzIHVzaW5nIGpRdWVyeSBpbiBjYXNlIG9mIGEgd3lzaXd5ZyBmaWVsZC5cbiAgICAgICAgdmFyIGNvbnRlbnQgPSAoZmllbGQudHlwZSA9PT0gJ3d5c2l3eWcnKSA/IGpRdWVyeSggalF1ZXJ5LnBhcnNlSFRNTCggZmllbGQuY29udGVudCkgKS50ZXh0KCkgOiBmaWVsZC5jb250ZW50O1xuXG4gICAgICAgIHJlcGxhY2VWYXJzW2ZpZWxkLm5hbWVdID0gbmV3IFJlcGxhY2VWYXIoICclJWNmXycrZmllbGQubmFtZSsnJSUnLCBjb250ZW50LCB7IHNvdXJjZTogJ2RpcmVjdCcgfSApO1xuICAgICAgICBZb2FzdFNFTy53cC5yZXBsYWNlVmFyc1BsdWdpbi5hZGRSZXBsYWNlbWVudCggcmVwbGFjZVZhcnNbZmllbGQubmFtZV0gKTtcbiAgICAgICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDcmVhdGVkIFJlcGxhY2VWYXIgZm9yOiBcIiwgZmllbGQubmFtZSwgXCIgd2l0aDogXCIsIGNvbnRlbnQsIHJlcGxhY2VWYXJzW2ZpZWxkLm5hbWVdKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcGxhY2VWYXJzO1xufTtcblxudmFyIHVwZGF0ZVJlcGxhY2VWYXJzID0gZnVuY3Rpb24gKGNvbGxlY3QsIHJlcGxhY2VfdmFycykge1xuICAgIGlmIChSZXBsYWNlVmFyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ1JlcGxhY2luZyBBQ0YgdmFyaWFibGVzIGluIHRoZSBTbmlwcGV0IFdpbmRvdyByZXF1aXJlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2Ygd29yZHByZXNzLXNlby4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZmllbGREYXRhID0gXy5maWx0ZXIoY29sbGVjdC5nZXRGaWVsZERhdGEoKSwgZnVuY3Rpb24gKGZpZWxkKSB7IHJldHVybiBfLmNvbnRhaW5zKHN1cHBvcnRlZFR5cGVzLCBmaWVsZC50eXBlKSB9KTtcbiAgICBfLmVhY2goZmllbGREYXRhLCBmdW5jdGlvbihmaWVsZCkge1xuICAgICAgICAvLyBSZW1vdmUgSFRNTCB0YWdzIHVzaW5nIGpRdWVyeSBpbiBjYXNlIG9mIGEgd3lzaXd5ZyBmaWVsZC5cbiAgICAgICAgdmFyIGNvbnRlbnQgPSAoZmllbGQudHlwZSA9PT0gJ3d5c2l3eWcnKSA/IGpRdWVyeShqUXVlcnkucGFyc2VIVE1MKGZpZWxkLmNvbnRlbnQpKS50ZXh0KCkgOiBmaWVsZC5jb250ZW50O1xuXG4gICAgICAgIHJlcGxhY2VWYXJzW2ZpZWxkLm5hbWVdLnJlcGxhY2VtZW50ID0gY29udGVudDtcbiAgICAgICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJVcGRhdGVkIFJlcGxhY2VWYXIgZm9yOiBcIiwgZmllbGQubmFtZSwgXCIgd2l0aDogXCIsIGNvbnRlbnQsIHJlcGxhY2VWYXJzW2ZpZWxkLm5hbWVdKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgY3JlYXRlUmVwbGFjZVZhcnM6IGNyZWF0ZVJlcGxhY2VWYXJzLFxuICAgIHVwZGF0ZVJlcGxhY2VWYXJzOiB1cGRhdGVSZXBsYWNlVmFyc1xufTtcbiIsIi8qIGdsb2JhbCBfICovXG52YXIgY29uZmlnID0gcmVxdWlyZSggXCIuL2NvbmZpZy9jb25maWcuanNcIiApO1xuXG52YXIgc2NyYXBlck9iamVjdHMgPSB7XG5cbiAgICAvL0Jhc2ljXG4gICAgJ3RleHQnOiAgICAgICAgIHJlcXVpcmUoIFwiLi9zY3JhcGVyL3NjcmFwZXIudGV4dC5qc1wiICksXG4gICAgJ3RleHRhcmVhJzogICAgIHJlcXVpcmUoIFwiLi9zY3JhcGVyL3NjcmFwZXIudGV4dGFyZWEuanNcIiApLFxuICAgICdlbWFpbCc6ICAgICAgICByZXF1aXJlKCBcIi4vc2NyYXBlci9zY3JhcGVyLmVtYWlsLmpzXCIgKSxcbiAgICAndXJsJzogICAgICAgICAgcmVxdWlyZSggXCIuL3NjcmFwZXIvc2NyYXBlci51cmwuanNcIiApLFxuXG4gICAgLy9Db250ZW50XG4gICAgJ3d5c2l3eWcnOiAgICAgIHJlcXVpcmUoIFwiLi9zY3JhcGVyL3NjcmFwZXIud3lzaXd5Zy5qc1wiICksXG4gICAgLy9UT0RPOiBBZGQgb2VtYmVkIGhhbmRsZXJcbiAgICAnaW1hZ2UnOiAgICAgICAgcmVxdWlyZSggXCIuL3NjcmFwZXIvc2NyYXBlci5pbWFnZS5qc1wiICksXG4gICAgJ2dhbGxlcnknOiAgICAgIHJlcXVpcmUoIFwiLi9zY3JhcGVyL3NjcmFwZXIuZ2FsbGVyeS5qc1wiICksXG5cbiAgICAvL0Nob2ljZVxuICAgIC8vVE9ETzogc2VsZWN0LCBjaGVja2JveCwgcmFkaW9cblxuICAgIC8vUmVsYXRpb25hbFxuICAgICd0YXhvbm9teSc6ICAgICByZXF1aXJlKCBcIi4vc2NyYXBlci9zY3JhcGVyLnRheG9ub215LmpzXCIgKVxuXG4gICAgLy9qUXVlcnlcbiAgICAvL1RPRE86IGdvb2dsZV9tYXAsIGRhdGVfcGlja2VyLCBjb2xvcl9waWNrZXJcblxufTtcblxudmFyIHNjcmFwZXJzID0ge307XG5cbi8qKlxuICogU2V0IGEgc2NyYXBlciBvYmplY3Qgb24gdGhlIHN0b3JlLiBFeGlzdGluZyBzY3JhcGVycyB3aWxsIGJlIG92ZXJ3cml0dGVuLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBzY3JhcGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICovXG52YXIgc2V0U2NyYXBlciA9IGZ1bmN0aW9uKHNjcmFwZXIsIHR5cGUpe1xuXG4gICAgaWYoY29uZmlnLmRlYnVnICYmIGhhc1NjcmFwZXIodHlwZSkpe1xuICAgICAgICBjb25zb2xlLndhcm4oJ1NjcmFwZXIgZm9yIFwiJyArIHR5cGUgKyAnXCIgYWxyZWFkeSBleGlzdHMgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4uJyApO1xuICAgIH1cblxuICAgIHNjcmFwZXJzW3R5cGVdID0gc2NyYXBlcjtcblxuICAgIHJldHVybiBzY3JhcGVyO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzY3JhcGVyIG9iamVjdCBmb3IgYSBmaWVsZCB0eXBlLlxuICogSWYgdGhlcmUgaXMgbm8gc2NyYXBlciBvYmplY3QgZm9yIHRoaXMgZmllbGQgdHlwZSBhIG5vLW9wIHNjcmFwZXIgaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHR5cGVcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbnZhciBnZXRTY3JhcGVyID0gZnVuY3Rpb24odHlwZSl7XG5cbiAgICBpZihoYXNTY3JhcGVyKHR5cGUpKXtcbiAgICAgICAgcmV0dXJuIHNjcmFwZXJzW3R5cGVdO1xuICAgIH1lbHNlIGlmKHR5cGUgaW4gc2NyYXBlck9iamVjdHMpe1xuICAgICAgICByZXR1cm4gc2V0U2NyYXBlcihuZXcgc2NyYXBlck9iamVjdHNbdHlwZV0oKSwgdHlwZSk7XG4gICAgfWVsc2V7XG4gICAgICAgIC8vSWYgd2UgZG8gbm90IGhhdmUgYSBzY3JhcGVyIGp1c3QgcGFzcyB0aGUgZmllbGRzIHRocm91Z2ggc28gaXQgd2lsbCBiZSBmaWx0ZXJlZCBvdXQgYnkgdGhlIGFwcC5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNjcmFwZTogZnVuY3Rpb24oZmllbGRzKXtcbiAgICAgICAgICAgICAgICBpZihjb25maWcuZGVidWcpe1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ05vIFNjcmFwZXIgZm9yIGZpZWxkIHR5cGU6ICcgKyB0eXBlICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGVyZSBhbHJlYWR5IGlzIGEgc2NyYXBlciBmb3IgYSBmaWVsZCB0eXBlIGluIHRoZSBzdG9yZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdHlwZVxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbnZhciBoYXNTY3JhcGVyID0gZnVuY3Rpb24odHlwZSl7XG5cbiAgICByZXR1cm4gKHR5cGUgaW4gc2NyYXBlcnMpO1xuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcblxuICAgIHNldFNjcmFwZXI6IHNldFNjcmFwZXIsXG4gICAgZ2V0U2NyYXBlcjogZ2V0U2NyYXBlclxuXG59OyIsInZhciBzY3JhcGVycyA9IHJlcXVpcmUoIFwiLi8uLi9zY3JhcGVyLXN0b3JlLmpzXCIgKTtcblxudmFyIFNjcmFwZXIgPSBmdW5jdGlvbigpIHt9O1xuXG5TY3JhcGVyLnByb3RvdHlwZS5zY3JhcGUgPSBmdW5jdGlvbihmaWVsZHMpe1xuXG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuXG4gICAgZmllbGRzID0gXy5tYXAoZmllbGRzLCBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICAgICAgaWYoZmllbGQudHlwZSAhPT0gJ2VtYWlsJyl7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5jb250ZW50ID0gZmllbGQuJGVsLmZpbmQoJ2lucHV0W3R5cGU9ZW1haWxdW2lkXj1hY2ZdJykudmFsKCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkcztcblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTY3JhcGVyOyIsInZhciBhdHRhY2htZW50Q2FjaGUgPSByZXF1aXJlKCBcIi4vLi4vY2FjaGUvY2FjaGUuYXR0YWNobWVudHMuanNcIiApO1xudmFyIHNjcmFwZXJzID0gcmVxdWlyZSggXCIuLy4uL3NjcmFwZXItc3RvcmUuanNcIiApO1xuXG52YXIgU2NyYXBlciA9IGZ1bmN0aW9uKCkge307XG5cblNjcmFwZXIucHJvdG90eXBlLnNjcmFwZSA9IGZ1bmN0aW9uKGZpZWxkcyl7XG5cbiAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICB2YXIgYXR0YWNobWVudF9pZHMgPSBbXTtcblxuICAgIGZpZWxkcyA9IF8ubWFwKGZpZWxkcywgZnVuY3Rpb24oZmllbGQpe1xuXG4gICAgICAgIGlmKGZpZWxkLnR5cGUgIT09ICdnYWxsZXJ5Jyl7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5jb250ZW50ID0gJyc7XG5cbiAgICAgICAgZmllbGQuJGVsLmZpbmQoJy5hY2YtZ2FsbGVyeS1hdHRhY2htZW50IGlucHV0W3R5cGU9aGlkZGVuXScpLmVhY2goIGZ1bmN0aW9uIChpbmRleCwgZWxlbWVudCl7XG5cbiAgICAgICAgICAgIC8vVE9ETzogSXMgdGhpcyB0aGUgYmVzdCB3YXkgdG8gZ2V0IHRoZSBhdHRhY2htZW50IGlkP1xuICAgICAgICAgICAgdmFyIGF0dGFjaG1lbnRfaWQgPSBqUXVlcnkoIHRoaXMgKS52YWwoKTtcblxuICAgICAgICAgICAgLy9Db2xsZWN0IGFsbCBhdHRhY2htZW50IGlkcyBmb3IgY2FjaGUgcmVmcmVzaFxuICAgICAgICAgICAgYXR0YWNobWVudF9pZHMucHVzaChhdHRhY2htZW50X2lkKTtcblxuICAgICAgICAgICAgLy9JZiB3ZSBoYXZlIHRoZSBhdHRhY2htZW50IGRhdGEgaW4gdGhlIGNhY2hlIHdlIGNhbiByZXR1cm4gYSB1c2VmdWwgdmFsdWVcbiAgICAgICAgICAgIGlmKGF0dGFjaG1lbnRDYWNoZS5nZXQoYXR0YWNobWVudF9pZCwgJ2F0dGFjaG1lbnQnKSl7XG5cbiAgICAgICAgICAgICAgICB2YXIgYXR0YWNobWVudCA9IGF0dGFjaG1lbnRDYWNoZS5nZXQoYXR0YWNobWVudF9pZCwgJ2F0dGFjaG1lbnQnKTtcblxuICAgICAgICAgICAgICAgIGZpZWxkLmNvbnRlbnQgKz0gJzxpbWcgc3JjPVwiJyArIGF0dGFjaG1lbnQudXJsICsgJ1wiIGFsdD1cIicgKyBhdHRhY2htZW50LmFsdCArICdcIiB0aXRsZT1cIicgKyBhdHRhY2htZW50LnRpdGxlICsgJ1wiPic7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG5cbiAgICBhdHRhY2htZW50Q2FjaGUucmVmcmVzaChhdHRhY2htZW50X2lkcyk7XG5cbiAgICByZXR1cm4gZmllbGRzO1xuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNjcmFwZXI7IiwidmFyIGF0dGFjaG1lbnRDYWNoZSA9IHJlcXVpcmUoIFwiLi8uLi9jYWNoZS9jYWNoZS5hdHRhY2htZW50cy5qc1wiICk7XG52YXIgc2NyYXBlcnMgPSByZXF1aXJlKCBcIi4vLi4vc2NyYXBlci1zdG9yZS5qc1wiICk7XG5cbnZhciBTY3JhcGVyID0gZnVuY3Rpb24oKSB7fTtcblxuU2NyYXBlci5wcm90b3R5cGUuc2NyYXBlID0gZnVuY3Rpb24oZmllbGRzKXtcblxuICAgIHZhciB0aGF0ID0gdGhpcztcblxuICAgIHZhciBhdHRhY2htZW50X2lkcyA9IFtdO1xuXG4gICAgZmllbGRzID0gXy5tYXAoZmllbGRzLCBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICAgICAgaWYoZmllbGQudHlwZSAhPT0gJ2ltYWdlJyl7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5jb250ZW50ID0gJyc7XG5cbiAgICAgICAgdmFyIGF0dGFjaG1lbnRfaWQgPSBmaWVsZC4kZWwuZmluZCgnaW5wdXRbdHlwZT1oaWRkZW5dJykudmFsKCk7XG5cbiAgICAgICAgYXR0YWNobWVudF9pZHMucHVzaChhdHRhY2htZW50X2lkKTtcblxuICAgICAgICBpZihhdHRhY2htZW50Q2FjaGUuZ2V0KGF0dGFjaG1lbnRfaWQsICdhdHRhY2htZW50Jykpe1xuXG4gICAgICAgICAgICB2YXIgYXR0YWNobWVudCA9IGF0dGFjaG1lbnRDYWNoZS5nZXQoYXR0YWNobWVudF9pZCwgJ2F0dGFjaG1lbnQnKTtcblxuICAgICAgICAgICAgZmllbGQuY29udGVudCArPSAnPGltZyBzcmM9XCInICsgYXR0YWNobWVudC51cmwgKyAnXCIgYWx0PVwiJyArIGF0dGFjaG1lbnQuYWx0ICsgJ1wiIHRpdGxlPVwiJyArIGF0dGFjaG1lbnQudGl0bGUgKyAnXCI+JztcblxuICAgICAgICB9XG5cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG5cbiAgICBhdHRhY2htZW50Q2FjaGUucmVmcmVzaChhdHRhY2htZW50X2lkcyk7XG5cbiAgICByZXR1cm4gZmllbGRzO1xuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNjcmFwZXI7IiwidmFyIHNjcmFwZXJzID0gcmVxdWlyZSggXCIuLy4uL3NjcmFwZXItc3RvcmUuanNcIiApO1xuXG52YXIgU2NyYXBlciA9IGZ1bmN0aW9uKCkge307XG5cblNjcmFwZXIucHJvdG90eXBlLnNjcmFwZSA9IGZ1bmN0aW9uKGZpZWxkcyl7XG5cbiAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICBmaWVsZHMgPSBfLm1hcChmaWVsZHMsIGZ1bmN0aW9uKGZpZWxkKXtcblxuICAgICAgICBpZihmaWVsZC50eXBlICE9PSAndGF4b25vbXknKXtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB0ZXJtcyA9IFtdO1xuXG4gICAgICAgIGlmKCBmaWVsZC4kZWwuZmluZCgnLmFjZi10YXhvbm9teS1maWVsZFtkYXRhLXR5cGU9XCJtdWx0aV9zZWxlY3RcIl0nKS5sZW5ndGggPiAwICl7XG5cbiAgICAgICAgICAgIHRlcm1zID0gXy5wbHVjayhcbiAgICAgICAgICAgICAgICBmaWVsZC4kZWwuZmluZCgnLmFjZi10YXhvbm9teS1maWVsZFtkYXRhLXR5cGU9XCJtdWx0aV9zZWxlY3RcIl0gaW5wdXQnKVxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0MignZGF0YScpXG4gICAgICAgICAgICAgICAgLCAndGV4dCdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgfWVsc2UgaWYoIGZpZWxkLiRlbC5maW5kKCcuYWNmLXRheG9ub215LWZpZWxkW2RhdGEtdHlwZT1cImNoZWNrYm94XCJdJykubGVuZ3RoID4gMCApe1xuXG4gICAgICAgICAgICB0ZXJtcyA9IF8ucGx1Y2soXG4gICAgICAgICAgICAgICAgZmllbGQuJGVsLmZpbmQoJy5hY2YtdGF4b25vbXktZmllbGRbZGF0YS10eXBlPVwiY2hlY2tib3hcIl0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQnKVxuICAgICAgICAgICAgICAgICAgICAubmV4dCgpLFxuICAgICAgICAgICAgICAgICd0ZXh0Q29udGVudCdcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgfWVsc2UgaWYoIGZpZWxkLiRlbC5maW5kKCdpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkJykubGVuZ3RoID4gMCApe1xuXG4gICAgICAgICAgICB0ZXJtcyA9IF8ucGx1Y2soXG4gICAgICAgICAgICAgICAgZmllbGQuJGVsLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQnKVxuICAgICAgICAgICAgICAgICAgICAucGFyZW50KCksXG4gICAgICAgICAgICAgICAgJ3RleHRDb250ZW50J1xuICAgICAgICAgICAgKTtcblxuICAgICAgICB9ZWxzZSBpZiggZmllbGQuJGVsLmZpbmQoJ3NlbGVjdCBvcHRpb246Y2hlY2tlZCcpLmxlbmd0aCA+IDAgKXtcblxuICAgICAgICAgICAgdGVybXMgPSBfLnBsdWNrKFxuICAgICAgICAgICAgICAgIGZpZWxkLiRlbC5maW5kKCdzZWxlY3Qgb3B0aW9uOmNoZWNrZWQnKSxcbiAgICAgICAgICAgICAgICAndGV4dENvbnRlbnQnXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIH1cblxuICAgICAgICB0ZXJtcyA9IF8ubWFwKCB0ZXJtcywgZnVuY3Rpb24odGVybSl7IHJldHVybiB0ZXJtLnRyaW0oKTsgfSApO1xuXG4gICAgICAgIGlmKHRlcm1zLmxlbmd0aD4wKXtcbiAgICAgICAgICAgIGZpZWxkLmNvbnRlbnQgPSAnPHVsPlxcbjxsaT4nICsgdGVybXMuam9pbignPC9saT5cXG48bGk+JykgKyAnPC9saT5cXG48L3VsPic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGRzO1xuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNjcmFwZXI7IiwidmFyIGNvbmZpZyA9IHJlcXVpcmUoIFwiLi8uLi9jb25maWcvY29uZmlnLmpzXCIgKTtcbnZhciBzY3JhcGVycyA9IHJlcXVpcmUoIFwiLi8uLi9zY3JhcGVyLXN0b3JlLmpzXCIgKTtcblxudmFyIFNjcmFwZXIgPSBmdW5jdGlvbigpIHt9O1xuXG5TY3JhcGVyLnByb3RvdHlwZS5zY3JhcGUgPSBmdW5jdGlvbihmaWVsZHMpe1xuXG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuXG4gICAgZmllbGRzID0gXy5tYXAoZmllbGRzLCBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICAgICAgaWYoZmllbGQudHlwZSAhPT0gJ3RleHQnKXtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkLmNvbnRlbnQgPSBmaWVsZC4kZWwuZmluZCgnaW5wdXRbdHlwZT10ZXh0XVtpZF49YWNmXScpLnZhbCgpO1xuXG4gICAgICAgIGZpZWxkID0gdGhhdC53cmFwSW5IZWFkbGluZShmaWVsZCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkcztcblxufTtcblxuU2NyYXBlci5wcm90b3R5cGUud3JhcEluSGVhZGxpbmUgPSBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICB2YXIgbGV2ZWwgPSB0aGlzLmlzSGVhZGxpbmUoZmllbGQpO1xuICAgIGlmKGxldmVsKXtcbiAgICAgICAgZmllbGQuY29udGVudCA9ICc8aCcgKyBsZXZlbCArICc+JyArIGZpZWxkLmNvbnRlbnQgKyAnPC9oJyArIGxldmVsICsgJz4nO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZDtcbn07XG5cblNjcmFwZXIucHJvdG90eXBlLmlzSGVhZGxpbmUgPSBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICB2YXIgbGV2ZWwgPSBmYWxzZTtcblxuICAgIHZhciBsZXZlbCA9IF8uZmluZChjb25maWcuc2NyYXBlci50ZXh0LmhlYWRsaW5lcywgZnVuY3Rpb24odmFsdWUsIGtleSl7XG4gICAgICAgIHJldHVybiBmaWVsZC5rZXkgPT09IGtleTtcbiAgICB9KTtcblxuICAgIC8vSXQgaGFzIHRvIGJlIGFuIGludGVnZXJcbiAgICBpZihsZXZlbCl7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICB9XG5cbiAgICAvL0hlYWRsaW5lcyBvbmx5IGV4aXN0IGZyb20gaDEgdG8gaDZcbiAgICBpZihsZXZlbDwxIHx8IGxldmVsPjYpe1xuICAgICAgICBsZXZlbCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBsZXZlbDtcblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTY3JhcGVyOyIsInZhciBzY3JhcGVycyA9IHJlcXVpcmUoIFwiLi8uLi9zY3JhcGVyLXN0b3JlLmpzXCIgKTtcblxudmFyIFNjcmFwZXIgPSBmdW5jdGlvbigpIHt9O1xuXG5TY3JhcGVyLnByb3RvdHlwZS5zY3JhcGUgPSBmdW5jdGlvbihmaWVsZHMpe1xuXG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuXG4gICAgZmllbGRzID0gXy5tYXAoZmllbGRzLCBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICAgICAgaWYoZmllbGQudHlwZSAhPT0gJ3RleHRhcmVhJyl7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBmaWVsZC5jb250ZW50ID0gZmllbGQuJGVsLmZpbmQoJ3RleHRhcmVhW2lkXj1hY2ZdJykudmFsKCk7XG5cbiAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkcztcblxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTY3JhcGVyOyIsInZhciBzY3JhcGVycyA9IHJlcXVpcmUoIFwiLi8uLi9zY3JhcGVyLXN0b3JlLmpzXCIgKTtcblxudmFyIFNjcmFwZXIgPSBmdW5jdGlvbigpIHt9O1xuXG5TY3JhcGVyLnByb3RvdHlwZS5zY3JhcGUgPSBmdW5jdGlvbihmaWVsZHMpe1xuXG4gICAgdmFyIHRoYXQgPSB0aGlzO1xuXG4gICAgZmllbGRzID0gXy5tYXAoZmllbGRzLCBmdW5jdGlvbihmaWVsZCl7XG5cbiAgICAgICAgaWYoZmllbGQudHlwZSAhPT0gJ3VybCcpe1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuY29udGVudCA9IGZpZWxkLiRlbC5maW5kKCdpbnB1dFt0eXBlPXVybF1baWRePWFjZl0nKS52YWwoKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGRzO1xuXG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNjcmFwZXI7IiwidmFyIHNjcmFwZXJzID0gcmVxdWlyZSggXCIuLy4uL3NjcmFwZXItc3RvcmUuanNcIiApO1xuXG52YXIgU2NyYXBlciA9IGZ1bmN0aW9uKCkge307XG5cblNjcmFwZXIucHJvdG90eXBlLnNjcmFwZSA9IGZ1bmN0aW9uKGZpZWxkcyl7XG5cbiAgICB2YXIgdGhhdCA9IHRoaXM7XG5cbiAgICBmaWVsZHMgPSBfLm1hcChmaWVsZHMsIGZ1bmN0aW9uKGZpZWxkKXtcblxuICAgICAgICBpZihmaWVsZC50eXBlICE9PSAnd3lzaXd5Zycpe1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGQuY29udGVudCA9IGdldENvbnRlbnRUaW55TUNFKGZpZWxkKTtcblxuICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGRzO1xuXG59O1xuXG4vKipcbiAqIEFkYXB0ZWQgZnJvbSB3cC1zZW8tc2hvcnRjb2RlLXBsdWdpbi0zMDUuanM6MTE1LTEyNlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbnZhciBnZXRDb250ZW50VGlueU1DRSA9IGZ1bmN0aW9uKGZpZWxkKSB7XG4gICAgdmFyIHRleHRhcmVhID0gZmllbGQuJGVsLmZpbmQoJ3RleHRhcmVhJylbMF07XG5cbiAgICB2YXIgZWRpdG9ySUQgPSB0ZXh0YXJlYS5pZDtcblxuICAgIHZhciB2YWwgPSB0ZXh0YXJlYS52YWx1ZTtcblxuICAgIGlmICggaXNUaW55TUNFQXZhaWxhYmxlKGVkaXRvcklEKSApIHtcbiAgICAgICAgdmFsID0gdGlueU1DRS5nZXQoIGVkaXRvcklEICkgJiYgdGlueU1DRS5nZXQoIGVkaXRvcklEICkuZ2V0Q29udGVudCgpIHx8ICcnO1xuICAgIH1cblxuICAgIHJldHVybiB2YWw7XG59O1xuXG4vKipcbiAqIEFkYXB0ZWQgZnJvbSB3cC1zZW8tcG9zdC1zY3JhcGVyLXBsdWdpbi0zMTAuanM6MTk2LTIxMFxuICpcbiAqXG4gKiBAcGFyYW0gZWRpdG9ySURcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG52YXIgaXNUaW55TUNFQXZhaWxhYmxlID0gZnVuY3Rpb24oZWRpdG9ySUQpIHtcbiAgICBpZiAoIHR5cGVvZiB0aW55TUNFID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgICB0eXBlb2YgdGlueU1DRS5lZGl0b3JzID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgICB0aW55TUNFLmVkaXRvcnMubGVuZ3RoID09PSAwIHx8XG4gICAgICAgIHRpbnlNQ0UuZ2V0KCBlZGl0b3JJRCApID09PSBudWxsIHx8XG4gICAgICAgIHRpbnlNQ0UuZ2V0KCBlZGl0b3JJRCApLmlzSGlkZGVuKCkgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gU2NyYXBlcjsiXX0=
14
  YoastSEO.app.registerModification('content', collect.append.bind(collect), config.pluginName);
15
 
16
  this.bindListeners();
17
+
18
  };
19
 
20
  App.prototype.bindListeners = function(){
21
 
22
+ var _self = this;
23
+
24
  if(helper.acf_version >= 5){
25
+
26
+ jQuery(function(){
27
+
28
+ replaceVars.updateReplaceVars(collect);
29
+
30
  acf.add_action('change remove append sortstop', _self.maybeRefresh);
31
+ acf.add_action('change remove append sortstop', replaceVars.updateReplaceVars.bind(_self, collect));
32
+
33
  });
34
+
35
  }else{
36
+
37
  var fieldSelectors = config.fieldSelectors.slice(0);
38
+ var wysiwygSelector = 'textarea[id^=wysiwyg-acf]';
39
 
40
  // Ignore Wysiwyg fields because they trigger a refresh in Yoast SEO itself
41
+ fieldSelectorsWithoutWysiwyg = _.without(fieldSelectors, wysiwygSelector);
 
 
42
 
43
  jQuery(document).on('acf/setup_fields', function(){
44
+
45
+ replaceVars.updateReplaceVars(collect);
46
+
47
+ var fieldsWithoutWysiwyg = jQuery('#post-body, #edittag').find(fieldSelectorsWithoutWysiwyg.join(','));
48
  var fields = jQuery('#post-body, #edittag').find(fieldSelectors.join(','));
 
 
 
 
49
 
50
+ fieldsWithoutWysiwyg.on('change', _self.maybeRefresh.bind(_self) );
51
  // Do not ignore Wysiwyg fields for the purpose of Replace Vars.
52
+ fields.on('change', replaceVars.updateReplaceVars.bind(_self, collect));
53
+
54
  if (YoastSEO.wp._tinyMCEHelper) {
55
+
56
+ jQuery(wysiwygSelector).each( function () {
57
  YoastSEO.wp._tinyMCEHelper.addEventHandler(this.id, [ 'input', 'change', 'cut', 'paste' ],
58
+ replaceVars.updateReplaceVars.bind(_self, collect));
59
  });
 
60
 
61
+ }
62
 
63
  //Also refresh on media close as attachment data might have changed
64
  wp.media.frame.on('close', _self.maybeRefresh.bind(_self) );
65
  });
 
66
 
67
+ }
68
+ };
69
 
70
  App.prototype.maybeRefresh = function(){
71
 
208
  var $el = jQuery(this).parents('.field').last();
209
 
210
  field_data.push({
211
+ $el : $el,
212
+ key : $el.data('field_key'),
213
+ name : $el.data('field_name'),
214
+ type : $el.data('field_type'),
215
+ post_meta_key : $el.data('field_name')
216
  });
217
 
218
  });
220
  module.exports = field_data;
221
  },{"./../config/config.js":7}],5:[function(require,module,exports){
222
  module.exports = function(){
223
+
224
+ var outerFieldsName = [
225
+ 'flexible_content',
226
+ 'repeater',
227
+ 'group'
228
+ ];
229
+
230
+ var innerFields = [];
231
+ var outerFields = [];
232
+
233
+ var fields = _.map(acf.get_fields(), function(field){
234
 
235
  var field_data = jQuery.extend( true, {}, acf.get_data(jQuery(field)) );
236
  field_data.$el = jQuery(field);
237
+ field_data.post_meta_key = field_data.name;
238
+
239
+ // Collect nested and parent
240
+ if( outerFieldsName.indexOf(field_data.type) === -1 ) {
241
+ innerFields.push(field_data);
242
+ }else{
243
+ outerFields.push(field_data);
244
+ }
245
+
246
  return field_data;
247
 
248
  });
249
+
250
+ if( outerFields.length === 0){
251
+ return fields;
252
+ }
253
+
254
+ // Transform field names for nested fields.
255
+ _.each(innerFields, function(inner){
256
+
257
+ _.each(outerFields, function(outer){
258
+
259
+ if (jQuery.contains(outer.$el[0], inner.$el[0])) {
260
+
261
+ // Types that hold multiple children.
262
+ if (outer.type === 'flexible_content' || outer.type === 'repeater'){
263
+
264
+ outer.children = outer.children || [];
265
+ outer.children.push(inner);
266
+ inner.parent = outer;
267
+ inner.post_meta_key = outer.name + '_' + (outer.children.length - 1) + '_' + inner.name;
268
+
269
+ }
270
+
271
+ // Types that hold single children.
272
+ if (outer.type === 'group') {
273
+
274
+ outer.children = [inner];
275
+ inner.parent = outer;
276
+ inner.post_meta_key = outer.name + '_' + inner.name;
277
+
278
+ }
279
+
280
+ }
281
+
282
+ });
283
+
284
+ });
285
+
286
+ return fields;
287
+
288
  };
289
+
290
  },{}],6:[function(require,module,exports){
291
  /* global acf, _ */
292
 
304
  var used_types = _.uniq(_.pluck(field_data, 'type'));
305
 
306
  if(config.debug) {
307
+
308
+ console.log('Used types:');
309
  console.log(used_types);
310
+
311
  }
312
 
313
  _.each(used_types, function(type){
334
  });
335
 
336
  if(config.debug){
337
+ console.log('Field data:');
338
  console.table(field_data);
339
 
340
+ console.log('Data:');
341
  console.log(data);
342
  }
343
 
410
 
411
  var supportedTypes = ['email', 'text', 'textarea', 'url', 'wysiwyg'];
412
 
413
+ var replaceVars = {};
414
+
415
+ var replaceVarPluginAvailable = function(){
416
  if (ReplaceVar === undefined) {
417
  if (config.debug) {
418
+ console.log('Replacing ACF variables in the Snippet Window requires Yoast SEO >= 5.3.');
419
  }
420
+ return false;
421
+ }
422
+ return true;
423
+ };
424
+
425
+ var updateReplaceVars = function (collect) {
426
+ if (!replaceVarPluginAvailable()) {
427
  return;
428
  }
429
 
430
+ var fieldData = _.filter(collect.getFieldData(), function (field) { return _.contains(supportedTypes, field.type) });
 
431
 
432
  _.each(fieldData, function(field) {
433
  // Remove HTML tags using jQuery in case of a wysiwyg field.
434
+ var content = (field.type === 'wysiwyg') ? jQuery(jQuery.parseHTML(field.content)).text() : field.content;
435
 
436
+ if(replaceVars[field.post_meta_key]===undefined){
 
 
 
 
 
437
 
438
+ replaceVars[field.post_meta_key] = new ReplaceVar( '%%cf_'+field.post_meta_key+'%%', content, { source: 'direct' } );
439
+ YoastSEO.wp.replaceVarsPlugin.addReplacement( replaceVars[field.post_meta_key] );
440
 
441
+ if (config.debug) {
442
+ console.log("Created ReplaceVar for: ", field.post_meta_key, " with: ", content, replaceVars[field.post_meta_key]);
443
+ }
 
 
 
 
444
 
445
+ }else{
446
+
447
+ replaceVars[field.post_meta_key].replacement = content;
448
+
449
+ if (config.debug) {
450
+ console.log("Updated ReplaceVar for: ", field.post_meta_key, " with: ", content, replaceVars[field.post_meta_key]);
451
+ }
452
 
 
 
 
453
  }
454
+
455
  });
456
  };
457
 
458
  module.exports = {
 
459
  updateReplaceVars: updateReplaceVars
460
  };
461
 
908
  };
909
 
910
  module.exports = Scraper;
911
+ },{"./../scraper-store.js":11}]},{},[9]);
 
package-lock.json CHANGED
@@ -1,8 +1,18 @@
1
  {
2
  "name": "yoast-acf-analysis",
3
- "version": "2.0.0-dev",
4
  "lockfileVersion": 1,
 
5
  "dependencies": {
 
 
 
 
 
 
 
 
 
6
  "acorn": {
7
  "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
8
  "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA=",
@@ -16,17 +26,29 @@
16
  "agent-base": {
17
  "version": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
18
  "integrity": "sha1-vY+ehqjrIh//oHvRS+/VXfFCgV4=",
19
- "dev": true
 
 
 
 
20
  },
21
  "align-text": {
22
  "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
23
  "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
24
- "dev": true
 
 
 
 
 
25
  },
26
  "alter": {
27
  "version": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz",
28
  "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=",
29
- "dev": true
 
 
 
30
  },
31
  "amdefine": {
32
  "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
@@ -37,12 +59,19 @@
37
  "anymatch": {
38
  "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
39
  "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
40
- "dev": true
 
 
 
 
41
  },
42
  "arr-diff": {
43
  "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
44
  "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
45
- "dev": true
 
 
 
46
  },
47
  "arr-flatten": {
48
  "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz",
@@ -77,12 +106,20 @@
77
  "asn1.js": {
78
  "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
79
  "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
80
- "dev": true
 
 
 
 
 
81
  },
82
  "assert": {
83
  "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
84
  "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
85
- "dev": true
 
 
 
86
  },
87
  "assertion-error": {
88
  "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
@@ -102,7 +139,10 @@
102
  "astw": {
103
  "version": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz",
104
  "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
105
- "dev": true
 
 
 
106
  },
107
  "async-each": {
108
  "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
@@ -132,12 +172,21 @@
132
  "brace-expansion": {
133
  "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
134
  "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
135
- "dev": true
 
 
 
 
136
  },
137
  "braces": {
138
  "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
139
  "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
140
- "dev": true
 
 
 
 
 
141
  },
142
  "breakable": {
143
  "version": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz",
@@ -152,12 +201,22 @@
152
  "browser-pack": {
153
  "version": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
154
  "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
155
- "dev": true
 
 
 
 
 
 
 
156
  },
157
  "browser-resolve": {
158
  "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
159
  "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
160
  "dev": true,
 
 
 
161
  "dependencies": {
162
  "resolve": {
163
  "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
@@ -174,42 +233,128 @@
174
  "browserify": {
175
  "version": "https://registry.npmjs.org/browserify/-/browserify-14.3.0.tgz",
176
  "integrity": "sha1-/QA6I4asGuwSfwl4haPMY3O3RcQ=",
177
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  },
179
  "browserify-aes": {
180
  "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
181
  "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
182
- "dev": true
 
 
 
 
 
 
 
183
  },
184
  "browserify-cipher": {
185
  "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
186
  "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
187
- "dev": true
 
 
 
 
 
188
  },
189
  "browserify-des": {
190
  "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
191
  "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
192
- "dev": true
 
 
 
 
 
193
  },
194
  "browserify-rsa": {
195
  "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
196
  "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
197
- "dev": true
 
 
 
 
198
  },
199
  "browserify-sign": {
200
  "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
201
  "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
202
- "dev": true
 
 
 
 
 
 
 
 
 
203
  },
204
  "browserify-zlib": {
205
  "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
206
  "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
207
- "dev": true
 
 
 
208
  },
209
  "buffer": {
210
  "version": "https://registry.npmjs.org/buffer/-/buffer-5.0.6.tgz",
211
  "integrity": "sha1-LqZp9+7Atu2gWwj4tf9mGyhXNYg=",
212
- "dev": true
 
 
 
 
213
  },
214
  "buffer-shims": {
215
  "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
@@ -239,32 +384,65 @@
239
  "center-align": {
240
  "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
241
  "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
242
- "dev": true
 
 
 
 
243
  },
244
  "chai-nightwatch": {
245
  "version": "https://registry.npmjs.org/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz",
246
  "integrity": "sha1-HKVt52jTwIaP5/wvTTLC/olOa+k=",
247
- "dev": true
 
 
 
 
248
  },
249
  "chokidar": {
250
  "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
251
  "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
252
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
253
  },
254
  "chromedriver": {
255
  "version": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.29.0.tgz",
256
  "integrity": "sha1-4/2LPAjc4lYrgO8bC4Rll2WdDMM=",
257
- "dev": true
 
 
 
 
 
 
258
  },
259
  "cipher-base": {
260
  "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
261
  "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
262
- "dev": true
 
 
 
263
  },
264
  "cliui": {
265
  "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
266
  "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
267
  "dev": true,
 
 
 
 
 
268
  "dependencies": {
269
  "wordwrap": {
270
  "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
@@ -281,17 +459,37 @@
281
  "combine-source-map": {
282
  "version": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
283
  "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
284
- "dev": true
 
 
 
 
 
 
285
  },
286
  "commander": {
287
  "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
288
  "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
289
- "dev": true
 
 
 
290
  },
291
  "commoner": {
292
  "version": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
293
  "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=",
294
  "dev": true,
 
 
 
 
 
 
 
 
 
 
 
295
  "dependencies": {
296
  "ast-types": {
297
  "version": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
@@ -301,12 +499,25 @@
301
  "glob": {
302
  "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
303
  "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
304
- "dev": true
 
 
 
 
 
 
 
305
  },
306
  "recast": {
307
  "version": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
308
  "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
309
- "dev": true
 
 
 
 
 
 
310
  }
311
  }
312
  },
@@ -319,18 +530,34 @@
319
  "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
320
  "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
321
  "dev": true,
 
 
 
 
 
322
  "dependencies": {
323
  "readable-stream": {
324
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
325
  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
326
- "dev": true
 
 
 
 
 
 
 
 
327
  }
328
  }
329
  },
330
  "console-browserify": {
331
  "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
332
  "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
333
- "dev": true
 
 
 
334
  },
335
  "constants-browserify": {
336
  "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -350,22 +577,52 @@
350
  "create-ecdh": {
351
  "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
352
  "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
353
- "dev": true
 
 
 
 
354
  },
355
  "create-hash": {
356
  "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
357
  "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
358
- "dev": true
 
 
 
 
 
 
359
  },
360
  "create-hmac": {
361
  "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
362
  "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
363
- "dev": true
 
 
 
 
 
 
 
 
364
  },
365
  "crypto-browserify": {
366
  "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
367
  "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
368
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
 
369
  },
370
  "data-uri-to-buffer": {
371
  "version": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz",
@@ -380,7 +637,10 @@
380
  "debug": {
381
  "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
382
  "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
383
- "dev": true
 
 
 
384
  },
385
  "decamelize": {
386
  "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
@@ -390,7 +650,10 @@
390
  "deep-eql": {
391
  "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
392
  "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
393
- "dev": true
 
 
 
394
  },
395
  "deep-is": {
396
  "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -406,6 +669,18 @@
406
  "version": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz",
407
  "integrity": "sha1-siYJ8sehG6ej2xFoBcE5scr/qdI=",
408
  "dev": true,
 
 
 
 
 
 
 
 
 
 
 
 
409
  "dependencies": {
410
  "esprima-fb": {
411
  "version": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
@@ -417,22 +692,41 @@
417
  "degenerator": {
418
  "version": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
419
  "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
420
- "dev": true
 
 
 
 
 
421
  },
422
  "deps-sort": {
423
  "version": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
424
  "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
425
- "dev": true
 
 
 
 
 
 
426
  },
427
  "des.js": {
428
  "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
429
  "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
430
- "dev": true
 
 
 
 
431
  },
432
  "detective": {
433
  "version": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz",
434
  "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=",
435
- "dev": true
 
 
 
 
436
  },
437
  "diff": {
438
  "version": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
@@ -442,7 +736,12 @@
442
  "diffie-hellman": {
443
  "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
444
  "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
445
- "dev": true
 
 
 
 
 
446
  },
447
  "domain-browser": {
448
  "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
@@ -458,7 +757,10 @@
458
  "duplexer2": {
459
  "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
460
  "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
461
- "dev": true
 
 
 
462
  },
463
  "ejs": {
464
  "version": "https://registry.npmjs.org/ejs/-/ejs-0.8.3.tgz",
@@ -468,7 +770,16 @@
468
  "elliptic": {
469
  "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
470
  "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
471
- "dev": true
 
 
 
 
 
 
 
 
 
472
  },
473
  "escape-string-regexp": {
474
  "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -479,6 +790,13 @@
479
  "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
480
  "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
481
  "dev": true,
 
 
 
 
 
 
 
482
  "dependencies": {
483
  "esprima": {
484
  "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
@@ -489,7 +807,10 @@
489
  "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
490
  "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
491
  "dev": true,
492
- "optional": true
 
 
 
493
  }
494
  }
495
  },
@@ -512,7 +833,16 @@
512
  "version": "3.3.4",
513
  "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
514
  "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
515
- "dev": true
 
 
 
 
 
 
 
 
 
516
  },
517
  "events": {
518
  "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
@@ -522,17 +852,26 @@
522
  "evp_bytestokey": {
523
  "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
524
  "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
525
- "dev": true
 
 
 
526
  },
527
  "expand-brackets": {
528
  "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
529
  "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
530
- "dev": true
 
 
 
531
  },
532
  "expand-range": {
533
  "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
534
  "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
535
- "dev": true
 
 
 
536
  },
537
  "extend": {
538
  "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
@@ -542,7 +881,10 @@
542
  "extglob": {
543
  "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
544
  "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
545
- "dev": true
 
 
 
546
  },
547
  "fast-levenshtein": {
548
  "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
@@ -562,7 +904,14 @@
562
  "fill-range": {
563
  "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
564
  "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
565
- "dev": true
 
 
 
 
 
 
 
566
  },
567
  "for-in": {
568
  "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -572,7 +921,10 @@
572
  "for-own": {
573
  "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
574
  "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
575
- "dev": true
 
 
 
576
  },
577
  "from": {
578
  "version": "0.1.7",
@@ -591,6 +943,10 @@
591
  "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=",
592
  "dev": true,
593
  "optional": true,
 
 
 
 
594
  "dependencies": {
595
  "abbrev": {
596
  "version": "1.1.0",
@@ -619,7 +975,11 @@
619
  "version": "1.1.2",
620
  "bundled": true,
621
  "dev": true,
622
- "optional": true
 
 
 
 
623
  },
624
  "asn1": {
625
  "version": "0.2.3",
@@ -660,22 +1020,35 @@
660
  "version": "1.0.1",
661
  "bundled": true,
662
  "dev": true,
663
- "optional": true
 
 
 
664
  },
665
  "block-stream": {
666
  "version": "0.0.9",
667
  "bundled": true,
668
- "dev": true
 
 
 
669
  },
670
  "boom": {
671
  "version": "2.10.1",
672
  "bundled": true,
673
- "dev": true
 
 
 
674
  },
675
  "brace-expansion": {
676
  "version": "1.1.6",
677
  "bundled": true,
678
- "dev": true
 
 
 
 
679
  },
680
  "buffer-shims": {
681
  "version": "1.0.0",
@@ -692,7 +1065,14 @@
692
  "version": "1.1.3",
693
  "bundled": true,
694
  "dev": true,
695
- "optional": true
 
 
 
 
 
 
 
696
  },
697
  "code-point-at": {
698
  "version": "1.1.0",
@@ -702,13 +1082,19 @@
702
  "combined-stream": {
703
  "version": "1.0.5",
704
  "bundled": true,
705
- "dev": true
 
 
 
706
  },
707
  "commander": {
708
  "version": "2.9.0",
709
  "bundled": true,
710
  "dev": true,
711
- "optional": true
 
 
 
712
  },
713
  "concat-map": {
714
  "version": "0.0.1",
@@ -729,13 +1115,19 @@
729
  "version": "2.0.5",
730
  "bundled": true,
731
  "dev": true,
732
- "optional": true
 
 
 
733
  },
734
  "dashdash": {
735
  "version": "1.14.1",
736
  "bundled": true,
737
  "dev": true,
738
  "optional": true,
 
 
 
739
  "dependencies": {
740
  "assert-plus": {
741
  "version": "1.0.0",
@@ -749,7 +1141,10 @@
749
  "version": "2.2.0",
750
  "bundled": true,
751
  "dev": true,
752
- "optional": true
 
 
 
753
  },
754
  "deep-extend": {
755
  "version": "0.4.1",
@@ -772,7 +1167,10 @@
772
  "version": "0.1.1",
773
  "bundled": true,
774
  "dev": true,
775
- "optional": true
 
 
 
776
  },
777
  "escape-string-regexp": {
778
  "version": "1.0.5",
@@ -801,7 +1199,12 @@
801
  "version": "2.1.2",
802
  "bundled": true,
803
  "dev": true,
804
- "optional": true
 
 
 
 
 
805
  },
806
  "fs.realpath": {
807
  "version": "1.0.0",
@@ -811,19 +1214,40 @@
811
  "fstream": {
812
  "version": "1.0.10",
813
  "bundled": true,
814
- "dev": true
 
 
 
 
 
 
815
  },
816
  "fstream-ignore": {
817
  "version": "1.0.5",
818
  "bundled": true,
819
  "dev": true,
820
- "optional": true
 
 
 
 
 
821
  },
822
  "gauge": {
823
  "version": "2.7.3",
824
  "bundled": true,
825
  "dev": true,
826
- "optional": true
 
 
 
 
 
 
 
 
 
 
827
  },
828
  "generate-function": {
829
  "version": "2.0.0",
@@ -835,13 +1259,19 @@
835
  "version": "1.2.0",
836
  "bundled": true,
837
  "dev": true,
838
- "optional": true
 
 
 
839
  },
840
  "getpass": {
841
  "version": "0.1.6",
842
  "bundled": true,
843
  "dev": true,
844
  "optional": true,
 
 
 
845
  "dependencies": {
846
  "assert-plus": {
847
  "version": "1.0.0",
@@ -854,7 +1284,15 @@
854
  "glob": {
855
  "version": "7.1.1",
856
  "bundled": true,
857
- "dev": true
 
 
 
 
 
 
 
 
858
  },
859
  "graceful-fs": {
860
  "version": "4.1.11",
@@ -871,13 +1309,22 @@
871
  "version": "2.0.6",
872
  "bundled": true,
873
  "dev": true,
874
- "optional": true
 
 
 
 
 
 
875
  },
876
  "has-ansi": {
877
  "version": "2.0.0",
878
  "bundled": true,
879
  "dev": true,
880
- "optional": true
 
 
 
881
  },
882
  "has-unicode": {
883
  "version": "2.0.1",
@@ -889,7 +1336,13 @@
889
  "version": "3.1.3",
890
  "bundled": true,
891
  "dev": true,
892
- "optional": true
 
 
 
 
 
 
893
  },
894
  "hoek": {
895
  "version": "2.16.3",
@@ -900,12 +1353,21 @@
900
  "version": "1.1.1",
901
  "bundled": true,
902
  "dev": true,
903
- "optional": true
 
 
 
 
 
904
  },
905
  "inflight": {
906
  "version": "1.0.6",
907
  "bundled": true,
908
- "dev": true
 
 
 
 
909
  },
910
  "inherits": {
911
  "version": "2.0.3",
@@ -921,13 +1383,22 @@
921
  "is-fullwidth-code-point": {
922
  "version": "1.0.0",
923
  "bundled": true,
924
- "dev": true
 
 
 
925
  },
926
  "is-my-json-valid": {
927
  "version": "2.15.0",
928
  "bundled": true,
929
  "dev": true,
930
- "optional": true
 
 
 
 
 
 
931
  },
932
  "is-property": {
933
  "version": "1.0.2",
@@ -956,7 +1427,10 @@
956
  "version": "1.0.2",
957
  "bundled": true,
958
  "dev": true,
959
- "optional": true
 
 
 
960
  },
961
  "jsbn": {
962
  "version": "0.1.1",
@@ -986,7 +1460,12 @@
986
  "version": "1.3.1",
987
  "bundled": true,
988
  "dev": true,
989
- "optional": true
 
 
 
 
 
990
  },
991
  "mime-db": {
992
  "version": "1.26.0",
@@ -996,12 +1475,18 @@
996
  "mime-types": {
997
  "version": "2.1.14",
998
  "bundled": true,
999
- "dev": true
 
 
 
1000
  },
1001
  "minimatch": {
1002
  "version": "3.0.3",
1003
  "bundled": true,
1004
- "dev": true
 
 
 
1005
  },
1006
  "minimist": {
1007
  "version": "0.0.8",
@@ -1011,7 +1496,10 @@
1011
  "mkdirp": {
1012
  "version": "0.5.1",
1013
  "bundled": true,
1014
- "dev": true
 
 
 
1015
  },
1016
  "ms": {
1017
  "version": "0.7.1",
@@ -1023,19 +1511,39 @@
1023
  "version": "0.6.33",
1024
  "bundled": true,
1025
  "dev": true,
1026
- "optional": true
 
 
 
 
 
 
 
 
 
 
 
1027
  },
1028
  "nopt": {
1029
  "version": "3.0.6",
1030
  "bundled": true,
1031
  "dev": true,
1032
- "optional": true
 
 
 
1033
  },
1034
  "npmlog": {
1035
  "version": "4.0.2",
1036
  "bundled": true,
1037
  "dev": true,
1038
- "optional": true
 
 
 
 
 
 
1039
  },
1040
  "number-is-nan": {
1041
  "version": "1.0.1",
@@ -1057,7 +1565,10 @@
1057
  "once": {
1058
  "version": "1.4.0",
1059
  "bundled": true,
1060
- "dev": true
 
 
 
1061
  },
1062
  "path-is-absolute": {
1063
  "version": "1.0.1",
@@ -1074,7 +1585,10 @@
1074
  "version": "2.0.1",
1075
  "bundled": true,
1076
  "dev": true,
1077
- "optional": true
 
 
 
1078
  },
1079
  "process-nextick-args": {
1080
  "version": "1.0.7",
@@ -1098,6 +1612,12 @@
1098
  "bundled": true,
1099
  "dev": true,
1100
  "optional": true,
 
 
 
 
 
 
1101
  "dependencies": {
1102
  "minimist": {
1103
  "version": "1.2.0",
@@ -1111,18 +1631,52 @@
1111
  "version": "2.2.2",
1112
  "bundled": true,
1113
  "dev": true,
1114
- "optional": true
 
 
 
 
 
 
 
 
 
1115
  },
1116
  "request": {
1117
  "version": "2.79.0",
1118
  "bundled": true,
1119
  "dev": true,
1120
- "optional": true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1121
  },
1122
  "rimraf": {
1123
  "version": "2.5.4",
1124
  "bundled": true,
1125
- "dev": true
 
 
 
1126
  },
1127
  "semver": {
1128
  "version": "5.3.0",
@@ -1146,13 +1700,27 @@
1146
  "version": "1.0.9",
1147
  "bundled": true,
1148
  "dev": true,
1149
- "optional": true
 
 
 
1150
  },
1151
  "sshpk": {
1152
  "version": "1.10.2",
1153
  "bundled": true,
1154
  "dev": true,
1155
  "optional": true,
 
 
 
 
 
 
 
 
 
 
 
1156
  "dependencies": {
1157
  "assert-plus": {
1158
  "version": "1.0.0",
@@ -1162,14 +1730,19 @@
1162
  }
1163
  }
1164
  },
1165
- "string_decoder": {
1166
- "version": "0.10.31",
1167
- "bundled": true,
1168
- "dev": true
1169
- },
1170
  "string-width": {
1171
  "version": "1.0.2",
1172
  "bundled": true,
 
 
 
 
 
 
 
 
 
 
1173
  "dev": true
1174
  },
1175
  "stringstream": {
@@ -1181,7 +1754,10 @@
1181
  "strip-ansi": {
1182
  "version": "3.0.1",
1183
  "bundled": true,
1184
- "dev": true
 
 
 
1185
  },
1186
  "strip-json-comments": {
1187
  "version": "2.0.1",
@@ -1198,25 +1774,52 @@
1198
  "tar": {
1199
  "version": "2.2.1",
1200
  "bundled": true,
1201
- "dev": true
 
 
 
 
 
1202
  },
1203
  "tar-pack": {
1204
  "version": "3.3.0",
1205
  "bundled": true,
1206
  "dev": true,
1207
  "optional": true,
 
 
 
 
 
 
 
 
 
 
1208
  "dependencies": {
1209
  "once": {
1210
  "version": "1.3.3",
1211
  "bundled": true,
1212
  "dev": true,
1213
- "optional": true
 
 
 
1214
  },
1215
  "readable-stream": {
1216
  "version": "2.1.5",
1217
  "bundled": true,
1218
  "dev": true,
1219
- "optional": true
 
 
 
 
 
 
 
 
 
1220
  }
1221
  }
1222
  },
@@ -1224,7 +1827,10 @@
1224
  "version": "2.3.2",
1225
  "bundled": true,
1226
  "dev": true,
1227
- "optional": true
 
 
 
1228
  },
1229
  "tunnel-agent": {
1230
  "version": "0.4.3",
@@ -1259,13 +1865,19 @@
1259
  "version": "1.3.6",
1260
  "bundled": true,
1261
  "dev": true,
1262
- "optional": true
 
 
 
1263
  },
1264
  "wide-align": {
1265
  "version": "1.1.0",
1266
  "bundled": true,
1267
  "dev": true,
1268
- "optional": true
 
 
 
1269
  },
1270
  "wrappy": {
1271
  "version": "1.0.2",
@@ -1284,6 +1896,10 @@
1284
  "version": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
1285
  "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
1286
  "dev": true,
 
 
 
 
1287
  "dependencies": {
1288
  "isarray": {
1289
  "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -1293,7 +1909,13 @@
1293
  "readable-stream": {
1294
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
1295
  "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
1296
- "dev": true
 
 
 
 
 
 
1297
  }
1298
  }
1299
  },
@@ -1305,22 +1927,45 @@
1305
  "get-uri": {
1306
  "version": "https://registry.npmjs.org/get-uri/-/get-uri-1.1.0.tgz",
1307
  "integrity": "sha1-c3XQTa9/y1hLNjJnnL3zObUbsUk=",
1308
- "dev": true
 
 
 
 
 
 
 
 
1309
  },
1310
  "glob": {
1311
  "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1312
  "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
1313
- "dev": true
 
 
 
 
 
 
 
 
1314
  },
1315
  "glob-base": {
1316
  "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1317
  "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1318
- "dev": true
 
 
 
 
1319
  },
1320
  "glob-parent": {
1321
  "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1322
  "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1323
- "dev": true
 
 
 
1324
  },
1325
  "graceful-fs": {
1326
  "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
@@ -1340,7 +1985,10 @@
1340
  "has": {
1341
  "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
1342
  "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
1343
- "dev": true
 
 
 
1344
  },
1345
  "has-flag": {
1346
  "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
@@ -1350,17 +1998,28 @@
1350
  "hash-base": {
1351
  "version": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
1352
  "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
1353
- "dev": true
 
 
 
1354
  },
1355
  "hash.js": {
1356
  "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
1357
  "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
1358
- "dev": true
 
 
 
1359
  },
1360
  "hmac-drbg": {
1361
  "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
1362
  "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
1363
- "dev": true
 
 
 
 
 
1364
  },
1365
  "htmlescape": {
1366
  "version": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
@@ -1370,7 +2029,12 @@
1370
  "http-proxy-agent": {
1371
  "version": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
1372
  "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=",
1373
- "dev": true
 
 
 
 
 
1374
  },
1375
  "https-browserify": {
1376
  "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -1380,7 +2044,12 @@
1380
  "https-proxy-agent": {
1381
  "version": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
1382
  "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
1383
- "dev": true
 
 
 
 
 
1384
  },
1385
  "iconv-lite": {
1386
  "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz",
@@ -1400,7 +2069,11 @@
1400
  "inflight": {
1401
  "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1402
  "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1403
- "dev": true
 
 
 
 
1404
  },
1405
  "inherits": {
1406
  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
@@ -1410,12 +2083,25 @@
1410
  "inline-source-map": {
1411
  "version": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
1412
  "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
1413
- "dev": true
 
 
 
1414
  },
1415
  "insert-module-globals": {
1416
  "version": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
1417
  "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
1418
- "dev": true
 
 
 
 
 
 
 
 
 
 
1419
  },
1420
  "invert-kv": {
1421
  "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
@@ -1430,7 +2116,10 @@
1430
  "is-binary-path": {
1431
  "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
1432
  "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
1433
- "dev": true
 
 
 
1434
  },
1435
  "is-buffer": {
1436
  "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
@@ -1445,7 +2134,10 @@
1445
  "is-equal-shallow": {
1446
  "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
1447
  "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
1448
- "dev": true
 
 
 
1449
  },
1450
  "is-extendable": {
1451
  "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
@@ -1460,12 +2152,18 @@
1460
  "is-glob": {
1461
  "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
1462
  "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
1463
- "dev": true
 
 
 
1464
  },
1465
  "is-number": {
1466
  "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
1467
  "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
1468
- "dev": true
 
 
 
1469
  },
1470
  "is-posix-bracket": {
1471
  "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
@@ -1485,12 +2183,18 @@
1485
  "isobject": {
1486
  "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1487
  "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1488
- "dev": true
 
 
 
1489
  },
1490
  "json-stable-stringify": {
1491
  "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
1492
  "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
1493
- "dev": true
 
 
 
1494
  },
1495
  "json3": {
1496
  "version": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
@@ -1507,11 +2211,6 @@
1507
  "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
1508
  "dev": true
1509
  },
1510
- "JSONStream": {
1511
- "version": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
1512
- "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
1513
- "dev": true
1514
- },
1515
  "kew": {
1516
  "version": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
1517
  "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
@@ -1520,12 +2219,20 @@
1520
  "kind-of": {
1521
  "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1522
  "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1523
- "dev": true
 
 
 
1524
  },
1525
  "labeled-stream-splicer": {
1526
  "version": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
1527
  "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
1528
  "dev": true,
 
 
 
 
 
1529
  "dependencies": {
1530
  "isarray": {
1531
  "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -1542,17 +2249,27 @@
1542
  "lcid": {
1543
  "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
1544
  "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
1545
- "dev": true
 
 
 
1546
  },
1547
  "levn": {
1548
  "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
1549
  "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
1550
- "dev": true
 
 
 
 
1551
  },
1552
  "lexical-scope": {
1553
  "version": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
1554
  "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
1555
- "dev": true
 
 
 
1556
  },
1557
  "lodash._arraycopy": {
1558
  "version": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
@@ -1567,12 +2284,24 @@
1567
  "lodash._baseassign": {
1568
  "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
1569
  "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
1570
- "dev": true
 
 
 
 
1571
  },
1572
  "lodash._baseclone": {
1573
  "version": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz",
1574
  "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=",
1575
- "dev": true
 
 
 
 
 
 
 
 
1576
  },
1577
  "lodash._basecopy": {
1578
  "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
@@ -1612,17 +2341,35 @@
1612
  "lodash.clone": {
1613
  "version": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-3.0.3.tgz",
1614
  "integrity": "sha1-hGiMc9MrWpDKJWFpY/GJJSqZcEM=",
1615
- "dev": true
 
 
 
 
 
1616
  },
1617
  "lodash.create": {
1618
  "version": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
1619
  "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
1620
- "dev": true
 
 
 
 
 
1621
  },
1622
  "lodash.defaultsdeep": {
1623
  "version": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz",
1624
  "integrity": "sha1-bBpYbmxWR7DmTi15gUG4g2FYvoo=",
1625
  "dev": true,
 
 
 
 
 
 
 
 
1626
  "dependencies": {
1627
  "lodash._baseclone": {
1628
  "version": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz",
@@ -1649,7 +2396,12 @@
1649
  "lodash.keys": {
1650
  "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
1651
  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
1652
- "dev": true
 
 
 
 
 
1653
  },
1654
  "lodash.keysin": {
1655
  "version": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.2.0.tgz",
@@ -1690,12 +2442,31 @@
1690
  "micromatch": {
1691
  "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
1692
  "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
1693
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1694
  },
1695
  "miller-rabin": {
1696
  "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
1697
  "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
1698
- "dev": true
 
 
 
 
1699
  },
1700
  "minimalistic-assert": {
1701
  "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
@@ -1710,7 +2481,10 @@
1710
  "minimatch": {
1711
  "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1712
  "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
1713
- "dev": true
 
 
 
1714
  },
1715
  "minimist": {
1716
  "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
@@ -1721,6 +2495,9 @@
1721
  "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
1722
  "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
1723
  "dev": true,
 
 
 
1724
  "dependencies": {
1725
  "minimist": {
1726
  "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
@@ -1738,18 +2515,56 @@
1738
  "version": "https://registry.npmjs.org/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz",
1739
  "integrity": "sha1-kby5s73gV912d8eBJeSR5Y1mZHw=",
1740
  "dev": true,
 
 
 
 
 
 
 
 
 
 
 
 
 
1741
  "dependencies": {
1742
  "glob": {
1743
  "version": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
1744
  "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=",
1745
- "dev": true
 
 
 
 
 
 
 
 
1746
  }
1747
  }
1748
  },
1749
  "module-deps": {
1750
  "version": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
1751
  "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
1752
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1753
  },
1754
  "ms": {
1755
  "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
@@ -1772,33 +2587,62 @@
1772
  "version": "https://registry.npmjs.org/nightwatch/-/nightwatch-0.9.15.tgz",
1773
  "integrity": "sha1-caYqoWNo6doJ+ugAzLn7NNA2Fk0=",
1774
  "dev": true,
 
 
 
 
 
 
 
 
 
 
 
 
1775
  "dependencies": {
1776
  "minimatch": {
1777
  "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
1778
  "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
1779
- "dev": true
 
 
 
1780
  }
1781
  }
1782
  },
1783
  "normalize-path": {
1784
  "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
1785
  "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
1786
- "dev": true
 
 
 
1787
  },
1788
  "object.omit": {
1789
  "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
1790
  "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
1791
- "dev": true
 
 
 
 
1792
  },
1793
  "once": {
1794
  "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1795
  "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1796
- "dev": true
 
 
 
1797
  },
1798
  "optimist": {
1799
  "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
1800
  "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
1801
  "dev": true,
 
 
 
 
1802
  "dependencies": {
1803
  "minimist": {
1804
  "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
@@ -1811,6 +2655,14 @@
1811
  "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
1812
  "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
1813
  "dev": true,
 
 
 
 
 
 
 
 
1814
  "dependencies": {
1815
  "wordwrap": {
1816
  "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@@ -1827,22 +2679,46 @@
1827
  "os-locale": {
1828
  "version": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
1829
  "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
1830
- "dev": true
 
 
 
1831
  },
1832
  "outpipe": {
1833
  "version": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
1834
  "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=",
1835
- "dev": true
 
 
 
1836
  },
1837
  "pac-proxy-agent": {
1838
  "version": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.0.0.tgz",
1839
  "integrity": "sha1-3NW3RlgTZ0MKI26I6s/U5bjQaKU=",
1840
- "dev": true
 
 
 
 
 
 
 
 
 
 
 
1841
  },
1842
  "pac-resolver": {
1843
  "version": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-1.2.6.tgz",
1844
  "integrity": "sha1-7QOvDFtZM1Bb3T8H91F1Rm1efPs=",
1845
- "dev": true
 
 
 
 
 
 
 
1846
  },
1847
  "pako": {
1848
  "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
@@ -1852,17 +2728,33 @@
1852
  "parents": {
1853
  "version": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
1854
  "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
1855
- "dev": true
 
 
 
1856
  },
1857
  "parse-asn1": {
1858
  "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
1859
  "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
1860
- "dev": true
 
 
 
 
 
 
 
1861
  },
1862
  "parse-glob": {
1863
  "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
1864
  "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
1865
- "dev": true
 
 
 
 
 
 
1866
  },
1867
  "path-browserify": {
1868
  "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
@@ -1888,12 +2780,22 @@
1888
  "version": "0.0.11",
1889
  "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1890
  "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
1891
- "dev": true
 
 
 
1892
  },
1893
  "pbkdf2": {
1894
  "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
1895
  "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=",
1896
- "dev": true
 
 
 
 
 
 
 
1897
  },
1898
  "prelude-ls": {
1899
  "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -1923,18 +2825,38 @@
1923
  "proxy-agent": {
1924
  "version": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz",
1925
  "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=",
1926
- "dev": true
 
 
 
 
 
 
 
 
 
 
1927
  },
1928
  "ps-tree": {
1929
  "version": "1.1.0",
1930
  "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
1931
  "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
1932
- "dev": true
 
 
 
1933
  },
1934
  "public-encrypt": {
1935
  "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
1936
  "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
1937
- "dev": true
 
 
 
 
 
 
 
1938
  },
1939
  "punycode": {
1940
  "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -1959,7 +2881,11 @@
1959
  "randomatic": {
1960
  "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
1961
  "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
1962
- "dev": true
 
 
 
 
1963
  },
1964
  "randombytes": {
1965
  "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
@@ -1969,29 +2895,56 @@
1969
  "read-only-stream": {
1970
  "version": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
1971
  "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
1972
- "dev": true
 
 
 
1973
  },
1974
  "readable-stream": {
1975
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
1976
  "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
1977
  "dev": true,
 
 
 
 
 
 
 
 
 
1978
  "dependencies": {
1979
  "string_decoder": {
1980
  "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
1981
  "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
1982
- "dev": true
 
 
 
1983
  }
1984
  }
1985
  },
1986
  "readdirp": {
1987
  "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
1988
  "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
1989
- "dev": true
 
 
 
 
 
 
1990
  },
1991
  "recast": {
1992
  "version": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz",
1993
  "integrity": "sha1-lCgI96oBbx+nFCxGHX5XBKqo1pc=",
1994
  "dev": true,
 
 
 
 
 
 
1995
  "dependencies": {
1996
  "ast-types": {
1997
  "version": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz",
@@ -2009,6 +2962,15 @@
2009
  "version": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.46.tgz",
2010
  "integrity": "sha1-FUwydoY2HtUsrWmyVF78U6PQdpY=",
2011
  "dev": true,
 
 
 
 
 
 
 
 
 
2012
  "dependencies": {
2013
  "esprima-fb": {
2014
  "version": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
@@ -2025,7 +2987,11 @@
2025
  "regex-cache": {
2026
  "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
2027
  "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
2028
- "dev": true
 
 
 
 
2029
  },
2030
  "remove-trailing-separator": {
2031
  "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz",
@@ -2045,22 +3011,35 @@
2045
  "resolve": {
2046
  "version": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
2047
  "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
2048
- "dev": true
 
 
 
2049
  },
2050
  "right-align": {
2051
  "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
2052
  "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
2053
- "dev": true
 
 
 
2054
  },
2055
  "rimraf": {
2056
  "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
2057
  "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
2058
- "dev": true
 
 
 
2059
  },
2060
  "ripemd160": {
2061
  "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
2062
  "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
2063
- "dev": true
 
 
 
 
2064
  },
2065
  "safe-buffer": {
2066
  "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
@@ -2080,17 +3059,30 @@
2080
  "sha.js": {
2081
  "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
2082
  "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
2083
- "dev": true
 
 
 
2084
  },
2085
  "shasum": {
2086
  "version": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
2087
  "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
2088
- "dev": true
 
 
 
 
2089
  },
2090
  "shell-quote": {
2091
  "version": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
2092
  "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
2093
- "dev": true
 
 
 
 
 
 
2094
  },
2095
  "simple-fmt": {
2096
  "version": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz",
@@ -2110,12 +3102,21 @@
2110
  "socks": {
2111
  "version": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
2112
  "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
2113
- "dev": true
 
 
 
 
2114
  },
2115
  "socks-proxy-agent": {
2116
  "version": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.0.0.tgz",
2117
  "integrity": "sha1-xnSELXBBD7KK4ekuYTWpJ4VLwnU=",
2118
- "dev": true
 
 
 
 
 
2119
  },
2120
  "source-map": {
2121
  "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
@@ -2126,7 +3127,10 @@
2126
  "version": "0.3.3",
2127
  "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
2128
  "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
2129
- "dev": true
 
 
 
2130
  },
2131
  "stable": {
2132
  "version": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz",
@@ -2136,28 +3140,50 @@
2136
  "stream-browserify": {
2137
  "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
2138
  "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
2139
- "dev": true
 
 
 
 
2140
  },
2141
  "stream-combiner": {
2142
  "version": "0.0.4",
2143
  "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
2144
  "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
2145
- "dev": true
 
 
 
2146
  },
2147
  "stream-combiner2": {
2148
  "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
2149
  "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
2150
- "dev": true
 
 
 
 
2151
  },
2152
  "stream-http": {
2153
  "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz",
2154
  "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=",
2155
- "dev": true
 
 
 
 
 
 
 
2156
  },
2157
  "stream-splicer": {
2158
  "version": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
2159
  "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
2160
- "dev": true
 
 
 
 
2161
  },
2162
  "stream-to": {
2163
  "version": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz",
@@ -2167,7 +3193,10 @@
2167
  "stream-to-buffer": {
2168
  "version": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz",
2169
  "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
2170
- "dev": true
 
 
 
2171
  },
2172
  "string_decoder": {
2173
  "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
@@ -2187,17 +3216,26 @@
2187
  "subarg": {
2188
  "version": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
2189
  "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
2190
- "dev": true
 
 
 
2191
  },
2192
  "supports-color": {
2193
  "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
2194
  "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
2195
- "dev": true
 
 
 
2196
  },
2197
  "syntax-error": {
2198
  "version": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz",
2199
  "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=",
2200
- "dev": true
 
 
 
2201
  },
2202
  "through": {
2203
  "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@@ -2207,7 +3245,11 @@
2207
  "through2": {
2208
  "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
2209
  "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
2210
- "dev": true
 
 
 
 
2211
  },
2212
  "thunkify": {
2213
  "version": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz",
@@ -2217,7 +3259,10 @@
2217
  "timers-browserify": {
2218
  "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
2219
  "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
2220
- "dev": true
 
 
 
2221
  },
2222
  "to-arraybuffer": {
2223
  "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -2237,7 +3282,10 @@
2237
  "type-check": {
2238
  "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2239
  "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2240
- "dev": true
 
 
 
2241
  },
2242
  "type-detect": {
2243
  "version": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
@@ -2258,6 +3306,10 @@
2258
  "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
2259
  "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
2260
  "dev": true,
 
 
 
 
2261
  "dependencies": {
2262
  "punycode": {
2263
  "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
@@ -2270,6 +3322,9 @@
2270
  "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
2271
  "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
2272
  "dev": true,
 
 
 
2273
  "dependencies": {
2274
  "inherits": {
2275
  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
@@ -2286,12 +3341,24 @@
2286
  "vm-browserify": {
2287
  "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
2288
  "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
2289
- "dev": true
 
 
 
2290
  },
2291
  "watchify": {
2292
  "version": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz",
2293
  "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=",
2294
- "dev": true
 
 
 
 
 
 
 
 
 
2295
  },
2296
  "window-size": {
2297
  "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
@@ -2326,7 +3393,15 @@
2326
  "yargs": {
2327
  "version": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz",
2328
  "integrity": "sha1-ISBUaTFuk5Ex1Z8toMbX+YIh6kA=",
2329
- "dev": true
 
 
 
 
 
 
 
 
2330
  }
2331
  }
2332
  }
1
  {
2
  "name": "yoast-acf-analysis",
3
+ "version": "2.0.1",
4
  "lockfileVersion": 1,
5
+ "requires": true,
6
  "dependencies": {
7
+ "JSONStream": {
8
+ "version": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
9
+ "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=",
10
+ "dev": true,
11
+ "requires": {
12
+ "jsonparse": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
13
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
14
+ }
15
+ },
16
  "acorn": {
17
  "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
18
  "integrity": "sha1-7c2jvZN+dVZBDULtWGD2c5nHlMA=",
26
  "agent-base": {
27
  "version": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
28
  "integrity": "sha1-vY+ehqjrIh//oHvRS+/VXfFCgV4=",
29
+ "dev": true,
30
+ "requires": {
31
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
32
+ "semver": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz"
33
+ }
34
  },
35
  "align-text": {
36
  "version": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
37
  "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
38
+ "dev": true,
39
+ "requires": {
40
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
41
+ "longest": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
42
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
43
+ }
44
  },
45
  "alter": {
46
  "version": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz",
47
  "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=",
48
+ "dev": true,
49
+ "requires": {
50
+ "stable": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz"
51
+ }
52
  },
53
  "amdefine": {
54
  "version": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
59
  "anymatch": {
60
  "version": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
61
  "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=",
62
+ "dev": true,
63
+ "requires": {
64
+ "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
65
+ "micromatch": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz"
66
+ }
67
  },
68
  "arr-diff": {
69
  "version": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
70
  "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
71
+ "dev": true,
72
+ "requires": {
73
+ "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz"
74
+ }
75
  },
76
  "arr-flatten": {
77
  "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz",
106
  "asn1.js": {
107
  "version": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
108
  "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=",
109
+ "dev": true,
110
+ "requires": {
111
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
112
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
113
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
114
+ }
115
  },
116
  "assert": {
117
  "version": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
118
  "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
119
+ "dev": true,
120
+ "requires": {
121
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz"
122
+ }
123
  },
124
  "assertion-error": {
125
  "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
139
  "astw": {
140
  "version": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz",
141
  "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=",
142
+ "dev": true,
143
+ "requires": {
144
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
145
+ }
146
  },
147
  "async-each": {
148
  "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
172
  "brace-expansion": {
173
  "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
174
  "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=",
175
+ "dev": true,
176
+ "requires": {
177
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
178
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
179
+ }
180
  },
181
  "braces": {
182
  "version": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
183
  "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
184
+ "dev": true,
185
+ "requires": {
186
+ "expand-range": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
187
+ "preserve": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
188
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz"
189
+ }
190
  },
191
  "breakable": {
192
  "version": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz",
201
  "browser-pack": {
202
  "version": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
203
  "integrity": "sha1-+GzWzvT1MAyOY+B6TVEvZfv/RTE=",
204
+ "dev": true,
205
+ "requires": {
206
+ "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
207
+ "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
208
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
209
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
210
+ "umd": "https://registry.npmjs.org/umd/-/umd-3.0.1.tgz"
211
+ }
212
  },
213
  "browser-resolve": {
214
  "version": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
215
  "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=",
216
  "dev": true,
217
+ "requires": {
218
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"
219
+ },
220
  "dependencies": {
221
  "resolve": {
222
  "version": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
233
  "browserify": {
234
  "version": "https://registry.npmjs.org/browserify/-/browserify-14.3.0.tgz",
235
  "integrity": "sha1-/QA6I4asGuwSfwl4haPMY3O3RcQ=",
236
+ "dev": true,
237
+ "requires": {
238
+ "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
239
+ "assert": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
240
+ "browser-pack": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.0.2.tgz",
241
+ "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
242
+ "browserify-zlib": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
243
+ "buffer": "https://registry.npmjs.org/buffer/-/buffer-5.0.6.tgz",
244
+ "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
245
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
246
+ "console-browserify": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
247
+ "constants-browserify": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
248
+ "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
249
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
250
+ "deps-sort": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
251
+ "domain-browser": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
252
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
253
+ "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
254
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
255
+ "has": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
256
+ "htmlescape": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
257
+ "https-browserify": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
258
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
259
+ "insert-module-globals": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
260
+ "labeled-stream-splicer": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
261
+ "module-deps": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
262
+ "os-browserify": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz",
263
+ "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
264
+ "path-browserify": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
265
+ "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
266
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
267
+ "querystring-es3": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
268
+ "read-only-stream": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
269
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
270
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
271
+ "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
272
+ "shell-quote": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
273
+ "stream-browserify": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
274
+ "stream-http": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz",
275
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
276
+ "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
277
+ "syntax-error": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz",
278
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
279
+ "timers-browserify": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
280
+ "tty-browserify": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
281
+ "url": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
282
+ "util": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
283
+ "vm-browserify": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
284
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
285
+ }
286
  },
287
  "browserify-aes": {
288
  "version": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
289
  "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=",
290
+ "dev": true,
291
+ "requires": {
292
+ "buffer-xor": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
293
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
294
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
295
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
296
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
297
+ }
298
  },
299
  "browserify-cipher": {
300
  "version": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
301
  "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
302
+ "dev": true,
303
+ "requires": {
304
+ "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
305
+ "browserify-des": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
306
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz"
307
+ }
308
  },
309
  "browserify-des": {
310
  "version": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
311
  "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
312
+ "dev": true,
313
+ "requires": {
314
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
315
+ "des.js": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
316
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
317
+ }
318
  },
319
  "browserify-rsa": {
320
  "version": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
321
  "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
322
+ "dev": true,
323
+ "requires": {
324
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
325
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
326
+ }
327
  },
328
  "browserify-sign": {
329
  "version": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
330
  "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
331
+ "dev": true,
332
+ "requires": {
333
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
334
+ "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
335
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
336
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
337
+ "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
338
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
339
+ "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz"
340
+ }
341
  },
342
  "browserify-zlib": {
343
  "version": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
344
  "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
345
+ "dev": true,
346
+ "requires": {
347
+ "pako": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz"
348
+ }
349
  },
350
  "buffer": {
351
  "version": "https://registry.npmjs.org/buffer/-/buffer-5.0.6.tgz",
352
  "integrity": "sha1-LqZp9+7Atu2gWwj4tf9mGyhXNYg=",
353
+ "dev": true,
354
+ "requires": {
355
+ "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz",
356
+ "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz"
357
+ }
358
  },
359
  "buffer-shims": {
360
  "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
384
  "center-align": {
385
  "version": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
386
  "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
387
+ "dev": true,
388
+ "requires": {
389
+ "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
390
+ "lazy-cache": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz"
391
+ }
392
  },
393
  "chai-nightwatch": {
394
  "version": "https://registry.npmjs.org/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz",
395
  "integrity": "sha1-HKVt52jTwIaP5/wvTTLC/olOa+k=",
396
+ "dev": true,
397
+ "requires": {
398
+ "assertion-error": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
399
+ "deep-eql": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz"
400
+ }
401
  },
402
  "chokidar": {
403
  "version": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
404
  "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
405
+ "dev": true,
406
+ "requires": {
407
+ "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
408
+ "async-each": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
409
+ "fsevents": "1.1.1",
410
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
411
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
412
+ "is-binary-path": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
413
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
414
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
415
+ "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz"
416
+ }
417
  },
418
  "chromedriver": {
419
  "version": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.29.0.tgz",
420
  "integrity": "sha1-4/2LPAjc4lYrgO8bC4Rll2WdDMM=",
421
+ "dev": true,
422
+ "requires": {
423
+ "adm-zip": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz",
424
+ "kew": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
425
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
426
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz"
427
+ }
428
  },
429
  "cipher-base": {
430
  "version": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
431
  "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=",
432
+ "dev": true,
433
+ "requires": {
434
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
435
+ }
436
  },
437
  "cliui": {
438
  "version": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
439
  "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
440
  "dev": true,
441
+ "requires": {
442
+ "center-align": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
443
+ "right-align": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
444
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
445
+ },
446
  "dependencies": {
447
  "wordwrap": {
448
  "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
459
  "combine-source-map": {
460
  "version": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
461
  "integrity": "sha1-CHAxKFazB6h8xKxIbzqaYq7MwJ4=",
462
+ "dev": true,
463
+ "requires": {
464
+ "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
465
+ "inline-source-map": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
466
+ "lodash.memoize": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
467
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
468
+ }
469
  },
470
  "commander": {
471
  "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
472
  "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
473
+ "dev": true,
474
+ "requires": {
475
+ "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
476
+ }
477
  },
478
  "commoner": {
479
  "version": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
480
  "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=",
481
  "dev": true,
482
+ "requires": {
483
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
484
+ "detective": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz",
485
+ "glob": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
486
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
487
+ "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz",
488
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
489
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
490
+ "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
491
+ "recast": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz"
492
+ },
493
  "dependencies": {
494
  "ast-types": {
495
  "version": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
499
  "glob": {
500
  "version": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
501
  "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
502
+ "dev": true,
503
+ "requires": {
504
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
505
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
506
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
507
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
508
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
509
+ }
510
  },
511
  "recast": {
512
  "version": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
513
  "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
514
+ "dev": true,
515
+ "requires": {
516
+ "ast-types": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
517
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
518
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
519
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
520
+ }
521
  }
522
  }
523
  },
530
  "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
531
  "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
532
  "dev": true,
533
+ "requires": {
534
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
535
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
536
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
537
+ },
538
  "dependencies": {
539
  "readable-stream": {
540
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
541
  "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
542
+ "dev": true,
543
+ "requires": {
544
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
545
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
546
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
547
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
548
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
549
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
550
+ }
551
  }
552
  }
553
  },
554
  "console-browserify": {
555
  "version": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
556
  "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
557
+ "dev": true,
558
+ "requires": {
559
+ "date-now": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz"
560
+ }
561
  },
562
  "constants-browserify": {
563
  "version": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
577
  "create-ecdh": {
578
  "version": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
579
  "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
580
+ "dev": true,
581
+ "requires": {
582
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
583
+ "elliptic": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz"
584
+ }
585
  },
586
  "create-hash": {
587
  "version": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
588
  "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
589
+ "dev": true,
590
+ "requires": {
591
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
592
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
593
+ "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
594
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
595
+ }
596
  },
597
  "create-hmac": {
598
  "version": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
599
  "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
600
+ "dev": true,
601
+ "requires": {
602
+ "cipher-base": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz",
603
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
604
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
605
+ "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
606
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
607
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
608
+ }
609
  },
610
  "crypto-browserify": {
611
  "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz",
612
  "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=",
613
+ "dev": true,
614
+ "requires": {
615
+ "browserify-cipher": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
616
+ "browserify-sign": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
617
+ "create-ecdh": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
618
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
619
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
620
+ "diffie-hellman": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
621
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
622
+ "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
623
+ "public-encrypt": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
624
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
625
+ }
626
  },
627
  "data-uri-to-buffer": {
628
  "version": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz",
637
  "debug": {
638
  "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
639
  "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
640
+ "dev": true,
641
+ "requires": {
642
+ "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
643
+ }
644
  },
645
  "decamelize": {
646
  "version": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
650
  "deep-eql": {
651
  "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
652
  "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
653
+ "dev": true,
654
+ "requires": {
655
+ "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz"
656
+ }
657
  },
658
  "deep-is": {
659
  "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
669
  "version": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz",
670
  "integrity": "sha1-siYJ8sehG6ej2xFoBcE5scr/qdI=",
671
  "dev": true,
672
+ "requires": {
673
+ "alter": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz",
674
+ "ast-traverse": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz",
675
+ "breakable": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz",
676
+ "esprima-fb": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
677
+ "simple-fmt": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz",
678
+ "simple-is": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz",
679
+ "stringmap": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz",
680
+ "stringset": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz",
681
+ "tryor": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz",
682
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz"
683
+ },
684
  "dependencies": {
685
  "esprima-fb": {
686
  "version": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
692
  "degenerator": {
693
  "version": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
694
  "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
695
+ "dev": true,
696
+ "requires": {
697
+ "ast-types": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.11.tgz",
698
+ "escodegen": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
699
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"
700
+ }
701
  },
702
  "deps-sort": {
703
  "version": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz",
704
  "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=",
705
+ "dev": true,
706
+ "requires": {
707
+ "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
708
+ "shasum": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
709
+ "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
710
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz"
711
+ }
712
  },
713
  "des.js": {
714
  "version": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
715
  "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
716
+ "dev": true,
717
+ "requires": {
718
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
719
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz"
720
+ }
721
  },
722
  "detective": {
723
  "version": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz",
724
  "integrity": "sha1-blqMaybmx6JUsca210kNmOyR7dE=",
725
+ "dev": true,
726
+ "requires": {
727
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz",
728
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
729
+ }
730
  },
731
  "diff": {
732
  "version": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
736
  "diffie-hellman": {
737
  "version": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
738
  "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
739
+ "dev": true,
740
+ "requires": {
741
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
742
+ "miller-rabin": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
743
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
744
+ }
745
  },
746
  "domain-browser": {
747
  "version": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
757
  "duplexer2": {
758
  "version": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
759
  "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
760
+ "dev": true,
761
+ "requires": {
762
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
763
+ }
764
  },
765
  "ejs": {
766
  "version": "https://registry.npmjs.org/ejs/-/ejs-0.8.3.tgz",
770
  "elliptic": {
771
  "version": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",
772
  "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",
773
+ "dev": true,
774
+ "requires": {
775
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
776
+ "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
777
+ "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
778
+ "hmac-drbg": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
779
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
780
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
781
+ "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
782
+ }
783
  },
784
  "escape-string-regexp": {
785
  "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
790
  "version": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
791
  "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
792
  "dev": true,
793
+ "requires": {
794
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
795
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
796
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
797
+ "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
798
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz"
799
+ },
800
  "dependencies": {
801
  "esprima": {
802
  "version": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
807
  "version": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
808
  "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
809
  "dev": true,
810
+ "optional": true,
811
+ "requires": {
812
+ "amdefine": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
813
+ }
814
  }
815
  }
816
  },
833
  "version": "3.3.4",
834
  "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
835
  "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
836
+ "dev": true,
837
+ "requires": {
838
+ "duplexer": "0.1.1",
839
+ "from": "0.1.7",
840
+ "map-stream": "0.1.0",
841
+ "pause-stream": "0.0.11",
842
+ "split": "0.3.3",
843
+ "stream-combiner": "0.0.4",
844
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
845
+ }
846
  },
847
  "events": {
848
  "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
852
  "evp_bytestokey": {
853
  "version": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
854
  "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=",
855
+ "dev": true,
856
+ "requires": {
857
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz"
858
+ }
859
  },
860
  "expand-brackets": {
861
  "version": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
862
  "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
863
+ "dev": true,
864
+ "requires": {
865
+ "is-posix-bracket": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz"
866
+ }
867
  },
868
  "expand-range": {
869
  "version": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
870
  "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
871
+ "dev": true,
872
+ "requires": {
873
+ "fill-range": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz"
874
+ }
875
  },
876
  "extend": {
877
  "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
881
  "extglob": {
882
  "version": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
883
  "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
884
+ "dev": true,
885
+ "requires": {
886
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
887
+ }
888
  },
889
  "fast-levenshtein": {
890
  "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
904
  "fill-range": {
905
  "version": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
906
  "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
907
+ "dev": true,
908
+ "requires": {
909
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
910
+ "isobject": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
911
+ "randomatic": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
912
+ "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
913
+ "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
914
+ }
915
  },
916
  "for-in": {
917
  "version": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
921
  "for-own": {
922
  "version": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
923
  "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
924
+ "dev": true,
925
+ "requires": {
926
+ "for-in": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
927
+ }
928
  },
929
  "from": {
930
  "version": "0.1.7",
943
  "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=",
944
  "dev": true,
945
  "optional": true,
946
+ "requires": {
947
+ "nan": "2.6.2",
948
+ "node-pre-gyp": "0.6.33"
949
+ },
950
  "dependencies": {
951
  "abbrev": {
952
  "version": "1.1.0",
975
  "version": "1.1.2",
976
  "bundled": true,
977
  "dev": true,
978
+ "optional": true,
979
+ "requires": {
980
+ "delegates": "1.0.0",
981
+ "readable-stream": "2.2.2"
982
+ }
983
  },
984
  "asn1": {
985
  "version": "0.2.3",
1020
  "version": "1.0.1",
1021
  "bundled": true,
1022
  "dev": true,
1023
+ "optional": true,
1024
+ "requires": {
1025
+ "tweetnacl": "0.14.5"
1026
+ }
1027
  },
1028
  "block-stream": {
1029
  "version": "0.0.9",
1030
  "bundled": true,
1031
+ "dev": true,
1032
+ "requires": {
1033
+ "inherits": "2.0.3"
1034
+ }
1035
  },
1036
  "boom": {
1037
  "version": "2.10.1",
1038
  "bundled": true,
1039
+ "dev": true,
1040
+ "requires": {
1041
+ "hoek": "2.16.3"
1042
+ }
1043
  },
1044
  "brace-expansion": {
1045
  "version": "1.1.6",
1046
  "bundled": true,
1047
+ "dev": true,
1048
+ "requires": {
1049
+ "balanced-match": "0.4.2",
1050
+ "concat-map": "0.0.1"
1051
+ }
1052
  },
1053
  "buffer-shims": {
1054
  "version": "1.0.0",
1065
  "version": "1.1.3",
1066
  "bundled": true,
1067
  "dev": true,
1068
+ "optional": true,
1069
+ "requires": {
1070
+ "ansi-styles": "2.2.1",
1071
+ "escape-string-regexp": "1.0.5",
1072
+ "has-ansi": "2.0.0",
1073
+ "strip-ansi": "3.0.1",
1074
+ "supports-color": "2.0.0"
1075
+ }
1076
  },
1077
  "code-point-at": {
1078
  "version": "1.1.0",
1082
  "combined-stream": {
1083
  "version": "1.0.5",
1084
  "bundled": true,
1085
+ "dev": true,
1086
+ "requires": {
1087
+ "delayed-stream": "1.0.0"
1088
+ }
1089
  },
1090
  "commander": {
1091
  "version": "2.9.0",
1092
  "bundled": true,
1093
  "dev": true,
1094
+ "optional": true,
1095
+ "requires": {
1096
+ "graceful-readlink": "1.0.1"
1097
+ }
1098
  },
1099
  "concat-map": {
1100
  "version": "0.0.1",
1115
  "version": "2.0.5",
1116
  "bundled": true,
1117
  "dev": true,
1118
+ "optional": true,
1119
+ "requires": {
1120
+ "boom": "2.10.1"
1121
+ }
1122
  },
1123
  "dashdash": {
1124
  "version": "1.14.1",
1125
  "bundled": true,
1126
  "dev": true,
1127
  "optional": true,
1128
+ "requires": {
1129
+ "assert-plus": "1.0.0"
1130
+ },
1131
  "dependencies": {
1132
  "assert-plus": {
1133
  "version": "1.0.0",
1141
  "version": "2.2.0",
1142
  "bundled": true,
1143
  "dev": true,
1144
+ "optional": true,
1145
+ "requires": {
1146
+ "ms": "0.7.1"
1147
+ }
1148
  },
1149
  "deep-extend": {
1150
  "version": "0.4.1",
1167
  "version": "0.1.1",
1168
  "bundled": true,
1169
  "dev": true,
1170
+ "optional": true,
1171
+ "requires": {
1172
+ "jsbn": "0.1.1"
1173
+ }
1174
  },
1175
  "escape-string-regexp": {
1176
  "version": "1.0.5",
1199
  "version": "2.1.2",
1200
  "bundled": true,
1201
  "dev": true,
1202
+ "optional": true,
1203
+ "requires": {
1204
+ "asynckit": "0.4.0",
1205
+ "combined-stream": "1.0.5",
1206
+ "mime-types": "2.1.14"
1207
+ }
1208
  },
1209
  "fs.realpath": {
1210
  "version": "1.0.0",
1214
  "fstream": {
1215
  "version": "1.0.10",
1216
  "bundled": true,
1217
+ "dev": true,
1218
+ "requires": {
1219
+ "graceful-fs": "4.1.11",
1220
+ "inherits": "2.0.3",
1221
+ "mkdirp": "0.5.1",
1222
+ "rimraf": "2.5.4"
1223
+ }
1224
  },
1225
  "fstream-ignore": {
1226
  "version": "1.0.5",
1227
  "bundled": true,
1228
  "dev": true,
1229
+ "optional": true,
1230
+ "requires": {
1231
+ "fstream": "1.0.10",
1232
+ "inherits": "2.0.3",
1233
+ "minimatch": "3.0.3"
1234
+ }
1235
  },
1236
  "gauge": {
1237
  "version": "2.7.3",
1238
  "bundled": true,
1239
  "dev": true,
1240
+ "optional": true,
1241
+ "requires": {
1242
+ "aproba": "1.1.1",
1243
+ "console-control-strings": "1.1.0",
1244
+ "has-unicode": "2.0.1",
1245
+ "object-assign": "4.1.1",
1246
+ "signal-exit": "3.0.2",
1247
+ "string-width": "1.0.2",
1248
+ "strip-ansi": "3.0.1",
1249
+ "wide-align": "1.1.0"
1250
+ }
1251
  },
1252
  "generate-function": {
1253
  "version": "2.0.0",
1259
  "version": "1.2.0",
1260
  "bundled": true,
1261
  "dev": true,
1262
+ "optional": true,
1263
+ "requires": {
1264
+ "is-property": "1.0.2"
1265
+ }
1266
  },
1267
  "getpass": {
1268
  "version": "0.1.6",
1269
  "bundled": true,
1270
  "dev": true,
1271
  "optional": true,
1272
+ "requires": {
1273
+ "assert-plus": "1.0.0"
1274
+ },
1275
  "dependencies": {
1276
  "assert-plus": {
1277
  "version": "1.0.0",
1284
  "glob": {
1285
  "version": "7.1.1",
1286
  "bundled": true,
1287
+ "dev": true,
1288
+ "requires": {
1289
+ "fs.realpath": "1.0.0",
1290
+ "inflight": "1.0.6",
1291
+ "inherits": "2.0.3",
1292
+ "minimatch": "3.0.3",
1293
+ "once": "1.4.0",
1294
+ "path-is-absolute": "1.0.1"
1295
+ }
1296
  },
1297
  "graceful-fs": {
1298
  "version": "4.1.11",
1309
  "version": "2.0.6",
1310
  "bundled": true,
1311
  "dev": true,
1312
+ "optional": true,
1313
+ "requires": {
1314
+ "chalk": "1.1.3",
1315
+ "commander": "2.9.0",
1316
+ "is-my-json-valid": "2.15.0",
1317
+ "pinkie-promise": "2.0.1"
1318
+ }
1319
  },
1320
  "has-ansi": {
1321
  "version": "2.0.0",
1322
  "bundled": true,
1323
  "dev": true,
1324
+ "optional": true,
1325
+ "requires": {
1326
+ "ansi-regex": "2.1.1"
1327
+ }
1328
  },
1329
  "has-unicode": {
1330
  "version": "2.0.1",
1336
  "version": "3.1.3",
1337
  "bundled": true,
1338
  "dev": true,
1339
+ "optional": true,
1340
+ "requires": {
1341
+ "boom": "2.10.1",
1342
+ "cryptiles": "2.0.5",
1343
+ "hoek": "2.16.3",
1344
+ "sntp": "1.0.9"
1345
+ }
1346
  },
1347
  "hoek": {
1348
  "version": "2.16.3",
1353
  "version": "1.1.1",
1354
  "bundled": true,
1355
  "dev": true,
1356
+ "optional": true,
1357
+ "requires": {
1358
+ "assert-plus": "0.2.0",
1359
+ "jsprim": "1.3.1",
1360
+ "sshpk": "1.10.2"
1361
+ }
1362
  },
1363
  "inflight": {
1364
  "version": "1.0.6",
1365
  "bundled": true,
1366
+ "dev": true,
1367
+ "requires": {
1368
+ "once": "1.4.0",
1369
+ "wrappy": "1.0.2"
1370
+ }
1371
  },
1372
  "inherits": {
1373
  "version": "2.0.3",
1383
  "is-fullwidth-code-point": {
1384
  "version": "1.0.0",
1385
  "bundled": true,
1386
+ "dev": true,
1387
+ "requires": {
1388
+ "number-is-nan": "1.0.1"
1389
+ }
1390
  },
1391
  "is-my-json-valid": {
1392
  "version": "2.15.0",
1393
  "bundled": true,
1394
  "dev": true,
1395
+ "optional": true,
1396
+ "requires": {
1397
+ "generate-function": "2.0.0",
1398
+ "generate-object-property": "1.2.0",
1399
+ "jsonpointer": "4.0.1",
1400
+ "xtend": "4.0.1"
1401
+ }
1402
  },
1403
  "is-property": {
1404
  "version": "1.0.2",
1427
  "version": "1.0.2",
1428
  "bundled": true,
1429
  "dev": true,
1430
+ "optional": true,
1431
+ "requires": {
1432
+ "jsbn": "0.1.1"
1433
+ }
1434
  },
1435
  "jsbn": {
1436
  "version": "0.1.1",
1460
  "version": "1.3.1",
1461
  "bundled": true,
1462
  "dev": true,
1463
+ "optional": true,
1464
+ "requires": {
1465
+ "extsprintf": "1.0.2",
1466
+ "json-schema": "0.2.3",
1467
+ "verror": "1.3.6"
1468
+ }
1469
  },
1470
  "mime-db": {
1471
  "version": "1.26.0",
1475
  "mime-types": {
1476
  "version": "2.1.14",
1477
  "bundled": true,
1478
+ "dev": true,
1479
+ "requires": {
1480
+ "mime-db": "1.26.0"
1481
+ }
1482
  },
1483
  "minimatch": {
1484
  "version": "3.0.3",
1485
  "bundled": true,
1486
+ "dev": true,
1487
+ "requires": {
1488
+ "brace-expansion": "1.1.6"
1489
+ }
1490
  },
1491
  "minimist": {
1492
  "version": "0.0.8",
1496
  "mkdirp": {
1497
  "version": "0.5.1",
1498
  "bundled": true,
1499
+ "dev": true,
1500
+ "requires": {
1501
+ "minimist": "0.0.8"
1502
+ }
1503
  },
1504
  "ms": {
1505
  "version": "0.7.1",
1511
  "version": "0.6.33",
1512
  "bundled": true,
1513
  "dev": true,
1514
+ "optional": true,
1515
+ "requires": {
1516
+ "mkdirp": "0.5.1",
1517
+ "nopt": "3.0.6",
1518
+ "npmlog": "4.0.2",
1519
+ "rc": "1.1.7",
1520
+ "request": "2.79.0",
1521
+ "rimraf": "2.5.4",
1522
+ "semver": "5.3.0",
1523
+ "tar": "2.2.1",
1524
+ "tar-pack": "3.3.0"
1525
+ }
1526
  },
1527
  "nopt": {
1528
  "version": "3.0.6",
1529
  "bundled": true,
1530
  "dev": true,
1531
+ "optional": true,
1532
+ "requires": {
1533
+ "abbrev": "1.1.0"
1534
+ }
1535
  },
1536
  "npmlog": {
1537
  "version": "4.0.2",
1538
  "bundled": true,
1539
  "dev": true,
1540
+ "optional": true,
1541
+ "requires": {
1542
+ "are-we-there-yet": "1.1.2",
1543
+ "console-control-strings": "1.1.0",
1544
+ "gauge": "2.7.3",
1545
+ "set-blocking": "2.0.0"
1546
+ }
1547
  },
1548
  "number-is-nan": {
1549
  "version": "1.0.1",
1565
  "once": {
1566
  "version": "1.4.0",
1567
  "bundled": true,
1568
+ "dev": true,
1569
+ "requires": {
1570
+ "wrappy": "1.0.2"
1571
+ }
1572
  },
1573
  "path-is-absolute": {
1574
  "version": "1.0.1",
1585
  "version": "2.0.1",
1586
  "bundled": true,
1587
  "dev": true,
1588
+ "optional": true,
1589
+ "requires": {
1590
+ "pinkie": "2.0.4"
1591
+ }
1592
  },
1593
  "process-nextick-args": {
1594
  "version": "1.0.7",
1612
  "bundled": true,
1613
  "dev": true,
1614
  "optional": true,
1615
+ "requires": {
1616
+ "deep-extend": "0.4.1",
1617
+ "ini": "1.3.4",
1618
+ "minimist": "1.2.0",
1619
+ "strip-json-comments": "2.0.1"
1620
+ },
1621
  "dependencies": {
1622
  "minimist": {
1623
  "version": "1.2.0",
1631
  "version": "2.2.2",
1632
  "bundled": true,
1633
  "dev": true,
1634
+ "optional": true,
1635
+ "requires": {
1636
+ "buffer-shims": "1.0.0",
1637
+ "core-util-is": "1.0.2",
1638
+ "inherits": "2.0.3",
1639
+ "isarray": "1.0.0",
1640
+ "process-nextick-args": "1.0.7",
1641
+ "string_decoder": "0.10.31",
1642
+ "util-deprecate": "1.0.2"
1643
+ }
1644
  },
1645
  "request": {
1646
  "version": "2.79.0",
1647
  "bundled": true,
1648
  "dev": true,
1649
+ "optional": true,
1650
+ "requires": {
1651
+ "aws-sign2": "0.6.0",
1652
+ "aws4": "1.6.0",
1653
+ "caseless": "0.11.0",
1654
+ "combined-stream": "1.0.5",
1655
+ "extend": "3.0.0",
1656
+ "forever-agent": "0.6.1",
1657
+ "form-data": "2.1.2",
1658
+ "har-validator": "2.0.6",
1659
+ "hawk": "3.1.3",
1660
+ "http-signature": "1.1.1",
1661
+ "is-typedarray": "1.0.0",
1662
+ "isstream": "0.1.2",
1663
+ "json-stringify-safe": "5.0.1",
1664
+ "mime-types": "2.1.14",
1665
+ "oauth-sign": "0.8.2",
1666
+ "qs": "6.3.1",
1667
+ "stringstream": "0.0.5",
1668
+ "tough-cookie": "2.3.2",
1669
+ "tunnel-agent": "0.4.3",
1670
+ "uuid": "3.0.1"
1671
+ }
1672
  },
1673
  "rimraf": {
1674
  "version": "2.5.4",
1675
  "bundled": true,
1676
+ "dev": true,
1677
+ "requires": {
1678
+ "glob": "7.1.1"
1679
+ }
1680
  },
1681
  "semver": {
1682
  "version": "5.3.0",
1700
  "version": "1.0.9",
1701
  "bundled": true,
1702
  "dev": true,
1703
+ "optional": true,
1704
+ "requires": {
1705
+ "hoek": "2.16.3"
1706
+ }
1707
  },
1708
  "sshpk": {
1709
  "version": "1.10.2",
1710
  "bundled": true,
1711
  "dev": true,
1712
  "optional": true,
1713
+ "requires": {
1714
+ "asn1": "0.2.3",
1715
+ "assert-plus": "1.0.0",
1716
+ "bcrypt-pbkdf": "1.0.1",
1717
+ "dashdash": "1.14.1",
1718
+ "ecc-jsbn": "0.1.1",
1719
+ "getpass": "0.1.6",
1720
+ "jodid25519": "1.0.2",
1721
+ "jsbn": "0.1.1",
1722
+ "tweetnacl": "0.14.5"
1723
+ },
1724
  "dependencies": {
1725
  "assert-plus": {
1726
  "version": "1.0.0",
1730
  }
1731
  }
1732
  },
 
 
 
 
 
1733
  "string-width": {
1734
  "version": "1.0.2",
1735
  "bundled": true,
1736
+ "dev": true,
1737
+ "requires": {
1738
+ "code-point-at": "1.1.0",
1739
+ "is-fullwidth-code-point": "1.0.0",
1740
+ "strip-ansi": "3.0.1"
1741
+ }
1742
+ },
1743
+ "string_decoder": {
1744
+ "version": "0.10.31",
1745
+ "bundled": true,
1746
  "dev": true
1747
  },
1748
  "stringstream": {
1754
  "strip-ansi": {
1755
  "version": "3.0.1",
1756
  "bundled": true,
1757
+ "dev": true,
1758
+ "requires": {
1759
+ "ansi-regex": "2.1.1"
1760
+ }
1761
  },
1762
  "strip-json-comments": {
1763
  "version": "2.0.1",
1774
  "tar": {
1775
  "version": "2.2.1",
1776
  "bundled": true,
1777
+ "dev": true,
1778
+ "requires": {
1779
+ "block-stream": "0.0.9",
1780
+ "fstream": "1.0.10",
1781
+ "inherits": "2.0.3"
1782
+ }
1783
  },
1784
  "tar-pack": {
1785
  "version": "3.3.0",
1786
  "bundled": true,
1787
  "dev": true,
1788
  "optional": true,
1789
+ "requires": {
1790
+ "debug": "2.2.0",
1791
+ "fstream": "1.0.10",
1792
+ "fstream-ignore": "1.0.5",
1793
+ "once": "1.3.3",
1794
+ "readable-stream": "2.1.5",
1795
+ "rimraf": "2.5.4",
1796
+ "tar": "2.2.1",
1797
+ "uid-number": "0.0.6"
1798
+ },
1799
  "dependencies": {
1800
  "once": {
1801
  "version": "1.3.3",
1802
  "bundled": true,
1803
  "dev": true,
1804
+ "optional": true,
1805
+ "requires": {
1806
+ "wrappy": "1.0.2"
1807
+ }
1808
  },
1809
  "readable-stream": {
1810
  "version": "2.1.5",
1811
  "bundled": true,
1812
  "dev": true,
1813
+ "optional": true,
1814
+ "requires": {
1815
+ "buffer-shims": "1.0.0",
1816
+ "core-util-is": "1.0.2",
1817
+ "inherits": "2.0.3",
1818
+ "isarray": "1.0.0",
1819
+ "process-nextick-args": "1.0.7",
1820
+ "string_decoder": "0.10.31",
1821
+ "util-deprecate": "1.0.2"
1822
+ }
1823
  }
1824
  }
1825
  },
1827
  "version": "2.3.2",
1828
  "bundled": true,
1829
  "dev": true,
1830
+ "optional": true,
1831
+ "requires": {
1832
+ "punycode": "1.4.1"
1833
+ }
1834
  },
1835
  "tunnel-agent": {
1836
  "version": "0.4.3",
1865
  "version": "1.3.6",
1866
  "bundled": true,
1867
  "dev": true,
1868
+ "optional": true,
1869
+ "requires": {
1870
+ "extsprintf": "1.0.2"
1871
+ }
1872
  },
1873
  "wide-align": {
1874
  "version": "1.1.0",
1875
  "bundled": true,
1876
  "dev": true,
1877
+ "optional": true,
1878
+ "requires": {
1879
+ "string-width": "1.0.2"
1880
+ }
1881
  },
1882
  "wrappy": {
1883
  "version": "1.0.2",
1896
  "version": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
1897
  "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
1898
  "dev": true,
1899
+ "requires": {
1900
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
1901
+ "xregexp": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz"
1902
+ },
1903
  "dependencies": {
1904
  "isarray": {
1905
  "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
1909
  "readable-stream": {
1910
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
1911
  "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
1912
+ "dev": true,
1913
+ "requires": {
1914
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1915
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1916
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
1917
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
1918
+ }
1919
  }
1920
  }
1921
  },
1927
  "get-uri": {
1928
  "version": "https://registry.npmjs.org/get-uri/-/get-uri-1.1.0.tgz",
1929
  "integrity": "sha1-c3XQTa9/y1hLNjJnnL3zObUbsUk=",
1930
+ "dev": true,
1931
+ "requires": {
1932
+ "data-uri-to-buffer": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz",
1933
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
1934
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
1935
+ "file-uri-to-path": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-0.0.2.tgz",
1936
+ "ftp": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
1937
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
1938
+ }
1939
  },
1940
  "glob": {
1941
  "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
1942
  "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
1943
+ "dev": true,
1944
+ "requires": {
1945
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1946
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1947
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1948
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1949
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1950
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1951
+ }
1952
  },
1953
  "glob-base": {
1954
  "version": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
1955
  "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
1956
+ "dev": true,
1957
+ "requires": {
1958
+ "glob-parent": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1959
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
1960
+ }
1961
  },
1962
  "glob-parent": {
1963
  "version": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
1964
  "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
1965
+ "dev": true,
1966
+ "requires": {
1967
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
1968
+ }
1969
  },
1970
  "graceful-fs": {
1971
  "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
1985
  "has": {
1986
  "version": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
1987
  "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
1988
+ "dev": true,
1989
+ "requires": {
1990
+ "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz"
1991
+ }
1992
  },
1993
  "has-flag": {
1994
  "version": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
1998
  "hash-base": {
1999
  "version": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
2000
  "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
2001
+ "dev": true,
2002
+ "requires": {
2003
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
2004
+ }
2005
  },
2006
  "hash.js": {
2007
  "version": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
2008
  "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=",
2009
+ "dev": true,
2010
+ "requires": {
2011
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
2012
+ }
2013
  },
2014
  "hmac-drbg": {
2015
  "version": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
2016
  "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
2017
+ "dev": true,
2018
+ "requires": {
2019
+ "hash.js": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz",
2020
+ "minimalistic-assert": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
2021
+ "minimalistic-crypto-utils": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
2022
+ }
2023
  },
2024
  "htmlescape": {
2025
  "version": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
2029
  "http-proxy-agent": {
2030
  "version": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
2031
  "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=",
2032
+ "dev": true,
2033
+ "requires": {
2034
+ "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
2035
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
2036
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"
2037
+ }
2038
  },
2039
  "https-browserify": {
2040
  "version": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
2044
  "https-proxy-agent": {
2045
  "version": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
2046
  "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=",
2047
+ "dev": true,
2048
+ "requires": {
2049
+ "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
2050
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
2051
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz"
2052
+ }
2053
  },
2054
  "iconv-lite": {
2055
  "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.17.tgz",
2069
  "inflight": {
2070
  "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2071
  "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2072
+ "dev": true,
2073
+ "requires": {
2074
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2075
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
2076
+ }
2077
  },
2078
  "inherits": {
2079
  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2083
  "inline-source-map": {
2084
  "version": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
2085
  "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=",
2086
+ "dev": true,
2087
+ "requires": {
2088
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
2089
+ }
2090
  },
2091
  "insert-module-globals": {
2092
  "version": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.1.tgz",
2093
  "integrity": "sha1-wDv04BywhtW15azorQr+eInWOMM=",
2094
+ "dev": true,
2095
+ "requires": {
2096
+ "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
2097
+ "combine-source-map": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.7.2.tgz",
2098
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
2099
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
2100
+ "lexical-scope": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
2101
+ "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
2102
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
2103
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
2104
+ }
2105
  },
2106
  "invert-kv": {
2107
  "version": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
2116
  "is-binary-path": {
2117
  "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
2118
  "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
2119
+ "dev": true,
2120
+ "requires": {
2121
+ "binary-extensions": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz"
2122
+ }
2123
  },
2124
  "is-buffer": {
2125
  "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
2134
  "is-equal-shallow": {
2135
  "version": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
2136
  "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
2137
+ "dev": true,
2138
+ "requires": {
2139
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
2140
+ }
2141
  },
2142
  "is-extendable": {
2143
  "version": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2152
  "is-glob": {
2153
  "version": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
2154
  "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
2155
+ "dev": true,
2156
+ "requires": {
2157
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
2158
+ }
2159
  },
2160
  "is-number": {
2161
  "version": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
2162
  "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
2163
+ "dev": true,
2164
+ "requires": {
2165
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
2166
+ }
2167
  },
2168
  "is-posix-bracket": {
2169
  "version": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
2183
  "isobject": {
2184
  "version": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
2185
  "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
2186
+ "dev": true,
2187
+ "requires": {
2188
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
2189
+ }
2190
  },
2191
  "json-stable-stringify": {
2192
  "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
2193
  "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=",
2194
+ "dev": true,
2195
+ "requires": {
2196
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
2197
+ }
2198
  },
2199
  "json3": {
2200
  "version": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
2211
  "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
2212
  "dev": true
2213
  },
 
 
 
 
 
2214
  "kew": {
2215
  "version": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
2216
  "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
2219
  "kind-of": {
2220
  "version": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2221
  "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2222
+ "dev": true,
2223
+ "requires": {
2224
+ "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz"
2225
+ }
2226
  },
2227
  "labeled-stream-splicer": {
2228
  "version": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz",
2229
  "integrity": "sha1-pS4dE4AkwAuGscDJH2d5GLiuClk=",
2230
  "dev": true,
2231
+ "requires": {
2232
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2233
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2234
+ "stream-splicer": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz"
2235
+ },
2236
  "dependencies": {
2237
  "isarray": {
2238
  "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2249
  "lcid": {
2250
  "version": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2251
  "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2252
+ "dev": true,
2253
+ "requires": {
2254
+ "invert-kv": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz"
2255
+ }
2256
  },
2257
  "levn": {
2258
  "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2259
  "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
2260
+ "dev": true,
2261
+ "requires": {
2262
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2263
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
2264
+ }
2265
  },
2266
  "lexical-scope": {
2267
  "version": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz",
2268
  "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=",
2269
+ "dev": true,
2270
+ "requires": {
2271
+ "astw": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz"
2272
+ }
2273
  },
2274
  "lodash._arraycopy": {
2275
  "version": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
2284
  "lodash._baseassign": {
2285
  "version": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
2286
  "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=",
2287
+ "dev": true,
2288
+ "requires": {
2289
+ "lodash._basecopy": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
2290
+ "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz"
2291
+ }
2292
  },
2293
  "lodash._baseclone": {
2294
  "version": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz",
2295
  "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=",
2296
+ "dev": true,
2297
+ "requires": {
2298
+ "lodash._arraycopy": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz",
2299
+ "lodash._arrayeach": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
2300
+ "lodash._baseassign": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
2301
+ "lodash._basefor": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz",
2302
+ "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
2303
+ "lodash.keys": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz"
2304
+ }
2305
  },
2306
  "lodash._basecopy": {
2307
  "version": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
2341
  "lodash.clone": {
2342
  "version": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-3.0.3.tgz",
2343
  "integrity": "sha1-hGiMc9MrWpDKJWFpY/GJJSqZcEM=",
2344
+ "dev": true,
2345
+ "requires": {
2346
+ "lodash._baseclone": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz",
2347
+ "lodash._bindcallback": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
2348
+ "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
2349
+ }
2350
  },
2351
  "lodash.create": {
2352
  "version": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
2353
  "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=",
2354
+ "dev": true,
2355
+ "requires": {
2356
+ "lodash._baseassign": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz",
2357
+ "lodash._basecreate": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz",
2358
+ "lodash._isiterateecall": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz"
2359
+ }
2360
  },
2361
  "lodash.defaultsdeep": {
2362
  "version": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz",
2363
  "integrity": "sha1-bBpYbmxWR7DmTi15gUG4g2FYvoo=",
2364
  "dev": true,
2365
+ "requires": {
2366
+ "lodash._baseclone": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz",
2367
+ "lodash._stack": "https://registry.npmjs.org/lodash._stack/-/lodash._stack-4.1.3.tgz",
2368
+ "lodash.isplainobject": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
2369
+ "lodash.keysin": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.2.0.tgz",
2370
+ "lodash.mergewith": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
2371
+ "lodash.rest": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz"
2372
+ },
2373
  "dependencies": {
2374
  "lodash._baseclone": {
2375
  "version": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz",
2396
  "lodash.keys": {
2397
  "version": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
2398
  "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
2399
+ "dev": true,
2400
+ "requires": {
2401
+ "lodash._getnative": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
2402
+ "lodash.isarguments": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
2403
+ "lodash.isarray": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz"
2404
+ }
2405
  },
2406
  "lodash.keysin": {
2407
  "version": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.2.0.tgz",
2442
  "micromatch": {
2443
  "version": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
2444
  "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
2445
+ "dev": true,
2446
+ "requires": {
2447
+ "arr-diff": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
2448
+ "array-unique": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
2449
+ "braces": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
2450
+ "expand-brackets": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
2451
+ "extglob": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
2452
+ "filename-regex": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
2453
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
2454
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
2455
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2456
+ "normalize-path": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
2457
+ "object.omit": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
2458
+ "parse-glob": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
2459
+ "regex-cache": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz"
2460
+ }
2461
  },
2462
  "miller-rabin": {
2463
  "version": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz",
2464
  "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=",
2465
+ "dev": true,
2466
+ "requires": {
2467
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
2468
+ "brorand": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
2469
+ }
2470
  },
2471
  "minimalistic-assert": {
2472
  "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
2481
  "minimatch": {
2482
  "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2483
  "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
2484
+ "dev": true,
2485
+ "requires": {
2486
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
2487
+ }
2488
  },
2489
  "minimist": {
2490
  "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2495
  "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2496
  "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2497
  "dev": true,
2498
+ "requires": {
2499
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
2500
+ },
2501
  "dependencies": {
2502
  "minimist": {
2503
  "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2515
  "version": "https://registry.npmjs.org/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz",
2516
  "integrity": "sha1-kby5s73gV912d8eBJeSR5Y1mZHw=",
2517
  "dev": true,
2518
+ "requires": {
2519
+ "browser-stdout": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
2520
+ "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
2521
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
2522
+ "diff": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
2523
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2524
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
2525
+ "growl": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
2526
+ "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
2527
+ "lodash.create": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz",
2528
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2529
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz"
2530
+ },
2531
  "dependencies": {
2532
  "glob": {
2533
  "version": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
2534
  "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=",
2535
+ "dev": true,
2536
+ "requires": {
2537
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2538
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2539
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2540
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2541
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2542
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
2543
+ }
2544
  }
2545
  }
2546
  },
2547
  "module-deps": {
2548
  "version": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz",
2549
  "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=",
2550
+ "dev": true,
2551
+ "requires": {
2552
+ "JSONStream": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz",
2553
+ "browser-resolve": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz",
2554
+ "cached-path-relative": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz",
2555
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
2556
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
2557
+ "detective": "https://registry.npmjs.org/detective/-/detective-4.5.0.tgz",
2558
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
2559
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2560
+ "parents": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
2561
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
2562
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
2563
+ "stream-combiner2": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
2564
+ "subarg": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
2565
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
2566
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
2567
+ }
2568
  },
2569
  "ms": {
2570
  "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
2587
  "version": "https://registry.npmjs.org/nightwatch/-/nightwatch-0.9.15.tgz",
2588
  "integrity": "sha1-caYqoWNo6doJ+ugAzLn7NNA2Fk0=",
2589
  "dev": true,
2590
+ "requires": {
2591
+ "chai-nightwatch": "https://registry.npmjs.org/chai-nightwatch/-/chai-nightwatch-0.1.1.tgz",
2592
+ "ejs": "https://registry.npmjs.org/ejs/-/ejs-0.8.3.tgz",
2593
+ "lodash.clone": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-3.0.3.tgz",
2594
+ "lodash.defaultsdeep": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.3.2.tgz",
2595
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2596
+ "mkpath": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz",
2597
+ "mocha-nightwatch": "https://registry.npmjs.org/mocha-nightwatch/-/mocha-nightwatch-3.2.2.tgz",
2598
+ "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
2599
+ "proxy-agent": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz",
2600
+ "q": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
2601
+ },
2602
  "dependencies": {
2603
  "minimatch": {
2604
  "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
2605
  "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
2606
+ "dev": true,
2607
+ "requires": {
2608
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz"
2609
+ }
2610
  }
2611
  }
2612
  },
2613
  "normalize-path": {
2614
  "version": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
2615
  "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
2616
+ "dev": true,
2617
+ "requires": {
2618
+ "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz"
2619
+ }
2620
  },
2621
  "object.omit": {
2622
  "version": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
2623
  "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
2624
+ "dev": true,
2625
+ "requires": {
2626
+ "for-own": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
2627
+ "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
2628
+ }
2629
  },
2630
  "once": {
2631
  "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2632
  "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2633
+ "dev": true,
2634
+ "requires": {
2635
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
2636
+ }
2637
  },
2638
  "optimist": {
2639
  "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
2640
  "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
2641
  "dev": true,
2642
+ "requires": {
2643
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
2644
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz"
2645
+ },
2646
  "dependencies": {
2647
  "minimist": {
2648
  "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
2655
  "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
2656
  "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
2657
  "dev": true,
2658
+ "requires": {
2659
+ "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
2660
+ "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2661
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2662
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2663
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2664
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
2665
+ },
2666
  "dependencies": {
2667
  "wordwrap": {
2668
  "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
2679
  "os-locale": {
2680
  "version": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
2681
  "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
2682
+ "dev": true,
2683
+ "requires": {
2684
+ "lcid": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
2685
+ }
2686
  },
2687
  "outpipe": {
2688
  "version": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
2689
  "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=",
2690
+ "dev": true,
2691
+ "requires": {
2692
+ "shell-quote": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz"
2693
+ }
2694
  },
2695
  "pac-proxy-agent": {
2696
  "version": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.0.0.tgz",
2697
  "integrity": "sha1-3NW3RlgTZ0MKI26I6s/U5bjQaKU=",
2698
+ "dev": true,
2699
+ "requires": {
2700
+ "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
2701
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
2702
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
2703
+ "get-uri": "https://registry.npmjs.org/get-uri/-/get-uri-1.1.0.tgz",
2704
+ "http-proxy-agent": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
2705
+ "https-proxy-agent": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
2706
+ "pac-resolver": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-1.2.6.tgz",
2707
+ "socks-proxy-agent": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.0.0.tgz",
2708
+ "stream-to-buffer": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz"
2709
+ }
2710
  },
2711
  "pac-resolver": {
2712
  "version": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-1.2.6.tgz",
2713
  "integrity": "sha1-7QOvDFtZM1Bb3T8H91F1Rm1efPs=",
2714
+ "dev": true,
2715
+ "requires": {
2716
+ "co": "https://registry.npmjs.org/co/-/co-3.0.6.tgz",
2717
+ "degenerator": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz",
2718
+ "netmask": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
2719
+ "regenerator": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.46.tgz",
2720
+ "thunkify": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz"
2721
+ }
2722
  },
2723
  "pako": {
2724
  "version": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
2728
  "parents": {
2729
  "version": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
2730
  "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=",
2731
+ "dev": true,
2732
+ "requires": {
2733
+ "path-platform": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz"
2734
+ }
2735
  },
2736
  "parse-asn1": {
2737
  "version": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
2738
  "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
2739
+ "dev": true,
2740
+ "requires": {
2741
+ "asn1.js": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz",
2742
+ "browserify-aes": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz",
2743
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
2744
+ "evp_bytestokey": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz",
2745
+ "pbkdf2": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz"
2746
+ }
2747
  },
2748
  "parse-glob": {
2749
  "version": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
2750
  "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
2751
+ "dev": true,
2752
+ "requires": {
2753
+ "glob-base": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
2754
+ "is-dotfile": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz",
2755
+ "is-extglob": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
2756
+ "is-glob": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
2757
+ }
2758
  },
2759
  "path-browserify": {
2760
  "version": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
2780
  "version": "0.0.11",
2781
  "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
2782
  "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
2783
+ "dev": true,
2784
+ "requires": {
2785
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
2786
+ }
2787
  },
2788
  "pbkdf2": {
2789
  "version": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz",
2790
  "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=",
2791
+ "dev": true,
2792
+ "requires": {
2793
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
2794
+ "create-hmac": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
2795
+ "ripemd160": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
2796
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
2797
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
2798
+ }
2799
  },
2800
  "prelude-ls": {
2801
  "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2825
  "proxy-agent": {
2826
  "version": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz",
2827
  "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=",
2828
+ "dev": true,
2829
+ "requires": {
2830
+ "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
2831
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
2832
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
2833
+ "http-proxy-agent": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz",
2834
+ "https-proxy-agent": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
2835
+ "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz",
2836
+ "pac-proxy-agent": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.0.0.tgz",
2837
+ "socks-proxy-agent": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.0.0.tgz"
2838
+ }
2839
  },
2840
  "ps-tree": {
2841
  "version": "1.1.0",
2842
  "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
2843
  "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=",
2844
+ "dev": true,
2845
+ "requires": {
2846
+ "event-stream": "3.3.4"
2847
+ }
2848
  },
2849
  "public-encrypt": {
2850
  "version": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
2851
  "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
2852
+ "dev": true,
2853
+ "requires": {
2854
+ "bn.js": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
2855
+ "browserify-rsa": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
2856
+ "create-hash": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
2857
+ "parse-asn1": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
2858
+ "randombytes": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz"
2859
+ }
2860
  },
2861
  "punycode": {
2862
  "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
2881
  "randomatic": {
2882
  "version": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
2883
  "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=",
2884
+ "dev": true,
2885
+ "requires": {
2886
+ "is-number": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
2887
+ "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
2888
+ }
2889
  },
2890
  "randombytes": {
2891
  "version": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz",
2895
  "read-only-stream": {
2896
  "version": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
2897
  "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=",
2898
+ "dev": true,
2899
+ "requires": {
2900
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
2901
+ }
2902
  },
2903
  "readable-stream": {
2904
  "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
2905
  "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
2906
  "dev": true,
2907
+ "requires": {
2908
+ "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
2909
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2910
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2911
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2912
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
2913
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
2914
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
2915
+ },
2916
  "dependencies": {
2917
  "string_decoder": {
2918
  "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
2919
  "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
2920
+ "dev": true,
2921
+ "requires": {
2922
+ "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz"
2923
+ }
2924
  }
2925
  }
2926
  },
2927
  "readdirp": {
2928
  "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
2929
  "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
2930
+ "dev": true,
2931
+ "requires": {
2932
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
2933
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2934
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
2935
+ "set-immediate-shim": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz"
2936
+ }
2937
  },
2938
  "recast": {
2939
  "version": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz",
2940
  "integrity": "sha1-lCgI96oBbx+nFCxGHX5XBKqo1pc=",
2941
  "dev": true,
2942
+ "requires": {
2943
+ "ast-types": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz",
2944
+ "esprima-fb": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
2945
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
2946
+ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz"
2947
+ },
2948
  "dependencies": {
2949
  "ast-types": {
2950
  "version": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz",
2962
  "version": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.46.tgz",
2963
  "integrity": "sha1-FUwydoY2HtUsrWmyVF78U6PQdpY=",
2964
  "dev": true,
2965
+ "requires": {
2966
+ "commoner": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
2967
+ "defs": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz",
2968
+ "esprima-fb": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
2969
+ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
2970
+ "recast": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz",
2971
+ "regenerator-runtime": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz",
2972
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
2973
+ },
2974
  "dependencies": {
2975
  "esprima-fb": {
2976
  "version": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz",
2987
  "regex-cache": {
2988
  "version": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
2989
  "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
2990
+ "dev": true,
2991
+ "requires": {
2992
+ "is-equal-shallow": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
2993
+ "is-primitive": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz"
2994
+ }
2995
  },
2996
  "remove-trailing-separator": {
2997
  "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz",
3011
  "resolve": {
3012
  "version": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz",
3013
  "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=",
3014
+ "dev": true,
3015
+ "requires": {
3016
+ "path-parse": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz"
3017
+ }
3018
  },
3019
  "right-align": {
3020
  "version": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
3021
  "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
3022
+ "dev": true,
3023
+ "requires": {
3024
+ "align-text": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
3025
+ }
3026
  },
3027
  "rimraf": {
3028
  "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
3029
  "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
3030
+ "dev": true,
3031
+ "requires": {
3032
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
3033
+ }
3034
  },
3035
  "ripemd160": {
3036
  "version": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
3037
  "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
3038
+ "dev": true,
3039
+ "requires": {
3040
+ "hash-base": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
3041
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
3042
+ }
3043
  },
3044
  "safe-buffer": {
3045
  "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
3059
  "sha.js": {
3060
  "version": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz",
3061
  "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=",
3062
+ "dev": true,
3063
+ "requires": {
3064
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
3065
+ }
3066
  },
3067
  "shasum": {
3068
  "version": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz",
3069
  "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=",
3070
+ "dev": true,
3071
+ "requires": {
3072
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz",
3073
+ "sha.js": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz"
3074
+ }
3075
  },
3076
  "shell-quote": {
3077
  "version": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
3078
  "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
3079
+ "dev": true,
3080
+ "requires": {
3081
+ "array-filter": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
3082
+ "array-map": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
3083
+ "array-reduce": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
3084
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
3085
+ }
3086
  },
3087
  "simple-fmt": {
3088
  "version": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz",
3102
  "socks": {
3103
  "version": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
3104
  "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
3105
+ "dev": true,
3106
+ "requires": {
3107
+ "ip": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
3108
+ "smart-buffer": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz"
3109
+ }
3110
  },
3111
  "socks-proxy-agent": {
3112
  "version": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.0.0.tgz",
3113
  "integrity": "sha1-xnSELXBBD7KK4ekuYTWpJ4VLwnU=",
3114
+ "dev": true,
3115
+ "requires": {
3116
+ "agent-base": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
3117
+ "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
3118
+ "socks": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz"
3119
+ }
3120
  },
3121
  "source-map": {
3122
  "version": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
3127
  "version": "0.3.3",
3128
  "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
3129
  "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
3130
+ "dev": true,
3131
+ "requires": {
3132
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
3133
+ }
3134
  },
3135
  "stable": {
3136
  "version": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz",
3140
  "stream-browserify": {
3141
  "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
3142
  "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
3143
+ "dev": true,
3144
+ "requires": {
3145
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
3146
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
3147
+ }
3148
  },
3149
  "stream-combiner": {
3150
  "version": "0.0.4",
3151
  "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
3152
  "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
3153
+ "dev": true,
3154
+ "requires": {
3155
+ "duplexer": "0.1.1"
3156
+ }
3157
  },
3158
  "stream-combiner2": {
3159
  "version": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
3160
  "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
3161
+ "dev": true,
3162
+ "requires": {
3163
+ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
3164
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
3165
+ }
3166
  },
3167
  "stream-http": {
3168
  "version": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz",
3169
  "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=",
3170
+ "dev": true,
3171
+ "requires": {
3172
+ "builtin-status-codes": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
3173
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
3174
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
3175
+ "to-arraybuffer": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
3176
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
3177
+ }
3178
  },
3179
  "stream-splicer": {
3180
  "version": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz",
3181
  "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=",
3182
+ "dev": true,
3183
+ "requires": {
3184
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
3185
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz"
3186
+ }
3187
  },
3188
  "stream-to": {
3189
  "version": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz",
3193
  "stream-to-buffer": {
3194
  "version": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz",
3195
  "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
3196
+ "dev": true,
3197
+ "requires": {
3198
+ "stream-to": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz"
3199
+ }
3200
  },
3201
  "string_decoder": {
3202
  "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3216
  "subarg": {
3217
  "version": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
3218
  "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
3219
+ "dev": true,
3220
+ "requires": {
3221
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
3222
+ }
3223
  },
3224
  "supports-color": {
3225
  "version": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz",
3226
  "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=",
3227
+ "dev": true,
3228
+ "requires": {
3229
+ "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz"
3230
+ }
3231
  },
3232
  "syntax-error": {
3233
  "version": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.3.0.tgz",
3234
  "integrity": "sha1-HtkmbE1AvnXcVb+bsct3Biu5bKE=",
3235
+ "dev": true,
3236
+ "requires": {
3237
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.11.tgz"
3238
+ }
3239
  },
3240
  "through": {
3241
  "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
3245
  "through2": {
3246
  "version": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3247
  "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
3248
+ "dev": true,
3249
+ "requires": {
3250
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
3251
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
3252
+ }
3253
  },
3254
  "thunkify": {
3255
  "version": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz",
3259
  "timers-browserify": {
3260
  "version": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
3261
  "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=",
3262
+ "dev": true,
3263
+ "requires": {
3264
+ "process": "https://registry.npmjs.org/process/-/process-0.11.10.tgz"
3265
+ }
3266
  },
3267
  "to-arraybuffer": {
3268
  "version": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
3282
  "type-check": {
3283
  "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
3284
  "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
3285
+ "dev": true,
3286
+ "requires": {
3287
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
3288
+ }
3289
  },
3290
  "type-detect": {
3291
  "version": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
3306
  "version": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
3307
  "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
3308
  "dev": true,
3309
+ "requires": {
3310
+ "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3311
+ "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
3312
+ },
3313
  "dependencies": {
3314
  "punycode": {
3315
  "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3322
  "version": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
3323
  "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
3324
  "dev": true,
3325
+ "requires": {
3326
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
3327
+ },
3328
  "dependencies": {
3329
  "inherits": {
3330
  "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
3341
  "vm-browserify": {
3342
  "version": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
3343
  "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
3344
+ "dev": true,
3345
+ "requires": {
3346
+ "indexof": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz"
3347
+ }
3348
  },
3349
  "watchify": {
3350
  "version": "https://registry.npmjs.org/watchify/-/watchify-3.9.0.tgz",
3351
  "integrity": "sha1-8HX9LoqGrN6Eztum5cKgvt1SPZ4=",
3352
+ "dev": true,
3353
+ "requires": {
3354
+ "anymatch": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz",
3355
+ "browserify": "https://registry.npmjs.org/browserify/-/browserify-14.3.0.tgz",
3356
+ "chokidar": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
3357
+ "defined": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
3358
+ "outpipe": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz",
3359
+ "through2": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
3360
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
3361
+ }
3362
  },
3363
  "window-size": {
3364
  "version": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
3393
  "yargs": {
3394
  "version": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz",
3395
  "integrity": "sha1-ISBUaTFuk5Ex1Z8toMbX+YIh6kA=",
3396
+ "dev": true,
3397
+ "requires": {
3398
+ "camelcase": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
3399
+ "cliui": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
3400
+ "decamelize": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
3401
+ "os-locale": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
3402
+ "window-size": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
3403
+ "y18n": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
3404
+ }
3405
  }
3406
  }
3407
  }
readme.txt CHANGED
@@ -2,11 +2,11 @@
2
  Contributors: yoast, angrycreative, kraftner, marcusforsberg, viktorfroberg, joostdevalk, atimmer, jipmoors, theorboman
3
  Tags: Yoast, SEO, ACF, Advanced Custom Fields, analysis, Search Engine Optimization
4
  Requires at least: 4.3.1
5
- Tested up to: 4.8.1
6
  License: GPLv3
7
  License URI: http://www.gnu.org/licenses/gpl.html
8
- Stable tag: 2.0.0
9
- Text Domain: yoast-acf-analysis
10
 
11
  WordPress plugin that adds the content of all ACF fields to the Yoast SEO score analysis.
12
 
@@ -26,11 +26,22 @@ Previously called Yoast ACF Analysis.
26
 
27
  == Changelog ==
28
 
 
 
 
 
 
 
 
 
 
 
 
29
  = 2.0.0 =
30
 
31
  Released August 22th, 2017
32
 
33
- * Changed:
34
  * Complete rewrite, including full support for ACF 4 and 5.
35
 
36
  = 1.2.1 =
2
  Contributors: yoast, angrycreative, kraftner, marcusforsberg, viktorfroberg, joostdevalk, atimmer, jipmoors, theorboman
3
  Tags: Yoast, SEO, ACF, Advanced Custom Fields, analysis, Search Engine Optimization
4
  Requires at least: 4.3.1
5
+ Tested up to: 4.8.2
6
  License: GPLv3
7
  License URI: http://www.gnu.org/licenses/gpl.html
8
+ Stable tag: 2.0.1
9
+ Text Domain: acf-content-analysis-for-yoast-seo
10
 
11
  WordPress plugin that adds the content of all ACF fields to the Yoast SEO score analysis.
12
 
26
 
27
  == Changelog ==
28
 
29
+ = 2.0.1 =
30
+
31
+ Released October 19th, 2017
32
+
33
+ Bugfixes:
34
+ * Fixes the mismatch in textdomain according to the plugin slug.
35
+ * Fixes using an incorrect path when loading plugin data.
36
+ * Fixes a bug with flexible content and repeaters, in combination with ACF 5, causing JavaScript errors.
37
+ * Fixes a bug with short array notation which is a problem on sites running on PHP 5.3 or lower.
38
+ * Fixes a bug where assets are loaded without checking for required dependencies.
39
+
40
  = 2.0.0 =
41
 
42
  Released August 22th, 2017
43
 
44
+ Changes:
45
  * Complete rewrite, including full support for ACF 4 and 5.
46
 
47
  = 1.2.1 =
tests/js/system/data/acf5.php CHANGED
@@ -192,6 +192,130 @@ if( function_exists('acf_add_local_field_group') ):
192
  'load_terms' => 0,
193
  'save_terms' => 0,
194
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  ),
196
  'location' => array (
197
  array (
192
  'load_terms' => 0,
193
  'save_terms' => 0,
194
  ),
195
+ array (
196
+ 'key' => 'field_599d78aceff96',
197
+ 'label' => 'Flexible Content',
198
+ 'name' => 'yoast_acf_analysis_flexible_content',
199
+ 'type' => 'flexible_content',
200
+ 'instructions' => '',
201
+ 'required' => 0,
202
+ 'conditional_logic' => 0,
203
+ 'wrapper' => array (
204
+ 'width' => '',
205
+ 'class' => '',
206
+ 'id' => '',
207
+ ),
208
+ 'layouts' => array (
209
+ '599d78b071bb6' => array (
210
+ 'key' => '599d78b071bb6',
211
+ 'name' => 'yoast_acf_analysis_flexible_content_layout',
212
+ 'label' => 'Text Layout',
213
+ 'display' => 'block',
214
+ 'sub_fields' => array (
215
+ array (
216
+ 'key' => 'field_599ea47054535',
217
+ 'label' => 'Text (inside Flexible Content)',
218
+ 'name' => 'yoast_acf_analysis_flexible_content_text',
219
+ 'type' => 'text',
220
+ 'instructions' => '',
221
+ 'required' => 0,
222
+ 'conditional_logic' => 0,
223
+ 'wrapper' => array (
224
+ 'width' => '',
225
+ 'class' => '',
226
+ 'id' => '',
227
+ ),
228
+ 'default_value' => '',
229
+ 'placeholder' => '',
230
+ 'prepend' => '',
231
+ 'append' => '',
232
+ 'maxlength' => '',
233
+ ),
234
+ ),
235
+ 'min' => '',
236
+ 'max' => '',
237
+ ),
238
+ ),
239
+ 'button_label' => 'Add Row',
240
+ 'min' => '',
241
+ 'max' => '',
242
+ ),
243
+ array (
244
+ 'key' => 'field_599ea4a054536',
245
+ 'label' => 'Repeater',
246
+ 'name' => 'yoast_acf_analysis_repeater',
247
+ 'type' => 'repeater',
248
+ 'instructions' => '',
249
+ 'required' => 0,
250
+ 'conditional_logic' => 0,
251
+ 'wrapper' => array (
252
+ 'width' => '',
253
+ 'class' => '',
254
+ 'id' => '',
255
+ ),
256
+ 'collapsed' => '',
257
+ 'min' => 0,
258
+ 'max' => 0,
259
+ 'layout' => 'table',
260
+ 'button_label' => '',
261
+ 'sub_fields' => array (
262
+ array (
263
+ 'key' => 'field_599ea4b054538',
264
+ 'label' => 'Text (inside Repeater)',
265
+ 'name' => 'yoast_acf_analysis_repeater_text',
266
+ 'type' => 'text',
267
+ 'instructions' => '',
268
+ 'required' => 0,
269
+ 'conditional_logic' => 0,
270
+ 'wrapper' => array (
271
+ 'width' => '',
272
+ 'class' => '',
273
+ 'id' => '',
274
+ ),
275
+ 'default_value' => '',
276
+ 'placeholder' => '',
277
+ 'prepend' => '',
278
+ 'append' => '',
279
+ 'maxlength' => '',
280
+ ),
281
+ ),
282
+ ),
283
+ array(
284
+ 'key' => 'field_59c25bf746213',
285
+ 'label' => 'Group',
286
+ 'name' => 'yoast_acf_analysis_group',
287
+ 'type' => 'group',
288
+ 'instructions' => '',
289
+ 'required' => 0,
290
+ 'conditional_logic' => 0,
291
+ 'wrapper' => array(
292
+ 'width' => '',
293
+ 'class' => '',
294
+ 'id' => '',
295
+ ),
296
+ 'layout' => 'block',
297
+ 'sub_fields' => array(
298
+ array(
299
+ 'key' => 'field_59c25c5346214',
300
+ 'label' => 'Text (inside Group)',
301
+ 'name' => 'yoast_acf_analysis_group_text',
302
+ 'type' => 'text',
303
+ 'instructions' => '',
304
+ 'required' => 0,
305
+ 'conditional_logic' => 0,
306
+ 'wrapper' => array(
307
+ 'width' => '',
308
+ 'class' => '',
309
+ 'id' => '',
310
+ ),
311
+ 'default_value' => '',
312
+ 'placeholder' => '',
313
+ 'prepend' => '',
314
+ 'append' => '',
315
+ 'maxlength' => '',
316
+ ),
317
+ ),
318
+ ),
319
  ),
320
  'location' => array (
321
  array (
tests/js/system/tests/acf5/layout-pro.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var assert = require('assert');
2
+ var simpleField = require('../../helpers/simpleField');
3
+ var replaceVars = require('../../helpers/replaceVars');
4
+
5
+ module.exports = {
6
+ tags: ['acf5', 'pro', 'layout'],
7
+
8
+ before: function (browser) {
9
+
10
+ },
11
+
12
+ beforeEach: function (browser) {
13
+ var page = browser.page.WordPressHelper();
14
+ page.newPost();
15
+ },
16
+
17
+ 'Flexible Content Field': function (browser) {
18
+
19
+ var addRowButton = '.acf-field-flexible-content .acf-actions .acf-button';
20
+ var addLayoutPopup = '.acf-fc-popup a[data-layout="yoast_acf_analysis_flexible_content_layout"]';
21
+ var textField = '.acf-field-flexible-content .values .acf-field-text input';
22
+
23
+ browser.waitForElementVisible(addRowButton, 10000);
24
+ browser.click(addRowButton);
25
+
26
+ browser.waitForElementVisible(addLayoutPopup, 10000);
27
+ browser.click(addLayoutPopup);
28
+
29
+ browser.waitForElementVisible(textField, 10000);
30
+
31
+ browser.pause( 3000 );
32
+
33
+ var value = simpleField(browser, textField);
34
+ replaceVars( browser, 'yoast_acf_analysis_flexible_content_0_yoast_acf_analysis_flexible_content_text', value );
35
+
36
+ },
37
+
38
+ 'Repeater Field': function (browser) {
39
+
40
+ var addRowButton = '.acf-field-repeater .acf-actions .acf-button';
41
+ var textField = '.acf-field-repeater .acf-row:not(.acf-clone) .acf-field-text input';
42
+
43
+ browser.waitForElementVisible(addRowButton, 10000);
44
+ browser.click(addRowButton);
45
+
46
+ browser.waitForElementVisible(textField, 10000);
47
+
48
+ browser.pause( 3000 );
49
+
50
+ var value = simpleField(browser, textField);
51
+ replaceVars( browser, 'yoast_acf_analysis_repeater_0_yoast_acf_analysis_repeater_text', value );
52
+
53
+ },
54
+
55
+ 'Group Field': function (browser) {
56
+
57
+ var value = simpleField(browser, '.acf-field-group .acf-field-text input');
58
+ replaceVars( browser, 'yoast_acf_analysis_group_yoast_acf_analysis_group_text', value );
59
+
60
+ },
61
+
62
+ after : function(browser) {
63
+ browser.end();
64
+ }
65
+ };
tests/php/unit/AssetsTest.php CHANGED
@@ -18,8 +18,12 @@ class AssetsTest extends \PHPUnit_Framework_TestCase {
18
  define( 'AC_SEO_ACF_ANALYSIS_PLUGIN_FILE', '/directory/file' );
19
  Functions\expect( 'get_plugin_data' )
20
  ->once()
21
- ->with( dirname( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE ) )
22
- ->andReturn( array( 'Version' => '1.0.0' ) );
 
 
 
 
23
 
24
  $testee = new \Yoast_ACF_Analysis_Assets();
25
  $testee->init();
18
  define( 'AC_SEO_ACF_ANALYSIS_PLUGIN_FILE', '/directory/file' );
19
  Functions\expect( 'get_plugin_data' )
20
  ->once()
21
+ ->with( AC_SEO_ACF_ANALYSIS_PLUGIN_FILE )
22
+ ->andReturn(
23
+ array(
24
+ 'Version' => '2.0.0',
25
+ )
26
+ );
27
 
28
  $testee = new \Yoast_ACF_Analysis_Assets();
29
  $testee->init();
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit8a764063ff1a9e4efff80091766c8d97::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInited1f19ad7149ce70757a979c9968d1fc::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInitcb36f0f2d2acd7bbb1390c61386f16aa::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit87d59993b47b744b2790b88f7f3178f5::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit8a764063ff1a9e4efff80091766c8d97
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit8a764063ff1a9e4efff80091766c8d97
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit8a764063ff1a9e4efff80091766c8d97', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit8a764063ff1a9e4efff80091766c8d97', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit8a764063ff1a9e4efff80091766c8d97::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInited1f19ad7149ce70757a979c9968d1fc
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInited1f19ad7149ce70757a979c9968d1fc', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInited1f19ad7149ce70757a979c9968d1fc', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInited1f19ad7149ce70757a979c9968d1fc::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInitcb36f0f2d2acd7bbb1390c61386f16aa {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitcb36f0f2d2acd7bbb1390c61386f16aa {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitcb36f0f2d2acd7bbb1390c61386f16aa', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitcb36f0f2d2acd7bbb1390c61386f16aa', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit87d59993b47b744b2790b88f7f3178f5 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit87d59993b47b744b2790b88f7f3178f5', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit87d59993b47b744b2790b88f7f3178f5', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
yoast-acf-analysis.php CHANGED
@@ -7,11 +7,11 @@
7
  Plugin Name: ACF Content Analysis for Yoast SEO
8
  Plugin URI: https://wordpress.org/plugins/acf-content-analysis-for-yoast-seo/
9
  Description: Ensure that Yoast SEO analyzes all Advanced Custom Fields 4 and 5 content including Flexible Content and Repeaters.
10
- Version: 2.0.0
11
  Author: Thomas Kräftner, ViktorFroberg, marol87, pekz0r, angrycreative, Team Yoast
12
  Author URI: http://angrycreative.se
13
  License: GPL v3
14
- Text Domain: yoast-acf-analysis
15
  Domain Path: /languages/
16
  */
17
 
@@ -42,11 +42,11 @@ function yoast_acf_analysis_load_textdomain() {
42
  $mu_path = str_replace( '\\', '/', WPMU_PLUGIN_DIR );
43
 
44
  if ( 0 === stripos( $plugin_path, $mu_path ) ) {
45
- load_muplugin_textdomain( 'yoast-acf-analysis', $plugin_path . '/languages' );
46
  return;
47
  }
48
 
49
- load_plugin_textdomain( 'yoast-acf-analysis', false, $plugin_path . '/languages' );
50
  }
51
  add_action( 'plugins_loaded', 'yoast_acf_analysis_load_textdomain' );
52
 
@@ -54,8 +54,8 @@ add_action( 'plugins_loaded', 'yoast_acf_analysis_load_textdomain' );
54
  * Triggers a message whenever the class is missing.
55
  */
56
  if ( ! class_exists( 'AC_Yoast_SEO_ACF_Content_Analysis' ) && is_admin() ) {
57
- /* translators: %1$s resolves to Yoast SEO: ACF Analysis */
58
- $message = sprintf( __( '%1$s could not be loaded because of missing files.', 'yoast-acf-analysis' ), 'ACF Content Analysis for Yoast SEO' );
59
  add_action(
60
  'admin_notices',
61
  create_function( '', "echo '<div class=\"error\"><p>$message</p></div>';" )
7
  Plugin Name: ACF Content Analysis for Yoast SEO
8
  Plugin URI: https://wordpress.org/plugins/acf-content-analysis-for-yoast-seo/
9
  Description: Ensure that Yoast SEO analyzes all Advanced Custom Fields 4 and 5 content including Flexible Content and Repeaters.
10
+ Version: 2.0.1
11
  Author: Thomas Kräftner, ViktorFroberg, marol87, pekz0r, angrycreative, Team Yoast
12
  Author URI: http://angrycreative.se
13
  License: GPL v3
14
+ Text Domain: acf-content-analysis-for-yoast-seo
15
  Domain Path: /languages/
16
  */
17
 
42
  $mu_path = str_replace( '\\', '/', WPMU_PLUGIN_DIR );
43
 
44
  if ( 0 === stripos( $plugin_path, $mu_path ) ) {
45
+ load_muplugin_textdomain( 'acf-content-analysis-for-yoast-seo', $plugin_path . '/languages' );
46
  return;
47
  }
48
 
49
+ load_plugin_textdomain( 'acf-content-analysis-for-yoast-seo', false, $plugin_path . '/languages' );
50
  }
51
  add_action( 'plugins_loaded', 'yoast_acf_analysis_load_textdomain' );
52
 
54
  * Triggers a message whenever the class is missing.
55
  */
56
  if ( ! class_exists( 'AC_Yoast_SEO_ACF_Content_Analysis' ) && is_admin() ) {
57
+ /* translators: %1$s resolves to ACF Content Analysis for Yoast SEO */
58
+ $message = sprintf( __( '%1$s could not be loaded because of missing files.', 'acf-content-analysis-for-yoast-seo' ), 'ACF Content Analysis for Yoast SEO' );
59
  add_action(
60
  'admin_notices',
61
  create_function( '', "echo '<div class=\"error\"><p>$message</p></div>';" )