WordPress Charts and Graphs Lite - Version 3.2.0

Version Description

  • 2019-05-03
Download this release

Release Info

Developer codeinwp
Plugin Icon WordPress Charts and Graphs Lite
Version 3.2.0
Comparing to
See all releases

Code changes from version 3.1.3 to 3.2.0

Files changed (81) hide show
  1. CHANGELOG.md +8 -0
  2. classes/Visualizer/Gutenberg/Block.php +5 -5
  3. classes/Visualizer/Gutenberg/package.json +0 -43
  4. classes/Visualizer/Module.php +24 -2
  5. classes/Visualizer/Module/AMP.php +78 -0
  6. classes/Visualizer/Module/Admin.php +8 -6
  7. classes/Visualizer/Module/Chart.php +308 -24
  8. classes/Visualizer/Module/Frontend.php +29 -1
  9. classes/Visualizer/Module/Setup.php +39 -15
  10. classes/Visualizer/Module/Sources.php +3 -3
  11. classes/Visualizer/Plugin.php +12 -1
  12. classes/Visualizer/Render/Layout.php +277 -9
  13. classes/Visualizer/Render/Library.php +1 -1
  14. classes/Visualizer/Render/Page/Data.php +67 -9
  15. classes/Visualizer/Render/Page/Types.php +1 -1
  16. classes/Visualizer/Render/Sidebar.php +6 -6
  17. classes/Visualizer/Source.php +44 -15
  18. classes/Visualizer/Source/Csv.php +2 -2
  19. classes/Visualizer/Source/Csv/Remote.php +1 -1
  20. classes/Visualizer/Source/Json.php +410 -0
  21. classes/Visualizer/Source/Query.php +0 -18
  22. classes/Visualizer/Source/Query/Params.php +4 -4
  23. css/frame.css +104 -6
  24. css/media.css +1 -1
  25. images/blank.png +0 -0
  26. index.php +6 -3
  27. js/frame.js +200 -1
  28. js/render-facade.js +37 -17
  29. js/render-google.js +35 -1
  30. js/simple-editor.js +88 -0
  31. readme.md +11 -2
  32. readme.txt +11 -2
  33. themeisle-hash.json +1 -1
  34. vendor/autoload.php +1 -1
  35. vendor/autoload_52.php +1 -1
  36. vendor/codeinwp/themeisle-sdk/CHANGELOG.md +7 -0
  37. vendor/codeinwp/themeisle-sdk/Gruntfile.js +0 -27
  38. vendor/codeinwp/themeisle-sdk/bin/install-wp-tests.sh +0 -130
  39. vendor/codeinwp/themeisle-sdk/bin/run-unit-tests.sh +0 -7
  40. vendor/codeinwp/themeisle-sdk/composer.json +0 -30
  41. vendor/codeinwp/themeisle-sdk/composer.lock +0 -180
  42. vendor/codeinwp/themeisle-sdk/load.php +1 -1
  43. vendor/codeinwp/themeisle-sdk/package-lock.json +0 -7312
  44. vendor/codeinwp/themeisle-sdk/package.json +0 -15
  45. vendor/codeinwp/themeisle-sdk/phpcs.xml +0 -50
  46. vendor/codeinwp/themeisle-sdk/phpunit.xml +0 -20
  47. vendor/codeinwp/themeisle-sdk/src/Loader.php +9 -0
  48. vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php +22 -11
  49. vendor/codeinwp/themeisle-sdk/src/Modules/Logger.php +2 -1
  50. vendor/codeinwp/themeisle-sdk/src/Modules/Recommendation.php +374 -0
  51. vendor/codeinwp/themeisle-sdk/src/Product.php +13 -0
  52. vendor/codeinwp/themeisle-sdk/start.php +1 -0
  53. vendor/codeinwp/themeisle-sdk/tests/bootstrap.php +0 -33
  54. vendor/codeinwp/themeisle-sdk/tests/dashboard-widget-test.php +0 -59
  55. vendor/codeinwp/themeisle-sdk/tests/endpoint-test.php +0 -79
  56. vendor/codeinwp/themeisle-sdk/tests/licenser-test.php +0 -79
  57. vendor/codeinwp/themeisle-sdk/tests/loader-test.php +0 -47
  58. vendor/codeinwp/themeisle-sdk/tests/loading-test.php +0 -52
  59. vendor/codeinwp/themeisle-sdk/tests/logger-test.php +0 -67
  60. vendor/codeinwp/themeisle-sdk/tests/notification-test.php +0 -111
  61. vendor/codeinwp/themeisle-sdk/tests/old/loading-test.php +0 -19
  62. vendor/codeinwp/themeisle-sdk/tests/product-test.php +0 -49
  63. vendor/codeinwp/themeisle-sdk/tests/review-test.php +0 -67
  64. vendor/codeinwp/themeisle-sdk/tests/rollback-test.php +0 -114
  65. vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_plugin/plugin_file.php +0 -13
  66. vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_theme/style.css +0 -10
  67. vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_theme_external/style.css +0 -10
  68. vendor/codeinwp/themeisle-sdk/tests/translate-test.php +0 -83
  69. vendor/codeinwp/themeisle-sdk/tests/uninstall-feedback-test.php +0 -130
  70. vendor/composer/autoload_real.php +5 -5
  71. vendor/composer/autoload_real_52.php +3 -3
  72. vendor/composer/installed.json +4 -4
  73. vendor/markbaker/complex/composer.json +0 -91
  74. vendor/markbaker/matrix/composer.json +0 -68
  75. vendor/neitanod/forceutf8/composer.json +0 -21
  76. vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel +0 -8
  77. vendor/phpoffice/phpspreadsheet/bin/pre-commit +0 -33
  78. vendor/phpoffice/phpspreadsheet/composer.json +0 -87
  79. vendor/phpoffice/phpspreadsheet/composer.lock +0 -3211
  80. vendor/psr/simple-cache/composer.json +0 -25
  81. vendor/xrstf/composer-php52/composer.json +0 -26
CHANGELOG.md CHANGED
@@ -1,4 +1,12 @@
1
 
 
 
 
 
 
 
 
 
2
  ### v3.1.3 - 2019-02-24
3
  **Changes:**
4
  * Fix issue with changing column settings of the last column in table chart
1
 
2
+ ### v3.2.0 - 2019-05-03
3
+ **Changes:**
4
+ * Add support for charts in AMP requests
5
+ * Add support to show charts from JSON/REST endpoints
6
+ * Fix loading of Google Visualization javascript files
7
+ * Add simple editors for editing chart data
8
+ * Tested up to WP 5.2
9
+
10
  ### v3.1.3 - 2019-02-24
11
  **Changes:**
12
  * Fix issue with changing column settings of the last column in table chart
classes/Visualizer/Gutenberg/Block.php CHANGED
@@ -46,7 +46,7 @@ class Visualizer_Gutenberg_Block {
46
  * Returns an instance of this class.
47
  */
48
  public static function get_instance() {
49
- if ( null == self::$instance ) {
50
  self::$instance = new Visualizer_Gutenberg_Block();
51
  }
52
  return self::$instance;
@@ -297,19 +297,19 @@ class Visualizer_Gutenberg_Block {
297
  continue;
298
  }
299
 
300
- if ( $row['type'] == 'number' ) {
301
  foreach ( $data as $o => $col ) {
302
  $data[ $o ][ $i ] = ( is_numeric( $col[ $i ] ) ) ? floatval( $col[ $i ] ) : ( is_numeric( str_replace( ',', '', $col[ $i ] ) ) ? floatval( str_replace( ',', '', $col[ $i ] ) ) : null );
303
  }
304
  }
305
 
306
- if ( $row['type'] == 'boolean' ) {
307
  foreach ( $data as $o => $col ) {
308
  $data[ $o ][ $i ] = ! empty( $col[ $i ] ) ? filter_validate( $col[ $i ], FILTER_VALIDATE_BOOLEAN ) : null;
309
  }
310
  }
311
 
312
- if ( $row['type'] == 'timeofday' ) {
313
  foreach ( $data as $o => $col ) {
314
  $date = new DateTime( '1984-03-16T' . $col[ $i ] );
315
  if ( $date ) {
@@ -323,7 +323,7 @@ class Visualizer_Gutenberg_Block {
323
  }
324
  }
325
 
326
- if ( $row['type'] == 'string' ) {
327
  foreach ( $data as $o => $col ) {
328
  $data[ $o ][ $i ] = $this->toUTF8( $col[ $i ] );
329
  }
46
  * Returns an instance of this class.
47
  */
48
  public static function get_instance() {
49
+ if ( null === self::$instance ) {
50
  self::$instance = new Visualizer_Gutenberg_Block();
51
  }
52
  return self::$instance;
297
  continue;
298
  }
299
 
300
+ if ( $row['type'] === 'number' ) {
301
  foreach ( $data as $o => $col ) {
302
  $data[ $o ][ $i ] = ( is_numeric( $col[ $i ] ) ) ? floatval( $col[ $i ] ) : ( is_numeric( str_replace( ',', '', $col[ $i ] ) ) ? floatval( str_replace( ',', '', $col[ $i ] ) ) : null );
303
  }
304
  }
305
 
306
+ if ( $row['type'] === 'boolean' ) {
307
  foreach ( $data as $o => $col ) {
308
  $data[ $o ][ $i ] = ! empty( $col[ $i ] ) ? filter_validate( $col[ $i ], FILTER_VALIDATE_BOOLEAN ) : null;
309
  }
310
  }
311
 
312
+ if ( $row['type'] === 'timeofday' ) {
313
  foreach ( $data as $o => $col ) {
314
  $date = new DateTime( '1984-03-16T' . $col[ $i ] );
315
  if ( $date ) {
323
  }
324
  }
325
 
326
+ if ( $row['type'] === 'string' ) {
327
  foreach ( $data as $o => $col ) {
328
  $data[ $o ][ $i ] = $this->toUTF8( $col[ $i ] );
329
  }
classes/Visualizer/Gutenberg/package.json DELETED
@@ -1,43 +0,0 @@
1
- {
2
- "name": "visualizer-gutenberg-block",
3
- "scripts": {
4
- "dev": "cross-env BABEL_ENV=default NODE_ENV=development webpack --watch",
5
- "build": "cross-env BABEL_ENV=default NODE_ENV=production webpack",
6
- "lint": "eslint src"
7
- },
8
- "main": "src/index.js",
9
- "version": "1.0.0",
10
- "license": "MIT",
11
- "dependencies": {
12
- "@handsontable/react": "^1.1.0",
13
- "classnames": "^2.2.6",
14
- "deep-filter": "^1.0.2",
15
- "handsontable": "^5.0.2",
16
- "is-plain-object": "^2.0.4",
17
- "merge": "^1.2.1",
18
- "react": "16.4.1",
19
- "react-google-charts": "^3.0.8",
20
- "react-json-editor-ajrm": "^2.5.8"
21
- },
22
- "devDependencies": {
23
- "@babel/core": "^7.1.6",
24
- "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
25
- "@babel/plugin-transform-async-to-generator": "^7.1.0",
26
- "@babel/plugin-transform-react-jsx": "^7.1.6",
27
- "@babel/preset-env": "^7.1.6",
28
- "autoprefixer": "^9.3.1",
29
- "babel-loader": "^8.0.4",
30
- "cross-env": "3.2.4",
31
- "css-loader": "^1.0.1",
32
- "eslint": "^5.7.0",
33
- "eslint-config-wordpress": "^2.0.0",
34
- "eslint-loader": "^2.1.1",
35
- "eslint-plugin-react": "^7.11.1",
36
- "mini-css-extract-plugin": "^0.4.4",
37
- "node-sass": "^4.10.0",
38
- "postcss-loader": "^3.0.0",
39
- "sass-loader": "^7.1.0",
40
- "webpack": "^4.25.1",
41
- "webpack-cli": "^3.1.2"
42
- }
43
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
classes/Visualizer/Module.php CHANGED
@@ -66,6 +66,7 @@ class Visualizer_Module {
66
 
67
  $this->_addFilter( Visualizer_Plugin::FILTER_UNDO_REVISIONS, 'undoRevisions', 10, 2 );
68
  $this->_addFilter( Visualizer_Plugin::FILTER_HANDLE_REVISIONS, 'handleExistingRevisions', 10, 2 );
 
69
 
70
  }
71
 
@@ -147,6 +148,15 @@ class Visualizer_Module {
147
  return $this;
148
  }
149
 
 
 
 
 
 
 
 
 
 
150
  /**
151
  * Extracts the data for a chart and prepares it for the given type.
152
  *
@@ -159,7 +169,7 @@ class Visualizer_Module {
159
  $success = false;
160
  if ( $chart_id ) {
161
  $chart = get_post( $chart_id );
162
- $success = $chart && $chart->post_type == Visualizer_Plugin::CPT_VISUALIZER;
163
  }
164
  if ( $success ) {
165
  $settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true );
@@ -223,14 +233,16 @@ class Visualizer_Module {
223
  private function _getCSV( $rows, $filename ) {
224
  $filename .= '.csv';
225
 
 
226
  $fp = tmpfile();
227
  // support for MS Excel
228
- fprintf( $fp, $bom = ( chr( 0xEF ) . chr( 0xBB ) . chr( 0xBF ) ) );
229
  foreach ( $rows as $row ) {
230
  fputcsv( $fp, $row );
231
  }
232
  rewind( $fp );
233
  $csv = '';
 
234
  while ( ( $array = fgetcsv( $fp ) ) !== false ) {
235
  if ( strlen( $csv ) > 0 ) {
236
  $csv .= PHP_EOL;
@@ -242,6 +254,7 @@ class Visualizer_Module {
242
  return array(
243
  'csv' => $csv,
244
  'name' => $filename,
 
245
  );
246
  }
247
 
@@ -280,6 +293,7 @@ class Visualizer_Module {
280
  return array(
281
  'csv' => 'data:application/vnd.ms-excel;base64,' . base64_encode( $xlsData ),
282
  'name' => $filename,
 
283
  );
284
  }
285
 
@@ -311,6 +325,12 @@ class Visualizer_Module {
311
  $table = '<table class="visualizer-print">';
312
  $index = 0;
313
  foreach ( $rows as $row ) {
 
 
 
 
 
 
314
  $table .= '<tr>';
315
  foreach ( $row as $col ) {
316
  if ( $index === 0 ) {
@@ -432,6 +452,7 @@ class Visualizer_Module {
432
  }
433
 
434
  if ( ! $wp_filesystem->exists( $dir ) ) {
 
435
  if ( ( $done = $wp_filesystem->mkdir( $dir ) ) === false ) {
436
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Unable to create directory %s', $dir ), 'error', __FILE__, __LINE__ );
437
  return $default;
@@ -441,6 +462,7 @@ class Visualizer_Module {
441
  // if file does not exist, copy.
442
  if ( ! $wp_filesystem->exists( $file ) ) {
443
  $src = str_replace( ABSPATH, $wp_filesystem->abspath(), VISUALIZER_ABSPATH . '/js/customization.js' );
 
444
  if ( ( $done = $wp_filesystem->copy( $src, $file ) ) === false ) {
445
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Unable to copy file %s to %s', $src, $file ), 'error', __FILE__, __LINE__ );
446
  return $default;
66
 
67
  $this->_addFilter( Visualizer_Plugin::FILTER_UNDO_REVISIONS, 'undoRevisions', 10, 2 );
68
  $this->_addFilter( Visualizer_Plugin::FILTER_HANDLE_REVISIONS, 'handleExistingRevisions', 10, 2 );
69
+ $this->_addFilter( Visualizer_Plugin::FILTER_GET_CHART_DATA_AS, 'getDataAs', 10, 3 );
70
 
71
  }
72
 
148
  return $this;
149
  }
150
 
151
+ /**
152
+ * A wrapper around the actual function _getDataAs. This function is invoked as a filter.
153
+ *
154
+ * @since 3.2.0
155
+ */
156
+ public function getDataAs( $final, $chart_id, $type ) {
157
+ return $this->_getDataAs( $chart_id, $type );
158
+ }
159
+
160
  /**
161
  * Extracts the data for a chart and prepares it for the given type.
162
  *
169
  $success = false;
170
  if ( $chart_id ) {
171
  $chart = get_post( $chart_id );
172
+ $success = $chart && $chart->post_type === Visualizer_Plugin::CPT_VISUALIZER;
173
  }
174
  if ( $success ) {
175
  $settings = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true );
233
  private function _getCSV( $rows, $filename ) {
234
  $filename .= '.csv';
235
 
236
+ $bom = chr( 0xEF ) . chr( 0xBB ) . chr( 0xBF );
237
  $fp = tmpfile();
238
  // support for MS Excel
239
+ fprintf( $fp, $bom );
240
  foreach ( $rows as $row ) {
241
  fputcsv( $fp, $row );
242
  }
243
  rewind( $fp );
244
  $csv = '';
245
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
246
  while ( ( $array = fgetcsv( $fp ) ) !== false ) {
247
  if ( strlen( $csv ) > 0 ) {
248
  $csv .= PHP_EOL;
254
  return array(
255
  'csv' => $csv,
256
  'name' => $filename,
257
+ 'string' => str_replace( $bom, '', $csv ),
258
  );
259
  }
260
 
293
  return array(
294
  'csv' => 'data:application/vnd.ms-excel;base64,' . base64_encode( $xlsData ),
295
  'name' => $filename,
296
+ 'raw' => base64_encode( $xlsData ),
297
  );
298
  }
299
 
325
  $table = '<table class="visualizer-print">';
326
  $index = 0;
327
  foreach ( $rows as $row ) {
328
+ // skip the data type row.
329
+ if ( 1 === $index ) {
330
+ $index++;
331
+ continue;
332
+ }
333
+
334
  $table .= '<tr>';
335
  foreach ( $row as $col ) {
336
  if ( $index === 0 ) {
452
  }
453
 
454
  if ( ! $wp_filesystem->exists( $dir ) ) {
455
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.Found
456
  if ( ( $done = $wp_filesystem->mkdir( $dir ) ) === false ) {
457
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Unable to create directory %s', $dir ), 'error', __FILE__, __LINE__ );
458
  return $default;
462
  // if file does not exist, copy.
463
  if ( ! $wp_filesystem->exists( $file ) ) {
464
  $src = str_replace( ABSPATH, $wp_filesystem->abspath(), VISUALIZER_ABSPATH . '/js/customization.js' );
465
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.Found
466
  if ( ( $done = $wp_filesystem->copy( $src, $file ) ) === false ) {
467
  do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Unable to copy file %s to %s', $src, $file ), 'error', __FILE__, __LINE__ );
468
  return $default;
classes/Visualizer/Module/AMP.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // +----------------------------------------------------------------------+
3
+ // | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
4
+ // +----------------------------------------------------------------------+
5
+ // | This program is free software; you can redistribute it and/or modify |
6
+ // | it under the terms of the GNU General Public License, version 2, as |
7
+ // | published by the Free Software Foundation. |
8
+ // | |
9
+ // | This program is distributed in the hope that it will be useful, |
10
+ // | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11
+ // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12
+ // | GNU General Public License for more details. |
13
+ // | |
14
+ // | You should have received a copy of the GNU General Public License |
15
+ // | along with this program; if not, write to the Free Software |
16
+ // | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, |
17
+ // | MA 02110-1301 USA |
18
+ // +----------------------------------------------------------------------+
19
+ // | Author: Eugene Manuilov <eugene@manuilov.org> |
20
+ // +----------------------------------------------------------------------+
21
+ /**
22
+ * The module for all AMP stuff.
23
+ *
24
+ * @category Visualizer
25
+ * @package Module
26
+ *
27
+ * @since 1.0.0
28
+ */
29
+ class Visualizer_Module_AMP extends Visualizer_Module {
30
+
31
+ const NAME = __CLASS__;
32
+
33
+ /**
34
+ * Constructor.
35
+ *
36
+ * @since 1.0.0
37
+ *
38
+ * @access public
39
+ *
40
+ * @param Visualizer_Plugin $plugin The instance of the plugin.
41
+ */
42
+ public function __construct( Visualizer_Plugin $plugin ) {
43
+ $this->_addFilter( 'amp_post_template_data', 'addToHeader' );
44
+ }
45
+
46
+ /**
47
+ * Add the iframe component to the header.
48
+ */
49
+ public function addToHeader( $data ) {
50
+ $data['amp_component_scripts'] = array_merge(
51
+ $data['amp_component_scripts'],
52
+ array(
53
+ 'amp-iframe' => 'https://cdn.ampproject.org/v0/amp-iframe-latest.js',
54
+ )
55
+ );
56
+ return $data;
57
+ }
58
+
59
+ /**
60
+ * Is this an AMP request?
61
+ */
62
+ public static function is_amp() {
63
+ return function_exists( 'is_amp_endpoint' ) && is_amp_endpoint();
64
+ }
65
+
66
+ /**
67
+ * Loads the alterview view of the chart.
68
+ */
69
+ public function get_chart( $chart, $data, $series, $settings ) {
70
+ $view = apply_filters( 'visualizer_amp_view', null, $chart, $data, $series, $settings );
71
+ if ( ! is_null( $view ) ) {
72
+ return $view;
73
+ }
74
+ $output = $this->_getDataAs( $chart->ID, 'print' );
75
+ return $output['csv'];
76
+ }
77
+
78
+ }
classes/Visualizer/Module/Admin.php CHANGED
@@ -133,6 +133,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
133
  * @access public
134
  */
135
  public function init() {
 
136
  if ( current_user_can( 'edit_posts' ) && current_user_can( 'edit_pages' ) && 'true' == get_user_option( 'rich_editing' ) ) {
137
  $this->_addFilter( 'mce_external_languages', 'add_tinymce_lang', 10, 1 );
138
  $this->_addFilter( 'mce_external_plugins', 'tinymce_plugin', 10, 1 );
@@ -465,7 +466,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
465
  */
466
  public function renderTemplates() {
467
  global $pagenow;
468
- if ( 'post.php' != $pagenow && 'post-new.php' != $pagenow ) {
469
  return;
470
  }
471
  $render = new Visualizer_Render_Templates();
@@ -485,7 +486,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
485
  * @param string $suffix The current page suffix.
486
  */
487
  public function enqueueLibraryScripts( $suffix ) {
488
- if ( $suffix == $this->_libraryPage ) {
489
  wp_enqueue_style( 'visualizer-library', VISUALIZER_ABSURL . 'css/library.css', array(), Visualizer_Plugin::VERSION );
490
  $this->_addFilter( 'media_upload_tabs', 'setupVisualizerTab' );
491
  wp_enqueue_media();
@@ -579,7 +580,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
579
  );
580
  // add chart type filter to the query arguments
581
  $filter = filter_input( INPUT_GET, 'type' );
582
- if ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes() ) ) {
583
  $query_args['meta_query'] = array(
584
  array(
585
  'key' => Visualizer_Plugin::CF_CHART_TYPE,
@@ -631,7 +632,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
631
  );
632
  // add chart type filter to the query arguments
633
  $filter = filter_input( INPUT_GET, 'type' );
634
- if ( ! ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes() ) ) ) {
635
  $filter = 'all';
636
  }
637
 
@@ -705,6 +706,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
705
  ),
706
  ),
707
  'page_type' => 'library',
 
708
  )
709
  );
710
  // render library page
@@ -738,7 +740,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
738
  * @return array Updated array of action links.
739
  */
740
  public function getPluginActionLinks( $links, $file ) {
741
- if ( $file == plugin_basename( VISUALIZER_BASEFILE ) ) {
742
  array_unshift(
743
  $links,
744
  sprintf(
@@ -765,7 +767,7 @@ class Visualizer_Module_Admin extends Visualizer_Module {
765
  * @return array Updated array of plugin meta links.
766
  */
767
  public function getPluginMetaLinks( $plugin_meta, $plugin_file ) {
768
- if ( $plugin_file == plugin_basename( VISUALIZER_BASEFILE ) ) {
769
  // knowledge base link
770
  $plugin_meta[] = sprintf(
771
  '<a href="https://github.com/codeinwp/visualizer/wiki" target="_blank">%s</a>',
133
  * @access public
134
  */
135
  public function init() {
136
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
137
  if ( current_user_can( 'edit_posts' ) && current_user_can( 'edit_pages' ) && 'true' == get_user_option( 'rich_editing' ) ) {
138
  $this->_addFilter( 'mce_external_languages', 'add_tinymce_lang', 10, 1 );
139
  $this->_addFilter( 'mce_external_plugins', 'tinymce_plugin', 10, 1 );
466
  */
467
  public function renderTemplates() {
468
  global $pagenow;
469
+ if ( 'post.php' !== $pagenow && 'post-new.php' !== $pagenow ) {
470
  return;
471
  }
472
  $render = new Visualizer_Render_Templates();
486
  * @param string $suffix The current page suffix.
487
  */
488
  public function enqueueLibraryScripts( $suffix ) {
489
+ if ( $suffix === $this->_libraryPage ) {
490
  wp_enqueue_style( 'visualizer-library', VISUALIZER_ABSURL . 'css/library.css', array(), Visualizer_Plugin::VERSION );
491
  $this->_addFilter( 'media_upload_tabs', 'setupVisualizerTab' );
492
  wp_enqueue_media();
580
  );
581
  // add chart type filter to the query arguments
582
  $filter = filter_input( INPUT_GET, 'type' );
583
+ if ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes(), true ) ) {
584
  $query_args['meta_query'] = array(
585
  array(
586
  'key' => Visualizer_Plugin::CF_CHART_TYPE,
632
  );
633
  // add chart type filter to the query arguments
634
  $filter = filter_input( INPUT_GET, 'type' );
635
+ if ( ! ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes(), true ) ) ) {
636
  $filter = 'all';
637
  }
638
 
706
  ),
707
  ),
708
  'page_type' => 'library',
709
+ 'is_front' => false,
710
  )
711
  );
712
  // render library page
740
  * @return array Updated array of action links.
741
  */
742
  public function getPluginActionLinks( $links, $file ) {
743
+ if ( $file === plugin_basename( VISUALIZER_BASEFILE ) ) {
744
  array_unshift(
745
  $links,
746
  sprintf(
767
  * @return array Updated array of plugin meta links.
768
  */
769
  public function getPluginMetaLinks( $plugin_meta, $plugin_file ) {
770
+ if ( $plugin_file === plugin_basename( VISUALIZER_BASEFILE ) ) {
771
  // knowledge base link
772
  $plugin_meta[] = sprintf(
773
  '<a href="https://github.com/codeinwp/visualizer/wiki" target="_blank">%s</a>',
classes/Visualizer/Module/Chart.php CHANGED
@@ -61,9 +61,156 @@ class Visualizer_Module_Chart extends Visualizer_Module {
61
 
62
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_FETCH_DB_DATA, 'getQueryData' );
63
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_SAVE_DB_QUERY, 'saveQuery' );
 
 
 
 
 
 
64
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY, 'saveFilter' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  }
66
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  /**
68
  * Fetches charts from database.
69
  *
@@ -95,7 +242,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
95
  $filter = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
96
  }
97
 
98
- if ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes() ) ) {
99
  $query_args['meta_query'] = array(
100
  array(
101
  'key' => Visualizer_Plugin::CF_CHART_TYPE,
@@ -202,7 +349,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
202
  * @access public
203
  */
204
  public function deleteChart() {
205
- $is_post = $_SERVER['REQUEST_METHOD'] == 'POST';
206
  $input_method = $is_post ? INPUT_POST : INPUT_GET;
207
  $chart_id = $success = false;
208
  $nonce = wp_verify_nonce( filter_input( $input_method, 'nonce' ) );
@@ -220,7 +367,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
220
  );
221
  if ( $chart_id ) {
222
  $chart = get_post( $chart_id );
223
- $success = $chart && $chart->post_type == Visualizer_Plugin::CPT_VISUALIZER;
224
  }
225
  }
226
  if ( $success ) {
@@ -277,7 +424,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
277
  defined( 'IFRAME_REQUEST' ) || define( 'IFRAME_REQUEST', 1 );
278
  // check chart, if chart not exists, will create new one and redirects to the same page with proper chart id
279
  $chart_id = isset( $_GET['chart'] ) ? filter_var( $_GET['chart'], FILTER_VALIDATE_INT ) : '';
280
- if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
281
  $this->deleteOldCharts();
282
  $default_type = isset( $_GET['type'] ) && ! empty( $_GET['type'] ) ? $_GET['type'] : 'line';
283
  $source = new Visualizer_Source_Csv( VISUALIZER_ABSPATH . DIRECTORY_SEPARATOR . 'samples' . DIRECTORY_SEPARATOR . $default_type . '.csv' );
@@ -316,7 +463,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
316
  wp_register_style( 'visualizer-chosen', VISUALIZER_ABSURL . 'css/lib/chosen.min.css', array(), Visualizer_Plugin::VERSION );
317
 
318
  wp_register_style( 'visualizer-frame', VISUALIZER_ABSURL . 'css/frame.css', array( 'visualizer-chosen' ), Visualizer_Plugin::VERSION );
319
- wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'visualizer-chosen' ), Visualizer_Plugin::VERSION, true );
320
  wp_register_script( 'visualizer-customization', $this->get_user_customization_js(), array(), null, true );
321
  wp_register_script(
322
  'visualizer-render',
@@ -335,11 +482,14 @@ class Visualizer_Module_Chart extends Visualizer_Module {
335
  Visualizer_Plugin::VERSION,
336
  true
337
  );
 
 
338
  // added by Ash/Upwork
339
  if ( VISUALIZER_PRO ) {
340
  global $Visualizer_Pro;
341
  $Visualizer_Pro->_addScriptsAndStyles();
342
  }
 
343
  // dispatch pages
344
  $this->_chart = get_post( $chart_id );
345
  $tab = isset( $_GET['tab'] ) && ! empty( $_GET['tab'] ) ? $_GET['tab'] : 'visualizer';
@@ -381,20 +531,21 @@ class Visualizer_Module_Chart extends Visualizer_Module {
381
  private function loadCodeEditorAssets() {
382
  global $wp_version;
383
 
 
 
 
 
 
 
 
 
 
384
  if ( ! VISUALIZER_PRO ) {
385
  return;
386
  }
387
 
388
  $table_col_mapping = Visualizer_Source_Query_Params::get_all_db_tables_column_mapping();
389
 
390
- // data tables assets.
391
- wp_register_script( 'visualizer-datatables', '//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js', array( 'jquery-ui-core' ), Visualizer_Plugin::VERSION );
392
- wp_register_style( 'visualizer-datatables', '//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css', array(), Visualizer_Plugin::VERSION );
393
- wp_register_style( 'visualizer-datatables-ui', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css', array( 'visualizer-datatables' ), Visualizer_Plugin::VERSION );
394
-
395
- wp_enqueue_script( 'visualizer-datatables' );
396
- wp_enqueue_style( 'visualizer-datatables-ui' );
397
-
398
  if ( version_compare( $wp_version, '4.9.0', '<' ) ) {
399
  // code mirror assets.
400
  wp_register_script( 'visualizer-codemirror-core', '//codemirror.net/lib/codemirror.js', array( 'jquery' ), Visualizer_Plugin::VERSION );
@@ -436,8 +587,8 @@ class Visualizer_Module_Chart extends Visualizer_Module {
436
  if ( isset( $_POST['map_api_key'] ) ) {
437
  update_option( 'visualizer-map-api-key', $_POST['map_api_key'] );
438
  }
439
- if ( $_SERVER['REQUEST_METHOD'] == 'POST' && isset( $_GET['nonce'] ) && wp_verify_nonce( $_GET['nonce'] ) ) {
440
- if ( $this->_chart->post_status == 'auto-draft' ) {
441
  $this->_chart->post_status = 'publish';
442
 
443
  // ensure that a revision is not created. If a revision is created it will have the proper data and the parent of the revision will have default data.
@@ -464,7 +615,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
464
  $sidebar->__data = $data['data'];
465
  } else {
466
  $sidebar = apply_filters( 'visualizer_pro_chart_type_sidebar', '', $data );
467
- if ( $sidebar != '' ) {
468
  $sidebar->__series = $data['series'];
469
  $sidebar->__data = $data['data'];
470
  }
@@ -476,6 +627,23 @@ class Visualizer_Module_Chart extends Visualizer_Module {
476
  wp_enqueue_script( 'visualizer-chosen' );
477
  wp_enqueue_script( 'visualizer-render' );
478
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  $table_col_mapping = $this->loadCodeEditorAssets();
480
 
481
  wp_localize_script(
@@ -485,6 +653,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
485
  'l10n' => array(
486
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
487
  'loading' => esc_html__( 'Loading...', 'visualizer' ),
 
488
  ),
489
  'charts' => array(
490
  'canvas' => $data,
@@ -497,10 +666,16 @@ class Visualizer_Module_Chart extends Visualizer_Module {
497
  'nonces' => array(
498
  'permissions' => wp_create_nonce( Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA ),
499
  'db_get_data' => wp_create_nonce( Visualizer_Plugin::ACTION_FETCH_DB_DATA . Visualizer_Plugin::VERSION ),
 
 
 
500
  ),
501
  'actions' => array(
502
  'permissions' => Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA,
503
  'db_get_data' => Visualizer_Plugin::ACTION_FETCH_DB_DATA,
 
 
 
504
  ),
505
  ),
506
  'db_query' => array(
@@ -508,6 +683,9 @@ class Visualizer_Module_Chart extends Visualizer_Module {
508
  ),
509
  'is_pro' => VISUALIZER_PRO,
510
  'page_type' => 'chart',
 
 
 
511
  )
512
  );
513
 
@@ -517,10 +695,10 @@ class Visualizer_Module_Chart extends Visualizer_Module {
517
  $render->custom_css = $data['css'];
518
  $render->sidebar = $sidebar;
519
  if ( filter_input( INPUT_GET, 'library', FILTER_VALIDATE_BOOLEAN ) ) {
520
- $render->button = filter_input( INPUT_GET, 'action' ) == Visualizer_Plugin::ACTION_EDIT_CHART
521
  ? esc_html__( 'Save Chart', 'visualizer' )
522
  : esc_html__( 'Create Chart', 'visualizer' );
523
- if ( filter_input( INPUT_GET, 'action' ) == Visualizer_Plugin::ACTION_EDIT_CHART ) {
524
  $render->cancel_button = esc_html__( 'Cancel', 'visualizer' );
525
  }
526
  } else {
@@ -543,9 +721,9 @@ class Visualizer_Module_Chart extends Visualizer_Module {
543
  */
544
  private function _handleTypesPage() {
545
  // process post request
546
- if ( $_SERVER['REQUEST_METHOD'] == 'POST' && wp_verify_nonce( filter_input( INPUT_POST, 'nonce' ) ) ) {
547
  $type = filter_input( INPUT_POST, 'type' );
548
- if ( in_array( $type, Visualizer_Plugin::getChartTypes() ) ) {
549
  // save new chart type
550
  update_post_meta( $this->_chart->ID, Visualizer_Plugin::CF_CHART_TYPE, $type );
551
  // if the chart has default data, update it with appropriate default data for new type
@@ -583,7 +761,105 @@ class Visualizer_Module_Chart extends Visualizer_Module {
583
  public function renderFlattrScript() {
584
  echo '';
585
  }
586
- // changed by Ash/Upwork
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
587
  /**
588
  * Parses uploaded CSV file and saves new data for the chart.
589
  *
@@ -608,7 +884,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
608
  // check chart, if chart exists
609
  // do not use filter_input as it does not work for phpunit test cases, use filter_var instead
610
  $chart_id = isset( $_GET['chart'] ) ? filter_var( $_GET['chart'], FILTER_VALIDATE_INT ) : '';
611
- if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
612
  if ( ! $can_die ) {
613
  return;
614
  }
@@ -631,6 +907,11 @@ class Visualizer_Module_Chart extends Visualizer_Module {
631
  delete_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE );
632
  }
633
 
 
 
 
 
 
634
  $source = null;
635
  $render = new Visualizer_Render_Page_Update();
636
  if ( isset( $_POST['remote_data'] ) && filter_var( $_POST['remote_data'], FILTER_VALIDATE_URL ) ) {
@@ -638,10 +919,13 @@ class Visualizer_Module_Chart extends Visualizer_Module {
638
  if ( isset( $_POST['vz-import-time'] ) ) {
639
  apply_filters( 'visualizer_pro_chart_schedule', $chart_id, $_POST['remote_data'], $_POST['vz-import-time'] );
640
  }
 
641
  } elseif ( isset( $_FILES['local_data'] ) && $_FILES['local_data']['error'] == 0 ) {
642
  $source = new Visualizer_Source_Csv( $_FILES['local_data']['tmp_name'] );
643
  } elseif ( isset( $_POST['chart_data'] ) && strlen( $_POST['chart_data'] ) > 0 ) {
644
- $source = apply_filters( 'visualizer_pro_handle_chart_data', $_POST['chart_data'], '', $chart_id, $_POST );
 
 
645
  } else {
646
  $render->message = esc_html__( 'CSV file with chart data was not uploaded. Please, try again.', 'visualizer' );
647
  }
@@ -703,7 +987,7 @@ class Visualizer_Module_Chart extends Visualizer_Module {
703
  );
704
  if ( $chart_id ) {
705
  $chart = get_post( $chart_id );
706
- $success = $chart && $chart->post_type == Visualizer_Plugin::CPT_VISUALIZER;
707
  }
708
  }
709
  $redirect = wp_get_referer();
61
 
62
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_FETCH_DB_DATA, 'getQueryData' );
63
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_SAVE_DB_QUERY, 'saveQuery' );
64
+
65
+ $this->_addAjaxAction( Visualizer_Plugin::ACTION_JSON_GET_ROOTS, 'getJsonRoots' );
66
+ $this->_addAjaxAction( Visualizer_Plugin::ACTION_JSON_GET_DATA, 'getJsonData' );
67
+ $this->_addAjaxAction( Visualizer_Plugin::ACTION_JSON_SET_DATA, 'setJsonData' );
68
+ $this->_addAjaxAction( Visualizer_Plugin::ACTION_JSON_SET_SCHEDULE, 'setJsonSchedule' );
69
+
70
  $this->_addAjaxAction( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY, 'saveFilter' );
71
+
72
+ }
73
+
74
+ /**
75
+ * Sets the schedule for how JSON-endpoint charts should be updated.
76
+ *
77
+ * @since ?
78
+ *
79
+ * @access public
80
+ */
81
+ public function setJsonSchedule() {
82
+ check_ajax_referer( Visualizer_Plugin::ACTION_JSON_SET_SCHEDULE . Visualizer_Plugin::VERSION, 'security' );
83
+
84
+ $chart_id = filter_input(
85
+ INPUT_POST,
86
+ 'chart',
87
+ FILTER_VALIDATE_INT,
88
+ array(
89
+ 'options' => array(
90
+ 'min_range' => 1,
91
+ ),
92
+ )
93
+ );
94
+
95
+ if ( ! $chart_id ) {
96
+ wp_send_json_error();
97
+ }
98
+
99
+ $time = filter_input(
100
+ INPUT_POST,
101
+ 'time',
102
+ FILTER_VALIDATE_INT,
103
+ array(
104
+ 'options' => array(
105
+ 'min_range' => -1,
106
+ ),
107
+ )
108
+ );
109
+
110
+ delete_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE );
111
+
112
+ if ( -1 < $time ) {
113
+ add_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE, $time );
114
+ }
115
+ wp_send_json_success();
116
  }
117
 
118
+ /**
119
+ * Get the root elements for JSON-endpoint.
120
+ *
121
+ * @since ?
122
+ *
123
+ * @access public
124
+ */
125
+ public function getJsonRoots() {
126
+ check_ajax_referer( Visualizer_Plugin::ACTION_JSON_GET_ROOTS . Visualizer_Plugin::VERSION, 'security' );
127
+
128
+ $params = wp_parse_args( $_POST['params'] );
129
+
130
+ $source = new Visualizer_Source_Json( $params );
131
+
132
+ $roots = $source->fetchRoots();
133
+ if ( empty( $roots ) ) {
134
+ wp_send_json_error();
135
+ }
136
+
137
+ wp_send_json_success( array( 'url' => $params['url'], 'roots' => $roots ) );
138
+ }
139
+
140
+ /**
141
+ * Get the data for the JSON-endpoint corresponding to the chosen root.
142
+ *
143
+ * @since ?
144
+ *
145
+ * @access public
146
+ */
147
+ public function getJsonData() {
148
+ check_ajax_referer( Visualizer_Plugin::ACTION_JSON_GET_DATA . Visualizer_Plugin::VERSION, 'security' );
149
+
150
+ $params = wp_parse_args( $_POST['params'] );
151
+
152
+ $chart_id = $params['chart'];
153
+
154
+ if ( empty( $chart_id ) ) {
155
+ wp_die();
156
+ }
157
+
158
+ $source = new Visualizer_Source_Json( $params );
159
+
160
+ $data = $source->parse();
161
+ if ( empty( $data ) ) {
162
+ wp_send_json_error();
163
+ }
164
+
165
+ $data = Visualizer_Render_Layout::show( 'editor-table', $data, $chart_id, 'viz-json-table', false, false );
166
+ wp_send_json_success( array( 'table' => $data, 'root' => $params['root'], 'url' => $params['url'], 'paging' => $source->getPaginationElements() ) );
167
+ }
168
+
169
+ /**
170
+ * Updates the database with the correct post parameters for JSON-endpoint charts.
171
+ *
172
+ * @since ?
173
+ *
174
+ * @access public
175
+ */
176
+ public function setJsonData() {
177
+ check_ajax_referer( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION, 'security' );
178
+
179
+ $params = $_POST;
180
+ $chart_id = $_GET['chart'];
181
+
182
+ if ( empty( $chart_id ) ) {
183
+ wp_die();
184
+ }
185
+
186
+ $chart = get_post( $chart_id );
187
+
188
+ $source = new Visualizer_Source_Json( $params );
189
+ $source->fetch();
190
+
191
+ $content = $source->getData();
192
+ $chart->post_content = $content;
193
+ wp_update_post( $chart->to_array() );
194
+ update_post_meta( $chart->ID, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
195
+ update_post_meta( $chart->ID, Visualizer_Plugin::CF_SOURCE, $source->getSourceName() );
196
+ update_post_meta( $chart->ID, Visualizer_Plugin::CF_DEFAULT_DATA, 0 );
197
+ update_post_meta( $chart->ID, Visualizer_Plugin::CF_JSON_URL, $params['url'] );
198
+ update_post_meta( $chart->ID, Visualizer_Plugin::CF_JSON_ROOT, $params['root'] );
199
+ delete_post_meta( $chart->ID, Visualizer_Plugin::CF_JSON_PAGING );
200
+ if ( ! empty( $params['paging'] ) ) {
201
+ add_post_meta( $chart->ID, Visualizer_Plugin::CF_JSON_PAGING, $params['paging'] );
202
+ }
203
+
204
+ $render = new Visualizer_Render_Page_Update();
205
+ $render->id = $chart->ID;
206
+ $render->data = json_encode( $source->getRawData() );
207
+ $render->series = json_encode( $source->getSeries() );
208
+ $render->render();
209
+
210
+ defined( 'WP_TESTS_DOMAIN' ) ? wp_die() : exit();
211
+ }
212
+
213
+
214
  /**
215
  * Fetches charts from database.
216
  *
242
  $filter = filter_input( INPUT_GET, 'filter', FILTER_SANITIZE_STRING );
243
  }
244
 
245
+ if ( $filter && in_array( $filter, Visualizer_Plugin::getChartTypes(), true ) ) {
246
  $query_args['meta_query'] = array(
247
  array(
248
  'key' => Visualizer_Plugin::CF_CHART_TYPE,
349
  * @access public
350
  */
351
  public function deleteChart() {
352
+ $is_post = $_SERVER['REQUEST_METHOD'] === 'POST';
353
  $input_method = $is_post ? INPUT_POST : INPUT_GET;
354
  $chart_id = $success = false;
355
  $nonce = wp_verify_nonce( filter_input( $input_method, 'nonce' ) );
367
  );
368
  if ( $chart_id ) {
369
  $chart = get_post( $chart_id );
370
+ $success = $chart && $chart->post_type === Visualizer_Plugin::CPT_VISUALIZER;
371
  }
372
  }
373
  if ( $success ) {
424
  defined( 'IFRAME_REQUEST' ) || define( 'IFRAME_REQUEST', 1 );
425
  // check chart, if chart not exists, will create new one and redirects to the same page with proper chart id
426
  $chart_id = isset( $_GET['chart'] ) ? filter_var( $_GET['chart'], FILTER_VALIDATE_INT ) : '';
427
+ if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type !== Visualizer_Plugin::CPT_VISUALIZER ) {
428
  $this->deleteOldCharts();
429
  $default_type = isset( $_GET['type'] ) && ! empty( $_GET['type'] ) ? $_GET['type'] : 'line';
430
  $source = new Visualizer_Source_Csv( VISUALIZER_ABSPATH . DIRECTORY_SEPARATOR . 'samples' . DIRECTORY_SEPARATOR . $default_type . '.csv' );
463
  wp_register_style( 'visualizer-chosen', VISUALIZER_ABSURL . 'css/lib/chosen.min.css', array(), Visualizer_Plugin::VERSION );
464
 
465
  wp_register_style( 'visualizer-frame', VISUALIZER_ABSURL . 'css/frame.css', array( 'visualizer-chosen' ), Visualizer_Plugin::VERSION );
466
+ wp_register_script( 'visualizer-frame', VISUALIZER_ABSURL . 'js/frame.js', array( 'visualizer-chosen', 'jquery-ui-accordion' ), Visualizer_Plugin::VERSION, true );
467
  wp_register_script( 'visualizer-customization', $this->get_user_customization_js(), array(), null, true );
468
  wp_register_script(
469
  'visualizer-render',
482
  Visualizer_Plugin::VERSION,
483
  true
484
  );
485
+ wp_register_script( 'visualizer-editor-simple', VISUALIZER_ABSURL . 'js/simple-editor.js', array( 'jquery' ), Visualizer_Plugin::VERSION, true );
486
+
487
  // added by Ash/Upwork
488
  if ( VISUALIZER_PRO ) {
489
  global $Visualizer_Pro;
490
  $Visualizer_Pro->_addScriptsAndStyles();
491
  }
492
+
493
  // dispatch pages
494
  $this->_chart = get_post( $chart_id );
495
  $tab = isset( $_GET['tab'] ) && ! empty( $_GET['tab'] ) ? $_GET['tab'] : 'visualizer';
531
  private function loadCodeEditorAssets() {
532
  global $wp_version;
533
 
534
+ $wp_scripts = wp_scripts();
535
+
536
+ // data tables assets.
537
+ wp_register_script( 'visualizer-datatables', '//cdn.datatables.net/v/dt/dt-1.10.18/b-1.5.6/b-colvis-1.5.6/cr-1.5.0/fc-3.2.5/fh-3.1.4/r-2.2.2/sc-2.0.0/sl-1.3.0/datatables.min.js', array( 'jquery-ui-core' ), Visualizer_Plugin::VERSION );
538
+ wp_register_style( 'visualizer-datatables', '//cdn.datatables.net/v/dt/dt-1.10.18/b-1.5.6/b-colvis-1.5.6/cr-1.5.0/fc-3.2.5/fh-3.1.4/r-2.2.2/sc-2.0.0/sl-1.3.0/datatables.min.css', array(), Visualizer_Plugin::VERSION );
539
+ wp_register_style( 'visualizer-jquery-ui', sprintf( '//ajax.googleapis.com/ajax/libs/jqueryui/%s/themes/smoothness/jquery-ui.css', $wp_scripts->registered['jquery-ui-core']->ver ), array( 'visualizer-datatables' ), Visualizer_Plugin::VERSION );
540
+ wp_enqueue_script( 'visualizer-datatables' );
541
+ wp_enqueue_style( 'visualizer-jquery-ui' );
542
+
543
  if ( ! VISUALIZER_PRO ) {
544
  return;
545
  }
546
 
547
  $table_col_mapping = Visualizer_Source_Query_Params::get_all_db_tables_column_mapping();
548
 
 
 
 
 
 
 
 
 
549
  if ( version_compare( $wp_version, '4.9.0', '<' ) ) {
550
  // code mirror assets.
551
  wp_register_script( 'visualizer-codemirror-core', '//codemirror.net/lib/codemirror.js', array( 'jquery' ), Visualizer_Plugin::VERSION );
587
  if ( isset( $_POST['map_api_key'] ) ) {
588
  update_option( 'visualizer-map-api-key', $_POST['map_api_key'] );
589
  }
590
+ if ( $_SERVER['REQUEST_METHOD'] === 'POST' && isset( $_GET['nonce'] ) && wp_verify_nonce( $_GET['nonce'] ) ) {
591
+ if ( $this->_chart->post_status === 'auto-draft' ) {
592
  $this->_chart->post_status = 'publish';
593
 
594
  // ensure that a revision is not created. If a revision is created it will have the proper data and the parent of the revision will have default data.
615
  $sidebar->__data = $data['data'];
616
  } else {
617
  $sidebar = apply_filters( 'visualizer_pro_chart_type_sidebar', '', $data );
618
+ if ( $sidebar !== '' ) {
619
  $sidebar->__series = $data['series'];
620
  $sidebar->__data = $data['data'];
621
  }
627
  wp_enqueue_script( 'visualizer-chosen' );
628
  wp_enqueue_script( 'visualizer-render' );
629
 
630
+ if ( ! VISUALIZER_PRO ) {
631
+ wp_enqueue_script( 'visualizer-editor-simple' );
632
+ wp_localize_script(
633
+ 'visualizer-editor-simple',
634
+ 'visualizer1',
635
+ array(
636
+ 'ajax' => array(
637
+ 'url' => admin_url( 'admin-ajax.php' ),
638
+ 'nonces' => array(
639
+ ),
640
+ 'actions' => array(
641
+ ),
642
+ ),
643
+ )
644
+ );
645
+ }
646
+
647
  $table_col_mapping = $this->loadCodeEditorAssets();
648
 
649
  wp_localize_script(
653
  'l10n' => array(
654
  'invalid_source' => esc_html__( 'You have entered invalid URL. Please, insert proper URL.', 'visualizer' ),
655
  'loading' => esc_html__( 'Loading...', 'visualizer' ),
656
+ 'json_error' => esc_html__( 'An error occured in fetching data.', 'visualizer' ),
657
  ),
658
  'charts' => array(
659
  'canvas' => $data,
666
  'nonces' => array(
667
  'permissions' => wp_create_nonce( Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA ),
668
  'db_get_data' => wp_create_nonce( Visualizer_Plugin::ACTION_FETCH_DB_DATA . Visualizer_Plugin::VERSION ),
669
+ 'json_get_roots' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_GET_ROOTS . Visualizer_Plugin::VERSION ),
670
+ 'json_get_data' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_GET_DATA . Visualizer_Plugin::VERSION ),
671
+ 'json_set_schedule' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_SCHEDULE . Visualizer_Plugin::VERSION ),
672
  ),
673
  'actions' => array(
674
  'permissions' => Visualizer_Plugin::ACTION_FETCH_PERMISSIONS_DATA,
675
  'db_get_data' => Visualizer_Plugin::ACTION_FETCH_DB_DATA,
676
+ 'json_get_roots' => Visualizer_Plugin::ACTION_JSON_GET_ROOTS,
677
+ 'json_get_data' => Visualizer_Plugin::ACTION_JSON_GET_DATA,
678
+ 'json_set_schedule' => Visualizer_Plugin::ACTION_JSON_SET_SCHEDULE,
679
  ),
680
  ),
681
  'db_query' => array(
683
  ),
684
  'is_pro' => VISUALIZER_PRO,
685
  'page_type' => 'chart',
686
+ 'json_tag_separator' => Visualizer_Source_Json::TAG_SEPARATOR,
687
+ 'json_tag_separator_view' => Visualizer_Source_Json::TAG_SEPARATOR_VIEW,
688
+ 'is_front' => false,
689
  )
690
  );
691
 
695
  $render->custom_css = $data['css'];
696
  $render->sidebar = $sidebar;
697
  if ( filter_input( INPUT_GET, 'library', FILTER_VALIDATE_BOOLEAN ) ) {
698
+ $render->button = filter_input( INPUT_GET, 'action' ) === Visualizer_Plugin::ACTION_EDIT_CHART
699
  ? esc_html__( 'Save Chart', 'visualizer' )
700
  : esc_html__( 'Create Chart', 'visualizer' );
701
+ if ( filter_input( INPUT_GET, 'action' ) === Visualizer_Plugin::ACTION_EDIT_CHART ) {
702
  $render->cancel_button = esc_html__( 'Cancel', 'visualizer' );
703
  }
704
  } else {
721
  */
722
  private function _handleTypesPage() {
723
  // process post request
724
+ if ( $_SERVER['REQUEST_METHOD'] === 'POST' && wp_verify_nonce( filter_input( INPUT_POST, 'nonce' ) ) ) {
725
  $type = filter_input( INPUT_POST, 'type' );
726
+ if ( in_array( $type, Visualizer_Plugin::getChartTypes(), true ) ) {
727
  // save new chart type
728
  update_post_meta( $this->_chart->ID, Visualizer_Plugin::CF_CHART_TYPE, $type );
729
  // if the chart has default data, update it with appropriate default data for new type
761
  public function renderFlattrScript() {
762
  echo '';
763
  }
764
+
765
+ /**
766
+ * Processes the CSV that is sent in the request as a string.
767
+ *
768
+ * @since 3.2.0
769
+ */
770
+ private function handleCSVasString( $data ) {
771
+ $source = null;
772
+ if ( VISUALIZER_PRO ) {
773
+ $source = apply_filters( 'visualizer_pro_handle_chart_data', $data, '' );
774
+ } else {
775
+ // data coming in from the text editor.
776
+ $tmpfile = tempnam( get_temp_dir(), Visualizer_Plugin::NAME );
777
+ $handle = fopen( $tmpfile, 'w' );
778
+ $values = preg_split( '/[\n\r]+/', stripslashes( trim( $data ) ) );
779
+ if ( $values ) {
780
+ foreach ( $values as $row ) {
781
+ if ( empty( $row ) ) {
782
+ continue;
783
+ }
784
+ $columns = explode( ',', $row );
785
+ fputcsv( $handle, $columns );
786
+ }
787
+ }
788
+ $source = new Visualizer_Source_Csv( $tmpfile );
789
+ fclose( $handle );
790
+ }
791
+ return $source;
792
+ }
793
+
794
+ /**
795
+ * Parses the data uploaded as an HTML table.
796
+ *
797
+ * @since 3.2.0
798
+ *
799
+ * @access private
800
+ */
801
+ private function handleTabularData() {
802
+ $csv = array();
803
+ // the datatable mentions the headers twice, so lets remove the duplicates.
804
+ $headers = array_unique( array_filter( $_POST['header'] ) );
805
+ $types = $_POST['type'];
806
+
807
+ // capture all the indexes that correspond to excluded columns.
808
+ $exclude = array();
809
+ $index = 0;
810
+ foreach ( $types as $type ) {
811
+ if ( empty( $type ) ) {
812
+ $exclude[] = $index;
813
+ }
814
+ $index++;
815
+ }
816
+
817
+ // when N headers are being renamed, the number of headers increases by N
818
+ // because of the way datatable duplicates header information
819
+ // so unset the headers that have been renamed.
820
+ if ( count( $headers ) !== count( $types ) ) {
821
+ $to = count( $headers );
822
+ for ( $i = count( $types ); $i < $to; $i++ ) {
823
+ unset( $headers[ $i + 1 ] );
824
+ }
825
+ }
826
+
827
+ $columns = array();
828
+ for ( $i = 0; $i < count( $headers ); $i++ ) {
829
+ if ( ! isset( $_POST[ 'data' . $i ] ) ) {
830
+ continue;
831
+ }
832
+ $columns[ $i ] = $_POST[ 'data' . $i ];
833
+ }
834
+
835
+ $csv[] = $headers;
836
+ $csv[] = $types;
837
+ for ( $j = 0; $j < count( $columns[0] ); $j++ ) {
838
+ $row = array();
839
+ for ( $i = 0; $i < count( $headers ); $i++ ) {
840
+ $row[] = $columns[ $i ][ $j ];
841
+ }
842
+ $csv[] = $row;
843
+ }
844
+
845
+ $tmpfile = tempnam( get_temp_dir(), Visualizer_Plugin::NAME );
846
+ $handle = fopen( $tmpfile, 'w' );
847
+
848
+ if ( $csv ) {
849
+ $index = 0;
850
+ foreach ( $csv as $row ) {
851
+ // remove all the cells corresponding to the excluded headers.
852
+ foreach ( $exclude as $j ) {
853
+ unset( $row[ $j ] );
854
+ }
855
+ fputcsv( $handle, $row );
856
+ }
857
+ }
858
+ $source = new Visualizer_Source_Csv( $tmpfile );
859
+ fclose( $handle );
860
+ return $source;
861
+ }
862
+
863
  /**
864
  * Parses uploaded CSV file and saves new data for the chart.
865
  *
884
  // check chart, if chart exists
885
  // do not use filter_input as it does not work for phpunit test cases, use filter_var instead
886
  $chart_id = isset( $_GET['chart'] ) ? filter_var( $_GET['chart'], FILTER_VALIDATE_INT ) : '';
887
+ if ( ! $chart_id || ! ( $chart = get_post( $chart_id ) ) || $chart->post_type !== Visualizer_Plugin::CPT_VISUALIZER ) {
888
  if ( ! $can_die ) {
889
  return;
890
  }
907
  delete_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE );
908
  }
909
 
910
+ // delete json related data.
911
+ delete_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_URL );
912
+ delete_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_ROOT );
913
+ delete_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_PAGING );
914
+
915
  $source = null;
916
  $render = new Visualizer_Render_Page_Update();
917
  if ( isset( $_POST['remote_data'] ) && filter_var( $_POST['remote_data'], FILTER_VALIDATE_URL ) ) {
919
  if ( isset( $_POST['vz-import-time'] ) ) {
920
  apply_filters( 'visualizer_pro_chart_schedule', $chart_id, $_POST['remote_data'], $_POST['vz-import-time'] );
921
  }
922
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
923
  } elseif ( isset( $_FILES['local_data'] ) && $_FILES['local_data']['error'] == 0 ) {
924
  $source = new Visualizer_Source_Csv( $_FILES['local_data']['tmp_name'] );
925
  } elseif ( isset( $_POST['chart_data'] ) && strlen( $_POST['chart_data'] ) > 0 ) {
926
+ $source = $this->handleCSVasString( $_POST['chart_data'] );
927
+ } elseif ( isset( $_POST['table_data'] ) && 'yes' === $_POST['table_data'] ) {
928
+ $source = $this->handleTabularData();
929
  } else {
930
  $render->message = esc_html__( 'CSV file with chart data was not uploaded. Please, try again.', 'visualizer' );
931
  }
987
  );
988
  if ( $chart_id ) {
989
  $chart = get_post( $chart_id );
990
+ $success = $chart && $chart->post_type === Visualizer_Plugin::CPT_VISUALIZER;
991
  }
992
  }
993
  $redirect = wp_get_referer();
classes/Visualizer/Module/Frontend.php CHANGED
@@ -69,6 +69,27 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
69
  }
70
 
71
  add_action( 'rest_api_init', array( $this, 'endpoint_register' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  }
73
 
74
  /**
@@ -190,7 +211,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
190
  );
191
 
192
  // if empty id or chart does not exists, then return empty string
193
- if ( ! $atts['id'] || ! ( $chart = get_post( $atts['id'] ) ) || $chart->post_type != Visualizer_Plugin::CPT_VISUALIZER ) {
194
  return '';
195
  }
196
 
@@ -199,6 +220,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
199
  }
200
 
201
  // in case revisions exist.
 
202
  if ( true === ( $revisions = $this->undoRevisions( $chart->ID, true ) ) ) {
203
  $chart = get_post( $chart->ID );
204
  }
@@ -247,6 +269,11 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
247
 
248
  $id = $id . '-' . rand();
249
 
 
 
 
 
 
250
  // add chart to the array
251
  $this->_charts[ $id ] = array(
252
  'type' => $type,
@@ -277,6 +304,7 @@ class Visualizer_Module_Frontend extends Visualizer_Module {
277
  'copied' => __( 'Copied!', 'visualizer' ),
278
  ),
279
  'page_type' => 'frontend',
 
280
  )
281
  );
282
  wp_enqueue_style( 'visualizer-front' );
69
  }
70
 
71
  add_action( 'rest_api_init', array( $this, 'endpoint_register' ) );
72
+
73
+ $this->_addFilter( 'script_loader_tag', 'script_loader_tag', null, 10, 3 );
74
+ }
75
+
76
+ /**
77
+ * Adds the async attribute to certain scripts.
78
+ */
79
+ function script_loader_tag( $tag, $handle, $src ) {
80
+ if ( is_admin() ) {
81
+ return $tag;
82
+ }
83
+
84
+ $scripts = array( 'google-jsapi-new', 'google-jsapi-old', 'visualizer-render-google-lib', 'visualizer-render-google' );
85
+
86
+ foreach ( $scripts as $async ) {
87
+ if ( $async === $handle ) {
88
+ $tag = str_replace( ' src', ' async="async" defer="defer" src', $tag );
89
+ break;
90
+ }
91
+ }
92
+ return $tag;
93
  }
94
 
95
  /**
211
  );
212
 
213
  // if empty id or chart does not exists, then return empty string
214
+ if ( ! $atts['id'] || ! ( $chart = get_post( $atts['id'] ) ) || $chart->post_type !== Visualizer_Plugin::CPT_VISUALIZER ) {
215
  return '';
216
  }
217
 
220
  }
221
 
222
  // in case revisions exist.
223
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.Found
224
  if ( true === ( $revisions = $this->undoRevisions( $chart->ID, true ) ) ) {
225
  $chart = get_post( $chart->ID );
226
  }
269
 
270
  $id = $id . '-' . rand();
271
 
272
+ $amp = Visualizer_Plugin::instance()->getModule( Visualizer_Module_AMP::NAME );
273
+ if ( $amp && $amp->is_amp() ) {
274
+ return '<div id="' . $id . '"' . $class . '>' . $amp->get_chart( $chart, $data, $series, $settings ) . '</div>';
275
+ }
276
+
277
  // add chart to the array
278
  $this->_charts[ $id ] = array(
279
  'type' => $type,
304
  'copied' => __( 'Copied!', 'visualizer' ),
305
  ),
306
  'page_type' => 'frontend',
307
+ 'is_front' => true,
308
  )
309
  );
310
  wp_enqueue_style( 'visualizer-front' );
classes/Visualizer/Module/Setup.php CHANGED
@@ -154,7 +154,7 @@ class Visualizer_Module_Setup extends Visualizer_Module {
154
  return;
155
  }
156
 
157
- if ( $plugin == VISUALIZER_BASENAME ) {
158
  wp_redirect( admin_url( 'upload.php?page=' . Visualizer_Plugin::NAME ) );
159
  exit();
160
  }
@@ -192,26 +192,50 @@ class Visualizer_Module_Setup extends Visualizer_Module {
192
 
193
  // check if the source is correct.
194
  $source = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
195
- if ( $source !== 'Visualizer_Source_Query' ) {
196
- return $chart;
197
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
 
199
- // check if its a live-data chart or a cached-data chart.
200
- if ( ! $force ) {
201
- $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
202
- if ( ! empty( $hours ) ) {
203
- // cached, bail!
 
 
 
204
  return $chart;
205
- }
206
  }
207
 
208
- $params = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, true );
209
- $source = new Visualizer_Source_Query( $params );
210
- $source->fetch( false );
211
-
212
  $error = $source->get_error();
213
  if ( empty( $error ) ) {
214
- update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
 
 
 
215
 
216
  wp_update_post(
217
  array(
154
  return;
155
  }
156
 
157
+ if ( $plugin === VISUALIZER_BASENAME ) {
158
  wp_redirect( admin_url( 'upload.php?page=' . Visualizer_Plugin::NAME ) );
159
  exit();
160
  }
192
 
193
  // check if the source is correct.
194
  $source = get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true );
195
+ $load_series = false;
196
+ switch ( $source ) {
197
+ case 'Visualizer_Source_Query':
198
+ // check if its a live-data chart or a cached-data chart.
199
+ if ( ! $force ) {
200
+ $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_SCHEDULE, true );
201
+ if ( ! empty( $hours ) ) {
202
+ // cached, bail!
203
+ return $chart;
204
+ }
205
+ }
206
+
207
+ $params = get_post_meta( $chart_id, Visualizer_Plugin::CF_DB_QUERY, true );
208
+ $source = new Visualizer_Source_Query( $params );
209
+ $source->fetch( false );
210
+ $load_series = true;
211
+ break;
212
+ case 'Visualizer_Source_Json':
213
+ // check if its a live-data chart or a cached-data chart.
214
+ if ( ! $force ) {
215
+ $hours = get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_SCHEDULE, true );
216
+ if ( ! empty( $hours ) ) {
217
+ // cached, bail!
218
+ return $chart;
219
+ }
220
+ }
221
 
222
+ $url = get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_URL, true );
223
+ $root = get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_ROOT, true );
224
+ $paging = get_post_meta( $chart_id, Visualizer_Plugin::CF_JSON_PAGING, true );
225
+ $series = get_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, true );
226
+ $source = new Visualizer_Source_Json( array( 'url' => $url, 'root' => $root, 'paging' => $paging ) );
227
+ $source->refresh( $series );
228
+ break;
229
+ default:
230
  return $chart;
 
231
  }
232
 
 
 
 
 
233
  $error = $source->get_error();
234
  if ( empty( $error ) ) {
235
+ add_filter( 'wp_revisions_to_keep', '__return_false' );
236
+ if ( $load_series ) {
237
+ update_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, $source->getSeries() );
238
+ }
239
 
240
  wp_update_post(
241
  array(
classes/Visualizer/Module/Sources.php CHANGED
@@ -133,9 +133,9 @@ class Visualizer_Module_Sources extends Visualizer_Module {
133
  $biz_features = array( 'schedule-chart', 'chart-permissions', 'db-query' );
134
  $return = '';
135
  $feature = strval( $feature );
136
- if ( empty( $feature ) || ( in_array( $feature, $biz_features ) && ! apply_filters( 'visualizer_is_business', false ) ) ) {
137
  $plan = 'PRO';
138
- if ( in_array( $feature, $biz_features ) ) {
139
  $plan = 'DEVELOPER';
140
  }
141
  $return = '<div class="only-pro-content">';
@@ -147,7 +147,7 @@ class Visualizer_Module_Sources extends Visualizer_Module {
147
  $return .= ' </div>';
148
  $return .= '</div>';
149
  }
150
- if ( empty( $feature ) && defined( 'VISUALIZER_PRO_VERSION' ) ) {
151
  remove_filter( 'visualizer_pro_upsell', 'addProUpsell', 10, 1 );
152
  $return = '';
153
  }
133
  $biz_features = array( 'schedule-chart', 'chart-permissions', 'db-query' );
134
  $return = '';
135
  $feature = strval( $feature );
136
+ if ( empty( $feature ) || ( in_array( $feature, $biz_features, true ) && ! apply_filters( 'visualizer_is_business', false ) ) ) {
137
  $plan = 'PRO';
138
+ if ( in_array( $feature, $biz_features, true ) ) {
139
  $plan = 'DEVELOPER';
140
  }
141
  $return = '<div class="only-pro-content">';
147
  $return .= ' </div>';
148
  $return .= '</div>';
149
  }
150
+ if ( empty( $feature ) && VISUALIZER_PRO ) {
151
  remove_filter( 'visualizer_pro_upsell', 'addProUpsell', 10, 1 );
152
  $return = '';
153
  }
classes/Visualizer/Plugin.php CHANGED
@@ -28,7 +28,7 @@
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
- const VERSION = '3.1.3';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
@@ -62,6 +62,16 @@ class Visualizer_Plugin {
62
  */
63
  const ACTION_FETCH_DB_DATA = 'visualizer-fetch-db-data';
64
  const ACTION_SAVE_DB_QUERY = 'visualizer-save-db-query';
 
 
 
 
 
 
 
 
 
 
65
  const ACTION_SAVE_FILTER_QUERY = 'visualizer-save-filter-query';
66
 
67
  // custom filters
@@ -71,6 +81,7 @@ class Visualizer_Plugin {
71
  const FILTER_GET_CHART_SETTINGS = 'visualizer-get-chart-settings';
72
  const FILTER_UNDO_REVISIONS = 'visualizer-undo-revisions';
73
  const FILTER_HANDLE_REVISIONS = 'visualizer-handle-revisions';
 
74
 
75
  const CF_DB_SCHEDULE = 'visualizer-db-schedule';
76
  const CF_DB_QUERY = 'visualizer-db-query';
28
  class Visualizer_Plugin {
29
 
30
  const NAME = 'visualizer';
31
+ const VERSION = '3.2.0';
32
 
33
  // custom post types
34
  const CPT_VISUALIZER = 'visualizer';
62
  */
63
  const ACTION_FETCH_DB_DATA = 'visualizer-fetch-db-data';
64
  const ACTION_SAVE_DB_QUERY = 'visualizer-save-db-query';
65
+
66
+ const ACTION_JSON_GET_ROOTS = 'visualizer-json-get-roots';
67
+ const ACTION_JSON_GET_DATA = 'visualizer-json-get-data';
68
+ const ACTION_JSON_SET_DATA = 'visualizer-json-set-data';
69
+ const ACTION_JSON_SET_SCHEDULE = 'visualizer-json-set-schedule';
70
+ const CF_JSON_URL = 'visualizer-json-url';
71
+ const CF_JSON_ROOT = 'visualizer-json-root';
72
+ const CF_JSON_SCHEDULE = 'visualizer-json-schedule';
73
+ const CF_JSON_PAGING = 'visualizer-json-paging';
74
+
75
  const ACTION_SAVE_FILTER_QUERY = 'visualizer-save-filter-query';
76
 
77
  // custom filters
81
  const FILTER_GET_CHART_SETTINGS = 'visualizer-get-chart-settings';
82
  const FILTER_UNDO_REVISIONS = 'visualizer-undo-revisions';
83
  const FILTER_HANDLE_REVISIONS = 'visualizer-handle-revisions';
84
+ const FILTER_GET_CHART_DATA_AS = 'visualizer-get-chart-data-as';
85
 
86
  const CF_DB_SCHEDULE = 'visualizer-db-schedule';
87
  const CF_DB_QUERY = 'visualizer-db-query';
classes/Visualizer/Render/Layout.php CHANGED
@@ -48,15 +48,6 @@ class Visualizer_Render_Layout extends Visualizer_Render {
48
  return call_user_func( array( __CLASS__, '_render' . str_replace( ' ', '', ucwords( str_replace( '-', ' ', $layout ) ) ) ), func_get_args() );
49
  }
50
 
51
- /**
52
- * Show the fake editor (just an empty div).
53
- *
54
- * @access public
55
- */
56
- public static function _renderFauxEditor( $args ) {
57
- echo '<div id="chart-lhs" class="visualizer-editor-lhs" style="display: none"></div>';
58
- }
59
-
60
  /**
61
  * Show the DB query box.
62
  *
@@ -126,4 +117,281 @@ class Visualizer_Render_Layout extends Visualizer_Render {
126
  <?php
127
  return ob_get_clean();
128
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  }
48
  return call_user_func( array( __CLASS__, '_render' . str_replace( ' ', '', ucwords( str_replace( '-', ' ', $layout ) ) ) ), func_get_args() );
49
  }
50
 
 
 
 
 
 
 
 
 
 
51
  /**
52
  * Show the DB query box.
53
  *
117
  <?php
118
  return ob_get_clean();
119
  }
120
+
121
+ /**
122
+ * Show the JSON/REST parameters boxes.
123
+ *
124
+ * @access public
125
+ */
126
+ public static function _renderJsonScreen( $args ) {
127
+ $id = $args[1];
128
+ $action = add_query_arg(
129
+ array(
130
+ 'action' => Visualizer_Plugin::ACTION_JSON_SET_DATA,
131
+ 'security' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION ),
132
+ 'chart' => $id,
133
+ ),
134
+ admin_url( 'admin-ajax.php' )
135
+ );
136
+
137
+ $url = get_post_meta( $id, Visualizer_Plugin::CF_JSON_URL, true );
138
+ $root = get_post_meta( $id, Visualizer_Plugin::CF_JSON_ROOT, true );
139
+ $paging = get_post_meta( $id, Visualizer_Plugin::CF_JSON_PAGING, true );
140
+
141
+ ?>
142
+ <div id="visualizer-json-screen" style="display: none">
143
+ <div class="visualizer-json-form">
144
+ <h3 class="viz-step step1"><?php _e( 'STEP 1: Specify the JSON endpoint/URL', 'visualizer' ); ?></h3>
145
+ <div>
146
+ <form id="json-endpoint-form">
147
+ <div class="json-wizard-hints">
148
+ <ul class="info">
149
+ <li><?php echo sprintf( __( 'If you want to add authentication, add headers to the endpoint or change the request in any way, please refer to our document %1$shere%2$s.', 'visualizer' ), '<a href="https://docs.themeisle.com/article/1043-visualizer-how-to-extend-rest-endpoints-with-json-response" target="_blank">', '</a>' ); ?></li>
150
+ </ul>
151
+ </div>
152
+
153
+ <input
154
+ type="url"
155
+ id="vz-import-json-url"
156
+ name="url"
157
+ value="<?php echo $url; ?>"
158
+ placeholder="<?php esc_html_e( 'Please enter the URL', 'visualizer' ); ?>"
159
+ class="visualizer-input">
160
+ <button class="button button-secondary button-small" id="visualizer-json-fetch"><?php esc_html_e( 'Fetch Endpoint', 'visualizer' ); ?></button>
161
+ </form>
162
+ </div>
163
+ <h3 class="viz-step step2 <?php echo empty( $url ) ? 'ui-state-disabled' : ''; ?> json-root-form"><?php _e( 'STEP 2: Choose the JSON root', 'visualizer' ); ?></h3>
164
+ <div>
165
+ <form id="json-root-form">
166
+ <input type="hidden" name="chart" value="<?php echo $id; ?>">
167
+ <select name="root" id="vz-import-json-root">
168
+ <?php
169
+ if ( ! empty( $root ) ) {
170
+ ?>
171
+ <option value="<?php echo $root; ?>"><?php echo str_replace( Visualizer_Source_Json::TAG_SEPARATOR, Visualizer_Source_Json::TAG_SEPARATOR_VIEW, $root ); ?></option>
172
+ <?php
173
+ }
174
+ ?>
175
+ </select>
176
+ <input type="hidden" name="url" value="<?php echo $url; ?>">
177
+ <button class="button button-secondary button-small" id="visualizer-json-parse"><?php esc_html_e( 'Parse Endpoint', 'visualizer' ); ?></button>
178
+ </form>
179
+ </div>
180
+ <h3 class="viz-step step3 <?php echo empty( $root ) ? 'ui-state-disabled' : ''; ?>"><?php _e( 'STEP 3: Specify miscellaneous parameters', 'visualizer' ); ?></h3>
181
+ <div>
182
+ <form id="json-conclude-form-helper">
183
+ <div class="<?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature' ); ?>">
184
+ <div class="json-pagination">
185
+ <select name="paging" id="vz-import-json-paging" class="json-form-element" data-template='<?php echo sprintf( 'Get first %d pages using %s', apply_filters( 'visualizer_json_fetch_pages', 5, $url ), '?' ); ?>'>
186
+ <option value="0" class="static"><?php _e( 'Don\'t use pagination', 'visualizer' ); ?></option>
187
+ <?php
188
+ if ( ! empty( $paging ) ) {
189
+ ?>
190
+ <option value="<?php echo $paging; ?>"><?php echo sprintf( 'Get first %d pages using %s', apply_filters( 'visualizer_json_fetch_pages', 5, $url ), str_replace( Visualizer_Source_Json::TAG_SEPARATOR, Visualizer_Source_Json::TAG_SEPARATOR_VIEW, $paging ) ); ?></option>
191
+ <?php
192
+ }
193
+ ?>
194
+ </select>
195
+ <?php
196
+ if ( ! VISUALIZER_PRO ) {
197
+ ?>
198
+ <br/>
199
+ <br/>
200
+ <br/>
201
+ <br/>
202
+ <?php
203
+ }
204
+ ?>
205
+ <?php echo apply_filters( 'visualizer_pro_upsell', '' ); ?>
206
+ </div>
207
+ </div>
208
+ </form>
209
+ </div>
210
+ <h3 class="viz-step step4 ui-state-disabled"><?php _e( 'STEP 4: Select the data to display in the chart', 'visualizer' ); ?></h3>
211
+ <div>
212
+ <form id="json-conclude-form" action="<?php echo $action; ?>" method="post" target="thehole">
213
+ <input type="hidden" name="url">
214
+ <input type="hidden" name="root">
215
+ <input type="hidden" name="chart" value="<?php echo $id; ?>">
216
+
217
+ <div class="json-wizard-hints html-table-editor-hints">
218
+ <ul class="info">
219
+ <li><?php _e( 'Select whether to include the data in the chart. Each column selected will form one series.', 'visualizer' ); ?></li>
220
+ <li><?php _e( 'If a column is selected to be included, specify its data type.', 'visualizer' ); ?></li>
221
+ <li><?php _e( 'You can use drag/drop to reorder the columns but this column position is not saved. So when you reload the table, you may have to reorder again.', 'visualizer' ); ?></li>
222
+ <li><?php _e( 'You can select any number of columns but the chart type selected will determine how many will display in the chart.', 'visualizer' ); ?></li>
223
+ </ul>
224
+ </div>
225
+ <div class="json-table"></div>
226
+ <button class="button button-primary" id="visualizer-json-conclude"><?php esc_html_e( 'Save &amp; Show Chart', 'visualizer' ); ?></button>
227
+ </form>
228
+ </div>
229
+ </div>
230
+ </div>
231
+ <?php
232
+ }
233
+
234
+ /**
235
+ * Show the simple editor(s).
236
+ *
237
+ * @access public
238
+ */
239
+ public static function _renderSimpleEditorScreen( $args ) {
240
+ $chart_id = $args[1];
241
+ $action = add_query_arg(
242
+ array(
243
+ 'action' => Visualizer_Plugin::ACTION_UPLOAD_DATA,
244
+ 'nonce' => wp_create_nonce(),
245
+ 'chart' => $chart_id,
246
+ ),
247
+ admin_url( 'admin-ajax.php' )
248
+ );
249
+ ?>
250
+ <div class="viz-simple-editor">
251
+ <div class="viz-simple-editor-type viz-table-editor">
252
+ <form id="table-editor-form" action="<?php echo $action; ?>" method="post" target="thehole">
253
+ <div class="html-table-editor-hints">
254
+ <ul class="info">
255
+ <li><?php _e( 'Select whether to include the data in the chart. Each column selected will form one series.', 'visualizer' ); ?></li>
256
+ <li><?php _e( 'If a column is selected to be included, specify its data type.', 'visualizer' ); ?></li>
257
+ <li><?php _e( 'You can use drag/drop to reorder the columns but this column position is not saved. So when you reload the table, you may have to reorder again.', 'visualizer' ); ?></li>
258
+ <li><?php _e( 'You can select any number of columns but the chart type selected will determine how many will display in the chart.', 'visualizer' ); ?></li>
259
+ </ul>
260
+ </div>
261
+ <div class="viz-html-table">
262
+ <?php Visualizer_Render_Layout::show( 'editor-table', null, $chart_id, 'viz-html-table', true, true ); ?>
263
+ </div>
264
+ <input type="hidden" name="table_data" value="yes">
265
+ <button class="button button-primary" id="visualizer-save-html-table"><?php esc_html_e( 'Save &amp; Show Chart', 'visualizer' ); ?></button>
266
+ </form>
267
+ </div>
268
+
269
+ <?php Visualizer_Render_Layout::show( 'text-editor', $chart_id ); ?>
270
+
271
+ </div>
272
+ <?php
273
+
274
+ }
275
+
276
+ /**
277
+ * Show the text area editor.
278
+ *
279
+ * @access public
280
+ */
281
+ public static function _renderTextEditor( $args ) {
282
+ $chart_id = $args[1];
283
+ $csv = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA_AS, array(), $chart_id, 'csv' );
284
+ $data = '';
285
+ if ( ! empty( $csv ) && isset( $csv['string'] ) ) {
286
+ $data = str_replace( PHP_EOL, "\n", $csv['string'] );
287
+ }
288
+ ?>
289
+ <div class="viz-simple-editor-type viz-text-editor">
290
+ <textarea id="edited_text"><?php echo $data; ?></textarea>
291
+ <button id="viz-text-editor-button" class="button button-primary"><?php _e( 'Save &amp; Show Chart', 'visualizer' ); ?></button>
292
+ </div>
293
+ <?php
294
+ }
295
+
296
+ /**
297
+ * Show the JSON endpoint's parsed table.
298
+ *
299
+ * @access public
300
+ */
301
+ public static function _renderEditorTable( $args ) {
302
+ $data = $args[1];
303
+ $chart_id = $args[2];
304
+ $class = $args[3];
305
+ $echo = $args[4];
306
+ $editable_data = $args[5];
307
+ $series = get_post_meta( $chart_id, Visualizer_Plugin::CF_SERIES, true );
308
+ $headers = array();
309
+
310
+ if ( is_null( $data ) ) {
311
+ foreach ( $series as $column ) {
312
+ $headers[] = $column['label'];
313
+ }
314
+ $chart = get_post( $chart_id );
315
+ $type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true );
316
+ $data = apply_filters( Visualizer_Plugin::FILTER_GET_CHART_DATA, unserialize( html_entity_decode( $chart->post_content ) ), $type );
317
+ } else {
318
+ $headers = array_keys( $data[0] );
319
+ }
320
+
321
+ $classes = implode( ' ', array( 'viz-editor-table', $class ) );
322
+
323
+ if ( $series ) {
324
+ $temp = $series;
325
+ $series = array();
326
+ foreach ( $temp as $array ) {
327
+ $series[ $array['label'] ] = $array['type'];
328
+ }
329
+ }
330
+ if ( ! $echo ) {
331
+ ob_start();
332
+ }
333
+ ?>
334
+ <table cellspacing="0" width="100%" class="results cell-border stripe <?php echo $classes; ?>">
335
+ <thead>
336
+ <tr>
337
+ <th><?php _e( 'Label', 'visualizer' ); ?></th>
338
+ <?php
339
+ foreach ( $headers as $header ) {
340
+ if ( $editable_data ) {
341
+ echo '<th><input type="text" name="header[]" value="' . esc_attr( $header ) . '"></th>';
342
+ } else {
343
+ echo '<th>' . $header . '</th>';
344
+ }
345
+ }
346
+ ?>
347
+ </tr>
348
+ </thead>
349
+ <tbody>
350
+ <tr>
351
+ <th><?php _e( 'Data Type', 'visualizer' ); ?></th>
352
+ <?php
353
+ $index = 0;
354
+ foreach ( $headers as $header ) {
355
+ echo '<td>';
356
+ if ( $editable_data ) {
357
+ echo '<select name="type[]">';
358
+ } else {
359
+ echo '<input name="header[]" type="hidden" value="' . $header . '">';
360
+ echo '<select name="type[' . $header . ']">';
361
+ }
362
+ echo '<option value="" title="' . __( 'Exclude from chart', 'visualizer' ) . '">' . __( 'Exclude', 'visualizer' ) . '</option>';
363
+ echo '<option value="0" disabled title="' . __( 'Include in chart and select data type', 'visualizer' ) . '">--' . __( 'OR', 'visualizer' ) . '--</option>';
364
+
365
+ foreach ( Visualizer_Source::getAllowedTypes() as $type ) {
366
+ $selected = array_key_exists( $header, $series ) && $type === $series[ $header ] ? 'selected' : '';
367
+ echo '<option value="' . $type . '" ' . $selected . '>' . $type . '</option>';
368
+ }
369
+
370
+ echo '</select></td>';
371
+ }
372
+ ?>
373
+ </tr>
374
+ <?php
375
+ foreach ( $data as $row ) {
376
+ echo '<tr>';
377
+ echo '<th>' . __( 'Value', 'visualizer' ) . '</th>';
378
+ $index = 0;
379
+ foreach ( array_values( $row ) as $value ) {
380
+ if ( $editable_data ) {
381
+ echo '<td><input type="text" name="data' . $index++ . '[]" value="' . esc_attr( $value ) . '"></td>';
382
+ } else {
383
+ echo '<td>' . $value . '</td>';
384
+ }
385
+ }
386
+
387
+ echo '</tr>';
388
+ }
389
+ ?>
390
+ </tbody>
391
+ </table>
392
+ <?php
393
+ if ( ! $echo ) {
394
+ return ob_get_clean();
395
+ }
396
+ }
397
  }
classes/Visualizer/Render/Library.php CHANGED
@@ -99,7 +99,7 @@ class Visualizer_Render_Library extends Visualizer_Render {
99
  $link = "<a class=' visualizer-pro-only' href='" . Visualizer_Plugin::PRO_TEASER_URL . "' target='_blank'>";
100
  }
101
  echo '<li class="visualizer-list-item all">';
102
- if ( $type == $this->type ) {
103
  echo '<a class=" current" href="', esc_url( add_query_arg( 'vpage', false ) ), '">';
104
  echo $label;
105
  echo '</a>';
99
  $link = "<a class=' visualizer-pro-only' href='" . Visualizer_Plugin::PRO_TEASER_URL . "' target='_blank'>";
100
  }
101
  echo '<li class="visualizer-list-item all">';
102
+ if ( $type === $this->type ) {
103
  echo '<a class=" current" href="', esc_url( add_query_arg( 'vpage', false ) ), '">';
104
  echo $label;
105
  echo '</a>';
classes/Visualizer/Render/Page/Data.php CHANGED
@@ -45,7 +45,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
45
  $Visualizer_Pro->_addFilterWizard( $this->chart->ID );
46
  }
47
  } else {
48
- Visualizer_Render_Layout::show( 'faux-editor' );
49
  }
50
 
51
  $this->add_additional_content();
@@ -109,7 +109,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
109
  </form>
110
  </div>
111
  </li>
112
- <li class="viz-group visualizer-import-url visualizer_source_csv_remote">
113
  <h2 class="viz-group-title viz-sub-group visualizer-src-tab"><?php _e( 'Import data from URL', 'visualizer' ); ?></h2>
114
  <ul class="viz-group-content">
115
  <li class="viz-subsection">
@@ -158,9 +158,12 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
158
  '12' => __( 'Each 12 hours', 'visualizer' ),
159
  '24' => __( 'Each day', 'visualizer' ),
160
  '72' => __( 'Each 3 days', 'visualizer' ),
161
- )
 
 
162
  );
163
  foreach ( $schedules as $num => $name ) {
 
164
  $extra = $num == $hours ? 'selected' : '';
165
  ?>
166
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
@@ -176,6 +179,58 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
176
  </form>
177
  </div>
178
  </li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  </ul>
180
  </li>
181
  <li class="viz-group <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature' ); ?>">
@@ -252,6 +307,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
252
  )
253
  );
254
  foreach ( $schedules as $num => $name ) {
 
255
  $extra = $num == $hours ? 'selected' : '';
256
  ?>
257
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
@@ -300,6 +356,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
300
  )
301
  );
302
  foreach ( $schedules as $num => $name ) {
 
303
  $extra = $num == $hours ? 'selected' : '';
304
  ?>
305
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
@@ -318,10 +375,9 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
318
  </li>
319
 
320
  <?php
321
- // we will auto-open the manual data feature but only when pro is active and source is empty.
322
- $pro_class = apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature' );
323
  ?>
324
- <li class="viz-group <?php echo $pro_class; ?> <?php echo empty( $source_of_chart ) && empty( $pro_class ) ? 'open' : ''; ?> ">
325
  <h2 class="viz-group-title viz-sub-group visualizer-editor-tab"
326
  data-current="chart"><?php _e( 'Manual Data', 'visualizer' ); ?><span
327
  class="dashicons dashicons-lock"></span></h2>
@@ -332,13 +388,14 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
332
 
333
  <div class="viz-group-content edit-data-content">
334
  <div>
335
- <p class="viz-group-description"><?php _e( 'You can manually edit the chart data using the spreadsheet like editor.', 'visualizer' ); ?></p>
 
 
 
336
  <input type="button" id="editor-chart-button" class="button button-primary "
337
  value="<?php _e( 'View Editor', 'visualizer' ); ?>" data-current="chart"
338
  data-t-editor="<?php _e( 'Show Chart', 'visualizer' ); ?>"
339
  data-t-chart="<?php _e( 'View Editor', 'visualizer' ); ?>">
340
-
341
- <?php echo apply_filters( 'visualizer_pro_upsell', '' ); ?>
342
  </div>
343
  </div>
344
  </li>
@@ -550,6 +607,7 @@ class Visualizer_Render_Page_Data extends Visualizer_Render_Page {
550
  $query = get_post_meta( $this->chart->ID, Visualizer_Plugin::CF_DB_QUERY, true );
551
  }
552
  Visualizer_Render_Layout::show( 'db-query', $query );
 
553
  }
554
 
555
  }
45
  $Visualizer_Pro->_addFilterWizard( $this->chart->ID );
46
  }
47
  } else {
48
+ Visualizer_Render_Layout::show( 'simple-editor-screen', $this->chart->ID );
49
  }
50
 
51
  $this->add_additional_content();
109
  </form>
110
  </div>
111
  </li>
112
+ <li class="viz-group visualizer-import-url visualizer_source_csv_remote visualizer_source_json">
113
  <h2 class="viz-group-title viz-sub-group visualizer-src-tab"><?php _e( 'Import data from URL', 'visualizer' ); ?></h2>
114
  <ul class="viz-group-content">
115
  <li class="viz-subsection">
158
  '12' => __( 'Each 12 hours', 'visualizer' ),
159
  '24' => __( 'Each day', 'visualizer' ),
160
  '72' => __( 'Each 3 days', 'visualizer' ),
161
+ ),
162
+ 'csv',
163
+ $this->chart->ID
164
  );
165
  foreach ( $schedules as $num => $name ) {
166
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
167
  $extra = $num == $hours ? 'selected' : '';
168
  ?>
169
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
179
  </form>
180
  </div>
181
  </li>
182
+
183
+ <li class="viz-subsection">
184
+ <span class="viz-section-title visualizer_source_json"><?php _e( 'Import from JSON/REST', 'visualizer' ); ?>
185
+ <span class="dashicons dashicons-lock"></span></span>
186
+ <div class="viz-section-items section-items">
187
+ <p class="viz-group-description"><?php _e( 'You can choose here to import/synchronize your chart data with a remote JSON/REST source. For more info check <a href="https://docs.themeisle.com/article/1052-how-to-generate-charts-from-json-data-rest-endpoints" target="_blank" >this</a> tutorial', 'visualizer' ); ?></p>
188
+ <form id="vz-import-json" action="<?php echo $upload_link; ?>" method="post" target="thehole" enctype="multipart/form-data">
189
+ <div class="remote-file-section">
190
+ <?php
191
+ $bttn_label = 'visualizer_source_json' === $source_of_chart ? __( 'Modify Parameters', 'visualizer' ) : __( 'Create Parameters', 'visualizer' );
192
+ if ( VISUALIZER_PRO ) {
193
+ ?>
194
+ <p class="viz-group-description"><?php _e( 'How often do you want to check the URL', 'visualizer' ); ?></p>
195
+ <select name="vz-json-time" id="vz-json-time" class="visualizer-select" data-chart="<?php echo $this->chart->ID; ?>">
196
+ <?php
197
+ $hours = get_post_meta( $this->chart->ID, Visualizer_Plugin::CF_JSON_SCHEDULE, true );
198
+ $schedules = apply_filters(
199
+ 'visualizer_chart_schedules', array(
200
+ '-1' => __( 'One-time', 'visualizer' ),
201
+ ),
202
+ 'json',
203
+ $this->chart->ID
204
+ );
205
+ foreach ( $schedules as $num => $name ) {
206
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
207
+ $extra = $num == $hours ? 'selected' : '';
208
+ ?>
209
+ <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
210
+ <?php
211
+ }
212
+ ?>
213
+ </select>
214
+ <?php
215
+ }
216
+ ?>
217
+ </div>
218
+
219
+ <input type="button" id="json-chart-button" class="button button-secondary "
220
+ value="<?php echo $bttn_label; ?>" data-current="chart"
221
+ data-t-filter="<?php _e( 'Show Chart', 'visualizer' ); ?>"
222
+ data-t-chart="<?php echo $bttn_label; ?>">
223
+ <?php
224
+ if ( VISUALIZER_PRO ) {
225
+ ?>
226
+ <input type="button" id="json-chart-save-button" class="button button-primary "
227
+ value="<?php _e( 'Save Schedule', 'visualizer' ); ?>">
228
+ <?php
229
+ }
230
+ ?>
231
+ </form>
232
+ </div>
233
+ </li>
234
  </ul>
235
  </li>
236
  <li class="viz-group <?php echo apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature' ); ?>">
307
  )
308
  );
309
  foreach ( $schedules as $num => $name ) {
310
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
311
  $extra = $num == $hours ? 'selected' : '';
312
  ?>
313
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
356
  )
357
  );
358
  foreach ( $schedules as $num => $name ) {
359
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
360
  $extra = $num == $hours ? 'selected' : '';
361
  ?>
362
  <option value="<?php echo $num; ?>" <?php echo $extra; ?>><?php echo $name; ?></option>
375
  </li>
376
 
377
  <?php
378
+ // we will auto-open the manual data feature only when source is empty.
 
379
  ?>
380
+ <li class="viz-group <?php echo empty( $source_of_chart ) ? 'open' : ''; ?> ">
381
  <h2 class="viz-group-title viz-sub-group visualizer-editor-tab"
382
  data-current="chart"><?php _e( 'Manual Data', 'visualizer' ); ?><span
383
  class="dashicons dashicons-lock"></span></h2>
388
 
389
  <div class="viz-group-content edit-data-content">
390
  <div>
391
+ <p class="viz-group-description"><?php echo sprintf( __( 'You can manually edit the chart data using the %s editor.', 'visualizer' ), VISUALIZER_PRO ? 'spreadsheet like' : 'simple' ); ?></p>
392
+ <?php if ( ! VISUALIZER_PRO ) { ?>
393
+ <p class="viz-group-description simple-editor-type"><input type="checkbox" id="simple-editor-type" value="textarea"><label for="simple-editor-type"><?php _e( 'Use text area editor instead', 'visualizer' ); ?></label></p>
394
+ <?php } ?>
395
  <input type="button" id="editor-chart-button" class="button button-primary "
396
  value="<?php _e( 'View Editor', 'visualizer' ); ?>" data-current="chart"
397
  data-t-editor="<?php _e( 'Show Chart', 'visualizer' ); ?>"
398
  data-t-chart="<?php _e( 'View Editor', 'visualizer' ); ?>">
 
 
399
  </div>
400
  </div>
401
  </li>
607
  $query = get_post_meta( $this->chart->ID, Visualizer_Plugin::CF_DB_QUERY, true );
608
  }
609
  Visualizer_Render_Layout::show( 'db-query', $query );
610
+ Visualizer_Render_Layout::show( 'json-screen', $this->chart->ID );
611
  }
612
 
613
  }
classes/Visualizer/Render/Page/Types.php CHANGED
@@ -59,7 +59,7 @@ class Visualizer_Render_Page_Types extends Visualizer_Render_Page {
59
  echo "<a class='pro-upsell' href='" . Visualizer_Plugin::PRO_TEASER_URL . "' target='_blank'>";
60
  echo "<span class='visualizder-pro-label'>" . __( 'PREMIUM', 'visualizer' ) . '</span>';
61
  }
62
- echo '<label class="type-label', $type == $this->type ? ' type-label-selected' : '', '">';
63
  echo '<span>' . $array['name'] . '</span>';
64
  if ( $array['enabled'] ) {
65
  echo '<input type="radio" class="type-radio" name="type" value="', $type, '"', checked( $type, $this->type, false ), '>';
59
  echo "<a class='pro-upsell' href='" . Visualizer_Plugin::PRO_TEASER_URL . "' target='_blank'>";
60
  echo "<span class='visualizder-pro-label'>" . __( 'PREMIUM', 'visualizer' ) . '</span>';
61
  }
62
+ echo '<label class="type-label', $type === $this->type ? ' type-label-selected' : '', '">';
63
  echo '<span>' . $array['name'] . '</span>';
64
  if ( $array['enabled'] ) {
65
  echo '<input type="radio" class="type-radio" name="type" value="', $type, '"', checked( $type, $this->type, false ), '>';
classes/Visualizer/Render/Sidebar.php CHANGED
@@ -217,7 +217,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
217
  self::_renderCheckboxItem(
218
  esc_html__( 'Print', 'visualizer' ),
219
  'actions[]',
220
- isset( $this->actions ) && in_array( 'print', $this->actions ) ? true : false,
221
  'print',
222
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable printing the chart/data.', 'visualizer' ),
223
  $disable_actions
@@ -225,7 +225,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
225
  self::_renderCheckboxItem(
226
  esc_html__( 'CSV', 'visualizer' ),
227
  'actions[]',
228
- isset( $this->actions ) && in_array( 'csv;application/csv', $this->actions ) ? true : false,
229
  'csv;application/csv',
230
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable downloading the data as a CSV.', 'visualizer' ),
231
  $disable_actions
@@ -235,7 +235,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
235
  self::_renderCheckboxItem(
236
  esc_html__( 'Excel', 'visualizer' ),
237
  'actions[]',
238
- isset( $this->actions ) && in_array( 'xls;application/vnd.ms-excel', $this->actions ) ? true : false,
239
  'xls;application/vnd.ms-excel',
240
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : ( $disabled ? '<span class="viz-section-error">' . esc_html__( 'Enable the ZIP and XML extensions to use this setting.', 'visualizer' ) . '</span>' : esc_html__( 'To enable downloading the data as an Excel spreadsheet.', 'visualizer' ) ),
241
  $disable_actions || $disabled
@@ -243,7 +243,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
243
  self::_renderCheckboxItem(
244
  esc_html__( 'Copy', 'visualizer' ),
245
  'actions[]',
246
- isset( $this->actions ) && in_array( 'copy', $this->actions ) ? true : false,
247
  'copy',
248
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable copying the data to the clipboard.', 'visualizer' ),
249
  $disable_actions
@@ -565,7 +565,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
565
  echo '<b>', $title, '</b>';
566
  echo '<select class="control-select ', implode( ' ', $classes ) , '" name="', $name, '" ', ( $multiple ? 'multiple' : '' ), ' ' , $atts, '>';
567
  foreach ( $options as $key => $label ) {
568
- $extra = $multiple && is_array( $value ) ? ( in_array( $key, $value ) ? 'selected' : '' ) : selected( $key, $value, false );
569
  echo '<option value="', $key, '"', $extra, '>';
570
  echo $label;
571
  echo '</option>';
@@ -748,7 +748,7 @@ abstract class Visualizer_Render_Sidebar extends Visualizer_Render {
748
  echo '<div class="viz-section-item">';
749
  echo '<a class="more-info" href="javascript:;">[?]</a>';
750
  echo '<b>', $title, '</b>';
751
- echo '<input type="checkbox" class="control-check" value="', $default, '" name="', $name, '" ', ( $value == $default ? 'checked' : '' ), ' ', ( $disabled ? 'disabled=disabled' : '' ), '>';
752
  echo '<p class="viz-section-description">', $desc, '</p>';
753
  echo '</div>';
754
  }
217
  self::_renderCheckboxItem(
218
  esc_html__( 'Print', 'visualizer' ),
219
  'actions[]',
220
+ isset( $this->actions ) && in_array( 'print', $this->actions, true ) ? true : false,
221
  'print',
222
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable printing the chart/data.', 'visualizer' ),
223
  $disable_actions
225
  self::_renderCheckboxItem(
226
  esc_html__( 'CSV', 'visualizer' ),
227
  'actions[]',
228
+ isset( $this->actions ) && in_array( 'csv;application/csv', $this->actions, true ) ? true : false,
229
  'csv;application/csv',
230
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable downloading the data as a CSV.', 'visualizer' ),
231
  $disable_actions
235
  self::_renderCheckboxItem(
236
  esc_html__( 'Excel', 'visualizer' ),
237
  'actions[]',
238
+ isset( $this->actions ) && in_array( 'xls;application/vnd.ms-excel', $this->actions, true ) ? true : false,
239
  'xls;application/vnd.ms-excel',
240
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : ( $disabled ? '<span class="viz-section-error">' . esc_html__( 'Enable the ZIP and XML extensions to use this setting.', 'visualizer' ) . '</span>' : esc_html__( 'To enable downloading the data as an Excel spreadsheet.', 'visualizer' ) ),
241
  $disable_actions || $disabled
243
  self::_renderCheckboxItem(
244
  esc_html__( 'Copy', 'visualizer' ),
245
  'actions[]',
246
+ isset( $this->actions ) && in_array( 'copy', $this->actions, true ) ? true : false,
247
  'copy',
248
  $disable_actions ? '<span class="viz-section-error">' . esc_html__( 'Upgrade to at least WordPress 4.7 to use this.', 'visualizer' ) . '</span>' : esc_html__( 'To enable copying the data to the clipboard.', 'visualizer' ),
249
  $disable_actions
565
  echo '<b>', $title, '</b>';
566
  echo '<select class="control-select ', implode( ' ', $classes ) , '" name="', $name, '" ', ( $multiple ? 'multiple' : '' ), ' ' , $atts, '>';
567
  foreach ( $options as $key => $label ) {
568
+ $extra = $multiple && is_array( $value ) ? ( in_array( $key, $value, true ) ? 'selected' : '' ) : selected( $key, $value, false );
569
  echo '<option value="', $key, '"', $extra, '>';
570
  echo $label;
571
  echo '</option>';
748
  echo '<div class="viz-section-item">';
749
  echo '<a class="more-info" href="javascript:;">[?]</a>';
750
  echo '<b>', $title, '</b>';
751
+ echo '<input type="checkbox" class="control-check" value="', $default, '" name="', $name, '" ', ( $value === $default ? 'checked' : '' ), ' ', ( $disabled ? 'disabled=disabled' : '' ), '>';
752
  echo '<p class="viz-section-description">', $desc, '</p>';
753
  echo '</div>';
754
  }
classes/Visualizer/Source.php CHANGED
@@ -57,6 +57,14 @@ abstract class Visualizer_Source {
57
  */
58
  protected $_series = array();
59
 
 
 
 
 
 
 
 
 
60
  /**
61
  * Return allowed types
62
  *
@@ -84,7 +92,7 @@ abstract class Visualizer_Source {
84
  */
85
  protected static function _validateTypes( $types ) {
86
  foreach ( $types as $type ) {
87
- if ( ! in_array( $type, self::$allowed_types ) ) {
88
  return false;
89
  }
90
  }
@@ -194,7 +202,6 @@ abstract class Visualizer_Source {
194
  */
195
  protected function _normalizeData( $data ) {
196
  // normalize values
197
- // error_log(print_r($data,true));
198
  foreach ( $this->_series as $i => $series ) {
199
  // if no value exists for the seires, then add null
200
  if ( ! isset( $data[ $i ] ) ) {
@@ -221,14 +228,20 @@ abstract class Visualizer_Source {
221
  );
222
  }
223
  break;
 
 
 
 
 
 
 
224
  case 'string':
225
  $data[ $i ] = $this->toUTF8( $data[ $i ] );
226
  break;
227
  }
228
  }
229
 
230
- // error_log(print_r($data,true));
231
- return $data;
232
  }
233
 
234
 
@@ -263,7 +276,7 @@ abstract class Visualizer_Source {
263
  $types = array();
264
  $index = 0;
265
  foreach ( $series as $column ) {
266
- if ( in_array( $column['type'], array( 'date', 'datetime', 'timeofday' ) ) ) {
267
  $types[] = array( 'index' => $index, 'type' => $column['type'] );
268
  }
269
  $index++;
@@ -278,7 +291,7 @@ abstract class Visualizer_Source {
278
  if ( count( $data ) > 5 ) {
279
  $random = array();
280
  for ( $x = 0; $x < 5; $x++ ) {
281
- $random = $data[ rand( 0, count( $data ) - 1 ) ];
282
  }
283
  }
284
 
@@ -330,17 +343,22 @@ abstract class Visualizer_Source {
330
 
331
  switch ( $type ) {
332
  case 'datetime':
333
- $formats += array(
334
- 'Y/m/d H:i:s',
335
- 'Y-m-d H:i:s',
336
- 'm/d/Y H:i:s',
337
- 'm-d-Y H:i:s',
 
 
 
338
  );
339
  break;
340
  case 'timeofday':
341
- $formats += array(
342
- 'H:i:s',
343
- 'H:i',
 
 
344
  );
345
  break;
346
  }
@@ -349,7 +367,7 @@ abstract class Visualizer_Source {
349
 
350
  foreach ( $formats as $format ) {
351
  $return = DateTime::createFromFormat( $format, $value );
352
- if ( $return !== false ) {
353
  return $format;
354
  }
355
  }
@@ -357,4 +375,15 @@ abstract class Visualizer_Source {
357
  return null;
358
  }
359
 
 
 
 
 
 
 
 
 
 
 
 
360
  }
57
  */
58
  protected $_series = array();
59
 
60
+ /**
61
+ * The error message.
62
+ *
63
+ * @access protected
64
+ * @var string
65
+ */
66
+ protected $_error;
67
+
68
  /**
69
  * Return allowed types
70
  *
92
  */
93
  protected static function _validateTypes( $types ) {
94
  foreach ( $types as $type ) {
95
+ if ( ! in_array( $type, self::$allowed_types, true ) ) {
96
  return false;
97
  }
98
  }
202
  */
203
  protected function _normalizeData( $data ) {
204
  // normalize values
 
205
  foreach ( $this->_series as $i => $series ) {
206
  // if no value exists for the seires, then add null
207
  if ( ! isset( $data[ $i ] ) ) {
228
  );
229
  }
230
  break;
231
+ case 'datetime':
232
+ // let's check if the date is a Unix epoch
233
+ $value = DateTime::createFromFormat( 'U', $data[ $i ] );
234
+ if ( $value !== false && ! is_wp_error( $value ) ) {
235
+ $data[ $i ] = $value->format( 'Y-m-d H:i:s' );
236
+ }
237
+ break;
238
  case 'string':
239
  $data[ $i ] = $this->toUTF8( $data[ $i ] );
240
  break;
241
  }
242
  }
243
 
244
+ return apply_filters( 'visualizer_format_data', $data, $this->_series );
 
245
  }
246
 
247
 
276
  $types = array();
277
  $index = 0;
278
  foreach ( $series as $column ) {
279
+ if ( in_array( $column['type'], array( 'date', 'datetime', 'timeofday' ), true ) ) {
280
  $types[] = array( 'index' => $index, 'type' => $column['type'] );
281
  }
282
  $index++;
291
  if ( count( $data ) > 5 ) {
292
  $random = array();
293
  for ( $x = 0; $x < 5; $x++ ) {
294
+ $random[] = $data[ rand( 0, count( $data ) - 1 ) ];
295
  }
296
  }
297
 
343
 
344
  switch ( $type ) {
345
  case 'datetime':
346
+ $formats = array_merge(
347
+ $formats, array(
348
+ 'U',
349
+ 'Y/m/d H:i:s',
350
+ 'Y-m-d H:i:s',
351
+ 'm/d/Y H:i:s',
352
+ 'm-d-Y H:i:s',
353
+ )
354
  );
355
  break;
356
  case 'timeofday':
357
+ $formats = array_merge(
358
+ $formats, array(
359
+ 'H:i:s',
360
+ 'H:i',
361
+ )
362
  );
363
  break;
364
  }
367
 
368
  foreach ( $formats as $format ) {
369
  $return = DateTime::createFromFormat( $format, $value );
370
+ if ( $return !== false && ! is_wp_error( $return ) ) {
371
  return $format;
372
  }
373
  }
375
  return null;
376
  }
377
 
378
+ /**
379
+ * Returns the error, if any.
380
+ *
381
+ * @access public
382
+ * @return string
383
+ */
384
+ public function get_error() {
385
+ return $this->_error;
386
+ }
387
+
388
+
389
  }
classes/Visualizer/Source/Csv.php CHANGED
@@ -94,7 +94,7 @@ class Visualizer_Source_Csv extends Visualizer_Source {
94
  }
95
 
96
  for ( $i = 0, $len = count( $labels ); $i < $len; $i++ ) {
97
- $default_type = $i == 0 ? 'string' : 'number';
98
 
99
  $labels[ $i ] = $this->toUTF8( $labels[ $i ] );
100
 
@@ -146,8 +146,8 @@ class Visualizer_Source_Csv extends Visualizer_Source {
146
  }
147
 
148
  // fetch data
 
149
  while ( ( $data = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE ) ) !== false ) {
150
-
151
  $this->_data[] = $this->_normalizeData( $data );
152
  }
153
 
94
  }
95
 
96
  for ( $i = 0, $len = count( $labels ); $i < $len; $i++ ) {
97
+ $default_type = $i === 0 ? 'string' : 'number';
98
 
99
  $labels[ $i ] = $this->toUTF8( $labels[ $i ] );
100
 
146
  }
147
 
148
  // fetch data
149
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
150
  while ( ( $data = fgetcsv( $handle, 0, VISUALIZER_CSV_DELIMITER, VISUALIZER_CSV_ENCLOSURE ) ) !== false ) {
 
151
  $this->_data[] = $this->_normalizeData( $data );
152
  }
153
 
classes/Visualizer/Source/Csv/Remote.php CHANGED
@@ -148,7 +148,7 @@ class Visualizer_Source_Csv_Remote extends Visualizer_Source_Csv {
148
  }
149
 
150
  $scheme = parse_url( $this->_filename, PHP_URL_SCHEME );
151
- if ( $allow_url_fopen && in_array( $scheme, stream_get_wrappers() ) ) {
152
  return parent::_get_file_handle( $filename );
153
  }
154
 
148
  }
149
 
150
  $scheme = parse_url( $this->_filename, PHP_URL_SCHEME );
151
+ if ( $allow_url_fopen && in_array( $scheme, stream_get_wrappers(), true ) ) {
152
  return parent::_get_file_handle( $filename );
153
  }
154
 
classes/Visualizer/Source/Json.php ADDED
@@ -0,0 +1,410 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // +----------------------------------------------------------------------+
4
+ // | Copyright 2013 Madpixels (email : visualizer@madpixels.net) |
5
+ // +----------------------------------------------------------------------+
6
+ // | This program is free software; you can redistribute it and/or modify |
7
+ // | it under the terms of the GNU General Public License, version 2, as |
8
+ // | published by the Free Software Foundation. |
9
+ // | |
10
+ // | This program is distributed in the hope that it will be useful, |
11
+ // | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12
+ // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13
+ // | GNU General Public License for more details. |
14
+ // | |
15
+ // | You should have received a copy of the GNU General Public License |
16
+ // | along with this program; if not, write to the Free Software |
17
+ // | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, |
18
+ // | MA 02110-1301 USA |
19
+ // +----------------------------------------------------------------------+
20
+ // | Author: Eugene Manuilov <eugene@manuilov.org> |
21
+ // +----------------------------------------------------------------------+
22
+ /**
23
+ * Source manager for JSON URLs.
24
+ *
25
+ * @category Visualizer
26
+ * @package Source
27
+ *
28
+ * @since 1.0.0
29
+ */
30
+ class Visualizer_Source_Json extends Visualizer_Source {
31
+
32
+ /**
33
+ * The url to the data.
34
+ *
35
+ * @since 1.0.0
36
+ *
37
+ * @access protected
38
+ * @var string
39
+ */
40
+ protected $_url;
41
+
42
+ /**
43
+ * The root to the data.
44
+ *
45
+ * @since 1.0.0
46
+ *
47
+ * @access protected
48
+ * @var string
49
+ */
50
+ protected $_root;
51
+
52
+ /**
53
+ * The paging element.
54
+ *
55
+ * @since 1.0.0
56
+ *
57
+ * @access protected
58
+ * @var string
59
+ */
60
+ protected $_paging;
61
+
62
+ /**
63
+ * The array that contains the definition of the data.
64
+ *
65
+ * @since 1.0.0
66
+ *
67
+ * @access protected
68
+ * @var array
69
+ */
70
+ protected $_args;
71
+
72
+ const TAG_SEPARATOR = '>';
73
+ const TAG_SEPARATOR_VIEW = ' &#x27A4; ';
74
+
75
+ /**
76
+ * Constructor.
77
+ *
78
+ * @since 1.0.0
79
+ *
80
+ * @access public
81
+ * @param array $params The array that contains the definition of the data.
82
+ */
83
+ public function __construct( $params = null ) {
84
+ $this->_args = $params;
85
+ if ( isset( $this->_args['url'] ) ) {
86
+ $this->_url = trim( $this->_args['url'] );
87
+ }
88
+ if ( isset( $this->_args['root'] ) ) {
89
+ $this->_root = trim( $this->_args['root'] );
90
+ }
91
+ if ( isset( $this->_args['paging'] ) ) {
92
+ $this->_paging = trim( $this->_args['paging'] );
93
+ }
94
+
95
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Constructor called for params = %s', print_r( $params, true ) ), 'debug', __FILE__, __LINE__ );
96
+ }
97
+
98
+ /**
99
+ * Get the root elements for JSON-endpoint.
100
+ *
101
+ * @since ?
102
+ *
103
+ * @access public
104
+ */
105
+ public function fetchRoots() {
106
+ $roots = apply_filters( 'visualizer_json_get_root_elements', false, $this->_url );
107
+ if ( false !== $roots ) {
108
+ return $roots;
109
+ }
110
+ return $this->getRootElements( 'root', '', array(), $this->getJSON() );
111
+ }
112
+
113
+ /**
114
+ * Get the name of the elements that are likely to contain the paginated URLs.
115
+ *
116
+ * @since ?
117
+ *
118
+ * @access public
119
+ */
120
+ public function getPaginationElements() {
121
+ $pages = array();
122
+ $root = explode( self::TAG_SEPARATOR, $this->_root );
123
+ // the pagination element is usually one level above the root element we are going to use
124
+ // e.g. if the data is in root > results, the pagination element (let's call it "next") would be root > next and not root > results > next.
125
+ array_pop( $root );
126
+
127
+ // base of the next element.
128
+ $base = implode( self::TAG_SEPARATOR, $root );
129
+ // get rid of the first element as that is the faux root element indicator
130
+ array_shift( $root );
131
+
132
+ $array = $this->getJSON();
133
+ if ( is_null( $array ) ) {
134
+ return $pages;
135
+ }
136
+
137
+ $leaf = $array;
138
+ if ( ! empty( $root ) ) {
139
+ foreach ( $root as $tag ) {
140
+ if ( array_key_exists( $tag, $leaf ) ) {
141
+ $leaf = $array[ $tag ];
142
+ } else {
143
+ // if the tag does not exist, we assume it is present in the 0th element of the current array.
144
+ $leaf = $leaf[0][ $tag ];
145
+ }
146
+ }
147
+ }
148
+
149
+ $paging = array();
150
+ foreach ( $leaf as $key => $value ) {
151
+ // the paging element's value will most probably contain the url of the feed.
152
+ if ( is_string( $value ) && 0 === stripos( $value, $this->_url ) ) {
153
+ $paging[] = $key;
154
+ }
155
+ }
156
+
157
+ foreach ( array_filter( array_unique( $paging ) ) as $page ) {
158
+ $pages[] = $base . self::TAG_SEPARATOR . $page;
159
+ }
160
+ return $pages;
161
+ }
162
+
163
+ /**
164
+ * Parse the JSON-endpoint from the chosen root as the base.
165
+ *
166
+ * @since ?
167
+ *
168
+ * @access public
169
+ */
170
+ public function parse() {
171
+ $url = $this->_url;
172
+ $data = array();
173
+ $page = 1;
174
+
175
+ while ( ! is_null( $url ) && $page++ < apply_filters( 'visualizer_json_fetch_pages', 5, $this->_url ) ) {
176
+ $array = $this->getJSON( $url );
177
+ if ( is_null( $array ) ) {
178
+ return $data;
179
+ }
180
+
181
+ $root = explode( self::TAG_SEPARATOR, $this->_root );
182
+ // get rid of the first element as that is the faux root element indicator
183
+ array_shift( $root );
184
+ $leaf = $array;
185
+ foreach ( $root as $tag ) {
186
+ if ( array_key_exists( $tag, $leaf ) ) {
187
+ $leaf = $leaf[ $tag ];
188
+ } else {
189
+ // if the tag does not exist, we assume it is present in the 0th element of the current array.
190
+ // TODO: we may want to change this to a filter later.
191
+ $leaf = $leaf[0][ $tag ];
192
+ }
193
+ }
194
+
195
+ // now that we have got the final array we need to operate on, we will use this as the collection of series.
196
+ // lets check if the series is a flat-series e.g. https://api.exchangeratesapi.io/latest
197
+ // in this, all values of `$leaf` would be a string, not an array.
198
+ $values = array_values( $leaf );
199
+ if ( ! is_array( $values[0] ) ) {
200
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Looks like a flat-series = %s', print_r( $leaf, true ) ), 'debug', __FILE__, __LINE__ );
201
+ $inner_data = array();
202
+ foreach ( $leaf as $datum => $value ) {
203
+ $inner_data[ $datum ] = $value;
204
+ }
205
+ $data[] = $inner_data;
206
+ } else {
207
+ // we will filter out all elements of this array that have array as a value.
208
+ foreach ( $leaf as $datum ) {
209
+ $inner_data = array();
210
+ foreach ( $datum as $key => $value ) {
211
+ if ( is_array( $value ) ) {
212
+ continue;
213
+ }
214
+ $inner_data[ $key ] = $value;
215
+ }
216
+ // if we want to exclude entire rows on the basis of some data/key.
217
+ if ( apply_filters( 'visualizer_json_include_row', true, $inner_data, $this->_root, $this->_url ) ) {
218
+ $data[] = $inner_data;
219
+ }
220
+ }
221
+ }
222
+
223
+ $url = $this->getNextPage( $array );
224
+ }
225
+
226
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Parsed data endpoint %s with rooot %s is %s = ', $this->_url, $this->_root, print_r( $data, true ) ), 'debug', __FILE__, __LINE__ );
227
+
228
+ return $data;
229
+ }
230
+
231
+ /**
232
+ * Get the next page URL.
233
+ *
234
+ * @since ?
235
+ *
236
+ * @access private
237
+ */
238
+ private function getNextPage( $array ) {
239
+ if ( empty( $this->_paging ) ) {
240
+ return null;
241
+ }
242
+
243
+ $root = explode( self::TAG_SEPARATOR, $this->_paging );
244
+ // get rid of the first element as that is the faux root element indicator
245
+ array_shift( $root );
246
+ $leaf = $array;
247
+ foreach ( $root as $tag ) {
248
+ if ( array_key_exists( $tag, $leaf ) ) {
249
+ $leaf = $array[ $tag ];
250
+ } else {
251
+ // if the tag does not exist, we assume it is present in the 0th element of the current array.
252
+ // TODO: we may want to change this to a filter later.
253
+ $leaf = $leaf[0][ $tag ];
254
+ }
255
+ }
256
+
257
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Got next page as %s for paging element %s', $leaf, $this->_paging ), 'debug', __FILE__, __LINE__ );
258
+
259
+ return $leaf;
260
+ }
261
+
262
+ /**
263
+ * Get the root elements for JSON-endpoint.
264
+ *
265
+ * @since ?
266
+ *
267
+ * @access private
268
+ */
269
+ private function getRootElements( $parent, $now, $root, $array ) {
270
+ if ( is_null( $array ) ) {
271
+ return array();
272
+ }
273
+
274
+ foreach ( $array as $key => $value ) {
275
+ if ( is_array( $value ) && ! empty( $value ) ) {
276
+ if ( ! is_numeric( $key ) ) {
277
+ $now = sprintf( '%s%s%s', $parent, self::TAG_SEPARATOR, $key );
278
+ $root[] = $now;
279
+ } else {
280
+ $now = $parent;
281
+ }
282
+ $root = $this->getRootElements( $now, $key, $root, $value );
283
+ }
284
+ }
285
+ $roots = array_filter( array_unique( $root ) );
286
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Roots found for %s = ', $this->_url, print_r( $roots, true ) ), 'debug', __FILE__, __LINE__ );
287
+ return $roots;
288
+ }
289
+
290
+ /**
291
+ * Get the JSON for the JSON-endpoint.
292
+ *
293
+ * @since ?
294
+ *
295
+ * @access private
296
+ */
297
+ private function getJSON( $url = null ) {
298
+ if ( is_null( $url ) ) {
299
+ $url = $this->_url;
300
+ }
301
+ // allow hooks to use any other args such as method=POST.
302
+ $response = wp_remote_request( $url, apply_filters( 'visualizer_json_args', array( 'method' => 'GET' ), $url ) );
303
+ if ( is_wp_error( $response ) ) {
304
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Error while fetching JSON endpoint %s = ', $url, print_r( $response, true ) ), 'error', __FILE__, __LINE__ );
305
+ return null;
306
+ }
307
+
308
+ $array = json_decode( wp_remote_retrieve_body( $response ), true );
309
+
310
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'JSON array for the endpoint is %s = ', print_r( $array, true ) ), 'debug', __FILE__, __LINE__ );
311
+
312
+ return $array;
313
+ }
314
+
315
+
316
+ /**
317
+ * Fetches series information. This is fetched only through the UI and not while refreshing the chart data.
318
+ *
319
+ * @since 1.0.0
320
+ *
321
+ * @access private
322
+ */
323
+ private function _fetchSeries() {
324
+ $params = $this->_args;
325
+ $headers = array_filter( $params['header'] );
326
+ $types = array_filter( $params['type'] );
327
+ $header_row = $type_row = array();
328
+ if ( $headers ) {
329
+ foreach ( $headers as $header ) {
330
+ if ( ! empty( $types[ $header ] ) ) {
331
+ $this->_series[] = array(
332
+ 'label' => $header,
333
+ 'type' => $types[ $header ],
334
+ );
335
+ }
336
+ }
337
+ }
338
+
339
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Series found for %s = ', $this->_url, print_r( $this->_series, true ) ), 'debug', __FILE__, __LINE__ );
340
+
341
+ return true;
342
+ }
343
+
344
+ /**
345
+ * Fetches data information.
346
+ *
347
+ * @since 1.0.0
348
+ *
349
+ * @access private
350
+ */
351
+ private function _fetchData() {
352
+ $params = $this->_args;
353
+
354
+ $headers = wp_list_pluck( $this->_series, 'label' );
355
+ $data = $this->parse();
356
+ foreach ( $data as $line ) {
357
+ $data_row = array();
358
+ foreach ( $line as $header => $value ) {
359
+ if ( in_array( $header, $headers, true ) ) {
360
+ $data_row[] = $value;
361
+ }
362
+ }
363
+ $this->_data[] = $this->_normalizeData( $data_row );
364
+ }
365
+
366
+ do_action( 'themeisle_log_event', Visualizer_Plugin::NAME, sprintf( 'Data found for %s = ', $this->_url, print_r( $this->_data, true ) ), 'debug', __FILE__, __LINE__ );
367
+
368
+ return true;
369
+ }
370
+
371
+ /**
372
+ * Fetches information from source, parses it and builds series and data arrays.
373
+ *
374
+ * @since 1.0.0
375
+ *
376
+ * @access public
377
+ * @return boolean TRUE on success, otherwise FALSE.
378
+ */
379
+ public function fetch() {
380
+ $this->_fetchSeries();
381
+ $this->_fetchData();
382
+ return true;
383
+ }
384
+
385
+ /**
386
+ * Refresh the data for the provided series.
387
+ *
388
+ * @since ?
389
+ *
390
+ * @access public
391
+ */
392
+ public function refresh( $series ) {
393
+ $this->_series = $series;
394
+ $this->_fetchData();
395
+ return true;
396
+ }
397
+
398
+ /**
399
+ * Returns source name.
400
+ *
401
+ * @since 1.0.0
402
+ *
403
+ * @access public
404
+ * @return string The name of source.
405
+ */
406
+ public function getSourceName() {
407
+ return __CLASS__;
408
+ }
409
+
410
+ }
classes/Visualizer/Source/Query.php CHANGED
@@ -35,14 +35,6 @@ class Visualizer_Source_Query extends Visualizer_Source {
35
  */
36
  protected $_query;
37
 
38
- /**
39
- * The error message.
40
- *
41
- * @access protected
42
- * @var string
43
- */
44
- protected $_error;
45
-
46
  /**
47
  * Constructor.
48
  *
@@ -178,16 +170,6 @@ class Visualizer_Source_Query extends Visualizer_Source {
178
  return true;
179
  }
180
 
181
- /**
182
- * Returns the error, if any.
183
- *
184
- * @access public
185
- * @return string
186
- */
187
- public function get_error() {
188
- return $this->_error;
189
- }
190
-
191
  /**
192
  * Returns the final query.
193
  *
35
  */
36
  protected $_query;
37
 
 
 
 
 
 
 
 
 
38
  /**
39
  * Constructor.
40
  *
170
  return true;
171
  }
172
 
 
 
 
 
 
 
 
 
 
 
173
  /**
174
  * Returns the final query.
175
  *
classes/Visualizer/Source/Query/Params.php CHANGED
@@ -227,16 +227,16 @@ class Visualizer_Source_Query_Params extends Visualizer_Source_Query {
227
  $terms = array( $wpdb->prefix . 'terms', $wpdb->prefix . 'termmeta' );
228
  $comments = array( $wpdb->prefix . 'comments', $wpdb->prefix . 'commentmeta' );
229
 
230
- if ( in_array( $table1, $posts ) && in_array( $table2, $posts ) ) {
231
  return $wpdb->prefix . 'posts.ID = ' . $wpdb->prefix . 'postmeta.post_id';
232
  }
233
- if ( in_array( $table1, $users ) && in_array( $table2, $users ) ) {
234
  return $wpdb->prefix . 'users.ID = ' . $wpdb->prefix . 'usermeta.user_id';
235
  }
236
- if ( in_array( $table1, $terms ) && in_array( $table2, $terms ) ) {
237
  return $wpdb->prefix . 'terms.term_id = ' . $wpdb->prefix . 'termmeta.term_id';
238
  }
239
- if ( in_array( $table1, $comments ) && in_array( $table2, $comments ) ) {
240
  return $wpdb->prefix . 'comments.comment_id = ' . $wpdb->prefix . 'commentmeta.comment_id';
241
  }
242
 
227
  $terms = array( $wpdb->prefix . 'terms', $wpdb->prefix . 'termmeta' );
228
  $comments = array( $wpdb->prefix . 'comments', $wpdb->prefix . 'commentmeta' );
229
 
230
+ if ( in_array( $table1, $posts, true ) && in_array( $table2, $posts, true ) ) {
231
  return $wpdb->prefix . 'posts.ID = ' . $wpdb->prefix . 'postmeta.post_id';
232
  }
233
+ if ( in_array( $table1, $users, true ) && in_array( $table2, $users, true ) ) {
234
  return $wpdb->prefix . 'users.ID = ' . $wpdb->prefix . 'usermeta.user_id';
235
  }
236
+ if ( in_array( $table1, $terms, true ) && in_array( $table2, $terms, true ) ) {
237
  return $wpdb->prefix . 'terms.term_id = ' . $wpdb->prefix . 'termmeta.term_id';
238
  }
239
+ if ( in_array( $table1, $comments, true ) && in_array( $table2, $comments, true ) ) {
240
  return $wpdb->prefix . 'comments.comment_id = ' . $wpdb->prefix . 'commentmeta.comment_id';
241
  }
242
 
css/frame.css CHANGED
@@ -1302,17 +1302,24 @@ span.viz-section-error {
1302
  color: #f00;
1303
  }
1304
 
1305
- .db-wizard-hints {
 
 
1306
  margin-bottom: 30px;
1307
  color: #0085ba;
1308
  }
1309
 
1310
  .db-wizard-hints .visualizer-emboss,
1311
- .db-wizard-hints a {
 
 
 
1312
  color: #f92472;
1313
  }
1314
 
1315
- .db-wizard-hints ul {
 
 
1316
  list-style: square;
1317
  }
1318
 
@@ -1330,7 +1337,98 @@ span.viz-section-error {
1330
  text-decoration: none;
1331
  }
1332
 
1333
- /* datatables */
1334
- .dt-button {
 
 
1335
  display: none !important;
1336
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1302
  color: #f00;
1303
  }
1304
 
1305
+ .db-wizard-hints,
1306
+ .json-wizard-hints,
1307
+ .html-table-editor-hints {
1308
  margin-bottom: 30px;
1309
  color: #0085ba;
1310
  }
1311
 
1312
  .db-wizard-hints .visualizer-emboss,
1313
+ .db-wizard-hints a,
1314
+ .html-table-editor-hints a,
1315
+ .json-wizard-hints .visualizer-emboss,
1316
+ .json-wizard-hints a {
1317
  color: #f92472;
1318
  }
1319
 
1320
+ .db-wizard-hints ul,
1321
+ .html-table-editor-hints ul,
1322
+ .json-wizard-hints ul {
1323
  list-style: square;
1324
  }
1325
 
1337
  text-decoration: none;
1338
  }
1339
 
1340
+ /******************************************************************************/
1341
+ /******************************** data tables *******************************/
1342
+ /******************************************************************************/
1343
+ .db-wizard-results .dt-button {
1344
  display: none !important;
1345
+ }
1346
+
1347
+ /******************************************************************************/
1348
+ /******************************** json table *********************************/
1349
+ /******************************************************************************/
1350
+ #json-conclude-form .results {
1351
+ min-width: 10px !important;
1352
+ }
1353
+
1354
+ #json-conclude-form .json-table,
1355
+ #vz-import-json-url,
1356
+ #vz-import-json-root,
1357
+ #vz-import-json-paging {
1358
+ width: 85%;
1359
+ }
1360
+
1361
+ #json-conclude-form .json-table,
1362
+ #json-conclude-form button#visualizer-json-conclude {
1363
+ display: inline-block;
1364
+ vertical-align: middle;
1365
+ }
1366
+
1367
+ .viz-editor-table tbody tr:first-child {
1368
+ background-color: #ececec !important;
1369
+ }
1370
+
1371
+ .viz-editor-table tr th {
1372
+ background-color: #cccccc;
1373
+ }
1374
+
1375
+ .viz-editor-table thead tr th:nth-child(n+1) {
1376
+ cursor: move !important;
1377
+ }
1378
+
1379
+ #json-conclude-form .json-wizard-hints .info,
1380
+ .html-table-editor-hints .info {
1381
+ margin: 1% 0px;
1382
+ }
1383
+
1384
+ .viz-step.ui-state-active {
1385
+ border-color: #0085BA !important;
1386
+ background: #0085BA !important;
1387
+ color: #ffffff;
1388
+ }
1389
+
1390
+ /******************************************************************************/
1391
+ /******************************** html table editor **************************/
1392
+ /******************************************************************************/
1393
+ .viz-simple-editor-type,
1394
+ .viz-simple-editor {
1395
+ display: none;
1396
+ }
1397
+
1398
+ .viz-table-editor {
1399
+ width: 75%;
1400
+ margin-left: 2%;
1401
+ }
1402
+
1403
+ .viz-html-table,
1404
+ button#visualizer-save-html-table {
1405
+ display: inline-block;
1406
+ vertical-align: middle;
1407
+ }
1408
+
1409
+
1410
+ /******************************************************************************/
1411
+ /******************************** text area editor **************************/
1412
+ /******************************************************************************/
1413
+ .viz-text-editor {
1414
+ padding: 20px;
1415
+ z-index: 9999;
1416
+ box-sizing: border-box;
1417
+ padding-right: 320px;
1418
+ }
1419
+
1420
+ .viz-text-editor textarea {
1421
+ width: 85%;
1422
+ overflow: auto;
1423
+ background: #282923;
1424
+ color: #ffffff;
1425
+ padding: 15px;
1426
+ height: 400px;
1427
+ font-size: 15px;
1428
+ }
1429
+
1430
+ .viz-text-editor textarea,
1431
+ button#viz-text-editor-button {
1432
+ display: inline-block;
1433
+ vertical-align: middle;
1434
+ }
css/media.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 3.1.3
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
1
  /*
2
+ Version: 3.2.0
3
  */
4
  #visualizer-library-view {
5
  padding: 30px 10px 10px 30px;
images/blank.png ADDED
Binary file
index.php CHANGED
@@ -1,10 +1,10 @@
1
  <?php
2
 
3
  /*
4
- Plugin Name: Visualizer: Tables and Charts Manager for WordPress (Lite)
5
  Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
6
  Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7
- Version: 3.1.3
8
  Author: Themeisle
9
  Author URI: http://themeisle.com
10
  License: GPL v2.0 or later
@@ -42,7 +42,7 @@ if ( class_exists( 'Visualizer_Pro', false ) ) {
42
  function visualizer_autoloader( $class ) {
43
  $namespaces = array( 'Visualizer' );
44
  foreach ( $namespaces as $namespace ) {
45
- if ( substr( $class, 0, strlen( $namespace ) ) == $namespace ) {
46
  $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" );
47
  if ( is_readable( $filename ) ) {
48
  require $filename;
@@ -103,6 +103,7 @@ function visualizer_launch() {
103
  $plugin->setModule( Visualizer_Module_Setup::NAME );
104
  $plugin->setModule( Visualizer_Module_Sources::NAME );
105
  $plugin->setModule( Visualizer_Module_Chart::NAME );
 
106
  if ( is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
107
  // set admin modules
108
  $plugin->setModule( Visualizer_Module_Admin::NAME );
@@ -111,6 +112,8 @@ function visualizer_launch() {
111
  // set frontend modules
112
  $plugin->setModule( Visualizer_Module_Frontend::NAME );
113
 
 
 
114
  $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload_52.php';
115
  if ( is_readable( $vendor_file ) ) {
116
  include_once( $vendor_file );
1
  <?php
2
 
3
  /*
4
+ Plugin Name: Visualizer: Tables and Charts Manager for WordPress
5
  Plugin URI: https://themeisle.com/plugins/visualizer-charts-and-graphs-lite/
6
  Description: A simple, easy to use and quite powerful tool to create, manage and embed interactive charts into your WordPress posts and pages. The plugin uses Google Visualization API to render charts, which supports cross-browser compatibility (adopting VML for older IE versions) and cross-platform portability to iOS and new Android releases.
7
+ Version: 3.2.0
8
  Author: Themeisle
9
  Author URI: http://themeisle.com
10
  License: GPL v2.0 or later
42
  function visualizer_autoloader( $class ) {
43
  $namespaces = array( 'Visualizer' );
44
  foreach ( $namespaces as $namespace ) {
45
+ if ( substr( $class, 0, strlen( $namespace ) ) === $namespace ) {
46
  $filename = dirname( __FILE__ ) . str_replace( '_', DIRECTORY_SEPARATOR, "_classes_{$class}.php" );
47
  if ( is_readable( $filename ) ) {
48
  require $filename;
103
  $plugin->setModule( Visualizer_Module_Setup::NAME );
104
  $plugin->setModule( Visualizer_Module_Sources::NAME );
105
  $plugin->setModule( Visualizer_Module_Chart::NAME );
106
+
107
  if ( is_admin() || defined( 'WP_TESTS_DOMAIN' ) ) {
108
  // set admin modules
109
  $plugin->setModule( Visualizer_Module_Admin::NAME );
112
  // set frontend modules
113
  $plugin->setModule( Visualizer_Module_Frontend::NAME );
114
 
115
+ $plugin->setModule( Visualizer_Module_AMP::NAME );
116
+
117
  $vendor_file = VISUALIZER_ABSPATH . '/vendor/autoload_52.php';
118
  if ( is_readable( $vendor_file ) ) {
119
  include_once( $vendor_file );
js/frame.js CHANGED
@@ -13,9 +13,11 @@
13
  });
14
 
15
  $(document).ready(function () {
16
- // open the correct source tab.
17
  var source = $('#visualizer-chart-id').attr('data-chart-source');
18
  $('li.viz-group.' + source).addClass('open');
 
 
19
 
20
  init_permissions();
21
 
@@ -24,6 +26,10 @@
24
  init_filter_import();
25
  }
26
 
 
 
 
 
27
  // update the manual configuation link to point to the correct chart type.
28
  var type = $('#visualizer-chart-id').attr('data-chart-type');
29
  var chart_type_in_api_link = type + 'chart';
@@ -295,6 +301,199 @@
295
  });
296
  }
297
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
298
  function start_ajax(element){
299
  element.lock();
300
  }
13
  });
14
 
15
  $(document).ready(function () {
16
+ // open the correct source tab/sub-tab.
17
  var source = $('#visualizer-chart-id').attr('data-chart-source');
18
  $('li.viz-group.' + source).addClass('open');
19
+ $('li.viz-group.' + source + ' span.viz-section-title.' + source).addClass('open');
20
+ $('li.viz-group.' + source + ' span.viz-section-title.' + source + '.open').parent().find('div.viz-section-items').show();
21
 
22
  init_permissions();
23
 
26
  init_filter_import();
27
  }
28
 
29
+ init_json_import();
30
+
31
+ init_editor_table();
32
+
33
  // update the manual configuation link to point to the correct chart type.
34
  var type = $('#visualizer-chart-id').attr('data-chart-type');
35
  var chart_type_in_api_link = type + 'chart';
301
  });
302
  }
303
 
304
+ function init_json_import(){
305
+ var regex = new RegExp(visualizer.json_tag_separator, 'g');
306
+
307
+ $( '#visualizer-json-screen' ).css("z-index", "-1").hide();
308
+ $('.visualizer-json-form').accordion({
309
+ heightStyle: 'content',
310
+ active: 0
311
+ });
312
+
313
+ // toggle between chart and create/modify parameters
314
+ $( '#json-chart-button' ).on( 'click', function(){
315
+ $('#content').css('width', 'calc(100% - 300px)');
316
+ if( $(this).attr( 'data-current' ) === 'chart'){
317
+ $(this).val( $(this).attr( 'data-t-filter' ) );
318
+ $(this).html( $(this).attr( 'data-t-filter' ) );
319
+ $(this).attr( 'data-current', 'filter' );
320
+ $( '.visualizer-editor-lhs' ).hide();
321
+ $( '#visualizer-json-screen' ).css("z-index", "9999").show();
322
+ $( '#canvas' ).hide();
323
+ }else{
324
+ var filter_button = $(this);
325
+ $( '#visualizer-json-screen' ).css("z-index", "-1").hide();
326
+ $('#canvas').lock();
327
+ filter_button.val( filter_button.attr( 'data-t-chart' ) );
328
+ filter_button.html( filter_button.attr( 'data-t-chart' ) );
329
+ filter_button.attr( 'data-current', 'chart' );
330
+ $( '#canvas' ).css("z-index", "1").show();
331
+ $('#canvas').unlock();
332
+ }
333
+ } );
334
+
335
+ // fetch the roots for the provided endpoint
336
+ $( '#visualizer-json-fetch' ).on( 'click', function(e){
337
+ e.preventDefault();
338
+ $('.visualizer-json-form').accordion( 'option', 'active', 0 );
339
+ $('.visualizer-json-form h3.viz-step:not(.step1)').addClass('ui-state-disabled');
340
+ $('.json-table').html('');
341
+ start_ajax( $( '#visualizer-json-screen' ) );
342
+ $.ajax({
343
+ url : ajaxurl,
344
+ method : 'post',
345
+ data : {
346
+ 'action' : visualizer.ajax['actions']['json_get_roots'],
347
+ 'security' : visualizer.ajax['nonces']['json_get_roots'],
348
+ 'params' : $('#json-endpoint-form').serialize()
349
+ },
350
+ success : function(data){
351
+ if(data.success){
352
+ $('#json-root-form [name="url"]').val(data.data.url);
353
+ $('#vz-import-json-root').empty();
354
+ $.each(data.data.roots, function(i, name){
355
+ $('#vz-import-json-root').append('<option value="' + name + '">' + name.replace(regex, visualizer.json_tag_separator_view) + '</option>');
356
+ });
357
+ $('#json-root-form').fadeIn('medium');
358
+ json_accordion_activate(1, true);
359
+ }else{
360
+ alert(visualizer.l10n.json_error);
361
+ }
362
+ },
363
+ complete: function(){
364
+ end_ajax($('#visualizer-json-screen'));
365
+ }
366
+ });
367
+ });
368
+
369
+ // fetch the data for the chosen root
370
+ $( '#visualizer-json-parse' ).on( 'click', function(e){
371
+ e.preventDefault();
372
+ $('.visualizer-json-form h3.viz-step:not(.step1):not(.step2)').addClass('ui-state-disabled');
373
+ $('.json-table').html('');
374
+ start_ajax( $( '#visualizer-json-screen' ) );
375
+ $.ajax({
376
+ url : ajaxurl,
377
+ method : 'post',
378
+ data : {
379
+ 'action' : visualizer.ajax['actions']['json_get_data'],
380
+ 'security' : visualizer.ajax['nonces']['json_get_data'],
381
+ 'params' : $('#json-root-form').serialize()
382
+ },
383
+ success : function(data){
384
+ if(data.success){
385
+ $('#vz-import-json-paging option:not(.static)').remove();
386
+ if(data.data.paging.length > 0){
387
+ var $template = $('#vz-import-json-paging').attr('data-template');
388
+ $.each(data.data.paging, function(i, name){
389
+ var display = name.replace(regex, visualizer.json_tag_separator_view);
390
+ display = $template.replace('?', display);
391
+ $('#vz-import-json-paging').append('<option value="' + name + '">' + display + '</option>');
392
+ });
393
+ $('.json-pagination').show();
394
+ }
395
+ $('#json-conclude-form [name="url"]').val(data.data.url);
396
+ $('#json-conclude-form [name="root"]').val(data.data.root);
397
+ $('#json-conclude-form .json-table').html(data.data.table);
398
+
399
+ var $table = create_editor_table( '#json-conclude-form' );
400
+
401
+ json_accordion_activate(3, true);
402
+ json_accordion_activate(2, false);
403
+ $table.columns.adjust().draw();
404
+ }else{
405
+ alert(visualizer.l10n.json_error);
406
+ }
407
+ },
408
+ complete: function(){
409
+ end_ajax($('#visualizer-json-screen'));
410
+ }
411
+ });
412
+ });
413
+
414
+ // when the data is set and the chart is updated, toggle the screen so that the chart is shown
415
+ $('#json-conclude-form').on( 'submit', function(e){
416
+ // populate the form elements that are in the misc tab.
417
+ $('#json-conclude-form-helper .json-form-element').each(function(x, y){
418
+ $('#json-conclude-form').append('<input type="hidden" name="' + y.name + '" value="' + y.value + '">');
419
+ });
420
+ $( '#json-chart-button' ).trigger('click');
421
+ $('#canvas').lock();
422
+ });
423
+
424
+ // update the schedule
425
+ $('#json-chart-save-button').on('click', function(e){
426
+ e.preventDefault();
427
+ $('#canvas').lock();
428
+ $.ajax({
429
+ url : ajaxurl,
430
+ method : 'post',
431
+ data : {
432
+ 'action' : visualizer.ajax['actions']['json_set_schedule'],
433
+ 'security' : visualizer.ajax['nonces']['json_set_schedule'],
434
+ 'chart' : $('#vz-json-time').attr('data-chart'),
435
+ 'time' : $('#vz-json-time').val()
436
+ },
437
+ success : function(data){
438
+ // do nothing.
439
+ },
440
+ complete: function(){
441
+ $('#canvas').unlock();
442
+ }
443
+ });
444
+ });
445
+
446
+ }
447
+
448
+ function init_editor_table() {
449
+ $('body').on('visualizer:db:editor:table:init', function(event, data){
450
+ var $table = create_editor_table('.viz-table-editor');
451
+ $('body').on('visualizer:db:editor:table:redraw', function(event, data){
452
+ $table.draw();
453
+ });
454
+ });
455
+ }
456
+
457
+ function create_editor_table(element) {
458
+ var settings = {
459
+ paging: false,
460
+ searching: false,
461
+ ordering: false,
462
+ select: false,
463
+ scrollX: "100%",
464
+ scrollY: "400px",
465
+ info: false,
466
+ colReorder: {
467
+ fixedColumnsLeft: 1
468
+ }
469
+ };
470
+
471
+ // show column visibility button only when more than 6 columns are found (including the Label column)
472
+ if($(element + ' table.viz-editor-table thead tr th').length > 6){
473
+ $.extend( settings, {
474
+ dom: 'Bt',
475
+ buttons: [
476
+ {
477
+ extend: 'colvis',
478
+ columns: ':gt(0)',
479
+ collectionLayout: 'four-column'
480
+ }
481
+ ]
482
+ } );
483
+ }
484
+
485
+ $.extend( $.fn.dataTable.defaults, settings );
486
+ var $table = $(element + ' .viz-editor-table').DataTable();
487
+ return $table;
488
+ }
489
+
490
+ function json_accordion_activate($step, $activate){
491
+ $('.visualizer-json-form h3.viz-step.step' + ( $step + 1 )).removeClass('ui-state-disabled');
492
+ if($activate){
493
+ $('.visualizer-json-form').accordion( 'option', 'active', $step );
494
+ }
495
+ }
496
+
497
  function start_ajax(element){
498
  element.lock();
499
  }
js/render-facade.js CHANGED
@@ -16,6 +16,8 @@
16
  var chart = $(this).attr( 'data-visualizer-chart-id' );
17
  var container = $(this).attr( 'data-visualizer-container-id' );
18
  var lock = $('.visualizer-front.visualizer-front-' + chart);
 
 
19
  lock.lock();
20
  e.preventDefault();
21
  $.ajax({
@@ -24,25 +26,34 @@
24
  if (data && data.data) {
25
  switch(type){
26
  case 'csv':
27
- var a = document.createElement("a");
28
- document.body.appendChild(a);
29
- a.style = "display: none";
30
- var blob = new Blob([data.data.csv], {type: $(this).attr( 'data-visualizer-mime' ) }),
31
- url = window.URL.createObjectURL(blob);
32
- a.href = url;
33
- a.download = data.data.name;
34
- a.click();
35
- setTimeout(function () {
36
- window.URL.revokeObjectURL(url);
37
- }, 100);
 
 
 
 
38
  break;
39
  case 'xls':
40
- var $a = $("<a>");
41
- $a.attr("href",data.data.csv);
42
- $("body").append($a);
43
- $a.attr("download",data.data.name);
44
- $a[0].click();
45
- $a.remove();
 
 
 
 
 
46
  break;
47
  case 'print':
48
  $('body').trigger('visualizer:action:specificchart', {action: 'print', id: container, data: data.data.csv});
@@ -60,6 +71,15 @@
60
  });
61
  }
62
 
 
 
 
 
 
 
 
 
 
63
  $(document).ready(function(){
64
  $('body').trigger('visualizer:render:chart:start', visualizer);
65
  initActionsButtons(visualizer);
16
  var chart = $(this).attr( 'data-visualizer-chart-id' );
17
  var container = $(this).attr( 'data-visualizer-container-id' );
18
  var lock = $('.visualizer-front.visualizer-front-' + chart);
19
+ var mime = $(this).attr( 'data-visualizer-mime' );
20
+ console.log(mime);
21
  lock.lock();
22
  e.preventDefault();
23
  $.ajax({
26
  if (data && data.data) {
27
  switch(type){
28
  case 'csv':
29
+ var blob = new Blob([data.data.csv], {type: mime });
30
+ if(window.navigator.msSaveOrOpenBlob){
31
+ window.navigator.msSaveOrOpenBlob(blob, data.data.name);
32
+ } else {
33
+ var url = window.URL.createObjectURL(blob);
34
+ var $a = $("<a>");
35
+ $a.attr("href", url);
36
+ $("body").append($a);
37
+ $a.attr("download", data.data.name);
38
+ $a[0].click();
39
+ setTimeout(function () {
40
+ window.URL.revokeObjectURL(url);
41
+ $a.remove();
42
+ }, 100);
43
+ }
44
  break;
45
  case 'xls':
46
+ if(window.navigator.msSaveOrOpenBlob){
47
+ blob = new Blob([s2ab(atob(data.data.raw))], {type: '' });
48
+ window.navigator.msSaveOrOpenBlob(blob, data.data.name);
49
+ } else {
50
+ var $a = $("<a>"); // jshint ignore:line
51
+ $a.attr("href", data.data.csv);
52
+ $("body").append($a);
53
+ $a.attr("download", data.data.name);
54
+ $a[0].click();
55
+ $a.remove();
56
+ }
57
  break;
58
  case 'print':
59
  $('body').trigger('visualizer:action:specificchart', {action: 'print', id: container, data: data.data.csv});
71
  });
72
  }
73
 
74
+ function s2ab(s) {
75
+ var buf = new ArrayBuffer(s.length);
76
+ var view = new Uint8Array(buf);
77
+ for (var i=0; i !== s.length; ++i) {
78
+ view[i] = s.charCodeAt(i) & 0xFF;
79
+ }
80
+ return buf;
81
+ }
82
+
83
  $(document).ready(function(){
84
  $('body').trigger('visualizer:render:chart:start', visualizer);
85
  initActionsButtons(visualizer);
js/render-google.js CHANGED
@@ -325,8 +325,42 @@ var __visualizer_chart_images = [];
325
  }
326
 
327
  $('body').on('visualizer:render:chart:start', function(event, v){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  objects = {};
329
- google.charts.load("current", {packages: ["corechart", "geochart", "gauge", "table", "timeline"], mapsApiKey: v.map_api_key, 'language' : v.language});
330
  google.charts.setOnLoadCallback(function() {
331
  gv = google.visualization;
332
  all_charts = v.charts;
325
  }
326
 
327
  $('body').on('visualizer:render:chart:start', function(event, v){
328
+ var $chart_types = ['corechart', 'geochart', 'gauge', 'table', 'timeline'];
329
+ if(v.is_front == true){ // jshint ignore:line
330
+ // check what all chart types to load.
331
+ $chart_types = [];
332
+ $.each(v.charts, function(i, c){
333
+ var $type = c.type;
334
+ switch($type){
335
+ case 'bar':
336
+ case 'column':
337
+ case 'line':
338
+ case 'area':
339
+ case 'stepped area':
340
+ case 'bubble':
341
+ case 'pie':
342
+ case 'donut':
343
+ case 'combo':
344
+ case 'candlestick':
345
+ case 'histogram':
346
+ case 'scatter':
347
+ $type = 'corechart';
348
+ break;
349
+ case 'geo':
350
+ $type = 'geochart';
351
+ break;
352
+ case 'dataTable':
353
+ $type = null;
354
+ break;
355
+ }
356
+ if($type != null){
357
+ $chart_types.push($type);
358
+ }
359
+ });
360
+ }
361
+
362
  objects = {};
363
+ google.charts.load("current", {packages: $chart_types, mapsApiKey: v.map_api_key, 'language' : v.language});
364
  google.charts.setOnLoadCallback(function() {
365
  gv = google.visualization;
366
  all_charts = v.charts;
js/simple-editor.js ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global visualizer1 */
2
+
3
+ (function($, v) {
4
+
5
+ $(document).ready(function(){
6
+ onReady();
7
+ initTable();
8
+ });
9
+
10
+ function onReady() {
11
+ $( '#editor-chart-button' ).on( 'click', function(){
12
+ $('.viz-simple-editor-type').hide();
13
+ if($("#simple-editor-type").is(':checked')){
14
+ switch($("#simple-editor-type").val()) {
15
+ case 'textarea':
16
+ showText($(this));
17
+ break;
18
+ }
19
+ } else {
20
+ showTable($(this));
21
+ }
22
+ });
23
+ }
24
+
25
+ function showText(button) {
26
+ if( button.attr( 'data-current' ) === 'chart'){
27
+ button.val( button.attr( 'data-t-editor' ) );
28
+ button.html( button.attr( 'data-t-editor' ) );
29
+ button.attr( 'data-current', 'editor' );
30
+ $('p.simple-editor-type').hide();
31
+ $( '.viz-text-editor' ).css("z-index", "9999").show();
32
+ $( '#canvas' ).css("z-index", "-100").hide();
33
+ $('.viz-simple-editor').css("z-index", "9999").show();
34
+ }else{
35
+ button.val( button.attr( 'data-t-chart' ) );
36
+ button.html( button.attr( 'data-t-chart' ) );
37
+ button.attr( 'data-current', 'chart' );
38
+ $( '.viz-text-editor' ).hide();
39
+ $('p.simple-editor-type').show();
40
+ $( '#canvas' ).css("z-index", "1").show();
41
+ $('.viz-simple-editor').hide();
42
+ }
43
+
44
+ $( '#viz-text-editor-button').on('click', function(e){
45
+ $( '#editor-chart-button' ).attr("disabled", "disabled");
46
+ $('#chart-data').val($('#edited_text').val());
47
+ $('#canvas').lock();
48
+ $('#editor-form').submit();
49
+ $( '#editor-chart-button' ).removeAttr("disabled");
50
+ $( '#editor-chart-button' ).trigger('click');
51
+ });
52
+ }
53
+
54
+ function initTable() {
55
+ setTimeout(function(){
56
+ $('body').trigger('visualizer:db:editor:table:init', {});
57
+ $( '#canvas' ).unlock();
58
+ }, 1000);
59
+
60
+ // when the data is set and the chart is updated, toggle the screen so that the chart is shown
61
+ $('#table-editor-form').on( 'submit', function(e){
62
+ $( '#editor-chart-button' ).trigger('click');
63
+ $('#canvas').lock();
64
+ });
65
+ }
66
+
67
+ function showTable(button) {
68
+ if( button.attr( 'data-current' ) === 'chart'){
69
+ button.val( button.attr( 'data-t-editor' ) );
70
+ button.html( button.attr( 'data-t-editor' ) );
71
+ button.attr( 'data-current', 'editor' );
72
+ $( '.viz-table-editor' ).css("z-index", "9999").show();
73
+ $('body').trigger('visualizer:db:editor:table:redraw', {});
74
+ $( '#canvas' ).css("z-index", "-100").hide();
75
+ $('p.simple-editor-type').hide();
76
+ $('.viz-simple-editor').css("z-index", "9999").show();
77
+ }else{
78
+ button.val( button.attr( 'data-t-chart' ) );
79
+ button.html( button.attr( 'data-t-chart' ) );
80
+ button.attr( 'data-current', 'chart' );
81
+ $( '.viz-table-editor' ).hide();
82
+ $( '#canvas' ).css("z-index", "1").show();
83
+ $('.viz-simple-editor').hide();
84
+ $('p.simple-editor-type').show();
85
+ }
86
+ }
87
+
88
+ })(jQuery, visualizer1);
readme.md CHANGED
@@ -1,8 +1,8 @@
1
- # Visualizer: Tables and Charts Manager for WordPress (Lite) # #
2
  **Contributors:** [codeinwp](https://profiles.wordpress.org/codeinwp), [marius2012](https://profiles.wordpress.org/marius2012), [marius_codeinwp](https://profiles.wordpress.org/marius_codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani), [themeisle](https://profiles.wordpress.org/themeisle), [Madalin_ThemeIsle](https://profiles.wordpress.org/Madalin_ThemeIsle), [contactashish13](https://profiles.wordpress.org/contactashish13)
3
  **Tags:** chart, charts, charting, graph, graphs, graphing, visualisation, visualise data, visualization, visualize data, HTML5, canvas, pie chart, line chart, bar chart, column chart, gauge chart, area chart, scatter chart, candlestick chart, geo chart, google visualization api, data tables
4
  **Requires at least:** 3.5
5
- **Tested up to:** 5.1
6
  **Stable tag:** trunk
7
  **License:** GPL v2.0 or later
8
  **License URI:** http://www.opensource.org/licenses/gpl-license.php
@@ -145,6 +145,15 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
145
  5. Charts library
146
 
147
  ## Changelog ##
 
 
 
 
 
 
 
 
 
148
  ### 3.1.3 - 2019-02-24 ###
149
 
150
  * Fix issue with changing column settings of the last column in table chart
1
+ # Visualizer: Tables and Charts Manager for WordPress # #
2
  **Contributors:** [codeinwp](https://profiles.wordpress.org/codeinwp), [marius2012](https://profiles.wordpress.org/marius2012), [marius_codeinwp](https://profiles.wordpress.org/marius_codeinwp), [hardeepasrani](https://profiles.wordpress.org/hardeepasrani), [themeisle](https://profiles.wordpress.org/themeisle), [Madalin_ThemeIsle](https://profiles.wordpress.org/Madalin_ThemeIsle), [contactashish13](https://profiles.wordpress.org/contactashish13)
3
  **Tags:** chart, charts, charting, graph, graphs, graphing, visualisation, visualise data, visualization, visualize data, HTML5, canvas, pie chart, line chart, bar chart, column chart, gauge chart, area chart, scatter chart, candlestick chart, geo chart, google visualization api, data tables
4
  **Requires at least:** 3.5
5
+ **Tested up to:** 5.2
6
  **Stable tag:** trunk
7
  **License:** GPL v2.0 or later
8
  **License URI:** http://www.opensource.org/licenses/gpl-license.php
145
  5. Charts library
146
 
147
  ## Changelog ##
148
+ ### 3.2.0 - 2019-05-03 ###
149
+
150
+ * Add support for charts in AMP requests
151
+ * Add support to show charts from JSON/REST endpoints
152
+ * Fix loading of Google Visualization javascript files
153
+ * Add simple editors for editing chart data
154
+ * Tested up to WP 5.2
155
+
156
+
157
  ### 3.1.3 - 2019-02-24 ###
158
 
159
  * Fix issue with changing column settings of the last column in table chart
readme.txt CHANGED
@@ -1,8 +1,8 @@
1
- === Visualizer: Tables and Charts Manager for WordPress (Lite) # ===
2
  Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,themeisle,Madalin_ThemeIsle,contactashish13
3
  Tags: chart, charts, charting, graph, graphs, graphing, visualisation, visualise data, visualization, visualize data, HTML5, canvas, pie chart, line chart, bar chart, column chart, gauge chart, area chart, scatter chart, candlestick chart, geo chart, google visualization api, data tables
4
  Requires at least: 3.5
5
- Tested up to: 5.1
6
  Stable tag: trunk
7
  License: GPL v2.0 or later
8
  License URI: http://www.opensource.org/licenses/gpl-license.php
@@ -145,6 +145,15 @@ Pay attention that to turn your shortcodes into graphs, your theme has to have `
145
  5. Charts library
146
 
147
  == Changelog ==
 
 
 
 
 
 
 
 
 
148
  = 3.1.3 - 2019-02-24 =
149
 
150
  * Fix issue with changing column settings of the last column in table chart
1
+ === Visualizer: Tables and Charts Manager for WordPress # ===
2
  Contributors: codeinwp,marius2012,marius_codeinwp,hardeepasrani,themeisle,Madalin_ThemeIsle,contactashish13
3
  Tags: chart, charts, charting, graph, graphs, graphing, visualisation, visualise data, visualization, visualize data, HTML5, canvas, pie chart, line chart, bar chart, column chart, gauge chart, area chart, scatter chart, candlestick chart, geo chart, google visualization api, data tables
4
  Requires at least: 3.5
5
+ Tested up to: 5.2
6
  Stable tag: trunk
7
  License: GPL v2.0 or later
8
  License URI: http://www.opensource.org/licenses/gpl-license.php
145
  5. Charts library
146
 
147
  == Changelog ==
148
+ = 3.2.0 - 2019-05-03 =
149
+
150
+ * Add support for charts in AMP requests
151
+ * Add support to show charts from JSON/REST endpoints
152
+ * Fix loading of Google Visualization javascript files
153
+ * Add simple editors for editing chart data
154
+ * Tested up to WP 5.2
155
+
156
+
157
  = 3.1.3 - 2019-02-24 =
158
 
159
  * Fix issue with changing column settings of the last column in table chart
themeisle-hash.json CHANGED
@@ -1 +1 @@
1
- {"index.php":"7a0c58624116ed52980adffda9f70044"}
1
+ {"index.php":"86952ddd93206360853ef7ad5255d252"}
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitc1e6a297c8a1a1872118a0757f0a7a3c::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit88de9c52a4f97d379b074397f5b1ae49::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInita6c04694096c277063fd3d183fddf7a3::getLoader();
vendor/codeinwp/themeisle-sdk/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  ## [3.0.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.3...v3.0.4) (2019-01-28)
2
 
3
 
1
+ ## [3.0.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.4...v3.0.5) (2019-03-07)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * dashboard widget issues and recommended module inconsistency fix [#50](https://github.com/Codeinwp/themeisle-sdk/issues/50), [#49](https://github.com/Codeinwp/themeisle-sdk/issues/49), [#47](https://github.com/Codeinwp/themeisle-sdk/issues/47) ([757eb02](https://github.com/Codeinwp/themeisle-sdk/commit/757eb02))
7
+
8
  ## [3.0.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.3...v3.0.4) (2019-01-28)
9
 
10
 
vendor/codeinwp/themeisle-sdk/Gruntfile.js DELETED
@@ -1,27 +0,0 @@
1
- module.exports = function (grunt) {
2
- grunt.initConfig(
3
- {
4
- version: {
5
- project: {
6
- src: [
7
- 'package.json'
8
- ]
9
- },
10
- composer: {
11
- src: [
12
- 'composer.json'
13
- ]
14
- },
15
- load_php: {
16
- options: {
17
- prefix: '\\.*\\$themeisle_sdk_version\.*\\s=\.*\\s\''
18
- },
19
- src: [
20
- 'load.php'
21
- ]
22
- },
23
- },
24
- }
25
- );
26
- grunt.loadNpmTasks( 'grunt-version' );
27
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/bin/install-wp-tests.sh DELETED
@@ -1,130 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- if [ $# -lt 3 ]; then
4
- echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version] [skip-database-creation]"
5
- exit 1
6
- fi
7
-
8
- DB_NAME=$1
9
- DB_USER=$2
10
- DB_PASS=$3
11
- DB_HOST=${4-localhost}
12
- WP_VERSION=${5-latest}
13
- SKIP_DB_CREATE=${6-false}
14
-
15
- WP_TESTS_DIR=${WP_TESTS_DIR-/tmp/wordpress-tests-lib}
16
- WP_CORE_DIR=${WP_CORE_DIR-/tmp/wordpress/}
17
-
18
- command_exists() {
19
- type -t "$1" >/dev/null 2>&1
20
- }
21
- download() {
22
- if command_exists "curl"; then
23
- curl -s -o "${2:--}" "$1"
24
- elif command_exists "wget"; then
25
- wget -nv -O "${2:--}" "$1"
26
- fi
27
- }
28
- if [[ $WP_VERSION =~ [0-9]+\.[0-9]+(\.[0-9]+)? ]]; then
29
- WP_TESTS_TAG="tags/$WP_VERSION"
30
- elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
31
- WP_TESTS_TAG="trunk"
32
- else
33
- # http serves a single offer, whereas https serves multiple. we only want one
34
- download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json
35
- grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json
36
- LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//')
37
- if [[ -z "$LATEST_VERSION" ]]; then
38
- echo "Latest WordPress version could not be found"
39
- exit 1
40
- fi
41
- WP_TESTS_TAG="tags/$LATEST_VERSION"
42
- fi
43
-
44
- set -ex
45
-
46
-
47
- install_wp() {
48
-
49
- if [ -d $WP_CORE_DIR ]; then
50
- return;
51
- fi
52
-
53
- mkdir -p $WP_CORE_DIR
54
-
55
- if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
56
- mkdir -p /tmp/wordpress-nightly
57
- download https://wordpress.org/nightly-builds/wordpress-latest.zip /tmp/wordpress-nightly/wordpress-nightly.zip
58
- unzip -q /tmp/wordpress-nightly/wordpress-nightly.zip -d /tmp/wordpress-nightly/
59
- mv /tmp/wordpress-nightly/wordpress/* $WP_CORE_DIR
60
- else
61
- if [ $WP_VERSION == 'latest' ]; then
62
- local ARCHIVE_NAME='latest'
63
- else
64
- local ARCHIVE_NAME="wordpress-$WP_VERSION"
65
- fi
66
- download https://wordpress.org/${ARCHIVE_NAME}.tar.gz /tmp/wordpress.tar.gz
67
- tar --strip-components=1 -zxmf /tmp/wordpress.tar.gz -C $WP_CORE_DIR
68
- fi
69
-
70
- download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php
71
- }
72
-
73
- install_test_suite() {
74
- # portable in-place argument for both GNU sed and Mac OSX sed
75
- if [[ $(uname -s) == 'Darwin' ]]; then
76
- local ioption='-i .bak'
77
- else
78
- local ioption='-i'
79
- fi
80
-
81
- # set up testing suite if it doesn't yet exist
82
- if [ ! -d $WP_TESTS_DIR ]; then
83
- # set up testing suite
84
- mkdir -p $WP_TESTS_DIR
85
- svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes
86
- svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/data/ $WP_TESTS_DIR/data
87
- fi
88
-
89
- if [ ! -f wp-tests-config.php ]; then
90
- download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
91
- # remove all forward slashes in the end
92
- WP_CORE_DIR=$(echo $WP_CORE_DIR | sed "s:/\+$::")
93
- sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR/':" "$WP_TESTS_DIR"/wp-tests-config.php
94
- sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php
95
- sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php
96
- sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php
97
- sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php
98
- fi
99
-
100
- }
101
-
102
- install_db() {
103
-
104
- if [ ${SKIP_DB_CREATE} = "true" ]; then
105
- return 0
106
- fi
107
-
108
- # parse DB_HOST for port or socket references
109
- local PARTS=(${DB_HOST//\:/ })
110
- local DB_HOSTNAME=${PARTS[0]};
111
- local DB_SOCK_OR_PORT=${PARTS[1]};
112
- local EXTRA=""
113
-
114
- if ! [ -z $DB_HOSTNAME ] ; then
115
- if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then
116
- EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
117
- elif ! [ -z $DB_SOCK_OR_PORT ] ; then
118
- EXTRA=" --socket=$DB_SOCK_OR_PORT"
119
- elif ! [ -z $DB_HOSTNAME ] ; then
120
- EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
121
- fi
122
- fi
123
-
124
- # create database
125
- mysql --user="$DB_USER" --password="$DB_PASS"$EXTRA --execute "CREATE DATABASE IF NOT EXISTS $DB_NAME;"
126
- }
127
-
128
- install_wp
129
- install_test_suite
130
- install_db
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/bin/run-unit-tests.sh DELETED
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env bash
2
- composer global require "phpunit/phpunit=4.8.*|5.7.*"
3
- bash bin/install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
4
- phpunit --version
5
- php -v
6
- phpunit || exit 1
7
- WP_MULTISITE=1 phpunit || exit 1
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/composer.json DELETED
@@ -1,30 +0,0 @@
1
- {
2
- "name": "codeinwp/themeisle-sdk",
3
- "description": "ThemeIsle SDK.",
4
- "type": "library",
5
- "keywords": [
6
- "wordpress"
7
- ],
8
- "homepage": "https://github.com/Codeinwp/themeisle-sdk",
9
- "license": "GPL-2.0+",
10
- "authors": [
11
- {
12
- "name": "ThemeIsle team",
13
- "email": "friends@themeisle.com",
14
- "homepage": "https://themeisle.com"
15
- }
16
- ],
17
- "version": "3.0.4",
18
- "require-dev": {
19
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4",
20
- "squizlabs/php_codesniffer": "^3.1",
21
- "wp-coding-standards/wpcs": "^1.0.0"
22
- },
23
- "scripts": {
24
- "format": "phpcbf --standard=phpcs.xml --report-summary --report-source",
25
- "lint": "phpcs --standard=phpcs.xml"
26
- },
27
- "support": {
28
- "issues": "https://github.com/Codeinwp/themeisle-sdk/issues"
29
- }
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/composer.lock DELETED
@@ -1,180 +0,0 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
- "This file is @generated automatically"
6
- ],
7
- "content-hash": "836b37c9484505643ee34c575a736209",
8
- "packages": [],
9
- "packages-dev": [
10
- {
11
- "name": "dealerdirect/phpcodesniffer-composer-installer",
12
- "version": "v0.4.4",
13
- "source": {
14
- "type": "git",
15
- "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
16
- "reference": "2e41850d5f7797cbb1af7b030d245b3b24e63a08"
17
- },
18
- "dist": {
19
- "type": "zip",
20
- "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/2e41850d5f7797cbb1af7b030d245b3b24e63a08",
21
- "reference": "2e41850d5f7797cbb1af7b030d245b3b24e63a08",
22
- "shasum": ""
23
- },
24
- "require": {
25
- "composer-plugin-api": "^1.0",
26
- "php": "^5.3|^7",
27
- "squizlabs/php_codesniffer": "*"
28
- },
29
- "require-dev": {
30
- "composer/composer": "*",
31
- "wimg/php-compatibility": "^8.0"
32
- },
33
- "suggest": {
34
- "dealerdirect/qa-tools": "All the PHP QA tools you'll need"
35
- },
36
- "type": "composer-plugin",
37
- "extra": {
38
- "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
39
- },
40
- "autoload": {
41
- "psr-4": {
42
- "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
43
- }
44
- },
45
- "notification-url": "https://packagist.org/downloads/",
46
- "license": [
47
- "MIT"
48
- ],
49
- "authors": [
50
- {
51
- "name": "Franck Nijhof",
52
- "email": "f.nijhof@dealerdirect.nl",
53
- "homepage": "http://workingatdealerdirect.eu",
54
- "role": "Developer"
55
- }
56
- ],
57
- "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
58
- "homepage": "http://workingatdealerdirect.eu",
59
- "keywords": [
60
- "PHPCodeSniffer",
61
- "PHP_CodeSniffer",
62
- "code quality",
63
- "codesniffer",
64
- "composer",
65
- "installer",
66
- "phpcs",
67
- "plugin",
68
- "qa",
69
- "quality",
70
- "standard",
71
- "standards",
72
- "style guide",
73
- "stylecheck",
74
- "tests"
75
- ],
76
- "time": "2017-12-06T16:27:17+00:00"
77
- },
78
- {
79
- "name": "squizlabs/php_codesniffer",
80
- "version": "3.4.0",
81
- "source": {
82
- "type": "git",
83
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
84
- "reference": "379deb987e26c7cd103a7b387aea178baec96e48"
85
- },
86
- "dist": {
87
- "type": "zip",
88
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/379deb987e26c7cd103a7b387aea178baec96e48",
89
- "reference": "379deb987e26c7cd103a7b387aea178baec96e48",
90
- "shasum": ""
91
- },
92
- "require": {
93
- "ext-simplexml": "*",
94
- "ext-tokenizer": "*",
95
- "ext-xmlwriter": "*",
96
- "php": ">=5.4.0"
97
- },
98
- "require-dev": {
99
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
100
- },
101
- "bin": [
102
- "bin/phpcs",
103
- "bin/phpcbf"
104
- ],
105
- "type": "library",
106
- "extra": {
107
- "branch-alias": {
108
- "dev-master": "3.x-dev"
109
- }
110
- },
111
- "notification-url": "https://packagist.org/downloads/",
112
- "license": [
113
- "BSD-3-Clause"
114
- ],
115
- "authors": [
116
- {
117
- "name": "Greg Sherwood",
118
- "role": "lead"
119
- }
120
- ],
121
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
122
- "homepage": "http://www.squizlabs.com/php-codesniffer",
123
- "keywords": [
124
- "phpcs",
125
- "standards"
126
- ],
127
- "time": "2018-12-19T23:57:18+00:00"
128
- },
129
- {
130
- "name": "wp-coding-standards/wpcs",
131
- "version": "1.2.1",
132
- "source": {
133
- "type": "git",
134
- "url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
135
- "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c"
136
- },
137
- "dist": {
138
- "type": "zip",
139
- "url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
140
- "reference": "f328bcafd97377e8e5e5d7b244d5ddbf301a3a5c",
141
- "shasum": ""
142
- },
143
- "require": {
144
- "php": ">=5.3",
145
- "squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
146
- },
147
- "require-dev": {
148
- "phpcompatibility/php-compatibility": "^9.0"
149
- },
150
- "suggest": {
151
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
152
- },
153
- "type": "phpcodesniffer-standard",
154
- "notification-url": "https://packagist.org/downloads/",
155
- "license": [
156
- "MIT"
157
- ],
158
- "authors": [
159
- {
160
- "name": "Contributors",
161
- "homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
162
- }
163
- ],
164
- "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
165
- "keywords": [
166
- "phpcs",
167
- "standards",
168
- "wordpress"
169
- ],
170
- "time": "2018-12-18T09:43:51+00:00"
171
- }
172
- ],
173
- "aliases": [],
174
- "minimum-stability": "stable",
175
- "stability-flags": [],
176
- "prefer-stable": false,
177
- "prefer-lowest": false,
178
- "platform": [],
179
- "platform-dev": []
180
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  return;
15
  }
16
  // Current SDK version and path.
17
- $themeisle_sdk_version = '3.0.4';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
14
  return;
15
  }
16
  // Current SDK version and path.
17
+ $themeisle_sdk_version = '3.0.5';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
vendor/codeinwp/themeisle-sdk/package-lock.json DELETED
@@ -1,7312 +0,0 @@
1
- {
2
- "name": "themeisle-sdk",
3
- "version": "3.0.3",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "@mrmlnc/readdir-enhanced": {
8
- "version": "2.2.1",
9
- "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
10
- "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
11
- "dev": true,
12
- "requires": {
13
- "call-me-maybe": "^1.0.1",
14
- "glob-to-regexp": "^0.3.0"
15
- }
16
- },
17
- "@nodelib/fs.stat": {
18
- "version": "1.1.3",
19
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
20
- "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
21
- "dev": true
22
- },
23
- "@octokit/endpoint": {
24
- "version": "3.1.1",
25
- "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-3.1.1.tgz",
26
- "integrity": "sha512-KPkoTvKwCTetu/UqonLs1pfwFO5HAqTv/Ksp9y4NAg//ZgUCpvJsT4Hrst85uEzJvkB8+LxKyR4Bfv2X8O4cmQ==",
27
- "dev": true,
28
- "requires": {
29
- "deepmerge": "3.0.0",
30
- "is-plain-object": "^2.0.4",
31
- "universal-user-agent": "^2.0.1",
32
- "url-template": "^2.0.8"
33
- }
34
- },
35
- "@octokit/request": {
36
- "version": "2.2.0",
37
- "resolved": "https://registry.npmjs.org/@octokit/request/-/request-2.2.0.tgz",
38
- "integrity": "sha512-4P9EbwKZ4xfyupVMb3KVuHmM+aO2fye3nufjGKz/qDssvdJj9Rlx44O0FdFvUp4kIzToy3AHLTOulEIDAL+dpg==",
39
- "dev": true,
40
- "requires": {
41
- "@octokit/endpoint": "^3.0.0",
42
- "is-plain-object": "^2.0.4",
43
- "node-fetch": "^2.3.0",
44
- "universal-user-agent": "^2.0.1"
45
- }
46
- },
47
- "@octokit/rest": {
48
- "version": "16.3.0",
49
- "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.3.0.tgz",
50
- "integrity": "sha512-u0HkROLB0nOSfJhkF5FKMg6I12m6cN5S3S73Lwtfgrs9u4LhgUCZN2hC2KDyIaT7nhvNe9Kx0PgxhhD6li6QsA==",
51
- "dev": true,
52
- "requires": {
53
- "@octokit/request": "2.2.0",
54
- "before-after-hook": "^1.2.0",
55
- "btoa-lite": "^1.0.0",
56
- "lodash.get": "^4.4.2",
57
- "lodash.pick": "^4.4.0",
58
- "lodash.set": "^4.3.2",
59
- "lodash.uniq": "^4.5.0",
60
- "octokit-pagination-methods": "^1.1.0",
61
- "universal-user-agent": "^2.0.0",
62
- "url-template": "^2.0.8"
63
- }
64
- },
65
- "@semantic-release/changelog": {
66
- "version": "3.0.1",
67
- "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-3.0.1.tgz",
68
- "integrity": "sha512-N3lWwS3SUQmjBI/IoxwfQwPHAeQgYkvM63nzBpYkp2DXQ9zdLs5ZYpD1oln//wWCKVSIY2tPDs7KD4LVVh6u5Q==",
69
- "dev": true,
70
- "requires": {
71
- "@semantic-release/error": "^2.1.0",
72
- "aggregate-error": "^1.0.0",
73
- "fs-extra": "^7.0.0",
74
- "lodash": "^4.17.4"
75
- }
76
- },
77
- "@semantic-release/commit-analyzer": {
78
- "version": "6.1.0",
79
- "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.1.0.tgz",
80
- "integrity": "sha512-2lb+t6muGenI86mYGpZYOgITx9L3oZYF697tJoqXeQEk0uw0fm+OkkOuDTBA3Oax9ftoNIrCKv9bwgYvxrbM6w==",
81
- "dev": true,
82
- "requires": {
83
- "conventional-changelog-angular": "^5.0.0",
84
- "conventional-commits-filter": "^2.0.0",
85
- "conventional-commits-parser": "^3.0.0",
86
- "debug": "^4.0.0",
87
- "import-from": "^2.1.0",
88
- "lodash": "^4.17.4"
89
- }
90
- },
91
- "@semantic-release/error": {
92
- "version": "2.2.0",
93
- "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz",
94
- "integrity": "sha512-9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==",
95
- "dev": true
96
- },
97
- "@semantic-release/exec": {
98
- "version": "3.3.1",
99
- "resolved": "https://registry.npmjs.org/@semantic-release/exec/-/exec-3.3.1.tgz",
100
- "integrity": "sha512-dyktNa5cpV9TqQjxBIfCJKpDlKyYJ5OzL/04uBr9qUDXcDgaczGip3M/In/Ff/KGZSzkvrx+m96LVpng9+g5Tw==",
101
- "dev": true,
102
- "requires": {
103
- "@semantic-release/error": "^2.1.0",
104
- "aggregate-error": "^1.0.0",
105
- "debug": "^4.0.0",
106
- "execa": "^1.0.0",
107
- "lodash": "^4.17.4",
108
- "parse-json": "^4.0.0"
109
- }
110
- },
111
- "@semantic-release/git": {
112
- "version": "7.0.6",
113
- "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-7.0.6.tgz",
114
- "integrity": "sha512-Uyi/RFBYv8jecMo7vJfjsr9rweJkOPuY6CJOITbOzhHmJjZssVOf7sS+zuqEQQsVzU+PPYIjx86HkIzbve/Evg==",
115
- "dev": true,
116
- "requires": {
117
- "@semantic-release/error": "^2.1.0",
118
- "aggregate-error": "^1.0.0",
119
- "debug": "^4.0.0",
120
- "dir-glob": "^2.0.0",
121
- "execa": "^1.0.0",
122
- "fs-extra": "^7.0.0",
123
- "globby": "^8.0.1",
124
- "lodash": "^4.17.4",
125
- "micromatch": "^3.1.4",
126
- "p-reduce": "^1.0.0"
127
- }
128
- },
129
- "@semantic-release/github": {
130
- "version": "5.2.7",
131
- "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.2.7.tgz",
132
- "integrity": "sha512-cWQhM9bdBv8KAwClmwM64Mo3vsOHVM2aJAGI6K3qbJfJ3GsLJLh1hTi+rMd5EkZ2DA8zUUHCiAJZ3ujMvUB0yg==",
133
- "dev": true,
134
- "requires": {
135
- "@octokit/rest": "^16.0.1",
136
- "@semantic-release/error": "^2.2.0",
137
- "aggregate-error": "^1.0.0",
138
- "bottleneck": "^2.0.1",
139
- "debug": "^4.0.0",
140
- "dir-glob": "^2.0.0",
141
- "fs-extra": "^7.0.0",
142
- "globby": "^8.0.0",
143
- "http-proxy-agent": "^2.1.0",
144
- "https-proxy-agent": "^2.2.1",
145
- "issue-parser": "^3.0.0",
146
- "lodash": "^4.17.4",
147
- "mime": "^2.0.3",
148
- "p-filter": "^1.0.0",
149
- "p-retry": "^3.0.0",
150
- "parse-github-url": "^1.0.1",
151
- "url-join": "^4.0.0"
152
- }
153
- },
154
- "@semantic-release/npm": {
155
- "version": "5.1.2",
156
- "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.2.tgz",
157
- "integrity": "sha512-hAt8Q86jjp0AiykihhZ7vuCFKYz0j8v3W6Jae8b+RCLi8IUofrPF1ZImx3oY0rRu8ZZSb4aU9uxtFmeOYZebjg==",
158
- "dev": true,
159
- "requires": {
160
- "@semantic-release/error": "^2.2.0",
161
- "aggregate-error": "^1.0.0",
162
- "execa": "^1.0.0",
163
- "fs-extra": "^7.0.0",
164
- "lodash": "^4.17.4",
165
- "nerf-dart": "^1.0.0",
166
- "normalize-url": "^4.0.0",
167
- "npm": "^6.3.0",
168
- "rc": "^1.2.8",
169
- "read-pkg": "^4.0.0",
170
- "registry-auth-token": "^3.3.1"
171
- },
172
- "dependencies": {
173
- "read-pkg": {
174
- "version": "4.0.1",
175
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz",
176
- "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=",
177
- "dev": true,
178
- "requires": {
179
- "normalize-package-data": "^2.3.2",
180
- "parse-json": "^4.0.0",
181
- "pify": "^3.0.0"
182
- }
183
- }
184
- }
185
- },
186
- "@semantic-release/release-notes-generator": {
187
- "version": "7.1.4",
188
- "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.1.4.tgz",
189
- "integrity": "sha512-pWPouZujddgb6t61t9iA9G3yIfp3TeQ7bPbV1ixYSeP6L7gI1+Du82fY/OHfEwyifpymLUQW0XnIKgKct5IMMw==",
190
- "dev": true,
191
- "requires": {
192
- "conventional-changelog-angular": "^5.0.0",
193
- "conventional-changelog-writer": "^4.0.0",
194
- "conventional-commits-filter": "^2.0.0",
195
- "conventional-commits-parser": "^3.0.0",
196
- "debug": "^4.0.0",
197
- "get-stream": "^4.0.0",
198
- "import-from": "^2.1.0",
199
- "into-stream": "^4.0.0",
200
- "lodash": "^4.17.4"
201
- }
202
- },
203
- "JSONStream": {
204
- "version": "1.3.5",
205
- "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
206
- "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
207
- "dev": true,
208
- "requires": {
209
- "jsonparse": "^1.2.0",
210
- "through": ">=2.2.7 <3"
211
- }
212
- },
213
- "abbrev": {
214
- "version": "1.1.1",
215
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
216
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
217
- "dev": true
218
- },
219
- "agent-base": {
220
- "version": "4.2.1",
221
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
222
- "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
223
- "dev": true,
224
- "requires": {
225
- "es6-promisify": "^5.0.0"
226
- }
227
- },
228
- "aggregate-error": {
229
- "version": "1.0.0",
230
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-1.0.0.tgz",
231
- "integrity": "sha1-iINE2tAiCnLjr1CQYRf0h3GSX6w=",
232
- "dev": true,
233
- "requires": {
234
- "clean-stack": "^1.0.0",
235
- "indent-string": "^3.0.0"
236
- }
237
- },
238
- "ansi-regex": {
239
- "version": "3.0.0",
240
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
241
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
242
- "dev": true
243
- },
244
- "ansi-styles": {
245
- "version": "3.2.1",
246
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
247
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
248
- "dev": true,
249
- "requires": {
250
- "color-convert": "^1.9.0"
251
- }
252
- },
253
- "ansicolors": {
254
- "version": "0.3.2",
255
- "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
256
- "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
257
- "dev": true
258
- },
259
- "argparse": {
260
- "version": "1.0.10",
261
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
262
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
263
- "dev": true,
264
- "requires": {
265
- "sprintf-js": "~1.0.2"
266
- },
267
- "dependencies": {
268
- "sprintf-js": {
269
- "version": "1.0.3",
270
- "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
271
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
272
- "dev": true
273
- }
274
- }
275
- },
276
- "argv-formatter": {
277
- "version": "1.0.0",
278
- "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz",
279
- "integrity": "sha1-oMoMvCmltz6Dbuvhy/bF4OTrgvk=",
280
- "dev": true
281
- },
282
- "arr-diff": {
283
- "version": "4.0.0",
284
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
285
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
286
- "dev": true
287
- },
288
- "arr-flatten": {
289
- "version": "1.1.0",
290
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
291
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
292
- "dev": true
293
- },
294
- "arr-union": {
295
- "version": "3.1.0",
296
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
297
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
298
- "dev": true
299
- },
300
- "array-find-index": {
301
- "version": "1.0.2",
302
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
303
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
304
- "dev": true
305
- },
306
- "array-ify": {
307
- "version": "1.0.0",
308
- "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
309
- "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=",
310
- "dev": true
311
- },
312
- "array-union": {
313
- "version": "1.0.2",
314
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
315
- "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
316
- "dev": true,
317
- "requires": {
318
- "array-uniq": "^1.0.1"
319
- }
320
- },
321
- "array-uniq": {
322
- "version": "1.0.3",
323
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
324
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
325
- "dev": true
326
- },
327
- "array-unique": {
328
- "version": "0.3.2",
329
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
330
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
331
- "dev": true
332
- },
333
- "arrify": {
334
- "version": "1.0.1",
335
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
336
- "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
337
- "dev": true
338
- },
339
- "assign-symbols": {
340
- "version": "1.0.0",
341
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
342
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
343
- "dev": true
344
- },
345
- "async": {
346
- "version": "1.5.2",
347
- "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
348
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
349
- "dev": true
350
- },
351
- "atob": {
352
- "version": "2.1.2",
353
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
354
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
355
- "dev": true
356
- },
357
- "balanced-match": {
358
- "version": "1.0.0",
359
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
360
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
361
- "dev": true
362
- },
363
- "base": {
364
- "version": "0.11.2",
365
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
366
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
367
- "dev": true,
368
- "requires": {
369
- "cache-base": "^1.0.1",
370
- "class-utils": "^0.3.5",
371
- "component-emitter": "^1.2.1",
372
- "define-property": "^1.0.0",
373
- "isobject": "^3.0.1",
374
- "mixin-deep": "^1.2.0",
375
- "pascalcase": "^0.1.1"
376
- },
377
- "dependencies": {
378
- "define-property": {
379
- "version": "1.0.0",
380
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
381
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
382
- "dev": true,
383
- "requires": {
384
- "is-descriptor": "^1.0.0"
385
- }
386
- },
387
- "is-accessor-descriptor": {
388
- "version": "1.0.0",
389
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
390
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
391
- "dev": true,
392
- "requires": {
393
- "kind-of": "^6.0.0"
394
- }
395
- },
396
- "is-data-descriptor": {
397
- "version": "1.0.0",
398
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
399
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
400
- "dev": true,
401
- "requires": {
402
- "kind-of": "^6.0.0"
403
- }
404
- },
405
- "is-descriptor": {
406
- "version": "1.0.2",
407
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
408
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
409
- "dev": true,
410
- "requires": {
411
- "is-accessor-descriptor": "^1.0.0",
412
- "is-data-descriptor": "^1.0.0",
413
- "kind-of": "^6.0.2"
414
- }
415
- }
416
- }
417
- },
418
- "before-after-hook": {
419
- "version": "1.2.0",
420
- "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.2.0.tgz",
421
- "integrity": "sha512-wI3QtdLppHNkmM1VgRVLCrlWCKk/YexlPicYbXPs4eYdd1InrUCTFsx5bX1iUQzzMsoRXXPpM1r+p7JEJJydag==",
422
- "dev": true
423
- },
424
- "bottleneck": {
425
- "version": "2.14.0",
426
- "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.14.0.tgz",
427
- "integrity": "sha512-hM5zQPPpIe2/pn8rornETr2x7/HOBGJ5u1RW1js6zvE5453bRMMbtbZl0ojB8yNj7w2xNWddpNukrhOikHb7BQ==",
428
- "dev": true
429
- },
430
- "brace-expansion": {
431
- "version": "1.1.11",
432
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
433
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
434
- "dev": true,
435
- "requires": {
436
- "balanced-match": "^1.0.0",
437
- "concat-map": "0.0.1"
438
- }
439
- },
440
- "braces": {
441
- "version": "2.3.2",
442
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
443
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
444
- "dev": true,
445
- "requires": {
446
- "arr-flatten": "^1.1.0",
447
- "array-unique": "^0.3.2",
448
- "extend-shallow": "^2.0.1",
449
- "fill-range": "^4.0.0",
450
- "isobject": "^3.0.1",
451
- "repeat-element": "^1.1.2",
452
- "snapdragon": "^0.8.1",
453
- "snapdragon-node": "^2.0.1",
454
- "split-string": "^3.0.2",
455
- "to-regex": "^3.0.1"
456
- },
457
- "dependencies": {
458
- "extend-shallow": {
459
- "version": "2.0.1",
460
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
461
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
462
- "dev": true,
463
- "requires": {
464
- "is-extendable": "^0.1.0"
465
- }
466
- }
467
- }
468
- },
469
- "btoa-lite": {
470
- "version": "1.0.0",
471
- "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz",
472
- "integrity": "sha1-M3dm2hWAEhD92VbCLpxokaudAzc=",
473
- "dev": true
474
- },
475
- "builtin-modules": {
476
- "version": "1.1.1",
477
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
478
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
479
- "dev": true
480
- },
481
- "cache-base": {
482
- "version": "1.0.1",
483
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
484
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
485
- "dev": true,
486
- "requires": {
487
- "collection-visit": "^1.0.0",
488
- "component-emitter": "^1.2.1",
489
- "get-value": "^2.0.6",
490
- "has-value": "^1.0.0",
491
- "isobject": "^3.0.1",
492
- "set-value": "^2.0.0",
493
- "to-object-path": "^0.3.0",
494
- "union-value": "^1.0.0",
495
- "unset-value": "^1.0.0"
496
- }
497
- },
498
- "call-me-maybe": {
499
- "version": "1.0.1",
500
- "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
501
- "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
502
- "dev": true
503
- },
504
- "caller-callsite": {
505
- "version": "2.0.0",
506
- "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
507
- "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
508
- "dev": true,
509
- "requires": {
510
- "callsites": "^2.0.0"
511
- }
512
- },
513
- "caller-path": {
514
- "version": "2.0.0",
515
- "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
516
- "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
517
- "dev": true,
518
- "requires": {
519
- "caller-callsite": "^2.0.0"
520
- }
521
- },
522
- "callsites": {
523
- "version": "2.0.0",
524
- "resolved": "http://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
525
- "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
526
- "dev": true
527
- },
528
- "camelcase": {
529
- "version": "2.1.1",
530
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
531
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
532
- "dev": true
533
- },
534
- "camelcase-keys": {
535
- "version": "2.1.0",
536
- "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
537
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
538
- "dev": true,
539
- "requires": {
540
- "camelcase": "^2.0.0",
541
- "map-obj": "^1.0.0"
542
- }
543
- },
544
- "cardinal": {
545
- "version": "2.1.1",
546
- "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
547
- "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=",
548
- "dev": true,
549
- "requires": {
550
- "ansicolors": "~0.3.2",
551
- "redeyed": "~2.1.0"
552
- }
553
- },
554
- "chalk": {
555
- "version": "2.4.1",
556
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
557
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
558
- "dev": true,
559
- "requires": {
560
- "ansi-styles": "^3.2.1",
561
- "escape-string-regexp": "^1.0.5",
562
- "supports-color": "^5.3.0"
563
- }
564
- },
565
- "class-utils": {
566
- "version": "0.3.6",
567
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
568
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
569
- "dev": true,
570
- "requires": {
571
- "arr-union": "^3.1.0",
572
- "define-property": "^0.2.5",
573
- "isobject": "^3.0.0",
574
- "static-extend": "^0.1.1"
575
- },
576
- "dependencies": {
577
- "define-property": {
578
- "version": "0.2.5",
579
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
580
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
581
- "dev": true,
582
- "requires": {
583
- "is-descriptor": "^0.1.0"
584
- }
585
- }
586
- }
587
- },
588
- "clean-stack": {
589
- "version": "1.3.0",
590
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz",
591
- "integrity": "sha1-noIVAa6XmYbEax1m0tQy2y/UrjE=",
592
- "dev": true
593
- },
594
- "cli-table": {
595
- "version": "0.3.1",
596
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz",
597
- "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=",
598
- "dev": true,
599
- "requires": {
600
- "colors": "1.0.3"
601
- },
602
- "dependencies": {
603
- "colors": {
604
- "version": "1.0.3",
605
- "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
606
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
607
- "dev": true
608
- }
609
- }
610
- },
611
- "cliui": {
612
- "version": "4.1.0",
613
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
614
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
615
- "dev": true,
616
- "requires": {
617
- "string-width": "^2.1.1",
618
- "strip-ansi": "^4.0.0",
619
- "wrap-ansi": "^2.0.0"
620
- }
621
- },
622
- "code-point-at": {
623
- "version": "1.1.0",
624
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
625
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
626
- "dev": true
627
- },
628
- "coffeescript": {
629
- "version": "1.10.0",
630
- "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
631
- "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
632
- "dev": true
633
- },
634
- "collection-visit": {
635
- "version": "1.0.0",
636
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
637
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
638
- "dev": true,
639
- "requires": {
640
- "map-visit": "^1.0.0",
641
- "object-visit": "^1.0.0"
642
- }
643
- },
644
- "color-convert": {
645
- "version": "1.9.3",
646
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
647
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
648
- "dev": true,
649
- "requires": {
650
- "color-name": "1.1.3"
651
- }
652
- },
653
- "color-name": {
654
- "version": "1.1.3",
655
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
656
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
657
- "dev": true
658
- },
659
- "colors": {
660
- "version": "1.1.2",
661
- "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
662
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
663
- "dev": true
664
- },
665
- "commander": {
666
- "version": "2.17.1",
667
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
668
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
669
- "dev": true,
670
- "optional": true
671
- },
672
- "compare-func": {
673
- "version": "1.3.2",
674
- "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
675
- "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=",
676
- "dev": true,
677
- "requires": {
678
- "array-ify": "^1.0.0",
679
- "dot-prop": "^3.0.0"
680
- }
681
- },
682
- "component-emitter": {
683
- "version": "1.2.1",
684
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
685
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
686
- "dev": true
687
- },
688
- "concat-map": {
689
- "version": "0.0.1",
690
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
691
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
692
- "dev": true
693
- },
694
- "conventional-changelog-angular": {
695
- "version": "5.0.2",
696
- "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.2.tgz",
697
- "integrity": "sha512-yx7m7lVrXmt4nKWQgWZqxSALEiAKZhOAcbxdUaU9575mB0CzXVbgrgpfSnSP7OqWDUTYGD0YVJ0MSRdyOPgAwA==",
698
- "dev": true,
699
- "requires": {
700
- "compare-func": "^1.3.1",
701
- "q": "^1.5.1"
702
- }
703
- },
704
- "conventional-changelog-writer": {
705
- "version": "4.0.2",
706
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.2.tgz",
707
- "integrity": "sha512-d8/FQY/fix2xXEBUhOo8u3DCbyEw3UOQgYHxLsPDw+wHUDma/GQGAGsGtoH876WyNs32fViHmTOUrgRKVLvBug==",
708
- "dev": true,
709
- "requires": {
710
- "compare-func": "^1.3.1",
711
- "conventional-commits-filter": "^2.0.1",
712
- "dateformat": "^3.0.0",
713
- "handlebars": "^4.0.2",
714
- "json-stringify-safe": "^5.0.1",
715
- "lodash": "^4.2.1",
716
- "meow": "^4.0.0",
717
- "semver": "^5.5.0",
718
- "split": "^1.0.0",
719
- "through2": "^2.0.0"
720
- },
721
- "dependencies": {
722
- "camelcase": {
723
- "version": "4.1.0",
724
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
725
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
726
- "dev": true
727
- },
728
- "camelcase-keys": {
729
- "version": "4.2.0",
730
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
731
- "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
732
- "dev": true,
733
- "requires": {
734
- "camelcase": "^4.1.0",
735
- "map-obj": "^2.0.0",
736
- "quick-lru": "^1.0.0"
737
- }
738
- },
739
- "dateformat": {
740
- "version": "3.0.3",
741
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
742
- "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
743
- "dev": true
744
- },
745
- "find-up": {
746
- "version": "2.1.0",
747
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
748
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
749
- "dev": true,
750
- "requires": {
751
- "locate-path": "^2.0.0"
752
- }
753
- },
754
- "load-json-file": {
755
- "version": "4.0.0",
756
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
757
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
758
- "dev": true,
759
- "requires": {
760
- "graceful-fs": "^4.1.2",
761
- "parse-json": "^4.0.0",
762
- "pify": "^3.0.0",
763
- "strip-bom": "^3.0.0"
764
- }
765
- },
766
- "map-obj": {
767
- "version": "2.0.0",
768
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
769
- "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
770
- "dev": true
771
- },
772
- "meow": {
773
- "version": "4.0.1",
774
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
775
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
776
- "dev": true,
777
- "requires": {
778
- "camelcase-keys": "^4.0.0",
779
- "decamelize-keys": "^1.0.0",
780
- "loud-rejection": "^1.0.0",
781
- "minimist": "^1.1.3",
782
- "minimist-options": "^3.0.1",
783
- "normalize-package-data": "^2.3.4",
784
- "read-pkg-up": "^3.0.0",
785
- "redent": "^2.0.0",
786
- "trim-newlines": "^2.0.0"
787
- }
788
- },
789
- "read-pkg": {
790
- "version": "3.0.0",
791
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
792
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
793
- "dev": true,
794
- "requires": {
795
- "load-json-file": "^4.0.0",
796
- "normalize-package-data": "^2.3.2",
797
- "path-type": "^3.0.0"
798
- }
799
- },
800
- "read-pkg-up": {
801
- "version": "3.0.0",
802
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
803
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
804
- "dev": true,
805
- "requires": {
806
- "find-up": "^2.0.0",
807
- "read-pkg": "^3.0.0"
808
- }
809
- },
810
- "redent": {
811
- "version": "2.0.0",
812
- "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
813
- "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
814
- "dev": true,
815
- "requires": {
816
- "indent-string": "^3.0.0",
817
- "strip-indent": "^2.0.0"
818
- }
819
- },
820
- "strip-bom": {
821
- "version": "3.0.0",
822
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
823
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
824
- "dev": true
825
- },
826
- "strip-indent": {
827
- "version": "2.0.0",
828
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
829
- "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
830
- "dev": true
831
- },
832
- "trim-newlines": {
833
- "version": "2.0.0",
834
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
835
- "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
836
- "dev": true
837
- }
838
- }
839
- },
840
- "conventional-commits-filter": {
841
- "version": "2.0.1",
842
- "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz",
843
- "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==",
844
- "dev": true,
845
- "requires": {
846
- "is-subset": "^0.1.1",
847
- "modify-values": "^1.0.0"
848
- }
849
- },
850
- "conventional-commits-parser": {
851
- "version": "3.0.1",
852
- "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz",
853
- "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==",
854
- "dev": true,
855
- "requires": {
856
- "JSONStream": "^1.0.4",
857
- "is-text-path": "^1.0.0",
858
- "lodash": "^4.2.1",
859
- "meow": "^4.0.0",
860
- "split2": "^2.0.0",
861
- "through2": "^2.0.0",
862
- "trim-off-newlines": "^1.0.0"
863
- },
864
- "dependencies": {
865
- "camelcase": {
866
- "version": "4.1.0",
867
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
868
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
869
- "dev": true
870
- },
871
- "camelcase-keys": {
872
- "version": "4.2.0",
873
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
874
- "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
875
- "dev": true,
876
- "requires": {
877
- "camelcase": "^4.1.0",
878
- "map-obj": "^2.0.0",
879
- "quick-lru": "^1.0.0"
880
- }
881
- },
882
- "find-up": {
883
- "version": "2.1.0",
884
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
885
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
886
- "dev": true,
887
- "requires": {
888
- "locate-path": "^2.0.0"
889
- }
890
- },
891
- "load-json-file": {
892
- "version": "4.0.0",
893
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
894
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
895
- "dev": true,
896
- "requires": {
897
- "graceful-fs": "^4.1.2",
898
- "parse-json": "^4.0.0",
899
- "pify": "^3.0.0",
900
- "strip-bom": "^3.0.0"
901
- }
902
- },
903
- "map-obj": {
904
- "version": "2.0.0",
905
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
906
- "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
907
- "dev": true
908
- },
909
- "meow": {
910
- "version": "4.0.1",
911
- "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz",
912
- "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==",
913
- "dev": true,
914
- "requires": {
915
- "camelcase-keys": "^4.0.0",
916
- "decamelize-keys": "^1.0.0",
917
- "loud-rejection": "^1.0.0",
918
- "minimist": "^1.1.3",
919
- "minimist-options": "^3.0.1",
920
- "normalize-package-data": "^2.3.4",
921
- "read-pkg-up": "^3.0.0",
922
- "redent": "^2.0.0",
923
- "trim-newlines": "^2.0.0"
924
- }
925
- },
926
- "read-pkg": {
927
- "version": "3.0.0",
928
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
929
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
930
- "dev": true,
931
- "requires": {
932
- "load-json-file": "^4.0.0",
933
- "normalize-package-data": "^2.3.2",
934
- "path-type": "^3.0.0"
935
- }
936
- },
937
- "read-pkg-up": {
938
- "version": "3.0.0",
939
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
940
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
941
- "dev": true,
942
- "requires": {
943
- "find-up": "^2.0.0",
944
- "read-pkg": "^3.0.0"
945
- }
946
- },
947
- "redent": {
948
- "version": "2.0.0",
949
- "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
950
- "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
951
- "dev": true,
952
- "requires": {
953
- "indent-string": "^3.0.0",
954
- "strip-indent": "^2.0.0"
955
- }
956
- },
957
- "strip-bom": {
958
- "version": "3.0.0",
959
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
960
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
961
- "dev": true
962
- },
963
- "strip-indent": {
964
- "version": "2.0.0",
965
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
966
- "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
967
- "dev": true
968
- },
969
- "trim-newlines": {
970
- "version": "2.0.0",
971
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
972
- "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
973
- "dev": true
974
- }
975
- }
976
- },
977
- "copy-descriptor": {
978
- "version": "0.1.1",
979
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
980
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
981
- "dev": true
982
- },
983
- "core-util-is": {
984
- "version": "1.0.2",
985
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
986
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
987
- "dev": true
988
- },
989
- "cosmiconfig": {
990
- "version": "5.0.7",
991
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.7.tgz",
992
- "integrity": "sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==",
993
- "dev": true,
994
- "requires": {
995
- "import-fresh": "^2.0.0",
996
- "is-directory": "^0.3.1",
997
- "js-yaml": "^3.9.0",
998
- "parse-json": "^4.0.0"
999
- },
1000
- "dependencies": {
1001
- "esprima": {
1002
- "version": "4.0.1",
1003
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1004
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1005
- "dev": true
1006
- },
1007
- "js-yaml": {
1008
- "version": "3.12.0",
1009
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
1010
- "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
1011
- "dev": true,
1012
- "requires": {
1013
- "argparse": "^1.0.7",
1014
- "esprima": "^4.0.0"
1015
- }
1016
- }
1017
- }
1018
- },
1019
- "cross-spawn": {
1020
- "version": "6.0.5",
1021
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1022
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1023
- "dev": true,
1024
- "requires": {
1025
- "nice-try": "^1.0.4",
1026
- "path-key": "^2.0.1",
1027
- "semver": "^5.5.0",
1028
- "shebang-command": "^1.2.0",
1029
- "which": "^1.2.9"
1030
- }
1031
- },
1032
- "currently-unhandled": {
1033
- "version": "0.4.1",
1034
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
1035
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
1036
- "dev": true,
1037
- "requires": {
1038
- "array-find-index": "^1.0.1"
1039
- }
1040
- },
1041
- "dateformat": {
1042
- "version": "1.0.12",
1043
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
1044
- "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
1045
- "dev": true,
1046
- "requires": {
1047
- "get-stdin": "^4.0.1",
1048
- "meow": "^3.3.0"
1049
- }
1050
- },
1051
- "debug": {
1052
- "version": "4.1.0",
1053
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
1054
- "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
1055
- "dev": true,
1056
- "requires": {
1057
- "ms": "^2.1.1"
1058
- }
1059
- },
1060
- "decamelize": {
1061
- "version": "1.2.0",
1062
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1063
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
1064
- "dev": true
1065
- },
1066
- "decamelize-keys": {
1067
- "version": "1.1.0",
1068
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
1069
- "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
1070
- "dev": true,
1071
- "requires": {
1072
- "decamelize": "^1.1.0",
1073
- "map-obj": "^1.0.0"
1074
- }
1075
- },
1076
- "decode-uri-component": {
1077
- "version": "0.2.0",
1078
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
1079
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
1080
- "dev": true
1081
- },
1082
- "deep-extend": {
1083
- "version": "0.6.0",
1084
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
1085
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
1086
- "dev": true
1087
- },
1088
- "deepmerge": {
1089
- "version": "3.0.0",
1090
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.0.0.tgz",
1091
- "integrity": "sha512-a8z8bkgHsAML+uHLqmMS83HHlpy3PvZOOuiTQqaa3wu8ZVg3h0hqHk6aCsGdOnZV2XMM/FRimNGjUh0KCcmHBw==",
1092
- "dev": true
1093
- },
1094
- "define-property": {
1095
- "version": "2.0.2",
1096
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
1097
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
1098
- "dev": true,
1099
- "requires": {
1100
- "is-descriptor": "^1.0.2",
1101
- "isobject": "^3.0.1"
1102
- },
1103
- "dependencies": {
1104
- "is-accessor-descriptor": {
1105
- "version": "1.0.0",
1106
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1107
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1108
- "dev": true,
1109
- "requires": {
1110
- "kind-of": "^6.0.0"
1111
- }
1112
- },
1113
- "is-data-descriptor": {
1114
- "version": "1.0.0",
1115
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1116
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1117
- "dev": true,
1118
- "requires": {
1119
- "kind-of": "^6.0.0"
1120
- }
1121
- },
1122
- "is-descriptor": {
1123
- "version": "1.0.2",
1124
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1125
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1126
- "dev": true,
1127
- "requires": {
1128
- "is-accessor-descriptor": "^1.0.0",
1129
- "is-data-descriptor": "^1.0.0",
1130
- "kind-of": "^6.0.2"
1131
- }
1132
- }
1133
- }
1134
- },
1135
- "dir-glob": {
1136
- "version": "2.0.0",
1137
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
1138
- "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
1139
- "dev": true,
1140
- "requires": {
1141
- "arrify": "^1.0.1",
1142
- "path-type": "^3.0.0"
1143
- }
1144
- },
1145
- "dot-prop": {
1146
- "version": "3.0.0",
1147
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz",
1148
- "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=",
1149
- "dev": true,
1150
- "requires": {
1151
- "is-obj": "^1.0.0"
1152
- }
1153
- },
1154
- "duplexer2": {
1155
- "version": "0.1.4",
1156
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
1157
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
1158
- "dev": true,
1159
- "requires": {
1160
- "readable-stream": "^2.0.2"
1161
- }
1162
- },
1163
- "end-of-stream": {
1164
- "version": "1.4.1",
1165
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
1166
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
1167
- "dev": true,
1168
- "requires": {
1169
- "once": "^1.4.0"
1170
- }
1171
- },
1172
- "env-ci": {
1173
- "version": "3.1.3",
1174
- "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-3.1.3.tgz",
1175
- "integrity": "sha512-4NudFu3oUCNprsGkt/LmvqAwJlzX9QT8289AavXiDH1pBJuEd4n0ty98yUOWN3uFtjOhOGrmt1/FDKFxCewejw==",
1176
- "dev": true,
1177
- "requires": {
1178
- "execa": "^1.0.0",
1179
- "java-properties": "^0.2.9"
1180
- }
1181
- },
1182
- "error-ex": {
1183
- "version": "1.3.2",
1184
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1185
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1186
- "dev": true,
1187
- "requires": {
1188
- "is-arrayish": "^0.2.1"
1189
- }
1190
- },
1191
- "es6-promise": {
1192
- "version": "4.2.5",
1193
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
1194
- "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
1195
- "dev": true
1196
- },
1197
- "es6-promisify": {
1198
- "version": "5.0.0",
1199
- "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
1200
- "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
1201
- "dev": true,
1202
- "requires": {
1203
- "es6-promise": "^4.0.3"
1204
- }
1205
- },
1206
- "escape-string-regexp": {
1207
- "version": "1.0.5",
1208
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1209
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1210
- "dev": true
1211
- },
1212
- "esprima": {
1213
- "version": "2.7.3",
1214
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
1215
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
1216
- "dev": true
1217
- },
1218
- "eventemitter2": {
1219
- "version": "0.4.14",
1220
- "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
1221
- "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
1222
- "dev": true
1223
- },
1224
- "execa": {
1225
- "version": "1.0.0",
1226
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
1227
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
1228
- "dev": true,
1229
- "requires": {
1230
- "cross-spawn": "^6.0.0",
1231
- "get-stream": "^4.0.0",
1232
- "is-stream": "^1.1.0",
1233
- "npm-run-path": "^2.0.0",
1234
- "p-finally": "^1.0.0",
1235
- "signal-exit": "^3.0.0",
1236
- "strip-eof": "^1.0.0"
1237
- }
1238
- },
1239
- "exit": {
1240
- "version": "0.1.2",
1241
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
1242
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
1243
- "dev": true
1244
- },
1245
- "expand-brackets": {
1246
- "version": "2.1.4",
1247
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1248
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1249
- "dev": true,
1250
- "requires": {
1251
- "debug": "^2.3.3",
1252
- "define-property": "^0.2.5",
1253
- "extend-shallow": "^2.0.1",
1254
- "posix-character-classes": "^0.1.0",
1255
- "regex-not": "^1.0.0",
1256
- "snapdragon": "^0.8.1",
1257
- "to-regex": "^3.0.1"
1258
- },
1259
- "dependencies": {
1260
- "debug": {
1261
- "version": "2.6.9",
1262
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1263
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1264
- "dev": true,
1265
- "requires": {
1266
- "ms": "2.0.0"
1267
- }
1268
- },
1269
- "define-property": {
1270
- "version": "0.2.5",
1271
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1272
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1273
- "dev": true,
1274
- "requires": {
1275
- "is-descriptor": "^0.1.0"
1276
- }
1277
- },
1278
- "extend-shallow": {
1279
- "version": "2.0.1",
1280
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1281
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1282
- "dev": true,
1283
- "requires": {
1284
- "is-extendable": "^0.1.0"
1285
- }
1286
- },
1287
- "ms": {
1288
- "version": "2.0.0",
1289
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1290
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1291
- "dev": true
1292
- }
1293
- }
1294
- },
1295
- "extend-shallow": {
1296
- "version": "3.0.2",
1297
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1298
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1299
- "dev": true,
1300
- "requires": {
1301
- "assign-symbols": "^1.0.0",
1302
- "is-extendable": "^1.0.1"
1303
- },
1304
- "dependencies": {
1305
- "is-extendable": {
1306
- "version": "1.0.1",
1307
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1308
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1309
- "dev": true,
1310
- "requires": {
1311
- "is-plain-object": "^2.0.4"
1312
- }
1313
- }
1314
- }
1315
- },
1316
- "extglob": {
1317
- "version": "2.0.4",
1318
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
1319
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
1320
- "dev": true,
1321
- "requires": {
1322
- "array-unique": "^0.3.2",
1323
- "define-property": "^1.0.0",
1324
- "expand-brackets": "^2.1.4",
1325
- "extend-shallow": "^2.0.1",
1326
- "fragment-cache": "^0.2.1",
1327
- "regex-not": "^1.0.0",
1328
- "snapdragon": "^0.8.1",
1329
- "to-regex": "^3.0.1"
1330
- },
1331
- "dependencies": {
1332
- "define-property": {
1333
- "version": "1.0.0",
1334
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1335
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1336
- "dev": true,
1337
- "requires": {
1338
- "is-descriptor": "^1.0.0"
1339
- }
1340
- },
1341
- "extend-shallow": {
1342
- "version": "2.0.1",
1343
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1344
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1345
- "dev": true,
1346
- "requires": {
1347
- "is-extendable": "^0.1.0"
1348
- }
1349
- },
1350
- "is-accessor-descriptor": {
1351
- "version": "1.0.0",
1352
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1353
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1354
- "dev": true,
1355
- "requires": {
1356
- "kind-of": "^6.0.0"
1357
- }
1358
- },
1359
- "is-data-descriptor": {
1360
- "version": "1.0.0",
1361
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1362
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1363
- "dev": true,
1364
- "requires": {
1365
- "kind-of": "^6.0.0"
1366
- }
1367
- },
1368
- "is-descriptor": {
1369
- "version": "1.0.2",
1370
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1371
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1372
- "dev": true,
1373
- "requires": {
1374
- "is-accessor-descriptor": "^1.0.0",
1375
- "is-data-descriptor": "^1.0.0",
1376
- "kind-of": "^6.0.2"
1377
- }
1378
- }
1379
- }
1380
- },
1381
- "fast-glob": {
1382
- "version": "2.2.4",
1383
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.4.tgz",
1384
- "integrity": "sha512-FjK2nCGI/McyzgNtTESqaWP3trPvHyRyoyY70hxjc3oKPNmDe8taohLZpoVKoUjW85tbU5txaYUZCNtVzygl1g==",
1385
- "dev": true,
1386
- "requires": {
1387
- "@mrmlnc/readdir-enhanced": "^2.2.1",
1388
- "@nodelib/fs.stat": "^1.1.2",
1389
- "glob-parent": "^3.1.0",
1390
- "is-glob": "^4.0.0",
1391
- "merge2": "^1.2.3",
1392
- "micromatch": "^3.1.10"
1393
- }
1394
- },
1395
- "figures": {
1396
- "version": "2.0.0",
1397
- "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
1398
- "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
1399
- "dev": true,
1400
- "requires": {
1401
- "escape-string-regexp": "^1.0.5"
1402
- }
1403
- },
1404
- "fill-range": {
1405
- "version": "4.0.0",
1406
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
1407
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
1408
- "dev": true,
1409
- "requires": {
1410
- "extend-shallow": "^2.0.1",
1411
- "is-number": "^3.0.0",
1412
- "repeat-string": "^1.6.1",
1413
- "to-regex-range": "^2.1.0"
1414
- },
1415
- "dependencies": {
1416
- "extend-shallow": {
1417
- "version": "2.0.1",
1418
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1419
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1420
- "dev": true,
1421
- "requires": {
1422
- "is-extendable": "^0.1.0"
1423
- }
1424
- }
1425
- }
1426
- },
1427
- "find-up": {
1428
- "version": "1.1.2",
1429
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1430
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1431
- "dev": true,
1432
- "requires": {
1433
- "path-exists": "^2.0.0",
1434
- "pinkie-promise": "^2.0.0"
1435
- }
1436
- },
1437
- "find-versions": {
1438
- "version": "3.0.0",
1439
- "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.0.0.tgz",
1440
- "integrity": "sha512-IUvtItVFNmTtKoB0PRfbkR0zR9XMG5rWNO3qI1S8L0zdv+v2gqzM0pAunloxqbqAfT8w7bg8n/5gHzTXte8H5A==",
1441
- "dev": true,
1442
- "requires": {
1443
- "array-uniq": "^2.0.0",
1444
- "semver-regex": "^2.0.0"
1445
- },
1446
- "dependencies": {
1447
- "array-uniq": {
1448
- "version": "2.0.0",
1449
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.0.0.tgz",
1450
- "integrity": "sha512-O3QZEr+3wDj7otzF7PjNGs6CA3qmYMLvt5xGkjY/V0VxS+ovvqVo/5wKM/OVOAyuX4DTh9H31zE/yKtO66hTkg==",
1451
- "dev": true
1452
- }
1453
- }
1454
- },
1455
- "findup-sync": {
1456
- "version": "0.3.0",
1457
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
1458
- "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
1459
- "dev": true,
1460
- "requires": {
1461
- "glob": "~5.0.0"
1462
- },
1463
- "dependencies": {
1464
- "glob": {
1465
- "version": "5.0.15",
1466
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
1467
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
1468
- "dev": true,
1469
- "requires": {
1470
- "inflight": "^1.0.4",
1471
- "inherits": "2",
1472
- "minimatch": "2 || 3",
1473
- "once": "^1.3.0",
1474
- "path-is-absolute": "^1.0.0"
1475
- }
1476
- }
1477
- }
1478
- },
1479
- "for-in": {
1480
- "version": "1.0.2",
1481
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
1482
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
1483
- "dev": true
1484
- },
1485
- "fragment-cache": {
1486
- "version": "0.2.1",
1487
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
1488
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
1489
- "dev": true,
1490
- "requires": {
1491
- "map-cache": "^0.2.2"
1492
- }
1493
- },
1494
- "from2": {
1495
- "version": "2.3.0",
1496
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
1497
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
1498
- "dev": true,
1499
- "requires": {
1500
- "inherits": "^2.0.1",
1501
- "readable-stream": "^2.0.0"
1502
- }
1503
- },
1504
- "fs-extra": {
1505
- "version": "7.0.1",
1506
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
1507
- "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
1508
- "dev": true,
1509
- "requires": {
1510
- "graceful-fs": "^4.1.2",
1511
- "jsonfile": "^4.0.0",
1512
- "universalify": "^0.1.0"
1513
- }
1514
- },
1515
- "fs.realpath": {
1516
- "version": "1.0.0",
1517
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1518
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1519
- "dev": true
1520
- },
1521
- "get-caller-file": {
1522
- "version": "1.0.3",
1523
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
1524
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
1525
- "dev": true
1526
- },
1527
- "get-stdin": {
1528
- "version": "4.0.1",
1529
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1530
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1531
- "dev": true
1532
- },
1533
- "get-stream": {
1534
- "version": "4.1.0",
1535
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
1536
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
1537
- "dev": true,
1538
- "requires": {
1539
- "pump": "^3.0.0"
1540
- }
1541
- },
1542
- "get-value": {
1543
- "version": "2.0.6",
1544
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1545
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1546
- "dev": true
1547
- },
1548
- "getobject": {
1549
- "version": "0.1.0",
1550
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
1551
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
1552
- "dev": true
1553
- },
1554
- "git-log-parser": {
1555
- "version": "1.2.0",
1556
- "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz",
1557
- "integrity": "sha1-LmpMGxP8AAKCB7p5WnrDFme5/Uo=",
1558
- "dev": true,
1559
- "requires": {
1560
- "argv-formatter": "~1.0.0",
1561
- "spawn-error-forwarder": "~1.0.0",
1562
- "split2": "~1.0.0",
1563
- "stream-combiner2": "~1.1.1",
1564
- "through2": "~2.0.0",
1565
- "traverse": "~0.6.6"
1566
- },
1567
- "dependencies": {
1568
- "split2": {
1569
- "version": "1.0.0",
1570
- "resolved": "http://registry.npmjs.org/split2/-/split2-1.0.0.tgz",
1571
- "integrity": "sha1-UuLiIdiMdfmnP5BVbiY/+WdysxQ=",
1572
- "dev": true,
1573
- "requires": {
1574
- "through2": "~2.0.0"
1575
- }
1576
- }
1577
- }
1578
- },
1579
- "glob": {
1580
- "version": "7.1.3",
1581
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
1582
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
1583
- "dev": true,
1584
- "requires": {
1585
- "fs.realpath": "^1.0.0",
1586
- "inflight": "^1.0.4",
1587
- "inherits": "2",
1588
- "minimatch": "^3.0.4",
1589
- "once": "^1.3.0",
1590
- "path-is-absolute": "^1.0.0"
1591
- }
1592
- },
1593
- "glob-parent": {
1594
- "version": "3.1.0",
1595
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
1596
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
1597
- "dev": true,
1598
- "requires": {
1599
- "is-glob": "^3.1.0",
1600
- "path-dirname": "^1.0.0"
1601
- },
1602
- "dependencies": {
1603
- "is-glob": {
1604
- "version": "3.1.0",
1605
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
1606
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
1607
- "dev": true,
1608
- "requires": {
1609
- "is-extglob": "^2.1.0"
1610
- }
1611
- }
1612
- }
1613
- },
1614
- "glob-to-regexp": {
1615
- "version": "0.3.0",
1616
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
1617
- "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
1618
- "dev": true
1619
- },
1620
- "globby": {
1621
- "version": "8.0.1",
1622
- "resolved": "http://registry.npmjs.org/globby/-/globby-8.0.1.tgz",
1623
- "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==",
1624
- "dev": true,
1625
- "requires": {
1626
- "array-union": "^1.0.1",
1627
- "dir-glob": "^2.0.0",
1628
- "fast-glob": "^2.0.2",
1629
- "glob": "^7.1.2",
1630
- "ignore": "^3.3.5",
1631
- "pify": "^3.0.0",
1632
- "slash": "^1.0.0"
1633
- }
1634
- },
1635
- "graceful-fs": {
1636
- "version": "4.1.15",
1637
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
1638
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
1639
- "dev": true
1640
- },
1641
- "grunt": {
1642
- "version": "1.0.3",
1643
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
1644
- "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
1645
- "dev": true,
1646
- "requires": {
1647
- "coffeescript": "~1.10.0",
1648
- "dateformat": "~1.0.12",
1649
- "eventemitter2": "~0.4.13",
1650
- "exit": "~0.1.1",
1651
- "findup-sync": "~0.3.0",
1652
- "glob": "~7.0.0",
1653
- "grunt-cli": "~1.2.0",
1654
- "grunt-known-options": "~1.1.0",
1655
- "grunt-legacy-log": "~2.0.0",
1656
- "grunt-legacy-util": "~1.1.1",
1657
- "iconv-lite": "~0.4.13",
1658
- "js-yaml": "~3.5.2",
1659
- "minimatch": "~3.0.2",
1660
- "mkdirp": "~0.5.1",
1661
- "nopt": "~3.0.6",
1662
- "path-is-absolute": "~1.0.0",
1663
- "rimraf": "~2.6.2"
1664
- },
1665
- "dependencies": {
1666
- "glob": {
1667
- "version": "7.0.6",
1668
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
1669
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
1670
- "dev": true,
1671
- "requires": {
1672
- "fs.realpath": "^1.0.0",
1673
- "inflight": "^1.0.4",
1674
- "inherits": "2",
1675
- "minimatch": "^3.0.2",
1676
- "once": "^1.3.0",
1677
- "path-is-absolute": "^1.0.0"
1678
- }
1679
- },
1680
- "grunt-cli": {
1681
- "version": "1.2.0",
1682
- "resolved": "http://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
1683
- "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
1684
- "dev": true,
1685
- "requires": {
1686
- "findup-sync": "~0.3.0",
1687
- "grunt-known-options": "~1.1.0",
1688
- "nopt": "~3.0.6",
1689
- "resolve": "~1.1.0"
1690
- }
1691
- }
1692
- }
1693
- },
1694
- "grunt-known-options": {
1695
- "version": "1.1.1",
1696
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
1697
- "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
1698
- "dev": true
1699
- },
1700
- "grunt-legacy-log": {
1701
- "version": "2.0.0",
1702
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
1703
- "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
1704
- "dev": true,
1705
- "requires": {
1706
- "colors": "~1.1.2",
1707
- "grunt-legacy-log-utils": "~2.0.0",
1708
- "hooker": "~0.2.3",
1709
- "lodash": "~4.17.5"
1710
- }
1711
- },
1712
- "grunt-legacy-log-utils": {
1713
- "version": "2.0.1",
1714
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
1715
- "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
1716
- "dev": true,
1717
- "requires": {
1718
- "chalk": "~2.4.1",
1719
- "lodash": "~4.17.10"
1720
- }
1721
- },
1722
- "grunt-legacy-util": {
1723
- "version": "1.1.1",
1724
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
1725
- "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
1726
- "dev": true,
1727
- "requires": {
1728
- "async": "~1.5.2",
1729
- "exit": "~0.1.1",
1730
- "getobject": "~0.1.0",
1731
- "hooker": "~0.2.3",
1732
- "lodash": "~4.17.10",
1733
- "underscore.string": "~3.3.4",
1734
- "which": "~1.3.0"
1735
- }
1736
- },
1737
- "grunt-version": {
1738
- "version": "1.3.0",
1739
- "resolved": "https://registry.npmjs.org/grunt-version/-/grunt-version-1.3.0.tgz",
1740
- "integrity": "sha512-sHXaI20enfemESU2r/mrJd8eEFr8qSJSwzzIyau2IaxKwez0ojr5wg93x74K7PqSBKmVxumJ6TTscvGIfygRbA==",
1741
- "dev": true,
1742
- "requires": {
1743
- "grunt": "0.4.5 - 1",
1744
- "semver": "^4.0.0"
1745
- },
1746
- "dependencies": {
1747
- "semver": {
1748
- "version": "4.3.6",
1749
- "resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
1750
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
1751
- "dev": true
1752
- }
1753
- }
1754
- },
1755
- "handlebars": {
1756
- "version": "4.0.12",
1757
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
1758
- "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
1759
- "dev": true,
1760
- "requires": {
1761
- "async": "^2.5.0",
1762
- "optimist": "^0.6.1",
1763
- "source-map": "^0.6.1",
1764
- "uglify-js": "^3.1.4"
1765
- },
1766
- "dependencies": {
1767
- "async": {
1768
- "version": "2.6.1",
1769
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
1770
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
1771
- "dev": true,
1772
- "requires": {
1773
- "lodash": "^4.17.10"
1774
- }
1775
- },
1776
- "source-map": {
1777
- "version": "0.6.1",
1778
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1779
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1780
- "dev": true
1781
- }
1782
- }
1783
- },
1784
- "has-flag": {
1785
- "version": "3.0.0",
1786
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1787
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1788
- "dev": true
1789
- },
1790
- "has-value": {
1791
- "version": "1.0.0",
1792
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
1793
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
1794
- "dev": true,
1795
- "requires": {
1796
- "get-value": "^2.0.6",
1797
- "has-values": "^1.0.0",
1798
- "isobject": "^3.0.0"
1799
- }
1800
- },
1801
- "has-values": {
1802
- "version": "1.0.0",
1803
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
1804
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
1805
- "dev": true,
1806
- "requires": {
1807
- "is-number": "^3.0.0",
1808
- "kind-of": "^4.0.0"
1809
- },
1810
- "dependencies": {
1811
- "kind-of": {
1812
- "version": "4.0.0",
1813
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
1814
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
1815
- "dev": true,
1816
- "requires": {
1817
- "is-buffer": "^1.1.5"
1818
- }
1819
- }
1820
- }
1821
- },
1822
- "hook-std": {
1823
- "version": "1.2.0",
1824
- "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-1.2.0.tgz",
1825
- "integrity": "sha512-yntre2dbOAjgQ5yoRykyON0D9T96BfshR8IuiL/r3celeHD8I/76w4qo8m3z99houR4Z678jakV3uXrQdSvW/w==",
1826
- "dev": true
1827
- },
1828
- "hooker": {
1829
- "version": "0.2.3",
1830
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
1831
- "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
1832
- "dev": true
1833
- },
1834
- "hosted-git-info": {
1835
- "version": "2.7.1",
1836
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
1837
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
1838
- "dev": true
1839
- },
1840
- "http-proxy-agent": {
1841
- "version": "2.1.0",
1842
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
1843
- "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
1844
- "dev": true,
1845
- "requires": {
1846
- "agent-base": "4",
1847
- "debug": "3.1.0"
1848
- },
1849
- "dependencies": {
1850
- "debug": {
1851
- "version": "3.1.0",
1852
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1853
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1854
- "dev": true,
1855
- "requires": {
1856
- "ms": "2.0.0"
1857
- }
1858
- },
1859
- "ms": {
1860
- "version": "2.0.0",
1861
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1862
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1863
- "dev": true
1864
- }
1865
- }
1866
- },
1867
- "https-proxy-agent": {
1868
- "version": "2.2.1",
1869
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
1870
- "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
1871
- "dev": true,
1872
- "requires": {
1873
- "agent-base": "^4.1.0",
1874
- "debug": "^3.1.0"
1875
- },
1876
- "dependencies": {
1877
- "debug": {
1878
- "version": "3.2.6",
1879
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
1880
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
1881
- "dev": true,
1882
- "requires": {
1883
- "ms": "^2.1.1"
1884
- }
1885
- }
1886
- }
1887
- },
1888
- "iconv-lite": {
1889
- "version": "0.4.24",
1890
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1891
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1892
- "dev": true,
1893
- "requires": {
1894
- "safer-buffer": ">= 2.1.2 < 3"
1895
- }
1896
- },
1897
- "ignore": {
1898
- "version": "3.3.10",
1899
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
1900
- "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
1901
- "dev": true
1902
- },
1903
- "import-fresh": {
1904
- "version": "2.0.0",
1905
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
1906
- "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
1907
- "dev": true,
1908
- "requires": {
1909
- "caller-path": "^2.0.0",
1910
- "resolve-from": "^3.0.0"
1911
- },
1912
- "dependencies": {
1913
- "resolve-from": {
1914
- "version": "3.0.0",
1915
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
1916
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
1917
- "dev": true
1918
- }
1919
- }
1920
- },
1921
- "import-from": {
1922
- "version": "2.1.0",
1923
- "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
1924
- "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
1925
- "dev": true,
1926
- "requires": {
1927
- "resolve-from": "^3.0.0"
1928
- },
1929
- "dependencies": {
1930
- "resolve-from": {
1931
- "version": "3.0.0",
1932
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
1933
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
1934
- "dev": true
1935
- }
1936
- }
1937
- },
1938
- "indent-string": {
1939
- "version": "3.2.0",
1940
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
1941
- "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
1942
- "dev": true
1943
- },
1944
- "inflight": {
1945
- "version": "1.0.6",
1946
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1947
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1948
- "dev": true,
1949
- "requires": {
1950
- "once": "^1.3.0",
1951
- "wrappy": "1"
1952
- }
1953
- },
1954
- "inherits": {
1955
- "version": "2.0.3",
1956
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1957
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1958
- "dev": true
1959
- },
1960
- "ini": {
1961
- "version": "1.3.5",
1962
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
1963
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
1964
- "dev": true
1965
- },
1966
- "into-stream": {
1967
- "version": "4.0.0",
1968
- "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-4.0.0.tgz",
1969
- "integrity": "sha512-i29KNyE5r0Y/UQzcQ0IbZO1MYJ53Jn0EcFRZPj5FzWKYH17kDFEOwuA+3jroymOI06SW1dEDnly9A1CAreC5dg==",
1970
- "dev": true,
1971
- "requires": {
1972
- "from2": "^2.1.1",
1973
- "p-is-promise": "^2.0.0"
1974
- }
1975
- },
1976
- "invert-kv": {
1977
- "version": "2.0.0",
1978
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
1979
- "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
1980
- "dev": true
1981
- },
1982
- "is-accessor-descriptor": {
1983
- "version": "0.1.6",
1984
- "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
1985
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
1986
- "dev": true,
1987
- "requires": {
1988
- "kind-of": "^3.0.2"
1989
- },
1990
- "dependencies": {
1991
- "kind-of": {
1992
- "version": "3.2.2",
1993
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1994
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1995
- "dev": true,
1996
- "requires": {
1997
- "is-buffer": "^1.1.5"
1998
- }
1999
- }
2000
- }
2001
- },
2002
- "is-arrayish": {
2003
- "version": "0.2.1",
2004
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2005
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2006
- "dev": true
2007
- },
2008
- "is-buffer": {
2009
- "version": "1.1.6",
2010
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2011
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2012
- "dev": true
2013
- },
2014
- "is-builtin-module": {
2015
- "version": "1.0.0",
2016
- "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2017
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2018
- "dev": true,
2019
- "requires": {
2020
- "builtin-modules": "^1.0.0"
2021
- }
2022
- },
2023
- "is-data-descriptor": {
2024
- "version": "0.1.4",
2025
- "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2026
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2027
- "dev": true,
2028
- "requires": {
2029
- "kind-of": "^3.0.2"
2030
- },
2031
- "dependencies": {
2032
- "kind-of": {
2033
- "version": "3.2.2",
2034
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2035
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2036
- "dev": true,
2037
- "requires": {
2038
- "is-buffer": "^1.1.5"
2039
- }
2040
- }
2041
- }
2042
- },
2043
- "is-descriptor": {
2044
- "version": "0.1.6",
2045
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2046
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2047
- "dev": true,
2048
- "requires": {
2049
- "is-accessor-descriptor": "^0.1.6",
2050
- "is-data-descriptor": "^0.1.4",
2051
- "kind-of": "^5.0.0"
2052
- },
2053
- "dependencies": {
2054
- "kind-of": {
2055
- "version": "5.1.0",
2056
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2057
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2058
- "dev": true
2059
- }
2060
- }
2061
- },
2062
- "is-directory": {
2063
- "version": "0.3.1",
2064
- "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
2065
- "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
2066
- "dev": true
2067
- },
2068
- "is-extendable": {
2069
- "version": "0.1.1",
2070
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2071
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2072
- "dev": true
2073
- },
2074
- "is-extglob": {
2075
- "version": "2.1.1",
2076
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2077
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2078
- "dev": true
2079
- },
2080
- "is-finite": {
2081
- "version": "1.0.2",
2082
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2083
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2084
- "dev": true,
2085
- "requires": {
2086
- "number-is-nan": "^1.0.0"
2087
- }
2088
- },
2089
- "is-fullwidth-code-point": {
2090
- "version": "2.0.0",
2091
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2092
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2093
- "dev": true
2094
- },
2095
- "is-glob": {
2096
- "version": "4.0.0",
2097
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
2098
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
2099
- "dev": true,
2100
- "requires": {
2101
- "is-extglob": "^2.1.1"
2102
- }
2103
- },
2104
- "is-number": {
2105
- "version": "3.0.0",
2106
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2107
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2108
- "dev": true,
2109
- "requires": {
2110
- "kind-of": "^3.0.2"
2111
- },
2112
- "dependencies": {
2113
- "kind-of": {
2114
- "version": "3.2.2",
2115
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2116
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2117
- "dev": true,
2118
- "requires": {
2119
- "is-buffer": "^1.1.5"
2120
- }
2121
- }
2122
- }
2123
- },
2124
- "is-obj": {
2125
- "version": "1.0.1",
2126
- "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
2127
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
2128
- "dev": true
2129
- },
2130
- "is-plain-obj": {
2131
- "version": "1.1.0",
2132
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
2133
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
2134
- "dev": true
2135
- },
2136
- "is-plain-object": {
2137
- "version": "2.0.4",
2138
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2139
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2140
- "dev": true,
2141
- "requires": {
2142
- "isobject": "^3.0.1"
2143
- }
2144
- },
2145
- "is-stream": {
2146
- "version": "1.1.0",
2147
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2148
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2149
- "dev": true
2150
- },
2151
- "is-subset": {
2152
- "version": "0.1.1",
2153
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
2154
- "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=",
2155
- "dev": true
2156
- },
2157
- "is-text-path": {
2158
- "version": "1.0.1",
2159
- "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz",
2160
- "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=",
2161
- "dev": true,
2162
- "requires": {
2163
- "text-extensions": "^1.0.0"
2164
- }
2165
- },
2166
- "is-utf8": {
2167
- "version": "0.2.1",
2168
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2169
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2170
- "dev": true
2171
- },
2172
- "is-windows": {
2173
- "version": "1.0.2",
2174
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2175
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2176
- "dev": true
2177
- },
2178
- "isarray": {
2179
- "version": "1.0.0",
2180
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2181
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2182
- "dev": true
2183
- },
2184
- "isexe": {
2185
- "version": "2.0.0",
2186
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2187
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2188
- "dev": true
2189
- },
2190
- "isobject": {
2191
- "version": "3.0.1",
2192
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2193
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2194
- "dev": true
2195
- },
2196
- "issue-parser": {
2197
- "version": "3.0.1",
2198
- "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-3.0.1.tgz",
2199
- "integrity": "sha512-5wdT3EE8Kq38x/hJD8QZCJ9scGoOZ5QnzwXyClkviSWTS+xOCE6hJ0qco3H5n5jCsFqpbofZCcMWqlXJzF72VQ==",
2200
- "dev": true,
2201
- "requires": {
2202
- "lodash.capitalize": "^4.2.1",
2203
- "lodash.escaperegexp": "^4.1.2",
2204
- "lodash.isplainobject": "^4.0.6",
2205
- "lodash.isstring": "^4.0.1",
2206
- "lodash.uniqby": "^4.7.0"
2207
- }
2208
- },
2209
- "java-properties": {
2210
- "version": "0.2.10",
2211
- "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-0.2.10.tgz",
2212
- "integrity": "sha512-CpKJh9VRNhS+XqZtg1UMejETGEiqwCGDC/uwPEEQwc2nfdbSm73SIE29TplG2gLYuBOOTNDqxzG6A9NtEPLt0w==",
2213
- "dev": true
2214
- },
2215
- "js-yaml": {
2216
- "version": "3.5.5",
2217
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
2218
- "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
2219
- "dev": true,
2220
- "requires": {
2221
- "argparse": "^1.0.2",
2222
- "esprima": "^2.6.0"
2223
- }
2224
- },
2225
- "json-parse-better-errors": {
2226
- "version": "1.0.2",
2227
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
2228
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
2229
- "dev": true
2230
- },
2231
- "json-stringify-safe": {
2232
- "version": "5.0.1",
2233
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2234
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
2235
- "dev": true
2236
- },
2237
- "jsonfile": {
2238
- "version": "4.0.0",
2239
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
2240
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
2241
- "dev": true,
2242
- "requires": {
2243
- "graceful-fs": "^4.1.6"
2244
- }
2245
- },
2246
- "jsonparse": {
2247
- "version": "1.3.1",
2248
- "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
2249
- "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
2250
- "dev": true
2251
- },
2252
- "kind-of": {
2253
- "version": "6.0.2",
2254
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2255
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2256
- "dev": true
2257
- },
2258
- "lcid": {
2259
- "version": "2.0.0",
2260
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
2261
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
2262
- "dev": true,
2263
- "requires": {
2264
- "invert-kv": "^2.0.0"
2265
- }
2266
- },
2267
- "load-json-file": {
2268
- "version": "1.1.0",
2269
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2270
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2271
- "dev": true,
2272
- "requires": {
2273
- "graceful-fs": "^4.1.2",
2274
- "parse-json": "^2.2.0",
2275
- "pify": "^2.0.0",
2276
- "pinkie-promise": "^2.0.0",
2277
- "strip-bom": "^2.0.0"
2278
- },
2279
- "dependencies": {
2280
- "parse-json": {
2281
- "version": "2.2.0",
2282
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2283
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2284
- "dev": true,
2285
- "requires": {
2286
- "error-ex": "^1.2.0"
2287
- }
2288
- },
2289
- "pify": {
2290
- "version": "2.3.0",
2291
- "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2292
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2293
- "dev": true
2294
- }
2295
- }
2296
- },
2297
- "locate-path": {
2298
- "version": "2.0.0",
2299
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2300
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2301
- "dev": true,
2302
- "requires": {
2303
- "p-locate": "^2.0.0",
2304
- "path-exists": "^3.0.0"
2305
- },
2306
- "dependencies": {
2307
- "p-locate": {
2308
- "version": "2.0.0",
2309
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
2310
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
2311
- "dev": true,
2312
- "requires": {
2313
- "p-limit": "^1.1.0"
2314
- }
2315
- },
2316
- "path-exists": {
2317
- "version": "3.0.0",
2318
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2319
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2320
- "dev": true
2321
- }
2322
- }
2323
- },
2324
- "lodash": {
2325
- "version": "4.17.11",
2326
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2327
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
2328
- "dev": true
2329
- },
2330
- "lodash.assign": {
2331
- "version": "4.2.0",
2332
- "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
2333
- "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
2334
- "dev": true
2335
- },
2336
- "lodash.capitalize": {
2337
- "version": "4.2.1",
2338
- "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz",
2339
- "integrity": "sha1-+CbJtOKoUR2E46yinbBeGk87cqk=",
2340
- "dev": true
2341
- },
2342
- "lodash.escaperegexp": {
2343
- "version": "4.1.2",
2344
- "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
2345
- "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=",
2346
- "dev": true
2347
- },
2348
- "lodash.get": {
2349
- "version": "4.4.2",
2350
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
2351
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
2352
- "dev": true
2353
- },
2354
- "lodash.isplainobject": {
2355
- "version": "4.0.6",
2356
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
2357
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
2358
- "dev": true
2359
- },
2360
- "lodash.isstring": {
2361
- "version": "4.0.1",
2362
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
2363
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
2364
- "dev": true
2365
- },
2366
- "lodash.pick": {
2367
- "version": "4.4.0",
2368
- "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
2369
- "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
2370
- "dev": true
2371
- },
2372
- "lodash.set": {
2373
- "version": "4.3.2",
2374
- "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz",
2375
- "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=",
2376
- "dev": true
2377
- },
2378
- "lodash.toarray": {
2379
- "version": "4.4.0",
2380
- "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
2381
- "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=",
2382
- "dev": true
2383
- },
2384
- "lodash.uniq": {
2385
- "version": "4.5.0",
2386
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
2387
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
2388
- "dev": true
2389
- },
2390
- "lodash.uniqby": {
2391
- "version": "4.7.0",
2392
- "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz",
2393
- "integrity": "sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=",
2394
- "dev": true
2395
- },
2396
- "loud-rejection": {
2397
- "version": "1.6.0",
2398
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
2399
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
2400
- "dev": true,
2401
- "requires": {
2402
- "currently-unhandled": "^0.4.1",
2403
- "signal-exit": "^3.0.0"
2404
- }
2405
- },
2406
- "macos-release": {
2407
- "version": "2.0.0",
2408
- "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.0.0.tgz",
2409
- "integrity": "sha512-iCM3ZGeqIzlrH7KxYK+fphlJpCCczyHXc+HhRVbEu9uNTCrzYJjvvtefzeKTCVHd5AP/aD/fzC80JZ4ZP+dQ/A==",
2410
- "dev": true
2411
- },
2412
- "map-age-cleaner": {
2413
- "version": "0.1.3",
2414
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
2415
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
2416
- "dev": true,
2417
- "requires": {
2418
- "p-defer": "^1.0.0"
2419
- }
2420
- },
2421
- "map-cache": {
2422
- "version": "0.2.2",
2423
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
2424
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
2425
- "dev": true
2426
- },
2427
- "map-obj": {
2428
- "version": "1.0.1",
2429
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
2430
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
2431
- "dev": true
2432
- },
2433
- "map-visit": {
2434
- "version": "1.0.0",
2435
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
2436
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
2437
- "dev": true,
2438
- "requires": {
2439
- "object-visit": "^1.0.0"
2440
- }
2441
- },
2442
- "marked": {
2443
- "version": "0.5.2",
2444
- "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.2.tgz",
2445
- "integrity": "sha512-fdZvBa7/vSQIZCi4uuwo2N3q+7jJURpMVCcbaX0S1Mg65WZ5ilXvC67MviJAsdjqqgD+CEq4RKo5AYGgINkVAA==",
2446
- "dev": true
2447
- },
2448
- "marked-terminal": {
2449
- "version": "3.1.1",
2450
- "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.1.1.tgz",
2451
- "integrity": "sha512-7UBFww1rdx0w9HehLMCVYa8/AxXaiDigDfMsJcj82/wgLQG9cj+oiMAVlJpeWD57VFJY2OYY+bKeEVIjIlxi+w==",
2452
- "dev": true,
2453
- "requires": {
2454
- "cardinal": "^2.1.1",
2455
- "chalk": "^2.4.1",
2456
- "cli-table": "^0.3.1",
2457
- "lodash.assign": "^4.2.0",
2458
- "node-emoji": "^1.4.1"
2459
- }
2460
- },
2461
- "mem": {
2462
- "version": "4.0.0",
2463
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz",
2464
- "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==",
2465
- "dev": true,
2466
- "requires": {
2467
- "map-age-cleaner": "^0.1.1",
2468
- "mimic-fn": "^1.0.0",
2469
- "p-is-promise": "^1.1.0"
2470
- },
2471
- "dependencies": {
2472
- "p-is-promise": {
2473
- "version": "1.1.0",
2474
- "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
2475
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
2476
- "dev": true
2477
- }
2478
- }
2479
- },
2480
- "meow": {
2481
- "version": "3.7.0",
2482
- "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
2483
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
2484
- "dev": true,
2485
- "requires": {
2486
- "camelcase-keys": "^2.0.0",
2487
- "decamelize": "^1.1.2",
2488
- "loud-rejection": "^1.0.0",
2489
- "map-obj": "^1.0.1",
2490
- "minimist": "^1.1.3",
2491
- "normalize-package-data": "^2.3.4",
2492
- "object-assign": "^4.0.1",
2493
- "read-pkg-up": "^1.0.1",
2494
- "redent": "^1.0.0",
2495
- "trim-newlines": "^1.0.0"
2496
- }
2497
- },
2498
- "merge2": {
2499
- "version": "1.2.3",
2500
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz",
2501
- "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==",
2502
- "dev": true
2503
- },
2504
- "micromatch": {
2505
- "version": "3.1.10",
2506
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
2507
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
2508
- "dev": true,
2509
- "requires": {
2510
- "arr-diff": "^4.0.0",
2511
- "array-unique": "^0.3.2",
2512
- "braces": "^2.3.1",
2513
- "define-property": "^2.0.2",
2514
- "extend-shallow": "^3.0.2",
2515
- "extglob": "^2.0.4",
2516
- "fragment-cache": "^0.2.1",
2517
- "kind-of": "^6.0.2",
2518
- "nanomatch": "^1.2.9",
2519
- "object.pick": "^1.3.0",
2520
- "regex-not": "^1.0.0",
2521
- "snapdragon": "^0.8.1",
2522
- "to-regex": "^3.0.2"
2523
- }
2524
- },
2525
- "mime": {
2526
- "version": "2.4.0",
2527
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
2528
- "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==",
2529
- "dev": true
2530
- },
2531
- "mimic-fn": {
2532
- "version": "1.2.0",
2533
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
2534
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
2535
- "dev": true
2536
- },
2537
- "minimatch": {
2538
- "version": "3.0.4",
2539
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2540
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2541
- "dev": true,
2542
- "requires": {
2543
- "brace-expansion": "^1.1.7"
2544
- }
2545
- },
2546
- "minimist": {
2547
- "version": "1.2.0",
2548
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2549
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2550
- "dev": true
2551
- },
2552
- "minimist-options": {
2553
- "version": "3.0.2",
2554
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
2555
- "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
2556
- "dev": true,
2557
- "requires": {
2558
- "arrify": "^1.0.1",
2559
- "is-plain-obj": "^1.1.0"
2560
- }
2561
- },
2562
- "mixin-deep": {
2563
- "version": "1.3.1",
2564
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
2565
- "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
2566
- "dev": true,
2567
- "requires": {
2568
- "for-in": "^1.0.2",
2569
- "is-extendable": "^1.0.1"
2570
- },
2571
- "dependencies": {
2572
- "is-extendable": {
2573
- "version": "1.0.1",
2574
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2575
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2576
- "dev": true,
2577
- "requires": {
2578
- "is-plain-object": "^2.0.4"
2579
- }
2580
- }
2581
- }
2582
- },
2583
- "mkdirp": {
2584
- "version": "0.5.1",
2585
- "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2586
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2587
- "dev": true,
2588
- "requires": {
2589
- "minimist": "0.0.8"
2590
- },
2591
- "dependencies": {
2592
- "minimist": {
2593
- "version": "0.0.8",
2594
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2595
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2596
- "dev": true
2597
- }
2598
- }
2599
- },
2600
- "modify-values": {
2601
- "version": "1.0.1",
2602
- "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz",
2603
- "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==",
2604
- "dev": true
2605
- },
2606
- "ms": {
2607
- "version": "2.1.1",
2608
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2609
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2610
- "dev": true
2611
- },
2612
- "nanomatch": {
2613
- "version": "1.2.13",
2614
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
2615
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
2616
- "dev": true,
2617
- "requires": {
2618
- "arr-diff": "^4.0.0",
2619
- "array-unique": "^0.3.2",
2620
- "define-property": "^2.0.2",
2621
- "extend-shallow": "^3.0.2",
2622
- "fragment-cache": "^0.2.1",
2623
- "is-windows": "^1.0.2",
2624
- "kind-of": "^6.0.2",
2625
- "object.pick": "^1.3.0",
2626
- "regex-not": "^1.0.0",
2627
- "snapdragon": "^0.8.1",
2628
- "to-regex": "^3.0.1"
2629
- }
2630
- },
2631
- "nerf-dart": {
2632
- "version": "1.0.0",
2633
- "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz",
2634
- "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=",
2635
- "dev": true
2636
- },
2637
- "nice-try": {
2638
- "version": "1.0.5",
2639
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
2640
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
2641
- "dev": true
2642
- },
2643
- "node-emoji": {
2644
- "version": "1.8.1",
2645
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz",
2646
- "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==",
2647
- "dev": true,
2648
- "requires": {
2649
- "lodash.toarray": "^4.4.0"
2650
- }
2651
- },
2652
- "node-fetch": {
2653
- "version": "2.3.0",
2654
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
2655
- "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==",
2656
- "dev": true
2657
- },
2658
- "nopt": {
2659
- "version": "3.0.6",
2660
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
2661
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
2662
- "dev": true,
2663
- "requires": {
2664
- "abbrev": "1"
2665
- }
2666
- },
2667
- "normalize-package-data": {
2668
- "version": "2.4.0",
2669
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
2670
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
2671
- "dev": true,
2672
- "requires": {
2673
- "hosted-git-info": "^2.1.4",
2674
- "is-builtin-module": "^1.0.0",
2675
- "semver": "2 || 3 || 4 || 5",
2676
- "validate-npm-package-license": "^3.0.1"
2677
- }
2678
- },
2679
- "normalize-url": {
2680
- "version": "4.1.0",
2681
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.1.0.tgz",
2682
- "integrity": "sha512-X781mkWeK6PDMAZJfGn/wnwil4dV6pIdF9euiNqtA89uJvZuNDJO2YyJxiwpPhTQcF5pYUU1v+kcOxzYV6rZlA==",
2683
- "dev": true
2684
- },
2685
- "npm": {
2686
- "version": "6.5.0",
2687
- "resolved": "https://registry.npmjs.org/npm/-/npm-6.5.0.tgz",
2688
- "integrity": "sha512-SPq8zG2Kto+Xrq55E97O14Jla13PmQT5kSnvwBj88BmJZ5Nvw++OmlWfhjkB67pcgP5UEXljEtnGFKZtOgt6MQ==",
2689
- "dev": true,
2690
- "requires": {
2691
- "JSONStream": "^1.3.4",
2692
- "abbrev": "~1.1.1",
2693
- "ansicolors": "~0.3.2",
2694
- "ansistyles": "~0.1.3",
2695
- "aproba": "~1.2.0",
2696
- "archy": "~1.0.0",
2697
- "bin-links": "^1.1.2",
2698
- "bluebird": "^3.5.3",
2699
- "byte-size": "^4.0.3",
2700
- "cacache": "^11.2.0",
2701
- "call-limit": "~1.1.0",
2702
- "chownr": "~1.0.1",
2703
- "ci-info": "^1.6.0",
2704
- "cli-columns": "^3.1.2",
2705
- "cli-table3": "^0.5.0",
2706
- "cmd-shim": "~2.0.2",
2707
- "columnify": "~1.5.4",
2708
- "config-chain": "^1.1.12",
2709
- "debuglog": "*",
2710
- "detect-indent": "~5.0.0",
2711
- "detect-newline": "^2.1.0",
2712
- "dezalgo": "~1.0.3",
2713
- "editor": "~1.0.0",
2714
- "figgy-pudding": "^3.5.1",
2715
- "find-npm-prefix": "^1.0.2",
2716
- "fs-vacuum": "~1.2.10",
2717
- "fs-write-stream-atomic": "~1.0.10",
2718
- "gentle-fs": "^2.0.1",
2719
- "glob": "^7.1.3",
2720
- "graceful-fs": "^4.1.15",
2721
- "has-unicode": "~2.0.1",
2722
- "hosted-git-info": "^2.7.1",
2723
- "iferr": "^1.0.2",
2724
- "imurmurhash": "*",
2725
- "inflight": "~1.0.6",
2726
- "inherits": "~2.0.3",
2727
- "ini": "^1.3.5",
2728
- "init-package-json": "^1.10.3",
2729
- "is-cidr": "^2.0.6",
2730
- "json-parse-better-errors": "^1.0.2",
2731
- "lazy-property": "~1.0.0",
2732
- "libcipm": "^2.0.2",
2733
- "libnpmhook": "^4.0.1",
2734
- "libnpx": "^10.2.0",
2735
- "lock-verify": "^2.0.2",
2736
- "lockfile": "^1.0.4",
2737
- "lodash._baseindexof": "*",
2738
- "lodash._baseuniq": "~4.6.0",
2739
- "lodash._bindcallback": "*",
2740
- "lodash._cacheindexof": "*",
2741
- "lodash._createcache": "*",
2742
- "lodash._getnative": "*",
2743
- "lodash.clonedeep": "~4.5.0",
2744
- "lodash.restparam": "*",
2745
- "lodash.union": "~4.6.0",
2746
- "lodash.uniq": "~4.5.0",
2747
- "lodash.without": "~4.4.0",
2748
- "lru-cache": "^4.1.3",
2749
- "meant": "~1.0.1",
2750
- "mississippi": "^3.0.0",
2751
- "mkdirp": "~0.5.1",
2752
- "move-concurrently": "^1.0.1",
2753
- "node-gyp": "^3.8.0",
2754
- "nopt": "~4.0.1",
2755
- "normalize-package-data": "~2.4.0",
2756
- "npm-audit-report": "^1.3.1",
2757
- "npm-cache-filename": "~1.0.2",
2758
- "npm-install-checks": "~3.0.0",
2759
- "npm-lifecycle": "^2.1.0",
2760
- "npm-package-arg": "^6.1.0",
2761
- "npm-packlist": "^1.1.12",
2762
- "npm-pick-manifest": "^2.1.0",
2763
- "npm-profile": "^3.0.2",
2764
- "npm-registry-client": "^8.6.0",
2765
- "npm-registry-fetch": "^1.1.0",
2766
- "npm-user-validate": "~1.0.0",
2767
- "npmlog": "~4.1.2",
2768
- "once": "~1.4.0",
2769
- "opener": "^1.5.1",
2770
- "osenv": "^0.1.5",
2771
- "pacote": "^8.1.6",
2772
- "path-is-inside": "~1.0.2",
2773
- "promise-inflight": "~1.0.1",
2774
- "qrcode-terminal": "^0.12.0",
2775
- "query-string": "^6.1.0",
2776
- "qw": "~1.0.1",
2777
- "read": "~1.0.7",
2778
- "read-cmd-shim": "~1.0.1",
2779
- "read-installed": "~4.0.3",
2780
- "read-package-json": "^2.0.13",
2781
- "read-package-tree": "^5.2.1",
2782
- "readable-stream": "^2.3.6",
2783
- "readdir-scoped-modules": "*",
2784
- "request": "^2.88.0",
2785
- "retry": "^0.12.0",
2786
- "rimraf": "~2.6.2",
2787
- "safe-buffer": "^5.1.2",
2788
- "semver": "^5.5.1",
2789
- "sha": "~2.0.1",
2790
- "slide": "~1.1.6",
2791
- "sorted-object": "~2.0.1",
2792
- "sorted-union-stream": "~2.1.3",
2793
- "ssri": "^6.0.1",
2794
- "stringify-package": "^1.0.0",
2795
- "tar": "^4.4.8",
2796
- "text-table": "~0.2.0",
2797
- "tiny-relative-date": "^1.3.0",
2798
- "uid-number": "0.0.6",
2799
- "umask": "~1.1.0",
2800
- "unique-filename": "~1.1.0",
2801
- "unpipe": "~1.0.0",
2802
- "update-notifier": "^2.5.0",
2803
- "uuid": "^3.3.2",
2804
- "validate-npm-package-license": "^3.0.4",
2805
- "validate-npm-package-name": "~3.0.0",
2806
- "which": "^1.3.1",
2807
- "worker-farm": "^1.6.0",
2808
- "write-file-atomic": "^2.3.0"
2809
- },
2810
- "dependencies": {
2811
- "JSONStream": {
2812
- "version": "1.3.4",
2813
- "bundled": true,
2814
- "dev": true,
2815
- "requires": {
2816
- "jsonparse": "^1.2.0",
2817
- "through": ">=2.2.7 <3"
2818
- }
2819
- },
2820
- "abbrev": {
2821
- "version": "1.1.1",
2822
- "bundled": true,
2823
- "dev": true
2824
- },
2825
- "agent-base": {
2826
- "version": "4.2.0",
2827
- "bundled": true,
2828
- "dev": true,
2829
- "requires": {
2830
- "es6-promisify": "^5.0.0"
2831
- }
2832
- },
2833
- "agentkeepalive": {
2834
- "version": "3.4.1",
2835
- "bundled": true,
2836
- "dev": true,
2837
- "requires": {
2838
- "humanize-ms": "^1.2.1"
2839
- }
2840
- },
2841
- "ajv": {
2842
- "version": "5.5.2",
2843
- "bundled": true,
2844
- "dev": true,
2845
- "requires": {
2846
- "co": "^4.6.0",
2847
- "fast-deep-equal": "^1.0.0",
2848
- "fast-json-stable-stringify": "^2.0.0",
2849
- "json-schema-traverse": "^0.3.0"
2850
- }
2851
- },
2852
- "ansi-align": {
2853
- "version": "2.0.0",
2854
- "bundled": true,
2855
- "dev": true,
2856
- "requires": {
2857
- "string-width": "^2.0.0"
2858
- }
2859
- },
2860
- "ansi-regex": {
2861
- "version": "2.1.1",
2862
- "bundled": true,
2863
- "dev": true
2864
- },
2865
- "ansi-styles": {
2866
- "version": "3.2.1",
2867
- "bundled": true,
2868
- "dev": true,
2869
- "requires": {
2870
- "color-convert": "^1.9.0"
2871
- }
2872
- },
2873
- "ansicolors": {
2874
- "version": "0.3.2",
2875
- "bundled": true,
2876
- "dev": true
2877
- },
2878
- "ansistyles": {
2879
- "version": "0.1.3",
2880
- "bundled": true,
2881
- "dev": true
2882
- },
2883
- "aproba": {
2884
- "version": "1.2.0",
2885
- "bundled": true,
2886
- "dev": true
2887
- },
2888
- "archy": {
2889
- "version": "1.0.0",
2890
- "bundled": true,
2891
- "dev": true
2892
- },
2893
- "are-we-there-yet": {
2894
- "version": "1.1.4",
2895
- "bundled": true,
2896
- "dev": true,
2897
- "requires": {
2898
- "delegates": "^1.0.0",
2899
- "readable-stream": "^2.0.6"
2900
- }
2901
- },
2902
- "asap": {
2903
- "version": "2.0.6",
2904
- "bundled": true,
2905
- "dev": true
2906
- },
2907
- "asn1": {
2908
- "version": "0.2.4",
2909
- "bundled": true,
2910
- "dev": true,
2911
- "requires": {
2912
- "safer-buffer": "~2.1.0"
2913
- }
2914
- },
2915
- "assert-plus": {
2916
- "version": "1.0.0",
2917
- "bundled": true,
2918
- "dev": true
2919
- },
2920
- "asynckit": {
2921
- "version": "0.4.0",
2922
- "bundled": true,
2923
- "dev": true
2924
- },
2925
- "aws-sign2": {
2926
- "version": "0.7.0",
2927
- "bundled": true,
2928
- "dev": true
2929
- },
2930
- "aws4": {
2931
- "version": "1.8.0",
2932
- "bundled": true,
2933
- "dev": true
2934
- },
2935
- "balanced-match": {
2936
- "version": "1.0.0",
2937
- "bundled": true,
2938
- "dev": true
2939
- },
2940
- "bcrypt-pbkdf": {
2941
- "version": "1.0.2",
2942
- "bundled": true,
2943
- "dev": true,
2944
- "optional": true,
2945
- "requires": {
2946
- "tweetnacl": "^0.14.3"
2947
- }
2948
- },
2949
- "bin-links": {
2950
- "version": "1.1.2",
2951
- "bundled": true,
2952
- "dev": true,
2953
- "requires": {
2954
- "bluebird": "^3.5.0",
2955
- "cmd-shim": "^2.0.2",
2956
- "gentle-fs": "^2.0.0",
2957
- "graceful-fs": "^4.1.11",
2958
- "write-file-atomic": "^2.3.0"
2959
- }
2960
- },
2961
- "block-stream": {
2962
- "version": "0.0.9",
2963
- "bundled": true,
2964
- "dev": true,
2965
- "requires": {
2966
- "inherits": "~2.0.0"
2967
- }
2968
- },
2969
- "bluebird": {
2970
- "version": "3.5.3",
2971
- "bundled": true,
2972
- "dev": true
2973
- },
2974
- "boxen": {
2975
- "version": "1.3.0",
2976
- "bundled": true,
2977
- "dev": true,
2978
- "requires": {
2979
- "ansi-align": "^2.0.0",
2980
- "camelcase": "^4.0.0",
2981
- "chalk": "^2.0.1",
2982
- "cli-boxes": "^1.0.0",
2983
- "string-width": "^2.0.0",
2984
- "term-size": "^1.2.0",
2985
- "widest-line": "^2.0.0"
2986
- }
2987
- },
2988
- "brace-expansion": {
2989
- "version": "1.1.11",
2990
- "bundled": true,
2991
- "dev": true,
2992
- "requires": {
2993
- "balanced-match": "^1.0.0",
2994
- "concat-map": "0.0.1"
2995
- }
2996
- },
2997
- "buffer-from": {
2998
- "version": "1.0.0",
2999
- "bundled": true,
3000
- "dev": true
3001
- },
3002
- "builtin-modules": {
3003
- "version": "1.1.1",
3004
- "bundled": true,
3005
- "dev": true
3006
- },
3007
- "builtins": {
3008
- "version": "1.0.3",
3009
- "bundled": true,
3010
- "dev": true
3011
- },
3012
- "byline": {
3013
- "version": "5.0.0",
3014
- "bundled": true,
3015
- "dev": true
3016
- },
3017
- "byte-size": {
3018
- "version": "4.0.3",
3019
- "bundled": true,
3020
- "dev": true
3021
- },
3022
- "cacache": {
3023
- "version": "11.2.0",
3024
- "bundled": true,
3025
- "dev": true,
3026
- "requires": {
3027
- "bluebird": "^3.5.1",
3028
- "chownr": "^1.0.1",
3029
- "figgy-pudding": "^3.1.0",
3030
- "glob": "^7.1.2",
3031
- "graceful-fs": "^4.1.11",
3032
- "lru-cache": "^4.1.3",
3033
- "mississippi": "^3.0.0",
3034
- "mkdirp": "^0.5.1",
3035
- "move-concurrently": "^1.0.1",
3036
- "promise-inflight": "^1.0.1",
3037
- "rimraf": "^2.6.2",
3038
- "ssri": "^6.0.0",
3039
- "unique-filename": "^1.1.0",
3040
- "y18n": "^4.0.0"
3041
- }
3042
- },
3043
- "call-limit": {
3044
- "version": "1.1.0",
3045
- "bundled": true,
3046
- "dev": true
3047
- },
3048
- "camelcase": {
3049
- "version": "4.1.0",
3050
- "bundled": true,
3051
- "dev": true
3052
- },
3053
- "capture-stack-trace": {
3054
- "version": "1.0.0",
3055
- "bundled": true,
3056
- "dev": true
3057
- },
3058
- "caseless": {
3059
- "version": "0.12.0",
3060
- "bundled": true,
3061
- "dev": true
3062
- },
3063
- "chalk": {
3064
- "version": "2.4.1",
3065
- "bundled": true,
3066
- "dev": true,
3067
- "requires": {
3068
- "ansi-styles": "^3.2.1",
3069
- "escape-string-regexp": "^1.0.5",
3070
- "supports-color": "^5.3.0"
3071
- }
3072
- },
3073
- "chownr": {
3074
- "version": "1.0.1",
3075
- "bundled": true,
3076
- "dev": true
3077
- },
3078
- "ci-info": {
3079
- "version": "1.6.0",
3080
- "bundled": true,
3081
- "dev": true
3082
- },
3083
- "cidr-regex": {
3084
- "version": "2.0.9",
3085
- "bundled": true,
3086
- "dev": true,
3087
- "requires": {
3088
- "ip-regex": "^2.1.0"
3089
- }
3090
- },
3091
- "cli-boxes": {
3092
- "version": "1.0.0",
3093
- "bundled": true,
3094
- "dev": true
3095
- },
3096
- "cli-columns": {
3097
- "version": "3.1.2",
3098
- "bundled": true,
3099
- "dev": true,
3100
- "requires": {
3101
- "string-width": "^2.0.0",
3102
- "strip-ansi": "^3.0.1"
3103
- }
3104
- },
3105
- "cli-table3": {
3106
- "version": "0.5.0",
3107
- "bundled": true,
3108
- "dev": true,
3109
- "requires": {
3110
- "colors": "^1.1.2",
3111
- "object-assign": "^4.1.0",
3112
- "string-width": "^2.1.1"
3113
- }
3114
- },
3115
- "cliui": {
3116
- "version": "4.1.0",
3117
- "bundled": true,
3118
- "dev": true,
3119
- "requires": {
3120
- "string-width": "^2.1.1",
3121
- "strip-ansi": "^4.0.0",
3122
- "wrap-ansi": "^2.0.0"
3123
- },
3124
- "dependencies": {
3125
- "ansi-regex": {
3126
- "version": "3.0.0",
3127
- "bundled": true,
3128
- "dev": true
3129
- },
3130
- "strip-ansi": {
3131
- "version": "4.0.0",
3132
- "bundled": true,
3133
- "dev": true,
3134
- "requires": {
3135
- "ansi-regex": "^3.0.0"
3136
- }
3137
- }
3138
- }
3139
- },
3140
- "clone": {
3141
- "version": "1.0.4",
3142
- "bundled": true,
3143
- "dev": true
3144
- },
3145
- "cmd-shim": {
3146
- "version": "2.0.2",
3147
- "bundled": true,
3148
- "dev": true,
3149
- "requires": {
3150
- "graceful-fs": "^4.1.2",
3151
- "mkdirp": "~0.5.0"
3152
- }
3153
- },
3154
- "co": {
3155
- "version": "4.6.0",
3156
- "bundled": true,
3157
- "dev": true
3158
- },
3159
- "code-point-at": {
3160
- "version": "1.1.0",
3161
- "bundled": true,
3162
- "dev": true
3163
- },
3164
- "color-convert": {
3165
- "version": "1.9.1",
3166
- "bundled": true,
3167
- "dev": true,
3168
- "requires": {
3169
- "color-name": "^1.1.1"
3170
- }
3171
- },
3172
- "color-name": {
3173
- "version": "1.1.3",
3174
- "bundled": true,
3175
- "dev": true
3176
- },
3177
- "colors": {
3178
- "version": "1.1.2",
3179
- "bundled": true,
3180
- "dev": true,
3181
- "optional": true
3182
- },
3183
- "columnify": {
3184
- "version": "1.5.4",
3185
- "bundled": true,
3186
- "dev": true,
3187
- "requires": {
3188
- "strip-ansi": "^3.0.0",
3189
- "wcwidth": "^1.0.0"
3190
- }
3191
- },
3192
- "combined-stream": {
3193
- "version": "1.0.6",
3194
- "bundled": true,
3195
- "dev": true,
3196
- "requires": {
3197
- "delayed-stream": "~1.0.0"
3198
- }
3199
- },
3200
- "concat-map": {
3201
- "version": "0.0.1",
3202
- "bundled": true,
3203
- "dev": true
3204
- },
3205
- "concat-stream": {
3206
- "version": "1.6.2",
3207
- "bundled": true,
3208
- "dev": true,
3209
- "requires": {
3210
- "buffer-from": "^1.0.0",
3211
- "inherits": "^2.0.3",
3212
- "readable-stream": "^2.2.2",
3213
- "typedarray": "^0.0.6"
3214
- }
3215
- },
3216
- "config-chain": {
3217
- "version": "1.1.12",
3218
- "bundled": true,
3219
- "dev": true,
3220
- "requires": {
3221
- "ini": "^1.3.4",
3222
- "proto-list": "~1.2.1"
3223
- }
3224
- },
3225
- "configstore": {
3226
- "version": "3.1.2",
3227
- "bundled": true,
3228
- "dev": true,
3229
- "requires": {
3230
- "dot-prop": "^4.1.0",
3231
- "graceful-fs": "^4.1.2",
3232
- "make-dir": "^1.0.0",
3233
- "unique-string": "^1.0.0",
3234
- "write-file-atomic": "^2.0.0",
3235
- "xdg-basedir": "^3.0.0"
3236
- }
3237
- },
3238
- "console-control-strings": {
3239
- "version": "1.1.0",
3240
- "bundled": true,
3241
- "dev": true
3242
- },
3243
- "copy-concurrently": {
3244
- "version": "1.0.5",
3245
- "bundled": true,
3246
- "dev": true,
3247
- "requires": {
3248
- "aproba": "^1.1.1",
3249
- "fs-write-stream-atomic": "^1.0.8",
3250
- "iferr": "^0.1.5",
3251
- "mkdirp": "^0.5.1",
3252
- "rimraf": "^2.5.4",
3253
- "run-queue": "^1.0.0"
3254
- },
3255
- "dependencies": {
3256
- "iferr": {
3257
- "version": "0.1.5",
3258
- "bundled": true,
3259
- "dev": true
3260
- }
3261
- }
3262
- },
3263
- "core-util-is": {
3264
- "version": "1.0.2",
3265
- "bundled": true,
3266
- "dev": true
3267
- },
3268
- "create-error-class": {
3269
- "version": "3.0.2",
3270
- "bundled": true,
3271
- "dev": true,
3272
- "requires": {
3273
- "capture-stack-trace": "^1.0.0"
3274
- }
3275
- },
3276
- "cross-spawn": {
3277
- "version": "5.1.0",
3278
- "bundled": true,
3279
- "dev": true,
3280
- "requires": {
3281
- "lru-cache": "^4.0.1",
3282
- "shebang-command": "^1.2.0",
3283
- "which": "^1.2.9"
3284
- }
3285
- },
3286
- "crypto-random-string": {
3287
- "version": "1.0.0",
3288
- "bundled": true,
3289
- "dev": true
3290
- },
3291
- "cyclist": {
3292
- "version": "0.2.2",
3293
- "bundled": true,
3294
- "dev": true
3295
- },
3296
- "dashdash": {
3297
- "version": "1.14.1",
3298
- "bundled": true,
3299
- "dev": true,
3300
- "requires": {
3301
- "assert-plus": "^1.0.0"
3302
- }
3303
- },
3304
- "debug": {
3305
- "version": "3.1.0",
3306
- "bundled": true,
3307
- "dev": true,
3308
- "requires": {
3309
- "ms": "2.0.0"
3310
- },
3311
- "dependencies": {
3312
- "ms": {
3313
- "version": "2.0.0",
3314
- "bundled": true,
3315
- "dev": true
3316
- }
3317
- }
3318
- },
3319
- "debuglog": {
3320
- "version": "1.0.1",
3321
- "bundled": true,
3322
- "dev": true
3323
- },
3324
- "decamelize": {
3325
- "version": "1.2.0",
3326
- "bundled": true,
3327
- "dev": true
3328
- },
3329
- "decode-uri-component": {
3330
- "version": "0.2.0",
3331
- "bundled": true,
3332
- "dev": true
3333
- },
3334
- "deep-extend": {
3335
- "version": "0.5.1",
3336
- "bundled": true,
3337
- "dev": true
3338
- },
3339
- "defaults": {
3340
- "version": "1.0.3",
3341
- "bundled": true,
3342
- "dev": true,
3343
- "requires": {
3344
- "clone": "^1.0.2"
3345
- }
3346
- },
3347
- "delayed-stream": {
3348
- "version": "1.0.0",
3349
- "bundled": true,
3350
- "dev": true
3351
- },
3352
- "delegates": {
3353
- "version": "1.0.0",
3354
- "bundled": true,
3355
- "dev": true
3356
- },
3357
- "detect-indent": {
3358
- "version": "5.0.0",
3359
- "bundled": true,
3360
- "dev": true
3361
- },
3362
- "detect-newline": {
3363
- "version": "2.1.0",
3364
- "bundled": true,
3365
- "dev": true
3366
- },
3367
- "dezalgo": {
3368
- "version": "1.0.3",
3369
- "bundled": true,
3370
- "dev": true,
3371
- "requires": {
3372
- "asap": "^2.0.0",
3373
- "wrappy": "1"
3374
- }
3375
- },
3376
- "dot-prop": {
3377
- "version": "4.2.0",
3378
- "bundled": true,
3379
- "dev": true,
3380
- "requires": {
3381
- "is-obj": "^1.0.0"
3382
- }
3383
- },
3384
- "dotenv": {
3385
- "version": "5.0.1",
3386
- "bundled": true,
3387
- "dev": true
3388
- },
3389
- "duplexer3": {
3390
- "version": "0.1.4",
3391
- "bundled": true,
3392
- "dev": true
3393
- },
3394
- "duplexify": {
3395
- "version": "3.6.0",
3396
- "bundled": true,
3397
- "dev": true,
3398
- "requires": {
3399
- "end-of-stream": "^1.0.0",
3400
- "inherits": "^2.0.1",
3401
- "readable-stream": "^2.0.0",
3402
- "stream-shift": "^1.0.0"
3403
- }
3404
- },
3405
- "ecc-jsbn": {
3406
- "version": "0.1.2",
3407
- "bundled": true,
3408
- "dev": true,
3409
- "optional": true,
3410
- "requires": {
3411
- "jsbn": "~0.1.0",
3412
- "safer-buffer": "^2.1.0"
3413
- }
3414
- },
3415
- "editor": {
3416
- "version": "1.0.0",
3417
- "bundled": true,
3418
- "dev": true
3419
- },
3420
- "encoding": {
3421
- "version": "0.1.12",
3422
- "bundled": true,
3423
- "dev": true,
3424
- "requires": {
3425
- "iconv-lite": "~0.4.13"
3426
- }
3427
- },
3428
- "end-of-stream": {
3429
- "version": "1.4.1",
3430
- "bundled": true,
3431
- "dev": true,
3432
- "requires": {
3433
- "once": "^1.4.0"
3434
- }
3435
- },
3436
- "err-code": {
3437
- "version": "1.1.2",
3438
- "bundled": true,
3439
- "dev": true
3440
- },
3441
- "errno": {
3442
- "version": "0.1.7",
3443
- "bundled": true,
3444
- "dev": true,
3445
- "requires": {
3446
- "prr": "~1.0.1"
3447
- }
3448
- },
3449
- "es6-promise": {
3450
- "version": "4.2.4",
3451
- "bundled": true,
3452
- "dev": true
3453
- },
3454
- "es6-promisify": {
3455
- "version": "5.0.0",
3456
- "bundled": true,
3457
- "dev": true,
3458
- "requires": {
3459
- "es6-promise": "^4.0.3"
3460
- }
3461
- },
3462
- "escape-string-regexp": {
3463
- "version": "1.0.5",
3464
- "bundled": true,
3465
- "dev": true
3466
- },
3467
- "execa": {
3468
- "version": "0.7.0",
3469
- "bundled": true,
3470
- "dev": true,
3471
- "requires": {
3472
- "cross-spawn": "^5.0.1",
3473
- "get-stream": "^3.0.0",
3474
- "is-stream": "^1.1.0",
3475
- "npm-run-path": "^2.0.0",
3476
- "p-finally": "^1.0.0",
3477
- "signal-exit": "^3.0.0",
3478
- "strip-eof": "^1.0.0"
3479
- }
3480
- },
3481
- "extend": {
3482
- "version": "3.0.2",
3483
- "bundled": true,
3484
- "dev": true
3485
- },
3486
- "extsprintf": {
3487
- "version": "1.3.0",
3488
- "bundled": true,
3489
- "dev": true
3490
- },
3491
- "fast-deep-equal": {
3492
- "version": "1.1.0",
3493
- "bundled": true,
3494
- "dev": true
3495
- },
3496
- "fast-json-stable-stringify": {
3497
- "version": "2.0.0",
3498
- "bundled": true,
3499
- "dev": true
3500
- },
3501
- "figgy-pudding": {
3502
- "version": "3.5.1",
3503
- "bundled": true,
3504
- "dev": true
3505
- },
3506
- "find-npm-prefix": {
3507
- "version": "1.0.2",
3508
- "bundled": true,
3509
- "dev": true
3510
- },
3511
- "find-up": {
3512
- "version": "2.1.0",
3513
- "bundled": true,
3514
- "dev": true,
3515
- "requires": {
3516
- "locate-path": "^2.0.0"
3517
- }
3518
- },
3519
- "flush-write-stream": {
3520
- "version": "1.0.3",
3521
- "bundled": true,
3522
- "dev": true,
3523
- "requires": {
3524
- "inherits": "^2.0.1",
3525
- "readable-stream": "^2.0.4"
3526
- }
3527
- },
3528
- "forever-agent": {
3529
- "version": "0.6.1",
3530
- "bundled": true,
3531
- "dev": true
3532
- },
3533
- "form-data": {
3534
- "version": "2.3.2",
3535
- "bundled": true,
3536
- "dev": true,
3537
- "requires": {
3538
- "asynckit": "^0.4.0",
3539
- "combined-stream": "1.0.6",
3540
- "mime-types": "^2.1.12"
3541
- }
3542
- },
3543
- "from2": {
3544
- "version": "2.3.0",
3545
- "bundled": true,
3546
- "dev": true,
3547
- "requires": {
3548
- "inherits": "^2.0.1",
3549
- "readable-stream": "^2.0.0"
3550
- }
3551
- },
3552
- "fs-minipass": {
3553
- "version": "1.2.5",
3554
- "bundled": true,
3555
- "dev": true,
3556
- "requires": {
3557
- "minipass": "^2.2.1"
3558
- }
3559
- },
3560
- "fs-vacuum": {
3561
- "version": "1.2.10",
3562
- "bundled": true,
3563
- "dev": true,
3564
- "requires": {
3565
- "graceful-fs": "^4.1.2",
3566
- "path-is-inside": "^1.0.1",
3567
- "rimraf": "^2.5.2"
3568
- }
3569
- },
3570
- "fs-write-stream-atomic": {
3571
- "version": "1.0.10",
3572
- "bundled": true,
3573
- "dev": true,
3574
- "requires": {
3575
- "graceful-fs": "^4.1.2",
3576
- "iferr": "^0.1.5",
3577
- "imurmurhash": "^0.1.4",
3578
- "readable-stream": "1 || 2"
3579
- },
3580
- "dependencies": {
3581
- "iferr": {
3582
- "version": "0.1.5",
3583
- "bundled": true,
3584
- "dev": true
3585
- }
3586
- }
3587
- },
3588
- "fs.realpath": {
3589
- "version": "1.0.0",
3590
- "bundled": true,
3591
- "dev": true
3592
- },
3593
- "fstream": {
3594
- "version": "1.0.11",
3595
- "bundled": true,
3596
- "dev": true,
3597
- "requires": {
3598
- "graceful-fs": "^4.1.2",
3599
- "inherits": "~2.0.0",
3600
- "mkdirp": ">=0.5 0",
3601
- "rimraf": "2"
3602
- }
3603
- },
3604
- "gauge": {
3605
- "version": "2.7.4",
3606
- "bundled": true,
3607
- "dev": true,
3608
- "requires": {
3609
- "aproba": "^1.0.3",
3610
- "console-control-strings": "^1.0.0",
3611
- "has-unicode": "^2.0.0",
3612
- "object-assign": "^4.1.0",
3613
- "signal-exit": "^3.0.0",
3614
- "string-width": "^1.0.1",
3615
- "strip-ansi": "^3.0.1",
3616
- "wide-align": "^1.1.0"
3617
- },
3618
- "dependencies": {
3619
- "string-width": {
3620
- "version": "1.0.2",
3621
- "bundled": true,
3622
- "dev": true,
3623
- "requires": {
3624
- "code-point-at": "^1.0.0",
3625
- "is-fullwidth-code-point": "^1.0.0",
3626
- "strip-ansi": "^3.0.0"
3627
- }
3628
- }
3629
- }
3630
- },
3631
- "genfun": {
3632
- "version": "4.0.1",
3633
- "bundled": true,
3634
- "dev": true
3635
- },
3636
- "gentle-fs": {
3637
- "version": "2.0.1",
3638
- "bundled": true,
3639
- "dev": true,
3640
- "requires": {
3641
- "aproba": "^1.1.2",
3642
- "fs-vacuum": "^1.2.10",
3643
- "graceful-fs": "^4.1.11",
3644
- "iferr": "^0.1.5",
3645
- "mkdirp": "^0.5.1",
3646
- "path-is-inside": "^1.0.2",
3647
- "read-cmd-shim": "^1.0.1",
3648
- "slide": "^1.1.6"
3649
- },
3650
- "dependencies": {
3651
- "iferr": {
3652
- "version": "0.1.5",
3653
- "bundled": true,
3654
- "dev": true
3655
- }
3656
- }
3657
- },
3658
- "get-caller-file": {
3659
- "version": "1.0.2",
3660
- "bundled": true,
3661
- "dev": true
3662
- },
3663
- "get-stream": {
3664
- "version": "3.0.0",
3665
- "bundled": true,
3666
- "dev": true
3667
- },
3668
- "getpass": {
3669
- "version": "0.1.7",
3670
- "bundled": true,
3671
- "dev": true,
3672
- "requires": {
3673
- "assert-plus": "^1.0.0"
3674
- }
3675
- },
3676
- "glob": {
3677
- "version": "7.1.3",
3678
- "bundled": true,
3679
- "dev": true,
3680
- "requires": {
3681
- "fs.realpath": "^1.0.0",
3682
- "inflight": "^1.0.4",
3683
- "inherits": "2",
3684
- "minimatch": "^3.0.4",
3685
- "once": "^1.3.0",
3686
- "path-is-absolute": "^1.0.0"
3687
- }
3688
- },
3689
- "global-dirs": {
3690
- "version": "0.1.1",
3691
- "bundled": true,
3692
- "dev": true,
3693
- "requires": {
3694
- "ini": "^1.3.4"
3695
- }
3696
- },
3697
- "got": {
3698
- "version": "6.7.1",
3699
- "bundled": true,
3700
- "dev": true,
3701
- "requires": {
3702
- "create-error-class": "^3.0.0",
3703
- "duplexer3": "^0.1.4",
3704
- "get-stream": "^3.0.0",
3705
- "is-redirect": "^1.0.0",
3706
- "is-retry-allowed": "^1.0.0",
3707
- "is-stream": "^1.0.0",
3708
- "lowercase-keys": "^1.0.0",
3709
- "safe-buffer": "^5.0.1",
3710
- "timed-out": "^4.0.0",
3711
- "unzip-response": "^2.0.1",
3712
- "url-parse-lax": "^1.0.0"
3713
- }
3714
- },
3715
- "graceful-fs": {
3716
- "version": "4.1.15",
3717
- "bundled": true,
3718
- "dev": true
3719
- },
3720
- "har-schema": {
3721
- "version": "2.0.0",
3722
- "bundled": true,
3723
- "dev": true
3724
- },
3725
- "har-validator": {
3726
- "version": "5.1.0",
3727
- "bundled": true,
3728
- "dev": true,
3729
- "requires": {
3730
- "ajv": "^5.3.0",
3731
- "har-schema": "^2.0.0"
3732
- }
3733
- },
3734
- "has-flag": {
3735
- "version": "3.0.0",
3736
- "bundled": true,
3737
- "dev": true
3738
- },
3739
- "has-unicode": {
3740
- "version": "2.0.1",
3741
- "bundled": true,
3742
- "dev": true
3743
- },
3744
- "hosted-git-info": {
3745
- "version": "2.7.1",
3746
- "bundled": true,
3747
- "dev": true
3748
- },
3749
- "http-cache-semantics": {
3750
- "version": "3.8.1",
3751
- "bundled": true,
3752
- "dev": true
3753
- },
3754
- "http-proxy-agent": {
3755
- "version": "2.1.0",
3756
- "bundled": true,
3757
- "dev": true,
3758
- "requires": {
3759
- "agent-base": "4",
3760
- "debug": "3.1.0"
3761
- }
3762
- },
3763
- "http-signature": {
3764
- "version": "1.2.0",
3765
- "bundled": true,
3766
- "dev": true,
3767
- "requires": {
3768
- "assert-plus": "^1.0.0",
3769
- "jsprim": "^1.2.2",
3770
- "sshpk": "^1.7.0"
3771
- }
3772
- },
3773
- "https-proxy-agent": {
3774
- "version": "2.2.1",
3775
- "bundled": true,
3776
- "dev": true,
3777
- "requires": {
3778
- "agent-base": "^4.1.0",
3779
- "debug": "^3.1.0"
3780
- }
3781
- },
3782
- "humanize-ms": {
3783
- "version": "1.2.1",
3784
- "bundled": true,
3785
- "dev": true,
3786
- "requires": {
3787
- "ms": "^2.0.0"
3788
- }
3789
- },
3790
- "iconv-lite": {
3791
- "version": "0.4.23",
3792
- "bundled": true,
3793
- "dev": true,
3794
- "requires": {
3795
- "safer-buffer": ">= 2.1.2 < 3"
3796
- }
3797
- },
3798
- "iferr": {
3799
- "version": "1.0.2",
3800
- "bundled": true,
3801
- "dev": true
3802
- },
3803
- "ignore-walk": {
3804
- "version": "3.0.1",
3805
- "bundled": true,
3806
- "dev": true,
3807
- "requires": {
3808
- "minimatch": "^3.0.4"
3809
- }
3810
- },
3811
- "import-lazy": {
3812
- "version": "2.1.0",
3813
- "bundled": true,
3814
- "dev": true
3815
- },
3816
- "imurmurhash": {
3817
- "version": "0.1.4",
3818
- "bundled": true,
3819
- "dev": true
3820
- },
3821
- "inflight": {
3822
- "version": "1.0.6",
3823
- "bundled": true,
3824
- "dev": true,
3825
- "requires": {
3826
- "once": "^1.3.0",
3827
- "wrappy": "1"
3828
- }
3829
- },
3830
- "inherits": {
3831
- "version": "2.0.3",
3832
- "bundled": true,
3833
- "dev": true
3834
- },
3835
- "ini": {
3836
- "version": "1.3.5",
3837
- "bundled": true,
3838
- "dev": true
3839
- },
3840
- "init-package-json": {
3841
- "version": "1.10.3",
3842
- "bundled": true,
3843
- "dev": true,
3844
- "requires": {
3845
- "glob": "^7.1.1",
3846
- "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
3847
- "promzard": "^0.3.0",
3848
- "read": "~1.0.1",
3849
- "read-package-json": "1 || 2",
3850
- "semver": "2.x || 3.x || 4 || 5",
3851
- "validate-npm-package-license": "^3.0.1",
3852
- "validate-npm-package-name": "^3.0.0"
3853
- }
3854
- },
3855
- "invert-kv": {
3856
- "version": "1.0.0",
3857
- "bundled": true,
3858
- "dev": true
3859
- },
3860
- "ip": {
3861
- "version": "1.1.5",
3862
- "bundled": true,
3863
- "dev": true
3864
- },
3865
- "ip-regex": {
3866
- "version": "2.1.0",
3867
- "bundled": true,
3868
- "dev": true
3869
- },
3870
- "is-builtin-module": {
3871
- "version": "1.0.0",
3872
- "bundled": true,
3873
- "dev": true,
3874
- "requires": {
3875
- "builtin-modules": "^1.0.0"
3876
- }
3877
- },
3878
- "is-ci": {
3879
- "version": "1.1.0",
3880
- "bundled": true,
3881
- "dev": true,
3882
- "requires": {
3883
- "ci-info": "^1.0.0"
3884
- }
3885
- },
3886
- "is-cidr": {
3887
- "version": "2.0.6",
3888
- "bundled": true,
3889
- "dev": true,
3890
- "requires": {
3891
- "cidr-regex": "^2.0.8"
3892
- }
3893
- },
3894
- "is-fullwidth-code-point": {
3895
- "version": "1.0.0",
3896
- "bundled": true,
3897
- "dev": true,
3898
- "requires": {
3899
- "number-is-nan": "^1.0.0"
3900
- }
3901
- },
3902
- "is-installed-globally": {
3903
- "version": "0.1.0",
3904
- "bundled": true,
3905
- "dev": true,
3906
- "requires": {
3907
- "global-dirs": "^0.1.0",
3908
- "is-path-inside": "^1.0.0"
3909
- }
3910
- },
3911
- "is-npm": {
3912
- "version": "1.0.0",
3913
- "bundled": true,
3914
- "dev": true
3915
- },
3916
- "is-obj": {
3917
- "version": "1.0.1",
3918
- "bundled": true,
3919
- "dev": true
3920
- },
3921
- "is-path-inside": {
3922
- "version": "1.0.1",
3923
- "bundled": true,
3924
- "dev": true,
3925
- "requires": {
3926
- "path-is-inside": "^1.0.1"
3927
- }
3928
- },
3929
- "is-redirect": {
3930
- "version": "1.0.0",
3931
- "bundled": true,
3932
- "dev": true
3933
- },
3934
- "is-retry-allowed": {
3935
- "version": "1.1.0",
3936
- "bundled": true,
3937
- "dev": true
3938
- },
3939
- "is-stream": {
3940
- "version": "1.1.0",
3941
- "bundled": true,
3942
- "dev": true
3943
- },
3944
- "is-typedarray": {
3945
- "version": "1.0.0",
3946
- "bundled": true,
3947
- "dev": true
3948
- },
3949
- "isarray": {
3950
- "version": "1.0.0",
3951
- "bundled": true,
3952
- "dev": true
3953
- },
3954
- "isexe": {
3955
- "version": "2.0.0",
3956
- "bundled": true,
3957
- "dev": true
3958
- },
3959
- "isstream": {
3960
- "version": "0.1.2",
3961
- "bundled": true,
3962
- "dev": true
3963
- },
3964
- "jsbn": {
3965
- "version": "0.1.1",
3966
- "bundled": true,
3967
- "dev": true,
3968
- "optional": true
3969
- },
3970
- "json-parse-better-errors": {
3971
- "version": "1.0.2",
3972
- "bundled": true,
3973
- "dev": true
3974
- },
3975
- "json-schema": {
3976
- "version": "0.2.3",
3977
- "bundled": true,
3978
- "dev": true
3979
- },
3980
- "json-schema-traverse": {
3981
- "version": "0.3.1",
3982
- "bundled": true,
3983
- "dev": true
3984
- },
3985
- "json-stringify-safe": {
3986
- "version": "5.0.1",
3987
- "bundled": true,
3988
- "dev": true
3989
- },
3990
- "jsonparse": {
3991
- "version": "1.3.1",
3992
- "bundled": true,
3993
- "dev": true
3994
- },
3995
- "jsprim": {
3996
- "version": "1.4.1",
3997
- "bundled": true,
3998
- "dev": true,
3999
- "requires": {
4000
- "assert-plus": "1.0.0",
4001
- "extsprintf": "1.3.0",
4002
- "json-schema": "0.2.3",
4003
- "verror": "1.10.0"
4004
- }
4005
- },
4006
- "latest-version": {
4007
- "version": "3.1.0",
4008
- "bundled": true,
4009
- "dev": true,
4010
- "requires": {
4011
- "package-json": "^4.0.0"
4012
- }
4013
- },
4014
- "lazy-property": {
4015
- "version": "1.0.0",
4016
- "bundled": true,
4017
- "dev": true
4018
- },
4019
- "lcid": {
4020
- "version": "1.0.0",
4021
- "bundled": true,
4022
- "dev": true,
4023
- "requires": {
4024
- "invert-kv": "^1.0.0"
4025
- }
4026
- },
4027
- "libcipm": {
4028
- "version": "2.0.2",
4029
- "bundled": true,
4030
- "dev": true,
4031
- "requires": {
4032
- "bin-links": "^1.1.2",
4033
- "bluebird": "^3.5.1",
4034
- "find-npm-prefix": "^1.0.2",
4035
- "graceful-fs": "^4.1.11",
4036
- "lock-verify": "^2.0.2",
4037
- "mkdirp": "^0.5.1",
4038
- "npm-lifecycle": "^2.0.3",
4039
- "npm-logical-tree": "^1.2.1",
4040
- "npm-package-arg": "^6.1.0",
4041
- "pacote": "^8.1.6",
4042
- "protoduck": "^5.0.0",
4043
- "read-package-json": "^2.0.13",
4044
- "rimraf": "^2.6.2",
4045
- "worker-farm": "^1.6.0"
4046
- }
4047
- },
4048
- "libnpmhook": {
4049
- "version": "4.0.1",
4050
- "bundled": true,
4051
- "dev": true,
4052
- "requires": {
4053
- "figgy-pudding": "^3.1.0",
4054
- "npm-registry-fetch": "^3.0.0"
4055
- },
4056
- "dependencies": {
4057
- "npm-registry-fetch": {
4058
- "version": "3.1.1",
4059
- "bundled": true,
4060
- "dev": true,
4061
- "requires": {
4062
- "bluebird": "^3.5.1",
4063
- "figgy-pudding": "^3.1.0",
4064
- "lru-cache": "^4.1.2",
4065
- "make-fetch-happen": "^4.0.0",
4066
- "npm-package-arg": "^6.0.0"
4067
- }
4068
- }
4069
- }
4070
- },
4071
- "libnpx": {
4072
- "version": "10.2.0",
4073
- "bundled": true,
4074
- "dev": true,
4075
- "requires": {
4076
- "dotenv": "^5.0.1",
4077
- "npm-package-arg": "^6.0.0",
4078
- "rimraf": "^2.6.2",
4079
- "safe-buffer": "^5.1.0",
4080
- "update-notifier": "^2.3.0",
4081
- "which": "^1.3.0",
4082
- "y18n": "^4.0.0",
4083
- "yargs": "^11.0.0"
4084
- }
4085
- },
4086
- "locate-path": {
4087
- "version": "2.0.0",
4088
- "bundled": true,
4089
- "dev": true,
4090
- "requires": {
4091
- "p-locate": "^2.0.0",
4092
- "path-exists": "^3.0.0"
4093
- }
4094
- },
4095
- "lock-verify": {
4096
- "version": "2.0.2",
4097
- "bundled": true,
4098
- "dev": true,
4099
- "requires": {
4100
- "npm-package-arg": "^5.1.2 || 6",
4101
- "semver": "^5.4.1"
4102
- }
4103
- },
4104
- "lockfile": {
4105
- "version": "1.0.4",
4106
- "bundled": true,
4107
- "dev": true,
4108
- "requires": {
4109
- "signal-exit": "^3.0.2"
4110
- }
4111
- },
4112
- "lodash._baseindexof": {
4113
- "version": "3.1.0",
4114
- "bundled": true,
4115
- "dev": true
4116
- },
4117
- "lodash._baseuniq": {
4118
- "version": "4.6.0",
4119
- "bundled": true,
4120
- "dev": true,
4121
- "requires": {
4122
- "lodash._createset": "~4.0.0",
4123
- "lodash._root": "~3.0.0"
4124
- }
4125
- },
4126
- "lodash._bindcallback": {
4127
- "version": "3.0.1",
4128
- "bundled": true,
4129
- "dev": true
4130
- },
4131
- "lodash._cacheindexof": {
4132
- "version": "3.0.2",
4133
- "bundled": true,
4134
- "dev": true
4135
- },
4136
- "lodash._createcache": {
4137
- "version": "3.1.2",
4138
- "bundled": true,
4139
- "dev": true,
4140
- "requires": {
4141
- "lodash._getnative": "^3.0.0"
4142
- }
4143
- },
4144
- "lodash._createset": {
4145
- "version": "4.0.3",
4146
- "bundled": true,
4147
- "dev": true
4148
- },
4149
- "lodash._getnative": {
4150
- "version": "3.9.1",
4151
- "bundled": true,
4152
- "dev": true
4153
- },
4154
- "lodash._root": {
4155
- "version": "3.0.1",
4156
- "bundled": true,
4157
- "dev": true
4158
- },
4159
- "lodash.clonedeep": {
4160
- "version": "4.5.0",
4161
- "bundled": true,
4162
- "dev": true
4163
- },
4164
- "lodash.restparam": {
4165
- "version": "3.6.1",
4166
- "bundled": true,
4167
- "dev": true
4168
- },
4169
- "lodash.union": {
4170
- "version": "4.6.0",
4171
- "bundled": true,
4172
- "dev": true
4173
- },
4174
- "lodash.uniq": {
4175
- "version": "4.5.0",
4176
- "bundled": true,
4177
- "dev": true
4178
- },
4179
- "lodash.without": {
4180
- "version": "4.4.0",
4181
- "bundled": true,
4182
- "dev": true
4183
- },
4184
- "lowercase-keys": {
4185
- "version": "1.0.1",
4186
- "bundled": true,
4187
- "dev": true
4188
- },
4189
- "lru-cache": {
4190
- "version": "4.1.3",
4191
- "bundled": true,
4192
- "dev": true,
4193
- "requires": {
4194
- "pseudomap": "^1.0.2",
4195
- "yallist": "^2.1.2"
4196
- }
4197
- },
4198
- "make-dir": {
4199
- "version": "1.3.0",
4200
- "bundled": true,
4201
- "dev": true,
4202
- "requires": {
4203
- "pify": "^3.0.0"
4204
- }
4205
- },
4206
- "make-fetch-happen": {
4207
- "version": "4.0.1",
4208
- "bundled": true,
4209
- "dev": true,
4210
- "requires": {
4211
- "agentkeepalive": "^3.4.1",
4212
- "cacache": "^11.0.1",
4213
- "http-cache-semantics": "^3.8.1",
4214
- "http-proxy-agent": "^2.1.0",
4215
- "https-proxy-agent": "^2.2.1",
4216
- "lru-cache": "^4.1.2",
4217
- "mississippi": "^3.0.0",
4218
- "node-fetch-npm": "^2.0.2",
4219
- "promise-retry": "^1.1.1",
4220
- "socks-proxy-agent": "^4.0.0",
4221
- "ssri": "^6.0.0"
4222
- }
4223
- },
4224
- "meant": {
4225
- "version": "1.0.1",
4226
- "bundled": true,
4227
- "dev": true
4228
- },
4229
- "mem": {
4230
- "version": "1.1.0",
4231
- "bundled": true,
4232
- "dev": true,
4233
- "requires": {
4234
- "mimic-fn": "^1.0.0"
4235
- }
4236
- },
4237
- "mime-db": {
4238
- "version": "1.35.0",
4239
- "bundled": true,
4240
- "dev": true
4241
- },
4242
- "mime-types": {
4243
- "version": "2.1.19",
4244
- "bundled": true,
4245
- "dev": true,
4246
- "requires": {
4247
- "mime-db": "~1.35.0"
4248
- }
4249
- },
4250
- "mimic-fn": {
4251
- "version": "1.2.0",
4252
- "bundled": true,
4253
- "dev": true
4254
- },
4255
- "minimatch": {
4256
- "version": "3.0.4",
4257
- "bundled": true,
4258
- "dev": true,
4259
- "requires": {
4260
- "brace-expansion": "^1.1.7"
4261
- }
4262
- },
4263
- "minimist": {
4264
- "version": "0.0.8",
4265
- "bundled": true,
4266
- "dev": true
4267
- },
4268
- "minipass": {
4269
- "version": "2.3.3",
4270
- "bundled": true,
4271
- "dev": true,
4272
- "requires": {
4273
- "safe-buffer": "^5.1.2",
4274
- "yallist": "^3.0.0"
4275
- },
4276
- "dependencies": {
4277
- "yallist": {
4278
- "version": "3.0.2",
4279
- "bundled": true,
4280
- "dev": true
4281
- }
4282
- }
4283
- },
4284
- "minizlib": {
4285
- "version": "1.1.1",
4286
- "bundled": true,
4287
- "dev": true,
4288
- "requires": {
4289
- "minipass": "^2.2.1"
4290
- }
4291
- },
4292
- "mississippi": {
4293
- "version": "3.0.0",
4294
- "bundled": true,
4295
- "dev": true,
4296
- "requires": {
4297
- "concat-stream": "^1.5.0",
4298
- "duplexify": "^3.4.2",
4299
- "end-of-stream": "^1.1.0",
4300
- "flush-write-stream": "^1.0.0",
4301
- "from2": "^2.1.0",
4302
- "parallel-transform": "^1.1.0",
4303
- "pump": "^3.0.0",
4304
- "pumpify": "^1.3.3",
4305
- "stream-each": "^1.1.0",
4306
- "through2": "^2.0.0"
4307
- }
4308
- },
4309
- "mkdirp": {
4310
- "version": "0.5.1",
4311
- "bundled": true,
4312
- "dev": true,
4313
- "requires": {
4314
- "minimist": "0.0.8"
4315
- }
4316
- },
4317
- "move-concurrently": {
4318
- "version": "1.0.1",
4319
- "bundled": true,
4320
- "dev": true,
4321
- "requires": {
4322
- "aproba": "^1.1.1",
4323
- "copy-concurrently": "^1.0.0",
4324
- "fs-write-stream-atomic": "^1.0.8",
4325
- "mkdirp": "^0.5.1",
4326
- "rimraf": "^2.5.4",
4327
- "run-queue": "^1.0.3"
4328
- }
4329
- },
4330
- "ms": {
4331
- "version": "2.1.1",
4332
- "bundled": true,
4333
- "dev": true
4334
- },
4335
- "mute-stream": {
4336
- "version": "0.0.7",
4337
- "bundled": true,
4338
- "dev": true
4339
- },
4340
- "node-fetch-npm": {
4341
- "version": "2.0.2",
4342
- "bundled": true,
4343
- "dev": true,
4344
- "requires": {
4345
- "encoding": "^0.1.11",
4346
- "json-parse-better-errors": "^1.0.0",
4347
- "safe-buffer": "^5.1.1"
4348
- }
4349
- },
4350
- "node-gyp": {
4351
- "version": "3.8.0",
4352
- "bundled": true,
4353
- "dev": true,
4354
- "requires": {
4355
- "fstream": "^1.0.0",
4356
- "glob": "^7.0.3",
4357
- "graceful-fs": "^4.1.2",
4358
- "mkdirp": "^0.5.0",
4359
- "nopt": "2 || 3",
4360
- "npmlog": "0 || 1 || 2 || 3 || 4",
4361
- "osenv": "0",
4362
- "request": "^2.87.0",
4363
- "rimraf": "2",
4364
- "semver": "~5.3.0",
4365
- "tar": "^2.0.0",
4366
- "which": "1"
4367
- },
4368
- "dependencies": {
4369
- "nopt": {
4370
- "version": "3.0.6",
4371
- "bundled": true,
4372
- "dev": true,
4373
- "requires": {
4374
- "abbrev": "1"
4375
- }
4376
- },
4377
- "semver": {
4378
- "version": "5.3.0",
4379
- "bundled": true,
4380
- "dev": true
4381
- },
4382
- "tar": {
4383
- "version": "2.2.1",
4384
- "bundled": true,
4385
- "dev": true,
4386
- "requires": {
4387
- "block-stream": "*",
4388
- "fstream": "^1.0.2",
4389
- "inherits": "2"
4390
- }
4391
- }
4392
- }
4393
- },
4394
- "nopt": {
4395
- "version": "4.0.1",
4396
- "bundled": true,
4397
- "dev": true,
4398
- "requires": {
4399
- "abbrev": "1",
4400
- "osenv": "^0.1.4"
4401
- }
4402
- },
4403
- "normalize-package-data": {
4404
- "version": "2.4.0",
4405
- "bundled": true,
4406
- "dev": true,
4407
- "requires": {
4408
- "hosted-git-info": "^2.1.4",
4409
- "is-builtin-module": "^1.0.0",
4410
- "semver": "2 || 3 || 4 || 5",
4411
- "validate-npm-package-license": "^3.0.1"
4412
- }
4413
- },
4414
- "npm-audit-report": {
4415
- "version": "1.3.1",
4416
- "bundled": true,
4417
- "dev": true,
4418
- "requires": {
4419
- "cli-table3": "^0.5.0",
4420
- "console-control-strings": "^1.1.0"
4421
- }
4422
- },
4423
- "npm-bundled": {
4424
- "version": "1.0.5",
4425
- "bundled": true,
4426
- "dev": true
4427
- },
4428
- "npm-cache-filename": {
4429
- "version": "1.0.2",
4430
- "bundled": true,
4431
- "dev": true
4432
- },
4433
- "npm-install-checks": {
4434
- "version": "3.0.0",
4435
- "bundled": true,
4436
- "dev": true,
4437
- "requires": {
4438
- "semver": "^2.3.0 || 3.x || 4 || 5"
4439
- }
4440
- },
4441
- "npm-lifecycle": {
4442
- "version": "2.1.0",
4443
- "bundled": true,
4444
- "dev": true,
4445
- "requires": {
4446
- "byline": "^5.0.0",
4447
- "graceful-fs": "^4.1.11",
4448
- "node-gyp": "^3.8.0",
4449
- "resolve-from": "^4.0.0",
4450
- "slide": "^1.1.6",
4451
- "uid-number": "0.0.6",
4452
- "umask": "^1.1.0",
4453
- "which": "^1.3.1"
4454
- }
4455
- },
4456
- "npm-logical-tree": {
4457
- "version": "1.2.1",
4458
- "bundled": true,
4459
- "dev": true
4460
- },
4461
- "npm-package-arg": {
4462
- "version": "6.1.0",
4463
- "bundled": true,
4464
- "dev": true,
4465
- "requires": {
4466
- "hosted-git-info": "^2.6.0",
4467
- "osenv": "^0.1.5",
4468
- "semver": "^5.5.0",
4469
- "validate-npm-package-name": "^3.0.0"
4470
- }
4471
- },
4472
- "npm-packlist": {
4473
- "version": "1.1.12",
4474
- "bundled": true,
4475
- "dev": true,
4476
- "requires": {
4477
- "ignore-walk": "^3.0.1",
4478
- "npm-bundled": "^1.0.1"
4479
- }
4480
- },
4481
- "npm-pick-manifest": {
4482
- "version": "2.1.0",
4483
- "bundled": true,
4484
- "dev": true,
4485
- "requires": {
4486
- "npm-package-arg": "^6.0.0",
4487
- "semver": "^5.4.1"
4488
- }
4489
- },
4490
- "npm-profile": {
4491
- "version": "3.0.2",
4492
- "bundled": true,
4493
- "dev": true,
4494
- "requires": {
4495
- "aproba": "^1.1.2 || 2",
4496
- "make-fetch-happen": "^2.5.0 || 3 || 4"
4497
- }
4498
- },
4499
- "npm-registry-client": {
4500
- "version": "8.6.0",
4501
- "bundled": true,
4502
- "dev": true,
4503
- "requires": {
4504
- "concat-stream": "^1.5.2",
4505
- "graceful-fs": "^4.1.6",
4506
- "normalize-package-data": "~1.0.1 || ^2.0.0",
4507
- "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
4508
- "npmlog": "2 || ^3.1.0 || ^4.0.0",
4509
- "once": "^1.3.3",
4510
- "request": "^2.74.0",
4511
- "retry": "^0.10.0",
4512
- "safe-buffer": "^5.1.1",
4513
- "semver": "2 >=2.2.1 || 3.x || 4 || 5",
4514
- "slide": "^1.1.3",
4515
- "ssri": "^5.2.4"
4516
- },
4517
- "dependencies": {
4518
- "retry": {
4519
- "version": "0.10.1",
4520
- "bundled": true,
4521
- "dev": true
4522
- },
4523
- "ssri": {
4524
- "version": "5.3.0",
4525
- "bundled": true,
4526
- "dev": true,
4527
- "requires": {
4528
- "safe-buffer": "^5.1.1"
4529
- }
4530
- }
4531
- }
4532
- },
4533
- "npm-registry-fetch": {
4534
- "version": "1.1.0",
4535
- "bundled": true,
4536
- "dev": true,
4537
- "requires": {
4538
- "bluebird": "^3.5.1",
4539
- "figgy-pudding": "^2.0.1",
4540
- "lru-cache": "^4.1.2",
4541
- "make-fetch-happen": "^3.0.0",
4542
- "npm-package-arg": "^6.0.0",
4543
- "safe-buffer": "^5.1.1"
4544
- },
4545
- "dependencies": {
4546
- "cacache": {
4547
- "version": "10.0.4",
4548
- "bundled": true,
4549
- "dev": true,
4550
- "requires": {
4551
- "bluebird": "^3.5.1",
4552
- "chownr": "^1.0.1",
4553
- "glob": "^7.1.2",
4554
- "graceful-fs": "^4.1.11",
4555
- "lru-cache": "^4.1.1",
4556
- "mississippi": "^2.0.0",
4557
- "mkdirp": "^0.5.1",
4558
- "move-concurrently": "^1.0.1",
4559
- "promise-inflight": "^1.0.1",
4560
- "rimraf": "^2.6.2",
4561
- "ssri": "^5.2.4",
4562
- "unique-filename": "^1.1.0",
4563
- "y18n": "^4.0.0"
4564
- },
4565
- "dependencies": {
4566
- "mississippi": {
4567
- "version": "2.0.0",
4568
- "bundled": true,
4569
- "dev": true,
4570
- "requires": {
4571
- "concat-stream": "^1.5.0",
4572
- "duplexify": "^3.4.2",
4573
- "end-of-stream": "^1.1.0",
4574
- "flush-write-stream": "^1.0.0",
4575
- "from2": "^2.1.0",
4576
- "parallel-transform": "^1.1.0",
4577
- "pump": "^2.0.1",
4578
- "pumpify": "^1.3.3",
4579
- "stream-each": "^1.1.0",
4580
- "through2": "^2.0.0"
4581
- }
4582
- }
4583
- }
4584
- },
4585
- "figgy-pudding": {
4586
- "version": "2.0.1",
4587
- "bundled": true,
4588
- "dev": true
4589
- },
4590
- "make-fetch-happen": {
4591
- "version": "3.0.0",
4592
- "bundled": true,
4593
- "dev": true,
4594
- "requires": {
4595
- "agentkeepalive": "^3.4.1",
4596
- "cacache": "^10.0.4",
4597
- "http-cache-semantics": "^3.8.1",
4598
- "http-proxy-agent": "^2.1.0",
4599
- "https-proxy-agent": "^2.2.0",
4600
- "lru-cache": "^4.1.2",
4601
- "mississippi": "^3.0.0",
4602
- "node-fetch-npm": "^2.0.2",
4603
- "promise-retry": "^1.1.1",
4604
- "socks-proxy-agent": "^3.0.1",
4605
- "ssri": "^5.2.4"
4606
- }
4607
- },
4608
- "pump": {
4609
- "version": "2.0.1",
4610
- "bundled": true,
4611
- "dev": true,
4612
- "requires": {
4613
- "end-of-stream": "^1.1.0",
4614
- "once": "^1.3.1"
4615
- }
4616
- },
4617
- "smart-buffer": {
4618
- "version": "1.1.15",
4619
- "bundled": true,
4620
- "dev": true
4621
- },
4622
- "socks": {
4623
- "version": "1.1.10",
4624
- "bundled": true,
4625
- "dev": true,
4626
- "requires": {
4627
- "ip": "^1.1.4",
4628
- "smart-buffer": "^1.0.13"
4629
- }
4630
- },
4631
- "socks-proxy-agent": {
4632
- "version": "3.0.1",
4633
- "bundled": true,
4634
- "dev": true,
4635
- "requires": {
4636
- "agent-base": "^4.1.0",
4637
- "socks": "^1.1.10"
4638
- }
4639
- },
4640
- "ssri": {
4641
- "version": "5.3.0",
4642
- "bundled": true,
4643
- "dev": true,
4644
- "requires": {
4645
- "safe-buffer": "^5.1.1"
4646
- }
4647
- }
4648
- }
4649
- },
4650
- "npm-run-path": {
4651
- "version": "2.0.2",
4652
- "bundled": true,
4653
- "dev": true,
4654
- "requires": {
4655
- "path-key": "^2.0.0"
4656
- }
4657
- },
4658
- "npm-user-validate": {
4659
- "version": "1.0.0",
4660
- "bundled": true,
4661
- "dev": true
4662
- },
4663
- "npmlog": {
4664
- "version": "4.1.2",
4665
- "bundled": true,
4666
- "dev": true,
4667
- "requires": {
4668
- "are-we-there-yet": "~1.1.2",
4669
- "console-control-strings": "~1.1.0",
4670
- "gauge": "~2.7.3",
4671
- "set-blocking": "~2.0.0"
4672
- }
4673
- },
4674
- "number-is-nan": {
4675
- "version": "1.0.1",
4676
- "bundled": true,
4677
- "dev": true
4678
- },
4679
- "oauth-sign": {
4680
- "version": "0.9.0",
4681
- "bundled": true,
4682
- "dev": true
4683
- },
4684
- "object-assign": {
4685
- "version": "4.1.1",
4686
- "bundled": true,
4687
- "dev": true
4688
- },
4689
- "once": {
4690
- "version": "1.4.0",
4691
- "bundled": true,
4692
- "dev": true,
4693
- "requires": {
4694
- "wrappy": "1"
4695
- }
4696
- },
4697
- "opener": {
4698
- "version": "1.5.1",
4699
- "bundled": true,
4700
- "dev": true
4701
- },
4702
- "os-homedir": {
4703
- "version": "1.0.2",
4704
- "bundled": true,
4705
- "dev": true
4706
- },
4707
- "os-locale": {
4708
- "version": "2.1.0",
4709
- "bundled": true,
4710
- "dev": true,
4711
- "requires": {
4712
- "execa": "^0.7.0",
4713
- "lcid": "^1.0.0",
4714
- "mem": "^1.1.0"
4715
- }
4716
- },
4717
- "os-tmpdir": {
4718
- "version": "1.0.2",
4719
- "bundled": true,
4720
- "dev": true
4721
- },
4722
- "osenv": {
4723
- "version": "0.1.5",
4724
- "bundled": true,
4725
- "dev": true,
4726
- "requires": {
4727
- "os-homedir": "^1.0.0",
4728
- "os-tmpdir": "^1.0.0"
4729
- }
4730
- },
4731
- "p-finally": {
4732
- "version": "1.0.0",
4733
- "bundled": true,
4734
- "dev": true
4735
- },
4736
- "p-limit": {
4737
- "version": "1.2.0",
4738
- "bundled": true,
4739
- "dev": true,
4740
- "requires": {
4741
- "p-try": "^1.0.0"
4742
- }
4743
- },
4744
- "p-locate": {
4745
- "version": "2.0.0",
4746
- "bundled": true,
4747
- "dev": true,
4748
- "requires": {
4749
- "p-limit": "^1.1.0"
4750
- }
4751
- },
4752
- "p-try": {
4753
- "version": "1.0.0",
4754
- "bundled": true,
4755
- "dev": true
4756
- },
4757
- "package-json": {
4758
- "version": "4.0.1",
4759
- "bundled": true,
4760
- "dev": true,
4761
- "requires": {
4762
- "got": "^6.7.1",
4763
- "registry-auth-token": "^3.0.1",
4764
- "registry-url": "^3.0.3",
4765
- "semver": "^5.1.0"
4766
- }
4767
- },
4768
- "pacote": {
4769
- "version": "8.1.6",
4770
- "bundled": true,
4771
- "dev": true,
4772
- "requires": {
4773
- "bluebird": "^3.5.1",
4774
- "cacache": "^11.0.2",
4775
- "get-stream": "^3.0.0",
4776
- "glob": "^7.1.2",
4777
- "lru-cache": "^4.1.3",
4778
- "make-fetch-happen": "^4.0.1",
4779
- "minimatch": "^3.0.4",
4780
- "minipass": "^2.3.3",
4781
- "mississippi": "^3.0.0",
4782
- "mkdirp": "^0.5.1",
4783
- "normalize-package-data": "^2.4.0",
4784
- "npm-package-arg": "^6.1.0",
4785
- "npm-packlist": "^1.1.10",
4786
- "npm-pick-manifest": "^2.1.0",
4787
- "osenv": "^0.1.5",
4788
- "promise-inflight": "^1.0.1",
4789
- "promise-retry": "^1.1.1",
4790
- "protoduck": "^5.0.0",
4791
- "rimraf": "^2.6.2",
4792
- "safe-buffer": "^5.1.2",
4793
- "semver": "^5.5.0",
4794
- "ssri": "^6.0.0",
4795
- "tar": "^4.4.3",
4796
- "unique-filename": "^1.1.0",
4797
- "which": "^1.3.0"
4798
- }
4799
- },
4800
- "parallel-transform": {
4801
- "version": "1.1.0",
4802
- "bundled": true,
4803
- "dev": true,
4804
- "requires": {
4805
- "cyclist": "~0.2.2",
4806
- "inherits": "^2.0.3",
4807
- "readable-stream": "^2.1.5"
4808
- }
4809
- },
4810
- "path-exists": {
4811
- "version": "3.0.0",
4812
- "bundled": true,
4813
- "dev": true
4814
- },
4815
- "path-is-absolute": {
4816
- "version": "1.0.1",
4817
- "bundled": true,
4818
- "dev": true
4819
- },
4820
- "path-is-inside": {
4821
- "version": "1.0.2",
4822
- "bundled": true,
4823
- "dev": true
4824
- },
4825
- "path-key": {
4826
- "version": "2.0.1",
4827
- "bundled": true,
4828
- "dev": true
4829
- },
4830
- "performance-now": {
4831
- "version": "2.1.0",
4832
- "bundled": true,
4833
- "dev": true
4834
- },
4835
- "pify": {
4836
- "version": "3.0.0",
4837
- "bundled": true,
4838
- "dev": true
4839
- },
4840
- "prepend-http": {
4841
- "version": "1.0.4",
4842
- "bundled": true,
4843
- "dev": true
4844
- },
4845
- "process-nextick-args": {
4846
- "version": "2.0.0",
4847
- "bundled": true,
4848
- "dev": true
4849
- },
4850
- "promise-inflight": {
4851
- "version": "1.0.1",
4852
- "bundled": true,
4853
- "dev": true
4854
- },
4855
- "promise-retry": {
4856
- "version": "1.1.1",
4857
- "bundled": true,
4858
- "dev": true,
4859
- "requires": {
4860
- "err-code": "^1.0.0",
4861
- "retry": "^0.10.0"
4862
- },
4863
- "dependencies": {
4864
- "retry": {
4865
- "version": "0.10.1",
4866
- "bundled": true,
4867
- "dev": true
4868
- }
4869
- }
4870
- },
4871
- "promzard": {
4872
- "version": "0.3.0",
4873
- "bundled": true,
4874
- "dev": true,
4875
- "requires": {
4876
- "read": "1"
4877
- }
4878
- },
4879
- "proto-list": {
4880
- "version": "1.2.4",
4881
- "bundled": true,
4882
- "dev": true
4883
- },
4884
- "protoduck": {
4885
- "version": "5.0.0",
4886
- "bundled": true,
4887
- "dev": true,
4888
- "requires": {
4889
- "genfun": "^4.0.1"
4890
- }
4891
- },
4892
- "prr": {
4893
- "version": "1.0.1",
4894
- "bundled": true,
4895
- "dev": true
4896
- },
4897
- "pseudomap": {
4898
- "version": "1.0.2",
4899
- "bundled": true,
4900
- "dev": true
4901
- },
4902
- "psl": {
4903
- "version": "1.1.29",
4904
- "bundled": true,
4905
- "dev": true
4906
- },
4907
- "pump": {
4908
- "version": "3.0.0",
4909
- "bundled": true,
4910
- "dev": true,
4911
- "requires": {
4912
- "end-of-stream": "^1.1.0",
4913
- "once": "^1.3.1"
4914
- }
4915
- },
4916
- "pumpify": {
4917
- "version": "1.5.1",
4918
- "bundled": true,
4919
- "dev": true,
4920
- "requires": {
4921
- "duplexify": "^3.6.0",
4922
- "inherits": "^2.0.3",
4923
- "pump": "^2.0.0"
4924
- },
4925
- "dependencies": {
4926
- "pump": {
4927
- "version": "2.0.1",
4928
- "bundled": true,
4929
- "dev": true,
4930
- "requires": {
4931
- "end-of-stream": "^1.1.0",
4932
- "once": "^1.3.1"
4933
- }
4934
- }
4935
- }
4936
- },
4937
- "punycode": {
4938
- "version": "1.4.1",
4939
- "bundled": true,
4940
- "dev": true
4941
- },
4942
- "qrcode-terminal": {
4943
- "version": "0.12.0",
4944
- "bundled": true,
4945
- "dev": true
4946
- },
4947
- "qs": {
4948
- "version": "6.5.2",
4949
- "bundled": true,
4950
- "dev": true
4951
- },
4952
- "query-string": {
4953
- "version": "6.1.0",
4954
- "bundled": true,
4955
- "dev": true,
4956
- "requires": {
4957
- "decode-uri-component": "^0.2.0",
4958
- "strict-uri-encode": "^2.0.0"
4959
- }
4960
- },
4961
- "qw": {
4962
- "version": "1.0.1",
4963
- "bundled": true,
4964
- "dev": true
4965
- },
4966
- "rc": {
4967
- "version": "1.2.7",
4968
- "bundled": true,
4969
- "dev": true,
4970
- "requires": {
4971
- "deep-extend": "^0.5.1",
4972
- "ini": "~1.3.0",
4973
- "minimist": "^1.2.0",
4974
- "strip-json-comments": "~2.0.1"
4975
- },
4976
- "dependencies": {
4977
- "minimist": {
4978
- "version": "1.2.0",
4979
- "bundled": true,
4980
- "dev": true
4981
- }
4982
- }
4983
- },
4984
- "read": {
4985
- "version": "1.0.7",
4986
- "bundled": true,
4987
- "dev": true,
4988
- "requires": {
4989
- "mute-stream": "~0.0.4"
4990
- }
4991
- },
4992
- "read-cmd-shim": {
4993
- "version": "1.0.1",
4994
- "bundled": true,
4995
- "dev": true,
4996
- "requires": {
4997
- "graceful-fs": "^4.1.2"
4998
- }
4999
- },
5000
- "read-installed": {
5001
- "version": "4.0.3",
5002
- "bundled": true,
5003
- "dev": true,
5004
- "requires": {
5005
- "debuglog": "^1.0.1",
5006
- "graceful-fs": "^4.1.2",
5007
- "read-package-json": "^2.0.0",
5008
- "readdir-scoped-modules": "^1.0.0",
5009
- "semver": "2 || 3 || 4 || 5",
5010
- "slide": "~1.1.3",
5011
- "util-extend": "^1.0.1"
5012
- }
5013
- },
5014
- "read-package-json": {
5015
- "version": "2.0.13",
5016
- "bundled": true,
5017
- "dev": true,
5018
- "requires": {
5019
- "glob": "^7.1.1",
5020
- "graceful-fs": "^4.1.2",
5021
- "json-parse-better-errors": "^1.0.1",
5022
- "normalize-package-data": "^2.0.0",
5023
- "slash": "^1.0.0"
5024
- }
5025
- },
5026
- "read-package-tree": {
5027
- "version": "5.2.1",
5028
- "bundled": true,
5029
- "dev": true,
5030
- "requires": {
5031
- "debuglog": "^1.0.1",
5032
- "dezalgo": "^1.0.0",
5033
- "once": "^1.3.0",
5034
- "read-package-json": "^2.0.0",
5035
- "readdir-scoped-modules": "^1.0.0"
5036
- }
5037
- },
5038
- "readable-stream": {
5039
- "version": "2.3.6",
5040
- "bundled": true,
5041
- "dev": true,
5042
- "requires": {
5043
- "core-util-is": "~1.0.0",
5044
- "inherits": "~2.0.3",
5045
- "isarray": "~1.0.0",
5046
- "process-nextick-args": "~2.0.0",
5047
- "safe-buffer": "~5.1.1",
5048
- "string_decoder": "~1.1.1",
5049
- "util-deprecate": "~1.0.1"
5050
- }
5051
- },
5052
- "readdir-scoped-modules": {
5053
- "version": "1.0.2",
5054
- "bundled": true,
5055
- "dev": true,
5056
- "requires": {
5057
- "debuglog": "^1.0.1",
5058
- "dezalgo": "^1.0.0",
5059
- "graceful-fs": "^4.1.2",
5060
- "once": "^1.3.0"
5061
- }
5062
- },
5063
- "registry-auth-token": {
5064
- "version": "3.3.2",
5065
- "bundled": true,
5066
- "dev": true,
5067
- "requires": {
5068
- "rc": "^1.1.6",
5069
- "safe-buffer": "^5.0.1"
5070
- }
5071
- },
5072
- "registry-url": {
5073
- "version": "3.1.0",
5074
- "bundled": true,
5075
- "dev": true,
5076
- "requires": {
5077
- "rc": "^1.0.1"
5078
- }
5079
- },
5080
- "request": {
5081
- "version": "2.88.0",
5082
- "bundled": true,
5083
- "dev": true,
5084
- "requires": {
5085
- "aws-sign2": "~0.7.0",
5086
- "aws4": "^1.8.0",
5087
- "caseless": "~0.12.0",
5088
- "combined-stream": "~1.0.6",
5089
- "extend": "~3.0.2",
5090
- "forever-agent": "~0.6.1",
5091
- "form-data": "~2.3.2",
5092
- "har-validator": "~5.1.0",
5093
- "http-signature": "~1.2.0",
5094
- "is-typedarray": "~1.0.0",
5095
- "isstream": "~0.1.2",
5096
- "json-stringify-safe": "~5.0.1",
5097
- "mime-types": "~2.1.19",
5098
- "oauth-sign": "~0.9.0",
5099
- "performance-now": "^2.1.0",
5100
- "qs": "~6.5.2",
5101
- "safe-buffer": "^5.1.2",
5102
- "tough-cookie": "~2.4.3",
5103
- "tunnel-agent": "^0.6.0",
5104
- "uuid": "^3.3.2"
5105
- }
5106
- },
5107
- "require-directory": {
5108
- "version": "2.1.1",
5109
- "bundled": true,
5110
- "dev": true
5111
- },
5112
- "require-main-filename": {
5113
- "version": "1.0.1",
5114
- "bundled": true,
5115
- "dev": true
5116
- },
5117
- "resolve-from": {
5118
- "version": "4.0.0",
5119
- "bundled": true,
5120
- "dev": true
5121
- },
5122
- "retry": {
5123
- "version": "0.12.0",
5124
- "bundled": true,
5125
- "dev": true
5126
- },
5127
- "rimraf": {
5128
- "version": "2.6.2",
5129
- "bundled": true,
5130
- "dev": true,
5131
- "requires": {
5132
- "glob": "^7.0.5"
5133
- }
5134
- },
5135
- "run-queue": {
5136
- "version": "1.0.3",
5137
- "bundled": true,
5138
- "dev": true,
5139
- "requires": {
5140
- "aproba": "^1.1.1"
5141
- }
5142
- },
5143
- "safe-buffer": {
5144
- "version": "5.1.2",
5145
- "bundled": true,
5146
- "dev": true
5147
- },
5148
- "safer-buffer": {
5149
- "version": "2.1.2",
5150
- "bundled": true,
5151
- "dev": true
5152
- },
5153
- "semver": {
5154
- "version": "5.5.1",
5155
- "bundled": true,
5156
- "dev": true
5157
- },
5158
- "semver-diff": {
5159
- "version": "2.1.0",
5160
- "bundled": true,
5161
- "dev": true,
5162
- "requires": {
5163
- "semver": "^5.0.3"
5164
- }
5165
- },
5166
- "set-blocking": {
5167
- "version": "2.0.0",
5168
- "bundled": true,
5169
- "dev": true
5170
- },
5171
- "sha": {
5172
- "version": "2.0.1",
5173
- "bundled": true,
5174
- "dev": true,
5175
- "requires": {
5176
- "graceful-fs": "^4.1.2",
5177
- "readable-stream": "^2.0.2"
5178
- }
5179
- },
5180
- "shebang-command": {
5181
- "version": "1.2.0",
5182
- "bundled": true,
5183
- "dev": true,
5184
- "requires": {
5185
- "shebang-regex": "^1.0.0"
5186
- }
5187
- },
5188
- "shebang-regex": {
5189
- "version": "1.0.0",
5190
- "bundled": true,
5191
- "dev": true
5192
- },
5193
- "signal-exit": {
5194
- "version": "3.0.2",
5195
- "bundled": true,
5196
- "dev": true
5197
- },
5198
- "slash": {
5199
- "version": "1.0.0",
5200
- "bundled": true,
5201
- "dev": true
5202
- },
5203
- "slide": {
5204
- "version": "1.1.6",
5205
- "bundled": true,
5206
- "dev": true
5207
- },
5208
- "smart-buffer": {
5209
- "version": "4.0.1",
5210
- "bundled": true,
5211
- "dev": true
5212
- },
5213
- "socks": {
5214
- "version": "2.2.0",
5215
- "bundled": true,
5216
- "dev": true,
5217
- "requires": {
5218
- "ip": "^1.1.5",
5219
- "smart-buffer": "^4.0.1"
5220
- }
5221
- },
5222
- "socks-proxy-agent": {
5223
- "version": "4.0.1",
5224
- "bundled": true,
5225
- "dev": true,
5226
- "requires": {
5227
- "agent-base": "~4.2.0",
5228
- "socks": "~2.2.0"
5229
- }
5230
- },
5231
- "sorted-object": {
5232
- "version": "2.0.1",
5233
- "bundled": true,
5234
- "dev": true
5235
- },
5236
- "sorted-union-stream": {
5237
- "version": "2.1.3",
5238
- "bundled": true,
5239
- "dev": true,
5240
- "requires": {
5241
- "from2": "^1.3.0",
5242
- "stream-iterate": "^1.1.0"
5243
- },
5244
- "dependencies": {
5245
- "from2": {
5246
- "version": "1.3.0",
5247
- "bundled": true,
5248
- "dev": true,
5249
- "requires": {
5250
- "inherits": "~2.0.1",
5251
- "readable-stream": "~1.1.10"
5252
- }
5253
- },
5254
- "isarray": {
5255
- "version": "0.0.1",
5256
- "bundled": true,
5257
- "dev": true
5258
- },
5259
- "readable-stream": {
5260
- "version": "1.1.14",
5261
- "bundled": true,
5262
- "dev": true,
5263
- "requires": {
5264
- "core-util-is": "~1.0.0",
5265
- "inherits": "~2.0.1",
5266
- "isarray": "0.0.1",
5267
- "string_decoder": "~0.10.x"
5268
- }
5269
- },
5270
- "string_decoder": {
5271
- "version": "0.10.31",
5272
- "bundled": true,
5273
- "dev": true
5274
- }
5275
- }
5276
- },
5277
- "spdx-correct": {
5278
- "version": "3.0.0",
5279
- "bundled": true,
5280
- "dev": true,
5281
- "requires": {
5282
- "spdx-expression-parse": "^3.0.0",
5283
- "spdx-license-ids": "^3.0.0"
5284
- }
5285
- },
5286
- "spdx-exceptions": {
5287
- "version": "2.1.0",
5288
- "bundled": true,
5289
- "dev": true
5290
- },
5291
- "spdx-expression-parse": {
5292
- "version": "3.0.0",
5293
- "bundled": true,
5294
- "dev": true,
5295
- "requires": {
5296
- "spdx-exceptions": "^2.1.0",
5297
- "spdx-license-ids": "^3.0.0"
5298
- }
5299
- },
5300
- "spdx-license-ids": {
5301
- "version": "3.0.0",
5302
- "bundled": true,
5303
- "dev": true
5304
- },
5305
- "sshpk": {
5306
- "version": "1.14.2",
5307
- "bundled": true,
5308
- "dev": true,
5309
- "requires": {
5310
- "asn1": "~0.2.3",
5311
- "assert-plus": "^1.0.0",
5312
- "bcrypt-pbkdf": "^1.0.0",
5313
- "dashdash": "^1.12.0",
5314
- "ecc-jsbn": "~0.1.1",
5315
- "getpass": "^0.1.1",
5316
- "jsbn": "~0.1.0",
5317
- "safer-buffer": "^2.0.2",
5318
- "tweetnacl": "~0.14.0"
5319
- }
5320
- },
5321
- "ssri": {
5322
- "version": "6.0.1",
5323
- "bundled": true,
5324
- "dev": true,
5325
- "requires": {
5326
- "figgy-pudding": "^3.5.1"
5327
- }
5328
- },
5329
- "stream-each": {
5330
- "version": "1.2.2",
5331
- "bundled": true,
5332
- "dev": true,
5333
- "requires": {
5334
- "end-of-stream": "^1.1.0",
5335
- "stream-shift": "^1.0.0"
5336
- }
5337
- },
5338
- "stream-iterate": {
5339
- "version": "1.2.0",
5340
- "bundled": true,
5341
- "dev": true,
5342
- "requires": {
5343
- "readable-stream": "^2.1.5",
5344
- "stream-shift": "^1.0.0"
5345
- }
5346
- },
5347
- "stream-shift": {
5348
- "version": "1.0.0",
5349
- "bundled": true,
5350
- "dev": true
5351
- },
5352
- "strict-uri-encode": {
5353
- "version": "2.0.0",
5354
- "bundled": true,
5355
- "dev": true
5356
- },
5357
- "string-width": {
5358
- "version": "2.1.1",
5359
- "bundled": true,
5360
- "dev": true,
5361
- "requires": {
5362
- "is-fullwidth-code-point": "^2.0.0",
5363
- "strip-ansi": "^4.0.0"
5364
- },
5365
- "dependencies": {
5366
- "ansi-regex": {
5367
- "version": "3.0.0",
5368
- "bundled": true,
5369
- "dev": true
5370
- },
5371
- "is-fullwidth-code-point": {
5372
- "version": "2.0.0",
5373
- "bundled": true,
5374
- "dev": true
5375
- },
5376
- "strip-ansi": {
5377
- "version": "4.0.0",
5378
- "bundled": true,
5379
- "dev": true,
5380
- "requires": {
5381
- "ansi-regex": "^3.0.0"
5382
- }
5383
- }
5384
- }
5385
- },
5386
- "string_decoder": {
5387
- "version": "1.1.1",
5388
- "bundled": true,
5389
- "dev": true,
5390
- "requires": {
5391
- "safe-buffer": "~5.1.0"
5392
- }
5393
- },
5394
- "stringify-package": {
5395
- "version": "1.0.0",
5396
- "bundled": true,
5397
- "dev": true
5398
- },
5399
- "strip-ansi": {
5400
- "version": "3.0.1",
5401
- "bundled": true,
5402
- "dev": true,
5403
- "requires": {
5404
- "ansi-regex": "^2.0.0"
5405
- }
5406
- },
5407
- "strip-eof": {
5408
- "version": "1.0.0",
5409
- "bundled": true,
5410
- "dev": true
5411
- },
5412
- "strip-json-comments": {
5413
- "version": "2.0.1",
5414
- "bundled": true,
5415
- "dev": true
5416
- },
5417
- "supports-color": {
5418
- "version": "5.4.0",
5419
- "bundled": true,
5420
- "dev": true,
5421
- "requires": {
5422
- "has-flag": "^3.0.0"
5423
- }
5424
- },
5425
- "tar": {
5426
- "version": "4.4.8",
5427
- "bundled": true,
5428
- "dev": true,
5429
- "requires": {
5430
- "chownr": "^1.1.1",
5431
- "fs-minipass": "^1.2.5",
5432
- "minipass": "^2.3.4",
5433
- "minizlib": "^1.1.1",
5434
- "mkdirp": "^0.5.0",
5435
- "safe-buffer": "^5.1.2",
5436
- "yallist": "^3.0.2"
5437
- },
5438
- "dependencies": {
5439
- "chownr": {
5440
- "version": "1.1.1",
5441
- "bundled": true,
5442
- "dev": true
5443
- },
5444
- "minipass": {
5445
- "version": "2.3.5",
5446
- "bundled": true,
5447
- "dev": true,
5448
- "requires": {
5449
- "safe-buffer": "^5.1.2",
5450
- "yallist": "^3.0.0"
5451
- }
5452
- },
5453
- "yallist": {
5454
- "version": "3.0.3",
5455
- "bundled": true,
5456
- "dev": true
5457
- }
5458
- }
5459
- },
5460
- "term-size": {
5461
- "version": "1.2.0",
5462
- "bundled": true,
5463
- "dev": true,
5464
- "requires": {
5465
- "execa": "^0.7.0"
5466
- }
5467
- },
5468
- "text-table": {
5469
- "version": "0.2.0",
5470
- "bundled": true,
5471
- "dev": true
5472
- },
5473
- "through": {
5474
- "version": "2.3.8",
5475
- "bundled": true,
5476
- "dev": true
5477
- },
5478
- "through2": {
5479
- "version": "2.0.3",
5480
- "bundled": true,
5481
- "dev": true,
5482
- "requires": {
5483
- "readable-stream": "^2.1.5",
5484
- "xtend": "~4.0.1"
5485
- }
5486
- },
5487
- "timed-out": {
5488
- "version": "4.0.1",
5489
- "bundled": true,
5490
- "dev": true
5491
- },
5492
- "tiny-relative-date": {
5493
- "version": "1.3.0",
5494
- "bundled": true,
5495
- "dev": true
5496
- },
5497
- "tough-cookie": {
5498
- "version": "2.4.3",
5499
- "bundled": true,
5500
- "dev": true,
5501
- "requires": {
5502
- "psl": "^1.1.24",
5503
- "punycode": "^1.4.1"
5504
- }
5505
- },
5506
- "tunnel-agent": {
5507
- "version": "0.6.0",
5508
- "bundled": true,
5509
- "dev": true,
5510
- "requires": {
5511
- "safe-buffer": "^5.0.1"
5512
- }
5513
- },
5514
- "tweetnacl": {
5515
- "version": "0.14.5",
5516
- "bundled": true,
5517
- "dev": true,
5518
- "optional": true
5519
- },
5520
- "typedarray": {
5521
- "version": "0.0.6",
5522
- "bundled": true,
5523
- "dev": true
5524
- },
5525
- "uid-number": {
5526
- "version": "0.0.6",
5527
- "bundled": true,
5528
- "dev": true
5529
- },
5530
- "umask": {
5531
- "version": "1.1.0",
5532
- "bundled": true,
5533
- "dev": true
5534
- },
5535
- "unique-filename": {
5536
- "version": "1.1.0",
5537
- "bundled": true,
5538
- "dev": true,
5539
- "requires": {
5540
- "unique-slug": "^2.0.0"
5541
- }
5542
- },
5543
- "unique-slug": {
5544
- "version": "2.0.0",
5545
- "bundled": true,
5546
- "dev": true,
5547
- "requires": {
5548
- "imurmurhash": "^0.1.4"
5549
- }
5550
- },
5551
- "unique-string": {
5552
- "version": "1.0.0",
5553
- "bundled": true,
5554
- "dev": true,
5555
- "requires": {
5556
- "crypto-random-string": "^1.0.0"
5557
- }
5558
- },
5559
- "unpipe": {
5560
- "version": "1.0.0",
5561
- "bundled": true,
5562
- "dev": true
5563
- },
5564
- "unzip-response": {
5565
- "version": "2.0.1",
5566
- "bundled": true,
5567
- "dev": true
5568
- },
5569
- "update-notifier": {
5570
- "version": "2.5.0",
5571
- "bundled": true,
5572
- "dev": true,
5573
- "requires": {
5574
- "boxen": "^1.2.1",
5575
- "chalk": "^2.0.1",
5576
- "configstore": "^3.0.0",
5577
- "import-lazy": "^2.1.0",
5578
- "is-ci": "^1.0.10",
5579
- "is-installed-globally": "^0.1.0",
5580
- "is-npm": "^1.0.0",
5581
- "latest-version": "^3.0.0",
5582
- "semver-diff": "^2.0.0",
5583
- "xdg-basedir": "^3.0.0"
5584
- }
5585
- },
5586
- "url-parse-lax": {
5587
- "version": "1.0.0",
5588
- "bundled": true,
5589
- "dev": true,
5590
- "requires": {
5591
- "prepend-http": "^1.0.1"
5592
- }
5593
- },
5594
- "util-deprecate": {
5595
- "version": "1.0.2",
5596
- "bundled": true,
5597
- "dev": true
5598
- },
5599
- "util-extend": {
5600
- "version": "1.0.3",
5601
- "bundled": true,
5602
- "dev": true
5603
- },
5604
- "uuid": {
5605
- "version": "3.3.2",
5606
- "bundled": true,
5607
- "dev": true
5608
- },
5609
- "validate-npm-package-license": {
5610
- "version": "3.0.4",
5611
- "bundled": true,
5612
- "dev": true,
5613
- "requires": {
5614
- "spdx-correct": "^3.0.0",
5615
- "spdx-expression-parse": "^3.0.0"
5616
- }
5617
- },
5618
- "validate-npm-package-name": {
5619
- "version": "3.0.0",
5620
- "bundled": true,
5621
- "dev": true,
5622
- "requires": {
5623
- "builtins": "^1.0.3"
5624
- }
5625
- },
5626
- "verror": {
5627
- "version": "1.10.0",
5628
- "bundled": true,
5629
- "dev": true,
5630
- "requires": {
5631
- "assert-plus": "^1.0.0",
5632
- "core-util-is": "1.0.2",
5633
- "extsprintf": "^1.2.0"
5634
- }
5635
- },
5636
- "wcwidth": {
5637
- "version": "1.0.1",
5638
- "bundled": true,
5639
- "dev": true,
5640
- "requires": {
5641
- "defaults": "^1.0.3"
5642
- }
5643
- },
5644
- "which": {
5645
- "version": "1.3.1",
5646
- "bundled": true,
5647
- "dev": true,
5648
- "requires": {
5649
- "isexe": "^2.0.0"
5650
- }
5651
- },
5652
- "which-module": {
5653
- "version": "2.0.0",
5654
- "bundled": true,
5655
- "dev": true
5656
- },
5657
- "wide-align": {
5658
- "version": "1.1.2",
5659
- "bundled": true,
5660
- "dev": true,
5661
- "requires": {
5662
- "string-width": "^1.0.2"
5663
- },
5664
- "dependencies": {
5665
- "string-width": {
5666
- "version": "1.0.2",
5667
- "bundled": true,
5668
- "dev": true,
5669
- "requires": {
5670
- "code-point-at": "^1.0.0",
5671
- "is-fullwidth-code-point": "^1.0.0",
5672
- "strip-ansi": "^3.0.0"
5673
- }
5674
- }
5675
- }
5676
- },
5677
- "widest-line": {
5678
- "version": "2.0.0",
5679
- "bundled": true,
5680
- "dev": true,
5681
- "requires": {
5682
- "string-width": "^2.1.1"
5683
- }
5684
- },
5685
- "worker-farm": {
5686
- "version": "1.6.0",
5687
- "bundled": true,
5688
- "dev": true,
5689
- "requires": {
5690
- "errno": "~0.1.7"
5691
- }
5692
- },
5693
- "wrap-ansi": {
5694
- "version": "2.1.0",
5695
- "bundled": true,
5696
- "dev": true,
5697
- "requires": {
5698
- "string-width": "^1.0.1",
5699
- "strip-ansi": "^3.0.1"
5700
- },
5701
- "dependencies": {
5702
- "string-width": {
5703
- "version": "1.0.2",
5704
- "bundled": true,
5705
- "dev": true,
5706
- "requires": {
5707
- "code-point-at": "^1.0.0",
5708
- "is-fullwidth-code-point": "^1.0.0",
5709
- "strip-ansi": "^3.0.0"
5710
- }
5711
- }
5712
- }
5713
- },
5714
- "wrappy": {
5715
- "version": "1.0.2",
5716
- "bundled": true,
5717
- "dev": true
5718
- },
5719
- "write-file-atomic": {
5720
- "version": "2.3.0",
5721
- "bundled": true,
5722
- "dev": true,
5723
- "requires": {
5724
- "graceful-fs": "^4.1.11",
5725
- "imurmurhash": "^0.1.4",
5726
- "signal-exit": "^3.0.2"
5727
- }
5728
- },
5729
- "xdg-basedir": {
5730
- "version": "3.0.0",
5731
- "bundled": true,
5732
- "dev": true
5733
- },
5734
- "xtend": {
5735
- "version": "4.0.1",
5736
- "bundled": true,
5737
- "dev": true
5738
- },
5739
- "y18n": {
5740
- "version": "4.0.0",
5741
- "bundled": true,
5742
- "dev": true
5743
- },
5744
- "yallist": {
5745
- "version": "2.1.2",
5746
- "bundled": true,
5747
- "dev": true
5748
- },
5749
- "yargs": {
5750
- "version": "11.0.0",
5751
- "bundled": true,
5752
- "dev": true,
5753
- "requires": {
5754
- "cliui": "^4.0.0",
5755
- "decamelize": "^1.1.1",
5756
- "find-up": "^2.1.0",
5757
- "get-caller-file": "^1.0.1",
5758
- "os-locale": "^2.0.0",
5759
- "require-directory": "^2.1.1",
5760
- "require-main-filename": "^1.0.1",
5761
- "set-blocking": "^2.0.0",
5762
- "string-width": "^2.0.0",
5763
- "which-module": "^2.0.0",
5764
- "y18n": "^3.2.1",
5765
- "yargs-parser": "^9.0.2"
5766
- },
5767
- "dependencies": {
5768
- "y18n": {
5769
- "version": "3.2.1",
5770
- "bundled": true,
5771
- "dev": true
5772
- }
5773
- }
5774
- },
5775
- "yargs-parser": {
5776
- "version": "9.0.2",
5777
- "bundled": true,
5778
- "dev": true,
5779
- "requires": {
5780
- "camelcase": "^4.1.0"
5781
- }
5782
- }
5783
- }
5784
- },
5785
- "npm-run-path": {
5786
- "version": "2.0.2",
5787
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
5788
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
5789
- "dev": true,
5790
- "requires": {
5791
- "path-key": "^2.0.0"
5792
- }
5793
- },
5794
- "number-is-nan": {
5795
- "version": "1.0.1",
5796
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
5797
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
5798
- "dev": true
5799
- },
5800
- "object-assign": {
5801
- "version": "4.1.1",
5802
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
5803
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
5804
- "dev": true
5805
- },
5806
- "object-copy": {
5807
- "version": "0.1.0",
5808
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
5809
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
5810
- "dev": true,
5811
- "requires": {
5812
- "copy-descriptor": "^0.1.0",
5813
- "define-property": "^0.2.5",
5814
- "kind-of": "^3.0.3"
5815
- },
5816
- "dependencies": {
5817
- "define-property": {
5818
- "version": "0.2.5",
5819
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
5820
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
5821
- "dev": true,
5822
- "requires": {
5823
- "is-descriptor": "^0.1.0"
5824
- }
5825
- },
5826
- "kind-of": {
5827
- "version": "3.2.2",
5828
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
5829
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
5830
- "dev": true,
5831
- "requires": {
5832
- "is-buffer": "^1.1.5"
5833
- }
5834
- }
5835
- }
5836
- },
5837
- "object-visit": {
5838
- "version": "1.0.1",
5839
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
5840
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
5841
- "dev": true,
5842
- "requires": {
5843
- "isobject": "^3.0.0"
5844
- }
5845
- },
5846
- "object.pick": {
5847
- "version": "1.3.0",
5848
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
5849
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
5850
- "dev": true,
5851
- "requires": {
5852
- "isobject": "^3.0.1"
5853
- }
5854
- },
5855
- "octokit-pagination-methods": {
5856
- "version": "1.1.0",
5857
- "resolved": "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz",
5858
- "integrity": "sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==",
5859
- "dev": true
5860
- },
5861
- "once": {
5862
- "version": "1.4.0",
5863
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
5864
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5865
- "dev": true,
5866
- "requires": {
5867
- "wrappy": "1"
5868
- }
5869
- },
5870
- "optimist": {
5871
- "version": "0.6.1",
5872
- "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
5873
- "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
5874
- "dev": true,
5875
- "requires": {
5876
- "minimist": "~0.0.1",
5877
- "wordwrap": "~0.0.2"
5878
- },
5879
- "dependencies": {
5880
- "minimist": {
5881
- "version": "0.0.10",
5882
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
5883
- "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
5884
- "dev": true
5885
- }
5886
- }
5887
- },
5888
- "os-locale": {
5889
- "version": "3.0.1",
5890
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz",
5891
- "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==",
5892
- "dev": true,
5893
- "requires": {
5894
- "execa": "^0.10.0",
5895
- "lcid": "^2.0.0",
5896
- "mem": "^4.0.0"
5897
- },
5898
- "dependencies": {
5899
- "execa": {
5900
- "version": "0.10.0",
5901
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
5902
- "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
5903
- "dev": true,
5904
- "requires": {
5905
- "cross-spawn": "^6.0.0",
5906
- "get-stream": "^3.0.0",
5907
- "is-stream": "^1.1.0",
5908
- "npm-run-path": "^2.0.0",
5909
- "p-finally": "^1.0.0",
5910
- "signal-exit": "^3.0.0",
5911
- "strip-eof": "^1.0.0"
5912
- }
5913
- },
5914
- "get-stream": {
5915
- "version": "3.0.0",
5916
- "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
5917
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
5918
- "dev": true
5919
- }
5920
- }
5921
- },
5922
- "os-name": {
5923
- "version": "3.0.0",
5924
- "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.0.0.tgz",
5925
- "integrity": "sha512-7c74tib2FsdFbQ3W+qj8Tyd1R3Z6tuVRNNxXjJcZ4NgjIEQU9N/prVMqcW29XZPXGACqaXN3jq58/6hoaoXH6g==",
5926
- "dev": true,
5927
- "requires": {
5928
- "macos-release": "^2.0.0",
5929
- "windows-release": "^3.1.0"
5930
- }
5931
- },
5932
- "p-defer": {
5933
- "version": "1.0.0",
5934
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
5935
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
5936
- "dev": true
5937
- },
5938
- "p-filter": {
5939
- "version": "1.0.0",
5940
- "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-1.0.0.tgz",
5941
- "integrity": "sha1-Yp0xcVAgnI/VCLoTdxPvS7kg6ds=",
5942
- "dev": true,
5943
- "requires": {
5944
- "p-map": "^1.0.0"
5945
- }
5946
- },
5947
- "p-finally": {
5948
- "version": "1.0.0",
5949
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
5950
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
5951
- "dev": true
5952
- },
5953
- "p-is-promise": {
5954
- "version": "2.0.0",
5955
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz",
5956
- "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==",
5957
- "dev": true
5958
- },
5959
- "p-limit": {
5960
- "version": "1.3.0",
5961
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
5962
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
5963
- "dev": true,
5964
- "requires": {
5965
- "p-try": "^1.0.0"
5966
- }
5967
- },
5968
- "p-locate": {
5969
- "version": "3.0.0",
5970
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
5971
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
5972
- "dev": true,
5973
- "requires": {
5974
- "p-limit": "^2.0.0"
5975
- },
5976
- "dependencies": {
5977
- "p-limit": {
5978
- "version": "2.0.0",
5979
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz",
5980
- "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==",
5981
- "dev": true,
5982
- "requires": {
5983
- "p-try": "^2.0.0"
5984
- }
5985
- },
5986
- "p-try": {
5987
- "version": "2.0.0",
5988
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz",
5989
- "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==",
5990
- "dev": true
5991
- }
5992
- }
5993
- },
5994
- "p-map": {
5995
- "version": "1.2.0",
5996
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz",
5997
- "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
5998
- "dev": true
5999
- },
6000
- "p-reduce": {
6001
- "version": "1.0.0",
6002
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
6003
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
6004
- "dev": true
6005
- },
6006
- "p-retry": {
6007
- "version": "3.0.0",
6008
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.0.tgz",
6009
- "integrity": "sha512-fAB7bebxaj8nylNAsxPNkwPZ/48bXFdFnWrz0v2sV+H5BsGfVL7Ap7KgONqy7rOK4ZI1I+SU+lmettO3hM+2HQ==",
6010
- "dev": true,
6011
- "requires": {
6012
- "retry": "^0.12.0"
6013
- }
6014
- },
6015
- "p-try": {
6016
- "version": "1.0.0",
6017
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
6018
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
6019
- "dev": true
6020
- },
6021
- "parse-github-url": {
6022
- "version": "1.0.2",
6023
- "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz",
6024
- "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==",
6025
- "dev": true
6026
- },
6027
- "parse-json": {
6028
- "version": "4.0.0",
6029
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
6030
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
6031
- "dev": true,
6032
- "requires": {
6033
- "error-ex": "^1.3.1",
6034
- "json-parse-better-errors": "^1.0.1"
6035
- }
6036
- },
6037
- "pascalcase": {
6038
- "version": "0.1.1",
6039
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
6040
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
6041
- "dev": true
6042
- },
6043
- "path-dirname": {
6044
- "version": "1.0.2",
6045
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
6046
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
6047
- "dev": true
6048
- },
6049
- "path-exists": {
6050
- "version": "2.1.0",
6051
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
6052
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
6053
- "dev": true,
6054
- "requires": {
6055
- "pinkie-promise": "^2.0.0"
6056
- }
6057
- },
6058
- "path-is-absolute": {
6059
- "version": "1.0.1",
6060
- "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
6061
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
6062
- "dev": true
6063
- },
6064
- "path-key": {
6065
- "version": "2.0.1",
6066
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
6067
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
6068
- "dev": true
6069
- },
6070
- "path-type": {
6071
- "version": "3.0.0",
6072
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
6073
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
6074
- "dev": true,
6075
- "requires": {
6076
- "pify": "^3.0.0"
6077
- }
6078
- },
6079
- "pify": {
6080
- "version": "3.0.0",
6081
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
6082
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
6083
- "dev": true
6084
- },
6085
- "pinkie": {
6086
- "version": "2.0.4",
6087
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
6088
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
6089
- "dev": true
6090
- },
6091
- "pinkie-promise": {
6092
- "version": "2.0.1",
6093
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
6094
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
6095
- "dev": true,
6096
- "requires": {
6097
- "pinkie": "^2.0.0"
6098
- }
6099
- },
6100
- "pkg-conf": {
6101
- "version": "2.1.0",
6102
- "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz",
6103
- "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=",
6104
- "dev": true,
6105
- "requires": {
6106
- "find-up": "^2.0.0",
6107
- "load-json-file": "^4.0.0"
6108
- },
6109
- "dependencies": {
6110
- "find-up": {
6111
- "version": "2.1.0",
6112
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
6113
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
6114
- "dev": true,
6115
- "requires": {
6116
- "locate-path": "^2.0.0"
6117
- }
6118
- },
6119
- "load-json-file": {
6120
- "version": "4.0.0",
6121
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
6122
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
6123
- "dev": true,
6124
- "requires": {
6125
- "graceful-fs": "^4.1.2",
6126
- "parse-json": "^4.0.0",
6127
- "pify": "^3.0.0",
6128
- "strip-bom": "^3.0.0"
6129
- }
6130
- },
6131
- "strip-bom": {
6132
- "version": "3.0.0",
6133
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
6134
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
6135
- "dev": true
6136
- }
6137
- }
6138
- },
6139
- "posix-character-classes": {
6140
- "version": "0.1.1",
6141
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
6142
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
6143
- "dev": true
6144
- },
6145
- "process-nextick-args": {
6146
- "version": "2.0.0",
6147
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
6148
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
6149
- "dev": true
6150
- },
6151
- "pump": {
6152
- "version": "3.0.0",
6153
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
6154
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
6155
- "dev": true,
6156
- "requires": {
6157
- "end-of-stream": "^1.1.0",
6158
- "once": "^1.3.1"
6159
- }
6160
- },
6161
- "q": {
6162
- "version": "1.5.1",
6163
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
6164
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
6165
- "dev": true
6166
- },
6167
- "quick-lru": {
6168
- "version": "1.1.0",
6169
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
6170
- "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
6171
- "dev": true
6172
- },
6173
- "rc": {
6174
- "version": "1.2.8",
6175
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
6176
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
6177
- "dev": true,
6178
- "requires": {
6179
- "deep-extend": "^0.6.0",
6180
- "ini": "~1.3.0",
6181
- "minimist": "^1.2.0",
6182
- "strip-json-comments": "~2.0.1"
6183
- }
6184
- },
6185
- "read-pkg": {
6186
- "version": "1.1.0",
6187
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
6188
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
6189
- "dev": true,
6190
- "requires": {
6191
- "load-json-file": "^1.0.0",
6192
- "normalize-package-data": "^2.3.2",
6193
- "path-type": "^1.0.0"
6194
- },
6195
- "dependencies": {
6196
- "path-type": {
6197
- "version": "1.1.0",
6198
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
6199
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
6200
- "dev": true,
6201
- "requires": {
6202
- "graceful-fs": "^4.1.2",
6203
- "pify": "^2.0.0",
6204
- "pinkie-promise": "^2.0.0"
6205
- }
6206
- },
6207
- "pify": {
6208
- "version": "2.3.0",
6209
- "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
6210
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
6211
- "dev": true
6212
- }
6213
- }
6214
- },
6215
- "read-pkg-up": {
6216
- "version": "1.0.1",
6217
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
6218
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
6219
- "dev": true,
6220
- "requires": {
6221
- "find-up": "^1.0.0",
6222
- "read-pkg": "^1.0.0"
6223
- }
6224
- },
6225
- "readable-stream": {
6226
- "version": "2.3.6",
6227
- "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
6228
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
6229
- "dev": true,
6230
- "requires": {
6231
- "core-util-is": "~1.0.0",
6232
- "inherits": "~2.0.3",
6233
- "isarray": "~1.0.0",
6234
- "process-nextick-args": "~2.0.0",
6235
- "safe-buffer": "~5.1.1",
6236
- "string_decoder": "~1.1.1",
6237
- "util-deprecate": "~1.0.1"
6238
- }
6239
- },
6240
- "redent": {
6241
- "version": "1.0.0",
6242
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
6243
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
6244
- "dev": true,
6245
- "requires": {
6246
- "indent-string": "^2.1.0",
6247
- "strip-indent": "^1.0.1"
6248
- },
6249
- "dependencies": {
6250
- "indent-string": {
6251
- "version": "2.1.0",
6252
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
6253
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
6254
- "dev": true,
6255
- "requires": {
6256
- "repeating": "^2.0.0"
6257
- }
6258
- }
6259
- }
6260
- },
6261
- "redeyed": {
6262
- "version": "2.1.1",
6263
- "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
6264
- "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=",
6265
- "dev": true,
6266
- "requires": {
6267
- "esprima": "~4.0.0"
6268
- },
6269
- "dependencies": {
6270
- "esprima": {
6271
- "version": "4.0.1",
6272
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
6273
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
6274
- "dev": true
6275
- }
6276
- }
6277
- },
6278
- "regex-not": {
6279
- "version": "1.0.2",
6280
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
6281
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
6282
- "dev": true,
6283
- "requires": {
6284
- "extend-shallow": "^3.0.2",
6285
- "safe-regex": "^1.1.0"
6286
- }
6287
- },
6288
- "registry-auth-token": {
6289
- "version": "3.3.2",
6290
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
6291
- "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
6292
- "dev": true,
6293
- "requires": {
6294
- "rc": "^1.1.6",
6295
- "safe-buffer": "^5.0.1"
6296
- }
6297
- },
6298
- "repeat-element": {
6299
- "version": "1.1.3",
6300
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
6301
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
6302
- "dev": true
6303
- },
6304
- "repeat-string": {
6305
- "version": "1.6.1",
6306
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
6307
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
6308
- "dev": true
6309
- },
6310
- "repeating": {
6311
- "version": "2.0.1",
6312
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
6313
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
6314
- "dev": true,
6315
- "requires": {
6316
- "is-finite": "^1.0.0"
6317
- }
6318
- },
6319
- "require-directory": {
6320
- "version": "2.1.1",
6321
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
6322
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
6323
- "dev": true
6324
- },
6325
- "require-main-filename": {
6326
- "version": "1.0.1",
6327
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
6328
- "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
6329
- "dev": true
6330
- },
6331
- "resolve": {
6332
- "version": "1.1.7",
6333
- "resolved": "http://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
6334
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
6335
- "dev": true
6336
- },
6337
- "resolve-from": {
6338
- "version": "4.0.0",
6339
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
6340
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
6341
- "dev": true
6342
- },
6343
- "resolve-url": {
6344
- "version": "0.2.1",
6345
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
6346
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
6347
- "dev": true
6348
- },
6349
- "ret": {
6350
- "version": "0.1.15",
6351
- "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
6352
- "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
6353
- "dev": true
6354
- },
6355
- "retry": {
6356
- "version": "0.12.0",
6357
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
6358
- "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
6359
- "dev": true
6360
- },
6361
- "rimraf": {
6362
- "version": "2.6.2",
6363
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
6364
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
6365
- "dev": true,
6366
- "requires": {
6367
- "glob": "^7.0.5"
6368
- }
6369
- },
6370
- "safe-buffer": {
6371
- "version": "5.1.2",
6372
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
6373
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
6374
- "dev": true
6375
- },
6376
- "safe-regex": {
6377
- "version": "1.1.0",
6378
- "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
6379
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
6380
- "dev": true,
6381
- "requires": {
6382
- "ret": "~0.1.10"
6383
- }
6384
- },
6385
- "safer-buffer": {
6386
- "version": "2.1.2",
6387
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
6388
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
6389
- "dev": true
6390
- },
6391
- "semantic-release": {
6392
- "version": "15.13.1",
6393
- "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.1.tgz",
6394
- "integrity": "sha512-bkrfQ10BhbJRMeq/Ih9DZ9FO4ffDwFYsRR134JP9JvQSf8GVX4sg3SnFFd7Q10C6pKwjKqMZ4+ZNB5uQYMLPEg==",
6395
- "dev": true,
6396
- "requires": {
6397
- "@semantic-release/commit-analyzer": "^6.1.0",
6398
- "@semantic-release/error": "^2.2.0",
6399
- "@semantic-release/github": "^5.1.0",
6400
- "@semantic-release/npm": "^5.0.5",
6401
- "@semantic-release/release-notes-generator": "^7.1.2",
6402
- "aggregate-error": "^1.0.0",
6403
- "cosmiconfig": "^5.0.1",
6404
- "debug": "^4.0.0",
6405
- "env-ci": "^3.0.0",
6406
- "execa": "^1.0.0",
6407
- "figures": "^2.0.0",
6408
- "find-versions": "^3.0.0",
6409
- "get-stream": "^4.0.0",
6410
- "git-log-parser": "^1.2.0",
6411
- "hook-std": "^1.1.0",
6412
- "hosted-git-info": "^2.7.1",
6413
- "lodash": "^4.17.4",
6414
- "marked": "^0.5.0",
6415
- "marked-terminal": "^3.0.0",
6416
- "p-locate": "^3.0.0",
6417
- "p-reduce": "^1.0.0",
6418
- "read-pkg-up": "^4.0.0",
6419
- "resolve-from": "^4.0.0",
6420
- "semver": "^5.4.1",
6421
- "signale": "^1.2.1",
6422
- "yargs": "^12.0.0"
6423
- },
6424
- "dependencies": {
6425
- "find-up": {
6426
- "version": "3.0.0",
6427
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
6428
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
6429
- "dev": true,
6430
- "requires": {
6431
- "locate-path": "^3.0.0"
6432
- }
6433
- },
6434
- "load-json-file": {
6435
- "version": "4.0.0",
6436
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
6437
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
6438
- "dev": true,
6439
- "requires": {
6440
- "graceful-fs": "^4.1.2",
6441
- "parse-json": "^4.0.0",
6442
- "pify": "^3.0.0",
6443
- "strip-bom": "^3.0.0"
6444
- }
6445
- },
6446
- "locate-path": {
6447
- "version": "3.0.0",
6448
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
6449
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
6450
- "dev": true,
6451
- "requires": {
6452
- "p-locate": "^3.0.0",
6453
- "path-exists": "^3.0.0"
6454
- }
6455
- },
6456
- "path-exists": {
6457
- "version": "3.0.0",
6458
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
6459
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
6460
- "dev": true
6461
- },
6462
- "read-pkg": {
6463
- "version": "3.0.0",
6464
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
6465
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
6466
- "dev": true,
6467
- "requires": {
6468
- "load-json-file": "^4.0.0",
6469
- "normalize-package-data": "^2.3.2",
6470
- "path-type": "^3.0.0"
6471
- }
6472
- },
6473
- "read-pkg-up": {
6474
- "version": "4.0.0",
6475
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
6476
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
6477
- "dev": true,
6478
- "requires": {
6479
- "find-up": "^3.0.0",
6480
- "read-pkg": "^3.0.0"
6481
- }
6482
- },
6483
- "strip-bom": {
6484
- "version": "3.0.0",
6485
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
6486
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
6487
- "dev": true
6488
- }
6489
- }
6490
- },
6491
- "semver": {
6492
- "version": "5.6.0",
6493
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
6494
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
6495
- "dev": true
6496
- },
6497
- "semver-regex": {
6498
- "version": "2.0.0",
6499
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
6500
- "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
6501
- "dev": true
6502
- },
6503
- "set-blocking": {
6504
- "version": "2.0.0",
6505
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
6506
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
6507
- "dev": true
6508
- },
6509
- "set-value": {
6510
- "version": "2.0.0",
6511
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
6512
- "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
6513
- "dev": true,
6514
- "requires": {
6515
- "extend-shallow": "^2.0.1",
6516
- "is-extendable": "^0.1.1",
6517
- "is-plain-object": "^2.0.3",
6518
- "split-string": "^3.0.1"
6519
- },
6520
- "dependencies": {
6521
- "extend-shallow": {
6522
- "version": "2.0.1",
6523
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
6524
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
6525
- "dev": true,
6526
- "requires": {
6527
- "is-extendable": "^0.1.0"
6528
- }
6529
- }
6530
- }
6531
- },
6532
- "shebang-command": {
6533
- "version": "1.2.0",
6534
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
6535
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
6536
- "dev": true,
6537
- "requires": {
6538
- "shebang-regex": "^1.0.0"
6539
- }
6540
- },
6541
- "shebang-regex": {
6542
- "version": "1.0.0",
6543
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
6544
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
6545
- "dev": true
6546
- },
6547
- "signal-exit": {
6548
- "version": "3.0.2",
6549
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
6550
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
6551
- "dev": true
6552
- },
6553
- "signale": {
6554
- "version": "1.3.0",
6555
- "resolved": "https://registry.npmjs.org/signale/-/signale-1.3.0.tgz",
6556
- "integrity": "sha512-TyFhsQ9wZDYDfsPqWMyjCxsDoMwfpsT0130Mce7wDiVCSDdtWSg83dOqoj8aGpGCs3n1YPcam6sT1OFPuGT/OQ==",
6557
- "dev": true,
6558
- "requires": {
6559
- "chalk": "^2.3.2",
6560
- "figures": "^2.0.0",
6561
- "pkg-conf": "^2.1.0"
6562
- }
6563
- },
6564
- "slash": {
6565
- "version": "1.0.0",
6566
- "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
6567
- "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
6568
- "dev": true
6569
- },
6570
- "snapdragon": {
6571
- "version": "0.8.2",
6572
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
6573
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
6574
- "dev": true,
6575
- "requires": {
6576
- "base": "^0.11.1",
6577
- "debug": "^2.2.0",
6578
- "define-property": "^0.2.5",
6579
- "extend-shallow": "^2.0.1",
6580
- "map-cache": "^0.2.2",
6581
- "source-map": "^0.5.6",
6582
- "source-map-resolve": "^0.5.0",
6583
- "use": "^3.1.0"
6584
- },
6585
- "dependencies": {
6586
- "debug": {
6587
- "version": "2.6.9",
6588
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
6589
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
6590
- "dev": true,
6591
- "requires": {
6592
- "ms": "2.0.0"
6593
- }
6594
- },
6595
- "define-property": {
6596
- "version": "0.2.5",
6597
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
6598
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
6599
- "dev": true,
6600
- "requires": {
6601
- "is-descriptor": "^0.1.0"
6602
- }
6603
- },
6604
- "extend-shallow": {
6605
- "version": "2.0.1",
6606
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
6607
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
6608
- "dev": true,
6609
- "requires": {
6610
- "is-extendable": "^0.1.0"
6611
- }
6612
- },
6613
- "ms": {
6614
- "version": "2.0.0",
6615
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
6616
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
6617
- "dev": true
6618
- }
6619
- }
6620
- },
6621
- "snapdragon-node": {
6622
- "version": "2.1.1",
6623
- "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
6624
- "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
6625
- "dev": true,
6626
- "requires": {
6627
- "define-property": "^1.0.0",
6628
- "isobject": "^3.0.0",
6629
- "snapdragon-util": "^3.0.1"
6630
- },
6631
- "dependencies": {
6632
- "define-property": {
6633
- "version": "1.0.0",
6634
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
6635
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
6636
- "dev": true,
6637
- "requires": {
6638
- "is-descriptor": "^1.0.0"
6639
- }
6640
- },
6641
- "is-accessor-descriptor": {
6642
- "version": "1.0.0",
6643
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
6644
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
6645
- "dev": true,
6646
- "requires": {
6647
- "kind-of": "^6.0.0"
6648
- }
6649
- },
6650
- "is-data-descriptor": {
6651
- "version": "1.0.0",
6652
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
6653
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
6654
- "dev": true,
6655
- "requires": {
6656
- "kind-of": "^6.0.0"
6657
- }
6658
- },
6659
- "is-descriptor": {
6660
- "version": "1.0.2",
6661
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
6662
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
6663
- "dev": true,
6664
- "requires": {
6665
- "is-accessor-descriptor": "^1.0.0",
6666
- "is-data-descriptor": "^1.0.0",
6667
- "kind-of": "^6.0.2"
6668
- }
6669
- }
6670
- }
6671
- },
6672
- "snapdragon-util": {
6673
- "version": "3.0.1",
6674
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
6675
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
6676
- "dev": true,
6677
- "requires": {
6678
- "kind-of": "^3.2.0"
6679
- },
6680
- "dependencies": {
6681
- "kind-of": {
6682
- "version": "3.2.2",
6683
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
6684
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
6685
- "dev": true,
6686
- "requires": {
6687
- "is-buffer": "^1.1.5"
6688
- }
6689
- }
6690
- }
6691
- },
6692
- "source-map": {
6693
- "version": "0.5.7",
6694
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6695
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
6696
- "dev": true
6697
- },
6698
- "source-map-resolve": {
6699
- "version": "0.5.2",
6700
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
6701
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
6702
- "dev": true,
6703
- "requires": {
6704
- "atob": "^2.1.1",
6705
- "decode-uri-component": "^0.2.0",
6706
- "resolve-url": "^0.2.1",
6707
- "source-map-url": "^0.4.0",
6708
- "urix": "^0.1.0"
6709
- }
6710
- },
6711
- "source-map-url": {
6712
- "version": "0.4.0",
6713
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
6714
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
6715
- "dev": true
6716
- },
6717
- "spawn-error-forwarder": {
6718
- "version": "1.0.0",
6719
- "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz",
6720
- "integrity": "sha1-Gv2Uc46ZmwNG17n8NzvlXgdXcCk=",
6721
- "dev": true
6722
- },
6723
- "spdx-correct": {
6724
- "version": "3.1.0",
6725
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
6726
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
6727
- "dev": true,
6728
- "requires": {
6729
- "spdx-expression-parse": "^3.0.0",
6730
- "spdx-license-ids": "^3.0.0"
6731
- }
6732
- },
6733
- "spdx-exceptions": {
6734
- "version": "2.2.0",
6735
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
6736
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
6737
- "dev": true
6738
- },
6739
- "spdx-expression-parse": {
6740
- "version": "3.0.0",
6741
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
6742
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
6743
- "dev": true,
6744
- "requires": {
6745
- "spdx-exceptions": "^2.1.0",
6746
- "spdx-license-ids": "^3.0.0"
6747
- }
6748
- },
6749
- "spdx-license-ids": {
6750
- "version": "3.0.2",
6751
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
6752
- "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
6753
- "dev": true
6754
- },
6755
- "split": {
6756
- "version": "1.0.1",
6757
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
6758
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
6759
- "dev": true,
6760
- "requires": {
6761
- "through": "2"
6762
- }
6763
- },
6764
- "split-string": {
6765
- "version": "3.1.0",
6766
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
6767
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
6768
- "dev": true,
6769
- "requires": {
6770
- "extend-shallow": "^3.0.0"
6771
- }
6772
- },
6773
- "split2": {
6774
- "version": "2.2.0",
6775
- "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz",
6776
- "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==",
6777
- "dev": true,
6778
- "requires": {
6779
- "through2": "^2.0.2"
6780
- }
6781
- },
6782
- "sprintf-js": {
6783
- "version": "1.1.2",
6784
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
6785
- "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
6786
- "dev": true
6787
- },
6788
- "static-extend": {
6789
- "version": "0.1.2",
6790
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
6791
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
6792
- "dev": true,
6793
- "requires": {
6794
- "define-property": "^0.2.5",
6795
- "object-copy": "^0.1.0"
6796
- },
6797
- "dependencies": {
6798
- "define-property": {
6799
- "version": "0.2.5",
6800
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
6801
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
6802
- "dev": true,
6803
- "requires": {
6804
- "is-descriptor": "^0.1.0"
6805
- }
6806
- }
6807
- }
6808
- },
6809
- "stream-combiner2": {
6810
- "version": "1.1.1",
6811
- "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
6812
- "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
6813
- "dev": true,
6814
- "requires": {
6815
- "duplexer2": "~0.1.0",
6816
- "readable-stream": "^2.0.2"
6817
- }
6818
- },
6819
- "string-width": {
6820
- "version": "2.1.1",
6821
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
6822
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
6823
- "dev": true,
6824
- "requires": {
6825
- "is-fullwidth-code-point": "^2.0.0",
6826
- "strip-ansi": "^4.0.0"
6827
- }
6828
- },
6829
- "string_decoder": {
6830
- "version": "1.1.1",
6831
- "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
6832
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
6833
- "dev": true,
6834
- "requires": {
6835
- "safe-buffer": "~5.1.0"
6836
- }
6837
- },
6838
- "strip-ansi": {
6839
- "version": "4.0.0",
6840
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
6841
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
6842
- "dev": true,
6843
- "requires": {
6844
- "ansi-regex": "^3.0.0"
6845
- }
6846
- },
6847
- "strip-bom": {
6848
- "version": "2.0.0",
6849
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
6850
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
6851
- "dev": true,
6852
- "requires": {
6853
- "is-utf8": "^0.2.0"
6854
- }
6855
- },
6856
- "strip-eof": {
6857
- "version": "1.0.0",
6858
- "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
6859
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
6860
- "dev": true
6861
- },
6862
- "strip-indent": {
6863
- "version": "1.0.1",
6864
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
6865
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
6866
- "dev": true,
6867
- "requires": {
6868
- "get-stdin": "^4.0.1"
6869
- }
6870
- },
6871
- "strip-json-comments": {
6872
- "version": "2.0.1",
6873
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
6874
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
6875
- "dev": true
6876
- },
6877
- "supports-color": {
6878
- "version": "5.5.0",
6879
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
6880
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
6881
- "dev": true,
6882
- "requires": {
6883
- "has-flag": "^3.0.0"
6884
- }
6885
- },
6886
- "text-extensions": {
6887
- "version": "1.9.0",
6888
- "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz",
6889
- "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==",
6890
- "dev": true
6891
- },
6892
- "through": {
6893
- "version": "2.3.8",
6894
- "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
6895
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
6896
- "dev": true
6897
- },
6898
- "through2": {
6899
- "version": "2.0.5",
6900
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
6901
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
6902
- "dev": true,
6903
- "requires": {
6904
- "readable-stream": "~2.3.6",
6905
- "xtend": "~4.0.1"
6906
- }
6907
- },
6908
- "to-object-path": {
6909
- "version": "0.3.0",
6910
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
6911
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
6912
- "dev": true,
6913
- "requires": {
6914
- "kind-of": "^3.0.2"
6915
- },
6916
- "dependencies": {
6917
- "kind-of": {
6918
- "version": "3.2.2",
6919
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
6920
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
6921
- "dev": true,
6922
- "requires": {
6923
- "is-buffer": "^1.1.5"
6924
- }
6925
- }
6926
- }
6927
- },
6928
- "to-regex": {
6929
- "version": "3.0.2",
6930
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
6931
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
6932
- "dev": true,
6933
- "requires": {
6934
- "define-property": "^2.0.2",
6935
- "extend-shallow": "^3.0.2",
6936
- "regex-not": "^1.0.2",
6937
- "safe-regex": "^1.1.0"
6938
- }
6939
- },
6940
- "to-regex-range": {
6941
- "version": "2.1.1",
6942
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
6943
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
6944
- "dev": true,
6945
- "requires": {
6946
- "is-number": "^3.0.0",
6947
- "repeat-string": "^1.6.1"
6948
- }
6949
- },
6950
- "traverse": {
6951
- "version": "0.6.6",
6952
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
6953
- "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=",
6954
- "dev": true
6955
- },
6956
- "trim-newlines": {
6957
- "version": "1.0.0",
6958
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
6959
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
6960
- "dev": true
6961
- },
6962
- "trim-off-newlines": {
6963
- "version": "1.0.1",
6964
- "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz",
6965
- "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=",
6966
- "dev": true
6967
- },
6968
- "uglify-js": {
6969
- "version": "3.4.9",
6970
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
6971
- "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
6972
- "dev": true,
6973
- "optional": true,
6974
- "requires": {
6975
- "commander": "~2.17.1",
6976
- "source-map": "~0.6.1"
6977
- },
6978
- "dependencies": {
6979
- "source-map": {
6980
- "version": "0.6.1",
6981
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6982
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6983
- "dev": true,
6984
- "optional": true
6985
- }
6986
- }
6987
- },
6988
- "underscore.string": {
6989
- "version": "3.3.5",
6990
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
6991
- "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
6992
- "dev": true,
6993
- "requires": {
6994
- "sprintf-js": "^1.0.3",
6995
- "util-deprecate": "^1.0.2"
6996
- }
6997
- },
6998
- "union-value": {
6999
- "version": "1.0.0",
7000
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
7001
- "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
7002
- "dev": true,
7003
- "requires": {
7004
- "arr-union": "^3.1.0",
7005
- "get-value": "^2.0.6",
7006
- "is-extendable": "^0.1.1",
7007
- "set-value": "^0.4.3"
7008
- },
7009
- "dependencies": {
7010
- "extend-shallow": {
7011
- "version": "2.0.1",
7012
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
7013
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
7014
- "dev": true,
7015
- "requires": {
7016
- "is-extendable": "^0.1.0"
7017
- }
7018
- },
7019
- "set-value": {
7020
- "version": "0.4.3",
7021
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
7022
- "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
7023
- "dev": true,
7024
- "requires": {
7025
- "extend-shallow": "^2.0.1",
7026
- "is-extendable": "^0.1.1",
7027
- "is-plain-object": "^2.0.1",
7028
- "to-object-path": "^0.3.0"
7029
- }
7030
- }
7031
- }
7032
- },
7033
- "universal-user-agent": {
7034
- "version": "2.0.2",
7035
- "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-2.0.2.tgz",
7036
- "integrity": "sha512-nOwvHWLH3dBazyuzbECPA5uVFNd7AlgviXRHgR4yf48QqitIvpdncRrxMbZNMpPPEfgz30I9ubd1XmiJiqsTrg==",
7037
- "dev": true,
7038
- "requires": {
7039
- "os-name": "^3.0.0"
7040
- }
7041
- },
7042
- "universalify": {
7043
- "version": "0.1.2",
7044
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
7045
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
7046
- "dev": true
7047
- },
7048
- "unset-value": {
7049
- "version": "1.0.0",
7050
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
7051
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
7052
- "dev": true,
7053
- "requires": {
7054
- "has-value": "^0.3.1",
7055
- "isobject": "^3.0.0"
7056
- },
7057
- "dependencies": {
7058
- "has-value": {
7059
- "version": "0.3.1",
7060
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
7061
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
7062
- "dev": true,
7063
- "requires": {
7064
- "get-value": "^2.0.3",
7065
- "has-values": "^0.1.4",
7066
- "isobject": "^2.0.0"
7067
- },
7068
- "dependencies": {
7069
- "isobject": {
7070
- "version": "2.1.0",
7071
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
7072
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
7073
- "dev": true,
7074
- "requires": {
7075
- "isarray": "1.0.0"
7076
- }
7077
- }
7078
- }
7079
- },
7080
- "has-values": {
7081
- "version": "0.1.4",
7082
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
7083
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
7084
- "dev": true
7085
- }
7086
- }
7087
- },
7088
- "urix": {
7089
- "version": "0.1.0",
7090
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
7091
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
7092
- "dev": true
7093
- },
7094
- "url-join": {
7095
- "version": "4.0.0",
7096
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
7097
- "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=",
7098
- "dev": true
7099
- },
7100
- "url-template": {
7101
- "version": "2.0.8",
7102
- "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
7103
- "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=",
7104
- "dev": true
7105
- },
7106
- "use": {
7107
- "version": "3.1.1",
7108
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
7109
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
7110
- "dev": true
7111
- },
7112
- "util-deprecate": {
7113
- "version": "1.0.2",
7114
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
7115
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
7116
- "dev": true
7117
- },
7118
- "validate-npm-package-license": {
7119
- "version": "3.0.4",
7120
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
7121
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
7122
- "dev": true,
7123
- "requires": {
7124
- "spdx-correct": "^3.0.0",
7125
- "spdx-expression-parse": "^3.0.0"
7126
- }
7127
- },
7128
- "which": {
7129
- "version": "1.3.1",
7130
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
7131
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
7132
- "dev": true,
7133
- "requires": {
7134
- "isexe": "^2.0.0"
7135
- }
7136
- },
7137
- "which-module": {
7138
- "version": "2.0.0",
7139
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
7140
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
7141
- "dev": true
7142
- },
7143
- "windows-release": {
7144
- "version": "3.1.0",
7145
- "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.1.0.tgz",
7146
- "integrity": "sha512-hBb7m7acFgQPQc222uEQTmdcGLeBmQLNLFIh0rDk3CwFOBrfjefLzEfEfmpMq8Af/n/GnFf3eYf203FY1PmudA==",
7147
- "dev": true,
7148
- "requires": {
7149
- "execa": "^0.10.0"
7150
- },
7151
- "dependencies": {
7152
- "execa": {
7153
- "version": "0.10.0",
7154
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
7155
- "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
7156
- "dev": true,
7157
- "requires": {
7158
- "cross-spawn": "^6.0.0",
7159
- "get-stream": "^3.0.0",
7160
- "is-stream": "^1.1.0",
7161
- "npm-run-path": "^2.0.0",
7162
- "p-finally": "^1.0.0",
7163
- "signal-exit": "^3.0.0",
7164
- "strip-eof": "^1.0.0"
7165
- }
7166
- },
7167
- "get-stream": {
7168
- "version": "3.0.0",
7169
- "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
7170
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
7171
- "dev": true
7172
- }
7173
- }
7174
- },
7175
- "wordwrap": {
7176
- "version": "0.0.3",
7177
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
7178
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
7179
- "dev": true
7180
- },
7181
- "wrap-ansi": {
7182
- "version": "2.1.0",
7183
- "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
7184
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
7185
- "dev": true,
7186
- "requires": {
7187
- "string-width": "^1.0.1",
7188
- "strip-ansi": "^3.0.1"
7189
- },
7190
- "dependencies": {
7191
- "ansi-regex": {
7192
- "version": "2.1.1",
7193
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
7194
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
7195
- "dev": true
7196
- },
7197
- "is-fullwidth-code-point": {
7198
- "version": "1.0.0",
7199
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
7200
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
7201
- "dev": true,
7202
- "requires": {
7203
- "number-is-nan": "^1.0.0"
7204
- }
7205
- },
7206
- "string-width": {
7207
- "version": "1.0.2",
7208
- "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
7209
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
7210
- "dev": true,
7211
- "requires": {
7212
- "code-point-at": "^1.0.0",
7213
- "is-fullwidth-code-point": "^1.0.0",
7214
- "strip-ansi": "^3.0.0"
7215
- }
7216
- },
7217
- "strip-ansi": {
7218
- "version": "3.0.1",
7219
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
7220
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
7221
- "dev": true,
7222
- "requires": {
7223
- "ansi-regex": "^2.0.0"
7224
- }
7225
- }
7226
- }
7227
- },
7228
- "wrappy": {
7229
- "version": "1.0.2",
7230
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
7231
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
7232
- "dev": true
7233
- },
7234
- "xtend": {
7235
- "version": "4.0.1",
7236
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
7237
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
7238
- "dev": true
7239
- },
7240
- "y18n": {
7241
- "version": "4.0.0",
7242
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
7243
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
7244
- "dev": true
7245
- },
7246
- "yargs": {
7247
- "version": "12.0.5",
7248
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
7249
- "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
7250
- "dev": true,
7251
- "requires": {
7252
- "cliui": "^4.0.0",
7253
- "decamelize": "^1.2.0",
7254
- "find-up": "^3.0.0",
7255
- "get-caller-file": "^1.0.1",
7256
- "os-locale": "^3.0.0",
7257
- "require-directory": "^2.1.1",
7258
- "require-main-filename": "^1.0.1",
7259
- "set-blocking": "^2.0.0",
7260
- "string-width": "^2.0.0",
7261
- "which-module": "^2.0.0",
7262
- "y18n": "^3.2.1 || ^4.0.0",
7263
- "yargs-parser": "^11.1.1"
7264
- },
7265
- "dependencies": {
7266
- "find-up": {
7267
- "version": "3.0.0",
7268
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
7269
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
7270
- "dev": true,
7271
- "requires": {
7272
- "locate-path": "^3.0.0"
7273
- }
7274
- },
7275
- "locate-path": {
7276
- "version": "3.0.0",
7277
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
7278
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
7279
- "dev": true,
7280
- "requires": {
7281
- "p-locate": "^3.0.0",
7282
- "path-exists": "^3.0.0"
7283
- }
7284
- },
7285
- "path-exists": {
7286
- "version": "3.0.0",
7287
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
7288
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
7289
- "dev": true
7290
- }
7291
- }
7292
- },
7293
- "yargs-parser": {
7294
- "version": "11.1.1",
7295
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
7296
- "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
7297
- "dev": true,
7298
- "requires": {
7299
- "camelcase": "^5.0.0",
7300
- "decamelize": "^1.2.0"
7301
- },
7302
- "dependencies": {
7303
- "camelcase": {
7304
- "version": "5.0.0",
7305
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
7306
- "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
7307
- "dev": true
7308
- }
7309
- }
7310
- }
7311
- }
7312
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/package.json DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "name": "themeisle-sdk",
3
- "version": "3.0.4",
4
- "scripts": {
5
- "semantic-release": "semantic-release --debug"
6
- },
7
- "author": "Themeisle",
8
- "devDependencies": {
9
- "@semantic-release/changelog": "^3.0.1",
10
- "@semantic-release/exec": "^3.3.1",
11
- "@semantic-release/git": "^7.0.6",
12
- "grunt-version": "^1.3.0",
13
- "semantic-release": "^15.13.1"
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/phpcs.xml DELETED
@@ -1,50 +0,0 @@
1
- <?xml version="1.0"?>
2
- <ruleset name="Themeisle">
3
- <description>Themeisle rules for PHP_CodeSnifferr</description>
4
-
5
- <file>./</file>
6
-
7
- <arg value="ps"/>
8
- <arg name="extensions" value="php"/>
9
-
10
- <exclude-pattern>./vendor</exclude-pattern>
11
- <exclude-pattern>./old</exclude-pattern>
12
- <exclude-pattern>./tests/sample_products</exclude-pattern>
13
-
14
-
15
- <rule ref="WordPress-Core">
16
-
17
- <exclude name="WordPress.Files.FileName.NotHyphenatedLowercase"/>
18
- <exclude name="WordPress.Files.FileName.InvalidClassFileName"/>
19
- <exclude name="Squiz.PHP.DisallowMultipleAssignments.Found"/>
20
- </rule>
21
- <rule ref="WordPress-Docs"/>
22
- <rule ref="WordPress.WP.I18n"/>
23
- <rule ref="Squiz.Commenting.FunctionComment.Missing">
24
- <exclude-pattern>tests/*</exclude-pattern>
25
- </rule>
26
- <rule ref="Squiz.Commenting.FileComment.Missing">
27
- <exclude-pattern>tests/*</exclude-pattern>
28
- </rule>
29
- <rule ref="Squiz.Commenting.ClassComment.Missing">
30
- <exclude-pattern>tests/*</exclude-pattern>
31
- </rule>
32
- <rule ref="Squiz.Commenting.ClassComment.SpacingAfter">
33
- <exclude-pattern>tests/*</exclude-pattern>
34
- </rule>
35
- <rule ref="Squiz.Commenting.FunctionComment.MissingParamTag">
36
- <exclude-pattern>tests/*</exclude-pattern>
37
- </rule>
38
- <rule ref="Generic.Commenting.DocComment.MissingShort">
39
- <exclude-pattern>tests/*</exclude-pattern>
40
- </rule>
41
- <rule ref="Squiz.Commenting.VariableComment.Missing">
42
- <exclude-pattern>tests/*</exclude-pattern>
43
- </rule>
44
- <rule ref="Squiz.Commenting.FunctionCommentThrowTag.Missing">
45
- <exclude-pattern>tests/*</exclude-pattern>
46
- </rule>
47
- <rule ref="WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid">
48
- <exclude-pattern>tests/*</exclude-pattern>
49
- </rule>
50
- </ruleset>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/phpunit.xml DELETED
@@ -1,20 +0,0 @@
1
- <phpunit
2
- bootstrap="tests/bootstrap.php"
3
- backupGlobals="false"
4
- colors="true"
5
- convertErrorsToExceptions="true"
6
- convertNoticesToExceptions="true"
7
- convertWarningsToExceptions="true"
8
- >
9
- <testsuites name="General Unit tests ( Requires PHP 5.4) ">
10
- <testsuite>
11
- <directory phpVersion="5.4.0" phpVersionOperator=">=" suffix="-test.php">./tests/</directory>
12
- <exclude>./tests/old/</exclude>
13
- </testsuite>
14
- </testsuites>
15
- <testsuites name="Bail lower php versions( For PHP lower than 5.4) ">
16
- <testsuite>
17
- <directory phpVersion="5.4.0" phpVersionOperator="lt" suffix="-test.php">./tests/old/</directory>
18
- </testsuite>
19
- </testsuites>
20
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/src/Loader.php CHANGED
@@ -55,6 +55,7 @@ final class Loader {
55
  'logger',
56
  'translate',
57
  'review',
 
58
 
59
  ];
60
 
@@ -113,5 +114,13 @@ final class Loader {
113
  return self::$products;
114
  }
115
 
 
 
 
 
 
 
 
 
116
 
117
  }
55
  'logger',
56
  'translate',
57
  'review',
58
+ 'recommendation',
59
 
60
  ];
61
 
114
  return self::$products;
115
  }
116
 
117
+ /**
118
+ * Get the version of the SDK.
119
+ *
120
+ * @return string The version.
121
+ */
122
+ public static function get_version() {
123
+ return self::$version;
124
+ }
125
 
126
  }
vendor/codeinwp/themeisle-sdk/src/Modules/Dashboard_widget.php CHANGED
@@ -103,7 +103,7 @@ class Dashboard_Widget extends Abstract_Module {
103
  'themeisle',
104
  $this->dashboard_name,
105
  [
106
- &$this,
107
  'render_dashboard_widget',
108
  ]
109
  );
@@ -281,6 +281,8 @@ class Dashboard_Widget extends Abstract_Module {
281
  array(
282
  'lite',
283
  'Lite',
 
 
284
  ),
285
  '',
286
  $recommend['name']
@@ -372,18 +374,25 @@ class Dashboard_Widget extends Abstract_Module {
372
  */
373
  function get_product_from_api() {
374
  if ( false === ( $products = get_transient( 'themeisle_sdk_products' ) ) ) {
375
- $products = array();
376
- $themeisle_themes = $this->get_themes_from_wporg( 'themeisle' );
377
- $codeinwp_themes = $this->get_themes_from_wporg( 'codeinwp' );
378
-
379
- $themeisle_plugins = $this->get_plugins_from_wporg( 'themeisle' );
380
- $codeinwp_plugins = $this->get_plugins_from_wporg( 'codeinwp' );
381
-
382
- $all_themes = array_merge( $themeisle_themes, $codeinwp_themes );
 
 
 
 
383
  foreach ( $all_themes as $theme ) {
384
  if ( $theme->active_installs < 4999 ) {
385
  continue;
386
  }
 
 
 
387
  $products[] = array(
388
  'name' => $theme->name,
389
  'type' => 'theme',
@@ -391,11 +400,13 @@ class Dashboard_Widget extends Abstract_Module {
391
  'installs' => $theme->active_installs,
392
  );
393
  }
394
- $all_plugins = array_merge( $themeisle_plugins, $codeinwp_plugins );
395
  foreach ( $all_plugins as $plugin ) {
396
  if ( $plugin->active_installs < 4999 ) {
397
  continue;
398
  }
 
 
 
399
  $products[] = array(
400
  'name' => $plugin->name,
401
  'type' => 'plugin',
@@ -439,7 +450,7 @@ class Dashboard_Widget extends Abstract_Module {
439
  */
440
  function get_plugins_from_wporg( $author ) {
441
  $products = wp_remote_get(
442
- 'https://api.wordpress.org/plugins/info/1.1/?action=query_plugins&request[author]=' . $author . '&request[per_page]=20&request[fields][active_installs]=true'
443
  );
444
  $products = json_decode( wp_remote_retrieve_body( $products ) );
445
  if ( is_object( $products ) ) {
103
  'themeisle',
104
  $this->dashboard_name,
105
  [
106
+ $this,
107
  'render_dashboard_widget',
108
  ]
109
  );
281
  array(
282
  'lite',
283
  'Lite',
284
+ '(Lite)',
285
+ '(lite)',
286
  ),
287
  '',
288
  $recommend['name']
374
  */
375
  function get_product_from_api() {
376
  if ( false === ( $products = get_transient( 'themeisle_sdk_products' ) ) ) {
377
+ $products = array();
378
+ $all_themes = $this->get_themes_from_wporg( 'themeisle' );
379
+ $all_plugins = $this->get_plugins_from_wporg( 'themeisle' );
380
+ static $allowed_products = [
381
+ 'hestia' => true,
382
+ 'neve' => true,
383
+ 'visualizer' => true,
384
+ 'feedzy-rss-feeds' => true,
385
+ 'wp-product-review' => true,
386
+ 'otter-blocks' => true,
387
+ 'themeisle-companion' => true,
388
+ ];
389
  foreach ( $all_themes as $theme ) {
390
  if ( $theme->active_installs < 4999 ) {
391
  continue;
392
  }
393
+ if ( ! isset( $allowed_products[ $theme->slug ] ) ) {
394
+ continue;
395
+ }
396
  $products[] = array(
397
  'name' => $theme->name,
398
  'type' => 'theme',
400
  'installs' => $theme->active_installs,
401
  );
402
  }
 
403
  foreach ( $all_plugins as $plugin ) {
404
  if ( $plugin->active_installs < 4999 ) {
405
  continue;
406
  }
407
+ if ( ! isset( $allowed_products[ $plugin->slug ] ) ) {
408
+ continue;
409
+ }
410
  $products[] = array(
411
  'name' => $plugin->name,
412
  'type' => 'plugin',
450
  */
451
  function get_plugins_from_wporg( $author ) {
452
  $products = wp_remote_get(
453
+ 'https://api.wordpress.org/plugins/info/1.1/?action=query_plugins&request[author]=' . $author . '&request[per_page]=40&request[fields][active_installs]=true'
454
  );
455
  $products = json_decode( wp_remote_retrieve_body( $products ) );
456
  if ( is_object( $products ) ) {
vendor/codeinwp/themeisle-sdk/src/Modules/Logger.php CHANGED
@@ -152,7 +152,7 @@ class Logger extends Abstract_Module {
152
  $environment['theme']['name'] = $theme->get( 'Name' );
153
  $environment['theme']['author'] = $theme->get( 'Author' );
154
  $environment['plugins'] = get_option( 'active_plugins' );
155
-
156
  wp_remote_post(
157
  self::TRACKING_ENDPOINT,
158
  array(
@@ -166,6 +166,7 @@ class Logger extends Abstract_Module {
166
  'site' => get_site_url(),
167
  'slug' => $this->product->get_slug(),
168
  'version' => $this->product->get_version(),
 
169
  'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
170
  'environment' => $environment,
171
  'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
152
  $environment['theme']['name'] = $theme->get( 'Name' );
153
  $environment['theme']['author'] = $theme->get( 'Author' );
154
  $environment['plugins'] = get_option( 'active_plugins' );
155
+ global $wp_version;
156
  wp_remote_post(
157
  self::TRACKING_ENDPOINT,
158
  array(
166
  'site' => get_site_url(),
167
  'slug' => $this->product->get_slug(),
168
  'version' => $this->product->get_version(),
169
+ 'wp_version' => $wp_version,
170
  'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
171
  'environment' => $environment,
172
  'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
vendor/codeinwp/themeisle-sdk/src/Modules/Recommendation.php ADDED
@@ -0,0 +1,374 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The class that exposes hooks for recommend.
4
+ *
5
+ * @package ThemeIsleSDK
6
+ * @subpackage Rollback
7
+ * @copyright Copyright (c) 2017, Marius Cristea
8
+ * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
9
+ * @since 1.0.0
10
+ */
11
+
12
+ namespace ThemeisleSDK\Modules;
13
+
14
+ // Exit if accessed directly.
15
+ use ThemeisleSDK\Common\Abstract_Module;
16
+ use ThemeisleSDK\Product;
17
+
18
+ if ( ! defined( 'ABSPATH' ) ) {
19
+ exit;
20
+ }
21
+
22
+ /**
23
+ * Expose endpoints for ThemeIsle SDK.
24
+ */
25
+ class Recommendation extends Abstract_Module {
26
+
27
+
28
+ /**
29
+ * Load module logic.
30
+ *
31
+ * @param Product $product Product to load.
32
+ */
33
+ public function load( $product ) {
34
+ $this->product = $product;
35
+ $this->setup_hooks();
36
+
37
+ return $this;
38
+ }
39
+
40
+ /**
41
+ * Setup endpoints.
42
+ */
43
+ private function setup_hooks() {
44
+ add_action( $this->product->get_key() . '_recommend_products', array( $this, 'render_products_box' ), 10, 4 );
45
+ add_action( 'admin_head', array( $this, 'enqueue' ) );
46
+ }
47
+
48
+ /**
49
+ * Check if we should load the module for this product.
50
+ *
51
+ * @param Product $product Product data.
52
+ *
53
+ * @return bool Should we load the module?
54
+ */
55
+ public function can_load( $product ) {
56
+ return true;
57
+ }
58
+
59
+ /**
60
+ * Render products box content.
61
+ *
62
+ * @param array $plugins_list - list of useful plugins (in slug => nicename format).
63
+ * @param array $themes_list - list of useful themes (in slug => nicename format).
64
+ * @param array $strings - list of translated strings.
65
+ * @param array $preferences - list of preferences.
66
+ */
67
+ function render_products_box( $plugins_list, $themes_list, $strings, $preferences = array() ) {
68
+
69
+ if ( empty( $plugins_list ) && empty( $themes_list ) ) {
70
+ return;
71
+ }
72
+
73
+ if ( ! empty( $plugins_list ) && ! current_user_can( 'install_plugins' ) ) {
74
+ return;
75
+ }
76
+
77
+ if ( ! empty( $themes_list ) && ! current_user_can( 'install_themes' ) ) {
78
+ return;
79
+ }
80
+
81
+ add_thickbox();
82
+
83
+ if ( ! empty( $themes_list ) ) {
84
+ $list = $this->get_themes( $themes_list, $preferences );
85
+
86
+ if ( has_action( $this->product->get_key() . '_recommend_products_theme_template' ) ) {
87
+ do_action( $this->product->get_key() . '_recommend_products_theme_template', $list, $strings, $preferences );
88
+ } else {
89
+ echo '<div class="recommend-product">';
90
+
91
+ foreach ( $list as $theme ) {
92
+ echo '<div class="plugin_box">';
93
+ echo ' <img class="theme-banner" src="' . $theme->screenshot_url . '">';
94
+ echo ' <div class="title-action-wrapper">';
95
+ echo ' <span class="plugin-name">' . esc_html( $theme->custom_name ) . '</span>';
96
+ if ( ! isset( $preferences['description'] ) || ( isset( $preferences['description'] ) && $preferences['description'] ) ) {
97
+ echo '<span class="plugin-desc">' . esc_html( substr( $theme->description, 0, strpos( $theme->description, '.' ) ) ) . '.</span>';
98
+ }
99
+ echo ' </div>';
100
+ echo '<div class="plugin-box-footer">';
101
+ echo ' <div class="button-wrap">';
102
+ echo ' <a class="button button-primary " href="' . esc_url( $theme->custom_url ) . '"><span class="dashicons dashicons-external"></span>' . esc_html( $strings['install'] ) . '</a>';
103
+ echo ' </div>';
104
+ echo ' </div>';
105
+ echo '</div>';
106
+ }
107
+
108
+ echo '</div>';
109
+ }
110
+ }
111
+ if ( ! empty( $plugins_list ) ) {
112
+ $list = $this->get_plugins( $plugins_list, $preferences );
113
+
114
+ if ( has_action( $this->product->get_key() . '_recommend_products_plugin_template' ) ) {
115
+ do_action( $this->product->get_key() . '_recommend_products_plugin_template', $list, $strings, $preferences );
116
+ } else {
117
+ echo '<div class="recommend-product">';
118
+
119
+ foreach ( $list as $current_plugin ) {
120
+ echo '<div class="plugin_box">';
121
+ echo ' <img class="plugin-banner" src="' . $current_plugin->custom_image . '">';
122
+ echo ' <div class="title-action-wrapper">';
123
+ echo ' <span class="plugin-name">' . esc_html( $current_plugin->custom_name ) . '</span>';
124
+ if ( ! isset( $preferences['description'] ) || ( isset( $preferences['description'] ) && $preferences['description'] ) ) {
125
+ echo '<span class="plugin-desc">' . esc_html( substr( $current_plugin->short_description, 0, strpos( $current_plugin->short_description, '.' ) ) ) . '. </span>';
126
+ }
127
+ echo ' </div>';
128
+ echo ' <div class="plugin-box-footer">';
129
+ echo ' <a class="button button-primary thickbox open-plugin-details-modal" href="' . esc_url( $current_plugin->custom_url ) . '"><span class="dashicons dashicons-external"></span>' . esc_html( $strings['install'] ) . '</a>';
130
+ echo ' </div>';
131
+ echo '</div>';
132
+ }
133
+
134
+ echo '</div>';
135
+ }
136
+ }
137
+
138
+ }
139
+
140
+ /**
141
+ * Collect all the information for the themes list.
142
+ *
143
+ * @param array $themes_list - list of useful themes (in slug => nicename format).
144
+ * @param array $preferences - list of preferences.
145
+ *
146
+ * @return array
147
+ */
148
+ private function get_themes( $themes_list, $preferences ) {
149
+ $list = array();
150
+ foreach ( $themes_list as $slug => $nicename ) {
151
+ $theme = $this->call_theme_api( $slug );
152
+ if ( ! $theme ) {
153
+ continue;
154
+ }
155
+
156
+ $url = add_query_arg(
157
+ array(
158
+ 'theme' => $theme->slug,
159
+ ),
160
+ network_admin_url( 'theme-install.php' )
161
+ );
162
+
163
+ $name = empty( $nicename ) ? $theme->name : $nicename;
164
+
165
+ $theme->custom_url = $url;
166
+ $theme->custom_name = $name;
167
+
168
+ $list[] = $theme;
169
+ }
170
+
171
+ return $list;
172
+ }
173
+
174
+ /**
175
+ * Call theme api
176
+ *
177
+ * @param string $slug theme slug.
178
+ *
179
+ * @return array|mixed|object
180
+ */
181
+ private function call_theme_api( $slug ) {
182
+ $theme = get_transient( 'ti_theme_info_' . $slug );
183
+
184
+ if ( false !== $theme ) {
185
+ return $theme;
186
+ }
187
+
188
+ $products = wp_remote_get(
189
+ 'https://api.wordpress.org/themes/info/1.1/?action=query_themes&request[theme]=' . $slug . '&request[per_page]=1'
190
+ );
191
+ $products = json_decode( wp_remote_retrieve_body( $products ) );
192
+ if ( is_object( $products ) ) {
193
+ $theme = $products->themes[0];
194
+ set_transient( 'ti_theme_info_' . $slug, $theme, 6 * HOUR_IN_SECONDS );
195
+ }
196
+
197
+ return $theme;
198
+ }
199
+
200
+ /**
201
+ * Collect all the information for the plugins list.
202
+ *
203
+ * @param array $plugins_list - list of useful plugins (in slug => nicename format).
204
+ * @param array $preferences - list of preferences.
205
+ *
206
+ * @return array
207
+ */
208
+ private function get_plugins( $plugins_list, $preferences ) {
209
+ $list = array();
210
+ foreach ( $plugins_list as $plugin => $nicename ) {
211
+ $current_plugin = $this->call_plugin_api( $plugin );
212
+
213
+ $name = empty( $nicename ) ? $current_plugin->name : $nicename;
214
+
215
+ $image = $current_plugin->banners['low'];
216
+ if ( isset( $preferences['image'] ) && 'icon' === $preferences['image'] ) {
217
+ $image = $current_plugin->icons['1x'];
218
+ }
219
+
220
+ $url = add_query_arg(
221
+ array(
222
+ 'tab' => 'plugin-information',
223
+ 'plugin' => $current_plugin->slug,
224
+ 'TB_iframe' => true,
225
+ 'width' => 800,
226
+ 'height' => 800,
227
+ ),
228
+ network_admin_url( 'plugin-install.php' )
229
+ );
230
+
231
+ $current_plugin->custom_url = $url;
232
+ $current_plugin->custom_name = $name;
233
+ $current_plugin->custom_image = $image;
234
+
235
+ $list[] = $current_plugin;
236
+ }
237
+
238
+ return $list;
239
+ }
240
+
241
+ /**
242
+ * Call plugin api
243
+ *
244
+ * @param string $slug plugin slug.
245
+ *
246
+ * @return array|mixed|object
247
+ */
248
+ private function call_plugin_api( $slug ) {
249
+ include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
250
+
251
+ $call_api = get_transient( 'ti_plugin_info_' . $slug );
252
+
253
+ if ( false === $call_api ) {
254
+ $call_api = plugins_api(
255
+ 'plugin_information',
256
+ array(
257
+ 'slug' => $slug,
258
+ 'fields' => array(
259
+ 'downloaded' => false,
260
+ 'rating' => false,
261
+ 'description' => false,
262
+ 'short_description' => true,
263
+ 'donate_link' => false,
264
+ 'tags' => false,
265
+ 'sections' => true,
266
+ 'homepage' => true,
267
+ 'added' => false,
268
+ 'last_updated' => false,
269
+ 'compatibility' => false,
270
+ 'tested' => false,
271
+ 'requires' => false,
272
+ 'downloadlink' => false,
273
+ 'icons' => true,
274
+ 'banners' => true,
275
+ ),
276
+ )
277
+ );
278
+ set_transient( 'ti_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS );
279
+ }
280
+
281
+ return $call_api;
282
+ }
283
+
284
+ /**
285
+ * Load css and scripts for the plugin recommend page.
286
+ */
287
+ public function enqueue() {
288
+ $screen = get_current_screen();
289
+
290
+ if ( ! isset( $screen->id ) ) {
291
+ return;
292
+ }
293
+ if ( false === apply_filters( $this->product->get_key() . '_enqueue_recommend', false, $screen->id ) ) {
294
+ return;
295
+ }
296
+
297
+ ?>
298
+ <style type="text/css">
299
+ .recommend-product {
300
+ display: flex;
301
+ justify-content: space-between;
302
+ flex-wrap: wrap;
303
+ }
304
+
305
+ .recommend-product .theme-banner {
306
+ width:200px;
307
+ margin: auto;
308
+ }
309
+ .recommend-product .plugin-banner {
310
+ width: 100px;
311
+ margin: auto;
312
+ }
313
+
314
+ .recommend-product .plugin_box .button span{
315
+
316
+ margin-top: 2px;
317
+ margin-right: 7px;
318
+ }
319
+ .recommend-product .plugin_box .button{
320
+ margin-bottom:10px;
321
+ }
322
+ .recommend-product .plugin_box {
323
+ margin-bottom: 20px;
324
+ padding-top: 5px;
325
+ display: flex;
326
+ box-shadow: 0px 0px 10px -5px rgba(0,0,0,0.55);
327
+ background: #fff;
328
+ border-radius: 5px;
329
+ flex-direction: column;
330
+ justify-content: flex-start;
331
+ width: 95%;
332
+ }
333
+
334
+ .recommend-product .title-action-wrapper {
335
+ padding: 15px 20px 5px 20px;
336
+ }
337
+
338
+ .recommend-product .plugin-name {
339
+ font-size: 18px;
340
+ display: block;
341
+ white-space: nowrap;
342
+ text-overflow: ellipsis;
343
+ margin-bottom: 10px;
344
+ overflow: hidden;
345
+ line-height: normal;
346
+ }
347
+
348
+
349
+ .recommend-product .plugin-desc {
350
+ display: block;
351
+ margin-bottom: 10px;
352
+ font-size: 13px;
353
+ color: #777;
354
+ line-height: 1.6;
355
+ }
356
+
357
+ .recommend-product .button-wrap > div {
358
+ padding: 0;
359
+ margin: 0;
360
+ }
361
+
362
+ .plugin-box-footer {
363
+ display: flex;
364
+ justify-content: space-around;
365
+ vertical-align: middle;
366
+ align-items: center;
367
+ padding: 0px 10px 5px;
368
+ flex: 1;
369
+ margin-top: auto;
370
+ }
371
+ </style>
372
+ <?php
373
+ }
374
+ }
vendor/codeinwp/themeisle-sdk/src/Product.php CHANGED
@@ -380,4 +380,17 @@ class Product {
380
  return $this->install;
381
  }
382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383
  }
380
  return $this->install;
381
  }
382
 
383
+ /**
384
+ * Returns the URL of the product base file.
385
+ *
386
+ * @param string $path The path to the file.
387
+ *
388
+ * @return string The URL of the product base file.
389
+ */
390
+ public function get_base_url( $path = '/' ) {
391
+ if ( $this->type ) {
392
+ return plugins_url( $path, $this->basefile );
393
+ }
394
+ }
395
+
396
  }
vendor/codeinwp/themeisle-sdk/start.php CHANGED
@@ -31,6 +31,7 @@ $files_to_load = [
31
  $path . '/src/' . 'Modules/Logger.php',
32
  $path . '/src/' . 'Modules/Translate.php',
33
  $path . '/src/' . 'Modules/Review.php',
 
34
  ];
35
 
36
  $files_to_load = array_merge( $files_to_load, apply_filters( 'themeisle_sdk_required_files', [] ) );
31
  $path . '/src/' . 'Modules/Logger.php',
32
  $path . '/src/' . 'Modules/Translate.php',
33
  $path . '/src/' . 'Modules/Review.php',
34
+ $path . '/src/' . 'Modules/Recommendation.php',
35
  ];
36
 
37
  $files_to_load = array_merge( $files_to_load, apply_filters( 'themeisle_sdk_required_files', [] ) );
vendor/codeinwp/themeisle-sdk/tests/bootstrap.php DELETED
@@ -1,33 +0,0 @@
1
- <?php
2
- /**
3
- * PHPUnit bootstrap file
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- // Determine the tests directory (from a WP dev checkout).
9
- // Try the WP_TESTS_DIR environment variable first.
10
- $_tests_dir = getenv( 'WP_TESTS_DIR' );
11
- // See if we're installed inside an existing WP dev instance.
12
- if ( ! $_tests_dir ) {
13
- $_try_tests_dir = dirname( __FILE__ ) . '/../../../../../tests/phpunit';
14
- if ( file_exists( $_try_tests_dir . '/includes/functions.php' ) ) {
15
- $_tests_dir = $_try_tests_dir;
16
- }
17
- }
18
- // Fallback.
19
- if ( ! $_tests_dir ) {
20
- $_tests_dir = '/tmp/wordpress-tests-lib';
21
- }
22
- // Give access to tests_add_filter() function.
23
- require_once $_tests_dir . '/includes/functions.php';
24
- /**
25
- * Manually load the plugin being tested.
26
- */
27
- function _manually_load_plugin() {
28
- require dirname( dirname( __FILE__ ) ) . '/load.php';
29
- }
30
-
31
- tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' );
32
- // Start up the WP testing environment.
33
- require $_tests_dir . '/includes/bootstrap.php';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/dashboard-widget-test.php DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
- /**
3
- * Dashboard widget related tests.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test Dashboard widget class.
10
- */
11
- class Dashboard_Widget_Test extends WP_UnitTestCase {
12
-
13
- /**
14
- * Test product from partner loading.
15
- */
16
- public function test_product_partner_module_loading() {
17
-
18
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
19
-
20
- \ThemeisleSDK\Loader::add_product( $file );
21
-
22
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
23
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
24
- $modules['sample_theme_external'] = array_filter(
25
- $modules['sample_theme_external'],
26
- function ( $value ) {
27
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Dashboard_widget' );
28
- }
29
- );
30
- $this->assertEquals( count( $modules['sample_theme_external'] ), 0 );
31
-
32
- }
33
-
34
- /**
35
- * Test if dashboard widget is disabled on partners.
36
- */
37
- public function test_dashboard_widget_can_load_partner() {
38
-
39
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
40
- $product = new \ThemeisleSDK\Product( $file );
41
-
42
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Dashboard_Widget() )->can_load( $product ) );
43
-
44
- }
45
-
46
- /**
47
- * Test if dashboard widget is disabled on partners.
48
- */
49
- public function test_dashboard_widget_can_load_regular() {
50
-
51
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
52
- $product = new \ThemeisleSDK\Product( $file );
53
-
54
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Dashboard_Widget() )->can_load( $product ) );
55
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Dashboard_Widget', ( new \ThemeisleSDK\Modules\Dashboard_Widget() )->load( $product ) );
56
-
57
- }
58
-
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/endpoint-test.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- * Endpoint feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test endpoint feature.
10
- */
11
- class Endpoint_Test extends WP_UnitTestCase {
12
-
13
-
14
- /**
15
- * Test product from partner loading.
16
- */
17
- public function test_product_partner_module_loading() {
18
-
19
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
20
-
21
- \ThemeisleSDK\Loader::add_product( $file );
22
-
23
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
24
-
25
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
26
- $modules['sample_theme_external'] = array_filter(
27
- $modules['sample_theme_external'],
28
- function ( $value ) {
29
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Endpoint' );
30
- }
31
- );
32
- $this->assertCount( 1, $modules['sample_theme_external'] );
33
-
34
- }
35
-
36
- /**
37
- * Test product from partner loading.
38
- */
39
- public function test_endpoint_product_loading() {
40
-
41
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
42
-
43
- \ThemeisleSDK\Loader::add_product( $file );
44
-
45
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
46
-
47
- $this->assertArrayHasKey( 'sample_theme', $modules );
48
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
49
-
50
- }
51
-
52
- /**
53
- * Test if endpoint is disabled on partners.
54
- */
55
- public function test_endpoint_can_load_partner() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
58
- $product = new \ThemeisleSDK\Product( $file );
59
-
60
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Endpoint() )->can_load( $product ) );
61
-
62
- }
63
-
64
-
65
- /**
66
- * Test if endpoint should load for admins.
67
- */
68
- public function test_endpoint_can_load() {
69
-
70
- $file = dirname( __FILE__ ) . '/sample_products/sample_plugin/plugin_file.php';
71
- $product = new \ThemeisleSDK\Product( $file );
72
-
73
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Endpoint() )->can_load( $product ) );
74
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Endpoint', ( new \ThemeisleSDK\Modules\Endpoint() )->load( $product ) );
75
-
76
- }
77
-
78
-
79
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/licenser-test.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- /**
3
- * Licenser feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test licenser feature.
10
- */
11
- class Licenser_Test extends WP_UnitTestCase {
12
-
13
-
14
- /**
15
- * Test product from partner loading.
16
- */
17
- public function test_product_partner_module_loading() {
18
-
19
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
20
-
21
- \ThemeisleSDK\Loader::add_product( $file );
22
-
23
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
24
-
25
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
26
- $modules['sample_theme_external'] = array_filter(
27
- $modules['sample_theme_external'],
28
- function ( $value ) {
29
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Licenser' );
30
- }
31
- );
32
- $this->assertCount( 1, $modules['sample_theme_external'] );
33
-
34
- }
35
-
36
- /**
37
- * Test product from partner loading.
38
- */
39
- public function test_licenser_product_loading() {
40
-
41
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
42
-
43
- \ThemeisleSDK\Loader::add_product( $file );
44
-
45
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
46
-
47
- $this->assertArrayHasKey( 'sample_theme', $modules );
48
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
49
-
50
- }
51
-
52
- /**
53
- * Test if licenser is disabled on partners.
54
- */
55
- public function test_licenser_can_load_partner() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
58
- $product = new \ThemeisleSDK\Product( $file );
59
-
60
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Licenser() )->can_load( $product ) );
61
-
62
- }
63
-
64
-
65
- /**
66
- * Test if licenser should load for admins.
67
- */
68
- public function test_licenser_can_load() {
69
-
70
- $file = dirname( __FILE__ ) . '/sample_products/sample_plugin/plugin_file.php';
71
- $product = new \ThemeisleSDK\Product( $file );
72
-
73
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Licenser() )->can_load( $product ) );
74
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Licenser', ( new \ThemeisleSDK\Modules\Licenser() )->load( $product ) );
75
-
76
- }
77
-
78
-
79
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/loader-test.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
- /**
3
- * Loader manager test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test loader manager.
10
- *
11
- * @runTestsInSeparateProcesses
12
- */
13
- class Loader_Test extends WP_UnitTestCase {
14
-
15
- /**
16
- * Test loading of invalid file.
17
- */
18
- public function test_products_invalid_subscribe() {
19
- $file = dirname( __FILE__ ) . '/invalid/sample_products/sample_plugin/plugin-file.php';
20
- \ThemeisleSDK\Loader::add_product( $file );
21
- $this->assertEmpty( ThemeisleSDK\Loader::get_products() );
22
- }
23
-
24
- /**
25
- * Test loading of plugin file.
26
- */
27
- public function test_products_valid_subscribe_plugin() {
28
- $file = dirname( __FILE__ ) . '/sample_products/sample_plugin/plugin_file.php';
29
-
30
- \ThemeisleSDK\Loader::add_product( $file );
31
-
32
- $this->assertEquals( count( ThemeisleSDK\Loader::get_products() ), 1 );
33
- }
34
-
35
- /**
36
- * Test loading of theme file.
37
- */
38
- public function test_products_valid_subscribe_theme() {
39
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
40
-
41
- \ThemeisleSDK\Loader::add_product( $file );
42
-
43
- $this->assertEquals( count( ThemeisleSDK\Loader::get_products() ), 1 );
44
- }
45
-
46
-
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/loading-test.php DELETED
@@ -1,52 +0,0 @@
1
- <?php
2
- /**
3
- * `loading` test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test sdk loading.
10
- *
11
- * @runTestsInSeparateProcesses
12
- */
13
- class Sdk_Loading_Test extends WP_UnitTestCase {
14
- /**
15
- * Test if the SDK is loading properly and version is exported.
16
- */
17
- public function test_version_exists() {
18
- global $themeisle_sdk_max_version;
19
- $this->assertTrue( isset( $themeisle_sdk_max_version ) );
20
- $this->assertTrue( version_compare( '0.0.1', $themeisle_sdk_max_version, '<' ) );
21
- }
22
-
23
- /**
24
- * Test that classes are properly loaded.
25
- */
26
- public function test_class_loading() {
27
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Loader' ) );
28
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Product' ) );
29
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Dashboard_Widget' ) );
30
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Rollback' ) );
31
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Uninstall_Feedback' ) );
32
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Licenser' ) );
33
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Endpoint' ) );
34
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Notification' ) );
35
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Logger' ) );
36
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Translate' ) );
37
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Modules\\Review' ) );
38
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Common\\Abstract_Module' ) );
39
- $this->assertTrue( class_exists( 'ThemeisleSDK\\Common\\Module_factory' ) );
40
- }
41
-
42
- /**
43
- * Test the loaded products.
44
- */
45
- public function test_loaded_defaults() {
46
- $this->assertEquals( count( \ThemeisleSDK\Loader::get_products() ), 0 );
47
- $this->assertGreaterThan( 0, count( \ThemeisleSDK\Loader::get_modules() ) );
48
-
49
- }
50
-
51
-
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/logger-test.php DELETED
@@ -1,67 +0,0 @@
1
- <?php
2
- /**
3
- * Logger feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test logger feature.
10
- */
11
- class Logger_Test extends WP_UnitTestCase {
12
-
13
-
14
- public function test_product_partner_module_loading() {
15
-
16
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
17
-
18
- \ThemeisleSDK\Loader::add_product( $file );
19
-
20
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
21
-
22
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
23
- $modules['sample_theme_external'] = array_filter(
24
- $modules['sample_theme_external'],
25
- function ( $value ) {
26
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Logger' );
27
- }
28
- );
29
- $this->assertEquals( count( $modules['sample_theme_external'] ), 1 );
30
-
31
- }
32
-
33
- public function test_product_loading() {
34
-
35
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
36
-
37
- \ThemeisleSDK\Loader::add_product( $file );
38
-
39
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
40
-
41
- $this->assertArrayHasKey( 'sample_theme', $modules );
42
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
43
-
44
- }
45
-
46
- public function test_can_load_partner() {
47
-
48
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
49
- $product = new \ThemeisleSDK\Product( $file );
50
-
51
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Logger() )->can_load( $product ) );
52
-
53
- }
54
-
55
- public function test_load_normal() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
58
-
59
- $product = new \ThemeisleSDK\Product( $file );
60
-
61
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Logger() )->can_load( $product ) );
62
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Logger', ( new \ThemeisleSDK\Modules\Logger() )->load( $product ) );
63
-
64
- }
65
-
66
-
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/notification-test.php DELETED
@@ -1,111 +0,0 @@
1
- <?php
2
- /**
3
- * Notification feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test notification feature.
10
- */
11
- class Notification_Test extends WP_UnitTestCase {
12
-
13
- protected static $editor_id;
14
- protected static $admin_id;
15
-
16
- public static function wpSetUpBeforeClass( $factory ) {
17
- self::$editor_id = $factory->user->create(
18
- array(
19
- 'role' => 'editor',
20
- )
21
- );
22
- self::$admin_id = $factory->user->create(
23
- array(
24
- 'role' => 'administrator',
25
- )
26
- );
27
-
28
- wp_set_current_user( self::$editor_id );
29
- }
30
-
31
- public static function wpTearDownAfterClass() {
32
- self::delete_user( self::$editor_id );
33
- self::delete_user( self::$admin_id );
34
- }
35
-
36
- public function test_product_partner_module_loading() {
37
-
38
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
39
-
40
- \ThemeisleSDK\Loader::add_product( $file );
41
-
42
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
43
-
44
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
45
- $modules['sample_theme_external'] = array_filter(
46
- $modules['sample_theme_external'],
47
- function ( $value ) {
48
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Notification' );
49
- }
50
- );
51
- $this->assertEquals( count( $modules['sample_theme_external'] ), 0 );
52
-
53
- }
54
-
55
- public function test_notification_product_loading() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
58
-
59
- \ThemeisleSDK\Loader::add_product( $file );
60
-
61
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
62
-
63
- $this->assertArrayHasKey( 'sample_theme', $modules );
64
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
65
-
66
- }
67
-
68
- public function test_notification_can_load_partner() {
69
-
70
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
71
- $product = new \ThemeisleSDK\Product( $file );
72
-
73
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Notification() )->can_load( $product ) );
74
-
75
- }
76
-
77
- public function test_notification_load_non_admins() {
78
- wp_set_current_user( self::$editor_id );
79
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
80
- $product = new \ThemeisleSDK\Product( $file );
81
-
82
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Notification() )->can_load( $product ) );
83
-
84
- }
85
-
86
- public function test_notification_not_load_for_new() {
87
- wp_set_current_user( self::$admin_id );
88
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
89
-
90
- $product = new \ThemeisleSDK\Product( $file );
91
-
92
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Notification() )->can_load( $product ) );
93
-
94
- }
95
-
96
- public function test_notification_load_old() {
97
- wp_set_current_user( self::$admin_id );
98
-
99
- update_option( 'sample_theme_install', ( time() - MONTH_IN_SECONDS ) );
100
-
101
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
102
-
103
- $product = new \ThemeisleSDK\Product( $file );
104
-
105
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Notification() )->can_load( $product ) );
106
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Notification', ( new \ThemeisleSDK\Modules\Notification() )->load( $product ) );
107
-
108
- }
109
-
110
-
111
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/old/loading-test.php DELETED
@@ -1,19 +0,0 @@
1
- <?php
2
- /**
3
- * Loading test for lower PHP versions.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test sdk loading.
10
- */
11
- class Sdk_Loading_Old_Test extends WP_UnitTestCase {
12
- /**
13
- * Test if the SDK is not loading on lower php versions.
14
- */
15
- public function test_sdk_not_loaded() {
16
- $this->assertFalse( class_exists( 'ThemeisleSDK\\Loader' ) );
17
- }
18
-
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/product-test.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
- /**
3
- * Product data tests.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test product class.
10
- */
11
- class Product_Test extends WP_UnitTestCase {
12
- /**
13
- * Test product from plugin
14
- */
15
- public function test_product_from_plugin() {
16
-
17
- $file = dirname( __FILE__ ) . '/sample_products/sample_plugin/plugin_file.php';
18
-
19
- $product = new \ThemeisleSDK\Product( $file );
20
-
21
- $this->assertEquals( $product->get_type(), 'plugin' );
22
- $this->assertEquals( $product->get_slug(), 'sample_plugin' );
23
- $this->assertEquals( $product->get_store_name(), 'ThemeIsle' );
24
- $this->assertEquals( $product->get_version(), '1.1.1' );
25
- $this->assertGreaterThanOrEqual( $product->get_install_time(), time() );
26
- $this->assertEquals( $product->get_store_url(), 'https://themeisle.com' );
27
- $this->assertFalse( $product->requires_license() );
28
- $this->assertFalse( $product->is_wordpress_available() );
29
- }
30
-
31
- /**
32
- * Test product from theme.
33
- */
34
- public function test_product_from_theme() {
35
-
36
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
37
-
38
- $product = new \ThemeisleSDK\Product( $file );
39
-
40
- $this->assertEquals( $product->get_type(), 'theme' );
41
- $this->assertEquals( $product->get_slug(), 'sample_theme' );
42
- $this->assertEquals( $product->get_store_name(), 'ThemeIsle' );
43
- $this->assertEquals( $product->get_version(), '2.0.18' );
44
- $this->assertGreaterThanOrEqual( $product->get_install_time(), time() );
45
- $this->assertEquals( $product->get_store_url(), 'https://themeisle.com' );
46
- $this->assertTrue( $product->requires_license() );
47
- $this->assertTrue( $product->is_wordpress_available() );
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/review-test.php DELETED
@@ -1,67 +0,0 @@
1
- <?php
2
- /**
3
- * Review feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test review feature.
10
- */
11
- class Review_Test extends WP_UnitTestCase {
12
-
13
-
14
- public function test_product_partner_module_loading() {
15
-
16
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
17
-
18
- \ThemeisleSDK\Loader::add_product( $file );
19
-
20
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
21
-
22
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
23
- $modules['sample_theme_external'] = array_filter(
24
- $modules['sample_theme_external'],
25
- function ( $value ) {
26
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Review' );
27
- }
28
- );
29
- $this->assertEquals( count( $modules['sample_theme_external'] ), 0 );
30
-
31
- }
32
-
33
- public function test_product_loading() {
34
-
35
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
36
-
37
- \ThemeisleSDK\Loader::add_product( $file );
38
-
39
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
40
-
41
- $this->assertArrayHasKey( 'sample_theme', $modules );
42
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
43
-
44
- }
45
-
46
- public function test_can_load_partner() {
47
-
48
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
49
- $product = new \ThemeisleSDK\Product( $file );
50
-
51
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Review() )->can_load( $product ) );
52
-
53
- }
54
-
55
- public function test_load_normal() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
58
-
59
- $product = new \ThemeisleSDK\Product( $file );
60
-
61
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Review() )->can_load( $product ) );
62
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Review', ( new \ThemeisleSDK\Modules\Review() )->load( $product ) );
63
-
64
- }
65
-
66
-
67
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/rollback-test.php DELETED
@@ -1,114 +0,0 @@
1
- <?php
2
- /**
3
- * Rollback feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test Rollback feature.
10
- */
11
- class Rollback_Test extends WP_UnitTestCase {
12
-
13
- protected static $editor_id;
14
- protected static $admin_id;
15
-
16
- public static function wpSetUpBeforeClass( $factory ) {
17
- self::$editor_id = $factory->user->create(
18
- array(
19
- 'role' => 'editor',
20
- )
21
- );
22
- self::$admin_id = $factory->user->create(
23
- array(
24
- 'role' => 'administrator',
25
- )
26
- );
27
-
28
- wp_set_current_user( self::$editor_id );
29
- }
30
-
31
- public static function wpTearDownAfterClass() {
32
- self::delete_user( self::$editor_id );
33
- self::delete_user( self::$admin_id );
34
- }
35
-
36
- /**
37
- * Test product from partner loading.
38
- */
39
- public function test_product_partner_module_loading() {
40
-
41
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
42
-
43
- \ThemeisleSDK\Loader::add_product( $file );
44
-
45
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
46
-
47
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
48
- $modules['sample_theme_external'] = array_filter(
49
- $modules['sample_theme_external'],
50
- function ( $value ) {
51
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Rollback' );
52
- }
53
- );
54
- $this->assertEquals( count( $modules['sample_theme_external'] ), 0 );
55
-
56
- }
57
-
58
- /**
59
- * Test product from partner loading.
60
- */
61
- public function test_rollback_product_loading() {
62
-
63
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
64
-
65
- \ThemeisleSDK\Loader::add_product( $file );
66
-
67
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
68
-
69
- $this->assertArrayHasKey( 'sample_theme', $modules );
70
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
71
-
72
- }
73
-
74
- /**
75
- * Test if rollback is disabled on partners.
76
- */
77
- public function test_rollback_can_load_partner() {
78
-
79
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
80
- $product = new \ThemeisleSDK\Product( $file );
81
-
82
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Rollback() )->can_load( $product ) );
83
-
84
- }
85
-
86
- /**
87
- * Test if rollback should not load for non admins.
88
- */
89
- public function test_rollback_not_load_non_admins() {
90
-
91
- wp_set_current_user( self::$editor_id );
92
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
93
- $product = new \ThemeisleSDK\Product( $file );
94
-
95
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Rollback() )->can_load( $product ) );
96
-
97
- }
98
-
99
- /**
100
- * Test if rollback should load for admins.
101
- */
102
- public function test_rollback_not_load_admins() {
103
-
104
- wp_set_current_user( self::$admin_id );
105
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
106
- $product = new \ThemeisleSDK\Product( $file );
107
-
108
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Rollback() )->can_load( $product ) );
109
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Rollback', ( new \ThemeisleSDK\Modules\Rollback() )->load( $product ) );
110
-
111
- }
112
-
113
-
114
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_plugin/plugin_file.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
- /**
3
- * Plugin Name: Sample plugin.
4
- * Description: Sample description
5
- * Version: 1.1.1
6
- * Author: ThemeIsle
7
- * Author URI: https://themeisle.com
8
- * License: GPL-2.0+
9
- * License URI: http://www.gnu.org/licenses/gpl-2.0.txt
10
- * Text Domain: sample-plugin
11
- * WordPress Available: no
12
- * Requires License: no
13
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_theme/style.css DELETED
@@ -1,10 +0,0 @@
1
- /*
2
- Theme Name: Test theme
3
- Author: ThemeIsle
4
- Author URI: https://themeisle.com
5
- Version: 2.0.18
6
- License: GNU General Public License v2 or later
7
- License URI: http://www.gnu.org/licenses/gpl-2.0.html s
8
- WordPress Available: yes
9
- Requires License: yes
10
- */
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/sample_products/sample_theme_external/style.css DELETED
@@ -1,10 +0,0 @@
1
- /*
2
- Theme Name: Test theme
3
- Author: ThemeIsle
4
- Author URI: https://prothemedesign.com
5
- Version: 2.0.18
6
- License: GNU General Public License v2 or later
7
- License URI: http://www.gnu.org/licenses/gpl-2.0.html s
8
- WordPress Available: no
9
- Requires License: yes
10
- */
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/translate-test.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- /**
3
- * Translate feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test translate feature.
10
- */
11
- class Translate_Test extends WP_UnitTestCase {
12
-
13
-
14
- public function test_product_partner_module_loading() {
15
-
16
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
17
-
18
- \ThemeisleSDK\Loader::add_product( $file );
19
-
20
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
21
-
22
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
23
- $modules['sample_theme_external'] = array_filter(
24
- $modules['sample_theme_external'],
25
- function ( $value ) {
26
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Translate' );
27
- }
28
- );
29
- $this->assertEquals( count( $modules['sample_theme_external'] ), 0 );
30
-
31
- }
32
-
33
- public function test_product_loading() {
34
-
35
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
36
-
37
- \ThemeisleSDK\Loader::add_product( $file );
38
-
39
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
40
-
41
- $this->assertArrayHasKey( 'sample_theme', $modules );
42
- $this->assertGreaterThan( 0, count( $modules['sample_theme'] ) );
43
-
44
- }
45
-
46
- public function test_can_load_partner() {
47
-
48
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
49
- $product = new \ThemeisleSDK\Product( $file );
50
-
51
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Translate() )->can_load( $product ) );
52
-
53
- }
54
-
55
- public function test_load_normal_english() {
56
-
57
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
58
-
59
- $product = new \ThemeisleSDK\Product( $file );
60
-
61
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Translate() )->can_load( $product ) );
62
-
63
- }
64
-
65
- public function test_load_non_english() {
66
- add_filter(
67
- 'locale',
68
- function () {
69
- return 'fy';
70
- }
71
- );
72
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
73
-
74
- $product = new \ThemeisleSDK\Product( $file );
75
-
76
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Translate() )->can_load( $product ) );
77
-
78
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Translate', ( new \ThemeisleSDK\Modules\Translate() )->load( $product ) );
79
-
80
- }
81
-
82
-
83
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/codeinwp/themeisle-sdk/tests/uninstall-feedback-test.php DELETED
@@ -1,130 +0,0 @@
1
- <?php
2
- /**
3
- * Uninstall feature test.
4
- *
5
- * @package ThemeIsleSDK
6
- */
7
-
8
- /**
9
- * Test Uninstall feedback feature.
10
- */
11
- class Uninstall_Feedback_Test extends WP_UnitTestCase {
12
-
13
-
14
- /**
15
- * Test product from partner loading.
16
- */
17
- public function test_product_partner_module_loading() {
18
-
19
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
20
-
21
- \ThemeisleSDK\Loader::add_product( $file );
22
-
23
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
24
-
25
- $this->assertArrayHasKey( 'sample_theme_external', $modules );
26
- $modules['sample_theme_external'] = array_filter(
27
- $modules['sample_theme_external'],
28
- function ( $value ) {
29
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Uninstall_Feedback' );
30
- }
31
- );
32
- $this->assertCount( 0, $modules['sample_theme_external'] );
33
-
34
- }
35
-
36
- /**
37
- * Test product from partner loading.
38
- */
39
- public function test_un_feedback_product_loading() {
40
-
41
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
42
- global $pagenow;
43
- $pagenow = 'theme-install.php';
44
- \ThemeisleSDK\Loader::add_product( $file );
45
-
46
- $modules = \ThemeisleSDK\Common\Module_Factory::get_modules_map();
47
-
48
- $this->assertArrayHasKey( 'sample_theme', $modules );
49
- $modules['sample_theme'] = array_filter(
50
- $modules['sample_theme'],
51
- function ( $value ) {
52
- return ( get_class( $value ) === 'ThemeisleSDK\\Modules\\Uninstall_Feedback' );
53
- }
54
- );
55
- $this->assertCount( 1, $modules['sample_theme'] );
56
- }
57
-
58
- /**
59
- * Test if uninstall feedback is disabled on partners.
60
- */
61
- public function test_un_feedback_can_load_partner() {
62
-
63
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme_external/style.css';
64
- $product = new \ThemeisleSDK\Product( $file );
65
-
66
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->can_load( $product ) );
67
-
68
- }
69
-
70
-
71
- /**
72
- * Test if uninstall feedback should load for non whitelisted pages.
73
- */
74
- public function test_un_feedback_load_non_pages() {
75
-
76
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
77
- $product = new \ThemeisleSDK\Product( $file );
78
- global $pagenow;
79
- $pagenow = 'index.php';
80
- $this->assertFalse( ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->can_load( $product ) );
81
-
82
- }
83
-
84
- /**
85
- * Test if uninstall feedback should load for plugins listing.
86
- */
87
- public function test_un_feedback_load_plugins_pages() {
88
-
89
- $file = dirname( __FILE__ ) . '/sample_products/sample_plugin/plugin-file.php';
90
- $product = new \ThemeisleSDK\Product( $file );
91
- global $pagenow;
92
- $pagenow = 'plugins.php';
93
-
94
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->can_load( $product ) );
95
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Uninstall_Feedback', ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->load( $product ) );
96
-
97
- }
98
-
99
- /**
100
- * Test if uninstall feedback should load for themes install.
101
- */
102
- public function test_un_feedback_load_themes_pages() {
103
-
104
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
105
- $product = new \ThemeisleSDK\Product( $file );
106
- global $pagenow;
107
- $pagenow = 'theme-install.php';
108
-
109
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->can_load( $product ) );
110
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Uninstall_Feedback', ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->load( $product ) );
111
-
112
- }
113
-
114
- /**
115
- * Test if uninstall feedback loads on ajax requests.
116
- */
117
- public function test_un_feedback_load_ajax() {
118
-
119
- $file = dirname( __FILE__ ) . '/sample_products/sample_theme/style.css';
120
- $product = new \ThemeisleSDK\Product( $file );
121
-
122
- define( 'DOING_AJAX', true );
123
-
124
- $this->assertTrue( ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->can_load( $product ) );
125
- $this->assertInstanceOf( 'ThemeisleSDK\\Modules\\Uninstall_Feedback', ( new \ThemeisleSDK\Modules\Uninstall_Feedback() )->load( $product ) );
126
-
127
- }
128
-
129
-
130
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit7bcfb57daa3486b831204a90bc8bb431
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire7bcfb57daa3486b831204a90bc8bb431($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire7bcfb57daa3486b831204a90bc8bb431($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitc1e6a297c8a1a1872118a0757f0a7a3c
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitc1e6a297c8a1a1872118a0757f0a7a3c', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitc1e6a297c8a1a1872118a0757f0a7a3c', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequirec1e6a297c8a1a1872118a0757f0a7a3c($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequirec1e6a297c8a1a1872118a0757f0a7a3c($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
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 ComposerAutoloaderInit88de9c52a4f97d379b074397f5b1ae49 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit88de9c52a4f97d379b074397f5b1ae49 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit88de9c52a4f97d379b074397f5b1ae49', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit88de9c52a4f97d379b074397f5b1ae49', '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 ComposerAutoloaderInita6c04694096c277063fd3d183fddf7a3 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInita6c04694096c277063fd3d183fddf7a3', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInita6c04694096c277063fd3d183fddf7a3', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
vendor/composer/installed.json CHANGED
@@ -6,12 +6,12 @@
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
- "reference": "cf03ee5b93c6ca66f0c1a4916309f1270fe12319"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/cf03ee5b93c6ca66f0c1a4916309f1270fe12319",
14
- "reference": "cf03ee5b93c6ca66f0c1a4916309f1270fe12319",
15
  "shasum": ""
16
  },
17
  "require-dev": {
@@ -19,7 +19,7 @@
19
  "squizlabs/php_codesniffer": "^3.1",
20
  "wp-coding-standards/wpcs": "^1.0.0"
21
  },
22
- "time": "2019-01-28 12:17:14",
23
  "type": "library",
24
  "installation-source": "source",
25
  "notification-url": "https://packagist.org/downloads/",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
9
+ "reference": "7ead6c057d783ea6c827d5b5de52a25c0e72de58"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/7ead6c057d783ea6c827d5b5de52a25c0e72de58",
14
+ "reference": "7ead6c057d783ea6c827d5b5de52a25c0e72de58",
15
  "shasum": ""
16
  },
17
  "require-dev": {
19
  "squizlabs/php_codesniffer": "^3.1",
20
  "wp-coding-standards/wpcs": "^1.0.0"
21
  },
22
+ "time": "2019-03-07 15:42:52",
23
  "type": "library",
24
  "installation-source": "source",
25
  "notification-url": "https://packagist.org/downloads/",
vendor/markbaker/complex/composer.json DELETED
@@ -1,91 +0,0 @@
1
- {
2
- "name": "markbaker/complex",
3
- "type": "library",
4
- "description": "PHP Class for working with complex numbers",
5
- "keywords": ["complex", "mathematics"],
6
- "homepage": "https://github.com/MarkBaker/PHPComplex",
7
- "license": "MIT",
8
- "authors": [
9
- {
10
- "name": "Mark Baker",
11
- "email": "mark@lange.demon.co.uk"
12
- }
13
- ],
14
- "require": {
15
- "php": "^5.6.0|^7.0.0"
16
- },
17
- "require-dev": {
18
- "phpunit/phpunit": "^4.8.35|^5.4.0",
19
- "phpdocumentor/phpdocumentor":"2.*",
20
- "phpmd/phpmd": "2.*",
21
- "sebastian/phpcpd": "2.*",
22
- "phploc/phploc": "2.*",
23
- "squizlabs/php_codesniffer": "^3.3.0",
24
- "phpcompatibility/php-compatibility": "^8.0",
25
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
26
- },
27
- "autoload": {
28
- "psr-4": {
29
- "Complex\\": "classes/src/"
30
- },
31
- "files": [
32
- "classes/src/functions/abs.php",
33
- "classes/src/functions/acos.php",
34
- "classes/src/functions/acosh.php",
35
- "classes/src/functions/acot.php",
36
- "classes/src/functions/acoth.php",
37
- "classes/src/functions/acsc.php",
38
- "classes/src/functions/acsch.php",
39
- "classes/src/functions/argument.php",
40
- "classes/src/functions/asec.php",
41
- "classes/src/functions/asech.php",
42
- "classes/src/functions/asin.php",
43
- "classes/src/functions/asinh.php",
44
- "classes/src/functions/atan.php",
45
- "classes/src/functions/atanh.php",
46
- "classes/src/functions/conjugate.php",
47
- "classes/src/functions/cos.php",
48
- "classes/src/functions/cosh.php",
49
- "classes/src/functions/cot.php",
50
- "classes/src/functions/coth.php",
51
- "classes/src/functions/csc.php",
52
- "classes/src/functions/csch.php",
53
- "classes/src/functions/exp.php",
54
- "classes/src/functions/inverse.php",
55
- "classes/src/functions/ln.php",
56
- "classes/src/functions/log2.php",
57
- "classes/src/functions/log10.php",
58
- "classes/src/functions/negative.php",
59
- "classes/src/functions/pow.php",
60
- "classes/src/functions/rho.php",
61
- "classes/src/functions/sec.php",
62
- "classes/src/functions/sech.php",
63
- "classes/src/functions/sin.php",
64
- "classes/src/functions/sinh.php",
65
- "classes/src/functions/sqrt.php",
66
- "classes/src/functions/tan.php",
67
- "classes/src/functions/tanh.php",
68
- "classes/src/functions/theta.php",
69
- "classes/src/operations/add.php",
70
- "classes/src/operations/subtract.php",
71
- "classes/src/operations/multiply.php",
72
- "classes/src/operations/divideby.php",
73
- "classes/src/operations/divideinto.php"
74
- ]
75
- },
76
- "scripts": {
77
- "style": [
78
- "phpcs --report-width=200 --report-summary --report-full classes/src/ --standard=PSR2 -n"
79
- ],
80
- "mess": [
81
- "phpmd classes/src/ xml codesize,unusedcode,design,naming -n"
82
- ],
83
- "lines": [
84
- "phploc classes/src/ -n"
85
- ],
86
- "cpd": [
87
- "phpcpd classes/src/ -n"
88
- ]
89
- },
90
- "minimum-stability": "dev"
91
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/markbaker/matrix/composer.json DELETED
@@ -1,68 +0,0 @@
1
- {
2
- "name": "markbaker/matrix",
3
- "type": "library",
4
- "description": "PHP Class for working with matrices",
5
- "keywords": ["matrix", "vector", "mathematics"],
6
- "homepage": "https://github.com/MarkBaker/PHPMatrix",
7
- "license": "MIT",
8
- "authors": [
9
- {
10
- "name": "Mark Baker",
11
- "email": "mark@lange.demon.co.uk"
12
- }
13
- ],
14
- "require": {
15
- "php": "^5.6.0|^7.0.0"
16
- },
17
- "require-dev": {
18
- "phpunit/phpunit": "^4.8.35|^5.4.0",
19
- "phpdocumentor/phpdocumentor":"2.*",
20
- "phpmd/phpmd": "2.*",
21
- "sebastian/phpcpd": "2.*",
22
- "phploc/phploc": "2.*",
23
- "squizlabs/php_codesniffer": "^3.3.0",
24
- "phpcompatibility/php-compatibility": "^8.0",
25
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
26
- },
27
- "autoload": {
28
- "psr-4": {
29
- "Matrix\\": "classes/src/"
30
- },
31
- "files": [
32
- "classes/src/functions/adjoint.php",
33
- "classes/src/functions/antidiagonal.php",
34
- "classes/src/functions/cofactors.php",
35
- "classes/src/functions/determinant.php",
36
- "classes/src/functions/diagonal.php",
37
- "classes/src/functions/identity.php",
38
- "classes/src/functions/inverse.php",
39
- "classes/src/functions/minors.php",
40
- "classes/src/functions/trace.php",
41
- "classes/src/functions/transpose.php",
42
- "classes/src/operations/add.php",
43
- "classes/src/operations/directsum.php",
44
- "classes/src/operations/subtract.php",
45
- "classes/src/operations/multiply.php",
46
- "classes/src/operations/divideby.php",
47
- "classes/src/operations/divideinto.php"
48
- ]
49
- },
50
- "scripts": {
51
- "style": [
52
- "phpcs --report-width=200 --report-summary --report-full classes/src/ --standard=PSR2 -n"
53
- ],
54
- "test": [
55
- "phpunit"
56
- ],
57
- "mess": [
58
- "phpmd classes/src/ xml codesize,unusedcode,design,naming -n"
59
- ],
60
- "lines": [
61
- "phploc classes/src/ -n"
62
- ],
63
- "cpd": [
64
- "phpcpd classes/src/ -n"
65
- ]
66
- },
67
- "minimum-stability": "dev"
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/neitanod/forceutf8/composer.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "name": "neitanod/forceutf8",
3
- "homepage": "https://github.com/neitanod/forceutf8",
4
- "license": "BSD-3-Clause",
5
- "type": "library",
6
- "description": "PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings.",
7
- "require": {
8
- "php": ">=5.3.0"
9
- },
10
- "authors": [
11
- {
12
- "name": "Sebastián Grignoli",
13
- "email": "grignoli@gmail.com"
14
- }
15
- ],
16
- "autoload": {
17
- "psr-0": {
18
- "ForceUTF8\\": "src/"
19
- }
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env php
2
- <?php
3
- use PhpOffice\PhpSpreadsheet\Helper\Migrator;
4
-
5
- require_once __DIR__ . '/../src/Bootstrap.php';
6
-
7
- $migrator = new Migrator();
8
- $migrator->migrate();
 
 
 
 
 
 
 
 
vendor/phpoffice/phpspreadsheet/bin/pre-commit DELETED
@@ -1,33 +0,0 @@
1
- #!/bin/bash
2
-
3
- pass=true
4
-
5
- files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(php|phtml)$')
6
- if [ "$files" != "" ]; then
7
-
8
- # Run php syntax check before commit
9
- while read -r file; do
10
- php -l "$file"
11
- if [ $? -ne 0 ]; then
12
- pass=false
13
- fi
14
- done <<< "$files"
15
-
16
- # Run php-cs-fixer validation before commit
17
- echo "$files" | xargs ./vendor/bin/php-cs-fixer fix --diff --config .php_cs.dist
18
- if [ $? -ne 0 ]; then
19
- pass=false
20
- fi
21
-
22
- # Automatically add files that may have been fixed by php-cs-fixer
23
- echo "$files" | xargs git add
24
- fi
25
-
26
- if $pass; then
27
- exit 0
28
- else
29
- echo ""
30
- echo "PRE-COMMIT HOOK FAILED:"
31
- echo "Code style validation failed. Please fix errors and try committing again."
32
- exit 1
33
- fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpspreadsheet/composer.json DELETED
@@ -1,87 +0,0 @@
1
- {
2
- "name": "phpoffice/phpspreadsheet",
3
- "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
4
- "keywords": ["PHP", "OpenXML", "Excel", "xlsx", "xls", "ods", "gnumeric", "spreadsheet"],
5
- "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
6
- "type": "library",
7
- "license": "LGPL-2.1-or-later",
8
- "authors": [
9
- {
10
- "name": "Maarten Balliauw",
11
- "homepage": "https://blog.maartenballiauw.be"
12
- },
13
- {
14
- "name": "Mark Baker",
15
- "homepage": "https://markbakeruk.net"
16
- },
17
- {
18
- "name": "Franck Lefevre",
19
- "homepage": "https://rootslabs.net"
20
- },
21
- {
22
- "name": "Erik Tilt"
23
- },
24
- {
25
- "name": "Adrien Crivelli"
26
- }
27
- ],
28
- "scripts": {
29
- "check": [
30
- "php-cs-fixer fix --ansi --dry-run --diff",
31
- "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PSR2 -n",
32
- "phpunit --color=always"
33
- ],
34
- "fix": [
35
- "php-cs-fixer fix --ansi"
36
- ],
37
- "versions": [
38
- "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 5.6- -n"
39
- ]
40
- },
41
- "require": {
42
- "php": "^5.6|^7.0",
43
- "ext-ctype": "*",
44
- "ext-dom": "*",
45
- "ext-gd": "*",
46
- "ext-iconv": "*",
47
- "ext-fileinfo": "*",
48
- "ext-libxml": "*",
49
- "ext-mbstring": "*",
50
- "ext-SimpleXML": "*",
51
- "ext-xml": "*",
52
- "ext-xmlreader": "*",
53
- "ext-xmlwriter": "*",
54
- "ext-zip": "*",
55
- "ext-zlib": "*",
56
- "psr/simple-cache": "^1.0",
57
- "markbaker/complex": "^1.4",
58
- "markbaker/matrix": "^1.1"
59
- },
60
- "require-dev": {
61
- "tecnickcom/tcpdf": "^6.2",
62
- "phpunit/phpunit": "^5.7",
63
- "doctrine/instantiator": "^1.0.0",
64
- "dompdf/dompdf": "^0.8.0",
65
- "mpdf/mpdf": "^7.0.0",
66
- "jpgraph/jpgraph": "^4.0",
67
- "friendsofphp/php-cs-fixer": "@stable",
68
- "phpcompatibility/php-compatibility": "^8.0",
69
- "squizlabs/php_codesniffer": "^3.3"
70
- },
71
- "suggest": {
72
- "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
73
- "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
74
- "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer",
75
- "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers"
76
- },
77
- "autoload": {
78
- "psr-4": {
79
- "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
80
- }
81
- },
82
- "autoload-dev": {
83
- "psr-4": {
84
- "PhpOffice\\PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests"
85
- }
86
- }
87
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/phpoffice/phpspreadsheet/composer.lock DELETED
@@ -1,3211 +0,0 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5
- "This file is @generated automatically"
6
- ],
7
- "content-hash": "d70247696f417581626dde9641b53bdc",
8
- "packages": [
9
- {
10
- "name": "markbaker/complex",
11
- "version": "1.4.7",
12
- "source": {
13
- "type": "git",
14
- "url": "https://github.com/MarkBaker/PHPComplex.git",
15
- "reference": "1ea674a8308baf547cbcbd30c5fcd6d301b7c000"
16
- },
17
- "dist": {
18
- "type": "zip",
19
- "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/1ea674a8308baf547cbcbd30c5fcd6d301b7c000",
20
- "reference": "1ea674a8308baf547cbcbd30c5fcd6d301b7c000",
21
- "shasum": ""
22
- },
23
- "require": {
24
- "php": "^5.6.0|^7.0.0"
25
- },
26
- "require-dev": {
27
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3",
28
- "phpcompatibility/php-compatibility": "^8.0",
29
- "phpdocumentor/phpdocumentor": "2.*",
30
- "phploc/phploc": "2.*",
31
- "phpmd/phpmd": "2.*",
32
- "phpunit/phpunit": "^4.8.35|^5.4.0",
33
- "sebastian/phpcpd": "2.*",
34
- "squizlabs/php_codesniffer": "^3.3.0"
35
- },
36
- "type": "library",
37
- "autoload": {
38
- "psr-4": {
39
- "Complex\\": "classes/src/"
40
- },
41
- "files": [
42
- "classes/src/functions/abs.php",
43
- "classes/src/functions/acos.php",
44
- "classes/src/functions/acosh.php",
45
- "classes/src/functions/acot.php",
46
- "classes/src/functions/acoth.php",
47
- "classes/src/functions/acsc.php",
48
- "classes/src/functions/acsch.php",
49
- "classes/src/functions/argument.php",
50
- "classes/src/functions/asec.php",
51
- "classes/src/functions/asech.php",
52
- "classes/src/functions/asin.php",
53
- "classes/src/functions/asinh.php",
54
- "classes/src/functions/atan.php",
55
- "classes/src/functions/atanh.php",
56
- "classes/src/functions/conjugate.php",
57
- "classes/src/functions/cos.php",
58
- "classes/src/functions/cosh.php",
59
- "classes/src/functions/cot.php",
60
- "classes/src/functions/coth.php",
61
- "classes/src/functions/csc.php",
62
- "classes/src/functions/csch.php",
63
- "classes/src/functions/exp.php",
64
- "classes/src/functions/inverse.php",
65
- "classes/src/functions/ln.php",
66
- "classes/src/functions/log2.php",
67
- "classes/src/functions/log10.php",
68
- "classes/src/functions/negative.php",
69
- "classes/src/functions/pow.php",
70
- "classes/src/functions/rho.php",
71
- "classes/src/functions/sec.php",
72
- "classes/src/functions/sech.php",
73
- "classes/src/functions/sin.php",
74
- "classes/src/functions/sinh.php",
75
- "classes/src/functions/sqrt.php",
76
- "classes/src/functions/tan.php",
77
- "classes/src/functions/tanh.php",
78
- "classes/src/functions/theta.php",
79
- "classes/src/operations/add.php",
80
- "classes/src/operations/subtract.php",
81
- "classes/src/operations/multiply.php",
82
- "classes/src/operations/divideby.php",
83
- "classes/src/operations/divideinto.php"
84
- ]
85
- },
86
- "notification-url": "https://packagist.org/downloads/",
87
- "license": [
88
- "MIT"
89
- ],
90
- "authors": [
91
- {
92
- "name": "Mark Baker",
93
- "email": "mark@lange.demon.co.uk"
94
- }
95
- ],
96
- "description": "PHP Class for working with complex numbers",
97
- "homepage": "https://github.com/MarkBaker/PHPComplex",
98
- "keywords": [
99
- "complex",
100
- "mathematics"
101
- ],
102
- "time": "2018-10-13T23:28:42+00:00"
103
- },
104
- {
105
- "name": "markbaker/matrix",
106
- "version": "1.1.4",
107
- "source": {
108
- "type": "git",
109
- "url": "https://github.com/MarkBaker/PHPMatrix.git",
110
- "reference": "6ea97472b5baf12119b4f31f802835b820dd6d64"
111
- },
112
- "dist": {
113
- "type": "zip",
114
- "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/6ea97472b5baf12119b4f31f802835b820dd6d64",
115
- "reference": "6ea97472b5baf12119b4f31f802835b820dd6d64",
116
- "shasum": ""
117
- },
118
- "require": {
119
- "php": "^5.6.0|^7.0.0"
120
- },
121
- "require-dev": {
122
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3",
123
- "phpcompatibility/php-compatibility": "^8.0",
124
- "phpdocumentor/phpdocumentor": "2.*",
125
- "phploc/phploc": "2.*",
126
- "phpmd/phpmd": "2.*",
127
- "phpunit/phpunit": "^4.8.35|^5.4.0",
128
- "sebastian/phpcpd": "2.*",
129
- "squizlabs/php_codesniffer": "^3.3.0"
130
- },
131
- "type": "library",
132
- "autoload": {
133
- "psr-4": {
134
- "Matrix\\": "classes/src/"
135
- },
136
- "files": [
137
- "classes/src/functions/adjoint.php",
138
- "classes/src/functions/antidiagonal.php",
139
- "classes/src/functions/cofactors.php",
140
- "classes/src/functions/determinant.php",
141
- "classes/src/functions/diagonal.php",
142
- "classes/src/functions/identity.php",
143
- "classes/src/functions/inverse.php",
144
- "classes/src/functions/minors.php",
145
- "classes/src/functions/trace.php",
146
- "classes/src/functions/transpose.php",
147
- "classes/src/operations/add.php",
148
- "classes/src/operations/directsum.php",
149
- "classes/src/operations/subtract.php",
150
- "classes/src/operations/multiply.php",
151
- "classes/src/operations/divideby.php",
152
- "classes/src/operations/divideinto.php"
153
- ]
154
- },
155
- "notification-url": "https://packagist.org/downloads/",
156
- "license": [
157
- "MIT"
158
- ],
159
- "authors": [
160
- {
161
- "name": "Mark Baker",
162
- "email": "mark@lange.demon.co.uk"
163
- }
164
- ],
165
- "description": "PHP Class for working with matrices",
166
- "homepage": "https://github.com/MarkBaker/PHPMatrix",
167
- "keywords": [
168
- "mathematics",
169
- "matrix",
170
- "vector"
171
- ],
172
- "time": "2018-11-04T22:12:12+00:00"
173
- },
174
- {
175
- "name": "psr/simple-cache",
176
- "version": "1.0.1",
177
- "source": {
178
- "type": "git",
179
- "url": "https://github.com/php-fig/simple-cache.git",
180
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
181
- },
182
- "dist": {
183
- "type": "zip",
184
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
185
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
186
- "shasum": ""
187
- },
188
- "require": {
189
- "php": ">=5.3.0"
190
- },
191
- "type": "library",
192
- "extra": {
193
- "branch-alias": {
194
- "dev-master": "1.0.x-dev"
195
- }
196
- },
197
- "autoload": {
198
- "psr-4": {
199
- "Psr\\SimpleCache\\": "src/"
200
- }
201
- },
202
- "notification-url": "https://packagist.org/downloads/",
203
- "license": [
204
- "MIT"
205
- ],
206
- "authors": [
207
- {
208
- "name": "PHP-FIG",
209
- "homepage": "http://www.php-fig.org/"
210
- }
211
- ],
212
- "description": "Common interfaces for simple caching",
213
- "keywords": [
214
- "cache",
215
- "caching",
216
- "psr",
217
- "psr-16",
218
- "simple-cache"
219
- ],
220
- "time": "2017-10-23T01:57:42+00:00"
221
- }
222
- ],
223
- "packages-dev": [
224
- {
225
- "name": "composer/semver",
226
- "version": "1.4.2",
227
- "source": {
228
- "type": "git",
229
- "url": "https://github.com/composer/semver.git",
230
- "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573"
231
- },
232
- "dist": {
233
- "type": "zip",
234
- "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573",
235
- "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573",
236
- "shasum": ""
237
- },
238
- "require": {
239
- "php": "^5.3.2 || ^7.0"
240
- },
241
- "require-dev": {
242
- "phpunit/phpunit": "^4.5 || ^5.0.5",
243
- "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
244
- },
245
- "type": "library",
246
- "extra": {
247
- "branch-alias": {
248
- "dev-master": "1.x-dev"
249
- }
250
- },
251
- "autoload": {
252
- "psr-4": {
253
- "Composer\\Semver\\": "src"
254
- }
255
- },
256
- "notification-url": "https://packagist.org/downloads/",
257
- "license": [
258
- "MIT"
259
- ],
260
- "authors": [
261
- {
262
- "name": "Nils Adermann",
263
- "email": "naderman@naderman.de",
264
- "homepage": "http://www.naderman.de"
265
- },
266
- {
267
- "name": "Jordi Boggiano",
268
- "email": "j.boggiano@seld.be",
269
- "homepage": "http://seld.be"
270
- },
271
- {
272
- "name": "Rob Bast",
273
- "email": "rob.bast@gmail.com",
274
- "homepage": "http://robbast.nl"
275
- }
276
- ],
277
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
278
- "keywords": [
279
- "semantic",
280
- "semver",
281
- "validation",
282
- "versioning"
283
- ],
284
- "time": "2016-08-30T16:08:34+00:00"
285
- },
286
- {
287
- "name": "composer/xdebug-handler",
288
- "version": "1.3.0",
289
- "source": {
290
- "type": "git",
291
- "url": "https://github.com/composer/xdebug-handler.git",
292
- "reference": "b8e9745fb9b06ea6664d8872c4505fb16df4611c"
293
- },
294
- "dist": {
295
- "type": "zip",
296
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/b8e9745fb9b06ea6664d8872c4505fb16df4611c",
297
- "reference": "b8e9745fb9b06ea6664d8872c4505fb16df4611c",
298
- "shasum": ""
299
- },
300
- "require": {
301
- "php": "^5.3.2 || ^7.0",
302
- "psr/log": "^1.0"
303
- },
304
- "require-dev": {
305
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
306
- },
307
- "type": "library",
308
- "autoload": {
309
- "psr-4": {
310
- "Composer\\XdebugHandler\\": "src"
311
- }
312
- },
313
- "notification-url": "https://packagist.org/downloads/",
314
- "license": [
315
- "MIT"
316
- ],
317
- "authors": [
318
- {
319
- "name": "John Stevenson",
320
- "email": "john-stevenson@blueyonder.co.uk"
321
- }
322
- ],
323
- "description": "Restarts a process without xdebug.",
324
- "keywords": [
325
- "Xdebug",
326
- "performance"
327
- ],
328
- "time": "2018-08-31T19:07:57+00:00"
329
- },
330
- {
331
- "name": "doctrine/annotations",
332
- "version": "v1.4.0",
333
- "source": {
334
- "type": "git",
335
- "url": "https://github.com/doctrine/annotations.git",
336
- "reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
337
- },
338
- "dist": {
339
- "type": "zip",
340
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
341
- "reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
342
- "shasum": ""
343
- },
344
- "require": {
345
- "doctrine/lexer": "1.*",
346
- "php": "^5.6 || ^7.0"
347
- },
348
- "require-dev": {
349
- "doctrine/cache": "1.*",
350
- "phpunit/phpunit": "^5.7"
351
- },
352
- "type": "library",
353
- "extra": {
354
- "branch-alias": {
355
- "dev-master": "1.4.x-dev"
356
- }
357
- },
358
- "autoload": {
359
- "psr-4": {
360
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
361
- }
362
- },
363
- "notification-url": "https://packagist.org/downloads/",
364
- "license": [
365
- "MIT"
366
- ],
367
- "authors": [
368
- {
369
- "name": "Roman Borschel",
370
- "email": "roman@code-factory.org"
371
- },
372
- {
373
- "name": "Benjamin Eberlei",
374
- "email": "kontakt@beberlei.de"
375
- },
376
- {
377
- "name": "Guilherme Blanco",
378
- "email": "guilhermeblanco@gmail.com"
379
- },
380
- {
381
- "name": "Jonathan Wage",
382
- "email": "jonwage@gmail.com"
383
- },
384
- {
385
- "name": "Johannes Schmitt",
386
- "email": "schmittjoh@gmail.com"
387
- }
388
- ],
389
- "description": "Docblock Annotations Parser",
390
- "homepage": "http://www.doctrine-project.org",
391
- "keywords": [
392
- "annotations",
393
- "docblock",
394
- "parser"
395
- ],
396
- "time": "2017-02-24T16:22:25+00:00"
397
- },
398
- {
399
- "name": "doctrine/instantiator",
400
- "version": "1.0.5",
401
- "source": {
402
- "type": "git",
403
- "url": "https://github.com/doctrine/instantiator.git",
404
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
405
- },
406
- "dist": {
407
- "type": "zip",
408
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
409
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
410
- "shasum": ""
411
- },
412
- "require": {
413
- "php": ">=5.3,<8.0-DEV"
414
- },
415
- "require-dev": {
416
- "athletic/athletic": "~0.1.8",
417
- "ext-pdo": "*",
418
- "ext-phar": "*",
419
- "phpunit/phpunit": "~4.0",
420
- "squizlabs/php_codesniffer": "~2.0"
421
- },
422
- "type": "library",
423
- "extra": {
424
- "branch-alias": {
425
- "dev-master": "1.0.x-dev"
426
- }
427
- },
428
- "autoload": {
429
- "psr-4": {
430
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
431
- }
432
- },
433
- "notification-url": "https://packagist.org/downloads/",
434
- "license": [
435
- "MIT"
436
- ],
437
- "authors": [
438
- {
439
- "name": "Marco Pivetta",
440
- "email": "ocramius@gmail.com",
441
- "homepage": "http://ocramius.github.com/"
442
- }
443
- ],
444
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
445
- "homepage": "https://github.com/doctrine/instantiator",
446
- "keywords": [
447
- "constructor",
448
- "instantiate"
449
- ],
450
- "time": "2015-06-14T21:17:01+00:00"
451
- },
452
- {
453
- "name": "doctrine/lexer",
454
- "version": "v1.0.1",
455
- "source": {
456
- "type": "git",
457
- "url": "https://github.com/doctrine/lexer.git",
458
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
459
- },
460
- "dist": {
461
- "type": "zip",
462
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
463
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
464
- "shasum": ""
465
- },
466
- "require": {
467
- "php": ">=5.3.2"
468
- },
469
- "type": "library",
470
- "extra": {
471
- "branch-alias": {
472
- "dev-master": "1.0.x-dev"
473
- }
474
- },
475
- "autoload": {
476
- "psr-0": {
477
- "Doctrine\\Common\\Lexer\\": "lib/"
478
- }
479
- },
480
- "notification-url": "https://packagist.org/downloads/",
481
- "license": [
482
- "MIT"
483
- ],
484
- "authors": [
485
- {
486
- "name": "Roman Borschel",
487
- "email": "roman@code-factory.org"
488
- },
489
- {
490
- "name": "Guilherme Blanco",
491
- "email": "guilhermeblanco@gmail.com"
492
- },
493
- {
494
- "name": "Johannes Schmitt",
495
- "email": "schmittjoh@gmail.com"
496
- }
497
- ],
498
- "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
499
- "homepage": "http://www.doctrine-project.org",
500
- "keywords": [
501
- "lexer",
502
- "parser"
503
- ],
504
- "time": "2014-09-09T13:34:57+00:00"
505
- },
506
- {
507
- "name": "dompdf/dompdf",
508
- "version": "v0.8.2",
509
- "source": {
510
- "type": "git",
511
- "url": "https://github.com/dompdf/dompdf.git",
512
- "reference": "5113accd9ae5d466077cce5208dcf3fb871bf8f6"
513
- },
514
- "dist": {
515
- "type": "zip",
516
- "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5113accd9ae5d466077cce5208dcf3fb871bf8f6",
517
- "reference": "5113accd9ae5d466077cce5208dcf3fb871bf8f6",
518
- "shasum": ""
519
- },
520
- "require": {
521
- "ext-dom": "*",
522
- "ext-gd": "*",
523
- "ext-mbstring": "*",
524
- "phenx/php-font-lib": "0.5.*",
525
- "phenx/php-svg-lib": "0.3.*",
526
- "php": ">=5.4.0"
527
- },
528
- "require-dev": {
529
- "phpunit/phpunit": "4.8.*",
530
- "squizlabs/php_codesniffer": "2.*"
531
- },
532
- "type": "library",
533
- "extra": {
534
- "branch-alias": {
535
- "dev-develop": "0.7-dev"
536
- }
537
- },
538
- "autoload": {
539
- "psr-4": {
540
- "Dompdf\\": "src/"
541
- },
542
- "classmap": [
543
- "lib/"
544
- ]
545
- },
546
- "notification-url": "https://packagist.org/downloads/",
547
- "license": [
548
- "LGPL-2.1"
549
- ],
550
- "authors": [
551
- {
552
- "name": "Fabien Ménager",
553
- "email": "fabien.menager@gmail.com"
554
- },
555
- {
556
- "name": "Brian Sweeney",
557
- "email": "eclecticgeek@gmail.com"
558
- },
559
- {
560
- "name": "Gabriel Bull",
561
- "email": "me@gabrielbull.com"
562
- }
563
- ],
564
- "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
565
- "homepage": "https://github.com/dompdf/dompdf",
566
- "time": "2017-11-26T14:49:08+00:00"
567
- },
568
- {
569
- "name": "friendsofphp/php-cs-fixer",
570
- "version": "v2.13.1",
571
- "source": {
572
- "type": "git",
573
- "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
574
- "reference": "54814c62d5beef3ba55297b9b3186ed8b8a1b161"
575
- },
576
- "dist": {
577
- "type": "zip",
578
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/54814c62d5beef3ba55297b9b3186ed8b8a1b161",
579
- "reference": "54814c62d5beef3ba55297b9b3186ed8b8a1b161",
580
- "shasum": ""
581
- },
582
- "require": {
583
- "composer/semver": "^1.4",
584
- "composer/xdebug-handler": "^1.2",
585
- "doctrine/annotations": "^1.2",
586
- "ext-json": "*",
587
- "ext-tokenizer": "*",
588
- "php": "^5.6 || >=7.0 <7.3",
589
- "php-cs-fixer/diff": "^1.3",
590
- "symfony/console": "^3.4.17 || ^4.1.6",
591
- "symfony/event-dispatcher": "^3.0 || ^4.0",
592
- "symfony/filesystem": "^3.0 || ^4.0",
593
- "symfony/finder": "^3.0 || ^4.0",
594
- "symfony/options-resolver": "^3.0 || ^4.0",
595
- "symfony/polyfill-php70": "^1.0",
596
- "symfony/polyfill-php72": "^1.4",
597
- "symfony/process": "^3.0 || ^4.0",
598
- "symfony/stopwatch": "^3.0 || ^4.0"
599
- },
600
- "conflict": {
601
- "hhvm": "*"
602
- },
603
- "require-dev": {
604
- "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0",
605
- "justinrainbow/json-schema": "^5.0",
606
- "keradus/cli-executor": "^1.1",
607
- "mikey179/vfsstream": "^1.6",
608
- "php-coveralls/php-coveralls": "^2.1",
609
- "php-cs-fixer/accessible-object": "^1.0",
610
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.0.1",
611
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.0.1",
612
- "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1",
613
- "phpunitgoodpractices/traits": "^1.5.1",
614
- "symfony/phpunit-bridge": "^4.0"
615
- },
616
- "suggest": {
617
- "ext-mbstring": "For handling non-UTF8 characters in cache signature.",
618
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.",
619
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.",
620
- "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
621
- },
622
- "bin": [
623
- "php-cs-fixer"
624
- ],
625
- "type": "application",
626
- "autoload": {
627
- "psr-4": {
628
- "PhpCsFixer\\": "src/"
629
- },
630
- "classmap": [
631
- "tests/Test/AbstractFixerTestCase.php",
632
- "tests/Test/AbstractIntegrationCaseFactory.php",
633
- "tests/Test/AbstractIntegrationTestCase.php",
634
- "tests/Test/Assert/AssertTokensTrait.php",
635
- "tests/Test/IntegrationCase.php",
636
- "tests/Test/IntegrationCaseFactory.php",
637
- "tests/Test/IntegrationCaseFactoryInterface.php",
638
- "tests/Test/InternalIntegrationCaseFactory.php",
639
- "tests/TestCase.php"
640
- ]
641
- },
642
- "notification-url": "https://packagist.org/downloads/",
643
- "license": [
644
- "MIT"
645
- ],
646
- "authors": [
647
- {
648
- "name": "Dariusz Rumiński",
649
- "email": "dariusz.ruminski@gmail.com"
650
- },
651
- {
652
- "name": "Fabien Potencier",
653
- "email": "fabien@symfony.com"
654
- }
655
- ],
656
- "description": "A tool to automatically fix PHP code style",
657
- "time": "2018-10-21T00:32:10+00:00"
658
- },
659
- {
660
- "name": "jpgraph/jpgraph",
661
- "version": "4.0.2",
662
- "source": {
663
- "type": "git",
664
- "url": "https://github.com/ztec/JpGraph.git",
665
- "reference": "e82db7da6a546d3926c24c9a346226da7aa49094"
666
- },
667
- "dist": {
668
- "type": "zip",
669
- "url": "https://api.github.com/repos/ztec/JpGraph/zipball/e82db7da6a546d3926c24c9a346226da7aa49094",
670
- "reference": "e82db7da6a546d3926c24c9a346226da7aa49094",
671
- "shasum": ""
672
- },
673
- "type": "library",
674
- "autoload": {
675
- "classmap": [
676
- "lib/JpGraph.php"
677
- ]
678
- },
679
- "notification-url": "https://packagist.org/downloads/",
680
- "license": [
681
- "QPL 1.0"
682
- ],
683
- "authors": [
684
- {
685
- "name": "JpGraph team"
686
- }
687
- ],
688
- "description": "jpGraph, library to make graphs and charts",
689
- "homepage": "http://jpgraph.net/",
690
- "keywords": [
691
- "chart",
692
- "data",
693
- "graph",
694
- "jpgraph",
695
- "pie"
696
- ],
697
- "time": "2017-02-23T09:44:15+00:00"
698
- },
699
- {
700
- "name": "mpdf/mpdf",
701
- "version": "v7.1.6",
702
- "source": {
703
- "type": "git",
704
- "url": "https://github.com/mpdf/mpdf.git",
705
- "reference": "ef5d8cf2c63def40fb76fc0a9e286721cb4dffcd"
706
- },
707
- "dist": {
708
- "type": "zip",
709
- "url": "https://api.github.com/repos/mpdf/mpdf/zipball/ef5d8cf2c63def40fb76fc0a9e286721cb4dffcd",
710
- "reference": "ef5d8cf2c63def40fb76fc0a9e286721cb4dffcd",
711
- "shasum": ""
712
- },
713
- "require": {
714
- "ext-gd": "*",
715
- "ext-mbstring": "*",
716
- "myclabs/deep-copy": "^1.7",
717
- "paragonie/random_compat": "^1.4|^2.0|9.99.99",
718
- "php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
719
- "psr/log": "^1.0",
720
- "setasign/fpdi": "1.6.*"
721
- },
722
- "require-dev": {
723
- "mockery/mockery": "^0.9.5",
724
- "phpunit/phpunit": "^5.0",
725
- "squizlabs/php_codesniffer": "^2.7.0",
726
- "tracy/tracy": "^2.4"
727
- },
728
- "suggest": {
729
- "ext-bcmath": "Needed for generation of some types of barcodes",
730
- "ext-xml": "Needed mainly for SVG manipulation",
731
- "ext-zlib": "Needed for compression of embedded resources, such as fonts"
732
- },
733
- "type": "library",
734
- "extra": {
735
- "branch-alias": {
736
- "dev-development": "7.x-dev"
737
- }
738
- },
739
- "autoload": {
740
- "psr-4": {
741
- "Mpdf\\": "src/"
742
- }
743
- },
744
- "notification-url": "https://packagist.org/downloads/",
745
- "license": [
746
- "GPL-2.0-only"
747
- ],
748
- "authors": [
749
- {
750
- "name": "Matěj Humpál",
751
- "role": "Developer, maintainer"
752
- },
753
- {
754
- "name": "Ian Back",
755
- "role": "Developer (retired)"
756
- }
757
- ],
758
- "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
759
- "homepage": "https://mpdf.github.io",
760
- "keywords": [
761
- "pdf",
762
- "php",
763
- "utf-8"
764
- ],
765
- "time": "2018-10-18T11:37:12+00:00"
766
- },
767
- {
768
- "name": "myclabs/deep-copy",
769
- "version": "1.7.0",
770
- "source": {
771
- "type": "git",
772
- "url": "https://github.com/myclabs/DeepCopy.git",
773
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e"
774
- },
775
- "dist": {
776
- "type": "zip",
777
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
778
- "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e",
779
- "shasum": ""
780
- },
781
- "require": {
782
- "php": "^5.6 || ^7.0"
783
- },
784
- "require-dev": {
785
- "doctrine/collections": "^1.0",
786
- "doctrine/common": "^2.6",
787
- "phpunit/phpunit": "^4.1"
788
- },
789
- "type": "library",
790
- "autoload": {
791
- "psr-4": {
792
- "DeepCopy\\": "src/DeepCopy/"
793
- },
794
- "files": [
795
- "src/DeepCopy/deep_copy.php"
796
- ]
797
- },
798
- "notification-url": "https://packagist.org/downloads/",
799
- "license": [
800
- "MIT"
801
- ],
802
- "description": "Create deep copies (clones) of your objects",
803
- "keywords": [
804
- "clone",
805
- "copy",
806
- "duplicate",
807
- "object",
808
- "object graph"
809
- ],
810
- "time": "2017-10-19T19:58:43+00:00"
811
- },
812
- {
813
- "name": "paragonie/random_compat",
814
- "version": "v2.0.17",
815
- "source": {
816
- "type": "git",
817
- "url": "https://github.com/paragonie/random_compat.git",
818
- "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d"
819
- },
820
- "dist": {
821
- "type": "zip",
822
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/29af24f25bab834fcbb38ad2a69fa93b867e070d",
823
- "reference": "29af24f25bab834fcbb38ad2a69fa93b867e070d",
824
- "shasum": ""
825
- },
826
- "require": {
827
- "php": ">=5.2.0"
828
- },
829
- "require-dev": {
830
- "phpunit/phpunit": "4.*|5.*"
831
- },
832
- "suggest": {
833
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
834
- },
835
- "type": "library",
836
- "autoload": {
837
- "files": [
838
- "lib/random.php"
839
- ]
840
- },
841
- "notification-url": "https://packagist.org/downloads/",
842
- "license": [
843
- "MIT"
844
- ],
845
- "authors": [
846
- {
847
- "name": "Paragon Initiative Enterprises",
848
- "email": "security@paragonie.com",
849
- "homepage": "https://paragonie.com"
850
- }
851
- ],
852
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
853
- "keywords": [
854
- "csprng",
855
- "polyfill",
856
- "pseudorandom",
857
- "random"
858
- ],
859
- "time": "2018-07-04T16:31:37+00:00"
860
- },
861
- {
862
- "name": "phenx/php-font-lib",
863
- "version": "0.5.1",
864
- "source": {
865
- "type": "git",
866
- "url": "https://github.com/PhenX/php-font-lib.git",
867
- "reference": "760148820110a1ae0936e5cc35851e25a938bc97"
868
- },
869
- "dist": {
870
- "type": "zip",
871
- "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/760148820110a1ae0936e5cc35851e25a938bc97",
872
- "reference": "760148820110a1ae0936e5cc35851e25a938bc97",
873
- "shasum": ""
874
- },
875
- "require-dev": {
876
- "phpunit/phpunit": "^4.8"
877
- },
878
- "type": "library",
879
- "autoload": {
880
- "psr-4": {
881
- "FontLib\\": "src/FontLib"
882
- }
883
- },
884
- "notification-url": "https://packagist.org/downloads/",
885
- "license": [
886
- "LGPL-3.0"
887
- ],
888
- "authors": [
889
- {
890
- "name": "Fabien Ménager",
891
- "email": "fabien.menager@gmail.com"
892
- }
893
- ],
894
- "description": "A library to read, parse, export and make subsets of different types of font files.",
895
- "homepage": "https://github.com/PhenX/php-font-lib",
896
- "time": "2017-09-13T16:14:37+00:00"
897
- },
898
- {
899
- "name": "phenx/php-svg-lib",
900
- "version": "v0.3.2",
901
- "source": {
902
- "type": "git",
903
- "url": "https://github.com/PhenX/php-svg-lib.git",
904
- "reference": "ccc46ef6340d4b8a4a68047e68d8501ea961442c"
905
- },
906
- "dist": {
907
- "type": "zip",
908
- "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/ccc46ef6340d4b8a4a68047e68d8501ea961442c",
909
- "reference": "ccc46ef6340d4b8a4a68047e68d8501ea961442c",
910
- "shasum": ""
911
- },
912
- "require": {
913
- "sabberworm/php-css-parser": "8.1.*"
914
- },
915
- "require-dev": {
916
- "phpunit/phpunit": "~5.0"
917
- },
918
- "type": "library",
919
- "autoload": {
920
- "psr-0": {
921
- "Svg\\": "src/"
922
- }
923
- },
924
- "notification-url": "https://packagist.org/downloads/",
925
- "license": [
926
- "LGPL-3.0"
927
- ],
928
- "authors": [
929
- {
930
- "name": "Fabien Ménager",
931
- "email": "fabien.menager@gmail.com"
932
- }
933
- ],
934
- "description": "A library to read, parse and export to PDF SVG files.",
935
- "homepage": "https://github.com/PhenX/php-svg-lib",
936
- "time": "2018-06-03T10:10:03+00:00"
937
- },
938
- {
939
- "name": "php-cs-fixer/diff",
940
- "version": "v1.3.0",
941
- "source": {
942
- "type": "git",
943
- "url": "https://github.com/PHP-CS-Fixer/diff.git",
944
- "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756"
945
- },
946
- "dist": {
947
- "type": "zip",
948
- "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756",
949
- "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756",
950
- "shasum": ""
951
- },
952
- "require": {
953
- "php": "^5.6 || ^7.0"
954
- },
955
- "require-dev": {
956
- "phpunit/phpunit": "^5.7.23 || ^6.4.3",
957
- "symfony/process": "^3.3"
958
- },
959
- "type": "library",
960
- "autoload": {
961
- "classmap": [
962
- "src/"
963
- ]
964
- },
965
- "notification-url": "https://packagist.org/downloads/",
966
- "license": [
967
- "BSD-3-Clause"
968
- ],
969
- "authors": [
970
- {
971
- "name": "Kore Nordmann",
972
- "email": "mail@kore-nordmann.de"
973
- },
974
- {
975
- "name": "Sebastian Bergmann",
976
- "email": "sebastian@phpunit.de"
977
- },
978
- {
979
- "name": "SpacePossum"
980
- }
981
- ],
982
- "description": "sebastian/diff v2 backport support for PHP5.6",
983
- "homepage": "https://github.com/PHP-CS-Fixer",
984
- "keywords": [
985
- "diff"
986
- ],
987
- "time": "2018-02-15T16:58:55+00:00"
988
- },
989
- {
990
- "name": "phpcompatibility/php-compatibility",
991
- "version": "8.2.0",
992
- "source": {
993
- "type": "git",
994
- "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
995
- "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a"
996
- },
997
- "dist": {
998
- "type": "zip",
999
- "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/eaf613c1a8265bcfd7b0ab690783f2aef519f78a",
1000
- "reference": "eaf613c1a8265bcfd7b0ab690783f2aef519f78a",
1001
- "shasum": ""
1002
- },
1003
- "require": {
1004
- "php": ">=5.3",
1005
- "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
1006
- },
1007
- "conflict": {
1008
- "squizlabs/php_codesniffer": "2.6.2"
1009
- },
1010
- "require-dev": {
1011
- "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
1012
- },
1013
- "suggest": {
1014
- "dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
1015
- "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
1016
- },
1017
- "type": "phpcodesniffer-standard",
1018
- "autoload": {
1019
- "psr-4": {
1020
- "PHPCompatibility\\": "PHPCompatibility/"
1021
- }
1022
- },
1023
- "notification-url": "https://packagist.org/downloads/",
1024
- "license": [
1025
- "LGPL-3.0-or-later"
1026
- ],
1027
- "authors": [
1028
- {
1029
- "name": "Wim Godden",
1030
- "role": "lead"
1031
- }
1032
- ],
1033
- "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.",
1034
- "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
1035
- "keywords": [
1036
- "compatibility",
1037
- "phpcs",
1038
- "standards"
1039
- ],
1040
- "time": "2018-07-17T13:42:26+00:00"
1041
- },
1042
- {
1043
- "name": "phpdocumentor/reflection-common",
1044
- "version": "1.0.1",
1045
- "source": {
1046
- "type": "git",
1047
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
1048
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
1049
- },
1050
- "dist": {
1051
- "type": "zip",
1052
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
1053
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
1054
- "shasum": ""
1055
- },
1056
- "require": {
1057
- "php": ">=5.5"
1058
- },
1059
- "require-dev": {
1060
- "phpunit/phpunit": "^4.6"
1061
- },
1062
- "type": "library",
1063
- "extra": {
1064
- "branch-alias": {
1065
- "dev-master": "1.0.x-dev"
1066
- }
1067
- },
1068
- "autoload": {
1069
- "psr-4": {
1070
- "phpDocumentor\\Reflection\\": [
1071
- "src"
1072
- ]
1073
- }
1074
- },
1075
- "notification-url": "https://packagist.org/downloads/",
1076
- "license": [
1077
- "MIT"
1078
- ],
1079
- "authors": [
1080
- {
1081
- "name": "Jaap van Otterdijk",
1082
- "email": "opensource@ijaap.nl"
1083
- }
1084
- ],
1085
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
1086
- "homepage": "http://www.phpdoc.org",
1087
- "keywords": [
1088
- "FQSEN",
1089
- "phpDocumentor",
1090
- "phpdoc",
1091
- "reflection",
1092
- "static analysis"
1093
- ],
1094
- "time": "2017-09-11T18:02:19+00:00"
1095
- },
1096
- {
1097
- "name": "phpdocumentor/reflection-docblock",
1098
- "version": "3.3.2",
1099
- "source": {
1100
- "type": "git",
1101
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
1102
- "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2"
1103
- },
1104
- "dist": {
1105
- "type": "zip",
1106
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2",
1107
- "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2",
1108
- "shasum": ""
1109
- },
1110
- "require": {
1111
- "php": "^5.6 || ^7.0",
1112
- "phpdocumentor/reflection-common": "^1.0.0",
1113
- "phpdocumentor/type-resolver": "^0.4.0",
1114
- "webmozart/assert": "^1.0"
1115
- },
1116
- "require-dev": {
1117
- "mockery/mockery": "^0.9.4",
1118
- "phpunit/phpunit": "^4.4"
1119
- },
1120
- "type": "library",
1121
- "autoload": {
1122
- "psr-4": {
1123
- "phpDocumentor\\Reflection\\": [
1124
- "src/"
1125
- ]
1126
- }
1127
- },
1128
- "notification-url": "https://packagist.org/downloads/",
1129
- "license": [
1130
- "MIT"
1131
- ],
1132
- "authors": [
1133
- {
1134
- "name": "Mike van Riel",
1135
- "email": "me@mikevanriel.com"
1136
- }
1137
- ],
1138
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
1139
- "time": "2017-11-10T14:09:06+00:00"
1140
- },
1141
- {
1142
- "name": "phpdocumentor/type-resolver",
1143
- "version": "0.4.0",
1144
- "source": {
1145
- "type": "git",
1146
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
1147
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
1148
- },
1149
- "dist": {
1150
- "type": "zip",
1151
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
1152
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
1153
- "shasum": ""
1154
- },
1155
- "require": {
1156
- "php": "^5.5 || ^7.0",
1157
- "phpdocumentor/reflection-common": "^1.0"
1158
- },
1159
- "require-dev": {
1160
- "mockery/mockery": "^0.9.4",
1161
- "phpunit/phpunit": "^5.2||^4.8.24"
1162
- },
1163
- "type": "library",
1164
- "extra": {
1165
- "branch-alias": {
1166
- "dev-master": "1.0.x-dev"
1167
- }
1168
- },
1169
- "autoload": {
1170
- "psr-4": {
1171
- "phpDocumentor\\Reflection\\": [
1172
- "src/"
1173
- ]
1174
- }
1175
- },
1176
- "notification-url": "https://packagist.org/downloads/",
1177
- "license": [
1178
- "MIT"
1179
- ],
1180
- "authors": [
1181
- {
1182
- "name": "Mike van Riel",
1183
- "email": "me@mikevanriel.com"
1184
- }
1185
- ],
1186
- "time": "2017-07-14T14:27:02+00:00"
1187
- },
1188
- {
1189
- "name": "phpspec/prophecy",
1190
- "version": "1.8.0",
1191
- "source": {
1192
- "type": "git",
1193
- "url": "https://github.com/phpspec/prophecy.git",
1194
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06"
1195
- },
1196
- "dist": {
1197
- "type": "zip",
1198
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1199
- "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06",
1200
- "shasum": ""
1201
- },
1202
- "require": {
1203
- "doctrine/instantiator": "^1.0.2",
1204
- "php": "^5.3|^7.0",
1205
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
1206
- "sebastian/comparator": "^1.1|^2.0|^3.0",
1207
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
1208
- },
1209
- "require-dev": {
1210
- "phpspec/phpspec": "^2.5|^3.2",
1211
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
1212
- },
1213
- "type": "library",
1214
- "extra": {
1215
- "branch-alias": {
1216
- "dev-master": "1.8.x-dev"
1217
- }
1218
- },
1219
- "autoload": {
1220
- "psr-0": {
1221
- "Prophecy\\": "src/"
1222
- }
1223
- },
1224
- "notification-url": "https://packagist.org/downloads/",
1225
- "license": [
1226
- "MIT"
1227
- ],
1228
- "authors": [
1229
- {
1230
- "name": "Konstantin Kudryashov",
1231
- "email": "ever.zet@gmail.com",
1232
- "homepage": "http://everzet.com"
1233
- },
1234
- {
1235
- "name": "Marcello Duarte",
1236
- "email": "marcello.duarte@gmail.com"
1237
- }
1238
- ],
1239
- "description": "Highly opinionated mocking framework for PHP 5.3+",
1240
- "homepage": "https://github.com/phpspec/prophecy",
1241
- "keywords": [
1242
- "Double",
1243
- "Dummy",
1244
- "fake",
1245
- "mock",
1246
- "spy",
1247
- "stub"
1248
- ],
1249
- "time": "2018-08-05T17:53:17+00:00"
1250
- },
1251
- {
1252
- "name": "phpunit/php-code-coverage",
1253
- "version": "4.0.8",
1254
- "source": {
1255
- "type": "git",
1256
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1257
- "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
1258
- },
1259
- "dist": {
1260
- "type": "zip",
1261
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1262
- "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
1263
- "shasum": ""
1264
- },
1265
- "require": {
1266
- "ext-dom": "*",
1267
- "ext-xmlwriter": "*",
1268
- "php": "^5.6 || ^7.0",
1269
- "phpunit/php-file-iterator": "^1.3",
1270
- "phpunit/php-text-template": "^1.2",
1271
- "phpunit/php-token-stream": "^1.4.2 || ^2.0",
1272
- "sebastian/code-unit-reverse-lookup": "^1.0",
1273
- "sebastian/environment": "^1.3.2 || ^2.0",
1274
- "sebastian/version": "^1.0 || ^2.0"
1275
- },
1276
- "require-dev": {
1277
- "ext-xdebug": "^2.1.4",
1278
- "phpunit/phpunit": "^5.7"
1279
- },
1280
- "suggest": {
1281
- "ext-xdebug": "^2.5.1"
1282
- },
1283
- "type": "library",
1284
- "extra": {
1285
- "branch-alias": {
1286
- "dev-master": "4.0.x-dev"
1287
- }
1288
- },
1289
- "autoload": {
1290
- "classmap": [
1291
- "src/"
1292
- ]
1293
- },
1294
- "notification-url": "https://packagist.org/downloads/",
1295
- "license": [
1296
- "BSD-3-Clause"
1297
- ],
1298
- "authors": [
1299
- {
1300
- "name": "Sebastian Bergmann",
1301
- "email": "sb@sebastian-bergmann.de",
1302
- "role": "lead"
1303
- }
1304
- ],
1305
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1306
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1307
- "keywords": [
1308
- "coverage",
1309
- "testing",
1310
- "xunit"
1311
- ],
1312
- "time": "2017-04-02T07:44:40+00:00"
1313
- },
1314
- {
1315
- "name": "phpunit/php-file-iterator",
1316
- "version": "1.4.5",
1317
- "source": {
1318
- "type": "git",
1319
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1320
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
1321
- },
1322
- "dist": {
1323
- "type": "zip",
1324
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
1325
- "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
1326
- "shasum": ""
1327
- },
1328
- "require": {
1329
- "php": ">=5.3.3"
1330
- },
1331
- "type": "library",
1332
- "extra": {
1333
- "branch-alias": {
1334
- "dev-master": "1.4.x-dev"
1335
- }
1336
- },
1337
- "autoload": {
1338
- "classmap": [
1339
- "src/"
1340
- ]
1341
- },
1342
- "notification-url": "https://packagist.org/downloads/",
1343
- "license": [
1344
- "BSD-3-Clause"
1345
- ],
1346
- "authors": [
1347
- {
1348
- "name": "Sebastian Bergmann",
1349
- "email": "sb@sebastian-bergmann.de",
1350
- "role": "lead"
1351
- }
1352
- ],
1353
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1354
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1355
- "keywords": [
1356
- "filesystem",
1357
- "iterator"
1358
- ],
1359
- "time": "2017-11-27T13:52:08+00:00"
1360
- },
1361
- {
1362
- "name": "phpunit/php-text-template",
1363
- "version": "1.2.1",
1364
- "source": {
1365
- "type": "git",
1366
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
1367
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1368
- },
1369
- "dist": {
1370
- "type": "zip",
1371
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1372
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1373
- "shasum": ""
1374
- },
1375
- "require": {
1376
- "php": ">=5.3.3"
1377
- },
1378
- "type": "library",
1379
- "autoload": {
1380
- "classmap": [
1381
- "src/"
1382
- ]
1383
- },
1384
- "notification-url": "https://packagist.org/downloads/",
1385
- "license": [
1386
- "BSD-3-Clause"
1387
- ],
1388
- "authors": [
1389
- {
1390
- "name": "Sebastian Bergmann",
1391
- "email": "sebastian@phpunit.de",
1392
- "role": "lead"
1393
- }
1394
- ],
1395
- "description": "Simple template engine.",
1396
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1397
- "keywords": [
1398
- "template"
1399
- ],
1400
- "time": "2015-06-21T13:50:34+00:00"
1401
- },
1402
- {
1403
- "name": "phpunit/php-timer",
1404
- "version": "1.0.9",
1405
- "source": {
1406
- "type": "git",
1407
- "url": "https://github.com/sebastianbergmann/php-timer.git",
1408
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
1409
- },
1410
- "dist": {
1411
- "type": "zip",
1412
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1413
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1414
- "shasum": ""
1415
- },
1416
- "require": {
1417
- "php": "^5.3.3 || ^7.0"
1418
- },
1419
- "require-dev": {
1420
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1421
- },
1422
- "type": "library",
1423
- "extra": {
1424
- "branch-alias": {
1425
- "dev-master": "1.0-dev"
1426
- }
1427
- },
1428
- "autoload": {
1429
- "classmap": [
1430
- "src/"
1431
- ]
1432
- },
1433
- "notification-url": "https://packagist.org/downloads/",
1434
- "license": [
1435
- "BSD-3-Clause"
1436
- ],
1437
- "authors": [
1438
- {
1439
- "name": "Sebastian Bergmann",
1440
- "email": "sb@sebastian-bergmann.de",
1441
- "role": "lead"
1442
- }
1443
- ],
1444
- "description": "Utility class for timing",
1445
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
1446
- "keywords": [
1447
- "timer"
1448
- ],
1449
- "time": "2017-02-26T11:10:40+00:00"
1450
- },
1451
- {
1452
- "name": "phpunit/php-token-stream",
1453
- "version": "1.4.12",
1454
- "source": {
1455
- "type": "git",
1456
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1457
- "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16"
1458
- },
1459
- "dist": {
1460
- "type": "zip",
1461
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16",
1462
- "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16",
1463
- "shasum": ""
1464
- },
1465
- "require": {
1466
- "ext-tokenizer": "*",
1467
- "php": ">=5.3.3"
1468
- },
1469
- "require-dev": {
1470
- "phpunit/phpunit": "~4.2"
1471
- },
1472
- "type": "library",
1473
- "extra": {
1474
- "branch-alias": {
1475
- "dev-master": "1.4-dev"
1476
- }
1477
- },
1478
- "autoload": {
1479
- "classmap": [
1480
- "src/"
1481
- ]
1482
- },
1483
- "notification-url": "https://packagist.org/downloads/",
1484
- "license": [
1485
- "BSD-3-Clause"
1486
- ],
1487
- "authors": [
1488
- {
1489
- "name": "Sebastian Bergmann",
1490
- "email": "sebastian@phpunit.de"
1491
- }
1492
- ],
1493
- "description": "Wrapper around PHP's tokenizer extension.",
1494
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1495
- "keywords": [
1496
- "tokenizer"
1497
- ],
1498
- "time": "2017-12-04T08:55:13+00:00"
1499
- },
1500
- {
1501
- "name": "phpunit/phpunit",
1502
- "version": "5.7.27",
1503
- "source": {
1504
- "type": "git",
1505
- "url": "https://github.com/sebastianbergmann/phpunit.git",
1506
- "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
1507
- },
1508
- "dist": {
1509
- "type": "zip",
1510
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
1511
- "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
1512
- "shasum": ""
1513
- },
1514
- "require": {
1515
- "ext-dom": "*",
1516
- "ext-json": "*",
1517
- "ext-libxml": "*",
1518
- "ext-mbstring": "*",
1519
- "ext-xml": "*",
1520
- "myclabs/deep-copy": "~1.3",
1521
- "php": "^5.6 || ^7.0",
1522
- "phpspec/prophecy": "^1.6.2",
1523
- "phpunit/php-code-coverage": "^4.0.4",
1524
- "phpunit/php-file-iterator": "~1.4",
1525
- "phpunit/php-text-template": "~1.2",
1526
- "phpunit/php-timer": "^1.0.6",
1527
- "phpunit/phpunit-mock-objects": "^3.2",
1528
- "sebastian/comparator": "^1.2.4",
1529
- "sebastian/diff": "^1.4.3",
1530
- "sebastian/environment": "^1.3.4 || ^2.0",
1531
- "sebastian/exporter": "~2.0",
1532
- "sebastian/global-state": "^1.1",
1533
- "sebastian/object-enumerator": "~2.0",
1534
- "sebastian/resource-operations": "~1.0",
1535
- "sebastian/version": "^1.0.6|^2.0.1",
1536
- "symfony/yaml": "~2.1|~3.0|~4.0"
1537
- },
1538
- "conflict": {
1539
- "phpdocumentor/reflection-docblock": "3.0.2"
1540
- },
1541
- "require-dev": {
1542
- "ext-pdo": "*"
1543
- },
1544
- "suggest": {
1545
- "ext-xdebug": "*",
1546
- "phpunit/php-invoker": "~1.1"
1547
- },
1548
- "bin": [
1549
- "phpunit"
1550
- ],
1551
- "type": "library",
1552
- "extra": {
1553
- "branch-alias": {
1554
- "dev-master": "5.7.x-dev"
1555
- }
1556
- },
1557
- "autoload": {
1558
- "classmap": [
1559
- "src/"
1560
- ]
1561
- },
1562
- "notification-url": "https://packagist.org/downloads/",
1563
- "license": [
1564
- "BSD-3-Clause"
1565
- ],
1566
- "authors": [
1567
- {
1568
- "name": "Sebastian Bergmann",
1569
- "email": "sebastian@phpunit.de",
1570
- "role": "lead"
1571
- }
1572
- ],
1573
- "description": "The PHP Unit Testing framework.",
1574
- "homepage": "https://phpunit.de/",
1575
- "keywords": [
1576
- "phpunit",
1577
- "testing",
1578
- "xunit"
1579
- ],
1580
- "time": "2018-02-01T05:50:59+00:00"
1581
- },
1582
- {
1583
- "name": "phpunit/phpunit-mock-objects",
1584
- "version": "3.4.4",
1585
- "source": {
1586
- "type": "git",
1587
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1588
- "reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
1589
- },
1590
- "dist": {
1591
- "type": "zip",
1592
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
1593
- "reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
1594
- "shasum": ""
1595
- },
1596
- "require": {
1597
- "doctrine/instantiator": "^1.0.2",
1598
- "php": "^5.6 || ^7.0",
1599
- "phpunit/php-text-template": "^1.2",
1600
- "sebastian/exporter": "^1.2 || ^2.0"
1601
- },
1602
- "conflict": {
1603
- "phpunit/phpunit": "<5.4.0"
1604
- },
1605
- "require-dev": {
1606
- "phpunit/phpunit": "^5.4"
1607
- },
1608
- "suggest": {
1609
- "ext-soap": "*"
1610
- },
1611
- "type": "library",
1612
- "extra": {
1613
- "branch-alias": {
1614
- "dev-master": "3.2.x-dev"
1615
- }
1616
- },
1617
- "autoload": {
1618
- "classmap": [
1619
- "src/"
1620
- ]
1621
- },
1622
- "notification-url": "https://packagist.org/downloads/",
1623
- "license": [
1624
- "BSD-3-Clause"
1625
- ],
1626
- "authors": [
1627
- {
1628
- "name": "Sebastian Bergmann",
1629
- "email": "sb@sebastian-bergmann.de",
1630
- "role": "lead"
1631
- }
1632
- ],
1633
- "description": "Mock Object library for PHPUnit",
1634
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1635
- "keywords": [
1636
- "mock",
1637
- "xunit"
1638
- ],
1639
- "time": "2017-06-30T09:13:00+00:00"
1640
- },
1641
- {
1642
- "name": "psr/log",
1643
- "version": "1.0.2",
1644
- "source": {
1645
- "type": "git",
1646
- "url": "https://github.com/php-fig/log.git",
1647
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1648
- },
1649
- "dist": {
1650
- "type": "zip",
1651
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1652
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1653
- "shasum": ""
1654
- },
1655
- "require": {
1656
- "php": ">=5.3.0"
1657
- },
1658
- "type": "library",
1659
- "extra": {
1660
- "branch-alias": {
1661
- "dev-master": "1.0.x-dev"
1662
- }
1663
- },
1664
- "autoload": {
1665
- "psr-4": {
1666
- "Psr\\Log\\": "Psr/Log/"
1667
- }
1668
- },
1669
- "notification-url": "https://packagist.org/downloads/",
1670
- "license": [
1671
- "MIT"
1672
- ],
1673
- "authors": [
1674
- {
1675
- "name": "PHP-FIG",
1676
- "homepage": "http://www.php-fig.org/"
1677
- }
1678
- ],
1679
- "description": "Common interface for logging libraries",
1680
- "homepage": "https://github.com/php-fig/log",
1681
- "keywords": [
1682
- "log",
1683
- "psr",
1684
- "psr-3"
1685
- ],
1686
- "time": "2016-10-10T12:19:37+00:00"
1687
- },
1688
- {
1689
- "name": "sabberworm/php-css-parser",
1690
- "version": "8.1.0",
1691
- "source": {
1692
- "type": "git",
1693
- "url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
1694
- "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef"
1695
- },
1696
- "dist": {
1697
- "type": "zip",
1698
- "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/850cbbcbe7fbb155387a151ea562897a67e242ef",
1699
- "reference": "850cbbcbe7fbb155387a151ea562897a67e242ef",
1700
- "shasum": ""
1701
- },
1702
- "require": {
1703
- "php": ">=5.3.2"
1704
- },
1705
- "require-dev": {
1706
- "phpunit/phpunit": "*"
1707
- },
1708
- "type": "library",
1709
- "autoload": {
1710
- "psr-0": {
1711
- "Sabberworm\\CSS": "lib/"
1712
- }
1713
- },
1714
- "notification-url": "https://packagist.org/downloads/",
1715
- "license": [
1716
- "MIT"
1717
- ],
1718
- "authors": [
1719
- {
1720
- "name": "Raphael Schweikert"
1721
- }
1722
- ],
1723
- "description": "Parser for CSS Files written in PHP",
1724
- "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser",
1725
- "keywords": [
1726
- "css",
1727
- "parser",
1728
- "stylesheet"
1729
- ],
1730
- "time": "2016-07-19T19:14:21+00:00"
1731
- },
1732
- {
1733
- "name": "sebastian/code-unit-reverse-lookup",
1734
- "version": "1.0.1",
1735
- "source": {
1736
- "type": "git",
1737
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1738
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1739
- },
1740
- "dist": {
1741
- "type": "zip",
1742
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1743
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1744
- "shasum": ""
1745
- },
1746
- "require": {
1747
- "php": "^5.6 || ^7.0"
1748
- },
1749
- "require-dev": {
1750
- "phpunit/phpunit": "^5.7 || ^6.0"
1751
- },
1752
- "type": "library",
1753
- "extra": {
1754
- "branch-alias": {
1755
- "dev-master": "1.0.x-dev"
1756
- }
1757
- },
1758
- "autoload": {
1759
- "classmap": [
1760
- "src/"
1761
- ]
1762
- },
1763
- "notification-url": "https://packagist.org/downloads/",
1764
- "license": [
1765
- "BSD-3-Clause"
1766
- ],
1767
- "authors": [
1768
- {
1769
- "name": "Sebastian Bergmann",
1770
- "email": "sebastian@phpunit.de"
1771
- }
1772
- ],
1773
- "description": "Looks up which function or method a line of code belongs to",
1774
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1775
- "time": "2017-03-04T06:30:41+00:00"
1776
- },
1777
- {
1778
- "name": "sebastian/comparator",
1779
- "version": "1.2.4",
1780
- "source": {
1781
- "type": "git",
1782
- "url": "https://github.com/sebastianbergmann/comparator.git",
1783
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1784
- },
1785
- "dist": {
1786
- "type": "zip",
1787
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1788
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1789
- "shasum": ""
1790
- },
1791
- "require": {
1792
- "php": ">=5.3.3",
1793
- "sebastian/diff": "~1.2",
1794
- "sebastian/exporter": "~1.2 || ~2.0"
1795
- },
1796
- "require-dev": {
1797
- "phpunit/phpunit": "~4.4"
1798
- },
1799
- "type": "library",
1800
- "extra": {
1801
- "branch-alias": {
1802
- "dev-master": "1.2.x-dev"
1803
- }
1804
- },
1805
- "autoload": {
1806
- "classmap": [
1807
- "src/"
1808
- ]
1809
- },
1810
- "notification-url": "https://packagist.org/downloads/",
1811
- "license": [
1812
- "BSD-3-Clause"
1813
- ],
1814
- "authors": [
1815
- {
1816
- "name": "Jeff Welch",
1817
- "email": "whatthejeff@gmail.com"
1818
- },
1819
- {
1820
- "name": "Volker Dusch",
1821
- "email": "github@wallbash.com"
1822
- },
1823
- {
1824
- "name": "Bernhard Schussek",
1825
- "email": "bschussek@2bepublished.at"
1826
- },
1827
- {
1828
- "name": "Sebastian Bergmann",
1829
- "email": "sebastian@phpunit.de"
1830
- }
1831
- ],
1832
- "description": "Provides the functionality to compare PHP values for equality",
1833
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
1834
- "keywords": [
1835
- "comparator",
1836
- "compare",
1837
- "equality"
1838
- ],
1839
- "time": "2017-01-29T09:50:25+00:00"
1840
- },
1841
- {
1842
- "name": "sebastian/diff",
1843
- "version": "1.4.3",
1844
- "source": {
1845
- "type": "git",
1846
- "url": "https://github.com/sebastianbergmann/diff.git",
1847
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
1848
- },
1849
- "dist": {
1850
- "type": "zip",
1851
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1852
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
1853
- "shasum": ""
1854
- },
1855
- "require": {
1856
- "php": "^5.3.3 || ^7.0"
1857
- },
1858
- "require-dev": {
1859
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1860
- },
1861
- "type": "library",
1862
- "extra": {
1863
- "branch-alias": {
1864
- "dev-master": "1.4-dev"
1865
- }
1866
- },
1867
- "autoload": {
1868
- "classmap": [
1869
- "src/"
1870
- ]
1871
- },
1872
- "notification-url": "https://packagist.org/downloads/",
1873
- "license": [
1874
- "BSD-3-Clause"
1875
- ],
1876
- "authors": [
1877
- {
1878
- "name": "Kore Nordmann",
1879
- "email": "mail@kore-nordmann.de"
1880
- },
1881
- {
1882
- "name": "Sebastian Bergmann",
1883
- "email": "sebastian@phpunit.de"
1884
- }
1885
- ],
1886
- "description": "Diff implementation",
1887
- "homepage": "https://github.com/sebastianbergmann/diff",
1888
- "keywords": [
1889
- "diff"
1890
- ],
1891
- "time": "2017-05-22T07:24:03+00:00"
1892
- },
1893
- {
1894
- "name": "sebastian/environment",
1895
- "version": "2.0.0",
1896
- "source": {
1897
- "type": "git",
1898
- "url": "https://github.com/sebastianbergmann/environment.git",
1899
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1900
- },
1901
- "dist": {
1902
- "type": "zip",
1903
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1904
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1905
- "shasum": ""
1906
- },
1907
- "require": {
1908
- "php": "^5.6 || ^7.0"
1909
- },
1910
- "require-dev": {
1911
- "phpunit/phpunit": "^5.0"
1912
- },
1913
- "type": "library",
1914
- "extra": {
1915
- "branch-alias": {
1916
- "dev-master": "2.0.x-dev"
1917
- }
1918
- },
1919
- "autoload": {
1920
- "classmap": [
1921
- "src/"
1922
- ]
1923
- },
1924
- "notification-url": "https://packagist.org/downloads/",
1925
- "license": [
1926
- "BSD-3-Clause"
1927
- ],
1928
- "authors": [
1929
- {
1930
- "name": "Sebastian Bergmann",
1931
- "email": "sebastian@phpunit.de"
1932
- }
1933
- ],
1934
- "description": "Provides functionality to handle HHVM/PHP environments",
1935
- "homepage": "http://www.github.com/sebastianbergmann/environment",
1936
- "keywords": [
1937
- "Xdebug",
1938
- "environment",
1939
- "hhvm"
1940
- ],
1941
- "time": "2016-11-26T07:53:53+00:00"
1942
- },
1943
- {
1944
- "name": "sebastian/exporter",
1945
- "version": "2.0.0",
1946
- "source": {
1947
- "type": "git",
1948
- "url": "https://github.com/sebastianbergmann/exporter.git",
1949
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1950
- },
1951
- "dist": {
1952
- "type": "zip",
1953
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1954
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1955
- "shasum": ""
1956
- },
1957
- "require": {
1958
- "php": ">=5.3.3",
1959
- "sebastian/recursion-context": "~2.0"
1960
- },
1961
- "require-dev": {
1962
- "ext-mbstring": "*",
1963
- "phpunit/phpunit": "~4.4"
1964
- },
1965
- "type": "library",
1966
- "extra": {
1967
- "branch-alias": {
1968
- "dev-master": "2.0.x-dev"
1969
- }
1970
- },
1971
- "autoload": {
1972
- "classmap": [
1973
- "src/"
1974
- ]
1975
- },
1976
- "notification-url": "https://packagist.org/downloads/",
1977
- "license": [
1978
- "BSD-3-Clause"
1979
- ],
1980
- "authors": [
1981
- {
1982
- "name": "Jeff Welch",
1983
- "email": "whatthejeff@gmail.com"
1984
- },
1985
- {
1986
- "name": "Volker Dusch",
1987
- "email": "github@wallbash.com"
1988
- },
1989
- {
1990
- "name": "Bernhard Schussek",
1991
- "email": "bschussek@2bepublished.at"
1992
- },
1993
- {
1994
- "name": "Sebastian Bergmann",
1995
- "email": "sebastian@phpunit.de"
1996
- },
1997
- {
1998
- "name": "Adam Harvey",
1999
- "email": "aharvey@php.net"
2000
- }
2001
- ],
2002
- "description": "Provides the functionality to export PHP variables for visualization",
2003
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
2004
- "keywords": [
2005
- "export",
2006
- "exporter"
2007
- ],
2008
- "time": "2016-11-19T08:54:04+00:00"
2009
- },
2010
- {
2011
- "name": "sebastian/global-state",
2012
- "version": "1.1.1",
2013
- "source": {
2014
- "type": "git",
2015
- "url": "https://github.com/sebastianbergmann/global-state.git",
2016
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
2017
- },
2018
- "dist": {
2019
- "type": "zip",
2020
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
2021
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
2022
- "shasum": ""
2023
- },
2024
- "require": {
2025
- "php": ">=5.3.3"
2026
- },
2027
- "require-dev": {
2028
- "phpunit/phpunit": "~4.2"
2029
- },
2030
- "suggest": {
2031
- "ext-uopz": "*"
2032
- },
2033
- "type": "library",
2034
- "extra": {
2035
- "branch-alias": {
2036
- "dev-master": "1.0-dev"
2037
- }
2038
- },
2039
- "autoload": {
2040
- "classmap": [
2041
- "src/"
2042
- ]
2043
- },
2044
- "notification-url": "https://packagist.org/downloads/",
2045
- "license": [
2046
- "BSD-3-Clause"
2047
- ],
2048
- "authors": [
2049
- {
2050
- "name": "Sebastian Bergmann",
2051
- "email": "sebastian@phpunit.de"
2052
- }
2053
- ],
2054
- "description": "Snapshotting of global state",
2055
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
2056
- "keywords": [
2057
- "global state"
2058
- ],
2059
- "time": "2015-10-12T03:26:01+00:00"
2060
- },
2061
- {
2062
- "name": "sebastian/object-enumerator",
2063
- "version": "2.0.1",
2064
- "source": {
2065
- "type": "git",
2066
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
2067
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
2068
- },
2069
- "dist": {
2070
- "type": "zip",
2071
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
2072
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
2073
- "shasum": ""
2074
- },
2075
- "require": {
2076
- "php": ">=5.6",
2077
- "sebastian/recursion-context": "~2.0"
2078
- },
2079
- "require-dev": {
2080
- "phpunit/phpunit": "~5"
2081
- },
2082
- "type": "library",
2083
- "extra": {
2084
- "branch-alias": {
2085
- "dev-master": "2.0.x-dev"
2086
- }
2087
- },
2088
- "autoload": {
2089
- "classmap": [
2090
- "src/"
2091
- ]
2092
- },
2093
- "notification-url": "https://packagist.org/downloads/",
2094
- "license": [
2095
- "BSD-3-Clause"
2096
- ],
2097
- "authors": [
2098
- {
2099
- "name": "Sebastian Bergmann",
2100
- "email": "sebastian@phpunit.de"
2101
- }
2102
- ],
2103
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
2104
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
2105
- "time": "2017-02-18T15:18:39+00:00"
2106
- },
2107
- {
2108
- "name": "sebastian/recursion-context",
2109
- "version": "2.0.0",
2110
- "source": {
2111
- "type": "git",
2112
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
2113
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
2114
- },
2115
- "dist": {
2116
- "type": "zip",
2117
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
2118
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
2119
- "shasum": ""
2120
- },
2121
- "require": {
2122
- "php": ">=5.3.3"
2123
- },
2124
- "require-dev": {
2125
- "phpunit/phpunit": "~4.4"
2126
- },
2127
- "type": "library",
2128
- "extra": {
2129
- "branch-alias": {
2130
- "dev-master": "2.0.x-dev"
2131
- }
2132
- },
2133
- "autoload": {
2134
- "classmap": [
2135
- "src/"
2136
- ]
2137
- },
2138
- "notification-url": "https://packagist.org/downloads/",
2139
- "license": [
2140
- "BSD-3-Clause"
2141
- ],
2142
- "authors": [
2143
- {
2144
- "name": "Jeff Welch",
2145
- "email": "whatthejeff@gmail.com"
2146
- },
2147
- {
2148
- "name": "Sebastian Bergmann",
2149
- "email": "sebastian@phpunit.de"
2150
- },
2151
- {
2152
- "name": "Adam Harvey",
2153
- "email": "aharvey@php.net"
2154
- }
2155
- ],
2156
- "description": "Provides functionality to recursively process PHP variables",
2157
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
2158
- "time": "2016-11-19T07:33:16+00:00"
2159
- },
2160
- {
2161
- "name": "sebastian/resource-operations",
2162
- "version": "1.0.0",
2163
- "source": {
2164
- "type": "git",
2165
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
2166
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
2167
- },
2168
- "dist": {
2169
- "type": "zip",
2170
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
2171
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
2172
- "shasum": ""
2173
- },
2174
- "require": {
2175
- "php": ">=5.6.0"
2176
- },
2177
- "type": "library",
2178
- "extra": {
2179
- "branch-alias": {
2180
- "dev-master": "1.0.x-dev"
2181
- }
2182
- },
2183
- "autoload": {
2184
- "classmap": [
2185
- "src/"
2186
- ]
2187
- },
2188
- "notification-url": "https://packagist.org/downloads/",
2189
- "license": [
2190
- "BSD-3-Clause"
2191
- ],
2192
- "authors": [
2193
- {
2194
- "name": "Sebastian Bergmann",
2195
- "email": "sebastian@phpunit.de"
2196
- }
2197
- ],
2198
- "description": "Provides a list of PHP built-in functions that operate on resources",
2199
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2200
- "time": "2015-07-28T20:34:47+00:00"
2201
- },
2202
- {
2203
- "name": "sebastian/version",
2204
- "version": "2.0.1",
2205
- "source": {
2206
- "type": "git",
2207
- "url": "https://github.com/sebastianbergmann/version.git",
2208
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
2209
- },
2210
- "dist": {
2211
- "type": "zip",
2212
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
2213
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
2214
- "shasum": ""
2215
- },
2216
- "require": {
2217
- "php": ">=5.6"
2218
- },
2219
- "type": "library",
2220
- "extra": {
2221
- "branch-alias": {
2222
- "dev-master": "2.0.x-dev"
2223
- }
2224
- },
2225
- "autoload": {
2226
- "classmap": [
2227
- "src/"
2228
- ]
2229
- },
2230
- "notification-url": "https://packagist.org/downloads/",
2231
- "license": [
2232
- "BSD-3-Clause"
2233
- ],
2234
- "authors": [
2235
- {
2236
- "name": "Sebastian Bergmann",
2237
- "email": "sebastian@phpunit.de",
2238
- "role": "lead"
2239
- }
2240
- ],
2241
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2242
- "homepage": "https://github.com/sebastianbergmann/version",
2243
- "time": "2016-10-03T07:35:21+00:00"
2244
- },
2245
- {
2246
- "name": "setasign/fpdi",
2247
- "version": "1.6.2",
2248
- "source": {
2249
- "type": "git",
2250
- "url": "https://github.com/Setasign/FPDI.git",
2251
- "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
2252
- },
2253
- "dist": {
2254
- "type": "zip",
2255
- "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2256
- "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2257
- "shasum": ""
2258
- },
2259
- "suggest": {
2260
- "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
2261
- "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
2262
- "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
2263
- },
2264
- "type": "library",
2265
- "autoload": {
2266
- "classmap": [
2267
- "filters/",
2268
- "fpdi.php",
2269
- "fpdf_tpl.php",
2270
- "fpdi_pdf_parser.php",
2271
- "pdf_context.php"
2272
- ]
2273
- },
2274
- "notification-url": "https://packagist.org/downloads/",
2275
- "license": [
2276
- "MIT"
2277
- ],
2278
- "authors": [
2279
- {
2280
- "name": "Jan Slabon",
2281
- "email": "jan.slabon@setasign.com",
2282
- "homepage": "https://www.setasign.com"
2283
- }
2284
- ],
2285
- "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
2286
- "homepage": "https://www.setasign.com/fpdi",
2287
- "keywords": [
2288
- "fpdf",
2289
- "fpdi",
2290
- "pdf"
2291
- ],
2292
- "time": "2017-05-11T14:25:49+00:00"
2293
- },
2294
- {
2295
- "name": "squizlabs/php_codesniffer",
2296
- "version": "3.3.2",
2297
- "source": {
2298
- "type": "git",
2299
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2300
- "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e"
2301
- },
2302
- "dist": {
2303
- "type": "zip",
2304
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/6ad28354c04b364c3c71a34e4a18b629cc3b231e",
2305
- "reference": "6ad28354c04b364c3c71a34e4a18b629cc3b231e",
2306
- "shasum": ""
2307
- },
2308
- "require": {
2309
- "ext-simplexml": "*",
2310
- "ext-tokenizer": "*",
2311
- "ext-xmlwriter": "*",
2312
- "php": ">=5.4.0"
2313
- },
2314
- "require-dev": {
2315
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
2316
- },
2317
- "bin": [
2318
- "bin/phpcs",
2319
- "bin/phpcbf"
2320
- ],
2321
- "type": "library",
2322
- "extra": {
2323
- "branch-alias": {
2324
- "dev-master": "3.x-dev"
2325
- }
2326
- },
2327
- "notification-url": "https://packagist.org/downloads/",
2328
- "license": [
2329
- "BSD-3-Clause"
2330
- ],
2331
- "authors": [
2332
- {
2333
- "name": "Greg Sherwood",
2334
- "role": "lead"
2335
- }
2336
- ],
2337
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
2338
- "homepage": "http://www.squizlabs.com/php-codesniffer",
2339
- "keywords": [
2340
- "phpcs",
2341
- "standards"
2342
- ],
2343
- "time": "2018-09-23T23:08:17+00:00"
2344
- },
2345
- {
2346
- "name": "symfony/console",
2347
- "version": "v3.4.18",
2348
- "source": {
2349
- "type": "git",
2350
- "url": "https://github.com/symfony/console.git",
2351
- "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803"
2352
- },
2353
- "dist": {
2354
- "type": "zip",
2355
- "url": "https://api.github.com/repos/symfony/console/zipball/1d228fb4602047d7b26a0554e0d3efd567da5803",
2356
- "reference": "1d228fb4602047d7b26a0554e0d3efd567da5803",
2357
- "shasum": ""
2358
- },
2359
- "require": {
2360
- "php": "^5.5.9|>=7.0.8",
2361
- "symfony/debug": "~2.8|~3.0|~4.0",
2362
- "symfony/polyfill-mbstring": "~1.0"
2363
- },
2364
- "conflict": {
2365
- "symfony/dependency-injection": "<3.4",
2366
- "symfony/process": "<3.3"
2367
- },
2368
- "require-dev": {
2369
- "psr/log": "~1.0",
2370
- "symfony/config": "~3.3|~4.0",
2371
- "symfony/dependency-injection": "~3.4|~4.0",
2372
- "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
2373
- "symfony/lock": "~3.4|~4.0",
2374
- "symfony/process": "~3.3|~4.0"
2375
- },
2376
- "suggest": {
2377
- "psr/log-implementation": "For using the console logger",
2378
- "symfony/event-dispatcher": "",
2379
- "symfony/lock": "",
2380
- "symfony/process": ""
2381
- },
2382
- "type": "library",
2383
- "extra": {
2384
- "branch-alias": {
2385
- "dev-master": "3.4-dev"
2386
- }
2387
- },
2388
- "autoload": {
2389
- "psr-4": {
2390
- "Symfony\\Component\\Console\\": ""
2391
- },
2392
- "exclude-from-classmap": [
2393
- "/Tests/"
2394
- ]
2395
- },
2396
- "notification-url": "https://packagist.org/downloads/",
2397
- "license": [
2398
- "MIT"
2399
- ],
2400
- "authors": [
2401
- {
2402
- "name": "Fabien Potencier",
2403
- "email": "fabien@symfony.com"
2404
- },
2405
- {
2406
- "name": "Symfony Community",
2407
- "homepage": "https://symfony.com/contributors"
2408
- }
2409
- ],
2410
- "description": "Symfony Console Component",
2411
- "homepage": "https://symfony.com",
2412
- "time": "2018-10-30T16:50:50+00:00"
2413
- },
2414
- {
2415
- "name": "symfony/debug",
2416
- "version": "v3.4.18",
2417
- "source": {
2418
- "type": "git",
2419
- "url": "https://github.com/symfony/debug.git",
2420
- "reference": "fe9793af008b651c5441bdeab21ede8172dab097"
2421
- },
2422
- "dist": {
2423
- "type": "zip",
2424
- "url": "https://api.github.com/repos/symfony/debug/zipball/fe9793af008b651c5441bdeab21ede8172dab097",
2425
- "reference": "fe9793af008b651c5441bdeab21ede8172dab097",
2426
- "shasum": ""
2427
- },
2428
- "require": {
2429
- "php": "^5.5.9|>=7.0.8",
2430
- "psr/log": "~1.0"
2431
- },
2432
- "conflict": {
2433
- "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
2434
- },
2435
- "require-dev": {
2436
- "symfony/http-kernel": "~2.8|~3.0|~4.0"
2437
- },
2438
- "type": "library",
2439
- "extra": {
2440
- "branch-alias": {
2441
- "dev-master": "3.4-dev"
2442
- }
2443
- },
2444
- "autoload": {
2445
- "psr-4": {
2446
- "Symfony\\Component\\Debug\\": ""
2447
- },
2448
- "exclude-from-classmap": [
2449
- "/Tests/"
2450
- ]
2451
- },
2452
- "notification-url": "https://packagist.org/downloads/",
2453
- "license": [
2454
- "MIT"
2455
- ],
2456
- "authors": [
2457
- {
2458
- "name": "Fabien Potencier",
2459
- "email": "fabien@symfony.com"
2460
- },
2461
- {
2462
- "name": "Symfony Community",
2463
- "homepage": "https://symfony.com/contributors"
2464
- }
2465
- ],
2466
- "description": "Symfony Debug Component",
2467
- "homepage": "https://symfony.com",
2468
- "time": "2018-10-31T09:06:03+00:00"
2469
- },
2470
- {
2471
- "name": "symfony/event-dispatcher",
2472
- "version": "v3.4.18",
2473
- "source": {
2474
- "type": "git",
2475
- "url": "https://github.com/symfony/event-dispatcher.git",
2476
- "reference": "db9e829c8f34c3d35cf37fcd4cdb4293bc4a2f14"
2477
- },
2478
- "dist": {
2479
- "type": "zip",
2480
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db9e829c8f34c3d35cf37fcd4cdb4293bc4a2f14",
2481
- "reference": "db9e829c8f34c3d35cf37fcd4cdb4293bc4a2f14",
2482
- "shasum": ""
2483
- },
2484
- "require": {
2485
- "php": "^5.5.9|>=7.0.8"
2486
- },
2487
- "conflict": {
2488
- "symfony/dependency-injection": "<3.3"
2489
- },
2490
- "require-dev": {
2491
- "psr/log": "~1.0",
2492
- "symfony/config": "~2.8|~3.0|~4.0",
2493
- "symfony/dependency-injection": "~3.3|~4.0",
2494
- "symfony/expression-language": "~2.8|~3.0|~4.0",
2495
- "symfony/stopwatch": "~2.8|~3.0|~4.0"
2496
- },
2497
- "suggest": {
2498
- "symfony/dependency-injection": "",
2499
- "symfony/http-kernel": ""
2500
- },
2501
- "type": "library",
2502
- "extra": {
2503
- "branch-alias": {
2504
- "dev-master": "3.4-dev"
2505
- }
2506
- },
2507
- "autoload": {
2508
- "psr-4": {
2509
- "Symfony\\Component\\EventDispatcher\\": ""
2510
- },
2511
- "exclude-from-classmap": [
2512
- "/Tests/"
2513
- ]
2514
- },
2515
- "notification-url": "https://packagist.org/downloads/",
2516
- "license": [
2517
- "MIT"
2518
- ],
2519
- "authors": [
2520
- {
2521
- "name": "Fabien Potencier",
2522
- "email": "fabien@symfony.com"
2523
- },
2524
- {
2525
- "name": "Symfony Community",
2526
- "homepage": "https://symfony.com/contributors"
2527
- }
2528
- ],
2529
- "description": "Symfony EventDispatcher Component",
2530
- "homepage": "https://symfony.com",
2531
- "time": "2018-10-30T16:50:50+00:00"
2532
- },
2533
- {
2534
- "name": "symfony/filesystem",
2535
- "version": "v3.4.18",
2536
- "source": {
2537
- "type": "git",
2538
- "url": "https://github.com/symfony/filesystem.git",
2539
- "reference": "d69930fc337d767607267d57c20a7403d0a822a4"
2540
- },
2541
- "dist": {
2542
- "type": "zip",
2543
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/d69930fc337d767607267d57c20a7403d0a822a4",
2544
- "reference": "d69930fc337d767607267d57c20a7403d0a822a4",
2545
- "shasum": ""
2546
- },
2547
- "require": {
2548
- "php": "^5.5.9|>=7.0.8",
2549
- "symfony/polyfill-ctype": "~1.8"
2550
- },
2551
- "type": "library",
2552
- "extra": {
2553
- "branch-alias": {
2554
- "dev-master": "3.4-dev"
2555
- }
2556
- },
2557
- "autoload": {
2558
- "psr-4": {
2559
- "Symfony\\Component\\Filesystem\\": ""
2560
- },
2561
- "exclude-from-classmap": [
2562
- "/Tests/"
2563
- ]
2564
- },
2565
- "notification-url": "https://packagist.org/downloads/",
2566
- "license": [
2567
- "MIT"
2568
- ],
2569
- "authors": [
2570
- {
2571
- "name": "Fabien Potencier",
2572
- "email": "fabien@symfony.com"
2573
- },
2574
- {
2575
- "name": "Symfony Community",
2576
- "homepage": "https://symfony.com/contributors"
2577
- }
2578
- ],
2579
- "description": "Symfony Filesystem Component",
2580
- "homepage": "https://symfony.com",
2581
- "time": "2018-10-02T12:28:39+00:00"
2582
- },
2583
- {
2584
- "name": "symfony/finder",
2585
- "version": "v3.4.18",
2586
- "source": {
2587
- "type": "git",
2588
- "url": "https://github.com/symfony/finder.git",
2589
- "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d"
2590
- },
2591
- "dist": {
2592
- "type": "zip",
2593
- "url": "https://api.github.com/repos/symfony/finder/zipball/54ba444dddc5bd5708a34bd095ea67c6eb54644d",
2594
- "reference": "54ba444dddc5bd5708a34bd095ea67c6eb54644d",
2595
- "shasum": ""
2596
- },
2597
- "require": {
2598
- "php": "^5.5.9|>=7.0.8"
2599
- },
2600
- "type": "library",
2601
- "extra": {
2602
- "branch-alias": {
2603
- "dev-master": "3.4-dev"
2604
- }
2605
- },
2606
- "autoload": {
2607
- "psr-4": {
2608
- "Symfony\\Component\\Finder\\": ""
2609
- },
2610
- "exclude-from-classmap": [
2611
- "/Tests/"
2612
- ]
2613
- },
2614
- "notification-url": "https://packagist.org/downloads/",
2615
- "license": [
2616
- "MIT"
2617
- ],
2618
- "authors": [
2619
- {
2620
- "name": "Fabien Potencier",
2621
- "email": "fabien@symfony.com"
2622
- },
2623
- {
2624
- "name": "Symfony Community",
2625
- "homepage": "https://symfony.com/contributors"
2626
- }
2627
- ],
2628
- "description": "Symfony Finder Component",
2629
- "homepage": "https://symfony.com",
2630
- "time": "2018-10-03T08:46:40+00:00"
2631
- },
2632
- {
2633
- "name": "symfony/options-resolver",
2634
- "version": "v3.4.18",
2635
- "source": {
2636
- "type": "git",
2637
- "url": "https://github.com/symfony/options-resolver.git",
2638
- "reference": "1cf7d8e704a9cc4164c92e430f2dfa3e6983661d"
2639
- },
2640
- "dist": {
2641
- "type": "zip",
2642
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1cf7d8e704a9cc4164c92e430f2dfa3e6983661d",
2643
- "reference": "1cf7d8e704a9cc4164c92e430f2dfa3e6983661d",
2644
- "shasum": ""
2645
- },
2646
- "require": {
2647
- "php": "^5.5.9|>=7.0.8"
2648
- },
2649
- "type": "library",
2650
- "extra": {
2651
- "branch-alias": {
2652
- "dev-master": "3.4-dev"
2653
- }
2654
- },
2655
- "autoload": {
2656
- "psr-4": {
2657
- "Symfony\\Component\\OptionsResolver\\": ""
2658
- },
2659
- "exclude-from-classmap": [
2660
- "/Tests/"
2661
- ]
2662
- },
2663
- "notification-url": "https://packagist.org/downloads/",
2664
- "license": [
2665
- "MIT"
2666
- ],
2667
- "authors": [
2668
- {
2669
- "name": "Fabien Potencier",
2670
- "email": "fabien@symfony.com"
2671
- },
2672
- {
2673
- "name": "Symfony Community",
2674
- "homepage": "https://symfony.com/contributors"
2675
- }
2676
- ],
2677
- "description": "Symfony OptionsResolver Component",
2678
- "homepage": "https://symfony.com",
2679
- "keywords": [
2680
- "config",
2681
- "configuration",
2682
- "options"
2683
- ],
2684
- "time": "2018-09-17T17:29:18+00:00"
2685
- },
2686
- {
2687
- "name": "symfony/polyfill-ctype",
2688
- "version": "v1.10.0",
2689
- "source": {
2690
- "type": "git",
2691
- "url": "https://github.com/symfony/polyfill-ctype.git",
2692
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19"
2693
- },
2694
- "dist": {
2695
- "type": "zip",
2696
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19",
2697
- "reference": "e3d826245268269cd66f8326bd8bc066687b4a19",
2698
- "shasum": ""
2699
- },
2700
- "require": {
2701
- "php": ">=5.3.3"
2702
- },
2703
- "suggest": {
2704
- "ext-ctype": "For best performance"
2705
- },
2706
- "type": "library",
2707
- "extra": {
2708
- "branch-alias": {
2709
- "dev-master": "1.9-dev"
2710
- }
2711
- },
2712
- "autoload": {
2713
- "psr-4": {
2714
- "Symfony\\Polyfill\\Ctype\\": ""
2715
- },
2716
- "files": [
2717
- "bootstrap.php"
2718
- ]
2719
- },
2720
- "notification-url": "https://packagist.org/downloads/",
2721
- "license": [
2722
- "MIT"
2723
- ],
2724
- "authors": [
2725
- {
2726
- "name": "Symfony Community",
2727
- "homepage": "https://symfony.com/contributors"
2728
- },
2729
- {
2730
- "name": "Gert de Pagter",
2731
- "email": "BackEndTea@gmail.com"
2732
- }
2733
- ],
2734
- "description": "Symfony polyfill for ctype functions",
2735
- "homepage": "https://symfony.com",
2736
- "keywords": [
2737
- "compatibility",
2738
- "ctype",
2739
- "polyfill",
2740
- "portable"
2741
- ],
2742
- "time": "2018-08-06T14:22:27+00:00"
2743
- },
2744
- {
2745
- "name": "symfony/polyfill-mbstring",
2746
- "version": "v1.10.0",
2747
- "source": {
2748
- "type": "git",
2749
- "url": "https://github.com/symfony/polyfill-mbstring.git",
2750
- "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
2751
- },
2752
- "dist": {
2753
- "type": "zip",
2754
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
2755
- "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
2756
- "shasum": ""
2757
- },
2758
- "require": {
2759
- "php": ">=5.3.3"
2760
- },
2761
- "suggest": {
2762
- "ext-mbstring": "For best performance"
2763
- },
2764
- "type": "library",
2765
- "extra": {
2766
- "branch-alias": {
2767
- "dev-master": "1.9-dev"
2768
- }
2769
- },
2770
- "autoload": {
2771
- "psr-4": {
2772
- "Symfony\\Polyfill\\Mbstring\\": ""
2773
- },
2774
- "files": [
2775
- "bootstrap.php"
2776
- ]
2777
- },
2778
- "notification-url": "https://packagist.org/downloads/",
2779
- "license": [
2780
- "MIT"
2781
- ],
2782
- "authors": [
2783
- {
2784
- "name": "Nicolas Grekas",
2785
- "email": "p@tchwork.com"
2786
- },
2787
- {
2788
- "name": "Symfony Community",
2789
- "homepage": "https://symfony.com/contributors"
2790
- }
2791
- ],
2792
- "description": "Symfony polyfill for the Mbstring extension",
2793
- "homepage": "https://symfony.com",
2794
- "keywords": [
2795
- "compatibility",
2796
- "mbstring",
2797
- "polyfill",
2798
- "portable",
2799
- "shim"
2800
- ],
2801
- "time": "2018-09-21T13:07:52+00:00"
2802
- },
2803
- {
2804
- "name": "symfony/polyfill-php70",
2805
- "version": "v1.10.0",
2806
- "source": {
2807
- "type": "git",
2808
- "url": "https://github.com/symfony/polyfill-php70.git",
2809
- "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224"
2810
- },
2811
- "dist": {
2812
- "type": "zip",
2813
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224",
2814
- "reference": "6b88000cdd431cd2e940caa2cb569201f3f84224",
2815
- "shasum": ""
2816
- },
2817
- "require": {
2818
- "paragonie/random_compat": "~1.0|~2.0|~9.99",
2819
- "php": ">=5.3.3"
2820
- },
2821
- "type": "library",
2822
- "extra": {
2823
- "branch-alias": {
2824
- "dev-master": "1.9-dev"
2825
- }
2826
- },
2827
- "autoload": {
2828
- "psr-4": {
2829
- "Symfony\\Polyfill\\Php70\\": ""
2830
- },
2831
- "files": [
2832
- "bootstrap.php"
2833
- ],
2834
- "classmap": [
2835
- "Resources/stubs"
2836
- ]
2837
- },
2838
- "notification-url": "https://packagist.org/downloads/",
2839
- "license": [
2840
- "MIT"
2841
- ],
2842
- "authors": [
2843
- {
2844
- "name": "Nicolas Grekas",
2845
- "email": "p@tchwork.com"
2846
- },
2847
- {
2848
- "name": "Symfony Community",
2849
- "homepage": "https://symfony.com/contributors"
2850
- }
2851
- ],
2852
- "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
2853
- "homepage": "https://symfony.com",
2854
- "keywords": [
2855
- "compatibility",
2856
- "polyfill",
2857
- "portable",
2858
- "shim"
2859
- ],
2860
- "time": "2018-09-21T06:26:08+00:00"
2861
- },
2862
- {
2863
- "name": "symfony/polyfill-php72",
2864
- "version": "v1.10.0",
2865
- "source": {
2866
- "type": "git",
2867
- "url": "https://github.com/symfony/polyfill-php72.git",
2868
- "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631"
2869
- },
2870
- "dist": {
2871
- "type": "zip",
2872
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9050816e2ca34a8e916c3a0ae8b9c2fccf68b631",
2873
- "reference": "9050816e2ca34a8e916c3a0ae8b9c2fccf68b631",
2874
- "shasum": ""
2875
- },
2876
- "require": {
2877
- "php": ">=5.3.3"
2878
- },
2879
- "type": "library",
2880
- "extra": {
2881
- "branch-alias": {
2882
- "dev-master": "1.9-dev"
2883
- }
2884
- },
2885
- "autoload": {
2886
- "psr-4": {
2887
- "Symfony\\Polyfill\\Php72\\": ""
2888
- },
2889
- "files": [
2890
- "bootstrap.php"
2891
- ]
2892
- },
2893
- "notification-url": "https://packagist.org/downloads/",
2894
- "license": [
2895
- "MIT"
2896
- ],
2897
- "authors": [
2898
- {
2899
- "name": "Nicolas Grekas",
2900
- "email": "p@tchwork.com"
2901
- },
2902
- {
2903
- "name": "Symfony Community",
2904
- "homepage": "https://symfony.com/contributors"
2905
- }
2906
- ],
2907
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
2908
- "homepage": "https://symfony.com",
2909
- "keywords": [
2910
- "compatibility",
2911
- "polyfill",
2912
- "portable",
2913
- "shim"
2914
- ],
2915
- "time": "2018-09-21T13:07:52+00:00"
2916
- },
2917
- {
2918
- "name": "symfony/process",
2919
- "version": "v3.4.18",
2920
- "source": {
2921
- "type": "git",
2922
- "url": "https://github.com/symfony/process.git",
2923
- "reference": "35c2914a9f50519bd207164c353ae4d59182c2cb"
2924
- },
2925
- "dist": {
2926
- "type": "zip",
2927
- "url": "https://api.github.com/repos/symfony/process/zipball/35c2914a9f50519bd207164c353ae4d59182c2cb",
2928
- "reference": "35c2914a9f50519bd207164c353ae4d59182c2cb",
2929
- "shasum": ""
2930
- },
2931
- "require": {
2932
- "php": "^5.5.9|>=7.0.8"
2933
- },
2934
- "type": "library",
2935
- "extra": {
2936
- "branch-alias": {
2937
- "dev-master": "3.4-dev"
2938
- }
2939
- },
2940
- "autoload": {
2941
- "psr-4": {
2942
- "Symfony\\Component\\Process\\": ""
2943
- },
2944
- "exclude-from-classmap": [
2945
- "/Tests/"
2946
- ]
2947
- },
2948
- "notification-url": "https://packagist.org/downloads/",
2949
- "license": [
2950
- "MIT"
2951
- ],
2952
- "authors": [
2953
- {
2954
- "name": "Fabien Potencier",
2955
- "email": "fabien@symfony.com"
2956
- },
2957
- {
2958
- "name": "Symfony Community",
2959
- "homepage": "https://symfony.com/contributors"
2960
- }
2961
- ],
2962
- "description": "Symfony Process Component",
2963
- "homepage": "https://symfony.com",
2964
- "time": "2018-10-14T17:33:21+00:00"
2965
- },
2966
- {
2967
- "name": "symfony/stopwatch",
2968
- "version": "v3.4.18",
2969
- "source": {
2970
- "type": "git",
2971
- "url": "https://github.com/symfony/stopwatch.git",
2972
- "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4"
2973
- },
2974
- "dist": {
2975
- "type": "zip",
2976
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/05e52a39de52ba690aebaed462b2bc8a9649f0a4",
2977
- "reference": "05e52a39de52ba690aebaed462b2bc8a9649f0a4",
2978
- "shasum": ""
2979
- },
2980
- "require": {
2981
- "php": "^5.5.9|>=7.0.8"
2982
- },
2983
- "type": "library",
2984
- "extra": {
2985
- "branch-alias": {
2986
- "dev-master": "3.4-dev"
2987
- }
2988
- },
2989
- "autoload": {
2990
- "psr-4": {
2991
- "Symfony\\Component\\Stopwatch\\": ""
2992
- },
2993
- "exclude-from-classmap": [
2994
- "/Tests/"
2995
- ]
2996
- },
2997
- "notification-url": "https://packagist.org/downloads/",
2998
- "license": [
2999
- "MIT"
3000
- ],
3001
- "authors": [
3002
- {
3003
- "name": "Fabien Potencier",
3004
- "email": "fabien@symfony.com"
3005
- },
3006
- {
3007
- "name": "Symfony Community",
3008
- "homepage": "https://symfony.com/contributors"
3009
- }
3010
- ],
3011
- "description": "Symfony Stopwatch Component",
3012
- "homepage": "https://symfony.com",
3013
- "time": "2018-10-02T12:28:39+00:00"
3014
- },
3015
- {
3016
- "name": "symfony/yaml",
3017
- "version": "v3.4.18",
3018
- "source": {
3019
- "type": "git",
3020
- "url": "https://github.com/symfony/yaml.git",
3021
- "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f"
3022
- },
3023
- "dist": {
3024
- "type": "zip",
3025
- "url": "https://api.github.com/repos/symfony/yaml/zipball/640b6c27fed4066d64b64d5903a86043f4a4de7f",
3026
- "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f",
3027
- "shasum": ""
3028
- },
3029
- "require": {
3030
- "php": "^5.5.9|>=7.0.8",
3031
- "symfony/polyfill-ctype": "~1.8"
3032
- },
3033
- "conflict": {
3034
- "symfony/console": "<3.4"
3035
- },
3036
- "require-dev": {
3037
- "symfony/console": "~3.4|~4.0"
3038
- },
3039
- "suggest": {
3040
- "symfony/console": "For validating YAML files using the lint command"
3041
- },
3042
- "type": "library",
3043
- "extra": {
3044
- "branch-alias": {
3045
- "dev-master": "3.4-dev"
3046
- }
3047
- },
3048
- "autoload": {
3049
- "psr-4": {
3050
- "Symfony\\Component\\Yaml\\": ""
3051
- },
3052
- "exclude-from-classmap": [
3053
- "/Tests/"
3054
- ]
3055
- },
3056
- "notification-url": "https://packagist.org/downloads/",
3057
- "license": [
3058
- "MIT"
3059
- ],
3060
- "authors": [
3061
- {
3062
- "name": "Fabien Potencier",
3063
- "email": "fabien@symfony.com"
3064
- },
3065
- {
3066
- "name": "Symfony Community",
3067
- "homepage": "https://symfony.com/contributors"
3068
- }
3069
- ],
3070
- "description": "Symfony Yaml Component",
3071
- "homepage": "https://symfony.com",
3072
- "time": "2018-10-02T16:33:53+00:00"
3073
- },
3074
- {
3075
- "name": "tecnickcom/tcpdf",
3076
- "version": "6.2.26",
3077
- "source": {
3078
- "type": "git",
3079
- "url": "https://github.com/tecnickcom/TCPDF.git",
3080
- "reference": "367241059ca166e3a76490f4448c284e0a161f15"
3081
- },
3082
- "dist": {
3083
- "type": "zip",
3084
- "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/367241059ca166e3a76490f4448c284e0a161f15",
3085
- "reference": "367241059ca166e3a76490f4448c284e0a161f15",
3086
- "shasum": ""
3087
- },
3088
- "require": {
3089
- "php": ">=5.3.0"
3090
- },
3091
- "type": "library",
3092
- "autoload": {
3093
- "classmap": [
3094
- "config",
3095
- "include",
3096
- "tcpdf.php",
3097
- "tcpdf_parser.php",
3098
- "tcpdf_import.php",
3099
- "tcpdf_barcodes_1d.php",
3100
- "tcpdf_barcodes_2d.php",
3101
- "include/tcpdf_colors.php",
3102
- "include/tcpdf_filters.php",
3103
- "include/tcpdf_font_data.php",
3104
- "include/tcpdf_fonts.php",
3105
- "include/tcpdf_images.php",
3106
- "include/tcpdf_static.php",
3107
- "include/barcodes/datamatrix.php",
3108
- "include/barcodes/pdf417.php",
3109
- "include/barcodes/qrcode.php"
3110
- ]
3111
- },
3112
- "notification-url": "https://packagist.org/downloads/",
3113
- "license": [
3114
- "LGPL-3.0"
3115
- ],
3116
- "authors": [
3117
- {
3118
- "name": "Nicola Asuni",
3119
- "email": "info@tecnick.com",
3120
- "role": "lead"
3121
- }
3122
- ],
3123
- "description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
3124
- "homepage": "http://www.tcpdf.org/",
3125
- "keywords": [
3126
- "PDFD32000-2008",
3127
- "TCPDF",
3128
- "barcodes",
3129
- "datamatrix",
3130
- "pdf",
3131
- "pdf417",
3132
- "qrcode"
3133
- ],
3134
- "time": "2018-10-16T17:24:05+00:00"
3135
- },
3136
- {
3137
- "name": "webmozart/assert",
3138
- "version": "1.3.0",
3139
- "source": {
3140
- "type": "git",
3141
- "url": "https://github.com/webmozart/assert.git",
3142
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a"
3143
- },
3144
- "dist": {
3145
- "type": "zip",
3146
- "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
3147
- "reference": "0df1908962e7a3071564e857d86874dad1ef204a",
3148
- "shasum": ""
3149
- },
3150
- "require": {
3151
- "php": "^5.3.3 || ^7.0"
3152
- },
3153
- "require-dev": {
3154
- "phpunit/phpunit": "^4.6",
3155
- "sebastian/version": "^1.0.1"
3156
- },
3157
- "type": "library",
3158
- "extra": {
3159
- "branch-alias": {
3160
- "dev-master": "1.3-dev"
3161
- }
3162
- },
3163
- "autoload": {
3164
- "psr-4": {
3165
- "Webmozart\\Assert\\": "src/"
3166
- }
3167
- },
3168
- "notification-url": "https://packagist.org/downloads/",
3169
- "license": [
3170
- "MIT"
3171
- ],
3172
- "authors": [
3173
- {
3174
- "name": "Bernhard Schussek",
3175
- "email": "bschussek@gmail.com"
3176
- }
3177
- ],
3178
- "description": "Assertions to validate method input/output with nice error messages.",
3179
- "keywords": [
3180
- "assert",
3181
- "check",
3182
- "validate"
3183
- ],
3184
- "time": "2018-01-29T19:49:41+00:00"
3185
- }
3186
- ],
3187
- "aliases": [],
3188
- "minimum-stability": "stable",
3189
- "stability-flags": {
3190
- "friendsofphp/php-cs-fixer": 0
3191
- },
3192
- "prefer-stable": false,
3193
- "prefer-lowest": false,
3194
- "platform": {
3195
- "php": "^5.6|^7.0",
3196
- "ext-ctype": "*",
3197
- "ext-dom": "*",
3198
- "ext-gd": "*",
3199
- "ext-iconv": "*",
3200
- "ext-fileinfo": "*",
3201
- "ext-libxml": "*",
3202
- "ext-mbstring": "*",
3203
- "ext-simplexml": "*",
3204
- "ext-xml": "*",
3205
- "ext-xmlreader": "*",
3206
- "ext-xmlwriter": "*",
3207
- "ext-zip": "*",
3208
- "ext-zlib": "*"
3209
- },
3210
- "platform-dev": []
3211
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/psr/simple-cache/composer.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "name": "psr/simple-cache",
3
- "description": "Common interfaces for simple caching",
4
- "keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"],
5
- "license": "MIT",
6
- "authors": [
7
- {
8
- "name": "PHP-FIG",
9
- "homepage": "http://www.php-fig.org/"
10
- }
11
- ],
12
- "require": {
13
- "php": ">=5.3.0"
14
- },
15
- "autoload": {
16
- "psr-4": {
17
- "Psr\\SimpleCache\\": "src/"
18
- }
19
- },
20
- "extra": {
21
- "branch-alias": {
22
- "dev-master": "1.0.x-dev"
23
- }
24
- }
25
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/xrstf/composer-php52/composer.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "name": "xrstf/composer-php52",
3
- "license": "MIT",
4
- "support": {
5
- "source": "https://github.com/composer-php52/composer-php52",
6
- "issues": "https://github.com/composer-php52/composer-php52/issues"
7
- },
8
- "autoload": {
9
- "psr-0": {
10
- "xrstf\\Composer52": "lib/"
11
- }
12
- },
13
- "scripts": {
14
- "post-install-cmd": [
15
- "xrstf\\Composer52\\Generator::onPostInstallCmd"
16
- ],
17
- "post-update-cmd": [
18
- "xrstf\\Composer52\\Generator::onPostInstallCmd"
19
- ]
20
- },
21
- "extra": {
22
- "branch-alias": {
23
- "dev-default": "1.x-dev"
24
- }
25
- }
26
- }