Redux Framework - Version 3.6.18

Version Description

Download this release

Release Info

Developer dovyp
Plugin Icon 128x128 Redux Framework
Version 3.6.18
Comparing to
See all releases

Code changes from version 3.6.17 to 3.6.18

CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
  # Redux Framework Changelog
2
 
 
 
 
3
  ## 3.6.17
4
  * Added: Redux API disable_demo to disable the plugin demo notice.
5
 
1
  # Redux Framework Changelog
2
 
3
+ ## 3.6.18
4
+ * Fixed: PHP 7.x warning about defines.
5
+
6
  ## 3.6.17
7
  * Added: Redux API disable_demo to disable the plugin demo notice.
8
 
CONTRIBUTING.md DELETED
@@ -1,25 +0,0 @@
1
- Hello, and welcome to Redux Framework!
2
-
3
- These are our new guidelines for support. Please read them thoroughly before submitting an issue on our issue tracker (or if you were directed her, modify your ticket with the required information).
4
-
5
- First, and most importantly, we need to know if you are a developer using Redux in their project, or if you are using a theme/plugin that uses Redux. Redux is a tool for developers to include an options panel in their project. Consequently, we do not offer support for folks who have purchased a theme or plugin that uses Redux. The responsibility of support for themes and plugins falls upon it's author. We realize that some authors have included support links for Redux in their projects, when they should not have. We do apologize for that confusion and are taking steps to remedy this confusion. If you have purchased a theme or plugin that utilizes Redux, please contact the author for support. If the author is unavailable for support or has discontinued support, please refer to this article: [Support Defined](https://docs.reduxframework.com/core/support-defined/).
6
-
7
- If you are a developer, using Redux Framework in your project, PLEASE check to see if you are using the latest version of Redux by checking this repository. If you plan to reporting an issue with any version BUT the latest version, we are going to ask you to upgrade to the latest code base anyway to see if your issue persists. Please save yourself and us some time by taking this simple step first. Thanks!
8
-
9
- We designed our issue tracker to help identify and correct issues within Redux Framework. If you believe you have discovered an issue, or something is not working as it should, then submitting an issue is appropriate. However, if you are looking for a custom solution involving Redux, or require assistance with original code unrelated to the Redux core itself, then this type of support falls under Premium support. We are not PHP/JavaScript tutors, or a version of Stack Overflow, or have the time and resources to debug your code. For Premium support options, please visit this page: [Premium Support](https://reduxframework.com/extension/premium-support/). Our cost is $100.00 per hour. If you require a more tailored quote, please contact support@reduxframework.com.
10
-
11
- We handle all support for Redux Framework via our issue tracker. Email support is available only for those who have purchased Premium Support, or in instances where we have requested contact via EMail.
12
-
13
- For Redux Extensions: All pre-sale and support for premium extensions need to be posted to the [Redux Extensions Issue Tracker] (https://github.com/reduxframework/redux-extensions). Please do not post them to this issue tracker.
14
-
15
- You MUST be using Redux in dev mode when submitting an issue to us. If you are not, or have circumvented our dev mode protocol, you are on your own. There could be information in your issue that requires dev move active. (Compressed Javascript, for example. We are unable to diagnose issues with compressed Javascript and why dev mode needs to be enabled.)
16
-
17
- Because it is sometimes difficult to get all the necessary information for a support issue,we have designed the Support URL protocol, in which we are able to gather all the required data via one URL. It will be necessary for you to post one in your issue. Please refer to this article for instructions on generating a support URL: [Generating a Support URL] (https://docs.reduxframework.com/core/generating-a-support-hash/). This is *required*. We will not be able to offer support without one. We appreciate the understanding.
18
-
19
- If an error or notice appears on your screen, please cut and paste it into your issue. PLEASE, do not say you 'got an error' without telling us what the error or notice is.
20
-
21
- Sometimes, an issue may be tied to JavaScript. To make this determination, you will need to check the JavaScript console. To do this, ensure your web browser is the topmost window. On your keyboard, press CTRL+SHIFT+I. The JavaScript console will open. If there are notices or errors there, please cut and paste them into your issue. We would prefer a cut and paste, since it will include all pertinent information. Also, Redux dev mode must be enabled so an accurate line number may be reported.
22
-
23
- It would also be hugely helpful to us if you are able to indicate any steps taken up until the issue occurred. We may need to be able to recreate your issue on our end, and having this information would help with that. Simply stating something 'doesn't work' isn't helpful, and tells us nothing. PLEASE, be as specific as possible.
24
-
25
- - Team Redux
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ISSUE_TEMPLATE DELETED
@@ -1,54 +0,0 @@
1
- <!--
2
- Hello, and welcome to Redux Framework!
3
-
4
- PLEASE, BEFORE YOU POST, READ THIS ENTIRE BLOCK OF TEXT!!!
5
-
6
- We require all of the information specified below for support. If this block of text is ignored or the information not provided, your ticket with be automatically closed. Thank you.
7
-
8
- Are you a user reporting a bug with a theme or plugin?
9
- ======================================================
10
- Redux is a tool for developers to include an options panel in their project. Consequently, we do not offer support for folks who have purchased a theme or plugin that uses Redux. The responsibility of support for themes and plugins falls upon it's author. We realize that some authors have included support links for Redux in their projects, when they should not have. We do apologize for that confusion and are taking steps to remedy this confusion.
11
-
12
- If you have purchased a theme or plugin that utilizes Redux, please contact the author for support. If the author is unavailable for support or has discontinued support, please refer to this before posting to our issue tracker: https://docs.reduxframework.com/core/support-defined/
13
-
14
- Have a development usage question?
15
- ==================================
16
- The issue tracker isn't the best place for usage questions. This format is not well-suited for Q&A, and questions here don't have as much visibility as they do elsewhere. Before you ask a question, here are some resources to get help first:
17
-
18
- - Try Redux: https://demo.reduxframework.com/
19
- - Read the docs: https://docs.reduxframework.com/
20
- - Look for/ask questions on StackOverflow: https://stackoverflow.com/questions/tagged/redux-framework
21
- - Ask in our community Slack channel: http://slack.redux.io/
22
- - For Premium support or advanced customizations we offer premium support. See https://reduxframework.com/extension/premium-support/ for more information.
23
-
24
- Questions about a Redux extension?
25
- ==================================
26
- All pre-sale and support for premium extensions need to be posted to the Redux Extensions Issue Tracker. Please do not post them to this issue tracker. https://github.com/reduxframework/redux-extensions/
27
-
28
- Think you found a bug?
29
- ======================
30
- Please use the "BUG REPORT" template below. Remember, we are rabbid about backwards compatability. Do not submit fixes that break previous ways of doing so or they will be rejected.
31
-
32
- Also, unless you provide a Support Hash, your request will also be rejected. See https://docs.reduxframework.com/core/generating-a-support-hash/ for more details.
33
-
34
- You MUST be using Redux in dev mode when submitting an issue to us. If you are not, or have circumvented our dev mode protocol, you are on your own. There could be information in your issue that requires dev move active. (Compressed Javascript, for example. We are unable to diagnose issues with compressed Javascript and why dev mode needs to be enabled.)
35
-
36
- If an error or notice appears on your screen, please cut and paste it into your issue. PLEASE, do not say you 'got an error' without telling us what the error or notice is.
37
-
38
- Before you post, check the JavaScript!
39
- ======================================
40
- Sometimes, an issue may be tied to JavaScript. To make this determination, you will need to check the JavaScript console. To do this, ensure your web browser is the topmost window. On your keyboard, press CTRL+SHIFT+I. The JavaScript console will open. If there are notices or errors there, please cut and paste them into your issue. We would prefer a cut and paste, since it will include all pertinent information. Also, Redux dev mode must be enabled so an accurate line number may be reported.
41
-
42
-
43
- -->
44
-
45
- <!-- BUG TEMPLATE -->
46
- ## Support Hash
47
-
48
- ## Steps to reproduce
49
-
50
- ## Expected Behavior
51
-
52
- ## Actual Behavior
53
-
54
- ## Any Error Details (PHP/JavaScript)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ReduxCore/framework.php CHANGED
@@ -69,7 +69,7 @@
69
  // Please update the build number with each push, no matter how small.
70
  // This will make for easier support when we ask users what version they are using.
71
 
72
- public static $_version = '3.6.17';
73
  public static $_dir;
74
  public static $_url;
75
  public static $_upload_dir;
69
  // Please update the build number with each push, no matter how small.
70
  // This will make for easier support when we ask users what version they are using.
71
 
72
+ public static $_version = '3.6.18';
73
  public static $_dir;
74
  public static $_url;
75
  public static $_upload_dir;
ReduxCore/inc/class.redux_helpers.php CHANGED
@@ -1,192 +1,200 @@
1
  <?php
2
 
3
  // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) {
5
- exit;
6
- }
7
 
8
  // Don't duplicate me!
9
- if ( ! class_exists( 'Redux_Helpers' ) ) {
10
-
11
- /**
12
- * Redux Helpers Class
13
- * Class of useful functions that can/should be shared among all Redux files.
14
- *
15
- * @since 1.0.0
16
- */
17
- class Redux_Helpers {
18
-
19
- public static function tabFromField( $parent, $field ) {
20
- foreach ( $parent->sections as $k => $section ) {
21
- if ( ! isset( $section['title'] ) ) {
22
- continue;
23
- }
24
-
25
- if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) {
26
- if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) {
27
- return $k;
28
- continue;
29
- }
30
- }
31
- }
32
- }
33
-
34
- public static function isFieldInUseByType( $fields, $field = array() ) {
35
- foreach ( $field as $name ) {
36
- if ( array_key_exists( $name, $fields ) ) {
37
- return true;
38
- }
39
- }
40
-
41
- return false;
42
- }
43
-
44
- public static function isFieldInUse( $parent, $field ) {
45
- foreach ( $parent->sections as $k => $section ) {
46
- if ( ! isset( $section['title'] ) ) {
47
- continue;
48
- }
49
-
50
- if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) {
51
- if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) {
52
- return true;
53
- continue;
54
- }
55
- }
56
- }
57
- }
58
-
59
- public static function major_version( $v ) {
60
- $version = explode( '.', $v );
61
- if ( count( $version ) > 1 ) {
62
- return $version[0] . '.' . $version[1];
63
- } else {
64
- return $v;
65
- }
66
- }
67
-
68
- public static function isLocalHost() {
69
- return ( isset($_SERVER['REMOTE_ADDR']) && ($_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === 'localhost' )) ? 1 : 0;
70
- }
71
-
72
- public static function isWpDebug() {
73
- return ( defined( 'WP_DEBUG' ) && WP_DEBUG == true );
74
- }
75
-
76
- public static function getTrackingObject() {
77
- global $wpdb;
78
-
79
- $hash = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] );
80
-
81
- global $blog_id, $wpdb;
82
- $pts = array();
83
-
84
- foreach ( get_post_types( array( 'public' => true ) ) as $pt ) {
85
- $count = wp_count_posts( $pt );
86
- $pts[ $pt ] = $count->publish;
87
- }
88
-
89
- $comments_count = wp_count_comments();
90
- $theme_data = wp_get_theme();
91
- $theme = array(
92
- 'version' => $theme_data->Version,
93
- 'name' => $theme_data->Name,
94
- 'author' => $theme_data->Author,
95
- 'template' => $theme_data->Template,
96
- );
97
-
98
- if ( ! function_exists( 'get_plugin_data' ) ) {
99
- if ( file_exists( ABSPATH . 'wp-admin/includes/plugin.php' ) ) {
100
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
101
- }
102
- if ( file_exists( ABSPATH . 'wp-admin/includes/admin.php' ) ) {
103
- require_once ABSPATH . 'wp-admin/includes/admin.php';
104
- }
105
- }
106
-
107
- $plugins = array();
108
- foreach ( get_option( 'active_plugins', array() ) as $plugin_path ) {
109
- $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path );
110
-
111
- $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path );
112
- $plugins[ $slug ] = array(
113
- 'version' => $plugin_info['Version'],
114
- 'name' => $plugin_info['Name'],
115
- 'plugin_uri' => $plugin_info['PluginURI'],
116
- 'author' => $plugin_info['AuthorName'],
117
- 'author_uri' => $plugin_info['AuthorURI'],
118
- );
119
- }
120
- if ( is_multisite() ) {
121
- foreach ( get_option( 'active_sitewide_plugins', array() ) as $plugin_path ) {
122
- $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path );
123
- $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path );
124
- $plugins[ $slug ] = array(
125
- 'version' => $plugin_info['Version'],
126
- 'name' => $plugin_info['Name'],
127
- 'plugin_uri' => $plugin_info['PluginURI'],
128
- 'author' => $plugin_info['AuthorName'],
129
- 'author_uri' => $plugin_info['AuthorURI'],
130
- );
131
- }
132
- }
133
-
134
-
135
- $version = explode( '.', PHP_VERSION );
136
- $version = array(
137
- 'major' => $version[0],
138
- 'minor' => $version[0] . '.' . $version[1],
139
- 'release' => PHP_VERSION
140
- );
141
-
142
- $user_query = new WP_User_Query( array( 'blog_id' => $blog_id, 'count_total' => true, ) );
143
- $comments_query = new WP_Comment_Query();
144
-
145
- $data = array(
146
- '_id' => $hash,
147
- 'localhost' => ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1' ) ? 1 : 0,
148
- 'php' => $version,
149
- 'site' => array(
150
- 'hash' => $hash,
151
- 'version' => get_bloginfo( 'version' ),
152
- 'multisite' => is_multisite(),
153
- 'users' => $user_query->get_total(),
154
- 'lang' => get_locale(),
155
- 'wp_debug' => ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? true : false : false ),
156
- 'memory' => WP_MEMORY_LIMIT,
157
- ),
158
- 'pts' => $pts,
159
- 'comments' => array(
160
- 'total' => $comments_count->total_comments,
161
- 'approved' => $comments_count->approved,
162
- 'spam' => $comments_count->spam,
163
- 'pings' => $comments_query->query( array( 'count' => true, 'type' => 'pingback' ) ),
164
- ),
165
- 'options' => apply_filters( 'redux/tracking/options', array() ),
166
- 'theme' => $theme,
167
- 'redux' => array(
168
- 'mode' => ReduxFramework::$_is_plugin ? 'plugin' : 'theme',
169
- 'version' => ReduxFramework::$_version,
170
- 'demo_mode' => get_option( 'ReduxFrameworkPlugin' ),
171
- ),
172
- 'developer' => apply_filters( 'redux/tracking/developer', array() ),
173
- 'plugins' => $plugins,
174
- );
175
-
176
- $parts = explode( ' ', $_SERVER['SERVER_SOFTWARE'] );
177
- $software = array();
178
- foreach ( $parts as $part ) {
179
- if ( $part[0] == "(" ) {
180
- continue;
181
- }
182
- if ( strpos( $part, '/' ) !== false ) {
183
- $chunk = explode( "/", $part );
184
- $software[ strtolower( $chunk[0] ) ] = $chunk[1];
185
- }
186
- }
187
- $software['full'] = $_SERVER['SERVER_SOFTWARE'];
188
- $data['environment'] = $software;
189
- $data['environment']['mysql'] = $wpdb->db_version();
 
 
 
 
 
 
 
 
190
  // if ( function_exists( 'mysqli_get_server_info' ) ) {
191
  // $link = mysqli_connect() or die( "Error " . mysqli_error( $link ) );
192
  // $data['environment']['mysql'] = mysqli_get_server_info( $link );
@@ -196,533 +204,573 @@
196
  // $data['environment']['mysql'] = mysql_get_server_info();
197
  // }
198
 
199
- if ( empty( $data['developer'] ) ) {
200
- unset( $data['developer'] );
201
- }
202
-
203
- return $data;
204
- }
205
-
206
- public static function trackingObject() {
207
-
208
- $data = wp_remote_post(
209
- 'http://verify.redux.io',
210
- array(
211
- 'body' => array(
212
- 'hash' => $_GET['action'],
213
- 'site' => esc_url( home_url( '/' ) ),
214
- )
215
- )
216
- );
217
-
218
- $data['body'] = urldecode( $data['body'] );
219
-
220
- if ( ! isset( $_GET['code'] ) || $data['body'] != $_GET['code'] ) {
221
- die();
222
- }
223
-
224
- return Redux_Helpers::getTrackingObject();
225
- }
226
-
227
- public static function isParentTheme( $file ) {
228
- $file = self::cleanFilePath( $file );
229
- $dir = self::cleanFilePath( get_template_directory() );
230
-
231
- $file = str_replace( '//', '/', $file );
232
- $dir = str_replace( '//', '/', $dir );
233
-
234
- if ( strpos( $file, $dir ) !== false ) {
235
- return true;
236
- }
237
-
238
- return false;
239
- }
240
-
241
- public static function isChildTheme( $file ) {
242
- $file = self::cleanFilePath( $file );
243
- $dir = self::cleanFilePath( get_stylesheet_directory() );
244
-
245
- $file = str_replace( '//', '/', $file );
246
- $dir = str_replace( '//', '/', $dir );
247
-
248
- if ( strpos( $file, $dir ) !== false ) {
249
- return true;
250
- }
251
-
252
- return false;
253
- }
254
-
255
- private static function reduxAsPlugin() {
256
- return ReduxFramework::$_as_plugin;
257
- }
258
-
259
- public static function isTheme( $file ) {
260
-
261
- if ( true == self::isChildTheme( $file ) || true == self::isParentTheme( $file ) ) {
262
- return true;
263
- }
264
-
265
- return false;
266
- }
267
-
268
- public static function array_in_array( $needle, $haystack ) {
269
- //Make sure $needle is an array for foreach
270
- if ( ! is_array( $needle ) ) {
271
- $needle = array( $needle );
272
- }
273
- //For each value in $needle, return TRUE if in $haystack
274
- foreach ( $needle as $pin ) //echo 'needle' . $pin;
275
- {
276
- if ( in_array( $pin, $haystack ) ) {
277
- return true;
278
- }
279
- }
280
-
281
- //Return FALSE if none of the values from $needle are found in $haystack
282
- return false;
283
- }
284
-
285
- public static function recursive_array_search( $needle, $haystack ) {
286
- foreach ( $haystack as $key => $value ) {
287
- if ( $needle === $value || ( is_array( $value ) && self::recursive_array_search( $needle, $value ) !== false ) ) {
288
- return true;
289
- }
290
- }
291
-
292
- return false;
293
- }
294
-
295
- /**
296
- * Take a path and return it clean
297
- *
298
- * @param string $path
299
- *
300
- * @since 3.1.7
301
- */
302
- public static function cleanFilePath( $path ) {
303
- $path = str_replace( '', '', str_replace( array( "\\", "\\\\" ), '/', $path ) );
304
-
305
- if ( $path[ strlen( $path ) - 1 ] === '/' ) {
306
- $path = rtrim( $path, '/' );
307
- }
308
-
309
- return $path;
310
- }
311
-
312
- /**
313
- * Take a path and delete it
314
- *
315
- * @param string $path
316
- *
317
- * @since 3.3.3
318
- */
319
- public static function rmdir( $dir ) {
320
- if ( is_dir( $dir ) ) {
321
- $objects = scandir( $dir );
322
- foreach ( $objects as $object ) {
323
- if ( $object != "." && $object != ".." ) {
324
- if ( filetype( $dir . "/" . $object ) == "dir" ) {
325
- rrmdir( $dir . "/" . $object );
326
- } else {
327
- unlink( $dir . "/" . $object );
328
- }
329
- }
330
- }
331
- reset( $objects );
332
- rmdir( $dir );
333
- }
334
- }
335
-
336
- /**
337
- * Field Render Function.
338
- * Takes the color hex value and converts to a rgba.
339
- *
340
- * @since ReduxFramework 3.0.4
341
- */
342
- public static function hex2rgba( $hex, $alpha = '' ) {
343
- $hex = str_replace( "#", "", $hex );
344
- if ( strlen( $hex ) == 3 ) {
345
- $r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) );
346
- $g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) );
347
- $b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) );
348
- } else {
349
- $r = hexdec( substr( $hex, 0, 2 ) );
350
- $g = hexdec( substr( $hex, 2, 2 ) );
351
- $b = hexdec( substr( $hex, 4, 2 ) );
352
- }
353
- $rgb = $r . ',' . $g . ',' . $b;
354
-
355
- if ( '' == $alpha ) {
356
- return $rgb;
357
- } else {
358
- $alpha = floatval( $alpha );
359
-
360
- return 'rgba(' . $rgb . ',' . $alpha . ')';
361
- }
362
- }
363
-
364
- public static function makeBoolStr( $var ) {
365
- if ( $var === false || $var === 'false' || $var === 0 || $var === '0' || $var === '' || empty( $var ) ) {
366
- return 'false';
367
- } elseif ($var === true || $var === 'true' || $var === 1 || $var === '1') {
368
- return 'true';
369
- } else {
370
- return $var;
371
- }
372
- }
373
-
374
- public static function localize( $localize ) {
375
- $redux = ReduxFrameworkInstances::get_instance( $localize['args']['opt_name'] );
376
- $nonce = wp_create_nonce( 'redux-ads-nonce' );
377
- $base = admin_url( 'admin-ajax.php' ) . '?action=redux_p&nonce=' . $nonce . '&url=';
378
- $localize['rAds'] = Redux_Helpers::rURL_fix( $base, $redux->args['opt_name'] );
379
-
380
- return $localize;
381
- }
382
-
383
- public static function compileSystemStatus( $json_output = false, $remote_checks = false ) {
384
- global $wpdb;
385
-
386
- $sysinfo = array();
387
-
388
- $sysinfo['home_url'] = home_url();
389
- $sysinfo['site_url'] = site_url();
390
- $sysinfo['redux_ver'] = esc_html( ReduxFramework::$_version );
391
- $sysinfo['redux_data_dir'] = ReduxFramework::$_upload_dir;
392
- $f = 'fo' . 'pen';
393
-
394
- $res = true;
395
- if ($f( ReduxFramework::$_upload_dir . 'test-log.log', 'a' ) === false) {
396
- $res = false;
397
- }
398
-
399
- // Only is a file-write check
400
- $sysinfo['redux_data_writeable'] = $res;
401
- $sysinfo['wp_content_url'] = WP_CONTENT_URL;
402
- $sysinfo['wp_ver'] = get_bloginfo( 'version' );
403
- $sysinfo['wp_multisite'] = is_multisite();
404
- $sysinfo['permalink_structure'] = get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default';
405
- $sysinfo['front_page_display'] = get_option( 'show_on_front' );
406
- if ( $sysinfo['front_page_display'] == 'page' ) {
407
- $front_page_id = get_option( 'page_on_front' );
408
- $blog_page_id = get_option( 'page_for_posts' );
409
-
410
- $sysinfo['front_page'] = $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset';
411
- $sysinfo['posts_page'] = $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset';
412
- }
413
-
414
- $sysinfo['wp_mem_limit']['raw'] = self::let_to_num( WP_MEMORY_LIMIT );
415
- $sysinfo['wp_mem_limit']['size'] = size_format( $sysinfo['wp_mem_limit']['raw'] );
416
-
417
- $sysinfo['db_table_prefix'] = 'Length: ' . strlen( $wpdb->prefix ) . ' - Status: ' . ( strlen( $wpdb->prefix ) > 16 ? 'ERROR: Too long' : 'Acceptable' );
418
-
419
- $sysinfo['wp_debug'] = 'false';
420
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
421
- $sysinfo['wp_debug'] = 'true';
422
- }
423
-
424
- $sysinfo['wp_lang'] = get_locale();
425
-
426
- if ( ! class_exists( 'Browser' ) ) {
427
- require_once ReduxFramework::$_dir . 'inc/browser.php';
428
- }
429
-
430
- $browser = new Browser();
431
-
432
- $sysinfo['browser'] = array(
433
- 'agent' => $browser->getUserAgent(),
434
- 'browser' => $browser->getBrowser(),
435
- 'version' => $browser->getVersion(),
436
- 'platform' => $browser->getPlatform(),
437
- //'mobile' => $browser->isMobile() ? 'true' : 'false',
438
- );
439
-
440
- $sysinfo['server_info'] = esc_html( $_SERVER['SERVER_SOFTWARE'] );
441
- $sysinfo['localhost'] = self::makeBoolStr( self::isLocalHost() );
442
- $sysinfo['php_ver'] = function_exists( 'phpversion' ) ? esc_html( phpversion() ) : 'phpversion() function does not exist.';
443
- $sysinfo['abspath'] = ABSPATH;
444
-
445
- if ( function_exists( 'ini_get' ) ) {
446
- $sysinfo['php_mem_limit'] = size_format( self::let_to_num( ini_get( 'memory_limit' ) ) );
447
- $sysinfo['php_post_max_size'] = size_format( self::let_to_num( ini_get( 'post_max_size' ) ) );
448
- $sysinfo['php_time_limit'] = ini_get( 'max_execution_time' );
449
- $sysinfo['php_max_input_var'] = ini_get( 'max_input_vars' );
450
- $sysinfo['php_display_errors'] = self::makeBoolStr( ini_get( 'display_errors' ) );
451
- }
452
-
453
- $sysinfo['suhosin_installed'] = extension_loaded( 'suhosin' );
454
- $sysinfo['mysql_ver'] = $wpdb->db_version();
455
- $sysinfo['max_upload_size'] = size_format( wp_max_upload_size() );
456
-
457
- $sysinfo['def_tz_is_utc'] = 'true';
458
- if ( date_default_timezone_get() !== 'UTC' ) {
459
- $sysinfo['def_tz_is_utc'] = 'false';
460
- }
461
-
462
- $sysinfo['fsockopen_curl'] = 'false';
463
- if ( function_exists( 'fsockopen' ) || function_exists( 'curl_init' ) ) {
464
- $sysinfo['fsockopen_curl'] = 'true';
465
- }
466
-
467
- //$sysinfo['soap_client'] = 'false';
468
- //if ( class_exists( 'SoapClient' ) ) {
469
- // $sysinfo['soap_client'] = 'true';
470
- //}
471
- //
472
- //$sysinfo['dom_document'] = 'false';
473
- //if ( class_exists( 'DOMDocument' ) ) {
474
- // $sysinfo['dom_document'] = 'true';
475
- //}
476
-
477
- //$sysinfo['gzip'] = 'false';
478
- //if ( is_callable( 'gzopen' ) ) {
479
- // $sysinfo['gzip'] = 'true';
480
- //}
481
-
482
- if ( $remote_checks == true ) {
483
- $response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', array(
484
- 'sslverify' => false,
485
- 'timeout' => 60,
486
- 'user-agent' => 'ReduxFramework/' . ReduxFramework::$_version,
487
- 'body' => array(
488
- 'cmd' => '_notify-validate'
489
- )
490
- ) );
491
-
492
- if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
493
- $sysinfo['wp_remote_post'] = 'true';
494
- $sysinfo['wp_remote_post_error'] = '';
495
- } else {
496
- $sysinfo['wp_remote_post'] = 'false';
497
- $sysinfo['wp_remote_post_error'] = $response->get_error_message();
498
- }
499
-
500
- $response = @wp_remote_get( 'http://reduxframework.com/wp-admin/admin-ajax.php?action=get_redux_extensions' );
501
-
502
- if ( ! is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
503
- $sysinfo['wp_remote_get'] = 'true';
504
- $sysinfo['wp_remote_get_error'] = '';
505
- } elseif( is_wp_error( $response ) ) {
506
- $sysinfo['wp_remote_get'] = 'false';
507
- $sysinfo['wp_remote_get_error'] = $response->get_error_message();
508
- } else {
509
- $sysinfo['wp_remote_get'] = 'false';
510
- $sysinfo['wp_remote_get_error'] = $response['response']['code'] . (isset($response['response']['message']) ? $response['response']['message'] : '');
511
- }
512
- }
513
-
514
- $active_plugins = (array) get_option( 'active_plugins', array() );
515
-
516
- if ( is_multisite() ) {
517
- $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
518
- }
519
-
520
- $sysinfo['plugins'] = array();
521
-
522
- foreach ( $active_plugins as $plugin ) {
523
- if (file_exists(WP_PLUGIN_DIR . '/' . $plugin)) {
524
- $plugin_data = @get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
525
- $plugin_name = esc_html( $plugin_data['Name'] );
526
-
527
- $sysinfo['plugins'][ $plugin_name ] = $plugin_data;
528
- }
529
- }
530
-
531
- $redux = ReduxFrameworkInstances::get_all_instances();
532
-
533
- $sysinfo['redux_instances'] = array();
534
-
535
- if ( ! empty( $redux ) && is_array( $redux ) ) {
536
- foreach ( $redux as $inst => $data ) {
537
- Redux::init( $inst );
538
-
539
- $sysinfo['redux_instances'][ $inst ]['args'] = $data->args;
540
- $sysinfo['redux_instances'][ $inst ]['sections'] = $data->sections;
541
- foreach ( $sysinfo['redux_instances'][ $inst ]['sections'] as $sKey => $section ) {
542
- if ( isset( $section['fields'] ) && is_array( $section['fields'] ) ) {
543
- foreach ( $section['fields'] as $fKey => $field ) {
544
- if ( isset( $field['validate_callback'] ) ) {
545
- unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['validate_callback'] );
546
- }
547
- if ( $field['type'] == "js_button" ) {
548
- if ( isset( $field['script'] ) && isset( $field['script']['ver'] ) ) {
549
- unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['script']['ver'] );
550
- }
551
- }
552
-
553
- }
554
- }
555
- }
556
-
557
- $sysinfo['redux_instances'][ $inst ]['extensions'] = Redux::getExtensions( $inst );
558
-
559
- if ( isset( $data->extensions['metaboxes'] ) ) {
560
- $data->extensions['metaboxes']->init();
561
- $sysinfo['redux_instances'][ $inst ]['metaboxes'] = $data->extensions['metaboxes']->boxes;
562
- }
563
-
564
- if ( isset( $data->args['templates_path'] ) && $data->args['templates_path'] != '' ) {
565
- $sysinfo['redux_instances'][ $inst ]['templates'] = self::getReduxTemplates( $data->args['templates_path'] );
566
- }
567
- }
568
- }
569
-
570
- $active_theme = wp_get_theme();
571
-
572
- $sysinfo['theme']['name'] = $active_theme->Name;
573
- $sysinfo['theme']['version'] = $active_theme->Version;
574
- $sysinfo['theme']['author_uri'] = $active_theme->{'Author URI'};
575
- $sysinfo['theme']['is_child'] = self::makeBoolStr( is_child_theme() );
576
-
577
- if ( is_child_theme() ) {
578
- $parent_theme = wp_get_theme( $active_theme->Template );
579
-
580
- $sysinfo['theme']['parent_name'] = $parent_theme->Name;
581
- $sysinfo['theme']['parent_version'] = $parent_theme->Version;
582
- $sysinfo['theme']['parent_author_uri'] = $parent_theme->{'Author URI'};
583
- }
584
-
585
- //if ( $json_output ) {
586
- // $sysinfo = json_encode( $sysinfo );
587
- //}
588
-
589
- //print_r($sysinfo);
590
- //exit();
591
-
592
- return $sysinfo;
593
- }
594
-
595
- private static function getReduxTemplates( $custom_template_path ) {
596
- $template_paths = array( 'ReduxFramework' => ReduxFramework::$_dir . 'templates/panel' );
597
- $scanned_files = array();
598
- $found_files = array();
599
- $outdated_templates = false;
600
-
601
- foreach ( $template_paths as $plugin_name => $template_path ) {
602
- $scanned_files[ $plugin_name ] = self::scan_template_files( $template_path );
603
- }
604
-
605
- foreach ( $scanned_files as $plugin_name => $files ) {
606
- foreach ( $files as $file ) {
607
- if ( file_exists( $custom_template_path . '/' . $file ) ) {
608
- $theme_file = $custom_template_path . '/' . $file;
609
- } else {
610
- $theme_file = false;
611
- }
612
-
613
- if ( $theme_file ) {
614
- $core_version = self::get_template_version( ReduxFramework::$_dir . 'templates/panel/' . $file );
615
- $theme_version = self::get_template_version( $theme_file );
616
-
617
- if ( $core_version && ( empty( $theme_version ) || version_compare( $theme_version, $core_version, '<' ) ) ) {
618
- if ( ! $outdated_templates ) {
619
- $outdated_templates = true;
620
- }
621
-
622
- $found_files[ $plugin_name ][] = sprintf( __( '<code>%s</code> version <strong style="color:red">%s</strong> is out of date. The core version is %s', 'redux-framework' ), str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ), $theme_version ? $theme_version : '-', $core_version );
623
- } else {
624
- $found_files[ $plugin_name ][] = sprintf( '<code>%s</code>', str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ) );
625
- }
626
- }
627
- }
628
- }
629
-
630
- return $found_files;
631
- }
632
-
633
- public static function rURL_fix( $base, $opt_name ) {
634
- $url = $base . urlencode( 'http://look.redux.io/api/index.php?js&g&1&v=2' ) . '&proxy=' . urlencode( $base ) . '';
635
-
636
- return Redux_Functions::tru( $url, $opt_name );
637
- }
638
-
639
- private static function scan_template_files( $template_path ) {
640
- $files = scandir( $template_path );
641
- $result = array();
642
-
643
- if ( $files ) {
644
- foreach ( $files as $key => $value ) {
645
- if ( ! in_array( $value, array( ".", ".." ) ) ) {
646
- if ( is_dir( $template_path . DIRECTORY_SEPARATOR . $value ) ) {
647
- $sub_files = redux_scan_template_files( $template_path . DIRECTORY_SEPARATOR . $value );
648
- foreach ( $sub_files as $sub_file ) {
649
- $result[] = $value . DIRECTORY_SEPARATOR . $sub_file;
650
- }
651
- } else {
652
- $result[] = $value;
653
- }
654
- }
655
- }
656
- }
657
-
658
- return $result;
659
- }
660
-
661
- public static function get_template_version( $file ) {
662
- $filesystem = Redux_Filesystem::get_instance();
663
-
664
- // Avoid notices if file does not exist
665
- if ( ! file_exists( $file ) ) {
666
- return '';
667
- }
668
- //
669
- //// We don't need to write to the file, so just open for reading.
670
- //$fp = fopen( $file, 'r' );
671
- //
672
- //// Pull only the first 8kiB of the file in.
673
- //$file_data = fread( $fp, 8192 );
674
- //
675
- //// PHP will close file handle, but we are good citizens.
676
- //fclose( $fp );
677
- //
678
- // Make sure we catch CR-only line endings.
679
-
680
- $data = get_file_data( $file, array( 'version' ), 'plugin' );
681
- if ( ! empty( $data[0] ) ) {
682
- return $data[0];
683
- } else {
684
- $file_data = $filesystem->execute( 'get_contents', $file );
685
-
686
- $file_data = str_replace( "\r", "\n", $file_data );
687
- $version = '';
688
-
689
- if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( '@version', '/' ) . '(.*)$/mi', $file_data, $match ) && $match[1] ) {
690
- $version = _cleanup_header_comment( $match[1] );
691
- }
692
-
693
- return $version;
694
- }
695
- }
696
-
697
- private static function let_to_num( $size ) {
698
- $l = substr( $size, - 1 );
699
- $ret = substr( $size, 0, - 1 );
700
-
701
- switch ( strtoupper( $l ) ) {
702
- case 'P':
703
- $ret *= 1024;
704
- case 'T':
705
- $ret *= 1024;
706
- case 'G':
707
- $ret *= 1024;
708
- case 'M':
709
- $ret *= 1024;
710
- case 'K':
711
- $ret *= 1024;
712
- }
713
-
714
- return $ret;
715
- }
716
-
717
- public static function get_extension_dir( $dir ) {
718
- return trailingslashit( wp_normalize_path( dirname( $dir ) ) );
719
- }
720
-
721
- public static function get_extension_url( $dir ) {
722
- $ext_dir = Redux_Helpers::get_extension_dir( $dir );
723
- $ext_url = str_replace( wp_normalize_path( WP_CONTENT_DIR ), WP_CONTENT_URL, $ext_dir );
724
-
725
- return $ext_url;
726
- }
727
- }
728
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
 
3
  // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit;
6
+ }
7
 
8
  // Don't duplicate me!
9
+ if ( ! class_exists( 'Redux_Helpers' ) ) {
10
+
11
+ /**
12
+ * Redux Helpers Class
13
+ * Class of useful functions that can/should be shared among all Redux files.
14
+ *
15
+ * @since 1.0.0
16
+ */
17
+ class Redux_Helpers {
18
+
19
+ public static function tabFromField( $parent, $field ) {
20
+ foreach ( $parent->sections as $k => $section ) {
21
+ if ( ! isset( $section['title'] ) ) {
22
+ continue;
23
+ }
24
+
25
+ if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) {
26
+ if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) {
27
+ return $k;
28
+ continue;
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ public static function isFieldInUseByType( $fields, $field = array() ) {
35
+ foreach ( $field as $name ) {
36
+ if ( array_key_exists( $name, $fields ) ) {
37
+ return true;
38
+ }
39
+ }
40
+
41
+ return false;
42
+ }
43
+
44
+ public static function get_auth_key_secret_key() {
45
+ $key = "";
46
+ $key .= defined( 'AUTH_KEY' ) ? AUTH_KEY : get_site_url();
47
+ $key .= defined( 'SECURE_AUTH_KEY' ) ? SECURE_AUTH_KEY : get_site_url();
48
+
49
+ return $key;
50
+ }
51
+
52
+ public static function isFieldInUse( $parent, $field ) {
53
+ foreach ( $parent->sections as $k => $section ) {
54
+ if ( ! isset( $section['title'] ) ) {
55
+ continue;
56
+ }
57
+
58
+ if ( isset( $section['fields'] ) && ! empty( $section['fields'] ) ) {
59
+ if ( Redux_Helpers::recursive_array_search( $field, $section['fields'] ) ) {
60
+ return true;
61
+ continue;
62
+ }
63
+ }
64
+ }
65
+ }
66
+
67
+ public static function major_version( $v ) {
68
+ $version = explode( '.', $v );
69
+ if ( count( $version ) > 1 ) {
70
+ return $version[0] . '.' . $version[1];
71
+ } else {
72
+ return $v;
73
+ }
74
+ }
75
+
76
+ public static function isLocalHost() {
77
+ return ( isset( $_SERVER['REMOTE_ADDR'] ) && ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1' || $_SERVER['REMOTE_ADDR'] === 'localhost' ) ) ? 1 : 0;
78
+ }
79
+
80
+ public static function isWpDebug() {
81
+ return ( defined( 'WP_DEBUG' ) && WP_DEBUG == true );
82
+ }
83
+
84
+ public static function getTrackingObject() {
85
+ global $wpdb;
86
+
87
+ $hash = md5( network_site_url() . '-' . $_SERVER['REMOTE_ADDR'] );
88
+
89
+ global $blog_id, $wpdb;
90
+ $pts = array();
91
+
92
+ foreach ( get_post_types( array( 'public' => true ) ) as $pt ) {
93
+ $count = wp_count_posts( $pt );
94
+ $pts[ $pt ] = $count->publish;
95
+ }
96
+
97
+ $comments_count = wp_count_comments();
98
+ $theme_data = wp_get_theme();
99
+ $theme = array(
100
+ 'version' => $theme_data->Version,
101
+ 'name' => $theme_data->Name,
102
+ 'author' => $theme_data->Author,
103
+ 'template' => $theme_data->Template,
104
+ );
105
+
106
+ if ( ! function_exists( 'get_plugin_data' ) ) {
107
+ if ( file_exists( ABSPATH . 'wp-admin/includes/plugin.php' ) ) {
108
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
109
+ }
110
+ if ( file_exists( ABSPATH . 'wp-admin/includes/admin.php' ) ) {
111
+ require_once ABSPATH . 'wp-admin/includes/admin.php';
112
+ }
113
+ }
114
+
115
+ $plugins = array();
116
+ foreach ( get_option( 'active_plugins', array() ) as $plugin_path ) {
117
+ $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path );
118
+
119
+ $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path );
120
+ $plugins[ $slug ] = array(
121
+ 'version' => $plugin_info['Version'],
122
+ 'name' => $plugin_info['Name'],
123
+ 'plugin_uri' => $plugin_info['PluginURI'],
124
+ 'author' => $plugin_info['AuthorName'],
125
+ 'author_uri' => $plugin_info['AuthorURI'],
126
+ );
127
+ }
128
+ if ( is_multisite() ) {
129
+ foreach ( get_option( 'active_sitewide_plugins', array() ) as $plugin_path ) {
130
+ $plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin_path );
131
+ $slug = str_replace( '/' . basename( $plugin_path ), '', $plugin_path );
132
+ $plugins[ $slug ] = array(
133
+ 'version' => $plugin_info['Version'],
134
+ 'name' => $plugin_info['Name'],
135
+ 'plugin_uri' => $plugin_info['PluginURI'],
136
+ 'author' => $plugin_info['AuthorName'],
137
+ 'author_uri' => $plugin_info['AuthorURI'],
138
+ );
139
+ }
140
+ }
141
+
142
+
143
+ $version = explode( '.', PHP_VERSION );
144
+ $version = array(
145
+ 'major' => $version[0],
146
+ 'minor' => $version[0] . '.' . $version[1],
147
+ 'release' => PHP_VERSION
148
+ );
149
+
150
+ $user_query = new WP_User_Query( array( 'blog_id' => $blog_id, 'count_total' => true, ) );
151
+ $comments_query = new WP_Comment_Query();
152
+
153
+ $data = array(
154
+ '_id' => $hash,
155
+ 'localhost' => ( $_SERVER['REMOTE_ADDR'] === '127.0.0.1' ) ? 1 : 0,
156
+ 'php' => $version,
157
+ 'site' => array(
158
+ 'hash' => $hash,
159
+ 'version' => get_bloginfo( 'version' ),
160
+ 'multisite' => is_multisite(),
161
+ 'users' => $user_query->get_total(),
162
+ 'lang' => get_locale(),
163
+ 'wp_debug' => ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? true : false : false ),
164
+ 'memory' => WP_MEMORY_LIMIT,
165
+ ),
166
+ 'pts' => $pts,
167
+ 'comments' => array(
168
+ 'total' => $comments_count->total_comments,
169
+ 'approved' => $comments_count->approved,
170
+ 'spam' => $comments_count->spam,
171
+ 'pings' => $comments_query->query( array( 'count' => true, 'type' => 'pingback' ) ),
172
+ ),
173
+ 'options' => apply_filters( 'redux/tracking/options', array() ),
174
+ 'theme' => $theme,
175
+ 'redux' => array(
176
+ 'mode' => ReduxFramework::$_is_plugin ? 'plugin' : 'theme',
177
+ 'version' => ReduxFramework::$_version,
178
+ 'demo_mode' => get_option( 'ReduxFrameworkPlugin' ),
179
+ ),
180
+ 'developer' => apply_filters( 'redux/tracking/developer', array() ),
181
+ 'plugins' => $plugins,
182
+ );
183
+
184
+ $parts = explode( ' ', $_SERVER['SERVER_SOFTWARE'] );
185
+ $software = array();
186
+ foreach ( $parts as $part ) {
187
+ if ( $part[0] == "(" ) {
188
+ continue;
189
+ }
190
+ if ( strpos( $part, '/' ) !== false ) {
191
+ $chunk = explode( "/", $part );
192
+ $software[ strtolower( $chunk[0] ) ] = $chunk[1];
193
+ }
194
+ }
195
+ $software['full'] = $_SERVER['SERVER_SOFTWARE'];
196
+ $data['environment'] = $software;
197
+ $data['environment']['mysql'] = $wpdb->db_version();
198
  // if ( function_exists( 'mysqli_get_server_info' ) ) {
199
  // $link = mysqli_connect() or die( "Error " . mysqli_error( $link ) );
200
  // $data['environment']['mysql'] = mysqli_get_server_info( $link );
204
  // $data['environment']['mysql'] = mysql_get_server_info();
205
  // }
206
 
207
+ if ( empty( $data['developer'] ) ) {
208
+ unset( $data['developer'] );
209
+ }
210
+
211
+ return $data;
212
+ }
213
+
214
+ public static function trackingObject() {
215
+
216
+ $data = wp_remote_post(
217
+ 'http://verify.redux.io',
218
+ array(
219
+ 'body' => array(
220
+ 'hash' => $_GET['action'],
221
+ 'site' => esc_url( home_url( '/' ) ),
222
+ )
223
+ )
224
+ );
225
+
226
+ $data['body'] = urldecode( $data['body'] );
227
+
228
+ if ( ! isset( $_GET['code'] ) || $data['body'] != $_GET['code'] ) {
229
+ die();
230
+ }
231
+
232
+ return Redux_Helpers::getTrackingObject();
233
+ }
234
+
235
+ public static function isParentTheme( $file ) {
236
+ $file = self::cleanFilePath( $file );
237
+ $dir = self::cleanFilePath( get_template_directory() );
238
+
239
+ $file = str_replace( '//', '/', $file );
240
+ $dir = str_replace( '//', '/', $dir );
241
+
242
+ if ( strpos( $file, $dir ) !== false ) {
243
+ return true;
244
+ }
245
+
246
+ return false;
247
+ }
248
+
249
+ public static function isChildTheme( $file ) {
250
+ $file = self::cleanFilePath( $file );
251
+ $dir = self::cleanFilePath( get_stylesheet_directory() );
252
+
253
+ $file = str_replace( '//', '/', $file );
254
+ $dir = str_replace( '//', '/', $dir );
255
+
256
+ if ( strpos( $file, $dir ) !== false ) {
257
+ return true;
258
+ }
259
+
260
+ return false;
261
+ }
262
+
263
+ private static function reduxAsPlugin() {
264
+ return ReduxFramework::$_as_plugin;
265
+ }
266
+
267
+ public static function isTheme( $file ) {
268
+
269
+ if ( true == self::isChildTheme( $file ) || true == self::isParentTheme( $file ) ) {
270
+ return true;
271
+ }
272
+
273
+ return false;
274
+ }
275
+
276
+ public static function array_in_array( $needle, $haystack ) {
277
+ //Make sure $needle is an array for foreach
278
+ if ( ! is_array( $needle ) ) {
279
+ $needle = array( $needle );
280
+ }
281
+ //For each value in $needle, return TRUE if in $haystack
282
+ foreach ( $needle as $pin ) //echo 'needle' . $pin;
283
+ {
284
+ if ( in_array( $pin, $haystack ) ) {
285
+ return true;
286
+ }
287
+ }
288
+
289
+ //Return FALSE if none of the values from $needle are found in $haystack
290
+ return false;
291
+ }
292
+
293
+ public static function recursive_array_search( $needle, $haystack ) {
294
+ foreach ( $haystack as $key => $value ) {
295
+ if ( $needle === $value || ( is_array( $value ) && self::recursive_array_search(
296
+ $needle, $value
297
+ ) !== false ) ) {
298
+ return true;
299
+ }
300
+ }
301
+
302
+ return false;
303
+ }
304
+
305
+ /**
306
+ * Take a path and return it clean
307
+ *
308
+ * @since 3.1.7
309
+ *
310
+ * @param string $path
311
+ */
312
+ public static function cleanFilePath( $path ) {
313
+ $path = str_replace( '', '', str_replace( array( "\\", "\\\\" ), '/', $path ) );
314
+
315
+ if ( $path[ strlen( $path ) - 1 ] === '/' ) {
316
+ $path = rtrim( $path, '/' );
317
+ }
318
+
319
+ return $path;
320
+ }
321
+
322
+ /**
323
+ * Take a path and delete it
324
+ *
325
+ * @since 3.3.3
326
+ *
327
+ * @param string $path
328
+ */
329
+ public static function rmdir( $dir ) {
330
+ if ( is_dir( $dir ) ) {
331
+ $objects = scandir( $dir );
332
+ foreach ( $objects as $object ) {
333
+ if ( $object != "." && $object != ".." ) {
334
+ if ( filetype( $dir . "/" . $object ) == "dir" ) {
335
+ rrmdir( $dir . "/" . $object );
336
+ } else {
337
+ unlink( $dir . "/" . $object );
338
+ }
339
+ }
340
+ }
341
+ reset( $objects );
342
+ rmdir( $dir );
343
+ }
344
+ }
345
+
346
+ /**
347
+ * Field Render Function.
348
+ * Takes the color hex value and converts to a rgba.
349
+ *
350
+ * @since ReduxFramework 3.0.4
351
+ */
352
+ public static function hex2rgba( $hex, $alpha = '' ) {
353
+ $hex = str_replace( "#", "", $hex );
354
+ if ( strlen( $hex ) == 3 ) {
355
+ $r = hexdec( substr( $hex, 0, 1 ) . substr( $hex, 0, 1 ) );
356
+ $g = hexdec( substr( $hex, 1, 1 ) . substr( $hex, 1, 1 ) );
357
+ $b = hexdec( substr( $hex, 2, 1 ) . substr( $hex, 2, 1 ) );
358
+ } else {
359
+ $r = hexdec( substr( $hex, 0, 2 ) );
360
+ $g = hexdec( substr( $hex, 2, 2 ) );
361
+ $b = hexdec( substr( $hex, 4, 2 ) );
362
+ }
363
+ $rgb = $r . ',' . $g . ',' . $b;
364
+
365
+ if ( '' == $alpha ) {
366
+ return $rgb;
367
+ } else {
368
+ $alpha = floatval( $alpha );
369
+
370
+ return 'rgba(' . $rgb . ',' . $alpha . ')';
371
+ }
372
+ }
373
+
374
+ public static function makeBoolStr( $var ) {
375
+ if ( $var === false || $var === 'false' || $var === 0 || $var === '0' || $var === '' || empty( $var ) ) {
376
+ return 'false';
377
+ } elseif ( $var === true || $var === 'true' || $var === 1 || $var === '1' ) {
378
+ return 'true';
379
+ } else {
380
+ return $var;
381
+ }
382
+ }
383
+
384
+ public static function localize( $localize ) {
385
+ $redux = ReduxFrameworkInstances::get_instance( $localize['args']['opt_name'] );
386
+ $nonce = wp_create_nonce( 'redux-ads-nonce' );
387
+ $base = admin_url( 'admin-ajax.php' ) . '?action=redux_p&nonce=' . $nonce . '&url=';
388
+ $localize['rAds'] = Redux_Helpers::rURL_fix( $base, $redux->args['opt_name'] );
389
+
390
+ return $localize;
391
+ }
392
+
393
+ public static function compileSystemStatus( $json_output = false, $remote_checks = false ) {
394
+ global $wpdb;
395
+
396
+ $sysinfo = array();
397
+
398
+ $sysinfo['home_url'] = home_url();
399
+ $sysinfo['site_url'] = site_url();
400
+ $sysinfo['redux_ver'] = esc_html( ReduxFramework::$_version );
401
+ $sysinfo['redux_data_dir'] = ReduxFramework::$_upload_dir;
402
+ $f = 'fo' . 'pen';
403
+
404
+ $res = true;
405
+ if ( $f( ReduxFramework::$_upload_dir . 'test-log.log', 'a' ) === false ) {
406
+ $res = false;
407
+ }
408
+
409
+ // Only is a file-write check
410
+ $sysinfo['redux_data_writeable'] = $res;
411
+ $sysinfo['wp_content_url'] = WP_CONTENT_URL;
412
+ $sysinfo['wp_ver'] = get_bloginfo( 'version' );
413
+ $sysinfo['wp_multisite'] = is_multisite();
414
+ $sysinfo['permalink_structure'] = get_option( 'permalink_structure' ) ? get_option(
415
+ 'permalink_structure'
416
+ ) : 'Default';
417
+ $sysinfo['front_page_display'] = get_option( 'show_on_front' );
418
+ if ( $sysinfo['front_page_display'] == 'page' ) {
419
+ $front_page_id = get_option( 'page_on_front' );
420
+ $blog_page_id = get_option( 'page_for_posts' );
421
+
422
+ $sysinfo['front_page'] = $front_page_id != 0 ? get_the_title(
423
+ $front_page_id
424
+ ) . ' (#' . $front_page_id . ')' : 'Unset';
425
+ $sysinfo['posts_page'] = $blog_page_id != 0 ? get_the_title(
426
+ $blog_page_id
427
+ ) . ' (#' . $blog_page_id . ')' : 'Unset';
428
+ }
429
+
430
+ $sysinfo['wp_mem_limit']['raw'] = self::let_to_num( WP_MEMORY_LIMIT );
431
+ $sysinfo['wp_mem_limit']['size'] = size_format( $sysinfo['wp_mem_limit']['raw'] );
432
+
433
+ $sysinfo['db_table_prefix'] = 'Length: ' . strlen( $wpdb->prefix ) . ' - Status: ' . ( strlen(
434
+ $wpdb->prefix
435
+ ) > 16 ? 'ERROR: Too long' : 'Acceptable' );
436
+
437
+ $sysinfo['wp_debug'] = 'false';
438
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
439
+ $sysinfo['wp_debug'] = 'true';
440
+ }
441
+
442
+ $sysinfo['wp_lang'] = get_locale();
443
+
444
+ if ( ! class_exists( 'Browser' ) ) {
445
+ require_once ReduxFramework::$_dir . 'inc/browser.php';
446
+ }
447
+
448
+ $browser = new Browser();
449
+
450
+ $sysinfo['browser'] = array(
451
+ 'agent' => $browser->getUserAgent(),
452
+ 'browser' => $browser->getBrowser(),
453
+ 'version' => $browser->getVersion(),
454
+ 'platform' => $browser->getPlatform(),
455
+ //'mobile' => $browser->isMobile() ? 'true' : 'false',
456
+ );
457
+
458
+ $sysinfo['server_info'] = esc_html( $_SERVER['SERVER_SOFTWARE'] );
459
+ $sysinfo['localhost'] = self::makeBoolStr( self::isLocalHost() );
460
+ $sysinfo['php_ver'] = function_exists( 'phpversion' ) ? esc_html(
461
+ phpversion()
462
+ ) : 'phpversion() function does not exist.';
463
+ $sysinfo['abspath'] = ABSPATH;
464
+
465
+ if ( function_exists( 'ini_get' ) ) {
466
+ $sysinfo['php_mem_limit'] = size_format( self::let_to_num( ini_get( 'memory_limit' ) ) );
467
+ $sysinfo['php_post_max_size'] = size_format( self::let_to_num( ini_get( 'post_max_size' ) ) );
468
+ $sysinfo['php_time_limit'] = ini_get( 'max_execution_time' );
469
+ $sysinfo['php_max_input_var'] = ini_get( 'max_input_vars' );
470
+ $sysinfo['php_display_errors'] = self::makeBoolStr( ini_get( 'display_errors' ) );
471
+ }
472
+
473
+ $sysinfo['suhosin_installed'] = extension_loaded( 'suhosin' );
474
+ $sysinfo['mysql_ver'] = $wpdb->db_version();
475
+ $sysinfo['max_upload_size'] = size_format( wp_max_upload_size() );
476
+
477
+ $sysinfo['def_tz_is_utc'] = 'true';
478
+ if ( date_default_timezone_get() !== 'UTC' ) {
479
+ $sysinfo['def_tz_is_utc'] = 'false';
480
+ }
481
+
482
+ $sysinfo['fsockopen_curl'] = 'false';
483
+ if ( function_exists( 'fsockopen' ) || function_exists( 'curl_init' ) ) {
484
+ $sysinfo['fsockopen_curl'] = 'true';
485
+ }
486
+
487
+ //$sysinfo['soap_client'] = 'false';
488
+ //if ( class_exists( 'SoapClient' ) ) {
489
+ // $sysinfo['soap_client'] = 'true';
490
+ //}
491
+ //
492
+ //$sysinfo['dom_document'] = 'false';
493
+ //if ( class_exists( 'DOMDocument' ) ) {
494
+ // $sysinfo['dom_document'] = 'true';
495
+ //}
496
+
497
+ //$sysinfo['gzip'] = 'false';
498
+ //if ( is_callable( 'gzopen' ) ) {
499
+ // $sysinfo['gzip'] = 'true';
500
+ //}
501
+
502
+ if ( $remote_checks == true ) {
503
+ $response = wp_remote_post(
504
+ 'https://www.paypal.com/cgi-bin/webscr', array(
505
+ 'sslverify' => false,
506
+ 'timeout' => 60,
507
+ 'user-agent' => 'ReduxFramework/' . ReduxFramework::$_version,
508
+ 'body' => array(
509
+ 'cmd' => '_notify-validate'
510
+ )
511
+ )
512
+ );
513
+
514
+ if ( ! is_wp_error(
515
+ $response
516
+ ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
517
+ $sysinfo['wp_remote_post'] = 'true';
518
+ $sysinfo['wp_remote_post_error'] = '';
519
+ } else {
520
+ $sysinfo['wp_remote_post'] = 'false';
521
+ $sysinfo['wp_remote_post_error'] = $response->get_error_message();
522
+ }
523
+
524
+ $response = @wp_remote_get(
525
+ 'http://reduxframework.com/wp-admin/admin-ajax.php?action=get_redux_extensions'
526
+ );
527
+
528
+ if ( ! is_wp_error(
529
+ $response
530
+ ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
531
+ $sysinfo['wp_remote_get'] = 'true';
532
+ $sysinfo['wp_remote_get_error'] = '';
533
+ } elseif ( is_wp_error( $response ) ) {
534
+ $sysinfo['wp_remote_get'] = 'false';
535
+ $sysinfo['wp_remote_get_error'] = $response->get_error_message();
536
+ } else {
537
+ $sysinfo['wp_remote_get'] = 'false';
538
+ $sysinfo['wp_remote_get_error'] = $response['response']['code'] . ( isset( $response['response']['message'] ) ? $response['response']['message'] : '' );
539
+ }
540
+ }
541
+
542
+ $active_plugins = (array) get_option( 'active_plugins', array() );
543
+
544
+ if ( is_multisite() ) {
545
+ $active_plugins = array_merge( $active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
546
+ }
547
+
548
+ $sysinfo['plugins'] = array();
549
+
550
+ foreach ( $active_plugins as $plugin ) {
551
+ if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
552
+ $plugin_data = @get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
553
+ $plugin_name = esc_html( $plugin_data['Name'] );
554
+
555
+ $sysinfo['plugins'][ $plugin_name ] = $plugin_data;
556
+ }
557
+ }
558
+
559
+ $redux = ReduxFrameworkInstances::get_all_instances();
560
+
561
+ $sysinfo['redux_instances'] = array();
562
+
563
+ if ( ! empty( $redux ) && is_array( $redux ) ) {
564
+ foreach ( $redux as $inst => $data ) {
565
+ Redux::init( $inst );
566
+
567
+ $sysinfo['redux_instances'][ $inst ]['args'] = $data->args;
568
+ $sysinfo['redux_instances'][ $inst ]['sections'] = $data->sections;
569
+ foreach ( $sysinfo['redux_instances'][ $inst ]['sections'] as $sKey => $section ) {
570
+ if ( isset( $section['fields'] ) && is_array( $section['fields'] ) ) {
571
+ foreach ( $section['fields'] as $fKey => $field ) {
572
+ if ( isset( $field['validate_callback'] ) ) {
573
+ unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['validate_callback'] );
574
+ }
575
+ if ( $field['type'] == "js_button" ) {
576
+ if ( isset( $field['script'] ) && isset( $field['script']['ver'] ) ) {
577
+ unset( $sysinfo['redux_instances'][ $inst ]['sections'][ $sKey ]['fields'][ $fKey ]['script']['ver'] );
578
+ }
579
+ }
580
+
581
+ }
582
+ }
583
+ }
584
+
585
+ $sysinfo['redux_instances'][ $inst ]['extensions'] = Redux::getExtensions( $inst );
586
+
587
+ if ( isset( $data->extensions['metaboxes'] ) ) {
588
+ $data->extensions['metaboxes']->init();
589
+ $sysinfo['redux_instances'][ $inst ]['metaboxes'] = $data->extensions['metaboxes']->boxes;
590
+ }
591
+
592
+ if ( isset( $data->args['templates_path'] ) && $data->args['templates_path'] != '' ) {
593
+ $sysinfo['redux_instances'][ $inst ]['templates'] = self::getReduxTemplates(
594
+ $data->args['templates_path']
595
+ );
596
+ }
597
+ }
598
+ }
599
+
600
+ $active_theme = wp_get_theme();
601
+
602
+ $sysinfo['theme']['name'] = $active_theme->Name;
603
+ $sysinfo['theme']['version'] = $active_theme->Version;
604
+ $sysinfo['theme']['author_uri'] = $active_theme->{'Author URI'};
605
+ $sysinfo['theme']['is_child'] = self::makeBoolStr( is_child_theme() );
606
+
607
+ if ( is_child_theme() ) {
608
+ $parent_theme = wp_get_theme( $active_theme->Template );
609
+
610
+ $sysinfo['theme']['parent_name'] = $parent_theme->Name;
611
+ $sysinfo['theme']['parent_version'] = $parent_theme->Version;
612
+ $sysinfo['theme']['parent_author_uri'] = $parent_theme->{'Author URI'};
613
+ }
614
+
615
+ //if ( $json_output ) {
616
+ // $sysinfo = json_encode( $sysinfo );
617
+ //}
618
+
619
+ //print_r($sysinfo);
620
+ //exit();
621
+
622
+ return $sysinfo;
623
+ }
624
+
625
+ private static function getReduxTemplates( $custom_template_path ) {
626
+ $template_paths = array( 'ReduxFramework' => ReduxFramework::$_dir . 'templates/panel' );
627
+ $scanned_files = array();
628
+ $found_files = array();
629
+ $outdated_templates = false;
630
+
631
+ foreach ( $template_paths as $plugin_name => $template_path ) {
632
+ $scanned_files[ $plugin_name ] = self::scan_template_files( $template_path );
633
+ }
634
+
635
+ foreach ( $scanned_files as $plugin_name => $files ) {
636
+ foreach ( $files as $file ) {
637
+ if ( file_exists( $custom_template_path . '/' . $file ) ) {
638
+ $theme_file = $custom_template_path . '/' . $file;
639
+ } else {
640
+ $theme_file = false;
641
+ }
642
+
643
+ if ( $theme_file ) {
644
+ $core_version = self::get_template_version(
645
+ ReduxFramework::$_dir . 'templates/panel/' . $file
646
+ );
647
+ $theme_version = self::get_template_version( $theme_file );
648
+
649
+ if ( $core_version && ( empty( $theme_version ) || version_compare(
650
+ $theme_version, $core_version, '<'
651
+ ) ) ) {
652
+ if ( ! $outdated_templates ) {
653
+ $outdated_templates = true;
654
+ }
655
+
656
+ $found_files[ $plugin_name ][] = sprintf(
657
+ __(
658
+ '<code>%s</code> version <strong style="color:red">%s</strong> is out of date. The core version is %s',
659
+ 'redux-framework'
660
+ ), str_replace( WP_CONTENT_DIR . '/themes/', '', $theme_file ),
661
+ $theme_version ? $theme_version : '-', $core_version
662
+ );
663
+ } else {
664
+ $found_files[ $plugin_name ][] = sprintf(
665
+ '<code>%s</code>', str_replace(
666
+ WP_CONTENT_DIR . '/themes/', '', $theme_file
667
+ )
668
+ );
669
+ }
670
+ }
671
+ }
672
+ }
673
+
674
+ return $found_files;
675
+ }
676
+
677
+ public static function rURL_fix( $base, $opt_name ) {
678
+ $url = $base . urlencode( 'http://look.redux.io/api/index.php?js&g&1&v=2' ) . '&proxy=' . urlencode(
679
+ $base
680
+ ) . '';
681
+
682
+ return Redux_Functions::tru( $url, $opt_name );
683
+ }
684
+
685
+ private static function scan_template_files( $template_path ) {
686
+ $files = scandir( $template_path );
687
+ $result = array();
688
+
689
+ if ( $files ) {
690
+ foreach ( $files as $key => $value ) {
691
+ if ( ! in_array( $value, array( ".", ".." ) ) ) {
692
+ if ( is_dir( $template_path . DIRECTORY_SEPARATOR . $value ) ) {
693
+ $sub_files = redux_scan_template_files( $template_path . DIRECTORY_SEPARATOR . $value );
694
+ foreach ( $sub_files as $sub_file ) {
695
+ $result[] = $value . DIRECTORY_SEPARATOR . $sub_file;
696
+ }
697
+ } else {
698
+ $result[] = $value;
699
+ }
700
+ }
701
+ }
702
+ }
703
+
704
+ return $result;
705
+ }
706
+
707
+ public static function get_template_version( $file ) {
708
+ $filesystem = Redux_Filesystem::get_instance();
709
+
710
+ // Avoid notices if file does not exist
711
+ if ( ! file_exists( $file ) ) {
712
+ return '';
713
+ }
714
+ //
715
+ //// We don't need to write to the file, so just open for reading.
716
+ //$fp = fopen( $file, 'r' );
717
+ //
718
+ //// Pull only the first 8kiB of the file in.
719
+ //$file_data = fread( $fp, 8192 );
720
+ //
721
+ //// PHP will close file handle, but we are good citizens.
722
+ //fclose( $fp );
723
+ //
724
+ // Make sure we catch CR-only line endings.
725
+
726
+ $data = get_file_data( $file, array( 'version' ), 'plugin' );
727
+ if ( ! empty( $data[0] ) ) {
728
+ return $data[0];
729
+ } else {
730
+ $file_data = $filesystem->execute( 'get_contents', $file );
731
+
732
+ $file_data = str_replace( "\r", "\n", $file_data );
733
+ $version = '';
734
+
735
+ if ( preg_match(
736
+ '/^[ \t\/*#@]*' . preg_quote( '@version', '/' ) . '(.*)$/mi', $file_data, $match
737
+ ) && $match[1] ) {
738
+ $version = _cleanup_header_comment( $match[1] );
739
+ }
740
+
741
+ return $version;
742
+ }
743
+ }
744
+
745
+ private static function let_to_num( $size ) {
746
+ $l = substr( $size, - 1 );
747
+ $ret = substr( $size, 0, - 1 );
748
+
749
+ switch ( strtoupper( $l ) ) {
750
+ case 'P':
751
+ $ret *= 1024;
752
+ case 'T':
753
+ $ret *= 1024;
754
+ case 'G':
755
+ $ret *= 1024;
756
+ case 'M':
757
+ $ret *= 1024;
758
+ case 'K':
759
+ $ret *= 1024;
760
+ }
761
+
762
+ return $ret;
763
+ }
764
+
765
+ public static function get_extension_dir( $dir ) {
766
+ return trailingslashit( wp_normalize_path( dirname( $dir ) ) );
767
+ }
768
+
769
+ public static function get_extension_url( $dir ) {
770
+ $ext_dir = Redux_Helpers::get_extension_dir( $dir );
771
+ $ext_url = str_replace( wp_normalize_path( WP_CONTENT_DIR ), WP_CONTENT_URL, $ext_dir );
772
+
773
+ return $ext_url;
774
+ }
775
+ }
776
+ }
ReduxCore/inc/class.redux_instances.php CHANGED
@@ -70,7 +70,7 @@
70
  add_action( 'wp_ajax_' . $hash, array( $this, 'tracking_arg' ) );
71
 
72
  if (!class_exists('Redux_Tracking') || !method_exists('Redux_Tracking', 'trackingObject')) {
73
- $hash = md5( md5( AUTH_KEY . SECURE_AUTH_KEY . '-redux' ) . '-support' );
74
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'support_args' ) );
75
  add_action( 'wp_ajax_' . $hash, array( $this, 'support_args' ) );
76
  }
@@ -79,7 +79,7 @@
79
  }
80
 
81
  function tracking_arg() {
82
- echo md5( AUTH_KEY . SECURE_AUTH_KEY . '-redux' );
83
  die();
84
  }
85
 
@@ -154,7 +154,7 @@
154
  $array['instances'][] = $opt_name;
155
  }
156
  }
157
- $array['key'] = md5( AUTH_KEY . SECURE_AUTH_KEY );
158
  }
159
 
160
  echo @json_encode( $array, true );
70
  add_action( 'wp_ajax_' . $hash, array( $this, 'tracking_arg' ) );
71
 
72
  if (!class_exists('Redux_Tracking') || !method_exists('Redux_Tracking', 'trackingObject')) {
73
+ $hash = md5( md5( Redux_Helpers::get_auth_key_secret_key() . '-redux' ) . '-support' );
74
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'support_args' ) );
75
  add_action( 'wp_ajax_' . $hash, array( $this, 'support_args' ) );
76
  }
79
  }
80
 
81
  function tracking_arg() {
82
+ echo md5( Redux_Helpers::get_auth_key_secret_key() . '-redux' );
83
  die();
84
  }
85
 
154
  $array['instances'][] = $opt_name;
155
  }
156
  }
157
+ $array['key'] = md5( Redux_Helpers::get_auth_key_secret_key() );
158
  }
159
 
160
  echo @json_encode( $array, true );
ReduxCore/inc/extensions/import_export/extension_import_export.php CHANGED
@@ -134,7 +134,7 @@
134
  }
135
 
136
  function link_options() {
137
- if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( AUTH_KEY . SECURE_AUTH_KEY ) . '-' . $this->parent->args['opt_name'] ) ) {
138
  wp_die( 'Invalid Secret for options use' );
139
  exit;
140
  }
@@ -151,7 +151,7 @@
151
  }
152
 
153
  public function download_options() {
154
- if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( AUTH_KEY . SECURE_AUTH_KEY ) . '-' . $this->parent->args['opt_name'] ) ) {
155
  wp_die( 'Invalid Secret for options use' );
156
  exit;
157
  }
134
  }
135
 
136
  function link_options() {
137
+ if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] ) ) {
138
  wp_die( 'Invalid Secret for options use' );
139
  exit;
140
  }
151
  }
152
 
153
  public function download_options() {
154
+ if ( ! isset( $_GET['secret'] ) || $_GET['secret'] != md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] ) ) {
155
  wp_die( 'Invalid Secret for options use' );
156
  exit;
157
  }
ReduxCore/inc/extensions/import_export/import_export/field_import_export.php CHANGED
@@ -71,7 +71,7 @@
71
  */
72
  public function render() {
73
 
74
- $secret = md5( md5( AUTH_KEY . SECURE_AUTH_KEY ) . '-' . $this->parent->args['opt_name'] );
75
 
76
  // No errors please
77
  $defaults = array(
71
  */
72
  public function render() {
73
 
74
+ $secret = md5( md5( Redux_Helpers::get_auth_key_secret_key() ) . '-' . $this->parent->args['opt_name'] );
75
 
76
  // No errors please
77
  $defaults = array(
ReduxCore/inc/tracking.php CHANGED
@@ -88,7 +88,7 @@
88
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'tracking_arg' ) );
89
  add_action( 'wp_ajax_' . $hash, array( $this, 'tracking_arg' ) );
90
 
91
- $hash = md5( md5( AUTH_KEY . SECURE_AUTH_KEY . '-redux' ) . '-support' );
92
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'support_args' ) );
93
  add_action( 'wp_ajax_' . $hash, array( $this, 'support_args' ) );
94
 
@@ -404,7 +404,7 @@
404
  }
405
 
406
  function tracking_arg() {
407
- echo md5( AUTH_KEY . SECURE_AUTH_KEY . '-redux' );
408
  die();
409
  }
410
 
@@ -455,7 +455,7 @@
455
  $array['instances'][] = $opt_name;
456
  }
457
  }
458
- $array['key'] = md5( AUTH_KEY . SECURE_AUTH_KEY );
459
  }
460
 
461
  echo @json_encode( $array, true );
88
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'tracking_arg' ) );
89
  add_action( 'wp_ajax_' . $hash, array( $this, 'tracking_arg' ) );
90
 
91
+ $hash = md5( md5( Redux_Helpers::get_auth_key_secret_key() . '-redux' ) . '-support' );
92
  add_action( 'wp_ajax_nopriv_' . $hash, array( $this, 'support_args' ) );
93
  add_action( 'wp_ajax_' . $hash, array( $this, 'support_args' ) );
94
 
404
  }
405
 
406
  function tracking_arg() {
407
+ echo md5( Redux_Helpers::get_auth_key_secret_key() . '-redux' );
408
  die();
409
  }
410
 
455
  $array['instances'][] = $opt_name;
456
  }
457
  }
458
+ $array['key'] = md5( Redux_Helpers::get_auth_key_secret_key() );
459
  }
460
 
461
  echo @json_encode( $array, true );
class.redux-plugin.php CHANGED
@@ -26,7 +26,7 @@
26
  * @since 3.0.0
27
  */
28
 
29
- const VERSION = '3.6.17';
30
 
31
  /**
32
  * @access protected
26
  * @since 3.0.0
27
  */
28
 
29
+ const VERSION = '3.6.18';
30
 
31
  /**
32
  * @access protected
codestyles/.editorconfig DELETED
@@ -1,24 +0,0 @@
1
- # EditorConfig helps developers define and maintain consistent
2
- # coding styles between different editors and IDEs
3
- # editorconfig.org
4
-
5
- root = true
6
-
7
- [*]
8
- end_of_line = lf
9
- charset = utf-8
10
- indent_style = space
11
- tab_width = 4
12
- insert_final_newline = true
13
- trim_trailing_whitespace = true
14
-
15
- [*.md]
16
- trim_trailing_whitespace = false
17
- indent_size = 2
18
-
19
- [*.txt]
20
- trim_trailing_whitespace = false
21
-
22
- [*.json]
23
- indent_size = 2
24
- insert_final_newline = false
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
codestyles/PHPStorm.xml DELETED
@@ -1,91 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <code_scheme name="ReduxFramework">
3
- <JSCodeStyleSettings>
4
- <option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
5
- </JSCodeStyleSettings>
6
- <PHPCodeStyleSettings>
7
- <option name="INDENT_CODE_IN_PHP_TAGS" value="true" />
8
- <option name="ALIGN_KEY_VALUE_PAIRS" value="true" />
9
- <option name="ALIGN_PHPDOC_PARAM_NAMES" value="true" />
10
- <option name="ALIGN_PHPDOC_COMMENTS" value="true" />
11
- <option name="ALIGN_ASSIGNMENTS" value="true" />
12
- <option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
13
- <option name="PHPDOC_KEEP_BLANK_LINES" value="false" />
14
- <option name="PHPDOC_BLANK_LINES_AROUND_PARAMETERS" value="true" />
15
- <option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
16
- <option name="LOWER_CASE_NULL_CONST" value="true" />
17
- <option name="BLANK_LINE_BEFORE_RETURN_STATEMENT" value="true" />
18
- <option name="KEEP_RPAREN_AND_LBRACE_ON_ONE_LINE" value="true" />
19
- <option name="SPACES_AROUND_VAR_WITHIN_BRACKETS" value="true" />
20
- <option name="SPACE_BEFORE_UNARY_NOT" value="true" />
21
- <option name="SPACE_AFTER_UNARY_NOT" value="true" />
22
- </PHPCodeStyleSettings>
23
- <codeStyleSettings language="JavaScript">
24
- <option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
25
- <option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="true" />
26
- <option name="SPACE_WITHIN_METHOD_PARENTHESES" value="true" />
27
- <option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
28
- <option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
29
- <option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
30
- <option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
31
- <option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
32
- <option name="CALL_PARAMETERS_WRAP" value="1" />
33
- <option name="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
34
- <option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
35
- </codeStyleSettings>
36
- <codeStyleSettings language="LESS">
37
- <indentOptions>
38
- <option name="INDENT_SIZE" value="4" />
39
- </indentOptions>
40
- </codeStyleSettings>
41
- <codeStyleSettings language="PHP">
42
- <option name="LINE_COMMENT_AT_FIRST_COLUMN" value="false" />
43
- <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
44
- <option name="CLASS_BRACE_STYLE" value="1" />
45
- <option name="METHOD_BRACE_STYLE" value="1" />
46
- <option name="SPECIAL_ELSE_IF_TREATMENT" value="true" />
47
- <option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
48
- <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
49
- <option name="ALIGN_MULTILINE_FOR" value="false" />
50
- <option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
51
- <option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
52
- <option name="SPACE_AROUND_UNARY_OPERATOR" value="true" />
53
- <option name="SPACE_WITHIN_PARENTHESES" value="true" />
54
- <option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="true" />
55
- <option name="SPACE_WITHIN_METHOD_PARENTHESES" value="true" />
56
- <option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
57
- <option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
58
- <option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
59
- <option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
60
- <option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
61
- <option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
62
- <option name="SPACE_AFTER_TYPE_CAST" value="true" />
63
- <option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
64
- <option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
65
- <option name="PARENTHESES_EXPRESSION_LPAREN_WRAP" value="true" />
66
- <option name="PARENTHESES_EXPRESSION_RPAREN_WRAP" value="true" />
67
- <option name="FOR_STATEMENT_LPAREN_ON_NEXT_LINE" value="true" />
68
- <option name="FOR_STATEMENT_RPAREN_ON_NEXT_LINE" value="true" />
69
- <option name="ARRAY_INITIALIZER_WRAP" value="5" />
70
- <option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
71
- <option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
72
- <option name="IF_BRACE_FORCE" value="3" />
73
- <option name="DOWHILE_BRACE_FORCE" value="3" />
74
- <option name="WHILE_BRACE_FORCE" value="3" />
75
- <option name="FOR_BRACE_FORCE" value="3" />
76
- <indentOptions>
77
- <option name="SMART_TABS" value="true" />
78
- </indentOptions>
79
- </codeStyleSettings>
80
- <codeStyleSettings language="SASS">
81
- <indentOptions>
82
- <option name="INDENT_SIZE" value="4" />
83
- </indentOptions>
84
- </codeStyleSettings>
85
- <codeStyleSettings language="SCSS">
86
- <indentOptions>
87
- <option name="INDENT_SIZE" value="4" />
88
- </indentOptions>
89
- </codeStyleSettings>
90
- </code_scheme>
91
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
codestyles/README.md DELETED
@@ -1 +0,0 @@
1
- To save on effort, the following code styles have been provided. They are named by the program they correspond to. Please run code formatting through this formats before submitting a pull request.
 
composer.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "redux-framework/redux-framework",
3
- "version": "3.6.17",
4
  "authors": [
5
  {
6
  "name": "Team Redux"
1
  {
2
  "name": "redux-framework/redux-framework",
3
+ "version": "3.6.18",
4
  "authors": [
5
  {
6
  "name": "Team Redux"
package-lock.json DELETED
@@ -1,4142 +0,0 @@
1
- {
2
- "name": "redux-framework",
3
- "version": "3.6.14",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "abbrev": {
8
- "version": "1.1.0",
9
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
10
- "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=",
11
- "dev": true
12
- },
13
- "agent-base": {
14
- "version": "4.2.1",
15
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
16
- "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
17
- "dev": true,
18
- "requires": {
19
- "es6-promisify": "^5.0.0"
20
- }
21
- },
22
- "ajv": {
23
- "version": "6.5.5",
24
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
25
- "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
26
- "dev": true,
27
- "optional": true,
28
- "requires": {
29
- "fast-deep-equal": "^2.0.1",
30
- "fast-json-stable-stringify": "^2.0.0",
31
- "json-schema-traverse": "^0.4.1",
32
- "uri-js": "^4.2.2"
33
- }
34
- },
35
- "ansi-regex": {
36
- "version": "2.1.1",
37
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
38
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
39
- "dev": true
40
- },
41
- "ansi-styles": {
42
- "version": "2.2.1",
43
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
44
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
45
- "dev": true
46
- },
47
- "argparse": {
48
- "version": "1.0.10",
49
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
50
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
51
- "dev": true,
52
- "requires": {
53
- "sprintf-js": "~1.0.2"
54
- },
55
- "dependencies": {
56
- "sprintf-js": {
57
- "version": "1.0.3",
58
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
59
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
60
- "dev": true
61
- }
62
- }
63
- },
64
- "array-find-index": {
65
- "version": "1.0.2",
66
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
67
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
68
- "dev": true
69
- },
70
- "array-uniq": {
71
- "version": "1.0.3",
72
- "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
73
- "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
74
- "dev": true
75
- },
76
- "asap": {
77
- "version": "2.0.6",
78
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
79
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
80
- "dev": true,
81
- "optional": true
82
- },
83
- "asn1": {
84
- "version": "0.2.4",
85
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
86
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
87
- "dev": true,
88
- "optional": true,
89
- "requires": {
90
- "safer-buffer": "~2.1.0"
91
- }
92
- },
93
- "assert-plus": {
94
- "version": "1.0.0",
95
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
96
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
97
- "dev": true
98
- },
99
- "async": {
100
- "version": "0.9.2",
101
- "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
102
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
103
- "dev": true
104
- },
105
- "async-limiter": {
106
- "version": "1.0.0",
107
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
108
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
109
- "dev": true
110
- },
111
- "asynckit": {
112
- "version": "0.4.0",
113
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
114
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
115
- "dev": true,
116
- "optional": true
117
- },
118
- "aws-sign2": {
119
- "version": "0.7.0",
120
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
121
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
122
- "dev": true,
123
- "optional": true
124
- },
125
- "aws4": {
126
- "version": "1.8.0",
127
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
128
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
129
- "dev": true,
130
- "optional": true
131
- },
132
- "balanced-match": {
133
- "version": "1.0.0",
134
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
135
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
136
- "dev": true
137
- },
138
- "bcrypt-pbkdf": {
139
- "version": "1.0.2",
140
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
141
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
142
- "dev": true,
143
- "optional": true,
144
- "requires": {
145
- "tweetnacl": "^0.14.3"
146
- }
147
- },
148
- "bin-version": {
149
- "version": "1.0.4",
150
- "resolved": "http://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
151
- "integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
152
- "dev": true,
153
- "requires": {
154
- "find-versions": "^1.0.0"
155
- }
156
- },
157
- "bin-version-check": {
158
- "version": "2.1.0",
159
- "resolved": "http://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
160
- "integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
161
- "dev": true,
162
- "requires": {
163
- "bin-version": "^1.0.0",
164
- "minimist": "^1.1.0",
165
- "semver": "^4.0.3",
166
- "semver-truncate": "^1.0.0"
167
- },
168
- "dependencies": {
169
- "semver": {
170
- "version": "4.3.6",
171
- "resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
172
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
173
- "dev": true
174
- }
175
- }
176
- },
177
- "bluebird": {
178
- "version": "3.5.3",
179
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
180
- "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==",
181
- "dev": true
182
- },
183
- "body": {
184
- "version": "5.1.0",
185
- "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
186
- "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
187
- "dev": true,
188
- "requires": {
189
- "continuable-cache": "^0.3.1",
190
- "error": "^7.0.0",
191
- "raw-body": "~1.1.0",
192
- "safe-json-parse": "~1.0.1"
193
- }
194
- },
195
- "brace-expansion": {
196
- "version": "1.1.11",
197
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
198
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
199
- "dev": true,
200
- "requires": {
201
- "balanced-match": "^1.0.0",
202
- "concat-map": "0.0.1"
203
- }
204
- },
205
- "buffer-from": {
206
- "version": "1.1.1",
207
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
208
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
209
- "dev": true
210
- },
211
- "builtin-modules": {
212
- "version": "1.1.1",
213
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
214
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
215
- "dev": true
216
- },
217
- "bytes": {
218
- "version": "1.0.0",
219
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
220
- "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
221
- "dev": true
222
- },
223
- "cache-swap": {
224
- "version": "0.3.0",
225
- "resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.3.0.tgz",
226
- "integrity": "sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E=",
227
- "dev": true,
228
- "requires": {
229
- "graceful-fs": "^4.1.2",
230
- "mkdirp": "^0.5.1",
231
- "object-assign": "^4.0.1",
232
- "rimraf": "^2.4.0"
233
- },
234
- "dependencies": {
235
- "glob": {
236
- "version": "7.1.3",
237
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
238
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
239
- "dev": true,
240
- "requires": {
241
- "fs.realpath": "^1.0.0",
242
- "inflight": "^1.0.4",
243
- "inherits": "2",
244
- "minimatch": "^3.0.4",
245
- "once": "^1.3.0",
246
- "path-is-absolute": "^1.0.0"
247
- }
248
- },
249
- "graceful-fs": {
250
- "version": "4.1.15",
251
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
252
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
253
- "dev": true
254
- },
255
- "minimatch": {
256
- "version": "3.0.4",
257
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
258
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
259
- "dev": true,
260
- "requires": {
261
- "brace-expansion": "^1.1.7"
262
- }
263
- },
264
- "rimraf": {
265
- "version": "2.6.2",
266
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
267
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
268
- "dev": true,
269
- "requires": {
270
- "glob": "^7.0.5"
271
- }
272
- }
273
- }
274
- },
275
- "camelcase-keys": {
276
- "version": "2.1.0",
277
- "resolved": "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
278
- "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
279
- "dev": true,
280
- "requires": {
281
- "camelcase": "^2.0.0",
282
- "map-obj": "^1.0.0"
283
- },
284
- "dependencies": {
285
- "camelcase": {
286
- "version": "2.1.1",
287
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
288
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
289
- "dev": true
290
- }
291
- }
292
- },
293
- "chalk": {
294
- "version": "1.1.3",
295
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
296
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
297
- "dev": true,
298
- "requires": {
299
- "ansi-styles": "^2.2.1",
300
- "escape-string-regexp": "^1.0.2",
301
- "has-ansi": "^2.0.0",
302
- "strip-ansi": "^3.0.0",
303
- "supports-color": "^2.0.0"
304
- }
305
- },
306
- "clean-css": {
307
- "version": "4.2.1",
308
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
309
- "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
310
- "dev": true,
311
- "requires": {
312
- "source-map": "~0.6.0"
313
- }
314
- },
315
- "cli": {
316
- "version": "1.0.1",
317
- "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
318
- "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
319
- "dev": true,
320
- "requires": {
321
- "exit": "0.1.2",
322
- "glob": "^7.1.1"
323
- },
324
- "dependencies": {
325
- "glob": {
326
- "version": "7.1.3",
327
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
328
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
329
- "dev": true,
330
- "requires": {
331
- "fs.realpath": "^1.0.0",
332
- "inflight": "^1.0.4",
333
- "inherits": "2",
334
- "minimatch": "^3.0.4",
335
- "once": "^1.3.0",
336
- "path-is-absolute": "^1.0.0"
337
- }
338
- },
339
- "minimatch": {
340
- "version": "3.0.4",
341
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
342
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
343
- "dev": true,
344
- "requires": {
345
- "brace-expansion": "^1.1.7"
346
- }
347
- }
348
- }
349
- },
350
- "clone": {
351
- "version": "2.1.2",
352
- "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
353
- "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=",
354
- "dev": true
355
- },
356
- "coffeescript": {
357
- "version": "1.10.0",
358
- "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
359
- "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
360
- "dev": true
361
- },
362
- "color-convert": {
363
- "version": "1.9.3",
364
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
365
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
366
- "dev": true,
367
- "requires": {
368
- "color-name": "1.1.3"
369
- }
370
- },
371
- "color-name": {
372
- "version": "1.1.3",
373
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
374
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
375
- "dev": true
376
- },
377
- "colors": {
378
- "version": "1.1.2",
379
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
380
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
381
- "dev": true
382
- },
383
- "combined-stream": {
384
- "version": "1.0.7",
385
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
386
- "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
387
- "dev": true,
388
- "requires": {
389
- "delayed-stream": "~1.0.0"
390
- }
391
- },
392
- "commander": {
393
- "version": "2.17.1",
394
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
395
- "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
396
- "dev": true
397
- },
398
- "compass-options": {
399
- "version": "0.1.1",
400
- "resolved": "https://registry.npmjs.org/compass-options/-/compass-options-0.1.1.tgz",
401
- "integrity": "sha1-U5qD5pp4IvSySLVTUaOfopyo8A0=",
402
- "dev": true,
403
- "requires": {
404
- "iniparser": "^1.0.5"
405
- },
406
- "dependencies": {
407
- "iniparser": {
408
- "version": "1.0.5",
409
- "resolved": "https://registry.npmjs.org/iniparser/-/iniparser-1.0.5.tgz",
410
- "integrity": "sha1-g21r7+bfv87gvM8c+fKsxwJ/eD0=",
411
- "dev": true
412
- }
413
- }
414
- },
415
- "concat-map": {
416
- "version": "0.0.1",
417
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
418
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
419
- "dev": true
420
- },
421
- "console-browserify": {
422
- "version": "1.1.0",
423
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
424
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
425
- "dev": true,
426
- "requires": {
427
- "date-now": "^0.1.4"
428
- }
429
- },
430
- "continuable-cache": {
431
- "version": "0.3.1",
432
- "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
433
- "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
434
- "dev": true
435
- },
436
- "core-util-is": {
437
- "version": "1.0.2",
438
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
439
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
440
- "dev": true
441
- },
442
- "cross-spawn": {
443
- "version": "0.2.9",
444
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz",
445
- "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=",
446
- "dev": true,
447
- "requires": {
448
- "lru-cache": "^2.5.0"
449
- }
450
- },
451
- "currently-unhandled": {
452
- "version": "0.4.1",
453
- "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
454
- "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
455
- "dev": true,
456
- "requires": {
457
- "array-find-index": "^1.0.1"
458
- }
459
- },
460
- "cycle": {
461
- "version": "1.0.3",
462
- "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
463
- "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
464
- "dev": true,
465
- "optional": true
466
- },
467
- "d": {
468
- "version": "1.0.0",
469
- "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz",
470
- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
471
- "dev": true,
472
- "requires": {
473
- "es5-ext": "^0.10.9"
474
- }
475
- },
476
- "dargs": {
477
- "version": "2.1.0",
478
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-2.1.0.tgz",
479
- "integrity": "sha1-RsJ/+rH/sTeO8hJZchNxn+YCvJM=",
480
- "dev": true
481
- },
482
- "dashdash": {
483
- "version": "1.14.1",
484
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
485
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
486
- "dev": true,
487
- "optional": true,
488
- "requires": {
489
- "assert-plus": "^1.0.0"
490
- }
491
- },
492
- "date-now": {
493
- "version": "0.1.4",
494
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
495
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
496
- "dev": true
497
- },
498
- "dateformat": {
499
- "version": "1.0.12",
500
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
501
- "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
502
- "dev": true,
503
- "requires": {
504
- "get-stdin": "^4.0.1",
505
- "meow": "^3.3.0"
506
- }
507
- },
508
- "debug": {
509
- "version": "3.2.6",
510
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
511
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
512
- "dev": true,
513
- "requires": {
514
- "ms": "^2.1.1"
515
- },
516
- "dependencies": {
517
- "ms": {
518
- "version": "2.1.1",
519
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
520
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
521
- "dev": true
522
- }
523
- }
524
- },
525
- "decamelize": {
526
- "version": "1.2.0",
527
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
528
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
529
- "dev": true
530
- },
531
- "delayed-stream": {
532
- "version": "1.0.0",
533
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
534
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
535
- "dev": true
536
- },
537
- "dom-serializer": {
538
- "version": "0.1.0",
539
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
540
- "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
541
- "dev": true,
542
- "requires": {
543
- "domelementtype": "~1.1.1",
544
- "entities": "~1.1.1"
545
- },
546
- "dependencies": {
547
- "domelementtype": {
548
- "version": "1.1.3",
549
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
550
- "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
551
- "dev": true
552
- },
553
- "entities": {
554
- "version": "1.1.2",
555
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
556
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
557
- "dev": true
558
- }
559
- }
560
- },
561
- "domelementtype": {
562
- "version": "1.2.1",
563
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz",
564
- "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==",
565
- "dev": true
566
- },
567
- "domhandler": {
568
- "version": "2.3.0",
569
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
570
- "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
571
- "dev": true,
572
- "requires": {
573
- "domelementtype": "1"
574
- }
575
- },
576
- "domutils": {
577
- "version": "1.5.1",
578
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
579
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
580
- "dev": true,
581
- "requires": {
582
- "dom-serializer": "0",
583
- "domelementtype": "1"
584
- }
585
- },
586
- "duplexer": {
587
- "version": "0.1.1",
588
- "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
589
- "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
590
- "dev": true
591
- },
592
- "ecc-jsbn": {
593
- "version": "0.1.2",
594
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
595
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
596
- "dev": true,
597
- "optional": true,
598
- "requires": {
599
- "jsbn": "~0.1.0",
600
- "safer-buffer": "^2.1.0"
601
- }
602
- },
603
- "encoding": {
604
- "version": "0.1.12",
605
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
606
- "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
607
- "dev": true,
608
- "requires": {
609
- "iconv-lite": "~0.4.13"
610
- }
611
- },
612
- "entities": {
613
- "version": "1.0.0",
614
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
615
- "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
616
- "dev": true
617
- },
618
- "errno": {
619
- "version": "0.1.7",
620
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
621
- "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
622
- "dev": true,
623
- "optional": true,
624
- "requires": {
625
- "prr": "~1.0.1"
626
- }
627
- },
628
- "error": {
629
- "version": "7.0.2",
630
- "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
631
- "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
632
- "dev": true,
633
- "requires": {
634
- "string-template": "~0.2.1",
635
- "xtend": "~4.0.0"
636
- }
637
- },
638
- "error-ex": {
639
- "version": "1.3.2",
640
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
641
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
642
- "dev": true,
643
- "requires": {
644
- "is-arrayish": "^0.2.1"
645
- }
646
- },
647
- "es5-ext": {
648
- "version": "0.10.46",
649
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
650
- "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
651
- "dev": true,
652
- "requires": {
653
- "es6-iterator": "~2.0.3",
654
- "es6-symbol": "~3.1.1",
655
- "next-tick": "1"
656
- }
657
- },
658
- "es6-iterator": {
659
- "version": "2.0.3",
660
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
661
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
662
- "dev": true,
663
- "requires": {
664
- "d": "1",
665
- "es5-ext": "^0.10.35",
666
- "es6-symbol": "^3.1.1"
667
- }
668
- },
669
- "es6-promise": {
670
- "version": "4.2.5",
671
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
672
- "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
673
- "dev": true
674
- },
675
- "es6-promisify": {
676
- "version": "5.0.0",
677
- "resolved": "http://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
678
- "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
679
- "dev": true,
680
- "requires": {
681
- "es6-promise": "^4.0.3"
682
- }
683
- },
684
- "es6-set": {
685
- "version": "0.1.5",
686
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
687
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
688
- "dev": true,
689
- "requires": {
690
- "d": "1",
691
- "es5-ext": "~0.10.14",
692
- "es6-iterator": "~2.0.1",
693
- "es6-symbol": "3.1.1",
694
- "event-emitter": "~0.3.5"
695
- }
696
- },
697
- "es6-symbol": {
698
- "version": "3.1.1",
699
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
700
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
701
- "dev": true,
702
- "requires": {
703
- "d": "1",
704
- "es5-ext": "~0.10.14"
705
- }
706
- },
707
- "escape-string-regexp": {
708
- "version": "1.0.5",
709
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
710
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
711
- "dev": true
712
- },
713
- "esprima": {
714
- "version": "2.7.3",
715
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
716
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
717
- "dev": true
718
- },
719
- "event-emitter": {
720
- "version": "0.3.5",
721
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
722
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
723
- "dev": true,
724
- "requires": {
725
- "d": "1",
726
- "es5-ext": "~0.10.14"
727
- }
728
- },
729
- "eventemitter2": {
730
- "version": "0.4.14",
731
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
732
- "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
733
- "dev": true
734
- },
735
- "exec-sh": {
736
- "version": "0.2.0",
737
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
738
- "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
739
- "dev": true,
740
- "requires": {
741
- "merge": "^1.1.3"
742
- }
743
- },
744
- "exit": {
745
- "version": "0.1.2",
746
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
747
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
748
- "dev": true
749
- },
750
- "extract-zip": {
751
- "version": "1.6.7",
752
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
753
- "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
754
- "dev": true,
755
- "requires": {
756
- "concat-stream": "1.6.2",
757
- "debug": "2.6.9",
758
- "mkdirp": "0.5.1",
759
- "yauzl": "2.4.1"
760
- },
761
- "dependencies": {
762
- "concat-stream": {
763
- "version": "1.6.2",
764
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
765
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
766
- "dev": true,
767
- "requires": {
768
- "buffer-from": "^1.0.0",
769
- "inherits": "^2.0.3",
770
- "readable-stream": "^2.2.2",
771
- "typedarray": "^0.0.6"
772
- }
773
- },
774
- "debug": {
775
- "version": "2.6.9",
776
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
777
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
778
- "dev": true,
779
- "requires": {
780
- "ms": "2.0.0"
781
- }
782
- },
783
- "isarray": {
784
- "version": "1.0.0",
785
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
786
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
787
- "dev": true
788
- },
789
- "process-nextick-args": {
790
- "version": "2.0.0",
791
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
792
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
793
- "dev": true
794
- },
795
- "readable-stream": {
796
- "version": "2.3.6",
797
- "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
798
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
799
- "dev": true,
800
- "requires": {
801
- "core-util-is": "~1.0.0",
802
- "inherits": "~2.0.3",
803
- "isarray": "~1.0.0",
804
- "process-nextick-args": "~2.0.0",
805
- "safe-buffer": "~5.1.1",
806
- "string_decoder": "~1.1.1",
807
- "util-deprecate": "~1.0.1"
808
- }
809
- },
810
- "string_decoder": {
811
- "version": "1.1.1",
812
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
813
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
814
- "dev": true,
815
- "requires": {
816
- "safe-buffer": "~5.1.0"
817
- }
818
- }
819
- }
820
- },
821
- "extsprintf": {
822
- "version": "1.3.0",
823
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
824
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
825
- "dev": true
826
- },
827
- "eyes": {
828
- "version": "0.1.8",
829
- "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
830
- "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
831
- "dev": true,
832
- "optional": true
833
- },
834
- "fast-deep-equal": {
835
- "version": "2.0.1",
836
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
837
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
838
- "dev": true,
839
- "optional": true
840
- },
841
- "fast-json-stable-stringify": {
842
- "version": "2.0.0",
843
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
844
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
845
- "dev": true,
846
- "optional": true
847
- },
848
- "faye-websocket": {
849
- "version": "0.10.0",
850
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
851
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
852
- "dev": true,
853
- "requires": {
854
- "websocket-driver": ">=0.5.1"
855
- }
856
- },
857
- "fd-slicer": {
858
- "version": "1.0.1",
859
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
860
- "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
861
- "dev": true,
862
- "requires": {
863
- "pend": "~1.2.0"
864
- }
865
- },
866
- "figures": {
867
- "version": "1.7.0",
868
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
869
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
870
- "dev": true,
871
- "requires": {
872
- "escape-string-regexp": "^1.0.5",
873
- "object-assign": "^4.1.0"
874
- }
875
- },
876
- "file-sync-cmp": {
877
- "version": "0.1.1",
878
- "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
879
- "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
880
- "dev": true
881
- },
882
- "find-up": {
883
- "version": "1.1.2",
884
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
885
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
886
- "dev": true,
887
- "requires": {
888
- "path-exists": "^2.0.0",
889
- "pinkie-promise": "^2.0.0"
890
- }
891
- },
892
- "find-versions": {
893
- "version": "1.2.1",
894
- "resolved": "http://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
895
- "integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
896
- "dev": true,
897
- "requires": {
898
- "array-uniq": "^1.0.0",
899
- "get-stdin": "^4.0.1",
900
- "meow": "^3.5.0",
901
- "semver-regex": "^1.0.0"
902
- }
903
- },
904
- "findup-sync": {
905
- "version": "0.3.0",
906
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
907
- "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
908
- "dev": true,
909
- "requires": {
910
- "glob": "~5.0.0"
911
- },
912
- "dependencies": {
913
- "glob": {
914
- "version": "5.0.15",
915
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
916
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
917
- "dev": true,
918
- "requires": {
919
- "inflight": "^1.0.4",
920
- "inherits": "2",
921
- "minimatch": "2 || 3",
922
- "once": "^1.3.0",
923
- "path-is-absolute": "^1.0.0"
924
- }
925
- },
926
- "minimatch": {
927
- "version": "3.0.4",
928
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
929
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
930
- "dev": true,
931
- "requires": {
932
- "brace-expansion": "^1.1.7"
933
- }
934
- }
935
- }
936
- },
937
- "forever-agent": {
938
- "version": "0.6.1",
939
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
940
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
941
- "dev": true,
942
- "optional": true
943
- },
944
- "form-data": {
945
- "version": "2.3.3",
946
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
947
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
948
- "dev": true,
949
- "optional": true,
950
- "requires": {
951
- "asynckit": "^0.4.0",
952
- "combined-stream": "^1.0.6",
953
- "mime-types": "^2.1.12"
954
- }
955
- },
956
- "fs-extra": {
957
- "version": "0.30.0",
958
- "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
959
- "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
960
- "dev": true,
961
- "requires": {
962
- "graceful-fs": "^4.1.2",
963
- "jsonfile": "^2.1.0",
964
- "klaw": "^1.0.0",
965
- "path-is-absolute": "^1.0.0",
966
- "rimraf": "^2.2.8"
967
- },
968
- "dependencies": {
969
- "graceful-fs": {
970
- "version": "4.1.15",
971
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
972
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
973
- "dev": true
974
- }
975
- }
976
- },
977
- "fs.realpath": {
978
- "version": "1.0.0",
979
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
980
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
981
- "dev": true
982
- },
983
- "gaze": {
984
- "version": "1.1.3",
985
- "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
986
- "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
987
- "dev": true,
988
- "requires": {
989
- "globule": "^1.0.0"
990
- }
991
- },
992
- "get-stdin": {
993
- "version": "4.0.1",
994
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
995
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
996
- "dev": true
997
- },
998
- "getobject": {
999
- "version": "0.1.0",
1000
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
1001
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
1002
- "dev": true
1003
- },
1004
- "getpass": {
1005
- "version": "0.1.7",
1006
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
1007
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
1008
- "dev": true,
1009
- "optional": true,
1010
- "requires": {
1011
- "assert-plus": "^1.0.0"
1012
- }
1013
- },
1014
- "gettext-parser": {
1015
- "version": "2.0.0",
1016
- "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-2.0.0.tgz",
1017
- "integrity": "sha512-FDs/7XjNw58ToQwJFO7avZZbPecSYgw8PBYhd0An+4JtZSrSzKhEvTsVV2uqdO7VziWTOGSgLGD5YRPdsCjF7Q==",
1018
- "dev": true,
1019
- "requires": {
1020
- "encoding": "^0.1.12",
1021
- "safe-buffer": "^5.1.2"
1022
- },
1023
- "dependencies": {
1024
- "safe-buffer": {
1025
- "version": "5.1.2",
1026
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1027
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1028
- "dev": true
1029
- }
1030
- }
1031
- },
1032
- "glob": {
1033
- "version": "3.1.21",
1034
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
1035
- "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
1036
- "dev": true,
1037
- "requires": {
1038
- "graceful-fs": "~1.2.0",
1039
- "inherits": "1",
1040
- "minimatch": "~0.2.11"
1041
- },
1042
- "dependencies": {
1043
- "inherits": {
1044
- "version": "1.0.2",
1045
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
1046
- "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
1047
- "dev": true
1048
- },
1049
- "minimatch": {
1050
- "version": "0.2.14",
1051
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
1052
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1053
- "dev": true,
1054
- "requires": {
1055
- "lru-cache": "2",
1056
- "sigmund": "~1.0.0"
1057
- }
1058
- }
1059
- }
1060
- },
1061
- "globule": {
1062
- "version": "1.2.1",
1063
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
1064
- "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
1065
- "dev": true,
1066
- "requires": {
1067
- "glob": "~7.1.1",
1068
- "lodash": "~4.17.10",
1069
- "minimatch": "~3.0.2"
1070
- },
1071
- "dependencies": {
1072
- "glob": {
1073
- "version": "7.1.3",
1074
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
1075
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
1076
- "dev": true,
1077
- "requires": {
1078
- "fs.realpath": "^1.0.0",
1079
- "inflight": "^1.0.4",
1080
- "inherits": "2",
1081
- "minimatch": "^3.0.4",
1082
- "once": "^1.3.0",
1083
- "path-is-absolute": "^1.0.0"
1084
- }
1085
- },
1086
- "minimatch": {
1087
- "version": "3.0.4",
1088
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1089
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1090
- "dev": true,
1091
- "requires": {
1092
- "brace-expansion": "^1.1.7"
1093
- }
1094
- }
1095
- }
1096
- },
1097
- "graceful-fs": {
1098
- "version": "1.2.3",
1099
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
1100
- "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
1101
- "dev": true
1102
- },
1103
- "grunt": {
1104
- "version": "1.0.3",
1105
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
1106
- "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
1107
- "dev": true,
1108
- "requires": {
1109
- "coffeescript": "~1.10.0",
1110
- "dateformat": "~1.0.12",
1111
- "eventemitter2": "~0.4.13",
1112
- "exit": "~0.1.1",
1113
- "findup-sync": "~0.3.0",
1114
- "glob": "~7.0.0",
1115
- "grunt-cli": "~1.2.0",
1116
- "grunt-known-options": "~1.1.0",
1117
- "grunt-legacy-log": "~2.0.0",
1118
- "grunt-legacy-util": "~1.1.1",
1119
- "iconv-lite": "~0.4.13",
1120
- "js-yaml": "~3.5.2",
1121
- "minimatch": "~3.0.2",
1122
- "mkdirp": "~0.5.1",
1123
- "nopt": "~3.0.6",
1124
- "path-is-absolute": "~1.0.0",
1125
- "rimraf": "~2.6.2"
1126
- },
1127
- "dependencies": {
1128
- "glob": {
1129
- "version": "7.0.6",
1130
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
1131
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
1132
- "dev": true,
1133
- "requires": {
1134
- "fs.realpath": "^1.0.0",
1135
- "inflight": "^1.0.4",
1136
- "inherits": "2",
1137
- "minimatch": "^3.0.2",
1138
- "once": "^1.3.0",
1139
- "path-is-absolute": "^1.0.0"
1140
- }
1141
- },
1142
- "grunt-cli": {
1143
- "version": "1.2.0",
1144
- "resolved": "http://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
1145
- "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
1146
- "dev": true,
1147
- "requires": {
1148
- "findup-sync": "~0.3.0",
1149
- "grunt-known-options": "~1.1.0",
1150
- "nopt": "~3.0.6",
1151
- "resolve": "~1.1.0"
1152
- }
1153
- },
1154
- "minimatch": {
1155
- "version": "3.0.4",
1156
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1157
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1158
- "dev": true,
1159
- "requires": {
1160
- "brace-expansion": "^1.1.7"
1161
- }
1162
- },
1163
- "nopt": {
1164
- "version": "3.0.6",
1165
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
1166
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
1167
- "dev": true,
1168
- "requires": {
1169
- "abbrev": "1"
1170
- }
1171
- },
1172
- "rimraf": {
1173
- "version": "2.6.2",
1174
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
1175
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
1176
- "dev": true,
1177
- "requires": {
1178
- "glob": "^7.0.5"
1179
- }
1180
- }
1181
- }
1182
- },
1183
- "grunt-checktextdomain": {
1184
- "version": "1.0.1",
1185
- "resolved": "https://registry.npmjs.org/grunt-checktextdomain/-/grunt-checktextdomain-1.0.1.tgz",
1186
- "integrity": "sha1-slTQHh3pEwBdTbHFMD2QI7mD4Zs=",
1187
- "dev": true,
1188
- "requires": {
1189
- "chalk": "~0.2.1",
1190
- "text-table": "~0.2.0"
1191
- },
1192
- "dependencies": {
1193
- "ansi-styles": {
1194
- "version": "0.2.0",
1195
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz",
1196
- "integrity": "sha1-NZq0sV3NZLptdHNLcsNjYKmvLBk=",
1197
- "dev": true
1198
- },
1199
- "chalk": {
1200
- "version": "0.2.1",
1201
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz",
1202
- "integrity": "sha1-dhPhV1FFshOGSD9/SFql/6jL0Qw=",
1203
- "dev": true,
1204
- "requires": {
1205
- "ansi-styles": "~0.2.0",
1206
- "has-color": "~0.1.0"
1207
- }
1208
- }
1209
- }
1210
- },
1211
- "grunt-contrib-compass": {
1212
- "version": "1.1.1",
1213
- "resolved": "https://registry.npmjs.org/grunt-contrib-compass/-/grunt-contrib-compass-1.1.1.tgz",
1214
- "integrity": "sha1-PCXSCeAYglqsn6gjFbvm38HGNtw=",
1215
- "dev": true,
1216
- "requires": {
1217
- "async": "^1.5.2",
1218
- "bin-version-check": "^2.0.0",
1219
- "dargs": "^2.0.3",
1220
- "onetime": "^1.0.0",
1221
- "tmp": "0.0.28",
1222
- "which": "^1.0.9"
1223
- },
1224
- "dependencies": {
1225
- "async": {
1226
- "version": "1.5.2",
1227
- "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
1228
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
1229
- "dev": true
1230
- }
1231
- }
1232
- },
1233
- "grunt-contrib-concat": {
1234
- "version": "1.0.1",
1235
- "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
1236
- "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=",
1237
- "dev": true,
1238
- "requires": {
1239
- "chalk": "^1.0.0",
1240
- "source-map": "^0.5.3"
1241
- },
1242
- "dependencies": {
1243
- "ansi-regex": {
1244
- "version": "2.1.1",
1245
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1246
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1247
- "dev": true
1248
- },
1249
- "ansi-styles": {
1250
- "version": "2.2.1",
1251
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1252
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1253
- "dev": true
1254
- },
1255
- "chalk": {
1256
- "version": "1.1.3",
1257
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1258
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1259
- "dev": true,
1260
- "requires": {
1261
- "ansi-styles": "^2.2.1",
1262
- "escape-string-regexp": "^1.0.2",
1263
- "has-ansi": "^2.0.0",
1264
- "strip-ansi": "^3.0.0",
1265
- "supports-color": "^2.0.0"
1266
- }
1267
- },
1268
- "has-ansi": {
1269
- "version": "2.0.0",
1270
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1271
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1272
- "dev": true,
1273
- "requires": {
1274
- "ansi-regex": "^2.0.0"
1275
- }
1276
- },
1277
- "source-map": {
1278
- "version": "0.5.7",
1279
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1280
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1281
- "dev": true
1282
- },
1283
- "strip-ansi": {
1284
- "version": "3.0.1",
1285
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1286
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1287
- "dev": true,
1288
- "requires": {
1289
- "ansi-regex": "^2.0.0"
1290
- }
1291
- },
1292
- "supports-color": {
1293
- "version": "2.0.0",
1294
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1295
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1296
- "dev": true
1297
- }
1298
- }
1299
- },
1300
- "grunt-contrib-copy": {
1301
- "version": "1.0.0",
1302
- "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
1303
- "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
1304
- "dev": true,
1305
- "requires": {
1306
- "chalk": "^1.1.1",
1307
- "file-sync-cmp": "^0.1.0"
1308
- },
1309
- "dependencies": {
1310
- "ansi-regex": {
1311
- "version": "2.1.1",
1312
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1313
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1314
- "dev": true
1315
- },
1316
- "ansi-styles": {
1317
- "version": "2.2.1",
1318
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1319
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1320
- "dev": true
1321
- },
1322
- "chalk": {
1323
- "version": "1.1.3",
1324
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1325
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1326
- "dev": true,
1327
- "requires": {
1328
- "ansi-styles": "^2.2.1",
1329
- "escape-string-regexp": "^1.0.2",
1330
- "has-ansi": "^2.0.0",
1331
- "strip-ansi": "^3.0.0",
1332
- "supports-color": "^2.0.0"
1333
- }
1334
- },
1335
- "has-ansi": {
1336
- "version": "2.0.0",
1337
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1338
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1339
- "dev": true,
1340
- "requires": {
1341
- "ansi-regex": "^2.0.0"
1342
- }
1343
- },
1344
- "strip-ansi": {
1345
- "version": "3.0.1",
1346
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1347
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1348
- "dev": true,
1349
- "requires": {
1350
- "ansi-regex": "^2.0.0"
1351
- }
1352
- },
1353
- "supports-color": {
1354
- "version": "2.0.0",
1355
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1356
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1357
- "dev": true
1358
- }
1359
- }
1360
- },
1361
- "grunt-contrib-cssmin": {
1362
- "version": "3.0.0",
1363
- "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-3.0.0.tgz",
1364
- "integrity": "sha512-eXpooYmVGKMs/xV7DzTLgJFPVOfMuawPD3x0JwhlH0mumq2NtH3xsxaHxp1Y3NKxp0j0tRhFS6kSBRsz6TuTGg==",
1365
- "dev": true,
1366
- "requires": {
1367
- "chalk": "^2.4.1",
1368
- "clean-css": "~4.2.1",
1369
- "maxmin": "^2.1.0"
1370
- },
1371
- "dependencies": {
1372
- "ansi-styles": {
1373
- "version": "3.2.1",
1374
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1375
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1376
- "dev": true,
1377
- "requires": {
1378
- "color-convert": "^1.9.0"
1379
- }
1380
- },
1381
- "chalk": {
1382
- "version": "2.4.1",
1383
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1384
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1385
- "dev": true,
1386
- "requires": {
1387
- "ansi-styles": "^3.2.1",
1388
- "escape-string-regexp": "^1.0.5",
1389
- "supports-color": "^5.3.0"
1390
- }
1391
- },
1392
- "supports-color": {
1393
- "version": "5.5.0",
1394
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1395
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1396
- "dev": true,
1397
- "requires": {
1398
- "has-flag": "^3.0.0"
1399
- }
1400
- }
1401
- }
1402
- },
1403
- "grunt-contrib-jshint": {
1404
- "version": "2.0.0",
1405
- "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-2.0.0.tgz",
1406
- "integrity": "sha512-4qR411I1bhvVrPkKBzCUcrWkTEtBuWioXi9ABWRXHoplRScg03jiMqLDpzS4pDhVsLOTx5F9l+0cnMc+Gd2MWg==",
1407
- "dev": true,
1408
- "requires": {
1409
- "chalk": "^2.4.1",
1410
- "hooker": "^0.2.3",
1411
- "jshint": "~2.9.6"
1412
- },
1413
- "dependencies": {
1414
- "ansi-styles": {
1415
- "version": "3.2.1",
1416
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1417
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1418
- "dev": true,
1419
- "requires": {
1420
- "color-convert": "^1.9.0"
1421
- }
1422
- },
1423
- "chalk": {
1424
- "version": "2.4.1",
1425
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1426
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1427
- "dev": true,
1428
- "requires": {
1429
- "ansi-styles": "^3.2.1",
1430
- "escape-string-regexp": "^1.0.5",
1431
- "supports-color": "^5.3.0"
1432
- }
1433
- },
1434
- "supports-color": {
1435
- "version": "5.5.0",
1436
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1437
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1438
- "dev": true,
1439
- "requires": {
1440
- "has-flag": "^3.0.0"
1441
- }
1442
- }
1443
- }
1444
- },
1445
- "grunt-contrib-less": {
1446
- "version": "2.0.0",
1447
- "resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-2.0.0.tgz",
1448
- "integrity": "sha512-nsaODoEMjVn61OuqPaFeFQpb4Qd/EbfxQDeYnh2oONXm8L5Gnuchtv59kl0V3hjiFdOkZlPILDc3ZrkoZI0PNw==",
1449
- "dev": true,
1450
- "requires": {
1451
- "async": "^2.0.0",
1452
- "chalk": "^1.0.0",
1453
- "less": "^3.0.4",
1454
- "lodash": "^4.17.10"
1455
- },
1456
- "dependencies": {
1457
- "ansi-regex": {
1458
- "version": "2.1.1",
1459
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1460
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1461
- "dev": true
1462
- },
1463
- "ansi-styles": {
1464
- "version": "2.2.1",
1465
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1466
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1467
- "dev": true
1468
- },
1469
- "async": {
1470
- "version": "2.6.1",
1471
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
1472
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
1473
- "dev": true,
1474
- "requires": {
1475
- "lodash": "^4.17.10"
1476
- }
1477
- },
1478
- "chalk": {
1479
- "version": "1.1.3",
1480
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1481
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1482
- "dev": true,
1483
- "requires": {
1484
- "ansi-styles": "^2.2.1",
1485
- "escape-string-regexp": "^1.0.2",
1486
- "has-ansi": "^2.0.0",
1487
- "strip-ansi": "^3.0.0",
1488
- "supports-color": "^2.0.0"
1489
- }
1490
- },
1491
- "graceful-fs": {
1492
- "version": "4.1.15",
1493
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
1494
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
1495
- "dev": true,
1496
- "optional": true
1497
- },
1498
- "has-ansi": {
1499
- "version": "2.0.0",
1500
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1501
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1502
- "dev": true,
1503
- "requires": {
1504
- "ansi-regex": "^2.0.0"
1505
- }
1506
- },
1507
- "less": {
1508
- "version": "3.8.1",
1509
- "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz",
1510
- "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==",
1511
- "dev": true,
1512
- "requires": {
1513
- "clone": "^2.1.2",
1514
- "errno": "^0.1.1",
1515
- "graceful-fs": "^4.1.2",
1516
- "image-size": "~0.5.0",
1517
- "mime": "^1.4.1",
1518
- "mkdirp": "^0.5.0",
1519
- "promise": "^7.1.1",
1520
- "request": "^2.83.0",
1521
- "source-map": "~0.6.0"
1522
- }
1523
- },
1524
- "mime": {
1525
- "version": "1.6.0",
1526
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1527
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1528
- "dev": true,
1529
- "optional": true
1530
- },
1531
- "strip-ansi": {
1532
- "version": "3.0.1",
1533
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1534
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1535
- "dev": true,
1536
- "requires": {
1537
- "ansi-regex": "^2.0.0"
1538
- }
1539
- },
1540
- "supports-color": {
1541
- "version": "2.0.0",
1542
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1543
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1544
- "dev": true
1545
- }
1546
- }
1547
- },
1548
- "grunt-contrib-qunit": {
1549
- "version": "3.0.1",
1550
- "resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-3.0.1.tgz",
1551
- "integrity": "sha512-s994+ipKwc+oUUIWaGIw1soyID4pExSGMd/cHQN5h0p8KbIjR1Le3ZC3giSDDKXtZFE0i+Obf0uIjNvjftX2Cw==",
1552
- "dev": true,
1553
- "requires": {
1554
- "eventemitter2": "^5.0.1",
1555
- "p-each-series": "^1.0.0",
1556
- "puppeteer": "1.7.0"
1557
- },
1558
- "dependencies": {
1559
- "eventemitter2": {
1560
- "version": "5.0.1",
1561
- "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz",
1562
- "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=",
1563
- "dev": true
1564
- }
1565
- }
1566
- },
1567
- "grunt-contrib-sass": {
1568
- "version": "1.0.0",
1569
- "resolved": "https://registry.npmjs.org/grunt-contrib-sass/-/grunt-contrib-sass-1.0.0.tgz",
1570
- "integrity": "sha1-gGg4JRy8DhqU1k1RXN00z2dNcBs=",
1571
- "dev": true,
1572
- "requires": {
1573
- "async": "^0.9.0",
1574
- "chalk": "^1.0.0",
1575
- "cross-spawn": "^0.2.3",
1576
- "dargs": "^4.0.0",
1577
- "which": "^1.0.5"
1578
- },
1579
- "dependencies": {
1580
- "dargs": {
1581
- "version": "4.1.0",
1582
- "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz",
1583
- "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=",
1584
- "dev": true,
1585
- "requires": {
1586
- "number-is-nan": "^1.0.0"
1587
- }
1588
- }
1589
- }
1590
- },
1591
- "grunt-contrib-uglify": {
1592
- "version": "4.0.0",
1593
- "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-4.0.0.tgz",
1594
- "integrity": "sha512-vy3Vop2KDqdiwcGOGAjyKvjHFrRD/YK4KPQWR3Yt6OdYlgFw1z7HCuk66+IJ9s7oJmp9uRQXuuSHyawKRAgiMw==",
1595
- "dev": true,
1596
- "requires": {
1597
- "chalk": "^2.4.1",
1598
- "maxmin": "^2.1.0",
1599
- "uglify-js": "~3.4.8",
1600
- "uri-path": "^1.0.0"
1601
- },
1602
- "dependencies": {
1603
- "ansi-styles": {
1604
- "version": "3.2.1",
1605
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1606
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1607
- "dev": true,
1608
- "requires": {
1609
- "color-convert": "^1.9.0"
1610
- }
1611
- },
1612
- "chalk": {
1613
- "version": "2.4.1",
1614
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1615
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1616
- "dev": true,
1617
- "requires": {
1618
- "ansi-styles": "^3.2.1",
1619
- "escape-string-regexp": "^1.0.5",
1620
- "supports-color": "^5.3.0"
1621
- }
1622
- },
1623
- "supports-color": {
1624
- "version": "5.5.0",
1625
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1626
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1627
- "dev": true,
1628
- "requires": {
1629
- "has-flag": "^3.0.0"
1630
- }
1631
- }
1632
- }
1633
- },
1634
- "grunt-contrib-watch": {
1635
- "version": "1.1.0",
1636
- "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
1637
- "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
1638
- "dev": true,
1639
- "requires": {
1640
- "async": "^2.6.0",
1641
- "gaze": "^1.1.0",
1642
- "lodash": "^4.17.10",
1643
- "tiny-lr": "^1.1.1"
1644
- },
1645
- "dependencies": {
1646
- "async": {
1647
- "version": "2.6.1",
1648
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
1649
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
1650
- "dev": true,
1651
- "requires": {
1652
- "lodash": "^4.17.10"
1653
- }
1654
- }
1655
- }
1656
- },
1657
- "grunt-gh-pages": {
1658
- "version": "3.1.0",
1659
- "resolved": "https://registry.npmjs.org/grunt-gh-pages/-/grunt-gh-pages-3.1.0.tgz",
1660
- "integrity": "sha512-JnKwDzA3TGskIo0aLSbaT09D4S0nqXFMokbC0YEWm/twTcrCXLfnE8P/kMDoftd6/MXygrJZF7eTiqqsGxofYw==",
1661
- "dev": true,
1662
- "requires": {
1663
- "async": "2.0.1",
1664
- "fs-extra": "^0.30.0",
1665
- "graceful-fs": "4.1.5",
1666
- "q": "0.9.3",
1667
- "q-io": "^1.13.6",
1668
- "url-safe": "^2.0.0"
1669
- },
1670
- "dependencies": {
1671
- "async": {
1672
- "version": "2.0.1",
1673
- "resolved": "http://registry.npmjs.org/async/-/async-2.0.1.tgz",
1674
- "integrity": "sha1-twnMAoCpw28J9FNr6CPIOKkEniU=",
1675
- "dev": true,
1676
- "requires": {
1677
- "lodash": "^4.8.0"
1678
- }
1679
- },
1680
- "graceful-fs": {
1681
- "version": "4.1.5",
1682
- "resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.5.tgz",
1683
- "integrity": "sha1-9HRejK7V4N0u8hu14tIpoy6Ak8A=",
1684
- "dev": true
1685
- }
1686
- }
1687
- },
1688
- "grunt-known-options": {
1689
- "version": "1.1.1",
1690
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
1691
- "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
1692
- "dev": true
1693
- },
1694
- "grunt-legacy-log": {
1695
- "version": "2.0.0",
1696
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
1697
- "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
1698
- "dev": true,
1699
- "requires": {
1700
- "colors": "~1.1.2",
1701
- "grunt-legacy-log-utils": "~2.0.0",
1702
- "hooker": "~0.2.3",
1703
- "lodash": "~4.17.5"
1704
- }
1705
- },
1706
- "grunt-legacy-log-utils": {
1707
- "version": "2.0.1",
1708
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
1709
- "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
1710
- "dev": true,
1711
- "requires": {
1712
- "chalk": "~2.4.1",
1713
- "lodash": "~4.17.10"
1714
- },
1715
- "dependencies": {
1716
- "ansi-styles": {
1717
- "version": "3.2.1",
1718
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1719
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1720
- "dev": true,
1721
- "requires": {
1722
- "color-convert": "^1.9.0"
1723
- }
1724
- },
1725
- "chalk": {
1726
- "version": "2.4.1",
1727
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1728
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1729
- "dev": true,
1730
- "requires": {
1731
- "ansi-styles": "^3.2.1",
1732
- "escape-string-regexp": "^1.0.5",
1733
- "supports-color": "^5.3.0"
1734
- }
1735
- },
1736
- "supports-color": {
1737
- "version": "5.5.0",
1738
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1739
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1740
- "dev": true,
1741
- "requires": {
1742
- "has-flag": "^3.0.0"
1743
- }
1744
- }
1745
- }
1746
- },
1747
- "grunt-legacy-util": {
1748
- "version": "1.1.1",
1749
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
1750
- "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
1751
- "dev": true,
1752
- "requires": {
1753
- "async": "~1.5.2",
1754
- "exit": "~0.1.1",
1755
- "getobject": "~0.1.0",
1756
- "hooker": "~0.2.3",
1757
- "lodash": "~4.17.10",
1758
- "underscore.string": "~3.3.4",
1759
- "which": "~1.3.0"
1760
- },
1761
- "dependencies": {
1762
- "async": {
1763
- "version": "1.5.2",
1764
- "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
1765
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
1766
- "dev": true
1767
- }
1768
- }
1769
- },
1770
- "grunt-phplint": {
1771
- "version": "0.1.0",
1772
- "resolved": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.1.0.tgz",
1773
- "integrity": "sha1-bb4uauxTqiKc+sCtmnyZ4kGEhI0=",
1774
- "dev": true,
1775
- "requires": {
1776
- "cache-swap": "~0.3.0",
1777
- "grunt": "~0.4.1"
1778
- },
1779
- "dependencies": {
1780
- "argparse": {
1781
- "version": "0.1.16",
1782
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
1783
- "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
1784
- "dev": true,
1785
- "requires": {
1786
- "underscore": "~1.7.0",
1787
- "underscore.string": "~2.4.0"
1788
- },
1789
- "dependencies": {
1790
- "underscore.string": {
1791
- "version": "2.4.0",
1792
- "resolved": "http://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
1793
- "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
1794
- "dev": true
1795
- }
1796
- }
1797
- },
1798
- "async": {
1799
- "version": "0.1.22",
1800
- "resolved": "http://registry.npmjs.org/async/-/async-0.1.22.tgz",
1801
- "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
1802
- "dev": true
1803
- },
1804
- "coffee-script": {
1805
- "version": "1.3.3",
1806
- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
1807
- "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
1808
- "dev": true
1809
- },
1810
- "colors": {
1811
- "version": "0.6.2",
1812
- "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
1813
- "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
1814
- "dev": true
1815
- },
1816
- "dateformat": {
1817
- "version": "1.0.2-1.2.3",
1818
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
1819
- "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
1820
- "dev": true
1821
- },
1822
- "esprima": {
1823
- "version": "1.0.4",
1824
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
1825
- "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
1826
- "dev": true
1827
- },
1828
- "findup-sync": {
1829
- "version": "0.1.3",
1830
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
1831
- "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
1832
- "dev": true,
1833
- "requires": {
1834
- "glob": "~3.2.9",
1835
- "lodash": "~2.4.1"
1836
- },
1837
- "dependencies": {
1838
- "glob": {
1839
- "version": "3.2.11",
1840
- "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
1841
- "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
1842
- "dev": true,
1843
- "requires": {
1844
- "inherits": "2",
1845
- "minimatch": "0.3"
1846
- }
1847
- },
1848
- "lodash": {
1849
- "version": "2.4.2",
1850
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1851
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1852
- "dev": true
1853
- },
1854
- "minimatch": {
1855
- "version": "0.3.0",
1856
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
1857
- "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
1858
- "dev": true,
1859
- "requires": {
1860
- "lru-cache": "2",
1861
- "sigmund": "~1.0.0"
1862
- }
1863
- }
1864
- }
1865
- },
1866
- "grunt": {
1867
- "version": "0.4.5",
1868
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
1869
- "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
1870
- "dev": true,
1871
- "requires": {
1872
- "async": "~0.1.22",
1873
- "coffee-script": "~1.3.3",
1874
- "colors": "~0.6.2",
1875
- "dateformat": "1.0.2-1.2.3",
1876
- "eventemitter2": "~0.4.13",
1877
- "exit": "~0.1.1",
1878
- "findup-sync": "~0.1.2",
1879
- "getobject": "~0.1.0",
1880
- "glob": "~3.1.21",
1881
- "grunt-legacy-log": "~0.1.0",
1882
- "grunt-legacy-util": "~0.2.0",
1883
- "hooker": "~0.2.3",
1884
- "iconv-lite": "~0.2.11",
1885
- "js-yaml": "~2.0.5",
1886
- "lodash": "~0.9.2",
1887
- "minimatch": "~0.2.12",
1888
- "nopt": "~1.0.10",
1889
- "rimraf": "~2.2.8",
1890
- "underscore.string": "~2.2.1",
1891
- "which": "~1.0.5"
1892
- },
1893
- "dependencies": {
1894
- "minimatch": {
1895
- "version": "0.2.14",
1896
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
1897
- "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
1898
- "dev": true,
1899
- "requires": {
1900
- "lru-cache": "2",
1901
- "sigmund": "~1.0.0"
1902
- }
1903
- }
1904
- }
1905
- },
1906
- "grunt-legacy-log": {
1907
- "version": "0.1.3",
1908
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
1909
- "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
1910
- "dev": true,
1911
- "requires": {
1912
- "colors": "~0.6.2",
1913
- "grunt-legacy-log-utils": "~0.1.1",
1914
- "hooker": "~0.2.3",
1915
- "lodash": "~2.4.1",
1916
- "underscore.string": "~2.3.3"
1917
- },
1918
- "dependencies": {
1919
- "lodash": {
1920
- "version": "2.4.2",
1921
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1922
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1923
- "dev": true
1924
- },
1925
- "underscore.string": {
1926
- "version": "2.3.3",
1927
- "resolved": "http://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
1928
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
1929
- "dev": true
1930
- }
1931
- }
1932
- },
1933
- "grunt-legacy-log-utils": {
1934
- "version": "0.1.1",
1935
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
1936
- "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
1937
- "dev": true,
1938
- "requires": {
1939
- "colors": "~0.6.2",
1940
- "lodash": "~2.4.1",
1941
- "underscore.string": "~2.3.3"
1942
- },
1943
- "dependencies": {
1944
- "lodash": {
1945
- "version": "2.4.2",
1946
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
1947
- "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
1948
- "dev": true
1949
- },
1950
- "underscore.string": {
1951
- "version": "2.3.3",
1952
- "resolved": "http://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
1953
- "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
1954
- "dev": true
1955
- }
1956
- }
1957
- },
1958
- "grunt-legacy-util": {
1959
- "version": "0.2.0",
1960
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
1961
- "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
1962
- "dev": true,
1963
- "requires": {
1964
- "async": "~0.1.22",
1965
- "exit": "~0.1.1",
1966
- "getobject": "~0.1.0",
1967
- "hooker": "~0.2.3",
1968
- "lodash": "~0.9.2",
1969
- "underscore.string": "~2.2.1",
1970
- "which": "~1.0.5"
1971
- }
1972
- },
1973
- "iconv-lite": {
1974
- "version": "0.2.11",
1975
- "resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
1976
- "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
1977
- "dev": true
1978
- },
1979
- "js-yaml": {
1980
- "version": "2.0.5",
1981
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
1982
- "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
1983
- "dev": true,
1984
- "requires": {
1985
- "argparse": "~ 0.1.11",
1986
- "esprima": "~ 1.0.2"
1987
- }
1988
- },
1989
- "lodash": {
1990
- "version": "0.9.2",
1991
- "resolved": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
1992
- "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
1993
- "dev": true
1994
- },
1995
- "nopt": {
1996
- "version": "1.0.10",
1997
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
1998
- "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
1999
- "dev": true,
2000
- "requires": {
2001
- "abbrev": "1"
2002
- }
2003
- },
2004
- "underscore": {
2005
- "version": "1.7.0",
2006
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
2007
- "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
2008
- "dev": true
2009
- },
2010
- "underscore.string": {
2011
- "version": "2.2.1",
2012
- "resolved": "http://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
2013
- "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
2014
- "dev": true
2015
- },
2016
- "which": {
2017
- "version": "1.0.9",
2018
- "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
2019
- "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
2020
- "dev": true
2021
- }
2022
- }
2023
- },
2024
- "grunt-potomo": {
2025
- "version": "3.5.0",
2026
- "resolved": "https://registry.npmjs.org/grunt-potomo/-/grunt-potomo-3.5.0.tgz",
2027
- "integrity": "sha1-WtjG9+djrVtRg55cbTI1gGLHN5U=",
2028
- "dev": true,
2029
- "requires": {
2030
- "shelljs": "~0.7.5"
2031
- },
2032
- "dependencies": {
2033
- "glob": {
2034
- "version": "7.1.3",
2035
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
2036
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
2037
- "dev": true,
2038
- "requires": {
2039
- "fs.realpath": "^1.0.0",
2040
- "inflight": "^1.0.4",
2041
- "inherits": "2",
2042
- "minimatch": "^3.0.4",
2043
- "once": "^1.3.0",
2044
- "path-is-absolute": "^1.0.0"
2045
- }
2046
- },
2047
- "minimatch": {
2048
- "version": "3.0.4",
2049
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2050
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2051
- "dev": true,
2052
- "requires": {
2053
- "brace-expansion": "^1.1.7"
2054
- }
2055
- },
2056
- "shelljs": {
2057
- "version": "0.7.8",
2058
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
2059
- "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
2060
- "dev": true,
2061
- "requires": {
2062
- "glob": "^7.0.0",
2063
- "interpret": "^1.0.0",
2064
- "rechoir": "^0.6.2"
2065
- }
2066
- }
2067
- }
2068
- },
2069
- "grunt-scss-lint": {
2070
- "version": "0.5.0",
2071
- "resolved": "https://registry.npmjs.org/grunt-scss-lint/-/grunt-scss-lint-0.5.0.tgz",
2072
- "integrity": "sha1-m5gj+AdPM0ZQ/4MfVRoez1sIohU=",
2073
- "dev": true,
2074
- "requires": {
2075
- "chalk": "^1.1.3",
2076
- "lodash": "^4.12.0",
2077
- "which": "^1.2.8",
2078
- "xmlbuilder": "^8.2.2"
2079
- },
2080
- "dependencies": {
2081
- "ansi-regex": {
2082
- "version": "2.1.1",
2083
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2084
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2085
- "dev": true
2086
- },
2087
- "ansi-styles": {
2088
- "version": "2.2.1",
2089
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2090
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2091
- "dev": true
2092
- },
2093
- "chalk": {
2094
- "version": "1.1.3",
2095
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2096
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2097
- "dev": true,
2098
- "requires": {
2099
- "ansi-styles": "^2.2.1",
2100
- "escape-string-regexp": "^1.0.2",
2101
- "has-ansi": "^2.0.0",
2102
- "strip-ansi": "^3.0.0",
2103
- "supports-color": "^2.0.0"
2104
- }
2105
- },
2106
- "has-ansi": {
2107
- "version": "2.0.0",
2108
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2109
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2110
- "dev": true,
2111
- "requires": {
2112
- "ansi-regex": "^2.0.0"
2113
- }
2114
- },
2115
- "lodash": {
2116
- "version": "4.17.11",
2117
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2118
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
2119
- "dev": true
2120
- },
2121
- "strip-ansi": {
2122
- "version": "3.0.1",
2123
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2124
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2125
- "dev": true,
2126
- "requires": {
2127
- "ansi-regex": "^2.0.0"
2128
- }
2129
- },
2130
- "supports-color": {
2131
- "version": "2.0.0",
2132
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2133
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2134
- "dev": true
2135
- }
2136
- }
2137
- },
2138
- "grunt-shell": {
2139
- "version": "2.1.0",
2140
- "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-2.1.0.tgz",
2141
- "integrity": "sha1-Q595FZ7RHmSmUaacyKPQK+v17MI=",
2142
- "dev": true,
2143
- "requires": {
2144
- "chalk": "^1.0.0",
2145
- "npm-run-path": "^2.0.0"
2146
- },
2147
- "dependencies": {
2148
- "ansi-regex": {
2149
- "version": "2.1.1",
2150
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2151
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2152
- "dev": true
2153
- },
2154
- "ansi-styles": {
2155
- "version": "2.2.1",
2156
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2157
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2158
- "dev": true
2159
- },
2160
- "chalk": {
2161
- "version": "1.1.3",
2162
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2163
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2164
- "dev": true,
2165
- "requires": {
2166
- "ansi-styles": "^2.2.1",
2167
- "escape-string-regexp": "^1.0.2",
2168
- "has-ansi": "^2.0.0",
2169
- "strip-ansi": "^3.0.0",
2170
- "supports-color": "^2.0.0"
2171
- }
2172
- },
2173
- "has-ansi": {
2174
- "version": "2.0.0",
2175
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2176
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2177
- "dev": true,
2178
- "requires": {
2179
- "ansi-regex": "^2.0.0"
2180
- }
2181
- },
2182
- "strip-ansi": {
2183
- "version": "3.0.1",
2184
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2185
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2186
- "dev": true,
2187
- "requires": {
2188
- "ansi-regex": "^2.0.0"
2189
- }
2190
- },
2191
- "supports-color": {
2192
- "version": "2.0.0",
2193
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2194
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2195
- "dev": true
2196
- }
2197
- }
2198
- },
2199
- "grunt-wp-i18n": {
2200
- "version": "1.0.2",
2201
- "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz",
2202
- "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==",
2203
- "dev": true,
2204
- "requires": {
2205
- "grunt": "^1.0.2",
2206
- "node-wp-i18n": "^1.0.5"
2207
- }
2208
- },
2209
- "gzip-size": {
2210
- "version": "3.0.0",
2211
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
2212
- "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
2213
- "dev": true,
2214
- "requires": {
2215
- "duplexer": "^0.1.1"
2216
- }
2217
- },
2218
- "har-schema": {
2219
- "version": "2.0.0",
2220
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
2221
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
2222
- "dev": true,
2223
- "optional": true
2224
- },
2225
- "has-ansi": {
2226
- "version": "2.0.0",
2227
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2228
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2229
- "dev": true,
2230
- "requires": {
2231
- "ansi-regex": "^2.0.0"
2232
- }
2233
- },
2234
- "has-color": {
2235
- "version": "0.1.7",
2236
- "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
2237
- "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
2238
- "dev": true
2239
- },
2240
- "has-flag": {
2241
- "version": "3.0.0",
2242
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2243
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2244
- "dev": true
2245
- },
2246
- "hasha": {
2247
- "version": "2.2.0",
2248
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
2249
- "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
2250
- "dev": true,
2251
- "optional": true,
2252
- "requires": {
2253
- "is-stream": "^1.0.1",
2254
- "pinkie-promise": "^2.0.0"
2255
- }
2256
- },
2257
- "hooker": {
2258
- "version": "0.2.3",
2259
- "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
2260
- "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
2261
- "dev": true
2262
- },
2263
- "hosted-git-info": {
2264
- "version": "2.7.1",
2265
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
2266
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
2267
- "dev": true
2268
- },
2269
- "htmlparser2": {
2270
- "version": "3.8.3",
2271
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
2272
- "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
2273
- "dev": true,
2274
- "requires": {
2275
- "domelementtype": "1",
2276
- "domhandler": "2.3",
2277
- "domutils": "1.5",
2278
- "entities": "1.0",
2279
- "readable-stream": "1.1"
2280
- }
2281
- },
2282
- "http-parser-js": {
2283
- "version": "0.5.0",
2284
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
2285
- "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
2286
- "dev": true
2287
- },
2288
- "http-signature": {
2289
- "version": "1.2.0",
2290
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
2291
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
2292
- "dev": true,
2293
- "optional": true,
2294
- "requires": {
2295
- "assert-plus": "^1.0.0",
2296
- "jsprim": "^1.2.2",
2297
- "sshpk": "^1.7.0"
2298
- }
2299
- },
2300
- "https-proxy-agent": {
2301
- "version": "2.2.1",
2302
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
2303
- "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
2304
- "dev": true,
2305
- "requires": {
2306
- "agent-base": "^4.1.0",
2307
- "debug": "^3.1.0"
2308
- },
2309
- "dependencies": {
2310
- "debug": {
2311
- "version": "3.2.6",
2312
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
2313
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
2314
- "dev": true,
2315
- "requires": {
2316
- "ms": "^2.1.1"
2317
- }
2318
- },
2319
- "ms": {
2320
- "version": "2.1.1",
2321
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2322
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2323
- "dev": true
2324
- }
2325
- }
2326
- },
2327
- "iconv-lite": {
2328
- "version": "0.4.24",
2329
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2330
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2331
- "dev": true,
2332
- "requires": {
2333
- "safer-buffer": ">= 2.1.2 < 3"
2334
- }
2335
- },
2336
- "image-size": {
2337
- "version": "0.5.5",
2338
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
2339
- "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
2340
- "dev": true,
2341
- "optional": true
2342
- },
2343
- "indent-string": {
2344
- "version": "2.1.0",
2345
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
2346
- "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
2347
- "dev": true,
2348
- "requires": {
2349
- "repeating": "^2.0.0"
2350
- }
2351
- },
2352
- "inflight": {
2353
- "version": "1.0.6",
2354
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2355
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2356
- "dev": true,
2357
- "requires": {
2358
- "once": "^1.3.0",
2359
- "wrappy": "1"
2360
- }
2361
- },
2362
- "inherits": {
2363
- "version": "2.0.3",
2364
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2365
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
2366
- "dev": true
2367
- },
2368
- "interpret": {
2369
- "version": "1.1.0",
2370
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
2371
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
2372
- "dev": true
2373
- },
2374
- "is-arrayish": {
2375
- "version": "0.2.1",
2376
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2377
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2378
- "dev": true
2379
- },
2380
- "is-builtin-module": {
2381
- "version": "1.0.0",
2382
- "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
2383
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
2384
- "dev": true,
2385
- "requires": {
2386
- "builtin-modules": "^1.0.0"
2387
- }
2388
- },
2389
- "is-finite": {
2390
- "version": "1.0.2",
2391
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
2392
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
2393
- "dev": true,
2394
- "requires": {
2395
- "number-is-nan": "^1.0.0"
2396
- }
2397
- },
2398
- "is-stream": {
2399
- "version": "1.1.0",
2400
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2401
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2402
- "dev": true,
2403
- "optional": true
2404
- },
2405
- "is-typedarray": {
2406
- "version": "1.0.0",
2407
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2408
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
2409
- "dev": true,
2410
- "optional": true
2411
- },
2412
- "is-utf8": {
2413
- "version": "0.2.1",
2414
- "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
2415
- "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
2416
- "dev": true
2417
- },
2418
- "isarray": {
2419
- "version": "0.0.1",
2420
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
2421
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
2422
- "dev": true
2423
- },
2424
- "isexe": {
2425
- "version": "2.0.0",
2426
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2427
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2428
- "dev": true
2429
- },
2430
- "isstream": {
2431
- "version": "0.1.2",
2432
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2433
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
2434
- "dev": true
2435
- },
2436
- "js-yaml": {
2437
- "version": "3.5.5",
2438
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
2439
- "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
2440
- "dev": true,
2441
- "requires": {
2442
- "argparse": "^1.0.2",
2443
- "esprima": "^2.6.0"
2444
- }
2445
- },
2446
- "jsbn": {
2447
- "version": "0.1.1",
2448
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
2449
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
2450
- "dev": true
2451
- },
2452
- "jshint": {
2453
- "version": "2.9.6",
2454
- "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz",
2455
- "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==",
2456
- "dev": true,
2457
- "requires": {
2458
- "cli": "~1.0.0",
2459
- "console-browserify": "1.1.x",
2460
- "exit": "0.1.x",
2461
- "htmlparser2": "3.8.x",
2462
- "lodash": "~4.17.10",
2463
- "minimatch": "~3.0.2",
2464
- "phantom": "~4.0.1",
2465
- "phantomjs-prebuilt": "~2.1.7",
2466
- "shelljs": "0.3.x",
2467
- "strip-json-comments": "1.0.x",
2468
- "unicode-5.2.0": "^0.7.5"
2469
- },
2470
- "dependencies": {
2471
- "concat-stream": {
2472
- "version": "1.6.2",
2473
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
2474
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
2475
- "dev": true,
2476
- "optional": true,
2477
- "requires": {
2478
- "buffer-from": "^1.0.0",
2479
- "inherits": "^2.0.3",
2480
- "readable-stream": "^2.2.2",
2481
- "typedarray": "^0.0.6"
2482
- }
2483
- },
2484
- "debug": {
2485
- "version": "2.6.9",
2486
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2487
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2488
- "dev": true,
2489
- "optional": true,
2490
- "requires": {
2491
- "ms": "2.0.0"
2492
- }
2493
- },
2494
- "extract-zip": {
2495
- "version": "1.6.7",
2496
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
2497
- "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
2498
- "dev": true,
2499
- "optional": true,
2500
- "requires": {
2501
- "concat-stream": "1.6.2",
2502
- "debug": "2.6.9",
2503
- "mkdirp": "0.5.1",
2504
- "yauzl": "2.4.1"
2505
- }
2506
- },
2507
- "fs-extra": {
2508
- "version": "1.0.0",
2509
- "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
2510
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
2511
- "dev": true,
2512
- "optional": true,
2513
- "requires": {
2514
- "graceful-fs": "^4.1.2",
2515
- "jsonfile": "^2.1.0",
2516
- "klaw": "^1.0.0"
2517
- }
2518
- },
2519
- "graceful-fs": {
2520
- "version": "4.1.15",
2521
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
2522
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
2523
- "dev": true,
2524
- "optional": true
2525
- },
2526
- "isarray": {
2527
- "version": "1.0.0",
2528
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2529
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2530
- "dev": true,
2531
- "optional": true
2532
- },
2533
- "minimatch": {
2534
- "version": "3.0.4",
2535
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2536
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2537
- "dev": true,
2538
- "requires": {
2539
- "brace-expansion": "^1.1.7"
2540
- }
2541
- },
2542
- "phantomjs-prebuilt": {
2543
- "version": "2.1.16",
2544
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
2545
- "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
2546
- "dev": true,
2547
- "optional": true,
2548
- "requires": {
2549
- "es6-promise": "^4.0.3",
2550
- "extract-zip": "^1.6.5",
2551
- "fs-extra": "^1.0.0",
2552
- "hasha": "^2.2.0",
2553
- "kew": "^0.7.0",
2554
- "progress": "^1.1.8",
2555
- "request": "^2.81.0",
2556
- "request-progress": "^2.0.1",
2557
- "which": "^1.2.10"
2558
- }
2559
- },
2560
- "process-nextick-args": {
2561
- "version": "2.0.0",
2562
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
2563
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
2564
- "dev": true,
2565
- "optional": true
2566
- },
2567
- "readable-stream": {
2568
- "version": "2.3.6",
2569
- "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
2570
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
2571
- "dev": true,
2572
- "optional": true,
2573
- "requires": {
2574
- "core-util-is": "~1.0.0",
2575
- "inherits": "~2.0.3",
2576
- "isarray": "~1.0.0",
2577
- "process-nextick-args": "~2.0.0",
2578
- "safe-buffer": "~5.1.1",
2579
- "string_decoder": "~1.1.1",
2580
- "util-deprecate": "~1.0.1"
2581
- }
2582
- },
2583
- "shelljs": {
2584
- "version": "0.3.0",
2585
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
2586
- "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
2587
- "dev": true
2588
- },
2589
- "string_decoder": {
2590
- "version": "1.1.1",
2591
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2592
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2593
- "dev": true,
2594
- "optional": true,
2595
- "requires": {
2596
- "safe-buffer": "~5.1.0"
2597
- }
2598
- }
2599
- }
2600
- },
2601
- "json-schema": {
2602
- "version": "0.2.3",
2603
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2604
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
2605
- "dev": true,
2606
- "optional": true
2607
- },
2608
- "json-schema-traverse": {
2609
- "version": "0.4.1",
2610
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2611
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2612
- "dev": true,
2613
- "optional": true
2614
- },
2615
- "json-stringify-safe": {
2616
- "version": "5.0.1",
2617
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2618
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
2619
- "dev": true,
2620
- "optional": true
2621
- },
2622
- "jsonfile": {
2623
- "version": "2.4.0",
2624
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
2625
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
2626
- "dev": true,
2627
- "requires": {
2628
- "graceful-fs": "^4.1.6"
2629
- },
2630
- "dependencies": {
2631
- "graceful-fs": {
2632
- "version": "4.1.11",
2633
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
2634
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
2635
- "dev": true,
2636
- "optional": true
2637
- }
2638
- }
2639
- },
2640
- "jsprim": {
2641
- "version": "1.4.1",
2642
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2643
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2644
- "dev": true,
2645
- "optional": true,
2646
- "requires": {
2647
- "assert-plus": "1.0.0",
2648
- "extsprintf": "1.3.0",
2649
- "json-schema": "0.2.3",
2650
- "verror": "1.10.0"
2651
- },
2652
- "dependencies": {
2653
- "assert-plus": {
2654
- "version": "1.0.0",
2655
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
2656
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
2657
- "dev": true,
2658
- "optional": true
2659
- }
2660
- }
2661
- },
2662
- "kew": {
2663
- "version": "0.7.0",
2664
- "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
2665
- "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
2666
- "dev": true,
2667
- "optional": true
2668
- },
2669
- "klaw": {
2670
- "version": "1.3.1",
2671
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
2672
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
2673
- "dev": true,
2674
- "requires": {
2675
- "graceful-fs": "^4.1.9"
2676
- },
2677
- "dependencies": {
2678
- "graceful-fs": {
2679
- "version": "4.1.11",
2680
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
2681
- "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
2682
- "dev": true,
2683
- "optional": true
2684
- }
2685
- }
2686
- },
2687
- "less": {
2688
- "version": "1.3.3",
2689
- "resolved": "https://registry.npmjs.org/less/-/less-1.3.3.tgz",
2690
- "integrity": "sha1-fujzAKQQgPNUTIDHpwzfamEoDPk=",
2691
- "dev": true,
2692
- "requires": {
2693
- "ycssmin": ">=1.0.1"
2694
- }
2695
- },
2696
- "livereload-js": {
2697
- "version": "2.4.0",
2698
- "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz",
2699
- "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==",
2700
- "dev": true
2701
- },
2702
- "load-json-file": {
2703
- "version": "1.1.0",
2704
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2705
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2706
- "dev": true,
2707
- "requires": {
2708
- "graceful-fs": "^4.1.2",
2709
- "parse-json": "^2.2.0",
2710
- "pify": "^2.0.0",
2711
- "pinkie-promise": "^2.0.0",
2712
- "strip-bom": "^2.0.0"
2713
- },
2714
- "dependencies": {
2715
- "graceful-fs": {
2716
- "version": "4.1.15",
2717
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
2718
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
2719
- "dev": true
2720
- }
2721
- }
2722
- },
2723
- "lodash": {
2724
- "version": "4.17.11",
2725
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
2726
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
2727
- "dev": true
2728
- },
2729
- "loud-rejection": {
2730
- "version": "1.6.0",
2731
- "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
2732
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
2733
- "dev": true,
2734
- "requires": {
2735
- "currently-unhandled": "^0.4.1",
2736
- "signal-exit": "^3.0.0"
2737
- }
2738
- },
2739
- "lru-cache": {
2740
- "version": "2.7.3",
2741
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
2742
- "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
2743
- "dev": true
2744
- },
2745
- "map-obj": {
2746
- "version": "1.0.1",
2747
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
2748
- "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
2749
- "dev": true
2750
- },
2751
- "maxmin": {
2752
- "version": "2.1.0",
2753
- "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz",
2754
- "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=",
2755
- "dev": true,
2756
- "requires": {
2757
- "chalk": "^1.0.0",
2758
- "figures": "^1.0.1",
2759
- "gzip-size": "^3.0.0",
2760
- "pretty-bytes": "^3.0.0"
2761
- },
2762
- "dependencies": {
2763
- "ansi-regex": {
2764
- "version": "2.1.1",
2765
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
2766
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
2767
- "dev": true
2768
- },
2769
- "ansi-styles": {
2770
- "version": "2.2.1",
2771
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
2772
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
2773
- "dev": true
2774
- },
2775
- "chalk": {
2776
- "version": "1.1.3",
2777
- "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
2778
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
2779
- "dev": true,
2780
- "requires": {
2781
- "ansi-styles": "^2.2.1",
2782
- "escape-string-regexp": "^1.0.2",
2783
- "has-ansi": "^2.0.0",
2784
- "strip-ansi": "^3.0.0",
2785
- "supports-color": "^2.0.0"
2786
- }
2787
- },
2788
- "has-ansi": {
2789
- "version": "2.0.0",
2790
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
2791
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
2792
- "dev": true,
2793
- "requires": {
2794
- "ansi-regex": "^2.0.0"
2795
- }
2796
- },
2797
- "strip-ansi": {
2798
- "version": "3.0.1",
2799
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
2800
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
2801
- "dev": true,
2802
- "requires": {
2803
- "ansi-regex": "^2.0.0"
2804
- }
2805
- },
2806
- "supports-color": {
2807
- "version": "2.0.0",
2808
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
2809
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
2810
- "dev": true
2811
- }
2812
- }
2813
- },
2814
- "meow": {
2815
- "version": "3.7.0",
2816
- "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
2817
- "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
2818
- "dev": true,
2819
- "requires": {
2820
- "camelcase-keys": "^2.0.0",
2821
- "decamelize": "^1.1.2",
2822
- "loud-rejection": "^1.0.0",
2823
- "map-obj": "^1.0.1",
2824
- "minimist": "^1.1.3",
2825
- "normalize-package-data": "^2.3.4",
2826
- "object-assign": "^4.0.1",
2827
- "read-pkg-up": "^1.0.1",
2828
- "redent": "^1.0.0",
2829
- "trim-newlines": "^1.0.0"
2830
- }
2831
- },
2832
- "merge": {
2833
- "version": "1.2.1",
2834
- "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
2835
- "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
2836
- "dev": true
2837
- },
2838
- "mime": {
2839
- "version": "1.6.0",
2840
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
2841
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
2842
- "dev": true
2843
- },
2844
- "mime-types": {
2845
- "version": "2.1.21",
2846
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
2847
- "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
2848
- "dev": true,
2849
- "requires": {
2850
- "mime-db": "~1.37.0"
2851
- },
2852
- "dependencies": {
2853
- "mime-db": {
2854
- "version": "1.37.0",
2855
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
2856
- "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
2857
- "dev": true
2858
- }
2859
- }
2860
- },
2861
- "mimeparse": {
2862
- "version": "0.1.4",
2863
- "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz",
2864
- "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=",
2865
- "dev": true
2866
- },
2867
- "minimatch": {
2868
- "version": "3.0.4",
2869
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2870
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2871
- "dev": true,
2872
- "requires": {
2873
- "brace-expansion": "^1.1.7"
2874
- }
2875
- },
2876
- "minimist": {
2877
- "version": "1.2.0",
2878
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2879
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2880
- "dev": true
2881
- },
2882
- "mkdirp": {
2883
- "version": "0.5.1",
2884
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2885
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2886
- "dev": true,
2887
- "requires": {
2888
- "minimist": "0.0.8"
2889
- },
2890
- "dependencies": {
2891
- "minimist": {
2892
- "version": "0.0.8",
2893
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2894
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2895
- "dev": true
2896
- }
2897
- }
2898
- },
2899
- "ms": {
2900
- "version": "2.0.0",
2901
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2902
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2903
- "dev": true
2904
- },
2905
- "next-tick": {
2906
- "version": "1.0.0",
2907
- "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
2908
- "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
2909
- "dev": true
2910
- },
2911
- "node-wp-i18n": {
2912
- "version": "1.2.1",
2913
- "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.1.tgz",
2914
- "integrity": "sha512-Wvl98XA/GBnQFe20iAMwlsXvikVOFTVz//cbRsF8OPQf0NIkJdeWToNYww/dZl52lHtS1KUEIVRyWcol5ibHog==",
2915
- "dev": true,
2916
- "requires": {
2917
- "bluebird": "^3.4.1",
2918
- "gettext-parser": "^2.0.0",
2919
- "glob": "^7.0.5",
2920
- "lodash": "^4.14.2",
2921
- "minimist": "^1.2.0",
2922
- "mkdirp": "^0.5.1",
2923
- "tmp": "^0.0.33"
2924
- },
2925
- "dependencies": {
2926
- "glob": {
2927
- "version": "7.1.3",
2928
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
2929
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
2930
- "dev": true,
2931
- "requires": {
2932
- "fs.realpath": "^1.0.0",
2933
- "inflight": "^1.0.4",
2934
- "inherits": "2",
2935
- "minimatch": "^3.0.4",
2936
- "once": "^1.3.0",
2937
- "path-is-absolute": "^1.0.0"
2938
- }
2939
- },
2940
- "minimatch": {
2941
- "version": "3.0.4",
2942
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2943
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2944
- "dev": true,
2945
- "requires": {
2946
- "brace-expansion": "^1.1.7"
2947
- }
2948
- },
2949
- "tmp": {
2950
- "version": "0.0.33",
2951
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2952
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2953
- "dev": true,
2954
- "requires": {
2955
- "os-tmpdir": "~1.0.2"
2956
- }
2957
- }
2958
- }
2959
- },
2960
- "nopt": {
2961
- "version": "4.0.1",
2962
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
2963
- "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
2964
- "dev": true,
2965
- "requires": {
2966
- "abbrev": "1",
2967
- "osenv": "^0.1.4"
2968
- }
2969
- },
2970
- "normalize-package-data": {
2971
- "version": "2.4.0",
2972
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
2973
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
2974
- "dev": true,
2975
- "requires": {
2976
- "hosted-git-info": "^2.1.4",
2977
- "is-builtin-module": "^1.0.0",
2978
- "semver": "2 || 3 || 4 || 5",
2979
- "validate-npm-package-license": "^3.0.1"
2980
- },
2981
- "dependencies": {
2982
- "semver": {
2983
- "version": "5.6.0",
2984
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
2985
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
2986
- "dev": true
2987
- }
2988
- }
2989
- },
2990
- "npm-run-path": {
2991
- "version": "2.0.2",
2992
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
2993
- "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
2994
- "dev": true,
2995
- "requires": {
2996
- "path-key": "^2.0.0"
2997
- }
2998
- },
2999
- "number-is-nan": {
3000
- "version": "1.0.1",
3001
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
3002
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
3003
- "dev": true
3004
- },
3005
- "oauth-sign": {
3006
- "version": "0.9.0",
3007
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
3008
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
3009
- "dev": true,
3010
- "optional": true
3011
- },
3012
- "object-assign": {
3013
- "version": "4.1.1",
3014
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3015
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
3016
- "dev": true
3017
- },
3018
- "once": {
3019
- "version": "1.4.0",
3020
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3021
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3022
- "dev": true,
3023
- "requires": {
3024
- "wrappy": "1"
3025
- }
3026
- },
3027
- "onetime": {
3028
- "version": "1.1.0",
3029
- "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
3030
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
3031
- "dev": true
3032
- },
3033
- "os-homedir": {
3034
- "version": "1.0.2",
3035
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
3036
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
3037
- "dev": true
3038
- },
3039
- "os-tmpdir": {
3040
- "version": "1.0.2",
3041
- "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
3042
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
3043
- "dev": true
3044
- },
3045
- "osenv": {
3046
- "version": "0.1.4",
3047
- "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
3048
- "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
3049
- "dev": true,
3050
- "requires": {
3051
- "os-homedir": "^1.0.0",
3052
- "os-tmpdir": "^1.0.0"
3053
- }
3054
- },
3055
- "p-each-series": {
3056
- "version": "1.0.0",
3057
- "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
3058
- "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=",
3059
- "dev": true,
3060
- "requires": {
3061
- "p-reduce": "^1.0.0"
3062
- }
3063
- },
3064
- "p-reduce": {
3065
- "version": "1.0.0",
3066
- "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
3067
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
3068
- "dev": true
3069
- },
3070
- "parse-json": {
3071
- "version": "2.2.0",
3072
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
3073
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
3074
- "dev": true,
3075
- "requires": {
3076
- "error-ex": "^1.2.0"
3077
- }
3078
- },
3079
- "path-exists": {
3080
- "version": "2.1.0",
3081
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
3082
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
3083
- "dev": true,
3084
- "requires": {
3085
- "pinkie-promise": "^2.0.0"
3086
- }
3087
- },
3088
- "path-is-absolute": {
3089
- "version": "1.0.1",
3090
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3091
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3092
- "dev": true
3093
- },
3094
- "path-key": {
3095
- "version": "2.0.1",
3096
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
3097
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
3098
- "dev": true
3099
- },
3100
- "path-type": {
3101
- "version": "1.1.0",
3102
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
3103
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
3104
- "dev": true,
3105
- "requires": {
3106
- "graceful-fs": "^4.1.2",
3107
- "pify": "^2.0.0",
3108
- "pinkie-promise": "^2.0.0"
3109
- },
3110
- "dependencies": {
3111
- "graceful-fs": {
3112
- "version": "4.1.15",
3113
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
3114
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
3115
- "dev": true
3116
- }
3117
- }
3118
- },
3119
- "pend": {
3120
- "version": "1.2.0",
3121
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
3122
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
3123
- "dev": true
3124
- },
3125
- "performance-now": {
3126
- "version": "2.1.0",
3127
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
3128
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
3129
- "dev": true,
3130
- "optional": true
3131
- },
3132
- "phantom": {
3133
- "version": "4.0.12",
3134
- "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz",
3135
- "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==",
3136
- "dev": true,
3137
- "optional": true,
3138
- "requires": {
3139
- "phantomjs-prebuilt": "^2.1.16",
3140
- "split": "^1.0.1",
3141
- "winston": "^2.4.0"
3142
- },
3143
- "dependencies": {
3144
- "concat-stream": {
3145
- "version": "1.6.2",
3146
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
3147
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
3148
- "dev": true,
3149
- "optional": true,
3150
- "requires": {
3151
- "buffer-from": "^1.0.0",
3152
- "inherits": "^2.0.3",
3153
- "readable-stream": "^2.2.2",
3154
- "typedarray": "^0.0.6"
3155
- }
3156
- },
3157
- "debug": {
3158
- "version": "2.6.9",
3159
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3160
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3161
- "dev": true,
3162
- "optional": true,
3163
- "requires": {
3164
- "ms": "2.0.0"
3165
- }
3166
- },
3167
- "extract-zip": {
3168
- "version": "1.6.7",
3169
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
3170
- "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
3171
- "dev": true,
3172
- "optional": true,
3173
- "requires": {
3174
- "concat-stream": "1.6.2",
3175
- "debug": "2.6.9",
3176
- "mkdirp": "0.5.1",
3177
- "yauzl": "2.4.1"
3178
- }
3179
- },
3180
- "fs-extra": {
3181
- "version": "1.0.0",
3182
- "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
3183
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
3184
- "dev": true,
3185
- "optional": true,
3186
- "requires": {
3187
- "graceful-fs": "^4.1.2",
3188
- "jsonfile": "^2.1.0",
3189
- "klaw": "^1.0.0"
3190
- }
3191
- },
3192
- "graceful-fs": {
3193
- "version": "4.1.15",
3194
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
3195
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
3196
- "dev": true,
3197
- "optional": true
3198
- },
3199
- "isarray": {
3200
- "version": "1.0.0",
3201
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
3202
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
3203
- "dev": true,
3204
- "optional": true
3205
- },
3206
- "phantomjs-prebuilt": {
3207
- "version": "2.1.16",
3208
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
3209
- "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
3210
- "dev": true,
3211
- "optional": true,
3212
- "requires": {
3213
- "es6-promise": "^4.0.3",
3214
- "extract-zip": "^1.6.5",
3215
- "fs-extra": "^1.0.0",
3216
- "hasha": "^2.2.0",
3217
- "kew": "^0.7.0",
3218
- "progress": "^1.1.8",
3219
- "request": "^2.81.0",
3220
- "request-progress": "^2.0.1",
3221
- "which": "^1.2.10"
3222
- }
3223
- },
3224
- "process-nextick-args": {
3225
- "version": "2.0.0",
3226
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
3227
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
3228
- "dev": true,
3229
- "optional": true
3230
- },
3231
- "readable-stream": {
3232
- "version": "2.3.6",
3233
- "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
3234
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
3235
- "dev": true,
3236
- "optional": true,
3237
- "requires": {
3238
- "core-util-is": "~1.0.0",
3239
- "inherits": "~2.0.3",
3240
- "isarray": "~1.0.0",
3241
- "process-nextick-args": "~2.0.0",
3242
- "safe-buffer": "~5.1.1",
3243
- "string_decoder": "~1.1.1",
3244
- "util-deprecate": "~1.0.1"
3245
- }
3246
- },
3247
- "string_decoder": {
3248
- "version": "1.1.1",
3249
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3250
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3251
- "dev": true,
3252
- "optional": true,
3253
- "requires": {
3254
- "safe-buffer": "~5.1.0"
3255
- }
3256
- }
3257
- }
3258
- },
3259
- "pify": {
3260
- "version": "2.3.0",
3261
- "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3262
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
3263
- "dev": true
3264
- },
3265
- "pinkie": {
3266
- "version": "2.0.4",
3267
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
3268
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
3269
- "dev": true
3270
- },
3271
- "pinkie-promise": {
3272
- "version": "2.0.1",
3273
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
3274
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
3275
- "dev": true,
3276
- "requires": {
3277
- "pinkie": "^2.0.0"
3278
- }
3279
- },
3280
- "pretty-bytes": {
3281
- "version": "3.0.1",
3282
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
3283
- "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
3284
- "dev": true,
3285
- "requires": {
3286
- "number-is-nan": "^1.0.0"
3287
- }
3288
- },
3289
- "progress": {
3290
- "version": "1.1.8",
3291
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
3292
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
3293
- "dev": true,
3294
- "optional": true
3295
- },
3296
- "promise": {
3297
- "version": "7.3.1",
3298
- "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
3299
- "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
3300
- "dev": true,
3301
- "optional": true,
3302
- "requires": {
3303
- "asap": "~2.0.3"
3304
- }
3305
- },
3306
- "proxy-from-env": {
3307
- "version": "1.0.0",
3308
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
3309
- "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=",
3310
- "dev": true
3311
- },
3312
- "prr": {
3313
- "version": "1.0.1",
3314
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
3315
- "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
3316
- "dev": true,
3317
- "optional": true
3318
- },
3319
- "psl": {
3320
- "version": "1.1.29",
3321
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
3322
- "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
3323
- "dev": true,
3324
- "optional": true
3325
- },
3326
- "punycode": {
3327
- "version": "2.1.1",
3328
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3329
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
3330
- "dev": true,
3331
- "optional": true
3332
- },
3333
- "puppeteer": {
3334
- "version": "1.7.0",
3335
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.7.0.tgz",
3336
- "integrity": "sha512-f+1DxKHPqce6CXUBz2eVO2WcATeVeQSOPG9GYaGObEZDCiCEUwG+gogjMsrvn7he2wHTqNVb5p6RUrwmr8XFBA==",
3337
- "dev": true,
3338
- "requires": {
3339
- "debug": "^3.1.0",
3340
- "extract-zip": "^1.6.6",
3341
- "https-proxy-agent": "^2.2.1",
3342
- "mime": "^2.0.3",
3343
- "progress": "^2.0.0",
3344
- "proxy-from-env": "^1.0.0",
3345
- "rimraf": "^2.6.1",
3346
- "ws": "^5.1.1"
3347
- },
3348
- "dependencies": {
3349
- "debug": {
3350
- "version": "3.2.6",
3351
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
3352
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
3353
- "dev": true,
3354
- "requires": {
3355
- "ms": "^2.1.1"
3356
- }
3357
- },
3358
- "glob": {
3359
- "version": "7.1.3",
3360
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
3361
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
3362
- "dev": true,
3363
- "requires": {
3364
- "fs.realpath": "^1.0.0",
3365
- "inflight": "^1.0.4",
3366
- "inherits": "2",
3367
- "minimatch": "^3.0.4",
3368
- "once": "^1.3.0",
3369
- "path-is-absolute": "^1.0.0"
3370
- }
3371
- },
3372
- "mime": {
3373
- "version": "2.3.1",
3374
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
3375
- "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
3376
- "dev": true
3377
- },
3378
- "minimatch": {
3379
- "version": "3.0.4",
3380
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3381
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3382
- "dev": true,
3383
- "requires": {
3384
- "brace-expansion": "^1.1.7"
3385
- }
3386
- },
3387
- "ms": {
3388
- "version": "2.1.1",
3389
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3390
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
3391
- "dev": true
3392
- },
3393
- "progress": {
3394
- "version": "2.0.1",
3395
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
3396
- "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
3397
- "dev": true
3398
- },
3399
- "rimraf": {
3400
- "version": "2.6.2",
3401
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
3402
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
3403
- "dev": true,
3404
- "requires": {
3405
- "glob": "^7.0.5"
3406
- }
3407
- }
3408
- }
3409
- },
3410
- "q": {
3411
- "version": "0.9.3",
3412
- "resolved": "https://registry.npmjs.org/q/-/q-0.9.3.tgz",
3413
- "integrity": "sha1-QE6rutDQMe01/LU/fFvAYoO050w=",
3414
- "dev": true
3415
- },
3416
- "q-io": {
3417
- "version": "1.13.6",
3418
- "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.13.6.tgz",
3419
- "integrity": "sha1-BFC9s54IfLiaX9SkFjfqM0fJhTg=",
3420
- "dev": true,
3421
- "requires": {
3422
- "es6-set": "^0.1.1",
3423
- "mime": "^1.2.11",
3424
- "mimeparse": "^0.1.4",
3425
- "q": "^1.0.1",
3426
- "qs": "^1.2.1",
3427
- "url2": "^0.0.0"
3428
- },
3429
- "dependencies": {
3430
- "q": {
3431
- "version": "1.5.1",
3432
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
3433
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
3434
- "dev": true
3435
- },
3436
- "qs": {
3437
- "version": "1.2.2",
3438
- "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz",
3439
- "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=",
3440
- "dev": true
3441
- }
3442
- }
3443
- },
3444
- "qs": {
3445
- "version": "6.5.2",
3446
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
3447
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
3448
- "dev": true
3449
- },
3450
- "raw-body": {
3451
- "version": "1.1.7",
3452
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
3453
- "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
3454
- "dev": true,
3455
- "requires": {
3456
- "bytes": "1",
3457
- "string_decoder": "0.10"
3458
- }
3459
- },
3460
- "read-pkg": {
3461
- "version": "1.1.0",
3462
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
3463
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
3464
- "dev": true,
3465
- "requires": {
3466
- "load-json-file": "^1.0.0",
3467
- "normalize-package-data": "^2.3.2",
3468
- "path-type": "^1.0.0"
3469
- }
3470
- },
3471
- "read-pkg-up": {
3472
- "version": "1.0.1",
3473
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
3474
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
3475
- "dev": true,
3476
- "requires": {
3477
- "find-up": "^1.0.0",
3478
- "read-pkg": "^1.0.0"
3479
- }
3480
- },
3481
- "readable-stream": {
3482
- "version": "1.1.14",
3483
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
3484
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
3485
- "dev": true,
3486
- "requires": {
3487
- "core-util-is": "~1.0.0",
3488
- "inherits": "~2.0.1",
3489
- "isarray": "0.0.1",
3490
- "string_decoder": "~0.10.x"
3491
- }
3492
- },
3493
- "recess": {
3494
- "version": "1.1.9",
3495
- "resolved": "https://registry.npmjs.org/recess/-/recess-1.1.9.tgz",
3496
- "integrity": "sha1-gxxVH0Xfh9SExhI//ekQML7xWBo=",
3497
- "dev": true,
3498
- "requires": {
3499
- "colors": ">= 0.3.0",
3500
- "less": "~1.3.0",
3501
- "nopt": ">= 1.0.10",
3502
- "underscore": ">= 1.2.1",
3503
- "watch": ">= 0.5.1"
3504
- }
3505
- },
3506
- "rechoir": {
3507
- "version": "0.6.2",
3508
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
3509
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
3510
- "dev": true,
3511
- "requires": {
3512
- "resolve": "^1.1.6"
3513
- }
3514
- },
3515
- "redent": {
3516
- "version": "1.0.0",
3517
- "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
3518
- "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
3519
- "dev": true,
3520
- "requires": {
3521
- "indent-string": "^2.1.0",
3522
- "strip-indent": "^1.0.1"
3523
- }
3524
- },
3525
- "repeating": {
3526
- "version": "2.0.1",
3527
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
3528
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
3529
- "dev": true,
3530
- "requires": {
3531
- "is-finite": "^1.0.0"
3532
- }
3533
- },
3534
- "request": {
3535
- "version": "2.88.0",
3536
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
3537
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
3538
- "dev": true,
3539
- "optional": true,
3540
- "requires": {
3541
- "aws-sign2": "~0.7.0",
3542
- "aws4": "^1.8.0",
3543
- "caseless": "~0.12.0",
3544
- "combined-stream": "~1.0.6",
3545
- "extend": "~3.0.2",
3546
- "forever-agent": "~0.6.1",
3547
- "form-data": "~2.3.2",
3548
- "har-validator": "~5.1.0",
3549
- "http-signature": "~1.2.0",
3550
- "is-typedarray": "~1.0.0",
3551
- "isstream": "~0.1.2",
3552
- "json-stringify-safe": "~5.0.1",
3553
- "mime-types": "~2.1.19",
3554
- "oauth-sign": "~0.9.0",
3555
- "performance-now": "^2.1.0",
3556
- "qs": "~6.5.2",
3557
- "safe-buffer": "^5.1.2",
3558
- "tough-cookie": "~2.4.3",
3559
- "tunnel-agent": "^0.6.0",
3560
- "uuid": "^3.3.2"
3561
- },
3562
- "dependencies": {
3563
- "caseless": {
3564
- "version": "0.12.0",
3565
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
3566
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
3567
- "dev": true,
3568
- "optional": true
3569
- },
3570
- "extend": {
3571
- "version": "3.0.2",
3572
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
3573
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
3574
- "dev": true,
3575
- "optional": true
3576
- },
3577
- "har-validator": {
3578
- "version": "5.1.2",
3579
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.2.tgz",
3580
- "integrity": "sha512-OFxb5MZXCUMx43X7O8LK4FKggEQx6yC5QPmOcBnYbJ9UjxEcMcrMbaR0af5HZpqeFopw2GwQRQi34ZXI7YLM5w==",
3581
- "dev": true,
3582
- "optional": true,
3583
- "requires": {
3584
- "ajv": "^6.5.5",
3585
- "har-schema": "^2.0.0"
3586
- }
3587
- },
3588
- "safe-buffer": {
3589
- "version": "5.1.2",
3590
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3591
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3592
- "dev": true
3593
- },
3594
- "tunnel-agent": {
3595
- "version": "0.6.0",
3596
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
3597
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
3598
- "dev": true,
3599
- "optional": true,
3600
- "requires": {
3601
- "safe-buffer": "^5.0.1"
3602
- }
3603
- },
3604
- "uuid": {
3605
- "version": "3.3.2",
3606
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
3607
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
3608
- "dev": true,
3609
- "optional": true
3610
- }
3611
- }
3612
- },
3613
- "request-progress": {
3614
- "version": "2.0.1",
3615
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
3616
- "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
3617
- "dev": true,
3618
- "optional": true,
3619
- "requires": {
3620
- "throttleit": "^1.0.0"
3621
- }
3622
- },
3623
- "resolve": {
3624
- "version": "1.1.7",
3625
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
3626
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
3627
- "dev": true
3628
- },
3629
- "rimraf": {
3630
- "version": "2.2.8",
3631
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
3632
- "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
3633
- "dev": true
3634
- },
3635
- "safe-buffer": {
3636
- "version": "5.1.1",
3637
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
3638
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
3639
- "dev": true
3640
- },
3641
- "safe-json-parse": {
3642
- "version": "1.0.1",
3643
- "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
3644
- "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
3645
- "dev": true
3646
- },
3647
- "safer-buffer": {
3648
- "version": "2.1.2",
3649
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3650
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3651
- "dev": true
3652
- },
3653
- "semver-regex": {
3654
- "version": "1.0.0",
3655
- "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
3656
- "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=",
3657
- "dev": true
3658
- },
3659
- "semver-truncate": {
3660
- "version": "1.1.2",
3661
- "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
3662
- "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
3663
- "dev": true,
3664
- "requires": {
3665
- "semver": "^5.3.0"
3666
- },
3667
- "dependencies": {
3668
- "semver": {
3669
- "version": "5.6.0",
3670
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
3671
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
3672
- "dev": true
3673
- }
3674
- }
3675
- },
3676
- "shelljs": {
3677
- "version": "0.8.2",
3678
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz",
3679
- "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==",
3680
- "dev": true,
3681
- "requires": {
3682
- "glob": "^7.0.0",
3683
- "interpret": "^1.0.0",
3684
- "rechoir": "^0.6.2"
3685
- },
3686
- "dependencies": {
3687
- "glob": {
3688
- "version": "7.1.3",
3689
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
3690
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
3691
- "dev": true,
3692
- "requires": {
3693
- "fs.realpath": "^1.0.0",
3694
- "inflight": "^1.0.4",
3695
- "inherits": "2",
3696
- "minimatch": "^3.0.4",
3697
- "once": "^1.3.0",
3698
- "path-is-absolute": "^1.0.0"
3699
- }
3700
- },
3701
- "minimatch": {
3702
- "version": "3.0.4",
3703
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3704
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3705
- "dev": true,
3706
- "requires": {
3707
- "brace-expansion": "^1.1.7"
3708
- }
3709
- }
3710
- }
3711
- },
3712
- "sigmund": {
3713
- "version": "1.0.1",
3714
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
3715
- "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
3716
- "dev": true
3717
- },
3718
- "signal-exit": {
3719
- "version": "3.0.2",
3720
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
3721
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
3722
- "dev": true
3723
- },
3724
- "source-map": {
3725
- "version": "0.6.1",
3726
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3727
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3728
- "dev": true
3729
- },
3730
- "spdx-correct": {
3731
- "version": "3.0.2",
3732
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
3733
- "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
3734
- "dev": true,
3735
- "requires": {
3736
- "spdx-expression-parse": "^3.0.0",
3737
- "spdx-license-ids": "^3.0.0"
3738
- }
3739
- },
3740
- "spdx-exceptions": {
3741
- "version": "2.2.0",
3742
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
3743
- "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
3744
- "dev": true
3745
- },
3746
- "spdx-expression-parse": {
3747
- "version": "3.0.0",
3748
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
3749
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
3750
- "dev": true,
3751
- "requires": {
3752
- "spdx-exceptions": "^2.1.0",
3753
- "spdx-license-ids": "^3.0.0"
3754
- }
3755
- },
3756
- "spdx-license-ids": {
3757
- "version": "3.0.2",
3758
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
3759
- "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
3760
- "dev": true
3761
- },
3762
- "split": {
3763
- "version": "1.0.1",
3764
- "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
3765
- "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
3766
- "dev": true,
3767
- "optional": true,
3768
- "requires": {
3769
- "through": "2"
3770
- }
3771
- },
3772
- "sprintf-js": {
3773
- "version": "1.1.1",
3774
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
3775
- "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=",
3776
- "dev": true
3777
- },
3778
- "sshpk": {
3779
- "version": "1.15.2",
3780
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz",
3781
- "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==",
3782
- "dev": true,
3783
- "optional": true,
3784
- "requires": {
3785
- "asn1": "~0.2.3",
3786
- "assert-plus": "^1.0.0",
3787
- "bcrypt-pbkdf": "^1.0.0",
3788
- "dashdash": "^1.12.0",
3789
- "ecc-jsbn": "~0.1.1",
3790
- "getpass": "^0.1.1",
3791
- "jsbn": "~0.1.0",
3792
- "safer-buffer": "^2.0.2",
3793
- "tweetnacl": "~0.14.0"
3794
- }
3795
- },
3796
- "stack-trace": {
3797
- "version": "0.0.10",
3798
- "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
3799
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
3800
- "dev": true,
3801
- "optional": true
3802
- },
3803
- "string-template": {
3804
- "version": "0.2.1",
3805
- "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
3806
- "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
3807
- "dev": true
3808
- },
3809
- "string_decoder": {
3810
- "version": "0.10.31",
3811
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3812
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
3813
- "dev": true
3814
- },
3815
- "strip-ansi": {
3816
- "version": "3.0.1",
3817
- "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
3818
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
3819
- "dev": true,
3820
- "requires": {
3821
- "ansi-regex": "^2.0.0"
3822
- }
3823
- },
3824
- "strip-bom": {
3825
- "version": "2.0.0",
3826
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
3827
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
3828
- "dev": true,
3829
- "requires": {
3830
- "is-utf8": "^0.2.0"
3831
- }
3832
- },
3833
- "strip-indent": {
3834
- "version": "1.0.1",
3835
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
3836
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
3837
- "dev": true,
3838
- "requires": {
3839
- "get-stdin": "^4.0.1"
3840
- }
3841
- },
3842
- "strip-json-comments": {
3843
- "version": "1.0.4",
3844
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
3845
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
3846
- "dev": true
3847
- },
3848
- "supports-color": {
3849
- "version": "2.0.0",
3850
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3851
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3852
- "dev": true
3853
- },
3854
- "text-table": {
3855
- "version": "0.2.0",
3856
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3857
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
3858
- "dev": true
3859
- },
3860
- "throttleit": {
3861
- "version": "1.0.0",
3862
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
3863
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
3864
- "dev": true,
3865
- "optional": true
3866
- },
3867
- "through": {
3868
- "version": "2.3.8",
3869
- "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
3870
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
3871
- "dev": true,
3872
- "optional": true
3873
- },
3874
- "tiny-lr": {
3875
- "version": "1.1.1",
3876
- "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
3877
- "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
3878
- "dev": true,
3879
- "requires": {
3880
- "body": "^5.1.0",
3881
- "debug": "^3.1.0",
3882
- "faye-websocket": "~0.10.0",
3883
- "livereload-js": "^2.3.0",
3884
- "object-assign": "^4.1.0",
3885
- "qs": "^6.4.0"
3886
- }
3887
- },
3888
- "tmp": {
3889
- "version": "0.0.28",
3890
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz",
3891
- "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=",
3892
- "dev": true,
3893
- "requires": {
3894
- "os-tmpdir": "~1.0.1"
3895
- }
3896
- },
3897
- "tough-cookie": {
3898
- "version": "2.4.3",
3899
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
3900
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
3901
- "dev": true,
3902
- "optional": true,
3903
- "requires": {
3904
- "psl": "^1.1.24",
3905
- "punycode": "^1.4.1"
3906
- },
3907
- "dependencies": {
3908
- "punycode": {
3909
- "version": "1.4.1",
3910
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
3911
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
3912
- "dev": true,
3913
- "optional": true
3914
- }
3915
- }
3916
- },
3917
- "trim-newlines": {
3918
- "version": "1.0.0",
3919
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
3920
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
3921
- "dev": true
3922
- },
3923
- "tweetnacl": {
3924
- "version": "0.14.5",
3925
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
3926
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
3927
- "dev": true
3928
- },
3929
- "typedarray": {
3930
- "version": "0.0.6",
3931
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
3932
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
3933
- "dev": true
3934
- },
3935
- "uglify-js": {
3936
- "version": "3.4.9",
3937
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz",
3938
- "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==",
3939
- "dev": true,
3940
- "requires": {
3941
- "commander": "~2.17.1",
3942
- "source-map": "~0.6.1"
3943
- }
3944
- },
3945
- "underscore": {
3946
- "version": "1.8.3",
3947
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
3948
- "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
3949
- "dev": true
3950
- },
3951
- "underscore.string": {
3952
- "version": "3.3.5",
3953
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz",
3954
- "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==",
3955
- "dev": true,
3956
- "requires": {
3957
- "sprintf-js": "^1.0.3",
3958
- "util-deprecate": "^1.0.2"
3959
- }
3960
- },
3961
- "unicode-5.2.0": {
3962
- "version": "0.7.5",
3963
- "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz",
3964
- "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==",
3965
- "dev": true
3966
- },
3967
- "uri-js": {
3968
- "version": "4.2.2",
3969
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
3970
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
3971
- "dev": true,
3972
- "optional": true,
3973
- "requires": {
3974
- "punycode": "^2.1.0"
3975
- }
3976
- },
3977
- "uri-path": {
3978
- "version": "1.0.0",
3979
- "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
3980
- "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
3981
- "dev": true
3982
- },
3983
- "url-safe": {
3984
- "version": "2.0.0",
3985
- "resolved": "https://registry.npmjs.org/url-safe/-/url-safe-2.0.0.tgz",
3986
- "integrity": "sha1-3NRt5GZqdUbuQ+qQasF12qYm3p4=",
3987
- "dev": true
3988
- },
3989
- "url2": {
3990
- "version": "0.0.0",
3991
- "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz",
3992
- "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=",
3993
- "dev": true
3994
- },
3995
- "util-deprecate": {
3996
- "version": "1.0.2",
3997
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3998
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3999
- "dev": true
4000
- },
4001
- "validate-npm-package-license": {
4002
- "version": "3.0.4",
4003
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4004
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4005
- "dev": true,
4006
- "requires": {
4007
- "spdx-correct": "^3.0.0",
4008
- "spdx-expression-parse": "^3.0.0"
4009
- }
4010
- },
4011
- "verror": {
4012
- "version": "1.10.0",
4013
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
4014
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
4015
- "dev": true,
4016
- "optional": true,
4017
- "requires": {
4018
- "assert-plus": "^1.0.0",
4019
- "core-util-is": "1.0.2",
4020
- "extsprintf": "^1.2.0"
4021
- },
4022
- "dependencies": {
4023
- "assert-plus": {
4024
- "version": "1.0.0",
4025
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
4026
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
4027
- "dev": true,
4028
- "optional": true
4029
- }
4030
- }
4031
- },
4032
- "watch": {
4033
- "version": "1.0.2",
4034
- "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
4035
- "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
4036
- "dev": true,
4037
- "requires": {
4038
- "exec-sh": "^0.2.0",
4039
- "minimist": "^1.2.0"
4040
- }
4041
- },
4042
- "websocket-driver": {
4043
- "version": "0.7.0",
4044
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
4045
- "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
4046
- "dev": true,
4047
- "requires": {
4048
- "http-parser-js": ">=0.4.0",
4049
- "websocket-extensions": ">=0.1.1"
4050
- }
4051
- },
4052
- "websocket-extensions": {
4053
- "version": "0.1.3",
4054
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
4055
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
4056
- "dev": true
4057
- },
4058
- "which": {
4059
- "version": "1.3.0",
4060
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
4061
- "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=",
4062
- "dev": true,
4063
- "requires": {
4064
- "isexe": "^2.0.0"
4065
- }
4066
- },
4067
- "winston": {
4068
- "version": "2.4.4",
4069
- "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz",
4070
- "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==",
4071
- "dev": true,
4072
- "optional": true,
4073
- "requires": {
4074
- "async": "~1.0.0",
4075
- "colors": "1.0.x",
4076
- "cycle": "1.0.x",
4077
- "eyes": "0.1.x",
4078
- "isstream": "0.1.x",
4079
- "stack-trace": "0.0.x"
4080
- },
4081
- "dependencies": {
4082
- "async": {
4083
- "version": "1.0.0",
4084
- "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz",
4085
- "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
4086
- "dev": true,
4087
- "optional": true
4088
- },
4089
- "colors": {
4090
- "version": "1.0.3",
4091
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
4092
- "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
4093
- "dev": true,
4094
- "optional": true
4095
- }
4096
- }
4097
- },
4098
- "wrappy": {
4099
- "version": "1.0.2",
4100
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
4101
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
4102
- "dev": true
4103
- },
4104
- "ws": {
4105
- "version": "5.2.2",
4106
- "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
4107
- "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
4108
- "dev": true,
4109
- "requires": {
4110
- "async-limiter": "~1.0.0"
4111
- }
4112
- },
4113
- "xmlbuilder": {
4114
- "version": "8.2.2",
4115
- "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
4116
- "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=",
4117
- "dev": true
4118
- },
4119
- "xtend": {
4120
- "version": "4.0.1",
4121
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
4122
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
4123
- "dev": true
4124
- },
4125
- "yauzl": {
4126
- "version": "2.4.1",
4127
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
4128
- "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
4129
- "dev": true,
4130
- "requires": {
4131
- "fd-slicer": "~1.0.1"
4132
- }
4133
- },
4134
- "ycssmin": {
4135
- "version": "1.0.1",
4136
- "resolved": "https://registry.npmjs.org/ycssmin/-/ycssmin-1.0.1.tgz",
4137
- "integrity": "sha1-fN3o23jPqwDSkBw7IwHjBPr03xY=",
4138
- "dev": true,
4139
- "optional": true
4140
- }
4141
- }
4142
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://paypal.me/reduxframework
4
  Tags: admin, admin interface, options, theme options, plugin options, options framework, settings, web fonts, google fonts
5
  Requires at least: 3.5.1
6
  Tested up to: 5.3.3
7
- Stable tag: 3.6.17
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
4
  Tags: admin, admin interface, options, theme options, plugin options, options framework, settings, web fonts, google fonts
5
  Requires at least: 3.5.1
6
  Tested up to: 5.3.3
7
+ Stable tag: 3.6.18
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
redux-framework.php CHANGED
@@ -12,7 +12,7 @@
12
  * Description: Redux is a simple, truly extensible options framework for WordPress themes and plugins.
13
  * Author: Team Redux
14
  * Author URI: http://reduxframework.com
15
- * Version: 3.6.17
16
  * Text Domain: redux-framework
17
  * License: GPL2+
18
  * License URI: http://www.gnu.org/licenses/gpl-3.0.txt
12
  * Description: Redux is a simple, truly extensible options framework for WordPress themes and plugins.
13
  * Author: Team Redux
14
  * Author URI: http://reduxframework.com
15
+ * Version: 3.6.18
16
  * Text Domain: redux-framework
17
  * License: GPL2+
18
  * License URI: http://www.gnu.org/licenses/gpl-3.0.txt